#
#
#

TESTLIB=../copybooks
export TESTLIB

prefix=../../test.code
exec_prefix=../../compiler
g_includes=-I/usr/local/include 
g_libraries=-L/usr/local/lib

CCX=gcc
COB=${exec_prefix}/htcobol
COBPP=../htcobolpp
ASM=as
RM=rm -f

COPYBOOKS= -I../copybooks -I.
INCLUDES= -I/usr/local/include
LIBS=${g_libraries} -L../../lib -lhtcobol -lm
LDFLAGS=
COBFLAGS=-P -c ${COPYBOOKS}
ASMFLAGS=-D
CCXFLAGS=-g ${INCLUDES}
COBPPFLAGS= -v -I ../copybooks

SRC1f = ft1.cob
SRC2f = ft2.cob
SRC3f = ft2.cob
SRC1x = t1.cob
SRC2x = t2.cob
SRC3x = t3.cob

SRC1fa = ft1-1.cob
SRC2fa = ft2-1.cob
SRC3fa = ft3-1.cob
SRC1xa = t1-1.cob
SRC2xa = t2-1.cob
SRC3xa = t3-1.cob


OBJS1fa = $(SRC1fa:.cob=.o)
OBJS2fa = $(SRC2fa:.cob=.o)
OBJS3fa = $(SRC3fa:.cob=.o)
OBJS1xa = $(SRC1xa:.cob=.o)
OBJS2xa = $(SRC2xa:.cob=.o)
OBJS3xa = $(SRC3xa:.cob=.o)
OBJS = $(OBJS1fa) $(OBJS2fa) $(OBJS3fa) $(OBJS1xa) $(OBJS2xa) $(OBJS3xa)

PROG1f = ft1
PROG2f = ft2
PROG3f = ft3
PROG1x = t1
PROG2x = t2
PROG3x = t3
#PROGS = $(PROG1f) $(PROG2f) $(PROG3f) $(PROG1x) $(PROG2x) $(PROG3x)

PROGS = $(SRC1fa) $(SRC2fa) $(SRC3fa) $(SRC1xa) $(SRC2xa) $(SRC3xa)

include ${prefix}/config/C.rules.in
#include ${prefix}/config/COB.rules.in
#
# Rules for compiling .cob sources
.SUFFIX: .cob .o

%.o: %.cob
	$(COB) $(COBFLAGS) $<
#	$(ASM) $(ASMFLAGS) -o $*.o -a=$*.listing.0.txt $*.s
#	@grep -v 'LISTING' $*.listing.0.txt | sed '/^$$/d' >$*.s.txt 
#	@${RM} $*.listing.0.txt
#

all: ${PROGS}

${PROG1f}: ${OBJS1fa} ${SRC1fa}
	$(CCX) -g -o $@ ${OBJS1fa} $(LDFLAGS) $(LIBS)
#	strip $@

${PROG2f}: ${OBJS2fa} ${SRC2fa}
	$(CCX) -g -o $@ ${OBJS2fa} $(LDFLAGS) $(LIBS)
#	strip $@

${PROG3f}: ${OBJS3fa} ${SRC3fa}
	$(CCX) -g -o $@ ${OBJS3fa} $(LDFLAGS) $(LIBS)
#	strip $@

${PROG1x}: ${OBJS1xa} ${SRC1xa}
	$(CCX) -g -o $@ ${OBJS1xa} $(LDFLAGS) $(LIBS)
#	strip $@

${PROG2x}: ${OBJS2xa} ${SRC2xa}
	$(CCX) -g -o $@ ${OBJS2xa} $(LDFLAGS) $(LIBS)
#	strip $@

${PROG3x}: ${OBJS3xa} ${SRC3xa}
	$(CCX) -g -o $@ ${OBJS3xa} $(LDFLAGS) $(LIBS)
#	strip $@


${SRC1fa}:
	$(COBPP) $(COBPPFLAGS) -f ${SRC1f} -o ${SRC1fa} -p ${SRC1f}.txt

${SRC2fa}:
	$(COBPP) $(COBPPFLAGS) -f ${SRC2f} -o ${SRC2fa} -p ${SRC2f}.txt

${SRC3fa}:
	$(COBPP) $(COBPPFLAGS) -f ${SRC3f} -o ${SRC3fa} -p ${SRC3f}.txt

${SRC1xa}:
	$(COBPP) $(COBPPFLAGS) -x ${SRC1x} -o ${SRC1xa} -p ${SRC1x}.txt

${SRC2xa}:
	$(COBPP) $(COBPPFLAGS) -x ${SRC2x} -o ${SRC2xa} -p ${SRC2x}.txt

${SRC3xa}:
	$(COBPP) $(COBPPFLAGS) -x ${SRC3x} -o ${SRC3xa} -p ${SRC3x}.txt
	

clean:
	@${RM} ${OBJS} $(PROGS) $(SRC1a) $(SRC2a) $(SRC3a) $(SRC4a) $(SRC5a) \
	*cob.txt *.lis *.s *s.txt *.trace.txt trace*txt core \
	t[0-9]-1.cob ft[0-9]-1.cob

