Makefile.in revision 29964
1## 2# Makefile.source and Makefile: Directions for building and installing OPIE. 3# 4# %%% portions-copyright-cmetz-96 5# Portions of this software are Copyright 1996-1997 by Craig Metz, All Rights 6# Reserved. The Inner Net License Version 2 applies to these portions of 7# the software. 8# You should have received a copy of the license with this software. If 9# you didn't get a copy, you may request one from <license@inner.net>. 10# 11# Portions of this software are Copyright 1995 by Randall Atkinson and Dan 12# McDonald, All Rights Reserved. All Rights under this copyright are assigned 13# to the U.S. Naval Research Laboratory (NRL). The NRL Copyright Notice and 14# License Agreement applies to this software. 15# 16# History: 17# 18# Modified by cmetz for OPIE 2.31. Moved logwtmp.o into libopie. 19# Modified by cmetz for OPIE 2.3. Removed manual config -- it's 20# Autoconf or bust. Replaced user configuration options 21# with options.h. Eliminated unused variables. Pass down 22# $(DEBUG) instead of several other variables to the 23# subdirs. Extended/standard key file support. Added 24# dependencies on subdir files. Made opietest call silent. 25# Removed opie-md4, opie-md5, and key aliases. Removed 26# test target. Make uninstall remove man page aliases. 27# Modified by cmetz for OPIE 2.22. Removed @LIBOBJS@ from MISSING for 28# Autoconf target. Re-ordered LFLAGS because some ld's won't 29# include libmissing properly if it's not at the end. 30# Modified by cmetz for OPIE 2.21. Added getusershell.o to IRIX 31# missing functions. 32# Modified by cmetz for OPIE 2.2. Added NEW_PROMPTS definition. 33# Added MISSING and new flags-passing for libmissing. 34# Quote MISSING or lose. Update TEST target for FTPD 35# variable. Removed line formatting for compile commands 36# since macro expansion confuses the issue anyway. 37# Added targets for opieserv. Added targets for opietest. 38# Removed obselete options.h target. Swapped libmissing 39# and libopie. Updated manual config options. Added more 40# explanatory text. Fixed uses of old SYSV and BSD4_3 41# symbols. 42# Modified at NRL for OPIE 2.2: Renamed LDFLAGS setting to LIBS, 43# renamed LDFLAGS in targets to LFLAGS. Added targets for 44# libopie and libmissing directories. Got rid of PROTOTYPES. 45# Added opiegen. Fixed RANLIB Autoconf target. 46# Modified at NRL for OPIE 2.11: Fixed fatal mistype of Autoconf. 47# Modified at NRL for OPIE 2.1: Changed targets to reflect source 48# file name changes. Changed explanation and flags for static 49# linking. Changed opieinfo target. Removed WHOAMI. Added 50# Autoconf targets. Changed if conditionals to use test 51# instead of [. Changed SU_DIR to SU to help autoconf. 52# Changed FTPDIR and FTPDNAME to FTPD to help autoconf. 53# Changed HP-UX to HP-UX9 and HP-UX10. Make uninstall 54# target depend on config. HPUX *is* no longer necessary, but 55# something does have to be there. Sub in Autoconf @CC@. 56# Modified at NRL for OPIE 2.04: Re-worded explanation of SU_STAR_CHECK. 57# Modified at NRL for OPIE 2.02: Added SU_STAR_CHECK flag. 58# Modified at NRL for OPIE 2.01: Test target makes opiesu and opielogin 59# setuid. install target clears that. uninstall target needs to 60# remove the opiekey symlinks. opieinfo target needs to 61# substitute for $(EXISTS). ifdefs target needs to check for 62# starting hash. $(LFLAGS) and -o should be at the end of all 63# link commands to spoon-feed drain bamaged link editors. Added 64# A/UX defaults. 65# Modified heavily at NRL for OPIE 2.0. 66# Written at Bellcore for the S/Key Version 1 software distribution 67# (Makefile). 68 69#============================================================================ 70# CONFIGURATION PARAMETERS -- CHANGE THESE TO SUIT YOUR MACHINE 71 72# Shell to use for make(1) 73# It's usually a good idea to leave this as-is. On some systems, ksh or bash 74# may be necessary 75SHELL=/bin/sh 76 77# OWNER is the username who should own the OPIE binaries. 78# GROUP is the groupname associated with the OPIE binaries. 79# 80OWNER=0 81GROUP=bin 82 83# Where should the OPIE standard and extended databases be stored? 84# 85# Some sites might want to put this elsewhere. If you want to use an old 86# S/Key database, you should create a link from /etc/skeykeys to /etc/opiekeys. 87KEY_FILE=/etc/opiekeys 88 89# Are we debugging? 90# 91# The first line will build a normal version of OPIE. You should use it. 92# 93# The second is for brave souls porting OPIE to a new system or trying to 94# debug it and should definitely NOT be used to build a production copy 95# of OPIE. 96# 97# The third is the above using nifty heap debugger called "Electric Fence". 98DEBUG=-O 99#DEBUG=-DDEBUG=1 -g 100#DEBUG=-DDEBUG=1 -g -lefence 101 102# These parameters are determined by Autoconf and are probably correct. 103# If OPIE doesn't build or work right, try tweaking these. 104CC=@CC@ 105YACC=@YACC@ 106FTPD=@FTPD@ 107LIBS=@LIBS@ 108OPTIONS=@DEFS@ 109EXISTS=@EXISTS@ 110MKDIR=@MKDIR@ 111CHOWN=@CHOWN@ 112LOCALBIN=@LOCALBIN@ 113LOCALMAN=@LOCALMAN@ 114SU=@SU@ 115ALT_SU=@ALT_SU@ 116LOGIN=@LOGIN@ 117LOCK_DIR=@LOCK_DIR@ 118 119BACKUP=opie.old 120 121CFLAGS=$(DEBUG) 122 123LFLAGS=-Llibopie -Llibmissing -lopie $(LIBS) -lmissing -lopie 124LDEPS=libmissing/libmissing.a libopie/libopie.a 125 126all: client server 127 128ifdefs: 129 egrep '^#*if*def' *.c *.h | cut -f2 -d: | sort | uniq 130 131client: libopie/libopie.a libmissing/libmissing.a opietest-passed opiekey opiegen 132 133client-install: client 134 @echo "Installing OPIE client software..." 135 @echo "Copying OPIE key-related files" 136 @if test ! -d $(LOCALBIN); then $(MKDIR) $(LOCALBIN); chmod 755 $(LOCALBIN); fi 137 @cp opiekey $(LOCALBIN) 138 @$(CHOWN) $(OWNER) $(LOCALBIN)/opiekey 139 @chgrp $(GROUP) $(LOCALBIN)/opiekey 140 @echo "Changing file permissions" 141 @chmod 0511 $(LOCALBIN)/opiekey 142 @echo "Symlinking aliases to opiekey" 143 @-ln -s $(LOCALBIN)/opiekey $(LOCALBIN)/otp-md4 144 @-ln -s $(LOCALBIN)/opiekey $(LOCALBIN)/otp-md5 145 @echo "Installing manual pages" 146 @-for i in otp-md4 otp-md5; do ln -s opiekey.1 $(LOCALMAN)/man1/$$i.1; done 147 @if test ! -d $(LOCALMAN)/man1; then $(MKDIR) $(LOCALMAN)/man1; chmod 755 $(LOCALMAN)/man1; fi; cp opiekey.1 $(LOCALMAN)/man1/opiekey.1; $(CHOWN) $(OWNER) $(LOCALMAN)/man1/opiekey.1; chgrp $(GROUP) $(LOCALMAN)/man1/opiekey.1; chmod 644 $(LOCALMAN)/man1/opiekey.1 148 149server: libopie/libopie.a libmissing/libmissing.a opietest-passed opielogin opiesu opiepasswd opieinfo opieftpd opieserv 150 151server-install: server 152 @echo "Installing OPIE server software..." 153 @echo "Copying OPIE user programs" 154 @if test ! -d $(LOCALBIN); then $(MKDIR) $(LOCALBIN); chmod 755 $(LOCALBIN); fi 155 @cp opiepasswd opieinfo $(LOCALBIN) 156 @echo "Changing ownership" 157 @$(CHOWN) $(OWNER) $(LOCALBIN)/opiepasswd $(LOCALBIN)/opieinfo 158 @chgrp $(GROUP) $(LOCALBIN)/opiepasswd $(LOCALBIN)/opieinfo 159 @echo "Changing file permissions" 160 @chmod 0555 $(LOCALBIN)/opieinfo 161 @chmod 4511 $(LOCALBIN)/opiepasswd 162 @echo "Installing OPIE system programs..." 163 @if test ! $(EXISTS) $(LOGIN).$(BACKUP); then echo "Renaming existing $(LOGIN) to $(LOGIN).$(BACKUP)"; mv $(LOGIN) $(LOGIN).$(BACKUP); echo "Clearing permissions on old $(LOGIN)"; chmod 0 $(LOGIN).$(BACKUP); fi 164 @echo "Copying opielogin to $(LOGIN)" 165 @cp opielogin $(LOGIN) 166 @echo "Changing ownership of $(LOGIN)" 167 @$(CHOWN) $(OWNER) $(LOGIN) 168 @chgrp $(GROUP) $(LOGIN) 169 @echo "Changing file permissions of $(LOGIN)" 170 @chmod 4111 $(LOGIN) 171 @if test ! $(EXISTS) $(SU).$(BACKUP); then echo "Renaming existing su to su.$(BACKUP)"; mv $(SU) $(SU).$(BACKUP); echo "Clearing permissions on old su"; chmod 0 $(SU).$(BACKUP); fi 172 @-if test ! -z "$(ALT_SU)"; then if test ! $(EXISTS) $(ALT_SU).$(BACKUP); then echo "Renaming existing su to su.$(BACKUP)"; mv $(ALT_SU) $(ALT_SU).$(BACKUP); fi; echo "Copying opiesu to su"; cp opiesu $(ALT_SU); echo "Changing ownership"; $(CHOWN) $(OWNER) $(ALT_SU); chgrp $(GROUP) $(ALT_SU); echo "Changing file permissions"; chmod 4111 $(ALT_SU); echo "Clearning permissions on old su"; chmod 0 $(ALT_SU).$(BACKUP); fi 173 @echo "Copying opiesu to su" 174 @cp opiesu $(SU) 175 @echo "Changing ownership of su" 176 @$(CHOWN) $(OWNER) $(SU) 177 @chgrp $(GROUP) $(SU) 178 @echo "Changing file permissions of su" 179 @chmod 4111 $(SU) 180 @if test ! $(EXISTS) $(FTPD).$(BACKUP); then echo "Renaming existing ftp daemon to $(FTPD).$(BACKUP)"; mv $(FTPD) $(FTPD).$(BACKUP); echo "Clearing permissions on old ftp daemon"; chmod 0 $(FTPD).$(BACKUP); fi 181 @echo "Copying OPIE ftp daemon" 182 @cp opieftpd $(FTPD) 183 @echo "Changing ownership of ftpd" 184 @$(CHOWN) $(OWNER) $(FTPD) 185 @chgrp $(GROUP) $(FTPD) 186 @echo "Changing file permissions of ftpd" 187 @chmod 0100 $(FTPD) 188 @echo "Making sure OPIE database file exists" 189 @touch $(KEY_FILE) 190 @echo "Changing permissions of OPIE database file" 191 @chmod 0644 $(KEY_FILE) 192 @echo "Changing ownership of OPIE database file" 193 @$(CHOWN) $(OWNER) $(KEY_FILE) 194 @chgrp $(GROUP) $(KEY_FILE) 195 @-if test ! -z "$(LOCK_DIR)"; then echo "Creating OPIE lock directory"; mkdir $(LOCK_DIR); $(CHOWN) 0 $(LOCK_DIR); chgrp 0 $(LOCK_DIR); chmod 0700 $(LOCK_DIR); fi; 196 @-if test ! -z "$(ACCESS_FILE)"; then echo "Creating OPIE access file (don't say we didn't warn you)"; touch $(ACCESS_FILE); $(CHOWN) 0 $(ACCESS_FILE); chgrp 0 $(ACCESS_FILE); chmod 0444 $(ACCESS_FILE); fi; 197 @echo "Installing manual pages" 198 @if test ! -d $(LOCALMAN); then $(MKDIR) $(LOCALMAN); chmod 755 $(LOCALMAN); fi 199 @for i in 1 4 5 8; do for j in *.$$i; do if test ! -d $(LOCALMAN)/man$$i; then $(MKDIR) $(LOCALMAN)/man$$i; chmod 755 $(LOCALMAN)/man$$i; fi; cp $$j $(LOCALMAN)/man$$i/$$j; $(CHOWN) $(OWNER) $(LOCALMAN)/man$$i/$$j; chgrp $(GROUP) $(LOCALMAN)/man$$i/$$j; chmod 644 $(LOCALMAN)/man$$i/$$j; done; done 200 @echo "REMEMBER to run opiepasswd on your users immediately." 201 202install: client-install server-install 203 204uninstall: 205 @echo "Un-installing OPIE..." 206 @echo "Removing symlinks" 207 @-for i in otp-md4 otp-md5; do rm $(LOCALBIN)/$$i; done 208 @echo "Removing OPIE programs" 209 @-for i in opiekey opiepasswd opieinfo; do rm $(LOCALBIN)/$$i; done 210 @echo "Removing OPIE manual pages" 211 @-for i in 1 4 5 8; do for j in *.$$i; do rm $(LOCALMAN)/man$$i/$$j; done; done 212 @-rm $(LOCALMAN)/man1/otp-md4.1 $(LOCALMAN)/man1/otp-md5.1 213 @echo "Restoring old binaries" 214 @-for i in $(SU) $(ALT_SU) $(LOGIN) $(FTPD); do FILE=`basename $$i`; if test ! $(EXISTS) $$i.$(BACKUP); then echo "No $$i.$(BACKUP)! Aborting."; exit 1; else echo "Removing $$FILE"; rm $$i || true; echo "Restoring old $$FILE"; mv $$i.$(BACKUP) $$i; fi; done 215 @echo "Resetting permissions" 216 @chmod 4111 $(SU) $(LOGIN) 217 @chmod 0100 $(FTPD) 218 @if test ! -z "$(ALT_SU)"; then chmod 4111 $(ALT_SU); fi 219 @echo "OPIE is now un-installed." 220 @echo "Please verify by hand that this process worked." 221 222opietest-passed: opietest 223 -./opietest && touch opietest-passed 224 225libopie/libopie.a: libopie/*.c *.h 226 (cd libopie ; $(MAKE) libopie.a CFL='$(CFLAGS) -DKEY_FILE=\"$(KEY_FILE)\"') 227 228libmissing/libmissing.a: libmissing/*.c 229 (cd libmissing ; $(MAKE) libmissing.a CFL='$(CFLAGS)') 230 231clean: 232 -rm -f *.o opiekey opiegen opielogin opiepasswd opiesu opieftpd 233 -rm -f opieserv opieinfo opietest *core* opietest-passed 234 -rm -f Makefile.munge configure.munger y.tab.c .gdb* 235 (cd libopie ; $(MAKE) clean) 236 (cd libmissing ; $(MAKE) clean) 237 238realclean: clean 239 -rm -f *~ core* "\#*\#" Makefile make.log 240 -rm -f config.log config.status config.cache config.h 241 (cd libopie ; $(MAKE) realclean) 242 (cd libmissing ; $(MAKE) realclean) 243 244opiekey: opiekey.o $(LDEPS) 245 $(CC) $(CFLAGS) opiekey.o $(LFLAGS) -o opiekey 246 247opiegen: opiegen.o $(LDEPS) 248 $(CC) $(CFLAGS) opiegen.o $(LFLAGS) -o opiegen 249 250opieserv: opieserv.o $(LDEPS) 251 $(CC) $(CFLAGS) opieserv.o $(LFLAGS) -o opieserv 252 253opieftpd: opieftpd.o glob.o popen.o y.tab.o $(LDEPS) 254 $(CC) $(CFLAGS) opieftpd.o glob.o popen.o y.tab.o $(LFLAGS) -o opieftpd 255 256opielogin: opielogin.o permsfile.o $(LDEPS) 257 $(CC) $(CFLAGS) opielogin.o permsfile.o $(LFLAGS) -o opielogin 258 259opiepasswd: opiepasswd.o $(LDEPS) 260 $(CC) $(CFLAGS) opiepasswd.o $(LFLAGS) -o opiepasswd 261 262opiesu: opiesu.o $(LDEPS) 263 $(CC) $(CFLAGS) opiesu.o $(LFLAGS) -o opiesu 264 265y.tab.c: ftpcmd.y 266 $(YACC) ftpcmd.y 267 268opieinfo: opieinfo.o $(LDEPS) 269 $(CC) $(CFLAGS) opieinfo.o $(LFLAGS) -o opieinfo 270 271opietest: opietest.o $(LDEPS) 272 $(CC) $(CFLAGS) opietest.o $(LFLAGS) -o opietest 273