X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=base%2Fextension.make;h=5cfc951a1c02226227ab6cfe54bb7882a801a1a6;hp=8522f48110731be354f0ec8e6a1fa6b890decc5c;hb=refs%2Fheads%2Fmaster;hpb=40a4738e440a8412c61a12eca34ed6aa98d71a5a diff --git a/base/extension.make b/base/extension.make index 8522f48..8023992 100644 --- a/base/extension.make +++ b/base/extension.make @@ -1,19 +1,62 @@ +# base code for various Tcl extensions +# Copyright 2006-2012 Ian Jackson +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this library; if not, see . + + + +EXTPREFIX ?= $(FAMILY)_ +EXTENSION ?= $(EXTPREFIX)$(EXTBASE) +SHLIB ?= $(EXTENSION)-$(VERSION) +TABLE ?= $(EXTBASE) + +AUTO_HDRS += $(TABLE)+tcmdif.h +AUTO_SRCS += $(TABLE)+tcmdif.c +CFILES += $(TABLE)+tcmdif + +CPPFLAGS += $(foreach o, $(OTHER_EXTS), -I../$(dir $o)) +LDLIBS += $(foreach o, $(OTHER_EXTS), ../$(dir $o)$(EXTPREFIX)$(notdir $o)-$(VERSION).so) + +LDLIBS += $(BASE_DIR)/$(BASE_SHLIB).so -SHLIB ?= $(EXTENSION) +include $(BASE_DIR)/common.make +include $(BASE_DIR)/shlib.make -AUTO_HDRS += tables.h -AUTO_SRCS += tables.c +TCMDIFARGS ?= -p$(FAMILY)_$(EXTBASE) -o$@ $(BASE_TCT) $(OTHER_TCTS) $< -LDLIBS += -L ../base $(addprefix -l,$(EXTDEPENDS)) -lchiark-tcl +%+tcmdif.c: %.tct $(BASE_TCT) $(OTHER_TCTS) $(TCMDIFGEN) + $(TCMDIFGEN) -wc $(TCMDIFARGS) -include $(BASE_DIR)/common.make +%+tcmdif.h: %.tct $(BASE_TCT) $(OTHER_TCTS) $(TCMDIFGEN) + $(TCMDIFGEN) -wh $(TCMDIFARGS) -include $(BASE_DIR)/shlib.make +OTHER_DIRS += $(BASE_DIR) +OTHER_DIRS += $(addprefix ../,$(dir $(OTHER_EXTS))) +OTHER_DIRS += . + +null := +space := $(null) # + +test-load.tcl: + echo >$@ "load $(SHLIB).so" -%.c: %.tct $(BASE_TCT) $(TCMDIFGEN) - $(TCMDIFGEN) -wc -p$(EXTENSION) -o$@ $(BASE_TCT) $< +test-load: $(SHLIB).so test-load.tcl + @set -x; LD_LIBRARY_PATH=$(subst $(space),:,$(strip $(OTHER_DIRS)))$${LD_LIBRARY_PATH+:}$${LD_LIBRARY_PATH} \ + tclsh$(TCL_VERSION) test-load.tcl -%.h: %.tct $(BASE_TCT) $(TCMDIFGEN) - $(TCMDIFGEN) -wh -p$(EXTENSION) -o$@ $(BASE_TCT) $< +debian-substvars: all + set -e; d=`pwd`; cd ..; \ + dpkg-shlibdeps -T"$$d"/$@ "$$d"/$(SHLIB).so include $(BASE_DIR)/final.make