#
#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
syntax highlighted by Code2HTML, v. 0.9.1