X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=base%2Fextension.make;h=a881a9eec8be8cbc701d4eae3b90f0d1f4a1922e;hp=8522f48110731be354f0ec8e6a1fa6b890decc5c;hb=a97929d1f73dc47cc83440fe95c8a222cd8fbd5f;hpb=40a4738e440a8412c61a12eca34ed6aa98d71a5a diff --git a/base/extension.make b/base/extension.make index 8522f48..a881a9e 100644 --- a/base/extension.make +++ b/base/extension.make @@ -1,19 +1,58 @@ +# 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/ +OTHER_DIRS += $(addprefix ../,$(dir $(OTHER_EXTS))) +OTHER_DIRS += . + +null := +space := $(null) # -%.c: %.tct $(BASE_TCT) $(TCMDIFGEN) - $(TCMDIFGEN) -wc -p$(EXTENSION) -o$@ $(BASE_TCT) $< +$(SHLIB).test.tcl: + echo >$@ "load $(SHLIB).so" -%.h: %.tct $(BASE_TCT) $(TCMDIFGEN) - $(TCMDIFGEN) -wh -p$(EXTENSION) -o$@ $(BASE_TCT) $< +test-load: $(SHLIB).so $(SHLIB).test.tcl + LD_LIBRARY_PATH=$(subst $(space),:,$(OTHER_DIRS))$${LD_LIBRARY_PATH+:}$${LD_LIBRARY_PATH} \ + tclsh$(TCL_VERSION) $(SHLIB).test.tcl include $(BASE_DIR)/final.make