# DMakefile for Arn - SAS C 6.2 for DMake Beta V0.6 26-Jan-89
# Arn-(C)opyright by Roland Bless of Byteable Software Products
# All rights reserved. (C) 1990/91, R. Bless

# cc is you compiler - linker is your linker
CC= sc
LINKER= slink
MAKESYMBOLTABLE= makegst
EXE= Arn

#dirs
OBJDIR= obj/
PROTODIR= proto/

#these need enums.h,globalvars,includes
SRC1= Arn.c followup.c functions.c grouplist.c getconfig.c\
      time.c cmdline.c pager.c readgroup.c choosegroups.c kill.c\
      strprocs.c mimesupport.c

#no enums.h, but gobalvars,includes
SRC2= ArnIO.c reply.c arnhelp.c mimedecode.c

#only includes.gst
SRC3= dirfunc.c termcap.c tgoto.c

OBJS1= $(SRC1:"*.c":"$(OBJDIR)*.o")
OBJS2= $(SRC2:"*.c":"$(OBJDIR)*.o")
OBJS3= $(SRC3:"*.c":"$(OBJDIR)*.o")

PROT1= $(SRC1:"*.c":"$(PROTODIR)*.i")
PROT2= $(SRC2:"*.c":"$(PROTODIR)*.i")
PROT3= $(SRC3:"*.c":"$(PROTODIR)*.i")

PROTOH= $(SRC1:"*.c":"$(PROTODIR)*_proto.h")\
        $(SRC2:"*.c":"$(PROTODIR)*_proto.h")\
        $(SRC3:"*.c":"$(PROTODIR)*_proto.h")

SYM1= globalvars.gst

SYMS= $(SYM1)
SYMS_H= $(SYMS:"*.gst":"*.h")

REGEXPLIB= regexp.lib

#Startup-Code
STARTUP= LIB:c.o
#Standard-Lib
STDLIB= LIB:sc.lib
#Standard-Libraries to link with
LINKLIBS= lib $(STDLIB) regexp.lib
#DEBUG=
DEBUG= debug=full
#Options for Linker
LOPTS= stripdebug quiet
#LOPTS= quiet


#Standard ANSI-Check, short integers
COPTS= noversion ansi $(DEBUG)
#COPTS= noversion ansi
#Standard ANSI-Check, short integers
COPTS1= noversion ansi $(DEBUG)
#
COPTS2= noversion ansi $(DEBUG)

GST= gst=$(SYM1)

all : $(EXE) arnmaster arndaemon

$(EXE) : $(OBJS1) $(OBJS2) $(OBJS3) $(OBJDIR)globalvars.o version.c $(REGEXPLIB)
         $(CC) $(COPTS) objname=$(OBJDIR)version.o version.c
         $(LINKER) $(STARTUP) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJDIR)globalvars.o\
 $(OBJDIR)version.o $(LINKLIBS) TO $(EXE) $(LOPTS)
         - echo "$(EXE) is now ready!"

$(OBJS1) : $(SRC1) $(SYMS) enums.h
           $(CC) $(COPTS) $(GST) objname=%(left) %(*.c)

$(OBJS2) : $(SRC2) $(SYMS)
           $(CC) $(COPTS1) $(GST) objname=%(left) %(*.c)

$(OBJS3) : $(SRC3) $(SYM1)
           $(CC) $(COPTS1) $(GST) objname=%(left) %(*.c)

$(OBJDIR)globalvars.o : globalvars.c $(SYM1)
           $(CC) $(COPTS1) $(GST) objname=%(left) globalvars.c

$(SYM1) : $(SYM1:"*.gst":"*.h")
          $(CC) $(COPTS2) $(MAKESYMBOLTABLE)=%(left) %(right)

arnmaster: $(OBJDIR)arnmaster.o $(OBJDIR)dirfunc.o
           $(LINKER) $(STARTUP) $(OBJDIR)arnmaster.o $(OBJDIR)arnmaster_ver.o\
           $(OBJDIR)dirfunc.o LIB $(STDLIB) TO arnmaster $(LOPTS)

$(OBJDIR)arnmaster.o: arnmaster.c
             $(CC) $(COPTS) objname=%(left) %(*.c)
             $(CC) $(COPTS) objname=$(OBJDIR)arnmaster_ver.o arnmaster_ver.c

arndaemon: $(OBJDIR)arndaemon.o
           $(LINKER) $(STARTUP) $(OBJDIR)arndaemon.o $(OBJDIR)arndaemon_ver.o\
 LIB $(STDLIB) TO arndaemon $(LOPTS)

$(OBJDIR)arndaemon.o: arndaemon.c
             $(CC) $(COPTS) nostackcheck opt optsize objname=%(left) %(*.c)
             $(CC) $(COPTS) objname=$(OBJDIR)arndaemon_ver.o arndaemon_ver.c


#Generate Function prototypes in Directory proto

sasprotos : $(PROT1) $(PROT2) $(PROT3)

$(PROT1) : $(SRC1) $(SYMS) enums.h
           $(CC) $(COPTS) -pr $(GST1) objname=%(left) %(*.c)

$(PROT2) : $(SRC2) $(SYMS)
           $(CC) $(COPTS1) -pr $(GST1) objname=%(left) %(*.c)

$(PROT3) : $(SRC3) $(SYM1)
           $(CC) $(COPTS1) -pr $(GST2) objname=%(left) %(*.c)

protos: $(PROTOH)

$(PROTOH) : $(SRC1) $(SRC2) $(SRC3)
            execute makecompactproto %(right) %(left)

preprnews:  preprnews.c
            $(CC) -Lc preprnews.c
            delete preprnews.o

#short version of regexp
$(REGEXPLIB): regexp/regexp.c regexp/regsub.c regexp/regerror.c
              $(CC) $(COPTS) OBJLIB=%(left) %(right)

rot: rot.o
     $(LINKER) %(left) %(right) $(LINKLIBS)

rot.o: rot.c
       $(CC) %(right) objname=%(left)

clean:
          delete $(OBJDIR)#? $(PROTODIR)#?.h
          delete #?.gst snapshot.TB
          delete #?.(o|map|lnk|oml)
          delete $(REGEXPLIB)

makedis:
         lha -x -idvlp/disfiles a T:Arn
         lha -x -idvlp/srcfiles a T:ArnSrc

betadis:
         lha -idvlp/betafiles a T:Arn100beta

archive:
         lha -x -idvlp/files u T:Arn100

makeprotos: makeprotos.c
            $(CC) LINK makeprotos
            delete makeprotos.o

install_src: mkdirs protos makeprotos
             - echo "Now type dmake"
mkdirs:
            - mkdir obj
            - mkdir proto

