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