1# udhcp makefile 2 3prefix=/usr 4SBINDIR=/sbin 5USRSBINDIR=${prefix}/sbin 6USRBINDIR=${prefix}/bin 7USRSHAREDIR=${prefix}/share 8 9# Uncomment this to get a shared binary. Call as udhcpd for the server, 10# and udhcpc for the client 11COMBINED_BINARY=1 12 13# Uncomment this for extra output and to compile with debugging symbols 14# DEBUG=1 15 16# Uncomment this to output messages to syslog, otherwise, messages go to stdout 17#CFLAGS += -DSYSLOG 18 19#CROSS_COMPILE=arm-uclibc- 20CC = $(CROSS_COMPILE)gcc 21LD = $(CROSS_COMPILE)gcc 22LDFLAGS = -L$(TOP)/nvram -lnvram 23 24INSTALL = install 25 26VER := 0.9.8 27 28 29OBJS_SHARED = options.o socket.o packet.o pidfile.o uptime.o 30DHCPD_OBJS = dhcpd.o arpping.o files.o leases.o serverpacket.o 31DHCPC_OBJS = dhcpc.o clientpacket.o script.o 32 33ifdef COMBINED_BINARY 34EXEC1 = udhcpd 35OBJS1 = $(DHCPD_OBJS) $(DHCPC_OBJS) $(OBJS_SHARED) frontend.o 36CFLAGS += -DCOMBINED_BINARY 37else 38EXEC1 = udhcpd 39OBJS1 = $(DHCPD_OBJS) $(OBJS_SHARED) 40 41EXEC2 = udhcpc 42OBJS2 = $(DHCPC_OBJS) $(OBJS_SHARED) 43endif 44 45EXEC3 = dumpleases 46OBJS3 = dumpleases.o 47 48BOOT_PROGRAMS = udhcpc 49DAEMONS = udhcpd 50COMMANDS = dumpleases 51 52ifdef SYSLOG 53CFLAGS += -DSYSLOG 54endif 55 56CFLAGS += -W -Wall -Wstrict-prototypes -DVERSION='"$(VER)"' 57 58ifdef DEBUG 59CFLAGS += -g -DDEBUG 60STRIP=true 61else 62CFLAGS += -O2 -fomit-frame-pointer 63STRIP=$(CROSS_COMPILE)strip 64endif 65CFLAGS += -I$(SRCBASE)/include 66 67all: $(EXEC1) $(EXEC2) $(EXEC3) 68 $(STRIP) --remove-section=.note --remove-section=.comment $(EXEC1) $(EXEC2) $(EXEC3) 69 70$(OBJS1) $(OBJS2) $(OBJS3): *.h Makefile 71$(EXEC1) $(EXEC2) $(EXEC3): Makefile 72 73.c.o: 74 $(CC) -c $(CFLAGS) $< 75 76$(EXEC1): $(OBJS1) 77 $(LD) $(LDFLAGS) $(OBJS1) -o $(EXEC1) 78 79$(EXEC2): $(OBJS2) 80 $(LD) $(LDFLAGS) $(OBJS2) -o $(EXEC2) 81 82$(EXEC3): $(OBJS3) 83 $(LD) $(LDFLAGS) $(OBJS3) -o $(EXEC3) 84 85 86install: all 87 88 $(INSTALL) $(DAEMONS) $(USRSBINDIR) 89 $(INSTALL) $(COMMANDS) $(USRBINDIR) 90ifdef COMBINED_BINARY 91 ln -sf $(USRSBINDIR)/$(DAEMONS) $(SBINDIR)/$(BOOT_PROGRAMS) 92else 93 $(INSTALL) $(BOOT_PROGRAMS) $(SBINDIR) 94endif 95 mkdir -p $(USRSHAREDIR)/udhcpc 96 for name in bound deconfig renew script ; do \ 97 $(INSTALL) samples/sample.$$name \ 98 $(USRSHAREDIR)/udhcpc/default.$$name ; \ 99 done 100 mkdir -p $(USRSHAREDIR)/man/man1 101 $(INSTALL) dumpleases.1 $(USRSHAREDIR)/man/man1 102 mkdir -p $(USRSHAREDIR)/man/man5 103 $(INSTALL) udhcpd.conf.5 $(USRSHAREDIR)/man/man5 104 mkdir -p $(USRSHAREDIR)/man/man8 105 $(INSTALL) udhcpc.8 udhcpd.8 $(USRSHAREDIR)/man/man8 106 107clean: 108 -rm -f udhcpd udhcpc dumpleases *.o core 109 110