# Makefile for Thor preprocessor (pepp)
# Version identification:
# @(#)make.template	1.19	4/14/93
# Copyright (c) 1990 The Regents of the University of California.
#                       All Rights Reserved.
# Date of creation: 2/11/91
#
# If this file's name is "make.template" and there is no makefile in
# this directory, do
#       cp make.template makefile
#       make depend
# This will add the dependencies to the makefile.

YACC =		yacc
YFLAGS =	-d

LEX =		lex
LFLAG =	#	-v

# Root of Ptolemy directory
ROOT=		../../../..
# True source directory
VPATH=		$(ROOT)/src/domains/thor/pepp

# get configuration info
CONFIG=$(ROOT)/config-$(ARCH).mk
include $(CONFIG)
INCL = -I$(KERNDIR)

# no library, but needed for config.
LIB = dummy

PROGRAM =	pepp
MAN =		$(PROGRAM).1

C_SRCS=		utils.c codefncs.c cc-strings.c errmsg.c dbgmsg.c main.c

EXTRA_SRCS=	pass1Syn.y pass1Lex.l pass2Lex.l READ.ME pepp.1

C_MADE=		pass1Syn.c pass1Lex.c pass2Lex.c

SRCS=		$(C_SRCS) $(C_MADE)

HDRS=		comdefs.h cc-strings.h pass1Syn.h

OBJS =		pass1Syn.o pass1Lex.o pass2Lex.o utils.o codefncs.o \
		cc-strings.o errmsg.o dbgmsg.o main.o

EXTRA_DESTS=	comp.c comp.o pepp

C_INCL =	-I$(VPATH)

all:		makefile $(PROGRAM)

$(PROGRAM):	$(OBJS)
		@echo "Creating compilation info ..." ; \
		 echo "char comp_info[] = " > comp.c ; \
		 echo "\"Compiled `date` by $$USER on host `hostname`.\";" >> comp.c
		$(CC) $(CFLAGS) -c comp.c
		rm -f $(PROGRAM)
		$(CC) -o $@ $(CFLAGS) $(OBJS) comp.o

pass1Lex.c:	pass1Lex.l
		@echo "Making $@ from $< ...";\
		cd $(VPATH);\
		$(LEX) $(LFLAG) $< ;\
		sed -e 's/YY/PP1/g' -e 's/yy/pp1/g' \
			-e  's/"stdio.h"/<stdio.h>/' lex.yy.c > $@ ;\
		rm -f lex.yy.c

pass1Syn.c pass1Syn.h:	pass1Syn.y
		@echo "Making $*.c and $*.h from $< ...";\
		cd $(VPATH);\
		$(YACC) $(YFLAGS) $< ;\
		sed -e 's/YY/PP1/g' -e 's/yy/pp1/g' y.tab.c > $@ ;\
		sed -e 's/YY/PP1/g' -e 's/yy/pp1/g' y.tab.h > $*.h ;\
		rm -f y.tab.[ch]

pass2Lex.c:	pass2Lex.l
		@echo "Making $@ from $< ...";\
		cd $(VPATH);\
		$(LEX) $(LFLAG) $< ;\
		sed -e 's/YY/PP2/g' -e 's/yy/pp2/g' \
			-e  's/"stdio.h"/<stdio.h>/' lex.yy.c > $@ ;\
		rm -f lex.yy.c

install:	makefile $(BINDIR)/$(PROGRAM)

$(BINDIR)/$(PROGRAM):	$(PROGRAM)
		 rm -f $(BINDIR)/$(PROGRAM)
		 ln $(PROGRAM) $(BINDIR)

include $(ROOT)/common.mk

# Don't add anything after the next lin; makedepend will zap it.
# DO NOT DELETE THIS LINE -- make depend depends on it.
utils.o : utils.c comdefs.h 
codefncs.o : codefncs.c comdefs.h pass1Syn.h cc-strings.h 
cc-strings.o : cc-strings.c 
errmsg.o : errmsg.c 
dbgmsg.o : dbgmsg.c 
main.o : main.c comdefs.h 
pass1Syn.o : pass1Syn.c comdefs.h 
pass1Lex.o : pass1Lex.c comdefs.h pass1Syn.h 
pass2Lex.o : pass2Lex.c comdefs.h 
