# Makefile.dist # # Copyright (c) 1996 The Internet Software Consortium. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. Neither the name of The Internet Software Consortium nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND # CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL # THE INTERNET SOFTWARE CONSORTIUM OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED # OF THE POSSIBILITY OF SUCH DAMAGE. # ## Defaults... BINDIR = /usr/sbin ADMMANDIR = /usr/share/man/cat8 ADMMANEXT = .0 FFMANDIR = /usr/share/man/cat5 FFMANEXT = .0 INSTALL = install MANINSTALL = install CHMOD = chmod CATMANPAGES = dhcpd.cat8 dhcpd.conf.cat5 ETC = /etc VARRUN = /var/run VARDB = /var/db ## Porting:: # # For each supported operating system, there is a block of text below # beginning with #++os-name++ and ending with #--os-name--. Between # these delimiters are assignments, commented out, which define the # Makefile variables required for that operating system. # # The configure shell script figures out what operating system it's # being run on and then runs Makefile.dist through a sed script which # removes the comment characters from the appropriate set of # assignments, and writes the output to Makefile. ## SunOS 4.1 ##++sunos4++ #LIBS = -lresolv #CF = cf/sunos4.h #BINDIR=/usr/etc #ADMMANEXT = .8 #FFMANEXT = .5 #VARRUN = /etc #VARDB = /etc ##--sunos4-- ## Solaris 2.5 (with gcc) ##++sunos5++ #INSTALL=/usr/ucb/install #MANINSTALL=/usr/ucb/install #LIBS = -lresolv -lsocket -lnsl -lgen #CC=gcc #COPTS = -Wall -Wstrict-prototypes -Wno-unused -Wno-implicit -Wno-comment \ # -Wno-uninitialized -Werror #CF = cf/sunos5-5.h #ADMMANDIR = /usr/share/man/cat1m #ADMMANEXT = .1m #FFMANDIR = /usr/share/man/cat4 #FFMANEXT = .4 #VARRUN = /etc #VARDB = /etc ##--sunos5-- ## DEC Alpha/OSF1 ##++alphaosf++ #INSTALL=/usr/ucb/installbsd #MANINSTALL=/usr/ucb/installbsd #LIBS= #CF = cf/alphaosf.h #ADMMANEXT = .8 #FFMANEXT = .5 #VARRUN = /etc #VARDB = /etc ##--alphaosf-- ## BSD/OS 2.1 ##++bsdos++ #LIBS= #CC=gcc2 #CF = cf/bsdos.h ##--bsdos-- ## FreeBSD ##++freebsd++ #CF = cf/freebsd.h ##--freebsd-- ## NetBSD ##++netbsd++ #CF = cf/netbsd.h #COPTS = -Wall -Wstrict-prototypes -Wno-unused -Wno-implicit -Wno-comment \ # -Wno-uninitialized -Werror ##--netbsd-- ## Ultrix ##++ultrix++ #CF = cf/ultrix.h #ADMMANDIR = /usr/man/man8 #ADMMANEXT = .8 #FFMANDIR = /usr/man/man5 #FFMANEXT = .5 ##--ultrix-- ## Linux ##++linux++ #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 #ADMMANEXT = .8 #FFMANDIR = /usr/man/man5 #FFMANEXT = .5 #VARRUN = /etc ##--linux-- ## SCO ##++sco++ #CF = cf/sco.h #PREDEFINES=-DSCO -DBROKEN_ANSI #BINDUR = /usr/etc #ADMMANDIR = /usr/man/cat.ADMN #ADMMANEXT = .ADMN.Z #FFMANDIR = /usr/man/cat.SFF #FFMANEXT = .SFF.Z #INSTALL = cp #MANFROM = < #MANINSTALL = compress #MANTO = > #VARRUN = /etc #VARDB = /etc #CATMANPAGES= ##--sco-- CSRC = options.c errwarn.c convert.c \ tree.c memory.c alloc.c print.c hash.c tables.c inet.c \ dispatch.c bpf.c packet.c raw.c nit.c socket.c COBJ = options.o errwarn.o convert.o \ tree.o memory.o alloc.o print.o hash.o tables.o inet.o \ dispatch.o bpf.o packet.o raw.o nit.o socket.o SRCS = dhcpd.c dhcp.c bootp.c conflex.c confpars.c db.c OBJS = dhcpd.o dhcp.o bootp.o conflex.o confpars.o db.o PROGS = dhcpd dhclient MAN = dhcpd.8 dhcpd.conf.5 DEBUG = -g CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS) all: dhcpd dhclient $(CATMANPAGES) install: dhcpd $(CATMANPAGES) $(INSTALL) dhcpd $(BINDIR); $(CHMOD) 755 $(BINDIR)/dhcpd if [ ! -d $(ADMMANDIR) ]; then \ mkdir $(ADMMANDIR); \ chmod 755 $(ADMMANDIR); \ fi if [ ! -d $(FFMANDIR) ]; then \ mkdir $(FFMANDIR); \ chmod 755 $(FFMANDIR); \ fi $(MANINSTALL) $(MANFROM) dhcpd.cat8 $(MANTO) \ $(ADMMANDIR)/dhcpd$(ADMMANEXT) $(MANINSTALL) $(MANFROM) dhcpd.conf.cat5 $(MANTO) \ $(FFMANDIR)/dhcpd.conf$(FFMANEXT) # These should only be done on 4.4 BSD-based systems, since the mandoc # macros aren't available on older unices. Catted man pages are # provided in the distribution so that this doesn't become a problem. dhcpd.cat8: dhcpd.8 sed -e "s#ETCDIR#$(ETC)#" -e "s#DBDIR#$(VARDB)#" \ -e "s#RUNDIR#$(VARRUN)#" < dhcpd.8 \ | nroff -man >dhcpd.cat8 dhcpd.conf.cat5: dhcpd.conf.5 nroff -man dhcpd.conf.5 >dhcpd.conf.cat5 dhcpd: $(OBJS) $(COBJ) $(CC) -o dhcpd $(OBJS) $(COBJ) $(LIBS) dhclient: dhclient.o $(COBJ) $(CC) -o dhclient dhclient.o $(COBJ) $(LIBS) # Dependencies (semi-automatically-generated) options.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h \ hash.h inet.h errwarn.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h \ hash.h inet.h convert.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h \ hash.h inet.h conflex.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h \ hash.h inet.h dhctoken.h confpars.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h \ hash.h inet.h dhctoken.h tree.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h \ tree.h hash.h inet.h memory.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h alloc.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h \ hash.h inet.h print.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h hash.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h tables.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h inet.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h db.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h dispatch.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h \ hash.h inet.h bpf.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h includes/netinet/ip.h includes/netinet/udp.h \ includes/netinet/if_ether.h packet.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h includes/netinet/ip.h includes/netinet/udp.h \ includes/netinet/if_ether.h raw.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h nit.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h dhcpd.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h socket.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h dhcp.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h bootp.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h dhclient.o: dhcpd.h cdefs.h osdep.h site.h $(CF) dhcp.h tree.h hash.h \ inet.h dhctoken.h