#
#    @(#)%M%  %I%  Teemu Torma %H%
#
#    Makefile for FidoNet routines
#
#    @(#)Copyright (C) Teemu Torma 1987
#
#    Use tab stops at every 4 columns.
#
ENA    =
SHELL    =    /bin/sh
INCLUDE    =    /usr/include
CFLAGS    =    -DLOCK_LOCKF -g
LNFLAGS    =    -DLOCK_LOCKF
# removed -O
FUNPACK    =    funpack.o funcs.o nodelist.o gethostname.o address.o \
        getdate.o ftime.o sprintfs.o listscan.o strempty.o
LFUNPACK=    funpack.ln funcs.ln nodelist.ln gethostname.ln address.ln \
        ftime.ln sprintfs.ln listscan.ln strempty.ln
RMAIL    =    rmail.o address.o funcs.o sprintfs.o
LRMAIL    =    rmail.ln address.ln funcs.ln sprintfs.ln
RFMAIL    =    rfmail.o funcs.o nodelist.o gethostname.o address.o getdate.o \
        ftime.o sprintfs.o strempty.o
LRFMAIL    =    rfmail.ln funcs.ln nodelist.ln gethostname.ln address.ln \
        ftime.ln sprintfs.ln strempty.ln
RFNEWS    =    rfnews.o funcs.o nodelist.o address.o sprintfs.o
LRFNEWS    =    rfnews.ln funcs.ln nodelist.ln address.ln sprintfs.ln
FPACK    =    fpack.o funcs.o nodelist.o address.o sprintfs.o
LFPACK    =    fpack.ln funcs.ln nodelist.ln address.ln sprintfs.ln
FCALL    =    fcall.o funcs.o fio.o xtsend.o xtrec.o crc.o nodelist.o \
        address.o sprintfs.o
LFCALL    =    fcall.ln funcs.ln fio.ln xtsend.ln xtrec.ln crc.ln \
        nodelist.ln address.ln sprintfs.ln
CFILES    =    rfmail.c funcs.c rfnews.c rmail.c fpack.c funpack.c fcall.c \
                fio.c xtsend.c xtrec.c nodelist.c gethostname.c dateconv.c \
                address.c crc.c lintlib.c sprintfs.c \
        strempty.c listscan.c ftime.c
HFILES    =    fnet.h config.h fpack.h rmail.h fio.h crc.h hsu.h shuffle.h \
        sysexits.h nodelist.h fnews.h
OTHERFILES    =    README HISTORY INSTALL LICENCE NOTES PROBLEMS \
            TODO Alias fnews.cf notes de d fcaller Makefile \
            getdate.y
LIBS    =    -lPW -ldial
ALL    =    funpack fcall fpack rfmail rfnews rmail hsu.h
OWNER    =    uucp
GROUP    =    mail

.c.ln: $<
    lint -c $(LNFLAGS) $<

.SUFFIXES: .ln

all:        ${ALL}
    touch all

getdate.o: getdate.y
    @echo "expect 8 shift/reduce conflicts"
    yacc getdate.y
    mv y.tab.c getdate.c
    $(CC) $(CFLAGS) -c getdate.c
    -rm -f getdate.c

funpack:    ${FUNPACK}
    cc ${LDFLAGS} -o funpack ${FUNPACK} ${LIBS}
    $(ENA) chown ${OWNER} funpack
    $(ENA) chgrp ${GROUP} funpack
    $(ENA) chmod 4711 funpack

rfmail:        ${RFMAIL}
    cc ${LDFLAGS} -o rfmail ${RFMAIL} ${LIBS}
    $(ENA) chown ${OWNER} rfmail
    $(ENA) chgrp ${GROUP} rfmail
    $(ENA) chmod 4711 rfmail

rfnews:        ${RFNEWS}
    cc ${LDFLAGS} -o rfnews ${RFNEWS} ${LIBS}
    $(ENA) chown ${OWNER} rfnews
    $(ENA) chgrp ${GROUP} rfnews
    $(ENA) chmod 4711 rfnews

fpack:        ${FPACK}
    cc ${LDFLAGS} -o fpack ${FPACK} ${LIBS}
    $(ENA) chown ${OWNER} fpack
    $(ENA) chgrp ${GROUP} fpack
    $(ENA) chmod 4711 fpack

fcall:        ${FCALL}
    cc ${LDFLAGS} -o fcall ${FCALL} ${LIBS}
    $(ENA) chown ${OWNER} fcall
    $(ENA) chgrp ${GROUP} fcall
    $(ENA) chmod 4711 fcall

rmail:        ${RMAIL}
    cc ${LDFLAGS} -o rmail ${RMAIL} ${LIBS}

install:    all
    @for i in ${ALL}; \
    do \
        echo "Moving $$i into ${LIBDIR} ... \c"; \
        cp $$i ${LIBDIR}; \
        $(ENA) chown ${OWNER} ${LIBDIR}/$$i; \
        $(ENA) chgrp ${GROUP} ${LIBDIR}/$$i; \
        $(ENA) chmod 4111 ${LIBDIR}/$$i; \
        echo "done."; \
    done

lintlib.ln:    lintlib.c
    lint -c -x lintlib.c

lfunpack: $(LFUNPACK) lintlib.ln
    lint $(LFUNPACK) lintlib.ln
    touch lfunpack

lrmail: $(LRMAIL) lintlib.ln
    lint $(LRMAIL) lintlib.ln
    touch lrmail

lrfmail: $(LRFMAIL) lintlib.ln
    lint $(LRFMAIL) lintlib.ln
    touch lrfmail

lrfnews: $(LRFNEWS) lintlib.ln
    lint $(LRFNEWS) lintlib.ln
    touch lrfnews

lfpack: $(LFPACK) lintlib.ln
    lint $(LFPACK) lintlib.ln
    touch lfpack

lfcall: $(LFCALL) lintlib.ln
    lint $(LFCALL) lintlib.ln
    touch lfcall

lint:    lfunpack lrmail lrfmail lrfnews lfpack lfcall

tar:
    tar cvf - $(OTHERFILES) $(CFILES) $(HFILES) | compress > fnet.tar.Z

initsccs:
    @if [ -d SCCS ];                        \
    then                                \
      echo "Directory SCCS/ already exist.";            \
      exit 1;                            \
    fi;                                \
    echo "Creating directory SCCS/...";                \
    mkdir SCCS;                            \
    for file in ${SCCS};                        \
    do                                \
      echo "Creating SCCS/s.$$file...";                \
      admin -i$$file SCCS/s.$$file;                    \
      if [ $$? -eq 0 ];                        \
        then                            \
          echo "Getting file SCCS/s.$$file...";            \
          rm -f $$file;                        \
          get SCCS/s.$$file;                    \
        fi;                                \
    done

edit:
    get -e $(OTHERFILES) $(CFILES) $(HFILES)

look:
    get $(OTHERFILES) $(CFILES) $(HFILES)

delta:
    delta $(OTHERFILES) $(CFILES) $(HFILES)

shar:
    shar -v -c -l60 -ofnetdist. $(OTHERFILES) ${CFILES} ${HFILES}

clean:
    -rm lfunpack lrmail lrfmail lrfnews lfpack lfcall
    -rm funpack rfmail rfnews fpack fcall rmail
    -rm *.ln *.o .make .funpack .lint log loki
    -rm *.idx

depend:
    @echo '/^# DO NOT/+1,$$d\nw\nq' | ed - Makefile; \
    echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile; \
    for i in ${CFILES} ; \
    do \
        if [ -r $$i ]; \
        then \
            echo "Finding dependences for $$i ... \c"; \
            for j in `grep '^#[     ]*include[     ]*"[^"]*"' < $$i | \
                sed 's/^#[     ]*include[     ]*"\([^"]*\)".*/\1/'`; \
            do \
                if [ -r $$j ]; \
                then \
                    echo "`basename $$i .c`.o: $$j" >> Makefile; \
                    echo "`basename $$i .c`.ln: $$j" >> Makefile; \
                else \
                    echo "`basename $$i .c`.o: ${HEADERS}/$$j" \
                            >> Makefile; \
                    echo "`basename $$i .c`.ln: ${HEADERS}/$$j" \
                        >> Makefile; \
                fi; \
            done; \
            echo "done."; \
        else \
            echo "Can not open $$i." 1>&2; \
        fi; \
    done; \
    echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile; \
    echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile; \
    echo '# see make depend above' >> Makefile

# DO NOT DELETE THIS LINE -- make depend uses it
# DEPENDENCIES MUST END AT END OF FILE
rfmail.o: hsu.h
rfmail.ln: hsu.h
rfmail.o: config.h
rfmail.ln: config.h
rfmail.o: fnet.h
rfmail.ln: fnet.h
rfmail.o: nodelist.h
rfmail.ln: nodelist.h
funcs.o: hsu.h
funcs.ln: hsu.h
funcs.o: config.h
funcs.ln: config.h
funcs.o: fnet.h
funcs.ln: fnet.h
funcs.o: sysexits.h
funcs.ln: sysexits.h
funcs.o: nodelist.h
funcs.ln: nodelist.h
funcs.o: shuffle.h
funcs.ln: shuffle.h
rfnews.o: hsu.h
rfnews.ln: hsu.h
rfnews.o: config.h
rfnews.ln: config.h
rfnews.o: fnet.h
rfnews.ln: fnet.h
rfnews.o: fnews.h
rfnews.ln: fnews.h
rfnews.o: nodelist.h
rfnews.ln: nodelist.h
rmail.o: hsu.h
rmail.ln: hsu.h
rmail.o: rmail.h
rmail.ln: rmail.h
rmail.o: config.h
rmail.ln: config.h
rmail.o: sysexits.h
rmail.ln: sysexits.h
rmail.o: nodelist.h
rmail.ln: nodelist.h
rmail.o: fnet.h
rmail.ln: fnet.h
fpack.o: hsu.h
fpack.ln: hsu.h
fpack.o: config.h
fpack.ln: config.h
fpack.o: fnet.h
fpack.ln: fnet.h
fpack.o: fpack.h
fpack.ln: fpack.h
fpack.o: nodelist.h
fpack.ln: nodelist.h
funpack.o: hsu.h
funpack.ln: hsu.h
funpack.o: config.h
funpack.ln: config.h
funpack.o: fnet.h
funpack.ln: fnet.h
funpack.o: fpack.h
funpack.ln: fpack.h
funpack.o: nodelist.h
funpack.ln: nodelist.h
funpack.o: sysexits.h
funpack.ln: sysexits.h
funpack.o: fnews.h
funpack.ln: fnews.h
fcall.o: hsu.h
fcall.ln: hsu.h
fcall.o: config.h
fcall.ln: config.h
fcall.o: fnet.h
fcall.ln: fnet.h
fcall.o: fio.h
fcall.ln: fio.h
fcall.o: nodelist.h
fcall.ln: nodelist.h
fio.o: fnet.h
fio.ln: fnet.h
fio.o: fio.h
fio.ln: fio.h
xtsend.o: fnet.h
xtsend.ln: fnet.h
xtsend.o: fio.h
xtsend.ln: fio.h
xtsend.o: crc.h
xtsend.ln: crc.h
xtrec.o: hsu.h
xtrec.ln: hsu.h
xtrec.o: fnet.h
xtrec.ln: fnet.h
xtrec.o: fio.h
xtrec.ln: fio.h
xtrec.o: crc.h
xtrec.ln: crc.h
nodelist.o: hsu.h
nodelist.ln: hsu.h
nodelist.o: config.h
nodelist.ln: config.h
nodelist.o: fnet.h
nodelist.ln: fnet.h
nodelist.o: nodelist.h
nodelist.ln: nodelist.h
dateconv.o: fnet.h
dateconv.ln: fnet.h
address.o: hsu.h
address.ln: hsu.h
address.o: config.h
address.ln: config.h
address.o: fnet.h
address.ln: fnet.h
address.o: nodelist.h
address.ln: nodelist.h
address.o: shuffle.h
address.ln: shuffle.h
sprintfs.o: hsu.h
sprintfs.ln: hsu.h
lintlib.o: hsu.h
lintlib.ln: hsu.h
lintlib.o: config.h
lintlib.ln: config.h
getdate.y.o: config.h
getdate.y.ln: config.h
sprintfs.o: hsu.h
sprintfs.ln: hsu.h
strempty.o: hsu.h
strempty.ln: hsu.h
# DEPENDENCIES MUST END AT END OF FILE
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above
