TCLVER  = 8.4
TCLDIR  = ../tcl8.4.6
TKDIR   = ../tk8.4.6
BZDIR = ../bzip2-1.0.3


# Include Don Libes debugger support
# Debug= -DINCLUDE_DEBUG
# DebugFiles = Dbg.o
# No Don Libes debugger support
Debug=
DebugFiles =

# Use the STUBS LIBRARY:
# Stubs = -DUSE_TCL_STUBS 
# Tcllibfile = -ltclstub$(TCLVER)
# No stubs support
 Stubs = -DUSE_TCL_STUBS 
 Tcllibfile = -ltcl$(TCLVER)

# Symbols or optimize?
Symbols = -g -fPIC
# Optimize
# Symbols = -O

# Include files at:
Includes = -I.

BZOBJS = blocksort.o bzlib.o compress.o huffman.o crctable.o \
    randtable.o decompress.o
# BZLIBS = libbz2.a libbz2.so 
BZLIBS = libbz2.a 

SRCOBJS =  $(BZDIR)/blocksort.o $(BZDIR)/bzlib.o $(BZDIR)/compress.o \
    $(BZDIR)/huffman.o $(BZDIR)/crctable.o $(BZDIR)/bzlib.h \
    $(BZDIR)/randtable.o $(BZDIR)/decompress.o

#SRCLIBS= $(BZDIR)/libbz2.a $(BZDIR)/libbz2.so
SRCLIBS= $(BZDIR)/libbz2.a

CFLAGS = $(Symbols) $(Stubs) $(Debug) $(Includes)

TCLINCL = -I$(TCLDIR)/generic -I$(TCLDIR)/unix
TCLLIB = -L$(TCLDIR)/unix

TKINCL = -I$(TKDIR)/generic -I$(TKDIR)/unix
TKLIB = -L$(TKDIR)/unix -L/usr/X11/lib

# For Solaris
LIBS = $(TCLLIB) -ltcl$(TCLVER)  -ldl -lgcc -lm -lposix4

# For Linux
LIBS = $(TCLLIB) $(Tcllibfile)  -ldl -lgcc -lm 

all:	libbztclLite.so libbztclLite.a 
	echo "DONE"

winAll: libbz2.a bzip2 bzip2recover test libbzcrit.dll

libbztclLite.so: bztclLiteCmd.o bztclLiteInit.o $(BZOBJS)
	gcc -shared bztclLiteCmd.o bztclLiteInit.o  $(BZOBJS) \
	-o libbztclLite.so $(LIBS)

libbztclLite.a: bztclLiteCmd.o bztclLiteInit.o $(BZOBJS) $(BZLIBS)
	cp libbz2.a libbztclLite.a
	ar r libbztclLite.a bztclLiteCmd.o bztclLiteInit.o 
	ranlib libbztclLite.a


LDlibbztclLite.so: bztclLiteCmd.o  bztclLiteInit.o   $(DebugFiles)
	/usr/ccs/bin/ld -G -z text bztclLiteCmd.o  bztclLiteInit.o   $(DebugFiles) \
	 -o libdtl8.4.so \
	-R /usr/local/lib:/opt/tcl/lib:/usr/openwin/lib \
	-L/opt/TCL/tcl8.4.6/unix $(TCLLIB) $(Tcllibfile)  \
	 -lsocket -lnsl -ldl -lm -lc

bztclLitewish: bztclLiteCmd.o tkbztclLiteAppInit.o bztclLiteInit.o   
	gcc -g -o bztclLitewish bztclLiteCmd.o tkbztclLiteAppInit.o bztclLiteInit.o \
	  $(CFLAGS) $(TKLIB) $(TCLLIB) -ltk$(TCLVER) -ltcl$(TCLVER) -lX11 -lXt -ldl 

tclbztclLiteAppInit.o:	bztclLiteAppInit.c
	gcc -c -g bztclLiteAppInit.c $(CFLAGS) $(TCLINCL) \
	-o tclbztclLiteAppInit.o

tkbztclLiteAppInit.o:	bztclLiteAppInit.c
	gcc -c -g bztclLiteAppInit.c $(CFLAGS) -DTK=1 $(TKINCL) $(TCLINCL) \
	-o tkbztclLiteAppInit.o

bztclLiteCmd.o:	bztclLiteCmd.c   bztclLiteInt.h
	gcc -c -g bztclLiteCmd.c $(CFLAGS) $(TCLINCL) 

bztclLiteInit.o:	bztclLiteInit.c   bztclLiteInt.h
	gcc -c -g bztclLiteInit.c $(CFLAGS) $(TCLINCL) 

clean:	
	rm -rf *.o bztclLitetcl bztclLitewish libbztclLite.so *.a *.so \
	lib test.bz2 init2 init3.txt test  tmp*

Dbg.o:	Dbg.c
	echo "Unpack tcl-debug.tar, configure and make, and copy Dbg.o here"
	echo "If no Debug - (#ifdef'd out), delete the Dbg.o dependency"
	false

${BZOBJS}:	${SRCOBJS}
	make -C ${BZDIR}
	cp ${SRCOBJS} .

${BZLIBS}:
	make -C ${BZDIR}
	cp ${SRCLIBS} .

libbzcrit.so: bzcrit.tcl bzReadCrit.c libbz2.a
#	/usr/local/lib/tcl8.4/critlib/critbind libbzcrit bzcrit.tcl
	tclkit /usr/local/bin/critcl.kit -pkg bzcrit bzcrit.tcl
	mv lib/bzcrit/Linux-x86/*.*so libbzcrit.so

libbzcrit.dll: bzcrit.tcl bzReadCrit.c libbz2.a
	critcl.kit -pkg bzcrit bzcrit.tcl
	mv lib/bzcrit/Windows-x86/*dll .




