1# Makefile.dist
2#
3# Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
4# Copyright (c) 1996-2003 by Internet Software Consortium
5#
6# Permission to use, copy, modify, and distribute this software for any
7# purpose with or without fee is hereby granted, provided that the above
8# copyright notice and this permission notice appear in all copies.
9#
10# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
11# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12# MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
13# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
16# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17#
18#   Internet Systems Consortium, Inc.
19#   950 Charter Street
20#   Redwood City, CA 94063
21#   <info@isc.org>
22#   http://www.isc.org/
23#
24
25CATMANPAGES = dhcpd.cat8 dhcpd.conf.cat5 dhcpd.leases.cat5
26SEDMANPAGES = dhcpd.man8 dhcpd.conf.man5 dhcpd.leases.man5
27SRCS   = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
28	 omapi.c mdb.c stables.c salloc.c ddns.c
29OBJS   = dhcpd.o dhcp.o bootp.o confpars.o db.o class.o failover.o \
30	 omapi.o mdb.o stables.o salloc.o ddns.o
31PROG   = dhcpd
32MAN    = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
33
34INCLUDES = -I$(TOP) $(BINDINC) -I$(TOP)/includes
35DHCPLIB = ../common/libdhcp.a $(BINDLIB) ../omapip/libomapi.a ../dst/libdst.a
36CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS)
37
38all:	$(PROG) $(CATMANPAGES)
39
40install: all
41	for dir in $(BINDIR) $(ADMMANDIR) $(FFMANDIR) $(VARDB); do \
42	  foo=""; \
43	  for bar in `echo $(DESTDIR)$${dir} |tr / ' '`; do \
44	    foo=$${foo}/$$bar; \
45	    if [ ! -d $$foo ]; then \
46	      mkdir $$foo; \
47	      chmod 755 $$foo; \
48	    fi; \
49	  done; \
50	done
51	$(INSTALL) dhcpd $(DESTDIR)$(BINDIR)
52	$(CHMOD) 755 $(DESTDIR)$(BINDIR)/dhcpd
53	$(MANINSTALL) $(MANFROM) dhcpd.$(MANCAT)8 $(MANTO) \
54			$(DESTDIR)$(ADMMANDIR)/dhcpd$(ADMMANEXT)
55	$(MANINSTALL) $(MANFROM) dhcpd.conf.$(MANCAT)5 $(MANTO) \
56			$(DESTDIR)$(FFMANDIR)/dhcpd.conf$(FFMANEXT)
57	$(MANINSTALL) $(MANFROM) dhcpd.leases.$(MANCAT)5 $(MANTO) \
58			$(DESTDIR)$(FFMANDIR)/dhcpd.leases$(FFMANEXT)
59
60depend:
61	$(MKDEP) $(INCLUDES) $(PREDEFINES) $(SRCS)
62
63clean:
64	-rm -f $(OBJS)
65
66realclean: clean
67	-rm -f $(PROG) $(CATMANPAGES) $(SEDMANPAGES) *~ #*
68
69distclean: realclean
70	-rm -f Makefile
71
72links:
73	@for foo in $(SRCS) $(MAN); do \
74	  if [ ! -b $$foo ]; then \
75	    rm -f $$foo; \
76	  fi; \
77	  ln -s $(TOP)/server/$$foo $$foo; \
78	done
79
80# These should only be done on 4.4 BSD-based systems, since the mandoc
81# macros aren't available on older unices.   Catted man pages are
82# provided in the distribution so that this doesn't become a problem.
83
84dhcpd.cat8:	dhcpd.man8
85	nroff -man dhcpd.man8 >dhcpd.cat8
86
87dhcpd.man8:	dhcpd.8
88	sed -e "s#ETCDIR#$(ETC)#g" -e "s#DBDIR#$(VARDB)#g" \
89		-e "s#RUNDIR#$(VARRUN)#g" < dhcpd.8 >dhcpd.man8
90
91dhcpd.conf.cat5:	dhcpd.conf.man5
92	nroff -man dhcpd.conf.man5 >dhcpd.conf.cat5
93
94dhcpd.conf.man5:	dhcpd.conf.5
95	sed -e "s#ETCDIR#$(ETC)#g" -e "s#DBDIR#$(VARDB)#g" \
96		-e "s#RUNDIR#$(VARRUN)#g" < dhcpd.conf.5 >dhcpd.conf.man5
97
98dhcpd.leases.cat5:	dhcpd.leases.man5
99	nroff -man dhcpd.leases.man5 >dhcpd.leases.cat5
100
101dhcpd.leases.man5:	dhcpd.leases.5
102	sed -e "s#ETCDIR#$(ETC)#g" -e "s#DBDIR#$(VARDB)#g" \
103		-e "s#RUNDIR#$(VARRUN)#g" < dhcpd.leases.5 >dhcpd.leases.man5
104
105dhcpd:	$(OBJS) $(COBJ) $(DHCPLIB)
106	$(CC) $(LFLAGS) -o dhcpd $(OBJS) $(DHCPLIB) $(LIBS)
107
108# Dependencies (semi-automatically-generated)
109