default: all
-SHLIB = chiark-tcl
CFILES = enum hook idtable parse scriptinv tcmdiflib
BASE_DIR = .
include common.make
+SHLIB = $(BASE_SHLIB)
+
base+tcmdif.h: $(BASE_TCT) $(TCMDIFGEN)
$(TCMDIFGEN) -wh -o$@ $<
+VERSION ?= 1
+FAMILY ?= chiark_tcl
+
OPTIMISE ?= -O2
TCL_MEM_DEBUG ?= -DTCL_MEM_DEBUG
TCMDIFGEN ?= $(BASE_DIR)/tcmdifgen
BASE_TCT ?= $(BASE_DIR)/base.tct
+BASE_SHLIB ?= $(FAMILY)-$(VERSION)
ifeq ($(shell $(CC) -Wno-pointer-sign -E -x c /dev/null >/dev/null || echo x),)
CFLAGS += -Wno-pointer-sign
-EXTENSION ?= chiark_tcl_$(EXTBASE)
-SHLIB ?= $(EXTENSION)
+EXTPREFIX ?= $(FAMILY)_
+EXTENSION ?= $(EXTPREFIX)$(EXTBASE)
+SHLIB ?= $(EXTENSION)-$(VERSION)
TABLE ?= $(EXTBASE)
AUTO_HDRS += $(TABLE)+tcmdif.h
AUTO_SRCS += $(TABLE)+tcmdif.c
CFILES += $(TABLE)+tcmdif
-LDLIBS += $(BASE_DIR)/chiark-tcl.so
+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
include $(BASE_DIR)/common.make
include $(BASE_DIR)/shlib.make
-TCMDIFARGS ?= -p$(EXTENSION) -o$@ $(BASE_TCT) $(OTHER_TCTS) $<
+TCMDIFARGS ?= -p$(FAMILY)_$(EXTBASE) -o$@ $(BASE_TCT) $(OTHER_TCTS) $<
%+tcmdif.c: %.tct $(BASE_TCT) $(OTHER_TCTS) $(TCMDIFGEN)
$(TCMDIFGEN) -wc $(TCMDIFARGS)
TARGETS += $(SHLIB).so
$(SHLIB).so: $(OBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ -shared $(OBJS) $(LDLIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ -shared \
+ -Xlinker -soname=$@ $(OBJS) $(LDLIBS)
EXTBASE = cdb
CFILES = readonly writeable lookup
OTHER_TCTS = ../hbytes/hbytes-base.tct
-CPPFLAGS += -I../hbytes
-LDLIBS += ../hbytes/chiark_tcl_hbytes.so -lcdb
+OTHER_EXTS += hbytes/hbytes
+LDLIBS += -lcdb
include ../base/extension.make
addpath LD_LIBRARY_PATH {../base ../hbytes} {} {}
-load ./chiark_tcl_cdb.so
+load ./chiark_tcl_cdb-1.so
#
# CURRENTLY TESTING WITH
EXTBASE = crypto
CFILES = algtables bcmode crypto hook
OTHER_TCTS = ../hbytes/hbytes-base.tct
-CPPFLAGS += -I../hbytes
-LDLIBS += ../hbytes/chiark_tcl_hbytes.so -lnettle
+OTHER_EXTS = hbytes/hbytes
+LDLIBS += -lnettle
include ../base/extension.make