DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: M T

⟦0c4e0795a⟧ TextFile

    Length: 12487 (0x30c7)
    Types: TextFile
    Names: »Makefile«

Derivation

└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
    └─⟦2fafebccf⟧ »EurOpenD3/mail/smail3.1.19.tar.Z« 
        └─⟦bcd2bc73f⟧ 
            └─⟦this⟧ »src/Makefile« 

TextFile

#!/bin/make -f
# @(#)Makefile	3.77 3/25/89 15:48:16
# Makefile for the smail program
#
#    Copyright (C) 1987, 1988 Ronald S. Karr and Landon Curt Noll
# 
# See the file COPYING, distributed with smail, for restriction
# and warranty information.

SHELL=/bin/sh
MAKE=make
GET=sccs get
AR=ar
LINT=lint
CC=cc
CLEAN=sccs clean
MK=${MAKE} -${MAKEFLAGS}
SRC_PREFIX=
MKDEPEND=${ROOT}/conf/lib/mkdepend.sh
MKVERSION=${ROOT}/conf/lib/mkversion.sh
MKDEFS=${ROOT}/conf/lib/mkdefs.sh
MKDIRS=${ROOT}/conf/lib/mkdirs.sh
CHECKDEFS=${ROOT}/conf/lib/checkdefs.sh
INST=${ROOT}/conf/lib/inst.sh
INSTM=${ROOT}/conf/lib/instm.sh
DEFS_SH=defs.sh
DEFS_H=defs.h
DEFS_SED=defs.sed
VERSION_SH=version.sh
VERSION_H=version.h
VERSION_SED=version.sed
CFLAGS=$$CFLAGS
LIBS=$$LIBS

ROOT=..
CSRC=addr.c alloc.c ascii.c config.c copyright.c default.c direct.c expand.c \
     field.c hash.c header.c log.c lookup.c main.c modes.c notify.c parse.c \
     pathto.c pwcache.c qualify.c queue.c resolve.c route.c smailconf.c \
     smtprecv.c spool.c string.c sysdep.c transport.c verify.c version.c
LASTSRC=silly.c
HSRC=addr.h alloc.h child.h config.h debug.h direct.h dys.h error.h \
     exitcodes.h extern.h field.h hash.h lookup.h log.h main.h parse.h \
     route.h smail.h smailconf.h spool.h transport.h
MISCSRC=Makefile mkdriv.awk COPYING
SHSRC=mkdrivtab.sh bump_cnt.sh
SRC=${CSRC} ${HSRC} ${SHSRC} ${MISCSRC} ${LASTSRC}
FIRSTOBJ=copyright.o
OBJ=addr.o alloc.o ascii.o config.o default.o direct.o drivertab.o expand.o \
    field.o hash.o header.o log.o lookup.o main.o modes.o notify.o parse.o \
    pathto.o pwcache.o qualify.o queue.o resolve.o route.o smailconf.o \
    smtprecv.o spool.o string.o sysdep.o transport.o verify.o version.o
LASTOBJ=silly.o
STANDOBJ=stand_hash.o stand_silly.o
STAND=addr field aliasfield hash spool header log silly smailconf
DRIVLIBS=directors/ddrivlib.a routers/rdrivlib.a transports/tdrivlib.a
DIRECTORS_HSRC=aliasfile.h fwdfile.h include.h smartuser.h user.h
DIRECTORS_CSRC=aliasfile.c fwdfile.c include.c smartuser.c user.c
DIRECTORS_SRC=${DIRECTORS_HSRC} ${DIRECTORS_CSRC}
ROUTERS_HSRC=bind.h rtlib.h gethost.h pathalias.h smarthost.h uuname.h \
	     queryprog.h
ROUTERS_CSRC=bind.c rtlib.c gethost.c pathalias.c smarthost.c uuname.c \
	     queryprog.c
ROUTERS_SRC=${ROUTERS_HSRC} ${ROUTERS_CSRC}
TRANSPORTS_HSRC=appendfile.h pipe.h tcpsmtp.h smtplib.h
TRANSPORTS_CSRC=appendfile.c pipe.c tcpsmtp.c smtplib.c
TRANSPORTS_SRC=${TRANSPORTS_HSRC} ${TRANSPORTS_CSRC}
COMPAT_LIB_DIR=${ROOT}/compat
COMPAT_LIB=${COMPAT_LIB_DIR}/compat.a

# Smail will be copied to BIN_DIR with links for all of these names
BIN_NAMES=smail mailq pathto optto uupath runq rsmtp smtpd

.c.o:
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -c $*.c

all:	ddrivlib rdrivlib tdrivlib smail

smail:	${DEFS_SH} ${FIRSTOBJ} ${OBJ} ${DRIVLIBS} ${LASTOBJ} ${COMPAT_LIB} \
		bump_cnt.sh
	. ./${DEFS_SH}; sh bump_cnt.sh
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -c ldinfo.c
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -o smail ${FIRSTOBJ} \
		${OBJ} ${DRIVLIBS} ${LASTOBJ} ${COMPAT_LIB} ${LIBS} ldinfo.o

${FIRSTOBJ} ${OBJ} ${LASTOBJ}: ${DEFS_SH}

${COMPAT_LIB}:
	cd ${COMPAT_LIB_DIR}; ${MK}

lint:	drivertab.c ${CSRC} ${DEFS_SH}
	@. ./${DEFS_SH}; \
	   files="drivertab.c ${CSRC}"; \
	   echo "Get C files under ${SRC_PREFIX}directors ..."; \
	   for i in `(cd directors; ${MK} csrc)`; do \
		files="$$files directors/$$i"; \
	   done; \
	   echo "Get C files under ${SRC_PREFIX}routers ..."; \
	   for i in `(cd routers; ${MK} csrc)`; do \
		files="$$files routers/$$i"; \
	   done; \
	   echo "Get C files under ${SRC_PREFIX}transports ..."; \
	   for i in `(cd transports; ${MK} csrc)`; do \
		files="$$files transports/$$i"; \
	   done; \
	   echo ${LINT} ${LINTFLAGS} $$files; \
	   ${LINT} ${LINTFLAGS} $$files

${SRC}:
	${GET} $@

sources: ${SRC}
	@echo "Get sources under ${SRC_PREFIX}directors ..."
	-@cd directors; for i in ${DIRECTORS_SRC}; do \
		if [ ! -f $$i ]; then \
			echo ${GET} $$i; ${GET} $$i; \
			${GET} $$i; ${GET} $$i; \
		fi; \
	  done
	@echo "Get sources under ${SRC_PREFIX}routers ..."
	-@cd routers; for i in ${ROUTERS_SRC}; do \
		if [ ! -f $$i ]; then \
			echo ${GET} $$i; ${GET} $$i; \
			${GET} $$i; ${GET} $$i; \
		fi; \
	  done
	@echo "Get sources under ${SRC_PREFIX}transports ..."
	-@cd transports; for i in ${TRANSPORTS_SRC}; do \
		if [ ! -f $$i ]; then \
			echo ${GET} $$i; ${GET} $$i; \
			${GET} $$i; ${GET} $$i; \
		fi; \
	  done

${DEFS_H} ${DEFS_SH} ${DEFS_SED}:
	ROOT=${ROOT} sh ${MKDEFS}

${VERSION_H} ${VERSION_SH} ${VERSION_SED}:
	ROOT=${ROOT} sh ${MKVERSION}

names:
	@for i in ${SRC}; do echo ${SRC_PREFIX}$$i; done
	@for i in ${DIRECTORS_SRC}; do echo ${SRC_PREFIX}directors/$$i; done
	@for i in ${ROUTERS_SRC}; do echo ${SRC_PREFIX}routers/$$i; done
	@for i in ${TRANSPORTS_SRC}; do echo ${SRC_PREFIX}transports/$$i; done

ddrivlib: ${HSRC} ${DEFS_H}
directors/ddrivlib.a ddrivlib: directors/Makefile
	@echo "Build targets under ${SRC_PREFIX}directors ..."
	@cd directors; ${MK}

rdrivlib: ${HSRC} ${DEFS_H}
routers/rdrivlib.a rdrivlib: routers/Makefile
	@echo "Build targets under ${SRC_PREFIX}routers ..."
	@cd routers; ${MK}

tdrivlib: ${HSRC} ${DEFS_H}
transports/tdrivlib.a tdrivlib: transports/Makefile
	@echo "Build targets under ${SRC_PREFIX}transports ..."
	@cd transports; ${MK}

drivertab.c directors/Makefile transports/Makefile routers/Makefile: \
		mkdrivtab.sh mkdriv.awk ${DEFS_SH}
	@. ./${DEFS_SH}; echo "sh mkdrivtab.sh $$DRIVER_CONFIGURATION"; \
	   sh mkdrivtab.sh $$DRIVER_CONFIGURATION
	@for i in directors routers transports; do \
		echo "Building dependencies under ${SRC_PREFIX}$$i ..."; \
		(cd $$i; ${MK} SRC_PREFIX=${SRC_PREFIX}$$i/ depend); \
	 done

depend: ${SRC} check_defs subdir_depend local_depend

subdir_depend: remove_driver_makefiles \
		directors/Makefile routers/Makefile transports/Makefile

local_depend: ${VERSION_H}
	. ./${DEFS_SH}; sh ${MKDEPEND} Makefile ${FIRSTSRC} ${CSRC}
	. ./${DEFS_SH}; echo "$$DEFS_DEPEND" >> Makefile; \
	  echo "drivertab.c: $$DRIVER_CONFIGURATION" >> Makefile; \
	  echo "directors/Makefile: $$DRIVER_CONFIGURATION" >> Makefile; \
	  echo "routers/Makefile: $$DRIVER_CONFIGURATION" >> Makefile; \
	  echo "transports/Makefile: $$DRIVER_CONFIGURATION" >> Makefile; \
	  echo chmod -w Makefile; \
	  chmod -w Makefile

check_defs:
	ROOT=${ROOT} ${SHELL} ${CHECKDEFS}

remove_driver_makefiles:
	rm -f directors/Makefile routers/Makefile transports/Makefile

clean:
	rm -f ${DEFS_SH} ${DEFS_H} ${DEFS_SED}
	rm -f ${VERSION_SH} ${VERSION_H} ${VERSION_SED}
	rm -f ${FIRSTOBJ} ${OBJ} ${LASTOBJ} ${STANDOBJ} core ldinfo.o
	-@for i in directors routers transports; do \
	    if [ -f $$i/Makefile ]; then \
		echo "Clean under ${SRC_PREFIX}$$i ..."; \
		(cd $$i; ${MK} SRC_PREFIX=${SRC_PREFIX}$$i/ clean); \
	    else \
		echo "Ignoring ${SRC_PREFIX}$$i -- no Makefile"; \
	    fi; \
	  done

clobber:
	rm -f ${DEFS_SH} ${DEFS_H} ${DEFS_SED}
	rm -f ${VERSION_SH} ${VERSION_H} ${VERSION_SED}
	rm -f ${FIRSTOBJ} ${OBJ} ${LASTOBJ} ${STANDOBJ} core ldinfo.o
	rm -f smail ${STAND}
	rm -f drivertab.c
	rm -f .${DEFS_SH} .${DEFS_H} .${DEFS_SED} .Makefile
	-@for i in directors routers transports; do \
	    if [ -f $$i/Makefile ]; then \
		echo "Clobber under ${SRC_PREFIX}$$i ..."; \
		(cd $$i; ${MK} SRC_PREFIX=${SRC_PREFIX}$$i/ clobber); \
	    else \
		echo "Ignoring ${SRC_PREFIX}$$i -- no Makefile"; \
	    fi; \
	  done

nuke:
	rm -f ${DEFS_SH} ${DEFS_H} ${DEFS_SED}
	rm -f ${VERSION_SH} ${VERSION_H} ${VERSION_SED}
	rm -f ${FIRSTOBJ} ${OBJ} ${LASTOBJ} core ldinfo.o
	rm -f smail ${STAND}
	rm -f drivertab.c
	rm -f .${DEFS_SH} .${DEFS_H} .${DEFS_SED} .Makefile
	-${CLEAN}
	-${GET} Makefile
	-@for i in directors routers transports; do \
	    if [ -f $$i/Makefile ]; then \
		echo "Nuke under ${SRC_PREFIX}$$i ..."; \
		(cd $$i; ${MK} SRC_PREFIX=${SRC_PREFIX}$$i/ nuke); \
	    else \
		echo "No Makefile -- nuke ${SRC_PREFIX}$$i from above ..."; \
		(cd $$i; ${CLEAN}); \
	    fi; \
	  done

install: ${DEFS_SH} all install-dirs install-bins install-libs

install-bins:
	@. ./${DEFS_SH} ;\
	   case "$$DONT_INSTALL" in \
	   ?*)	echo Testing ... install-bins ignored; exit 0;; \
	   esac; \
	   l_flag=; \
	   case "$$USE_SYMLINKS" in \
	   ?*)	l_flag=-l;; \
	   esac; \
	   s_flag=; \
	   case "$$STRIP" in \
	   ?*)	s_flag=-s;; \
	   esac; \
	   echo ${SHELL} ${INST} $$s_flag $$l_flag -u root -m 4555 \
			    -d $$SMAIL_BIN_DIR \
			    smail ${BIN_NAMES} $$OTHER_SMAIL_NAMES; \
	   ${SHELL} ${INST} $$s_flag $$l_flag -u root -m 4555 \
			    -d $$SMAIL_BIN_DIR \
			    smail ${BIN_NAMES} $$OTHER_SMAIL_NAMES

install-libs:
	@. ./${DEFS_SH}; \
	   case "$$DONT_INSTALL" in \
	   ?*)	echo Testing ... install-libs ignored; exit 0;; \
	   esac; \
	   echo ${SHELL} ${INSTM} -m 0555 $$LIB_DIR COPYING; \
	   ${SHELL} ${INSTM} -m 0555 $$LIB_DIR COPYING

install-dirs:
	@. ./${DEFS_SH}; \
	   case "$$DONT_INSTALL" in \
	   ?*)	echo Testing ... install-dirs ignored; exit 0;; \
	   esac; \
	   echo ${SHELL} ${MKDIRS} -m 0755 $$LIB_DIR $$LIB_DIR/methods \
				           $$SMAIL_BIN_DIR; \
	   ${SHELL} ${MKDIRS} -m 0755 $$LIB_DIR $$LIB_DIR/methods \
				      $$SMAIL_BIN_DIR

# build standalone versions to test various subsystems
#
# NOTE:  these are not checked on a regular basis and are thus not
#	 guarranteed to be compilable.  Some of these rules also leave
#	 object files which are not suitable for loading into the final
#	 smail binary and thus must be removed.
#
# stand_silly.o is loaded as the last module to overcome some
# gdb problems on one of our testing machines
stand_silly.o: silly.c
	@-rm -f stand_silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -c \
		-DSTANDALONE -DHASH_STANDALONE silly.c
	mv silly.o stand_silly.o

hash:	stand_hash.o ascii.o stand_silly.o
	@rm -f hash.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -o hash \
		stand_hash.o ascii.o stand_silly.o
	@rm -f hash.o
stand_hash.o: hash.c hash.h exitcodes.h
	@-rm -f stand_hash.o
	. ./${DEFS_SH}; \
	  ${CC} ${CFLAGS} -DSTANDALONE -DETHEREAL_HASHDATA hash.c -c
	mv hash.o stand_hash.o
linthash:
	. ./${DEFS_SH}; ${LINT} -DSTANDALONE hash.c

silly:  silly.c
	@rm -f silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -DSTANDALONE silly.c -o silly
	@rm -f silly.o

field:	field.c compat.h config.h extern.h addr.h field.h dys.h smail.h \
		debug.h exitcodes.h string.o alloc.o qualify.o addr.o \
		stand_silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -DSTANDALONE -o field \
		field.c string.o qualify.o alloc.o addr.o stand_silly.o

aliasfield:  field.c compat.h config.h extern.h addr.h field.h dys.h smail.h \
		debug.h exitcodes.h string.o qualify.o alloc.o addr.o \
		stand_silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -o aliasfield \
		-DSTANDALONE -DNEWALIASES field.c string.o qualify.o \
		alloc.o addr.o stand_silly.o
lintfield:
	. ./${DEFS_SH}; ${LINT} -DSTANDALONE field.c

addr:	addr.c compat.h config.h extern.h addr.h dys.h smail.h debug.h \
		exitcodes.h string.o alloc.o stand_silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -DSTANDALONE -o addr \
		addr.c string.o alloc.o stand_silly.o
lintaddr:
	. ./${DEFS_SH}; ${LINT} -DSTANDALONE addr.c

log:	log.c compat.h config.h extern.h smail.h exitcodes.h \
		string.o alloc.o stand_silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -DSTANDALONE -o log \
		log.c string.o alloc.o stand_silly.o
lintlog:
	. ./${DEFS_SH}; ${LINT} -DSTANDALONE log.c

header:	header.c compat.h config.h extern.h addr.h dys.h field.h smail.h \
		debug.h exitcodes.h log.o field.o string.o sysdep.o alloc.o \
		qualify.o stand_silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -DSTANDALONE -o header \
		header.c log.o field.o misc.o qualify.o stand_silly.o 
lintheader:
	. ./${DEFS_SH}; ${LINT} -DSTANDALONE header.c

spool: spool.c compat.h config.h extern.h addr.h dys.h field.h smail.h \
		debug.h exitcodes.h header.o log.o field.o string.o sysdep.o \
		alloc.o addr.o config.o qualify.o stand_silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -DSTANDALONE -o spool \
		spool.c header.o log.o field.o string.o sysdep.o alloc.o \
		config.o qualify.o addr.o stand_silly.o
lintspool:
	. ./${DEFS_SH}; ${LINT} -DSTANDALONE spool.c

smailconf: ssmailconf.o parse.o string.o alloc.o config.o stand_silly.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -DSTANDALONE -o smailconf \
		ssmailconf.o string.o parse.o alloc.o config.o stand_silly.o
ssmailconf.o: smailconf.c
	@rm -f smailconf.o
	. ./${DEFS_SH}; ${CC} ${CFLAGS} -DSTANDALONE -c smailconf.c
	mv smailconf.o ssmailconf.o

# special dependency:
version.o: version.h

# DO NOT REMOVE THIS LINE, OR "make depend" WILL NOT WORK