#Makefile for dcc

include makefile.sym

OBJS = dcblk.$(OBJSUFFIX) dcdecl.$(OBJSUFFIX) dcdir.$(OBJSUFFIX) \
       dcexp.$(OBJSUFFIX) dcext.$(OBJSUFFIX) dcfmt.$(OBJSUFFIX) \
       dcinst.$(OBJSUFFIX) dcmain.$(OBJSUFFIX) dcprag.$(OBJSUFFIX) \
       dcrec.$(OBJSUFFIX) dcrecdir.$(OBJSUFFIX) dctxttok.$(OBJSUFFIX)
BASICINCLFILES = dc.th configdc.th locdcFil.mng

.c.$(OBJSUFFIX):
	@$(ECHOOFF)
	$(CC) $(CFLAGS) -c $*.c $(SILENT)


dcc : dccFiles.mno DoAlways $(OBJS)
	$(CC) $(CFLAGS) -o dcc $(OBJS)
	$(CRELOCEXEC)

dccFiles.mno: dccFiles.mng
#Done only after downloading
	@$(ECHOOFF)
	@$(CC) $(CFLAGS) -o banner Utilities$(DIRSEP)banner.c $(SILENT)
	@$(LOCALDIR)banner
	@$(RM) banner$(EXESUFFIX)
	@$(COPY) dccFiles.mng dccFiles.mno $(SILENT)

DoAlways:
	@$(ECHOOFF)
	@$(CC) $(CFLAGS) -o tailorDc Utilities$(DIRSEP)basics.c \
        Utilities$(DIRSEP)grep.c Utilities$(DIRSEP)match.c \
        Utilities$(DIRSEP)sedp.c Utilities$(DIRSEP)sort.c \
        Utilities$(DIRSEP)tailorDc.c $(SILENT)
	@$(LOCALDIR)tailorDc
	@$(RM) tailorDc$(EXESUFFIX)

dcblk.$(OBJSUFFIX):  dcblk.h dcblk.ph dcdecl.h dcdir.ph dcext.h dcinst.h \
          dcinst.ph dcmain.h dcprag.h dcrec.h dcrec.ph dcrecdir.th \
          $(BASICINCLFILES)

dcdecl.$(OBJSUFFIX): dcdecl.h dcdecl.ph dcblk.h dcdir.h dcexp.h dcext.h \
          dcinst.h dcmain.h dcprag.h dcrec.h dctxttok.h $(BASICINCLFILES)

dcdir.$(OBJSUFFIX):  dcdir.h dcdir.ph dcblk.h dcblk.ph dcdecl.h dcdecl.ph \
          dcexp.h dcext.h dcmain.h dcmain.ph dcprag.h dcprag.ph dcrec.h \
          dcrec.ph dcrecdir.ph dcrecdir.th $(BASICINCLFILES)

dcexp.$(OBJSUFFIX):  dcexp.h dcexp.ph dcblk.h dcdecl.h dcdir.h dcext.h dcfmt.h \
          dcinst.h dcinst.ph dcprag.h dcrec.h dctxttok.h $(BASICINCLFILES)

dcext.$(OBJSUFFIX):  dcmsg.txt dcext.h dcext.ph dcdecl.h dcinst.h dcmain.h \
          dcprag.h dcrec.h dcrecdir.th $(BASICINCLFILES)

dcfmt.$(OBJSUFFIX):  dcfmt.h dcblk.h dcext.h dcinst.ph dcmain.h \
          $(BASICINCLFILES)

dcinst.$(OBJSUFFIX): dcinst.h dcinst.ph dcblk.h dcdecl.h dcdir.h dcexp.h \
          dcexp.ph dcext.h dcrec.h dcrecdir.th $(BASICINCLFILES)

dcmain.$(OBJSUFFIX): dcmain.h dcmain.ph dcblk.h dcblk.ph dcdecl.h dcdecl.ph \
          dcdir.h dcdir.ph dcexp.ph dcext.h dcext.ph dcinst.ph dcprag.h \
          dcprag.ph dcrec.h dcrec.ph dcrecdir.ph dcrecdir.th $(BASICINCLFILES)

dcprag.$(OBJSUFFIX): dcprag.h dcprag.ph dcblk.h dcdecl.h dcdir.h dcdir.ph \
          dcexp.h dcext.h dcinst.ph dcmain.h dcrec.h dcrec.ph dcrecdir.ph \
          dcrecdir.th $(BASICINCLFILES)

dcrec.$(OBJSUFFIX):  dcrec.h dcrec.ph dcblk.h dcblk.ph dcdecl.h dcdir.ph \
          dcexp.h dcext.h dcmain.h dcmain.ph dcprag.h dcprag.ph dcrecdir.ph \
          dcrecdir.th $(BASICINCLFILES)

dcrecdir.$(OBJSUFFIX): dcrecdir.ph dcrecdir.th dcmain.h $(BASICINCLFILES)

dctxttok.$(OBJSUFFIX): dctxttok.h $(BASICINCLFILES)

clean : 
	$(RM) $(OBJS)

install:
	chmod +x installfile ; ./installfile

#End dcc makefile
