# $Id: Makefile,v 1.3 1997/05/31 08:43:35 yotam Exp yotam $
#
# Makefile for hdfv + tclhdf
#

# of this packacge
VERSION = $(shell basename `pwd` | cut -d- -f2)

ifneq ($(EV),)
tell:
	@echo $(EV)=$($(EV))
endif

HDFROOT = /home/local/hdf

TCLROOT =
TCLINC = $(TCLROOT)/include
TCLINC = /usr/include/tcl
TCLLIBDIR = $(TCLROOT)/lib
TCLLIBDIR = /usr/lib

# needed for libtcl?
DLLIBS    = -ldl

X11LIBDIR = /usr/X11/lib

IFLAGS = -I$(TCLINC) -I$(HDFROOT)/include
LFLAGS = -L$(HDFROOT)/lib -L$(TCLLIBDIR) -L$(X11LIBDIR) -L/lib 
RFLAGS = -Wl,-R$(HDFROOT)/lib -Wl,-R$(TCLLIBDIR)

HDFLIBS = -ldf -ljpeg -lz

MINUSG =
DBGFLAGS =
# DEBUG=YES
ifeq ($(DEBUG),YES)
 MINUSG = -g
 DBGFLAGS = $(MINUSG) -DDEBUG=1
endif

WANFLAGS = -Wall
# BOOLFLAGS = -Dbool=int -Dfalse=0 -Dtrue=1
CFLAGS = $(IFLAGS) $(DBGFLAGS) $(BOOLFLAGS) -DVERSION=\"$(VERSION)\"
CXX = g++ 

%.o:%.c
	$(CXX) -c $(CFLAGS) $(WANFLAGS) $<

HDFSRC = /home/local/src/hdf/HDF4.0b2/hdf/src
EXTRAOBJ = \
	$(HDFSRC)/hfile.o \
	$(HDFSRC)/vg.o \
	$(HDFSRC)/vrw.o \
	$(HDFSRC)/vsfld.o

########################
# Optional override hook
-include ../Make.local

############################
# Avoid changing from here #
############################



all: hdfv

########################################################################
HDFVOBJ =  hdfv.o hdfCmd.o debug.o

hdfvobj: $(HDFVOBJ)

hdfv: hdfvobj
	rm -f $@
	$(CXX) $(MINUSG) $(LFLAGS) \
	$(RFLAGS) \
	$(LDBGFLAGS) \
   -o $@.new \
	   $(HDFVOBJ) $(EXTRAOBJ0) $(LIBDFG0) \
		$(HDFLIBS) \
		-ltk -ltcl -lX11 \
		-lm $(DLLIBS)
	mv $@.new $@

########################################################################
# Debug version
# -g version
LIBDFG = $(HDFSRC)/libdfg.a


DHDFVOBJ =  dhdfv.o hdfCmd.o debug.o

dhdfvobj: $(DHDFVOBJ)

DEBUG/hdfv: dhdfvobj
	rm -f $@
	$(CXX) $(MINUSG) $(LFLAGS) $(LDBGFLAGS) \
   -o $@.new \
	   $(DHDFVOBJ) $(EXTRAOBJ0) $(LIBDFG0) \
		$(HDFLIBS) \
		-ltk -ltcl -lX11 \
		-lm $(DLLIBS)
	mv $@.new $@

########################################################################
TCLHDFOBJ =  tclhdf.o hdfCmd.o debug.o

tclhdfobj: $(TCLHDFOBJ)

tclhdf: tclhdfobj
	rm -f $@
	$(CXX) $(MINUSG) $(LFLAGS) $(RFLAGS) $(LDBGFLAGS) \
	   -o $@.new \
	   $(TCLHDFOBJ) $(EXTRAOBJ0) $(HDFLIBS) -ltcl $(DLLIBS) -lm -lc
	mv $@.new $@

########################################################################

########################################################################
# archiving - file & floppy
########################################################################
HDFDIR = hdfv-$(VERSION)
TGZ = $(HDFDIR).tar.gz

TARFILES = \
	$(HDFDIR)/README \
	$(HDFDIR)/Makefile \
	$(HDFDIR)/*.c \
	$(HDFDIR)/*.h \
	$(HDFDIR)/*.tcl \
	$(HDFDIR)/hdfv.gif

tgz:
	(cd ..; tar cvf - $(TARFILES)) | gzip > $(TGZ)


fd0: tgz
	tar cvf /dev/fd0 $(TGZ)


# Even though dputs could be silent within tcl
# it may still be cpu comsuming.
# So let's comment it out
prod:
	sed s/dputs/#dpts/g < hdfv.tcl | \
		sed 's/proc #dpts/proc dputs/g' > hdfv.tcl.new
	mv hdfv.tcl.new hdfv.tcl

# Revive dputs
dorp:
	sed s/#dpts/dputs/g < hdfv.tcl > hdfv.tcl.new
	mv hdfv.tcl.new hdfv.tcl

