27 PROG_CFLAGS = SUB_PROG_CFLAGS |
27 PROG_CFLAGS = SUB_PROG_CFLAGS |
28 PREFIX = SUB_PREFIX |
28 PREFIX = SUB_PREFIX |
29 TARGET = SUB_TARGET |
29 TARGET = SUB_TARGET |
30 CAN_DRIVER = SUB_CAN_DRIVER |
30 CAN_DRIVER = SUB_CAN_DRIVER |
31 TIMERS_DRIVER = SUB_TIMERS_DRIVER |
31 TIMERS_DRIVER = SUB_TIMERS_DRIVER |
32 BINUTILS_PREFIX = SUB_BINUTILS_PREFIX |
32 ENABLE_DLL_DRIVERS=SUB_ENABLE_DLL_DRIVERS |
|
33 CAN_DLL_CFLAGS=SUB_CAN_DLL_CFLAGS |
33 |
34 |
34 INCLUDES = -I../../include -I../../include/$(TARGET) -I../../include/$(CAN_DRIVER) -I../../include/$(TIMERS_DRIVER) |
35 INCLUDES = -I../../include -I../../include/$(TARGET) -I../../include/$(CAN_DRIVER) |
35 |
36 |
36 OBJS = $(CAN_DRIVER).o |
37 OBJS = $(CAN_DRIVER).o |
37 |
38 |
38 SRC_HFILES = ../../include/$(CAN_DRIVER)/cancfg.h |
39 ifeq ($(ENABLE_DLL_DRIVERS),1) |
|
40 CFLAGS += -fPIC |
|
41 DRIVER = cyg$(CAN_DRIVER).dll |
|
42 else |
|
43 DRIVER = $(OBJS) |
|
44 endif |
39 |
45 |
40 TARGET_HFILES = $(PREFIX)/include/canfestival/cancfg.h |
46 TARGET_SOFILES = $(PREFIX)/lib/$(DRIVER) |
41 |
47 |
42 all: driver |
48 all: driver |
43 |
49 |
44 driver: $(OBJS) |
50 driver: $(DRIVER) |
45 |
51 |
46 %o: %c |
52 %o: %c |
47 $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $< |
53 $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $< |
48 |
54 |
49 install: |
55 cyg$(CAN_DRIVER).dll: $(OBJS) |
50 mkdir -p $(PREFIX)/include/canfestival |
56 gcc -shared -o $@ \ |
51 cp $(SRC_HFILES) $(PREFIX)/include/canfestival |
57 -Wl,--export-all-symbols \ |
52 |
58 -Wl,--enable-auto-import \ |
|
59 -Wl,--whole-archive $< \ |
|
60 -Wl,--no-whole-archive $(CAN_DLL_CFLAGS) \ |
|
61 -Wl,--exclude-libs,ALL |
|
62 |
|
63 install: libcanfestival_$(CAN_DRIVER).so |
|
64 mkdir -p $(PREFIX)/lib/ |
|
65 cp $@ $(PREFIX)/lib/ |
|
66 |
53 uninstall: |
67 uninstall: |
54 rm -f $(TARGET_HFILES) |
68 rm -f $(TARGET_HFILES) |
55 |
69 |
56 clean: |
70 clean: |
57 rm -f $(OBJS) |
71 rm -f $(OBJS) |
58 |
72 |
59 mrproper: clean |
73 mrproper: clean |
60 |
|
61 #********** make obfuscated translation ************************************* |
|
62 .PHONY : obfuscate |
|
63 obfuscate: |
|
64 cobf -p obf/pp_gnu -o obf -c can_peak_win32.c -t obf/tlist.tok -m obf/mlist.tok -x pcan_ obf/can_peak_win32_org.c;\ |
|
65 cat obf/can_peak_win32.c.header obf/can_peak_win32.c > can_peak_win32.c;\ |
|
66 cat obf/cobf.h.header obf/cobf.h > cobf.h;\ |
|
67 rm -f obf/can_peak_win32.c obf/cobf.h obf/cobf.log obf/uncobf.h |
|
68 |
|