# $Id: Smakefile,v 1.6 1994/02/06 10:08:10 gwalter Rel $
#
# Smakefile for smtpd
#
# Copyright  1993 Graham Walter
#
# $Log: Smakefile,v $
# Revision 1.6  1994/02/06  10:08:10  gwalter
# logger,lib include in the link
#
# Revision 1.5  1994/02/01  19:49:22  gwalter
# Tidying up
#
# Revision 1.4  1993/12/24  15:07:17  gwalter
# rmail.doc added to distribution
#
# Revision 1.3  1993/12/24  14:38:26  gwalter
# New targets to automate distribution
#
# Revision 1.2  1993/12/21  09:42:03  gwalter
# Reference to pathnames.h removed
#
# Revision 1.1  1993/12/21  09:32:33  gwalter
# Initial revision
#

PROG=  smtpd
VERS=  1
# NB don't use $(REV) other than in DOS Commands unless specified as parameter
REV=   `type smtpd_rev.rev`

ARCEXT=   lha
DISTNAME= AmiTCP_$(PROG)$(VERS)-$(REV).$(ARCEXT)
UUENAME=  AmiTCP_$(PROG)$(VERS)-$(REV).UUE

SRCS=  $(PROG).c 
HDRS=  $(PROG).h
OBJS=  $(PROG).o 
DOCS=  $(PROG).8
DIST=  AmiTCP:serv/in.$(PROG) AmiTCP:doc/$(PROG).doc uucp:c/rmail rmail.doc
LIBS=  NETLIB:autoinitd.o LIB NETLIB:net.lib LIB NETLIB:logger.lib
DEBUGLIBS= OBJ NETLIB:autoinitd.o OBJ NETLIB:serveraccept.go LIB NETLIB:net.lib LIB NETLIB:logger.lib
ARCCOM= a
ARCOPT= -xam
UPOPTIONS=

CC=      sc
LD=      sc
MAKE=    smake
TAGS=    etags
RM=      delete quiet
MKDIR=   makedir
INSTALL= copy nopro dates all
BUMPREV= BumpRev
CAT=     type 
ARCHIVE= lha
UUE=     uuEncode
UPLOAD=  DemonUpload
UPDATERCS= UpdateRCS
RCS=     RCS
CO=      CO

DEST=    AmiTCP:

OPTFLAGS =   Optimize Stripdebug NoDebug
DEBUGFLAGS = NoOptimize DEBUG=FULLFLUSH DEF=STANDALONE=1

CFLAGS = $(OPTFLAGS) 
	
IDIRS =  IDIR=Netinclude:
DEFS =   DEF "RCS_ID_C=static char *rcsid" \
	 DEF NODB  #DEF STANDALONE 
SCOPTIONS= STRINGMERGE STRUCTUREEQUIVALENCE \
	 NOSTACKCHECK NOMULTIPLEINCLUDES \
	 ERRORREXX \
	 NOERRORSOURCE NOVERSION NOERRORHIGHLIGHT \
	 SMALLCODE SMALLDATA \
	 MAP MAPHUNK MAPSYMBOLS MAPLIB MAPXREFERENCE \
	 LINKEROPTIONS=plain NOICONS BATCH \
	 OPTINL OPTTIME OPTCOMP=5 OPTDEP=5 OPTRDEP=5 \
	 $(DEFS) $(IDIRS) \
	 PARAMETERS=BOTH STARTUP=cres IGN=224 IGN=92 

all: $(PROG)

$(PROG): SCOPTIONS $(OBJS)
	$(CC) LINK TO $@ OBJ $(OBJS) BATCH $(LIBS) $(CFLAGS)

debug:
	@$(MAKE) "CFLAGS=$(DEBUGFLAGS)" "LIBS=$(DEBUGLIBS)" $(PROG)

.c.o:
	-@$(RM) $*.o  > nil:
	$(CC) $(CFLAGS) $*.c

$(PROG).o: $(PROG).c $(PROG).h
	-$(BUMPREV) $(VERS) $(PROG)_rev
	-@$(RM) $(PROG).o > nil:
	$(CC) $(CFLAGS) $ $(PROG).c

SCOPTIONS: Smakefile
	copy to $@ <from < 
$(SCOPTIONS)
<

install: all $(DEST)serv $(DEST)doc
	$(INSTALL) $(PROG) $(DEST)serv/in.$(PROG)
	protect $(DEST)serv/in.smtpd +p # Pure
	@protect $(DEST)doc/$(PROG).doc +wd
	$(CAT) $(DOCS) > $(DEST)doc/$(PROG).doc

freeze: rcsupdate
	$(RCS) -sRel -NV$(VER)_$(REV): rcs/*
	$(CO) -u rcs/*

rcsupdate:
	$(UPDATERCS)

upload: dist
	$(UPLOAD) $(DISTNAME) $(DEST)doc/$(PROG).doc $(UPOPTIONS)

$(UUENAME): $(DISTNAME)
	-@$(RM) $(UUENAME) >nil:
	$(UUE) $(DISTNAME) $(DISTNAME) >$(UUENAME)

uue:
	@$(MAKE) $(UUENAME) REV=$(REV)

dist:
	@$(MAKE) $(DISTNAME) REV=$(REV)

$(DISTNAME):
	-@$(RM) $(DISTNAME) >nil:
	$(ARCHIVE) $(ARCOPT) $(ARCCOM) $(DISTNAME) $(DIST) $(SRCS) $(HDRS) SMakefile

uploadtarget: $(DISTNAME)
	$(UPLOAD) $(DISTNAME) $(DEST)doc/$(PROG).doc $(UPOPTIONS)

upload:
	@$(MAKE) uploadtarget UPLOAD=DemonUpload REV=$(REV)

AmiTCP_$(PROG)$(VERS)-$(REV).readme: $(PROG).aminet-head $(PROG).8
	join $(PROG).aminet-head $(PROG).8 AS AmiTCP_$(PROG)$(VERS)-$(REV).readme

aminetupload: $(PROG).aminet
	@$(MAKE) uploadtarget AmiTCP_$(PROG)$(VERS)-$(REV).readme UPLOAD=AmiNetUpload REV=$(REV)

help:
	@echo ""
	@echo "Make file for $(PROG). Current version of $(PROG) is $(VERS).$(REV)"
	@type <<

Valid make targets (apart from the obvious ones) are:
  install:    makes new version in AmiTCP:serv
  dist:       makes distribution archive
  fulldist    makes distribution archive including source
  uue:        makes uuencoded version of distribution
  fulluue:    makes uuencoded version of full distribution
  rcsupdate:  updates rcs (revision control files)
  freeze:     update rcs files, and mark with current version.revision
  upload:     send distribution to Demon

To produce a new release, issue the following commands:
  make freeze
  make upload
<

$(DEST)serv:
	-$(MKDIR) $@
$(DEST)doc:
	-$(MKDIR) $@	

TAGS:	$(SRCS)
	$(TAGS) $(SRCS)

clean:
	-$(RM) \#?.o \#?.map \#?.lnk SCOPTIONS

# DO NOT DELETE THIS LINE -- make depend depends on it.
smtpd.o: smtpd.c
