1# Copyright (c) 1993-1994 Mats O Jansson, Stockholm, Sweden 2# All rights reserved. 3# 4# @(#) $OpenBSD: Makefile,v 1.6 2022/12/28 21:30:17 jmc Exp $ 5 6# Script (or program) that returns the machine and os types, 7# or just edit in the name yourself. 8MD=`./mdtype` 9OS=`./ostype` 10REL=`cat ../common/VERSION` 11 12CCOPT = -O 13INCLUDES = -I.. 14#rs6000-aix3#DEFINES = -D_AIX -D_BSD 15 16#mopchk#SPEC_FLAGS= -DNODL -DNOAOUT 17#mopd#SPEC_FLAGS= -DNOAOUT 18#mopprobe#SPEC_FLAGS= -DNODL 19#moptrace#SPEC_FLAGS= 20 21# Standard CFLAGS 22STANDARD_CFLAGS = $(CCOPT) $(SPEC_FLAGS) $(DEFINES) $(INCLUDES) 23 24# CFLAGS definitions per machine vs. os 25#sun3-sunos4#CFLAGS = $(STANDARD_CFLAGS) 26#sun4-sunos4#CFLAGS = $(STANDARD_CFLAGS) 27#sun4-sunos5#CFLAGS = $(STANDARD_CFLAGS) -DDLPIPF 28#rs6000-aix3#CFLAGS = $(STANDARD_CFLAGS) 29#alpha-linux2#CFLAGS = $(STANDARD_CFLAGS) 30#i386-linux2#CFLAGS = $(STANDARD_CFLAGS) 31#sparc-linux2#CFLAGS = $(STANDARD_CFLAGS) 32 33#sun4-sunos5#LIB = -lsocket 34 35INSTBIN="#" 36INSTMAN="#" 37#alpha-linux2#INSTBIN= install -c -s -o root -g root -m 755 38#alpha-linux2#INSTMAN= install -c -o root -g root -m 644 39#i386-linux2#INSTBIN= install -c -s -o root -g root -m 755 40#i386-linux2#INSTMAN= install -c -o root -g root -m 644 41#sparc-linux2#INSTBIN= install -c -s -o root -g root -m 755 42#sparc-linux2#INSTMAN= install -c -o root -g root -m 644 43 44# Change these to cc/lex/yacc if you don't have gcc, flex and/or bison. 45CC = cc 46LEX = lex 47YACC = yacc -y 48MAKE = make 49 50# Explicitly define compilation rule since SunOS 4's make doesn't like gcc. 51# Also, gcc does not remove the .o before forking 'as', which can be a 52# problem if you don't own the file but can write to the directory. 53.c.o: 54 rm -f $@; $(CC) $(CFLAGS) -c $*.c 55 56DIRS= mopchk mopd mopprobe moptrace 57 58CHDOC= mopchk.1 59CHFIL= mopchk.c 60CHOBJ= mopchk.o 61CHHDR= 62LDDOC= mopd.8 63LDFIL= mopd.c process.c 64LDOBJ= mopd.o process.o 65LDHDR= process.h 66PBDOC= mopprobe.1 67PBFIL= mopprobe.c 68PBOBJ= mopprobe.o 69PBHDR= 70TRDOC= moptrace.1 71TRFIL= moptrace.c 72TROBJ= moptrace.o 73TRHDR= 74 75#sun3-sunos4#OSHDR= os-sunos4.h 76#sun3-sunos4#PFFIL= pf-snit.c 77#sun3-sunos4#LOOP= loop.c 78 79#sun4-sunos4#OSHDR= os-sunos4.h 80#sun4-sunos4#PFFIL= pf-snit.c 81#sun4-sunos4#LOOP= loop.c 82 83#rs6000-aix3#OSHDR= os-aix3.h 84#rs6000-aix3#PFFIL= pf-aix3.c 85#rs6000-aix3#LOOP= loop.c 86 87#alpha-linux2#OSHDR= os-linux2.h 88#alpha-linux2#PFFIL= pf-linux2.c 89#alpha-linux2#LOOP= loop-linux2.c 90 91#i386-linux2#OSHDR= os-linux2.h 92#i386-linux2#PFFIL= pf-linux2.c 93#i386-linux2#LOOP= loop-linux2.c 94 95#sparc-linux2#OSHDR= os-linux2.h 96#sparc-linux2#PFFIL= pf-linux2.c 97#sparc-linux2#LOOP= loop-linux2.c 98 99#mopchk#COFIL= device.c file.c mopdef.c 100#mopchk#COOBJ= device.o file.o mopdef.o 101#mopchk#OTOBJ= pf.o loop.o 102#mopchk#MANDIR=man1 103 104#mopd#COFIL= cmp.c device.c dl.c file.c get.c mopdef.c nma.c print.c put.c rc.c 105#mopd#COOBJ= cmp.o device.o dl.o file.o get.o mopdef.o nma.o print.o put.o rc.o 106#mopd#OTOBJ= pf.o loop.o 107#mopd#MANDIR=man8 108 109#mopprobe#COFIL= cmp.c device.c get.c mopdef.c nma.c print.c 110#mopprobe#COOBJ= cmp.o device.o get.o mopdef.o nma.o print.o 111#mopprobe#OTOBJ= pf.o loop.o 112#mopprobe#MANDIR=man1 113 114#moptrace#COFIL= cmp.c device.c dl.c get.c mopdef.c nma.c print.c rc.c 115#moptrace#COOBJ= cmp.o device.o dl.o get.o mopdef.o nma.o print.o rc.o 116#moptrace#OTOBJ= pf.o loop.o 117#moptrace#MANDIR=man1 118 119toplvl: osmake 120 121oslvl: submake 122 123#mopchk#image: mopchk 124 125#mopd#image: mopd 126 127#mopprobe#image: mopprobe 128 129#moptrace#image: moptrace 130 131MFLAGS= 132 133osmake: force 134 @dir=$(MD)-$(OS); \ 135 if [ ! -d $$dir ]; then ${MAKE} ${MFLAGS} config; fi; \ 136 cd $$dir; ${MAKE} ${MFLAGS} 137 138submake: force 139 -@for i in $(DIRS); do if [ ! -d $$i ]; then mkdir $$i; chmod ug+w $$i; \ 140 sed -e "/^oslvl:/d" -e "s/^#$$i#//" Makefile >$$i/Makefile; \ 141 chmod ug+w $$i/Makefile; cd $$i; \ 142 ${MAKE} ${MFLAGS} files; cd ..; fi; done; \ 143 for i in $(DIRS); do cd $$i; ${MAKE} ${MFLAGS}; cd ..; done 144 145osinstall: force 146 @os=$(OS); \ 147 if [ -d $$os ]; then (cd $$os; ${MAKE} ${MFLAGS} INSTALL="$(INSTALL)" install); fi; 148 149install: osinstall 150 @dir=$(MD)-$(OS); cd $$dir; \ 151 for i in $(DIRS); do cd $$i; ${MAKE} ${MFLAGS} INSTALL="$(INSTALL)" inst; cd ..; done; 152 153config: 154 @md=$(MD); os=$(OS); dir=$$md-$$os; \ 155 mkdir $$dir; chmod ug+w $$dir; \ 156 sed -e "/^toplvl:/d" -e "s/^#$$dir#//" Makefile >$$dir/Makefile; \ 157 chmod ug+w $$dir/Makefile 158 159tar: 160 @rel=$(REL); cd ..; \ 161 tar -cf ../mopd-$$rel.tar [M]* c*/[Va-z]* m*/[MTa-np-z]* otherOS/*.[ch] otherOS/[M]* otherOS/*type otherOS/linux2/[Mm]*; \ 162 gzip -9 ../mopd-$$rel.tar 163 164#mopchk#files: force 165#mopchk# echo "Adding files in mopchk"; \ 166#mopchk# ln -s ../../../common common; \ 167#mopchk# for i in $(CHFIL) $(CHHDR) $(CHDOC); do ln -s ../../../mopchk/$$i $$i; done; \ 168#mopchk# for i in $(COFIL); do ln -s ../../../common/$$i $$i; done; \ 169#mopchk# ln -s ../../$(OSHDR) os.h; ln -s ../../$(PFFIL) pf.c; \ 170#mopchk# ln -s ../../$(LOOP) loop.c 171 172#mopchk#inst: mopchk 173#mopchk# echo "Installing files in mopchk"; 174#mopchk# $(INSTBIN) $< $(INSTALL)/usr/sbin 175#mopchk# $(INSTMAN) $(CHDOC) $(INSTALL)/usr/man/$(MANDIR) 176 177#mopd#files: force 178#mopd# echo "Adding files in mopd"; \ 179#mopd# ln -s ../../../common common; \ 180#mopd# for i in $(LDFIL) $(LDHDR) $(LDDOC); do ln -s ../../../mopd/$$i $$i; done; \ 181#mopd# for i in $(COFIL); do ln -s ../../../common/$$i $$i; done; \ 182#mopd# ln -s ../../$(OSHDR) os.h; ln -s ../../$(PFFIL) pf.c; \ 183#mopd# ln -s ../../$(LOOP) loop.c 184 185#mopd#inst: mopd 186#mopd# echo "Installing files in mopd"; 187#mopd# $(INSTBIN) $< $(INSTALL)/usr/sbin 188#mopd# $(INSTMAN) $(LDDOC) $(INSTALL)/usr/man/$(MANDIR) 189 190#mopprobe#files: force 191#mopprobe# echo "Adding files in mopprobe"; \ 192#mopprobe# ln -s ../../../common common; \ 193#mopprobe# for i in $(PBFIL) $(PBHDR) $(PBDOC); do ln -s ../../../mopprobe/$$i $$i; done; \ 194#mopprobe# for i in $(COFIL); do ln -s ../../../common/$$i $$i; done; \ 195#mopprobe# ln -s ../../$(OSHDR) os.h; ln -s ../../$(PFFIL) pf.c; \ 196#mopprobe# ln -s ../../$(LOOP) loop.c 197 198#mopprobe#inst: mopprobe 199#mopprobe# echo "Installing files in mopprobe"; 200#mopprobe# $(INSTBIN) $< $(INSTALL)/usr/sbin 201#mopprobe# $(INSTMAN) $(PBDOC) $(INSTALL)/usr/man/$(MANDIR) 202 203#moptrace#files: force 204#moptrace# echo "Adding files in moptrace"; \ 205#moptrace# ln -s ../../../common common; \ 206#moptrace# for i in $(TRFIL) $(TRHDR) $(TRDOC); do ln -s ../../../moptrace/$$i $$i; done; \ 207#moptrace# for i in $(COFIL); do ln -s ../../../common/$$i $$i; done; \ 208#moptrace# ln -s ../../$(OSHDR) os.h; ln -s ../../$(PFFIL) pf.c; \ 209#moptrace# ln -s ../../$(LOOP) loop.c 210 211#moptrace#inst: moptrace 212#moptrace# echo "Installing files in moptrace"; 213#moptrace# $(INSTBIN) $< $(INSTALL)/usr/sbin 214#moptrace# $(INSTMAN) $(TRDOC) $(INSTALL)/usr/man/$(MANDIR) 215 216mopchk: $(CHOBJ) $(COOBJ) $(OTOBJ) version.o 217 $(CC) $(CFLAGS) -o $@ $(CHOBJ) $(COOBJ) $(OTOBJ) version.o $(LIB) 218 219mopd: $(LDOBJ) $(COOBJ) $(OTOBJ) version.o 220 $(CC) $(CFLAGS) -o $@ $(LDOBJ) $(COOBJ) $(OTOBJ) version.o $(LIB) 221 222mopprobe: $(PBOBJ) $(COOBJ) $(OTOBJ) version.o 223 $(CC) $(CFLAGS) -o $@ $(PBOBJ) $(COOBJ) $(OTOBJ) version.o $(LIB) 224 225moptrace: $(TROBJ) $(COOBJ) $(OTOBJ) version.o 226 $(CC) $(CFLAGS) -o $@ $(TROBJ) $(COOBJ) $(OTOBJ) version.o $(LIB) 227 228VERSION: 229 @ln -s ../../../common/VERSION VERSION 230 231version.o: version.c 232version.c version.h: VERSION 233 rm -f version.c ; sed 's/.*/char version[] = "&";/' VERSION > version.c 234 set `sed 's/\([0-9]*\)\.\([0-9]*\).*/\1 \2/' VERSION` ; \ 235 { echo '#define VERSION_MAJOR' $$1 ; \ 236 echo '#define VERSION_MINOR' $$2 ; } > version.h 237 238force: /tmp 239