########################################################
# The next few fields may need modification for different
# revisions of Tcl/Tk
########################################################

# Set the TCLLIB and TKLIB to point to the .a files for the Tcl/Tk
# you'll be linking with.

# TCLLIB=/usr/local/lib/libtcl8.4.a
# TKLIB=/usr/local/lib/libtk8.4.a

 TCLLIB=/usr/local/lib/libtcl8.5.a
 TKLIB=/usr/local/lib/libtk8.5.a

# TCL_INIT, TK_INIT, TCL_LIB_INIT point to directories with Tcl
# initialization scripts

TCL_INIT=/usr/local/lib/tcl8.5 /usr/local/lib/tcl8

 TK_INIT=/usr/local/lib/tk8.5
 TCL_LIB_INIT=/usr/local/ActiveTcl/lib/tcllib1.7

# TCL_INIT=/usr/local/lib/tcl8.4
# TK_INIT=/usr/local/lib/tk8.4


# BZDIR is the bzip directory.
BZDIR=../bzip2-1.0.3

########################################################
# Lines below this should not need to be modified.
########################################################

BZTCLDIR = ../bzTcl
MEMFILEDIR=../memFile

LIBS = libbztclLite.so libbz2.a libbztclLite.a
LIBSRC= ${BZTCLDIR}/libbztclLite.so ../bzip2-1.0.3/libbz2.a  \
    ${BZTCLDIR}/libbztclLite.a

OBJS = ${BZDIR}/crctable.o ${BZDIR}/blocksort.o \
    ${BZDIR}/decompress.o \
    ${BZDIR}/huffman.o ${BZDIR}/bzlib.o ${BZDIR}/randtable.o \
    ${BZDIR}/compress.o ../bzTcl/bztclLiteInit.o ../bzTcl/bztclLiteCmd.o \
    ../memFile/memFileCmd.o  ../memFile/memFile.o


FLAGS=-I../memFile -I../bzTcl

all:	memTcl memTk

memTcl:		libtclsh.a main.c Makefile 
	cc -static -g -o memTcl ${FLAGS} main.c libtclsh.a \
	-lm -ldl

memTk:		main.c Makefile libwish.a
	cc -static -DUSE_TK -g -o memTk ${FLAGS} main.c libwish.a \
	-L/usr/X11R6/lib -lX11 -lXss -lXext -ldl -lieee -lm -ldl -lz -lpthread

libtclsh.a:	${OBJS} Makefile tclFileData.o memCreateTclInterp.o 
	cp $(TCLLIB) libtclsh.a
	chmod 666 libtclsh.a
	ar r libtclsh.a ${OBJS} tclFileData.o memCreateTclInterp.o 
	ranlib libtclsh.a 

go.sh:	Makefile
	echo "\
	mkdir tmp_tcl_lib; \
	cd tmp_tcl_lib; \
	ar x $(TCLLIB); \
	cd ..; \
	" >go.sh
	chmod 755 go.sh

libwish.a:	${OBJS} Makefile tkFileData.o memCreateTkInterp.o go.sh
	cp $(TKLIB) libwish.a
	chmod 666 libwish.a
	rm -rf tmp_tcl_lib
	./go.sh
	ar r libwish.a tmp_tcl_lib/*
	ar r libwish.a ${OBJS} tkFileData.o memCreateTkInterp.o 
	ranlib libwish.a 

testFTN:	testFTN.f95 libmemfile.a testMain.c Makefile ftcl.a
	g95 -g -o testFTN testFTN.f95 ftcl.a libmemfile.a libbz2.a \
	    $(TCLLIB) -lm -ldl

libmemfile.a:	../memFile/libmemfile.a
	cp ../memFile/libmemfile.a .

tclFileData.o:	tclFileData.c
	cc -g -c tclFileData.c ${FLAGS}

tkFileData.o:	tkFileData.c
	cc -g -c tkFileData.c ${FLAGS}

memCreateTclInterp.o:	memCreateInterp.c
	sed s/_TIMESTAMP_/"`date`"/g <memCreateInterp.c >tmp.c
	cc -g -o memCreateTclInterp.o -c tmp.c ${FLAGS}

memCreateTkInterp.o:	memCreateInterp.c
	sed s/_TIMESTAMP_/"`date`"/g <memCreateInterp.c >tmp.c
	cc -g -o memCreateTkInterp.o -c -DUSE_TK tmp.c ${FLAGS}

NOTCLLIB_tclFileData.c:	/usr/local/lib memMain.tcl ${LIBS}
	tclsh makeCStructBZ.tcl tclFileData.c /usr/local/lib/tcl8.5/init.tcl \
	    ./memMain.tcl

tkFileData.c:	/usr/local/lib memMain.tcl $(LIBS)
	tclsh makeCStructBZ.tcl tkFileData.c $(TCL_INIT) $(TK_INIT) \
	    ./memMain.tcl

tclFileData.c:	/usr/local/lib memMain.tcl $(LIBS)
	tclsh makeCStructBZ.tcl tclFileData.c $(TCL_INIT) $(TCL_LIB_INIT) \
	    ./memMain.tcl

clean:	
	rm -rf *.o *.a *.so memTcl a.out testMain memTk  tmp* tmp_tcl_lib  go.sh

veryclean:	
	rm -rf *.o *.a tclFileData.* *.so memTcl a.out testMain memTk \
	tkFileData.* tmp_tcl_lib go.sh  tmp*

${LIBS}:
	make -C ${MEMFILEDIR}
	cp ${LIBSRC} .


