                    ##############################
                    ##    LIBRARY MAKEFILE      ##
                    ##############################

## This is the makefile for the C/C++ library. You may have to change
## the first lines in order to compile it on your machine.
##
## We use:
##   gcc/g++ version 2.8.0
##   SWI prolog version 2.7.16
##   Oracle 8.0.4
##
## TARGETS:
##
##	make		does as
##	  make core	  build the core part (independent)
##	  make mod	  build the basic module rutines (uses core)
##	  make db	  build the basic oracle interface (uses all of the above)
##	  make lib	  build algorithms (uses all of the above)
##	  make swi	  build the oracle interface (uses all of the above)
##
## 	make clean	clean up the directory
##
## 	make depend	update dependencies (alter this file)
##
##      make backup     create a snapshot in the .OLD directory
##
## For complete rebuild do: 'make clean', 'make depend', and then 'make'.
##

##############################
## HOW TO COMPILE

# Flags
CFLAGS = -I/user/boehlen/lib/pl-2.7.16/include \
	-I$(ORACLE_HOME)/rdbms/demo

# Oracle home directory
# usually this is set if you have installed Oracle properly
# ORACLE_HOME=/pack/oracle-8.0.4/product/8.0.4

ORAFLAGS = -L$(ORACLE_HOME)/lib/\
	 -L$(ORACLE_HOME)/network/lib/\
	 -R$(ORACLE_HOME)/lib/\
	 -R$(ORACLE_HOME)/network/lib/\
	 -lclntsh -lconnect

# Basic compilation ($@ is the output and $< the file to compile)
%.o:	%.cpp
	g++ -c -fexceptions -o $@ $< $(CFLAGS)
%.o:	%.c
	gcc -c -fexceptions -o $@ $< $(CFLAGS)

##############################
## HOW TO BUILD SHARED LIBRARY

%.so:
	g++ -o $@ -Wl,-G $^ $(ORAFLAGS)

######################################################################
######################################################################
##            Do not change below this line                         ##
######################################################################
######################################################################

##############################
## SOME DEFINITIONS TO IDENTIFY THE PARTS OF THE LIBRARY

COREFILES = core_assoc.o core_dyn.o core_except.o core_list.o \
	core_obj.o core_ref.o core_str.o

MODFILES  = mod_aggregate.o mod_coal.o mod_difference.o mod_matrix.o \
	mod_range.o mod_rectangle.o mod_tim.o mod_timecalc.o

DBFILES   = db.o

LIBFILES  = lib_coal_bitemp.o lib_aggreg.o lib_coal_temp.o lib_diff.o lib_library.o

OTHERFILES = swi_ora.o swi_interface.o 

##############################
## THE TARGETS

# I you just type make, then everything will be build.

all:	library

library:	../module.so

basic:	$(COREFILES) $(MODFILES) $(DBFILES) $(LIBFILES) $(OTHERFILES)

nice:
	rm -f *~ *.bak

clean:
	rm -f *~ *.bak *.o $(PROGRAMS)

depend:	
	makedepend ls *.cpp

backup:	clean
	tar -cf .OLD/`date '+%y%m%d.tar'` *


# Manual dependencies:

../module.so:	$(COREFILES) $(MODFILES) $(DBFILES) $(LIBFILES) $(OTHERFILES)

# DO NOT DELETE THIS LINE -- make depend depends on it.

core_assoc.o: core_assoc.h core_obj.h core_str.h core_except.h
core_assoc.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
core_assoc.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
core_assoc.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
core_assoc.o: /usr/include/sys/time.h /usr/include/sys/time.h core_dyn.h
core_assoc.o: core_list.h core_ref.h
core_dyn.o: core_dyn.h core_obj.h core_str.h core_except.h
core_dyn.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
core_dyn.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
core_dyn.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
core_dyn.o: /usr/include/sys/time.h /usr/include/sys/time.h
core_dyn.o: /usr/include/string.h
core_except.o: core_except.h core_obj.h core_str.h /usr/include/sys/types.h
core_except.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h
core_except.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h
core_except.o: /usr/include/sys/select.h /usr/include/sys/time.h
core_except.o: /usr/include/sys/time.h /usr/include/stdio.h
core_except.o: /usr/include/sys/va_list.h
core_list.o: core_list.h core_except.h core_ref.h core_str.h core_obj.h
core_list.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
core_list.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
core_list.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
core_list.o: /usr/include/sys/time.h /usr/include/sys/time.h
core_obj.o: core_obj.h core_str.h core_except.h /usr/include/sys/types.h
core_obj.o: /usr/include/sys/feature_tests.h /usr/include/sys/isa_defs.h
core_obj.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h
core_obj.o: /usr/include/sys/select.h /usr/include/sys/time.h
core_obj.o: /usr/include/sys/time.h core_dyn.h /usr/include/malloc.h
core_ref.o: core_ref.h core_str.h core_except.h core_obj.h
core_ref.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
core_ref.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
core_ref.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
core_ref.o: /usr/include/sys/time.h /usr/include/sys/time.h
core_str.o: core_except.h core_str.h /usr/include/stdio.h
core_str.o: /usr/include/sys/feature_tests.h /usr/include/sys/va_list.h
core_str.o: /usr/include/string.h
db.o: db.h /usr/include/stdio.h /usr/include/sys/feature_tests.h
db.o: /usr/include/sys/va_list.h core.h core_except.h core_dyn.h core_obj.h
db.o: core_str.h /usr/include/sys/types.h /usr/include/sys/isa_defs.h
db.o: /usr/include/sys/machtypes.h /usr/include/sys/int_types.h
db.o: /usr/include/sys/select.h /usr/include/sys/time.h
db.o: /usr/include/sys/time.h core_ref.h core_list.h core_assoc.h mod_tim.h
db.o: mod_rectangle.h mod_range.h
db_error.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
db_error.o: /usr/include/sys/va_list.h core.h core_except.h core_dyn.h
db_error.o: core_obj.h core_str.h /usr/include/sys/types.h
db_error.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
db_error.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
db_error.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
db_error.o: core_list.h core_assoc.h db.h mod_tim.h mod_rectangle.h
db_error.o: mod_range.h
db_row.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
db_row.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
db_row.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
db_row.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
db_row.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
db_row.o: core_list.h core_assoc.h db.h /usr/include/stdio.h
db_row.o: /usr/include/sys/va_list.h mod_tim.h mod_rectangle.h mod_range.h
db_row.o: /usr/include/string.h
db_session.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
db_session.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
db_session.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
db_session.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
db_session.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
db_session.o: core_list.h core_assoc.h db.h /usr/include/stdio.h
db_session.o: /usr/include/sys/va_list.h mod_tim.h mod_rectangle.h
db_session.o: mod_range.h
lib_aggreg.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
lib_aggreg.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
lib_aggreg.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
lib_aggreg.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
lib_aggreg.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
lib_aggreg.o: core_list.h core_assoc.h mod.h mod_range.h mod_tim.h
lib_aggreg.o: mod_rectangle.h mod_coal.h mod_matrix.h mod_difference.h
lib_aggreg.o: mod_aggregate.h db.h /usr/include/stdio.h
lib_aggreg.o: /usr/include/sys/va_list.h lib.h
lib_coal_bitemp.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
lib_coal_bitemp.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
lib_coal_bitemp.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
lib_coal_bitemp.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
lib_coal_bitemp.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
lib_coal_bitemp.o: core_list.h core_assoc.h mod.h mod_range.h mod_tim.h
lib_coal_bitemp.o: mod_rectangle.h mod_coal.h mod_matrix.h mod_difference.h
lib_coal_bitemp.o: mod_aggregate.h db.h /usr/include/stdio.h
lib_coal_bitemp.o: /usr/include/sys/va_list.h lib.h
lib_coal_temp.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
lib_coal_temp.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
lib_coal_temp.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
lib_coal_temp.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
lib_coal_temp.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
lib_coal_temp.o: core_list.h core_assoc.h mod.h mod_range.h mod_tim.h
lib_coal_temp.o: mod_rectangle.h mod_coal.h mod_matrix.h mod_difference.h
lib_coal_temp.o: mod_aggregate.h db.h /usr/include/stdio.h
lib_coal_temp.o: /usr/include/sys/va_list.h lib.h
lib_diff.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
lib_diff.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
lib_diff.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
lib_diff.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
lib_diff.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
lib_diff.o: core_list.h core_assoc.h mod.h mod_range.h mod_tim.h
lib_diff.o: mod_rectangle.h mod_coal.h mod_matrix.h mod_difference.h
lib_diff.o: mod_aggregate.h db.h /usr/include/stdio.h
lib_diff.o: /usr/include/sys/va_list.h lib.h
lib_library.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
lib_library.o: /usr/include/sys/va_list.h core.h core_except.h core_dyn.h
lib_library.o: core_obj.h core_str.h /usr/include/sys/types.h
lib_library.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
lib_library.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
lib_library.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
lib_library.o: core_list.h core_assoc.h mod.h mod_range.h mod_tim.h
lib_library.o: mod_rectangle.h mod_coal.h mod_matrix.h mod_difference.h
lib_library.o: mod_aggregate.h db.h lib.h
mod_aggregate.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
mod_aggregate.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
mod_aggregate.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
mod_aggregate.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
mod_aggregate.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
mod_aggregate.o: core_list.h core_assoc.h mod_aggregate.h mod_rectangle.h
mod_aggregate.o: mod_tim.h mod_range.h mod_matrix.h
mod_coal.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
mod_coal.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
mod_coal.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
mod_coal.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
mod_coal.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
mod_coal.o: core_list.h core_assoc.h mod_range.h mod_tim.h mod_rectangle.h
mod_coal.o: mod_coal.h
mod_difference.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
mod_difference.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
mod_difference.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
mod_difference.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
mod_difference.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
mod_difference.o: core_list.h core_assoc.h mod_difference.h mod_rectangle.h
mod_difference.o: mod_tim.h mod_range.h mod_matrix.h
mod_matrix.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
mod_matrix.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
mod_matrix.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
mod_matrix.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
mod_matrix.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
mod_matrix.o: core_list.h core_assoc.h mod_matrix.h mod_rectangle.h mod_tim.h
mod_matrix.o: mod_range.h
mod_range.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
mod_range.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
mod_range.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
mod_range.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
mod_range.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
mod_range.o: core_list.h core_assoc.h mod_range.h mod_tim.h
mod_rectangle.o: core.h core_except.h core_dyn.h core_obj.h core_str.h
mod_rectangle.o: /usr/include/sys/types.h /usr/include/sys/feature_tests.h
mod_rectangle.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
mod_rectangle.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
mod_rectangle.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
mod_rectangle.o: core_list.h core_assoc.h mod_rectangle.h mod_tim.h
mod_rectangle.o: mod_range.h
mod_tim.o: core_except.h mod_tim.h mod_timecalc.h
mod_timecalc.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
mod_timecalc.o: /usr/include/sys/va_list.h mod_timecalc.h
swi_interface.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
swi_interface.o: /usr/include/sys/va_list.h core.h core_except.h core_dyn.h
swi_interface.o: core_obj.h core_str.h /usr/include/sys/types.h
swi_interface.o: /usr/include/sys/isa_defs.h /usr/include/sys/machtypes.h
swi_interface.o: /usr/include/sys/int_types.h /usr/include/sys/select.h
swi_interface.o: /usr/include/sys/time.h /usr/include/sys/time.h core_ref.h
swi_interface.o: core_list.h core_assoc.h mod.h mod_range.h mod_tim.h
swi_interface.o: mod_rectangle.h mod_coal.h mod_matrix.h mod_difference.h
swi_interface.o: mod_aggregate.h db.h lib.h
