USER_COMP_PY = pyvcp hal_input gladevcp mitsub_vfd

$(patsubst %, ../bin/%, $(USER_COMP_PY)) : ../bin/%: hal/user_comps/%.py
	@$(ECHO) Syntax checking python script $(notdir $@)
	$(Q)$(PYTHON) -c 'import sys; compile(open(sys.argv[1]).read(), sys.argv[1], "exec")' $<
	$(ECHO) Copying python script $(notdir $@)
	$(Q)(echo '#!$(PYTHON)'; sed '1 { /^#!/d; }' $<) > $@.tmp && chmod +x $@.tmp && mv -f $@.tmp $@

PYTARGETS += $(patsubst %, ../bin/%, $(USER_COMP_PY))


ifdef HAVE_LIBMODBUS3

GS2_SRCS := hal/user_comps/gs2_vfd.c
GS2_LDFLAGS := $(GLIB_LIBS) $(LIBMODBUS_LIBS)
GS2_CCFLAGS := $(GLIB_CFLAGS) $(LIBMODBUS_CFLAGS)

$(call TOOBJSDEPS, $(GS2_SRCS)) : EXTRAFLAGS += $(GS2_CCFLAGS)

../bin/gs2_vfd: $(call TOOBJS, $(GS2_SRCS)) ../lib/liblinuxcnchal.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CC) -o $@ $^ $(LDFLAGS) $(GS2_LDFLAGS)

USERSRCS += $(GS2_SRCS)
TARGETS += ../bin/gs2_vfd

HY_GT_SRCS := hal/user_comps/hy_gt_vfd.c
HY_GT_LDFLAGS := $(LIBMODBUS_LIBS)
HY_GT_CCFLAGS := $(LIBMODBUS_CFLAGS)

$(call TOOBJSDEPS, $(HY_GT_SRCS)) : EXTRAFLAGS += $(HY_GT_CCFLAGS)

../bin/hy_gt_vfd: $(call TOOBJS, $(HY_GT_SRCS)) ../lib/liblinuxcnchal.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CC) -o $@ $^ $(LDFLAGS) $(HY_GT_LDFLAGS)

USERSRCS += $(HY_GT_SRCS)
TARGETS += ../bin/hy_gt_vfd

endif # HAVE_LIBMODBUS


ifeq ($(HIDRAW_H_USABLE),yes)
SHUTTLEXPRESS_SRC = hal/user_comps/shuttlexpress.c
USERSRCS += $(SHUTTLEXPRESS_SRC)
../bin/shuttlexpress: $(call TOOBJS, $(SHUTTLEXPRESS_SRC)) ../lib/liblinuxcnchal.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CC) $(LDFLAGS) -o $@ $^
TARGETS += ../bin/shuttlexpress
endif

ifdef HAVE_LIBUSB10
XHC_HB04_SRC = hal/user_comps/xhc-hb04.cc
USERSRCS += $(XHC_HB04_SRC)
$(call TOOBJSDEPS, $(XHC_HB04_SRC)) : EXTRAFLAGS += $(LIBUSB10_CFLAGS)
../bin/xhc-hb04: $(call TOOBJS, $(XHC_HB04_SRC)) ../lib/liblinuxcnchal.so.0 ../lib/liblinuxcncini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CC) $(LDFLAGS) -o $@ $^ -lm -lstdc++ $(LIBUSB10_LIBS)
TARGETS += ../bin/xhc-hb04
endif # HAVE_LIBUSB10

$(patsubst ./hal/user_comps/%,../include/%,$(wildcard ./hal/user_comps/*.h)): ../include/%.h: ./hal/user_comps/%.h
	cp $^ $@
$(patsubst ./hal/user_comps/%,../include/%,$(wildcard ./hal/user_comps/*.hh)): ../include/%.hh: ./hal/user_comps/%.hh
	cp $^ $@
