# version info in Makefile and C format include @srcdir@/version.h # This sets the name that tkTable will define for itself when loaded # If you change this, then the demos won't work, but it might be necessary # for those with another built-in "table" command TBL_COMMAND = table TBL_RUNTIME = tkTable.tcl SRCDIR = @srcdir@ TOPDIR = @srcdir@/.. LIBDIR = $(TOPDIR)/lib DOCDIR = $(TOPDIR)/doc PACKAGE = Tktable OBJS = tkTable.o tkTableWin.o tkTableTag.o tkTableEdit.o \ tkTableCell.o tkTableCmds.o cmd.o ## PostScript is on the drawing board #OBJS += tkTablePs.o MANS = tkTable.n #------------------------------------------------- prefix = @prefix@ exec_prefix = @exec_prefix@ TCL_VERSION = @TCL_VERSION@ TK_VERSION = @TK_VERSION@ WISH = wish$(TK_VERSION) TCL_SRC_DIR = @TCL_SRC_DIR@ TK_SRC_DIR = @TK_SRC_DIR@ TCL_BUILD_LIB_SPEC = @TCL_BUILD_LIB_SPEC@ TK_BUILD_LIB_SPEC = @TK_BUILD_LIB_SPEC@ TCL_LIB_SPEC = @TCL_LIB_SPEC@ TK_LIB_SPEC = @TK_LIB_SPEC@ TCL_LIBS = @TCL_LIBS@ TK_LIBS = @TK_LIBS@ TBL_CFLAGS = -O ## NO_EMBEDDED_RUNTIME means that the tkTable.tcl file will not be embedded ## into the executable, thus the default tkTable.tcl library file will not ## be available when the library is loaded. ## If this is defined, the tkTable.tcl file must be available in a ## predefined set of directories (see docs). #TBL_CFLAGS += -DNO_EMBEDDED_RUNTIME ## USE_EXIT_HANDLER is necessary for 8.1 before b3 and 8.0 ## It is a work-around for the improper unloading of DLLs when exiting #TBL_CFLAGS += -DUSE_EXIT_HANDLER ## Experimental, not documented, not complete... #TBL_CFLAGS += -DPROCS ## I use this for helping hunt down the slightest error #TBL_CFLAGS += -DDEBUG -g -Wall -Wno-implicit -Wshadow \ -Wpointer-arith -Wmissing-prototypes \ -Wmissing-declarations -Wnested-externs -Winline INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ CC = @CC@ RM = rm -f RANLIB = @TCL_RANLIB@ SHLIB_CFLAGS = @TCL_SHLIB_CFLAGS@ SHLIB_SUFFIX = @TCL_SHLIB_SUFFIX@ SHLIB_LD = @TCL_SHLIB_LD@ TCL_PREFIX = @TCL_PREFIX@ ## HP cc sometimes requires -Aa for proper ansi compilation TCL_CFLAGS = $(TBL_CFLAGS) @TCL_DEFS@ @TCL_CFLAGS@ TCL_LD_FLAGS = @TCL_LD_FLAGS@ TK_LD_SEARCH_FLAGS = @TK_LD_SEARCH_FLAGS@ TK_XINCLUDES = @TK_XINCLUDES@ LIB_RUNTIME_DIR = @libdir@ INCLUDES = -I@includedir@ $(TK_XINCLUDES)\ -I$(TCL_SRC_DIR)/generic\ -I$(TK_SRC_DIR)/generic DLL = $(PACKAGE)$(SHLIB_SUFFIX) STATIC_LIB = $(PACKAGE).a PACKAGEDIR = $(PACKAGE)$(TBL_VERSION) STATIC_EXEC = tablewish DLLDIR = ${exec_prefix}/lib/$(PACKAGEDIR) RUNDIR = ${prefix}/lib/$(PACKAGEDIR) CFLAGS = -I. -I$(SRCDIR) $(TCL_CFLAGS) $(SHLIB_CFLAGS) $(INCLUDES)\ -DTBL_VERSION=\"$(TBL_VERSION)\"\ -DTBL_COMMAND=\"$(TBL_COMMAND)\"\ -DTBL_RUNTIME=\"$(TBL_RUNTIME)\"\ -DTBL_RUNTIME_DIR=\"$(RUNDIR)\" MAN_INSTALL_DIR = @mandir@/mann #COMPRESS = tar cvf $(PACKAGEDIR).tar $(PACKAGEDIR); compress $(PACKAGEDIR).tar COMPRESS = gtar zcvf $(PACKAGEDIR).tar.gz $(PACKAGEDIR) all: $(DLL) pkgIndex.tcl $(DLL): $(OBJS) $(SHLIB_LD) -o $@ $(OBJS) static $(STATIC_LIB): $(OBJS) pkgIndex.tcl $(RM) $(STATIC_LIB) ar cr $(STATIC_LIB) $(OBJS) $(RANLIB) $(STATIC_LIB) tkTable.o: $(SRCDIR)/tkTable.h $(SRCDIR)/tkTable.c \ $(SRCDIR)/tkTableInitScript.h tkTable.tcl.h tkTableCmds.o: $(SRCDIR)/tkTable.h $(SRCDIR)/tkTableCmds.c tkTableCell.o: $(SRCDIR)/tkTable.h $(SRCDIR)/tkTableCell.c tkTablePs.o: $(SRCDIR)/tkTable.h $(SRCDIR)/tkTablePs.c tkTableTag.o: $(SRCDIR)/tkTable.h $(SRCDIR)/tkTableTag.c tkTableWin.o: $(SRCDIR)/tkTable.h $(SRCDIR)/tkTableWin.c .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $(SRCDIR)/$*.c pkgIndex.tcl: (\ echo 'if {[catch {package require Tcl $(TCL_VERSION)}]} return';\ echo 'package ifneeded $(PACKAGE) $(TBL_VERSION)\ "package require Tk $(TK_VERSION);\ [list load [file join $$dir $(DLL).$(TBL_VERSION)] $(PACKAGE)]"'\ ) > pkgIndex.tcl install: all if test ! -d "$(DLLDIR)"; then mkdir "$(DLLDIR)"; fi if test ! -d "$(RUNDIR)"; then mkdir "$(RUNDIR)"; fi $(INSTALL_PROGRAM) $(DLL) "$(DLLDIR)/$(DLL).$(TBL_VERSION)" $(INSTALL_DATA) pkgIndex.tcl "$(DLLDIR)/pkgIndex.tcl" $(INSTALL_DATA) $(LIBDIR)/tkTable.tcl "$(RUNDIR)/tkTable.tcl" $(INSTALL_DATA) $(DOCDIR)/$(MANS) $(MAN_INSTALL_DIR)/ # Leaves behind created directories uninstall: $(RM) "$(DLLDIR)/$(DLL).$(TBL_VERSION)" "$(DLLDIR)/pkgIndex.tcl" "$(RUNDIR)/tkTable.tcl" $(MAN_INSTALL_DIR)/$(MANS) test: all $(WISH) $(TOPDIR)/demos/basic.tcl clean: $(RM) $(OBJS) $(DLL) $(STATIC_LIB) $(STATIC_EXEC) core pkgIndex.tcl tkTable.tcl.h distclean: clean $(RM) Makefile config.cache config.log config.status tkTable.tcl.h: $(LIBDIR)/tkTable.tcl sed -e '/^$\#/d' -e '/^$$/d' -e 's/\"/\\"/g' -e 's/^/"/' -e 's/$$/\\n"/' <$(LIBDIR)/tkTable.tcl > $@ || { $(RM) $@; exit 1; } tablewish: tkAppInit.o $(OBJS) 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) distrib-clean: rm -rf ../../$(PACKAGEDIR) ../../$(PACKAGEDIR).tar.* distrib: $(RM) $(DOCDIR)/tkTable.html nroff -man $(DOCDIR)/tkTable.n | rman -f HTML > $(DOCDIR)/tkTable.html (cd ../..; \ cp -r tkTable $(PACKAGEDIR); \ cd $(PACKAGEDIR)/src; \ make distclean >&1 > /dev/null; \ cd ../..; $(COMPRESS); \ )