PROGRAM= router
#
# ZMailer Router makefile
#
srcdir = .
SHELL= /bin/sh
CC= gcc
COPTS= -g -O2
CPPFLAGS=
CPPDEP= gcc -MM
TOPDIR= ..
MAILBIN= $(DESTDIR)/opt/mail/bin
DEFS= -DHAVE_CONFIG_H
INSTALL= /usr/bin/install -c
ROUTER_INCL=
ROUTER_LIB= -lcrypt -ldb -lgdbm -lresolv
# Above the LIBSOCKET (for SysVR4) must be last
#
INCL= -I$(srcdir)/$(TOPDIR)/include -I$(TOPDIR)/include -I$(TOPDIR) -I$(srcdir)/$(TOPDIR)/libsh -I$(TOPDIR)/libsh -I.
CFLAGS= $(COPTS) $(CPPFLAGS) $(DEFS) $(INCL) $(ROUTER_INCL)
LIBMALLOC=
LIBMALLOCDEB= $(TOPDIR)/libmalloc/libmalloc_d.a-a
#
LIB= -L$(TOPDIR)/libs -lzmdb -lsh -lzm -lzc -lta $(LIBMALLOC)
LIBDEB= $(TOPDIR)/libs/libtag $(TOPDIR)/libs/libta.a \
$(TOPDIR)/libs/libzm.a $(TOPDIR)/libs/libzc.a \
$(TOPDIR)/libs/libsh.a $(TOPDIR)/libs/libzmdb.a
LINTLIB= libdb/llib-llibdb.ln $(TOPDIR)/lib/llib-llibz.ln $(TOPDIR)/libc/llib-llibzc.ln
SSL= $(TOPDIR)/ssl/ssl
RUNSSL= rm -f $(TOPDIR)/include/rfc822.entry rfc822.sst.? ; \
${SSL} -E HeaderSemantics -D short -h rfc822.sst.h -t rfc822.sst.c \
-e $(TOPDIR)/include/rfc822.entry $(srcdir)/rfc822.ssl
OBJS= router.o dateparse.o conf.o functions.o db.o \
shliaise.o rfc822.o rfc822hdrs.o rfc822walk.o \
daemonsub.o rtsyslog.o \
$(TOPDIR)/scheduler/pipes.o $(TOPDIR)/scheduler/resources.o
SOURCE= router.c dateparse.c conf.c functions.c db.c \
shliaise.c rfc822.c rfc822hdrs.c rfc822walk.c \
rtsyslog.c daemonsub.c
RFC822OBJS= rfc822walk.o rfc822test.o dateparse.o
all $(PROGRAM)-a: $(TOPDIR)/include/rfc822.entry $(LIBDEB) $(PROGRAM)
.c.o:
$(CC) $(CFLAGS) -c $<
$(OBJS): $(srcdir)/../include/shmmib.h ../include/mail.h
$(OBJS): $(srcdir)/prototypes.h
$(PROGRAM): $(TOPDIR)/include/rfc822.entry $(LIBDEB) version.o $(OBJS)
$(CC) $(CFLAGS) -o $@.x $(OBJS) version.o $(LIB) $(ROUTER_LIB)
mv $@.x $@
$(PROGRAM).third: $(TOPDIR)/include/rfc822.entry $(LIBDEB) version.o $(OBJS)
-rm -f $(PROGRAM)
make $(PROGRAM) LIBMALLOC= CFLAGS="${CFLAGS} -non_shared"
atom -tool third -o $(PROGRAM).third $(PROGRAM)
version.c: $(OBJS) $(TOPDIR)/Makefile
@$(MAKE) $(MFLAGS) -f $(TOPDIR)/Makefile $@
rfc822test: $(RFC822OBJS) $(TOPDIR)/libs/libzm.a
$(CC) $(CFLAGS) $(RFC822OBJS) -o $@ $(TOPDIR)/libs/libzm.a $(LIB)
rfc822.entry: $(TOPDIR)/include/rfc822.entry $(SSL)
$(TOPDIR)/include/rfc822.entry rfc822.sst.c rfc822.sst.h: rfc822.ssl ${SSL}
$(RUNSSL)
rfc822walk.o: rfc822walk.c rfc822.sst.c rfc822.sst.h
$(TOPDIR)/scheduler/pipes.o:
cd $(TOPDIR)/scheduler ; $(MAKE) $(MFLAGS) pipes.o
$(TOPDIR)/scheduler/resources.o:
cd $(TOPDIR)/scheduler ; $(MAKE) $(MFLAGS) resources.o
${SSL}: $(srcdir)/${SSL}.c
cd $(TOPDIR)/ssl ; $(MAKE) $(MFLAGS)
install: $(PROGRAM)-a $(PROGRAM)
$(INSTALL) -m 0755 $(PROGRAM) $(MAILBIN)/$(PROGRAM).x
mv $(MAILBIN)/$(PROGRAM).x $(MAILBIN)/$(PROGRAM)
tags:
ctags *.c *.h
clean mostlyclean:
-rm -f $(PROGRAM) rfc822test tags make.log *~
-rm -f *.o *.out *.ln *.sst.? *.lst *.3rd *.3log
cd libdb ; $(MAKE) $(MFLAGS) MAKE=$(MAKE) clean
distclean: clean
rm -f Makefile libdb/Makefile
lintlib: y.tab.c lex.yy.c llib-l$(PROGRAM).ln
llib-l$(PROGRAM).ln: $(SOURCE)
lint -C$(PROGRAM) $(DEFS) $(INCL) $(SOURCE)
lint: $(LINTLIB) rfc822.sst.h rfc822.sst.c
lint -hc $(DEFS) $(INCL) $(LINTLIB) $(SOURCE)
$(LIBDEB):
cd $(TOPDIR)/libs ; $(MAKE) $(MFLAGS) libtag
$(TOPDIR)/libc/llib-llibc.ln:
cd $(TOPDIR)/libc ; $(MAKE) $(MFLAGS) lintlib
$(TOPDIR)/lib/llib-llibz.ln:
cd $(TOPDIR)/lib ; $(MAKE) $(MFLAGS) lintlib
libdb/llib-llibdb.ln:
cd libdb ; $(MAKE) $(MFLAGS) lintlib
libdb/libzmdb.a-a:
cd libdb ; $(MAKE) $(MFLAGS)
libdb/libzmdb.a:
cd libdb ; $(MAKE) $(MFLAGS)
../libsh/sh.sst.h:
cd ../libsh; $(MAKE) $(MFLAGS) sh.h
depend: rfc822.sst.c rfc822.sst.h $(TOPDIR)/include/rfc822.entry ../libsh/sh.sst.h
CPPDEP="${CPPDEP}" CPPOPT="$(CFLAGS)" $(TOPDIR)/bin/mkdep -s $(srcdir) $(SOURCE)
# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
syntax highlighted by Code2HTML, v. 0.9.1