	#assumes the existence of the following environment variables and their values
	#ORACLE_LIB
		#Ale School: /lib64/instantclient
		#Ale Home: /usr/lib/oracle/10.2.0.2/client
		#Mark School: /usr/lib64/oracle/10.2.0.1/client/lib/
		#Mark Home: /usr/lib/oracle/10.1.0.5/client/lib/
		#Reasey School: /lib64/instantclient_10_2
		#Reasey Home:
	#ORACLE_SDK	
		#Ale School: /lib64/instantclient/sdk/include
		#Ale Home: /usr/lib/oracle/10.2.0.2/client/sdk/include
		#Mark School: /usr/lib64/oracle/10.2.0.1/client/include/
		#Mark Home: /usr/lib/oracle/10.1.0.5/client/include/
		#Reasey School: /lib64/instantclient_10_2/sdk/include
		#Reasey Home:

	# use "gcc" to compile source files.
	CC = g++ -c
	# the linker is also "gcc". It might be something else with other compilers.
	LD = g++
	# Compiler flags go here.
	CFLAGS = -Wall -ggdb -fpic
	#locations maybe not in path to include
	INCLUDE = -I ../vector -I $(ORACLE_SDK)
	# Linker flags go here. 
	LDFLAGS = -L$(ORACLE_LIB) -lclntsh -L$(MYLIBS) -lnums -lrgps
	# use this command to erase files.
	RM = @/bin/rm -f
	#sources
	SRCSEXC = 
	SRCSMSLOB = OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp LocatorTable.cpp LocatorNode.cpp orphanedLocatorList.cpp Locator.cpp
	TSTMSLOB = test.cpp
	SRCS = $(SRCSEXC) $(SRCSMSLOB)
	# list of generated object files.
	OBJSEXC = 
	OBJSMSLOB = OraclemSlob.o memSlob.o imSlobstream.o SequenceIndex.o LocatorTable.o LocatorNode.o Locator.o orphanedLocatorList.o
	OTSTMSLOB = test.o
	OBJS = $(OBJSEXC) $(OBJSMSLOB)
	# program executable file name.
	PROGMSLOB = tmslob.out
	LIBNAME	= libmslob.a
	LIBNAMES	= libmslobs.so
	LIBNAMESMAC = libmslobs.dylib
	ARCHIVE = @ar cru
	INDEX	= @ranlib
	CP = @cp

test:
	$(CC) $(CFLAGS) $(INCLUDE) $(SRCSEXC) $(SRCSMSLOB) $(TSTMSLOB)
	$(LD) -o $(PROGMSLOB) $(OBJSEXC) $(OBJSMSLOB) $(OTSTMSLOB) $(LDFLAGS)

lib:
	@echo .
	@echo "Use 'make libs' to build shared library."
	@echo .
# 	$(CC) $(CFLAGS) $(INCLUDE) $(SRCSEXC) $(SRCSMSLOB)
# 	$(ARCHIVE) $(LIBNAME) $(OBJSMSLOB) $(OBJSEXC)
# 	$(INDEX) $(LIBNAME)	

libs:
	@echo "Compiling..."
	$(CC) $(CFLAGS) $(INCLUDE) $(SRCSEXC) $(SRCSMSLOB)
	@echo "Linking into shared library..."
	$(LD) -shared -o $(LIBNAMES) $(OBJSEXC) $(OBJSMSLOB) $(LDFLAGS)
	@echo "Copying library into $(MYLIBS)"
	$(CP) $(LIBNAMES) $(MYLIBS)
	@echo "Done."
maclibs:
	@echo "Compiling..."
	$(CC) $(CFLAGS) $(INCLUDE) $(SRCSEXC) $(SRCSMSLOB)
	@echo "Linking into shared library..."
	$(LD) -dynamiclib -o $(LIBNAMESMAC) $(OBJSEXC) $(OBJSMSLOB) $(LDFLAGS)
	@echo "Copying library into $(MYLIBS)"
	$(CP) $(LIBNAMESMAC) $(MYLIBS)
	@echo "Done."
	
clean:	
	@echo "Removing files..."
	-rm *.o
	-rm *.out
	-rm *.a
	@echo "Done."

###################ITEMS BELOW SHOULD BE PHASED OUT!####################
all:
	g++ test.cpp OraclemSlob.cpp imSlobstream.cpp SequenceIndex.cpp -I ../ -I /usr/lib64/oracle/10.2.0.1/client/include/ -L /usr/lib64/oracle/10.2.0.1/client/lib/ -locci -lclntsh -ggdb -o mmmm

ale:
	g++ test.cpp OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../vector -I /lib64/instantclient/sdk/include -L /lib64/instantclient -locci -lclntsh -ggdb -o mmmm

ale2:
	g++ test.cpp OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../vector -I /usr/lib/oracle/10.2.0.2/client/sdk/include -L /usr/lib/oracle/10.2.0.2/client -locci -lclntsh -ggdb -o mmmm

libold:
	g++ -ggdb -fpic -c OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../num -I ../vector -I /lib64/instantclient/sdk/include -L /lib64/instantclient  -ggdb
	ar cru libmslob.a imSlobstream.o  Locator.o  OraclemSlob.o memSlob.o SequenceIndex.o
	ranlib libmslob.a

lib2:
	g++ -ggdb -c OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../num -I ../vector -I /usr/lib/oracle/10.2.0.2/client/sdk/include -L /usr/lib/oracle/10.2.0.2/client  -ggdb
	ar cru libmslob.a imSlobstream.o  Locator.o  OraclemSlob.o memSlob.o  SequenceIndex.o
	ranlib libmslob.a

libmark:
	g++ -ggdb -c OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../num -I ../vector -I /usr/lib64/oracle/10.2.0.1/client/include/ -L /usr/lib64/oracle/10.2.0.1/client/lib/  -ggdb 
	ar cru libmslob.a imSlobstream.o  Locator.o  OraclemSlob.o  memSlob.o SequenceIndex.o
	ranlib libmslob.a


libmarkhome:
	g++ -ggdb -c OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../num -I ../vector -I /usr/lib/oracle/10.1.0.5/client/include/ -L /usr/lib/oracle/10.1.0.5/client/include/  -ggdb 
	ar cru libmslob.a imSlobstream.o  Locator.o  OraclemSlob.o  memSlob.o SequenceIndex.o
	ranlib libmslob.a


sey:
	g++ reasey.cpp OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../vector -I /lib64/instantclient_10_2/sdk/include -L /lib64/instantclient_10_2 -locci -lclntsh -ggdb -o reasey

libsey:
	g++ -ggdb -c OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../num -I ../vector -I /lib64/instantclient_10_2/sdk/include -L /lib64/instantclient_10_2  -ggdb
	ar cru libmslob.a imSlobstream.o  Locator.o  OraclemSlob.o memSlob.o SequenceIndex.o
	ranlib libmslob.a
libberlin:
	g++ -ggdb -fpic -c OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../num -I ../vector -I /usr/lib/oracle/10.2.0.2/client/include -L /usr/lib/oracle/10.2.0.2/client/lib   -ggdb
	ar cru libmslob.a imSlobstream.o  Locator.o  OraclemSlob.o memSlob.o SequenceIndex.o
	ranlib libmslob.a

berlin:
	g++ test.cpp OraclemSlob.cpp memSlob.cpp imSlobstream.cpp SequenceIndex.cpp Locator.cpp -I ../ -I ../vector -I /usr/lib/oracle/10.2.0.2/client/include -L /usr/lib/oracle/10.2.0.2/client/lib -locci -lclntsh -ggdb -o mmmm

