# #ident "@(#)smail/util:RELEASE-3_2_0_121:Makefile,v 1.56 2005/07/12 18:45:55 woods Exp" # # Makefile for the smail utility tools # # Copyright (C) 1987, 1988 Ronald S. Karr and Landon Curt Noll # Copyright (C) 1992 Ronald S. Karr # # See the file COPYING, distributed with smail, for restriction # and warranty information. ROOT=.. THIS_DIR=util include ${ROOT}/conf/Make.local MKDEPEND=${ROOT}/conf/lib/mkdepend.sh MKVERSION=${ROOT}/conf/lib/mkversion.sh MKDEFS=${ROOT}/conf/lib/mkdefs.sh CHECKDEFS=${ROOT}/conf/lib/checkdefs.sh MKDIRS=${ROOT}/conf/lib/mkdirs.sh INSTM=${ROOT}/conf/lib/instm.sh INST=${ROOT}/conf/lib/inst.sh XEXEC=${SHELL} ${ROOT}/conf/lib/xexec.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 SMAILSRC=${ROOT}/src UTILSRC=${ROOT}/util INCLUDES=-I${SMAILSRC} $$DBM_INCLUDES $$INCLUDES LOCAL_SRC=addr.c field.c parse.c ascii.c string.c match.c list.c log.c config.c alloc.c hash.c pwcache.c sysdep.c LOCAL_OBJ=addr.o field.o parse.o ascii.o string.o match.o list.o log.o config.o alloc.o hash.o pwcache.o sysdep.o LOCAL_LIB=libsmail.a SH_TARGETS=checkerr getmap init logsumm mkaliases mkpath \ mkuuwho mkhpath bouncemail savelog smailbug unfreezemail C_TARGETS=mkline mksort dcasehost mkdbm pathmerge gleem unsharmap UTIL_TARGETS=${SH_TARGETS} ${C_TARGETS} # this may not always be sane or necessary.... BIN_TARGETS=bouncemail mkaliases smailbug unfreezemail CYRUS_BIN_TARGETS=cyrus-deliver-noquota mkcyrusoqlist TARGETS=${UTIL_TARGETS} ${BIN_TARGETS} ${CYRUS_BIN_TARGETS} STRIP_TARGETS=mkline mksort dcasehost mkdbm pathmerge gleem unsharmap OBJ=mkline.o mksort.o dcasehost.o mkdbm.o pathmerge.o \ gleem.o unsharmap.o CSRC=mkline.c mksort.c dcasehost.c mkdbm.c pathmerge.c gleem.c unsharmap.c HSRC=dbm_compat.h SHSRC=mkpath.sh checkerr.sh getmap.sh logsumm.sh mkaliases.sh mkcyrusoqlist.sh \ savelog.sh mkuuwho.sh mkhpath.sh bouncemail.sh smailbug.sh unfreezemail.sh AWK_SRC=logsumm.awk mkpath.awk mkuuwho.awk MISCSRC=Makefile SRC=${CSRC} ${HSRC} ${SHSRC} ${AWK_SRC} ${MISCSRC} COMPAT_LIB_DIR=${ROOT}/compat COMPAT_LIB=${COMPAT_LIB_DIR}/libcompat.a .c.o: @. ./${DEFS_SH}; ${XEXEC} $$CC ${INCLUDES} $$CFLAGS -c $*.c all: ${TARGETS} mkdefs defs ${DEFS_H} ${DEFS_SH} ${DEFS_SED}: ${ROOT}/conf/EDITME ROOT=${ROOT} ${SHELL} ${MKDEFS} mkversion ${VERSION_H} ${VERSION_SH} ${VERSION_SED}: ROOT=${ROOT} ${SHELL} ${MKVERSION} .PRECIOUS: ${ROOT}/conf/EDITME ${ROOT}/conf/EDITME: ${DOT_MAKE} # cannot depend on anything! cd ${ROOT}/conf && ${MAKE} EDITME ${COMPAT_LIB}: ${DOT_MAKE} @if [ -f ${COMPAT_LIB_DIR}/.depend ] ; then \ DEPMKFILE="-f Makefile -f .depend"; \ fi; \ echo "cd ${COMPAT_LIB_DIR} && ${MAKE} $$DEPMKFILE all"; \ cd ${COMPAT_LIB_DIR} && ${MAKE} $$DEPMKFILE all ${LOCAL_LIB}: ${LOCAL_OBJ} @. ./${DEFS_SH}; \ ${XEXEC} ${AR} rc ${LOCAL_LIB} ${LOCAL_OBJ}; \ ${XEXEC} $$RANLIB ${LOCAL_LIB} install: all install-dirs install-bins install-libs install-bins: all @. ./${DEFS_SH}; \ case "$$DONT_INSTALL" in \ ?*) echo Testing ... install ignored; exit 0;; \ esac; \ l_flag=; \ case "$$USE_SYMLINKS" in \ ?*) l_flag=-l;; \ esac; \ ${XEXEC} ${SHELL} ${INSTM} -m 0555 $$UTIL_BIN_DIR ${UTIL_TARGETS}; \ for i in ${BIN_TARGETS} ; do \ case $$UTIL_BIN_DIR in \ "$$SMAIL_BIN_DIR") xx="";; \ *) xx=$$SMAIL_BIN_DIR/$$i;; \ esac; \ ${XEXEC} ${SHELL} ${INST} -m 0555 $$l_flag -d $$UTIL_BIN_DIR $$i $$i $$xx; \ done; \ ${XEXEC} ${SHELL} ${INSTM} -m 0444 $$UTIL_BIN_DIR ${AWK_SRC}; \ case "$$STRIP" in \ ?*) for i in ${STRIP_TARGETS}; do \ ${XEXEC} strip $$UTIL_BIN_DIR/$$i; \ if [ -x /usr/bin/mcs ]; then \ ${XEXEC} mcs -d $$UTIL_BIN_DIR/$$i; \ fi; \ done; \ esac install-cyrus-bins: all @. ./${DEFS_SH}; \ case "$$DONT_INSTALL" in \ ?*) echo Testing ... install ignored; exit 0;; \ esac; \ ${XEXEC} ${SHELL} ${INSTM} -m 0555 $$UTIL_BIN_DIR ${CYRUS_BIN_TARGETS}; \ for i in ${CYRUS_BIN_TARGETS} ; do \ case $$UTIL_BIN_DIR in \ "$$SMAIL_BIN_DIR") xx="";; \ *) xx=$$SMAIL_BIN_DIR/$$i;; \ esac; \ ${XEXEC} ${SHELL} ${INST} -m 0555 $$l_flag -d $$UTIL_BIN_DIR $$i $$i $$xx; \ done; \ install-libs: ${DEFS_SH} @. ./${DEFS_SH}; \ case "$$DONT_INSTALL" in \ ?*) echo Testing ... install-libs ignored; exit 0;; \ esac; \ if [ ! -f "$$LIB_DIR/dead-mail.egrep" ] ; then \ ${XEXEC} ${SHELL} ${INSTM} -m 0444 $$LIB_DIR dead-mail.egrep; \ fi install-dirs: ${DEFS_SH} @. ./${DEFS_SH}; \ case "$$DONT_INSTALL" in \ ?*) echo Testing ... install-dirs ignored; exit 0;; \ esac; \ ${XEXEC} ${SHELL} ${MKDIRS} -m 0755 $$UTIL_BIN_DIR $$SMAIL_BIN_DIR \ $$LIB_DIR $$LIB_DIR/maps $$MAIN_SPOOL_DIR \ $$SPOOL_DIRS $$TMP_DIR; \ case "$$UNSHAR_MAP_DIR" in \ ?*) ${XEXEC} ${SHELL} ${MKDIRS} -m 0755 $$UNSHAR_MAP_DIR \ $$UNSHAR_MAP_DIR/work;; \ esac; CTAGS = ctags ctags tags: ${SRC} ${DEFS_SH} ${DEFS_H} @. ./${DEFS_SH}; \ ${XEXEC} ${CTAGS} $(CTAGFLAGS) ${CSRC} ETAGS = emacs-etags etags TAGS: ${CSRC} ${DEFS_SH} ${DEFS_H} @. ./${DEFS_SH}; \ ${XEXEC} ${ETAGS} $(ETAGFLAGS) ${CSRC} depend: ${CSRC} ${LOCAL_SRC} ${DEFS_SH} ${DEFS_H} check_defs @rm -f .depend -@for i in ${LOCAL_SRC}; do \ if cmp -s $$i ${SMAILSRC}/$$i; then \ : ; \ else \ ${XEXEC} rm -f $$i; \ ${XEXEC} cp ${SMAILSRC}/$$i $$i; \ ${XEXEC} chmod 444 $$i; \ fi; \ done @. ./${DEFS_SH}; ${XEXEC} ${SHELL} ${MKDEPEND} ${INCLUDES} $$CPPFLAGS ${CSRC} ${LOCAL_SRC} . ./${DEFS_SH}; echo "$$DEFS_DEPEND" >> .depend check_defs: SHELL=${SHELL} ROOT=${ROOT} ${SHELL} ${CHECKDEFS} ${SH_TARGETS}: ${DEFS_SED} ${VERSION_SED} mkline: mkline.o ${LOCAL_LIB} ${DEFS_SH} ${COMPAT_LIB} @. ./${DEFS_SH}; ${XEXEC} $$CC $$CFLAGS $$LDFLAGS -o mkline mkline.o \ ${LOCAL_LIB} $$LIBS ${COMPAT_LIB} mksort: mksort.o ${LOCAL_LIB} ${DEFS_SH} ${COMPAT_LIB} @. ./${DEFS_SH}; ${XEXEC} $$CC $$CFLAGS $$LDFLAGS -o mksort mksort.o \ ascii.o ${LOCAL_LIB} $$LIBS ${COMPAT_LIB} dcasehost: dcasehost.o ${LOCAL_LIB} ${DEFS_SH} ${COMPAT_LIB} @. ./${DEFS_SH}; ${XEXEC} $$CC $$CFLAGS $$LDFLAGS -o dcasehost dcasehost.o \ ${LOCAL_LIB} $$LIBS ${COMPAT_LIB} mkdbm: mkdbm.o ${LOCAL_LIB} ${DEFS_SH} ${COMPAT_LIB} @. ./${DEFS_SH}; ${XEXEC} $$CC $$CFLAGS $$LDFLAGS -o mkdbm mkdbm.o \ ${LOCAL_LIB} $$LIBS $$DBM_LIB ${COMPAT_LIB} pathmerge: pathmerge.o ${LOCAL_LIB} ${DEFS_SH} ${COMPAT_LIB} @. ./${DEFS_SH}; ${XEXEC} $$CC $$CFLAGS $$LDFLAGS -o pathmerge pathmerge.o \ ${LOCAL_LIB} $$LIBS ${COMPAT_LIB} gleem: gleem.o ${DEFS_SH} ${COMPAT_LIB} @. ./${DEFS_SH}; ${XEXEC} $$CC $$CFLAGS $$LDFLAGS -o gleem gleem.o \ $$LIBS ${COMPAT_LIB} unsharmap: unsharmap.o ${LOCAL_LIB} ${DEFS_SH} ${COMPAT_LIB} @. ./${DEFS_SH}; ${XEXEC} $$CC $$CFLAGS $$LDFLAGS -o unsharmap unsharmap.o \ ${LOCAL_LIB} $$LIBS ${COMPAT_LIB} addr.c: ${SMAILSRC}/addr.c -rm -f $@ cp $? $@ chmod 444 $@ field.c: ${SMAILSRC}/field.c -rm -f $@ cp $? $@ chmod 444 $@ parse.c: ${SMAILSRC}/parse.c -rm -f $@ cp $? $@ chmod 444 $@ ascii.c: ${SMAILSRC}/ascii.c -rm -f $@ cp $? $@ chmod 444 $@ string.c: ${SMAILSRC}/string.c -rm -f $@ cp $? $@ chmod 444 $@ match.c: ${SMAILSRC}/match.c -rm -f $@ cp $? $@ chmod 444 $@ list.c: ${SMAILSRC}/list.c -rm -f $@ cp $? $@ chmod 444 $@ log.c: ${SMAILSRC}/log.c -rm -f $@ cp $? $@ chmod 444 $@ config.c: ${SMAILSRC}/config.c -rm -f $@ cp $? $@ chmod 444 $@ alloc.c: ${SMAILSRC}/alloc.c -rm -f $@ cp $? $@ chmod 444 $@ hash.c: ${SMAILSRC}/hash.c -rm -f $@ cp $? $@ chmod 444 $@ pwcache.c: ${SMAILSRC}/pwcache.c -rm -f $@ cp $? $@ chmod 444 $@ sysdep.c: ${SMAILSRC}/sysdep.c -rm -f $@ cp $? $@ chmod 444 $@ clean: rm -f .${DEFS_SH} .${DEFS_H} .${DEFS_SED} rm -f ${OBJ} ${LOCAL_OBJ} ${LOCAL_LIB} core a.out clobber: clean rm -f .depend rm -f ${DEFS_SH} ${DEFS_H} ${DEFS_SED} ${LOCAL_SRC} rm -f ${VERSION_SH} ${VERSION_H} ${VERSION_SED} rm -f ${TARGETS} ${OBJ}: ${DEFS_H} # some versions of BSD PMake are quite stupid about single-suffix rules... bouncemail: bouncemail.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ cyrus-deliver-noquota: cyrus-deliver-noquota.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ checkerr: checkerr.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ getmap: getmap.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ init: init.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ logsumm: logsumm.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ mkaliases: mkaliases.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ mkcyrusoqlist: mkcyrusoqlist.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ mkhpath: mkhpath.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ mkpath: mkpath.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ mkuuwho: mkuuwho.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ savelog: savelog.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ smailbug: smailbug.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ unfreezemail: unfreezemail.sh @-rm -f $@ sed -f ${DEFS_SED} $@.sh | sed -f ${VERSION_SED} > $@ chmod +x $@ .PHONY: all install local-install clean local-clean clobber local-clobber depend local-depend lint mkdefs defs check_defs tags TAGS .PHONY: install-dirs install-libs install-bins