# Generated automatically from Makefile.in by configure.
# ------------------------------------------------------------------------
#       Makefile for normal version of vu extension
# ------------------------------------------------------------------------

SRC_DIR		= .
TOP_DIR		= ./..
LIB_DIR		= $(TOP_DIR)/library
DOC_DIR		= $(TOP_DIR)/doc
GENERIC_DIR	= $(TOP_DIR)/generic
MAC_DIR		= $(TOP_DIR)/mac
UNIX_DIR	= $(TOP_DIR)/unix
WIN_DIR		= $(TOP_DIR)/win
DEMO_DIR	= $(TOP_DIR)/demos
TEST_DIR	= $(TOP_DIR)/tests

# version info in Makefile and C format
include $(GENERIC_DIR)/version.h

PACKAGE		= vu
PKG_VERSION	= $(VU_VERSION)

OBJS		= pkgInit.o \
		pfit.o \
		tkBargraph.o \
		tkDial.o \
		tkPie.o \
		tkSpinbox.o \
		tkStripchart.o 

# Combobox just isn't finished
#OBJS		+= tkCombobox.o

LIB_FILES	= vu.tcl dial.tcl spinbox.tcl
#LIB_FILES	+= combobox.tcl

## Define this if you want to use STUBS
## This only works for the dynamic library
##
STUBS_FLAGS	= -DUSE_TCL_STUBS -DUSE_TK_STUBS

# ------------------------------------------------------------------------

# PKG_CFLAGS	= -O
PKG_CFLAGS	= -g -Wall -Wno-implicit -Wshadow \
		   -Wpointer-arith -Wmissing-prototypes \
		   -Wmissing-declarations -Wnested-externs -Winline

prefix		= /opt/tcl831
exec_prefix	= /opt/tcl831

TCL_VERSION	= 8.3
TK_VERSION	= 8.3
#WISH		= /opt/tcl831/bin/wish$(TK_VERSION)
WISH		= wish$(TK_VERSION)

TCL_SRC_DIR 	= /u/de/src/tcl8.3.1
TK_SRC_DIR 	= /u/de/src/tk8.3.1

TCL_BUILD_LIB_SPEC	= -L/u/de/src/tcl8.3.1/unix -ltcl8.3${TCL_DBGX}
TK_BUILD_LIB_SPEC	= -L/u/de/src/tk8.3.1/unix -ltk8.3

TCL_BUILD_STUB_LIB_SPEC	= -L/u/de/src/tcl8.3.1/unix -ltclstub8.3${TCL_DBGX}
TK_BUILD_STUB_LIB_SPEC	= -L/u/de/src/tk8.3.1/unix -ltkstub8.3

TCL_LIB_SPEC	= -L/opt/tcl831/lib -ltcl8.3${TCL_DBGX}
TK_LIB_SPEC	= -L/opt/tcl831/lib -ltk8.3

# TCL_LIBS	= -ldl  -lieee -lm -L/opt/lib -lefence
# TK_LIBS		= -L/usr/X11R6/lib -lX11 -ldl  -lieee -lm -L/opt/lib -lefence
TCL_LIBS	= -ldl  -lieee -lm 
TK_LIBS		= -L/usr/X11R6/lib -lX11 -ldl  -lieee -lm 

INSTALL		= /usr/bin/install -c
INSTALL_PROGRAM	= ${INSTALL}
INSTALL_DATA	= ${INSTALL} -m 644
CC		= gcc
RM		= rm -f
RANLIB		= :
SHLIB_CFLAGS	= -fPIC
SHLIB_SUFFIX	= .so
SHLIB_LD	= gcc -shared
## HP cc sometimes requires -Aa for proper ansi compilation
TCL_CFLAGS	= $(STUBS_FLAGS) $(PKG_CFLAGS)  -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1  
TCL_LD_FLAGS	= -rdynamic
TK_LD_SEARCH_FLAGS = -Wl,-rpath,${LIB_RUNTIME_DIR}:/usr/X11R6/lib
TK_XINCLUDES	= -I/usr/X11R6/include

INCLUDES	= -I${prefix}/include $(TK_XINCLUDES)\
		  -I$(TCL_SRC_DIR)/generic\
		  -I$(TK_SRC_DIR)/generic

DLL		= $(PACKAGE)$(SHLIB_SUFFIX)
STATIC_LIB	= $(PACKAGE).a
PKG_DIR		= $(PACKAGE)$(PKG_VERSION)
STATIC_EXEC	= vu
DLL_DIR		= ${exec_prefix}/lib/$(PKG_DIR)
RUN_DIR		= ${prefix}/lib/$(PKG_DIR)

CFLAGS		= -I. -I$(GENERIC_DIR) $(INCLUDES) -DBUILD_$(PACKAGE)\
		  $(TCL_CFLAGS) $(SHLIB_CFLAGS)\
		  -DVU_VERSION=\"$(PKG_VERSION)\"\
		  -DPACKAGE=\"$(PACKAGE)\"\
		  -DPKG_RUNTIME_DIR=\"$(RUN_DIR)\"

# ------------------------------------------------------------------------
#       Don't edit anything beyond this point
# ------------------------------------------------------------------------

all: $(DLL) pkgIndex.tcl

# ${LIBS}
$(DLL): $(OBJS)
	$(SHLIB_LD) -o $@ $(OBJS)
	$(RM) $@.$(PKG_VERSION)
	ln -s $@ $@.$(PKG_VERSION)

vu wish: tkAppInit.o $(OBJS)
	$(CC) $(TK_LD_SEARCH_FLAGS) -o $(STATIC_EXEC) tkAppInit.o $(OBJS) \
	  $(LIBS) $(TK_BUILD_LIB_SPEC) $(TK_LIB_SPEC) $(TCL_BUILD_LIB_SPEC) $(TCL_LIB_SPEC) $(TK_LIBS) $(TCL_LIBS)

static $(STATIC_LIB): $(OBJS) pkgIndex.tcl
	$(RM) $(STATIC_LIB)
	ar cr $(STATIC_LIB) $(OBJS)
	$(RANLIB) $(STATIC_LIB)

pkgInit.o:	$(GENERIC_DIR)/pkg.h $(GENERIC_DIR)/pkgInit.c \
		$(GENERIC_DIR)/pkgInitScript.h
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(GENERIC_DIR)/$*.c -o $@

tkBargraph.o:	$(GENERIC_DIR)/pkg.h $(GENERIC_DIR)/tkBargraph.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(GENERIC_DIR)/$*.c -o $@

tkStripchart.o:	$(GENERIC_DIR)/pkg.h $(GENERIC_DIR)/tkStripchart.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(GENERIC_DIR)/$*.c -o $@

pfit.o:	$(GENERIC_DIR)/pkg.h $(GENERIC_DIR)/pfit.c \
		$(GENERIC_DIR)/recipes.c $(GENERIC_DIR)/recipes_no.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(GENERIC_DIR)/$*.c -o $@

tkCombobox.o:	$(GENERIC_DIR)/pkg.h $(GENERIC_DIR)/tkCombobox.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(GENERIC_DIR)/$*.c -o $@

tkDial.o:	$(GENERIC_DIR)/pkg.h $(GENERIC_DIR)/tkDial.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(GENERIC_DIR)/$*.c -o $@

tkPie.o:	$(GENERIC_DIR)/pkg.h $(GENERIC_DIR)/tkPie.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(GENERIC_DIR)/$*.c -o $@

tkSpinbox.o:	$(GENERIC_DIR)/pkg.h $(GENERIC_DIR)/tkSpinbox.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(GENERIC_DIR)/$*.c -o $@

pkgIndex.tcl:
	(\
	echo 'if {[catch {package require Tcl 8.1}]} return';\
	echo 'package ifneeded $(PACKAGE) $(PKG_VERSION) \
	    [list load [file join $$dir $(DLL).$(PKG_VERSION)] $(PACKAGE)]'\
	) > pkgIndex.tcl

pkgIndex.tcl-NOSTUBS:
	(\
	echo 'if {[catch {package require Tcl $(TCL_VERSION)}]} return';\
	echo 'package ifneeded $(PACKAGE) $(PKG_VERSION) \
	    [list load [file join $$dir $(DLL).$(PKG_VERSION)] $(PACKAGE)]'\
	) > pkgIndex.tcl

html:
	nroff -man $(DOC_DIR)/tkTable.n | rman -f HTML >$(DOC_DIR)/tkTable.html

install: all
	@if test ! -d $(DLL_DIR) ; then mkdir -p $(DLL_DIR); fi
	@if test ! -d $(RUN_DIR) ; then mkdir -p $(RUN_DIR); fi
	$(INSTALL_PROGRAM) $(DLL) "$(DLL_DIR)/$(DLL).$(PKG_VERSION)"
	$(INSTALL_DATA) pkgIndex.tcl "$(DLL_DIR)/"
	@for i in $(LIB_FILES) ; do \
		file=../lib/$$i; \
		echo "installing library file $$file" ; \
		$(INSTALL_DATA) $$file "$(RUN_DIR)/"; \
	done; 

uninstall:
	$(RM) "$(DLL_DIR)/$(DLL).$(PKG_VERSION)"\
		"$(DLL_DIR)/pkgIndex.tcl"
	@for i in $(LIB_FILES) ; do $(RM) "$(RUN_DIR)/$$i" ; done; 
	@if test -d $(DLL_DIR) ; then rmdir $(DLL_DIR) >&1 > /dev/null; fi
	@if test -d $(RUN_DIR) ; then rmdir $(RUN_DIR) >&1 > /dev/null; fi

test: $(DLL) pkgIndex.tcl
	VU_LIBRARY=$(LIB_DIR); export VU_LIBRARY; \
	$(WISH) $(TEST_DIR)/all.tcl -geometry +0+0 $(PWD) $(TCLTESTARGS)

simpletest: $(DLL) pkgIndex.tcl
	@echo "Testing $(PACKAGE)..."
	(\
	VU_LIBRARY=$(LIB_DIR); export VU_LIBRARY;\
	echo 'puts "Loading $(PACKAGE) from [lappend auto_path [pwd]]"; if {[catch {package require $(PACKAGE) $(PKG_VERSION)} err]} { puts "$(PACKAGE) failed to load and run: $$err"; exit 1 } else { puts "\"package require $(PACKAGE) $(PKG_VERSION)\" succeeded"; exit 0 }' | $(WISH)\
	)
	@echo "Test passed."

clean:
	$(RM) $(OBJS) $(DLL) $(DLL).$(PKG_VERSION) $(STATIC_LIB) $(STATIC_EXEC) core pkgIndex.tcl

distclean: clean
	$(RM) Makefile config.cache config.log config.status $(DOC_DIR)/*.html *\~ \#*\#

#COMPRESS	= tar cvf $(PKG_DIR).tar $(PKG_DIR); compress $(PKG_DIR).tar
COMPRESS	= gtar zcvf $(PKG_DIR).tar.gz $(PKG_DIR)
DIST_ROOT	= /tmp/dist
DIST_DIR	= $(DIST_ROOT)/$(PKG_DIR)

$(UNIX_DIR)/configure: $(UNIX_DIR)/configure.in
	autoconf $(UNIX_DIR)/configure.in > $(UNIX_DIR)/configure

dist-clean:
	rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.*

#	mkdir $(DIST_DIR)/mac
#	cp -p $(MAC_DIR)/*.mcp $(MAC_DIR)/*.h $(MAC_DIR)/*.r \
#		$(DIST_DIR)/mac

dist: dist-clean html $(UNIX_DIR)/configure
	mkdir -p $(DIST_DIR)
	cp -p $(TOP_DIR)/*.txt $(TOP_DIR)/ChangeLog $(DIST_DIR)

	mkdir $(DIST_DIR)/demos
	cp -p $(DEMO_DIR)/*.tcl $(DIST_DIR)/demos

	mkdir $(DIST_DIR)/doc
	cp -p $(DOC_DIR)/*.n $(DOC_DIR)/*.html $(DIST_DIR)/doc

	mkdir $(DIST_DIR)/generic
	cp -p $(GENERIC_DIR)/*.c $(GENERIC_DIR)/*.h $(DIST_DIR)/generic

	mkdir $(DIST_DIR)/library
	cp -p $(LIB_DIR)/*.tcl $(DIST_DIR)/library

	mkdir $(DIST_DIR)/tests

	mkdir $(DIST_DIR)/unix
	cp $(UNIX_DIR)/Makefile.in $(UNIX_DIR)/install-sh \
		$(UNIX_DIR)/configure $(UNIX_DIR)/configure.in \
		$(DIST_DIR)/unix
	chmod 664 $(DIST_DIR)/unix/Makefile.in
	chmod 775 $(DIST_DIR)/unix/configure $(DIST_DIR)/unix/configure.in
	chmod +x $(DIST_DIR)/unix/install-sh

	mkdir $(DIST_DIR)/win
	cp -p $(WIN_DIR)/*.c $(WIN_DIR)/Makefile $(DIST_DIR)/win

	(cd $(DIST_ROOT); $(COMPRESS);)
