1 # 2 # GNU Makefile for DOS-libpcap. djgpp version. 3 # 4 # Use this makefile from the libpcap root directory. 5 # E.g. like this: 6 # 7 # c:\net\pcap> make -f msdos/makefile.dj 8 # 9 # Note: you should do a "set LFN=y" before running this makefile. 10 # 11 12 VPATH = missing msdos bpf/net 13 14 PREREQUISITES = scanner.c grammar.c tokdefs.h version.h msdos/pkt_stub.inc 15 16 include ./msdos/common.dj 17 18 DRIVER_DIR = ./msdos/pm_drvr 19 20 CFLAGS += -DDEBUG -DNDIS_DEBUG -DHAVE_LIMITS_H -DHAVE_STRERROR -DHAVE_SNPRINTF -DHAVE_VSNPRINTF\ 21 -D_U_='__attribute__((unused))' 22 23 CFLAGS += -Dyylval=pcap_lval # -DBDEBUG -DNDEBUG 24 25 SOURCES = grammar.c scanner.c bpf/net/bpf_filter.c bpf_image.c bpf_dump.c \ 26 etherent.c gencode.c nametoaddr.c pcap-common.c pcap-dos.c optimize.c \ 27 savefile.c pcap.c sf-pcap.c sf-pcap-ng.c inet.c \ 28 msdos/pktdrvr.c msdos/ndis2.c # missing/snprintf.c 29 30 OBJECTS = $(addprefix $(OBJ_DIR)/, $(notdir $(SOURCES:.c=.o))) 31 TEMPBIN = tmp.bin 32 33 ifeq ($(USE_32BIT_DRIVERS),1) 34 PM_OBJECTS = $(addprefix $(OBJ_DIR)/, \ 35 printk.o pci.o pci-scan.o bios32.o dma.o irq.o intwrap.o \ 36 lock.o kmalloc.o quirks.o timer.o net_init.o) 37 # 38 # Static link of drivers 39 # 40 ifeq ($(USE_32BIT_MODULES),0) 41 PM_OBJECTS += $(addprefix $(OBJ_DIR)/, \ 42 accton.o 8390.o 3c503.o 3c509.o 3c59x.o 3c515.o \ 43 3c575_cb.o 3c90x.o ne.o wd.o cs89x0.o rtl8139.o) 44 endif 45 endif 46 47 TARGETS = msdos/bin2c.exe libpcap.a filtertest.exe findalldevstest.exe \ 48 nonblocktest.exe opentest.exe 49 50 all: $(TARGETS) 51 @echo 'Welcome to libpcap/djgpp with samples.' 52 53 ifeq ($(USE_32BIT_DRIVERS),1) 54 $(PM_OBJECTS): 55 $(MAKE) -f Makefile.dj -C $(DRIVER_DIR) $(notdir $@) 56 endif 57 58 libpcap.a: version.h $(OBJECTS) $(PM_OBJECTS) 59 rm -f $@ 60 ar rs $@ $^ 61 62 filtertest.exe: tests/filtertest.c libpcap.a 63 $(CC) $(CFLAGS) -Din_addr_t=u_long -o $@ $^ $(WATT32_ROOT)/lib/libwatt.a 64 @echo 65 66 findalldevstest.exe: tests/findalldevstest.c libpcap.a 67 $(CC) $(CFLAGS) -o $@ $^ $(WATT32_ROOT)/lib/libwatt.a 68 @echo 69 70 nonblocktest.exe: tests/nonblocktest.c libpcap.a 71 $(CC) $(CFLAGS) -o $@ $^ $(WATT32_ROOT)/lib/libwatt.a 72 @echo 73 74 opentest.exe: tests/opentest.c libpcap.a 75 $(CC) $(CFLAGS) -o $@ $^ $(WATT32_ROOT)/lib/libwatt.a 76 @echo 77 78 msdos/pkt_stub.inc: msdos/bin2c.exe msdos/pkt_rx1.S 79 $(ASM) -o $(TEMPBIN) -lmsdos/pkt_rx1.lst msdos/pkt_rx1.S 80 ./msdos/bin2c $(TEMPBIN) > $@ 81 rm -f $(TEMPBIN) 82 83 grammar.c tokdefs.h: grammar.y 84 rm -f grammar.c tokdefs.h 85 $(YACC) --name-prefix=pcap_ --yacc --defines grammar.y 86 mv -f y.tab.c grammar.c 87 mv -f y.tab.h tokdefs.h 88 89 version.h: ./VERSION 90 @echo '/* Generated from VERSION. Do not edit */' > $@ 91 sed -e 's/.*/static char pcap_version_string[] = "libpcap (&)";/' ./VERSION >> $@ 92 93 scanner.c: scanner.l 94 $(LEX) -Ppcap_ -7 -t $^ > $@ 95 @echo 96 97 msdos/bin2c.exe: msdos/bin2c.c 98 $(CC) $*.c -o $*.exe 99 100 clean: 101 rm -f $(OBJECTS) msdos/pkt_rx1.lst Makefile.bak .depend.dj $(PREREQUISITES) 102 # $(MAKE) -f Makefile.dj -C $(DRIVER_DIR) clean 103 104 vclean: clean 105 rm -f $(TARGETS) 106 -rmdir $(OBJ_DIR) 107 108 # 109 # Manually generated dependencies 110 # 111 msdos/pktdrvr.c: msdos/pkt_stub.inc 112 scanner.c: scanner.l 113 grammar.c tokdefs.h: grammar.y 114 grammar.h: grammar.y 115 scanner.l: pcap-int.h pcap-namedb.h gencode.h grammar.h 116 grammar.y: pcap-int.h gencode.h pcap-namedb.h 117 118 # 119 # Generate dependencies. 120 # 121 REPLACE = sed -e 's/\(.*\)\.o: /\n$$(OBJ_DIR)\/\1.o: /' 122 123 depend: $(PREREQUISITES) 124 $(CC) -MM $(CFLAGS) $(SOURCES) | $(REPLACE) > .depend.dj 125 126 -include .depend.dj 127 128