EMCSHSRCS := emc/usr_intf/emcsh.cc \
             emc/usr_intf/shcom.cc
EMCRSHSRCS := emc/usr_intf/emcrsh.cc \
              emc/usr_intf/shcom.cc
EMCSCHEDSRCS := emc/usr_intf/schedrmt.cc \
              emc/usr_intf/emcsched.cc \
              emc/usr_intf/shcom.cc
EMCLCDSRCS := emc/usr_intf/emclcd.cc \
              emc/usr_intf/shcom.cc \
              emc/usr_intf/sockets.c

USRMOTSRCS := \
	emc/usr_intf/usrmot.c \
	emc/motion/usrmotintf.cc \
	emc/motion/emcmotglb.c \
	emc/motion/emcmotutil.c \
	emc/motion/dbuf.c \
	emc/motion/stashf.c

HALUISRCS := emc/usr_intf/halui.cc
ifeq "$(HAVE_NCURSES)" "yes"
KEYSTICKSRCS := emc/usr_intf/keystick.cc
BALTSYSSRCS := emc/usr_intf/baltsys.cc
endif
ifeq "$(HAVE_XAW)" "yes"
XEMCSRCS := emc/usr_intf/xemc.cc
endif

TCLSRCS := emc/usr_intf/emcsh.cc emc/usr_intf/iosh.cc
USERSRCS += $(EMCSHSRCS) $(EMCRSHSRCS) $(EMCSCHEDSRCS) $(EMCLCDSRCS) $(USRMOTSRCS) $(HALUISRCS) $(KEYSTICKSRCS) $(BALTSYSSRCS)

ifeq "$(HAVE_NCURSES)" "yes"
USERSRCS += $(KEYSTICKSRCS)
USERSRCS += $(BALTSYS)
endif

ifeq "$(HAVE_XAW)" "yes"
USERSRCS += $(XEMCSRCS)
endif

$(call TOOBJSDEPS, $(TCLSRCS)) : EXTRAFLAGS = $(ULFLAGS) $(TCL_CFLAGS)
$(call TOOBJSDEPS, $(EMCSHSRCS)) : EXTRAFLAGS = $(ULFLAGS) $(TCL_CFLAGS) -fPIC

../bin/tooledit: emc/usr_intf/tooledit.tcl
	cp $< $@
	chmod +x $@
TARGETS += ../bin/tooledit

../tcl/emc.so: $(call TOOBJS, $(EMCSHSRCS)) ../lib/libemc.a ../lib/libemcini.so.0 ../lib/libnml.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) -shared $(LDFLAGS) -o $@ $(ULFLAGS) $(TCL_CFLAGS) $^ $(TCL_LIBS) -lXinerama
TARGETS += ../tcl/emc.so

../bin/emcrsh: $(call TOOBJS, $(EMCRSHSRCS)) ../lib/libemc.a ../lib/libnml.so.0 ../lib/libemcini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ -lpthread
TARGETS += ../bin/emcrsh

../bin/schedrmt: $(call TOOBJS, $(EMCSCHEDSRCS)) ../lib/libemc.a ../lib/libnml.so.0 ../lib/libemcini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ -lpthread
TARGETS += ../bin/schedrmt

../bin/emclcd: $(call TOOBJS, $(EMCLCDSRCS)) ../lib/libemc.a ../lib/libnml.so.0 ../lib/libemcini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^
TARGETS += ../bin/emclcd

../bin/usrmot: $(call TOOBJS, $(USRMOTSRCS)) ../lib/libemc.a ../lib/libnml.so.0 ../lib/libemchal.so.0 ../lib/libemcini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^
TARGETS += ../bin/usrmot

../bin/halui: $(call TOOBJS, $(HALUISRCS)) ../lib/libemc.a ../lib/libemcini.so.0 ../lib/libnml.so.0 ../lib/libemchal.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ 
TARGETS += ../bin/halui

ifeq "$(HAVE_NCURSES)" "yes"
../bin/keystick: $(call TOOBJS, $(KEYSTICKSRCS)) ../lib/libemc.a ../lib/libnml.so.0 ../lib/libemcini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ $(KEYSTICKLIBS)
TARGETS += ../bin/keystick
../bin/baltsys: $(call TOOBJS, $(BALTSYSSRCS)) ../lib/libemc.a ../lib/libnml.so.0 ../lib/libemcini.so.0 
	$(ECHO) Linking $(notdir $@) 
	$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ $(BALTSYSLIBS) 
TARGETS += ../bin/baltsys 
endif

ifeq "$(HAVE_XAW)" "yes"
$(call TOOBJSDEPS,$(XEMCSRCS)): EXTRAFLAGS = $(CFLAGS_X)
../bin/xemc: $(call TOOBJS, $(XEMCSRCS)) ../lib/libemc.a ../lib/libnml.so.0 ../lib/libemcini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ $(XLIBS)
TARGETS += ../bin/xemc
endif
