#############
### Targets #
#############

DEFINE = 

DEST		= . 

LIBRARY		= libout.a

PROGRAM		= vb

TARGET		= $(OBJS)

# PRESET VARIABLES
#################################
### Compilers, Programs and Flags
#################################
### C Compiler
CC		= $(Ccompiler)
CFLAGS		= $(TOPCFLAGS)   -I$(IncludeDir) -I../Database -I../ABV -I../Interface  -I../Kernel  -I../Samcef

YFLAGS		= -t -d

### C++ Compiler
CCC		= xlC 
CCFLAGS		=  -O

### Fortran Compiler
FC		= xlf 
FFLAGS		= -qlanglvl=90ext

### COBOL Compiler
COB		= cob2 
COBFLAGS	= 

### PL/I  Compiler
PLI		= pli 
PLIFLAGS	= -qLANGLVL=SAA -qNOOPTIMIZE -qNOCOMPILE=S -qNOSEMANTIC=S -qNOSYNTAX=S

### CICS/6000 Translator
CICSTRAN        = cicstran
CICSTRANOPTIONS = 

### DB2/6000 Precompiler
DB2PREP         = db2 prep
DB2PREPOPTIONS  = bindfile package

### Linker/Loader
LD		= cc 
LDFLAGS		= -lm

### Shell Command
SHELL		= /bin/sh

### Installation Program
INSTALL		= cp

### Print command
PRINT		= pr

### mkmf program
MKMF		= /usr/lpp/sde/bin/mkmf

SUFFIX = .i: 

###################################################################
### Additional rules for make. These rules are in addition to the #
### default rules for the aix make command specified in the       #
### /usr/ccs/lib/aix.mk configuration file. For more information  #
### refer to the man page for make.                               #
###################################################################

### Additional make suffixes
.SUFFIXES: .F .F~ .f90 .f90~ .cc .cc~ .cpp .cpp~ .cxx .cxx~ .ccp .ccp~ .sqb .sqb~ .cbl .cbl~ .pli .pli~ .H .H~ .hpp .hpp~ .hxx .hxx~ .cpy .cpy~ .inc .inc~

# SINGLE SUFFIX RULES
.cc:
	$(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@
.cc~:
	$(GET) $(GFLAGS) -p $< > $*.cc
	$(CCC) $(CCFLAGS) $(LDFLAGS) $*.cc -o $*
	-rm -f $*.cc
.cpp:
	$(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@
.cpp~:
	$(GET) $(GFLAGS) -p $< > $*.cpp
	$(CCC) $(CCFLAGS) $(LDFLAGS) $*.cpp -o $*
	-rm -f $*.cpp
.cxx:
	$(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@
.cxx~:
	$(GET) $(GFLAGS) -p $< > $*.cxx
	$(CCC) $(CCFLAGS) $(LDFLAGS) $*.cxx -o $*
	-rm -f $*.cxx
.F:
	$(FC) $(FFLAGS) $(LDFLAGS) $< -o $@
.F~:
	$(GET) $(GFLAGS) -p $< > $*.F
	$(FC) $(FFLAGS) $(LDFLAGS) $*.F -o $*
	-rm -f $*.F

.f90:
	$(FC) $(FFLAGS) $(LDFLAGS) $< -o $@
.f90~:
	$(GET) $(GFLAGS) -p $< > $*.f90
	$(FC) $(FFLAGS) $(LDFLAGS) $*.f90 -o $*
	-rm -f $*.f90

.cbl:
	$(COB) $(COBFLAGS) $(LDFLAGS) $< -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
.cbl~:
	$(GET) $(GFLAGS) -p $< > $*.cbl
	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $* -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	-rm -f $*.cbl

.pli:
	$(PLI) $(PLIFLAGS) $(LDFLAGS) $< -o $@

.pli~:
	$(GET) $(GFLAGS) -p $< > $*.pli
	$(PLI) $(PLIFLAGS) $(LDFLAGS) $*.pli -o $*
	-rm -f $*.pli

.ccp:
	@rm -f $*.cbl
	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $<
	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
	    mv -f $*.cbl $*.sqb;  \
	    chmod 444 $*.sqb; \
	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
	    rm -f $*.sqb; fi
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	-rm -f $*.o

.ccp~:
	$(GET) $(GFLAGS) -p $< > $*.ccp
	@rm -f $*.cbl
	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp
	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
	    mv -f $*.cbl $*.sqb;  \
	    chmod 444 $*.sqb; \
	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
	    rm -f $*.sqb; fi
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	-rm -f $*.o $*.ccp

.sqb:
	@rm -f $*.cbl
	$(DB2PREP) $< $(DB2PREPOPTIONS)
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	-rm -f $*.o

.sqb~:
	$(GET) $(GFLAGS) -p $< > $*.sqb
	@rm -f $*.cbl
	$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	-rm -f $*.o $*.sqb

# DOUBLE SUFFIX RULES
.cc.o:
	$(CCC) $(CCFLAGS) -c $<
.cc~.o:
	$(GET) $(GFLAGS) -p $< > $*.cc
	$(CCC) $(CCFLAGS) -c $*.cc
	-rm -f $*.cc
.cc~.cc:
	$(GET) $(GFLAGS) -p $< > $*.cc; chmod 444 $*.cc
.cpp.o:
	$(CCC) $(CCFLAGS) -c $<
.cpp~.o:
	$(GET) $(GFLAGS) -p $< > $*.cpp
	$(CCC) $(CCFLAGS) -c $*.cpp
	-rm -f $*.cpp
.cpp~.cpp:
	$(GET) $(GFLAGS) -p $< > $*.cpp; chmod 444 $*.cpp
.cxx.o:
	$(CCC) $(CCFLAGS) -c $<
.cxx~.o:
	$(GET) $(GFLAGS) -p $< > $*.cxx
	$(CCC) $(CCFLAGS) -c $*.cxx
	-rm -f $*.cxx
.cxx~.cxx:
	$(GET) $(GFLAGS) -p $< > $*.cxx; chmod 444 $*.cxx
.F.o:
	$(FC) $(FFLAGS) -c $<
.F~.o:
	$(GET) $(GFLAGS) -p $< > $*.F
	$(FC) $(FFLAGS) -c $*.F
	-rm -f $*.F
.F~.F:
	$(GET) $(GFLAGS) -p $< > $@
.f90.o:
	$(FC) $(FFLAGS) -c $<
.f90~.o:
	$(GET) $(GFLAGS) -p $< > $*.f90
	$(FC) $(FFLAGS) -c $*.f90
	-rm -f $*.f90
.f90~.f90:
	$(GET) $(GFLAGS) -p $< > $@
.y.C:
	$(YACC) $(YFLAGS) -C $<
	mv y.tab.C $@
.y~.C:
	$(GET) $(GFLAGS) -p $< > $*.y
	$(YACC) $(YFLAGS) -C $*.y
	mv y.tab.C $*.C
	rm -f $*.y
.l.C:
	$(LEX) -C $<
	mv lex.yy.C $@

.l~.C:
	$(GET) $(GFLAGS) -p $< > $*.l
	$(LEX) -C $*.l
	mv lex.yy.C $@
	rm -f $*.l

.l~.cc:
	$(GET) $(GFLAGS) -p $< > $*.l
	$(LEX) -C $*.l
	mv lex.yy.C $@
	rm -f $*.l

.l~.cpp:
	$(GET) $(GFLAGS) -p $< > $*.l
	$(LEX) -C $*.l
	mv lex.yy.C $@
	rm -f $*.l

.l~.cxx:
	$(GET) $(GFLAGS) -p $< > $*.l
	$(LEX) -C $*.l
	mv lex.yy.C $@
	rm -f $*.l

.l~.c:
	$(GET) $(GFLAGS) -p $< > $*.l
	$(LEX) -c -d -l $*.l
	mv lex.yy.c $@
	rm -f $*.l

.y.cc:
	$(YACC) $(YFLAGS) -C $<
	mv y.tab.C $@
.y~.cc:
	$(GET) $(GFLAGS) -p $< > $*.y
	$(YACC) $(YFLAGS) -C $*.y
	mv y.tab.C $*.cc
	rm -f $*.y
.l.cc:
	$(LEX) -C $<
	mv lex.yy.C $@
.y.cpp:
	$(YACC) $(YFLAGS) -C $<
	mv y.tab.C $*.@
.y~.cpp:
	$(GET) $(GFLAGS) -p $< > $*.y
	$(YACC) $(YFLAGS) -C $*.y
	mv y.tab.C $*.cpp
	rm -f $*.y
.l.cpp:
	$(LEX) -C $<
	mv lex.yy.C $*.@

.y.cxx:
	$(YACC) $(YFLAGS) -C $<
	mv y.tab.C $*.@
.y~.cxx:
	$(GET) $(GFLAGS) -p $< > $*.y
	$(YACC) $(YFLAGS) -C $*.y
	mv y.tab.C $*.cxx
	rm -f $*.y
.l.cxx:
	$(LEX) -C $<
	mv lex.yy.C $*.@
.F.a:
	$(FC) -c $(FFLAGS) $<
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.o
.F~.a:
	$(GET) $(GFLAGS) -p $< > $*.F
	$(FC) -c $(FFLAGS) $*.F
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.[Fo]
.f90.a:
	$(FC) -c $(FFLAGS) $<
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.o
.f90~.a:
	$(GET) $(GFLAGS) -p $< > $*.f90
	$(FC) -c $(FFLAGS) $*.f90
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.f90 $*.o
.cc.a:
	$(CCC) -c $(CCFLAGS) $<
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.o
.cc~.a:
	$(GET) $(GFLAGS) -p $< > $*.cc
	$(CCC) -c $(CCFLAGS) $*.cc
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.cc $*.o
.cpp.a:
	$(CCC) -c $(CCFLAGS) $<
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.o
.cpp~.a:
	$(GET) $(GFLAGS) -p $< > $*.cpp
	$(CCC) -c $(CCFLAGS) $*.cpp
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.cpp $*.o
.cxx.a:
	$(CCC) -c $(CCFLAGS) $<
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.o
.cxx~.a:
	$(GET) $(GFLAGS) -p $< > $*.cxx
	$(CCC) -c $(CCFLAGS) $*.cxx
	$(AR) $(ARFLAGS) $@ $*.o
	rm -f $*.cxx $*.o
.H~.H:
	$(GET) $(GFLAGS) -p $< > $*.H
.hxx~.hxx:
	$(GET) $(GFLAGS) -p $< > $*.hxx
.hpp~.hpp:
	$(GET) $(GFLAGS) -p $< > $*.hpp

.cbl.o:
	$(COB) $(COBFLAGS) -c $< -qadata -qexit=adexit=iwzrmgux:: > /dev/null
.cbl~.o:
	$(GET) $(GFLAGS) -p $< > $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	-rm -f $*.cbl

.cbl~.cbl:
	$(GET) $(GFLAGS) -p $< > $*.cbl; chmod 444 $*.cbl

.cbl.a:
	$(COB) -c $(COBFLAGS) $< -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	$(AR) $(ARFLAGS) $@ $*.o
	-rm -f $*.o
.cbl~.a:
	$(GET) $(GFLAGS) -p $< > $*.cbl
	$(COB) -c $(COBFLAGS) $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	$(AR) $(ARFLAGS) $@ $*.o
	-rm -f $*.o $*.cbl

.cpy~.cpy:
	$(GET) $(GFLAGS) -p $< > $*.cpy; chmod 444 $*.cpy

.pli.o:
	$(PLI) $(PLIFLAGS) -c $<
.pli~.o:
	$(GET) $(GFLAGS) -p $< > $*.pli
	$(PLI) $(PLIFLAGS) -c $*.pli
	-rm -f $*.pli

.pli~.pli:
	$(GET) $(GFLAGS) -p $< > $*.pli; chmod 444 $*.pli

.pli.a:
	$(PLI) -c $(PLIFLAGS) $<
	$(AR) $(ARFLAGS) $@ $*.o
	-rm -f $*.o
.pli~.a:
	$(GET) $(GFLAGS) -p $< > $*.pli
	$(PLI) -c $(PLIFLAGS) $*.pli
	$(AR) $(ARFLAGS) $@ $*.o
	-rm -f $*.o $*.pli

.inc~.inc:
	$(GET) $(GFLAGS) -p $< > $*.inc; chmod 444 $*.inc

.ccp~.ccp:
	$(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp

.ccp.cbl:
	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $<
	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
	    mv -f $*.cbl $*.sqb;  \
	    chmod 444 $*.sqb; \
	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
	    rm -f $*.sqb; fi


.ccp.o:
	@rm -f $*.cbl
	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $<
	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
	    mv -f $*.cbl $*.sqb;  \
	    chmod 444 $*.sqb; \
	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
	    rm -f $*.sqb; fi
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null

.ccp~.o:
	@rm -f $*.cbl
	$(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp
	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp
	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
	    mv -f $*.cbl $*.sqb;  \
	    chmod 444 $*.sqb; \
	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
	    rm -f $*.sqb; fi
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	-rm -f $*.ccp 

.ccp.a:
	@rm -f $*.cbl
	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $<
	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
	    mv -f $*.cbl $*.sqb;  \
	    chmod 444 $*.sqb; \
	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
	    rm -f $*.sqb; fi
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	$(AR) $(ARFLAGS) $@ $*.o
	-rm -f $*.o
	
.ccp~.a:
	$(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp
	@rm -f $*.cbl
	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp
	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
	    mv -f $*.cbl $*.sqb;  \
	    chmod 444 $*.sqb; \
	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
	    rm -f $*.sqb; fi
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	$(AR) $(ARFLAGS) $@ $*.o
	-rm -f $*.ccp $*.o
	
.sqb~.sqb:
	$(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb

.sqb.cbl:
	$(DB2PREP) $< $(DB2PREPOPTIONS)

.sqb.o:
	@rm -f $*.cbl
	$(DB2PREP) $< $(DB2PREPOPTIONS)
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null

.sqb~.o:
	$(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb
	@rm -f $*.cbl
	$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	-rm -f $*.sqb

.sqb.a:
	@rm -f $*.cbl
	$(DB2PREP) $< $(DB2PREPOPTIONS)
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	$(AR) $(ARFLAGS) $@ $*.o
	-rm -f $*.o

.sqb~.a:
	$(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb
	@rm -f $*.cbl
	$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)
	@chmod 444 $*.cbl
	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
	$(AR) $(ARFLAGS) $@ $*.o
	-rm -f  $*.sqb $*.o



#################################
### Sources Headers and Objects #
#################################

HDRS		= tablecal.h 

EXTHDRS		=

SRCS		= cell_vb.c \
		  formula_interpret.c \
		  tbd_vb.c \
		font_vb.c \
		interior_vb.c \
		row_vb.c \
		column_vb.c \
		border_vb.c \
		axis_vb.c \
		title_vb.c \
		chart_vb.c \
		button_vb.c \
		worksheet_vb.c \
		application_vb.c \
		workbook_vb.c \
		fac_vb.c \
		range_vb.c


OBJS		= cell_vb.o \
		  formula_interpret.o \
		  tbd_vb.o \
		font_vb.o \
                interior_vb.o \
		row_vb.o \
		column_vb.o \
		border_vb.o \
		axis_vb.o \
		title_vb.o \
		chart_vb.o \
		button_vb.o \
		worksheet_vb.o \
		application_vb.o \
		workbook_vb.o\
		fac_vb.o \
		range_vb.o

MAKEFILE	= Makefile

#######################
### Program Libraries #
#######################

LIBS		= 

########################
### Additional Targets #
########################

all:		$(TARGET)

$(LIBRARY):	$(OBJS) $(MAKEFILE)
		@echo "Loading $(LIBRARY) ..."
		@ar cru $(LIBRARY) $(OBJS)
		@echo "done"

$(PROGRAM):	$(OBJS) $(LIBS) $(MAKEFILE)
		@echo "Linking $(PROGRAM) ..."
		@$(LD) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM)
		@echo "done"

clean:;		@rm -f $(OBJS) core

clobber:;	@rm -f $(OBJS) $(LIBRARY) $(PROGRAM) core tags

depend:
		makedepend -- $(CFLAGS) -- $(SRCS)


echo:;		@echo $(HDRS) $(SRCS)

extract:;	@ar x $(DEST)/$(LIBRARY)

index:;		@ctags -wx $(HDRS) $(SRCS)

install:;
		@if [ "$(LIBRARY)" = "$(TARGET)" ]; then \
			(make -f $(MAKEFILE) install_lib); fi
		@if [ "$(PROGRAM)" = "$(TARGET)" ]; then \
			(make -f $(MAKEFILE) install_pro); fi

install_lib:	$(LIBRARY)
		@echo Installing $(LIBRARY) in $(DEST)
		@if [ $(DEST) != . ]; then \
		(rm -f $(DEST)/$(LIBRARY); $(INSTALL) $(LIBRARY) $(DEST)); fi

install_pro:	$(PROGRAM)
		@echo Installing $(PROGRAM) in $(DEST)
		@-strip $(PROGRAM)
		@if [ $(DEST) != . ]; then \
		(rm -f $(DEST)/$(PROGRAM); $(INSTALL) $(PROGRAM) $(DEST)); fi

print:;		@$(PRINT) $(HDRS) $(SRCS)

tags:		$(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)
###
# DO NOT DELETE THIS LINE -- make depend depends on it.
