#**********************************************************************#
#*                                                                    *#
#* Copyright (c) 2004 by Sun Microsystems, Inc.                       *#
#* All rights reserved.                                               *#
#*                                                                    *#
#**********************************************************************#
#
#
# The makefile may be invoked in the following manner:
#
# make clean (To clean up)
#
# make (To compile all demo programs )
#

################################################################################
# Macro Definitions
################################################################################
PRODUCT=DB2UDB C
CC=cc
CFLAGS = -Bdynamic -Kpic -c -Xt
CINCLUDES = -I ${UNIKIX}/src/CICS_structures -I ${KIXINCLUDE} -I ${DB2INCLUDE}
LD=ld
LD_FLAGS = -G
LD_FLAGS2 =
KIXBMS=kixbms
KIXBMS_FLAGS = -a -c
KIXCLT=kixclt
KIXCLT_FLAGS = -d db2

OBJECTS = \
	progs/acct00.o \
	progs/acct01.o \
	progs/acct02.o \
	progs/acct03.o \
	progs/acctfet.o

SHARED_OBJECTS = \
	progs/acct00.so \
	progs/acct01.so \
	progs/acct02.so \
        progs/acct03.so \
	progs/acctfet.so

C_FILES = \
	progs/acct00.c \
	progs/acct01.c \
	progs/acct02.c \
        progs/acct03.c \
	progs/acctfet.c

CCS_FILES = \
	progs/acct00.ccs \
	progs/acct01.ccs \
	progs/acct02.ccs \
        progs/acct03.ccs \
	progs/acctfet.ccs

ACCT_FILES = \
	maps/ACCTSET.map \
	progs/ACCTSET.h

################################################################################
# all and clean
################################################################################

all: begin clean maps/ACCTSET.map \
	lib/acct00.so \
	lib/acct01.so \
	lib/acct02.so \
	lib/acct03.so \
	lib/acctfet.so \
	end

clean:
	@echo ""
	@echo ""
	@echo "--- Cleaning ${PRODUCT} example ---"
	@echo ""
	@echo ""
	rm -f ${ACCT_FILES} ${OBJECTS} ${C_FILES} ${SHARED_OBJECTS}

################################################################################
# ACCTSET.map  
################################################################################
maps/ACCTSET.map:
	@echo ""
	@echo ""
	@echo "--- Creating ACCTSET.map and ACCTSET.h files ---"
	@echo ""
	@echo ""
	(cd maps; \
	${KIXBMS} ${KIXBMS_FLAGS} ACCTSET.bms; \
	mv ACCTSET.h ../progs)
	@echo ""
	@echo "--- ACCTSET.map and ACCTSET.h files created ---"

################################################################################
# ACCT00
################################################################################
progs/acct00.c: progs/acct00.ccs
	@echo ""
	@echo ""
	@echo "--- Creating ACCT00 ---"
	@echo ""
	@echo ""
	(cd progs; \
	${KIXCLT} ${KIXCLT_FLAGS} acct00.ccs)

progs/acct00.o: progs/acct00.c
	(cd progs; \
	${CC} ${CFLAGS} ${CINCLUDES} -o acct00.o acct00.c)

lib/acct00.so: progs/acct00.o
	(cd progs; \
	${LD} ${LD_FLAGS} -o ../lib/acct00.so acct00.o)
	@echo ""
	@echo "--- ACCT00.so created ---"
	@echo ""

################################################################################
# ACCT01
################################################################################
progs/acct01.c: progs/acct01.sqc
	@echo ""
	@echo ""
	@echo "--- Creating ACCT01 ---"
	@echo ""
	@echo ""
	(cd progs; \
	db2 connect to ${DB2DBDFT}; \
	db2 prep acct01.sqc; \
	mv acct01.c acct01.ccs; \
	${KIXCLT} ${KIXCLT_FLAGS} acct01.ccs)

progs/acct01.o: progs/acct01.c
	(cd progs; \
	${CC} ${CFLAGS} ${CINCLUDES} -o acct01.o acct01.c)
	
lib/acct01.so: progs/acct01.o
	(cd progs; \
	${LD} ${LD_FLAGS} ${LD_FLAGS2} -o ../lib/acct01.so acct01.o)
	@echo ""
	@echo "--- ACCT01.so created ---"
	@echo ""


################################################################################
# ACCT02
################################################################################
progs/acct02.c: progs/acct02.sqc
	@echo ""
	@echo ""
	@echo "--- Creating ACCT02 ---"
	@echo ""
	@echo ""
	(cd progs; \
	db2 prep acct02.sqc; \
	mv acct02.c acct02.ccs; \
	${KIXCLT} ${KIXCLT_FLAGS} acct02.ccs)

progs/acct02.o: progs/acct02.c
	(cd progs; \
	${CC} ${CFLAGS} ${CINCLUDES} -o acct02.o acct02.c)
	
lib/acct02.so: progs/acct02.o
	(cd progs; \
	${LD} ${LD_FLAGS} ${LD_FLAGS2} -o ../lib/acct02.so acct02.o)
	@echo ""
	@echo "--- ACCT02.so created ---"
	@echo ""

################################################################################
# ACCT03
################################################################################

progs/acct03.c: progs/acct03.ccs
	@echo ""
	@echo ""
	@echo "--- Creating ACCT03 ---"
	@echo ""
	@echo ""
	(cd progs; \
	${KIXCLT} ${KIXCLT_FLAGS} acct03.ccs)

progs/acct03.o: progs/acct03.c
	(cd progs; \
	${CC} ${CFLAGS} ${CINCLUDES} -o acct03.o acct03.c)
	
lib/acct03.so: progs/acct03.o
	(cd progs; \
	${LD} ${LD_FLAGS} -o ../lib/acct03.so acct03.o)
	@echo ""
	@echo "--- ACCT03.so created ---"
	@echo ""

################################################################################
# ACCTFET
################################################################################
progs/acctfet.c: progs/acctfet.sqc
	@echo ""
	@echo ""
	@echo "--- Creating ACCTFET ---"
	@echo ""
	@echo ""
	(cd progs; \
	db2 prep acctfet.sqc; \
	db2 terminate; \
	mv acctfet.c acctfet.ccs; \
	${KIXCLT} ${KIXCLT_FLAGS} acctfet.ccs)

progs/acctfet.o: progs/acctfet.c
	(cd progs; \
	${CC} ${CFLAGS} ${CINCLUDES} -o acctfet.o acctfet.c)
	
lib/acctfet.so: progs/acctfet.o
	(cd progs; \
	${LD} ${LD_FLAGS} ${LD_FLAGS2} -o ../lib/acctfet.so acctfet.o)
	@echo "--- acctfet Shared Object created ---"

begin:
	@echo ""
	@echo ""
	@echo ""
	@echo ""
	@echo ""
	@echo "*** Starting make of ${PRODUCT} example ***"
	@echo ""
	@echo ""
	@echo ""
	@echo ""
	@echo ""
end:
	@echo ""
	@echo ""
	@echo ""
	@echo ""
	@echo ""
	@echo "*** Completed make of ${PRODUCT} example ***"
	@echo ""
	@echo ""
	@echo ""
	@echo ""
	@echo ""

################################################################################

