aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-07-12 14:24:09 +1000
committerSteve Bennett <steveb@workware.net.au>2011-07-13 11:30:29 +1000
commit3ad2031b80c957011160de5f8c1eb4f8346df97b (patch)
tree6a0bd19dbcec4db68c508b223a06b0cf60b7ce6b
parente7e3cedcbde855a2f22ee9eb830b62c45b543836 (diff)
downloadjimtcl-3ad2031b80c957011160de5f8c1eb4f8346df97b.zip
jimtcl-3ad2031b80c957011160de5f8c1eb4f8346df97b.tar.gz
jimtcl-3ad2031b80c957011160de5f8c1eb4f8346df97b.tar.bz2
Simplify approach for generated code
All generated sources are now prefixed with an underscore Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--.gitignore5
-rw-r--r--Makefile.in39
-rw-r--r--auto.def20
-rw-r--r--utf8.c2
4 files changed, 36 insertions, 30 deletions
diff --git a/.gitignore b/.gitignore
index 393f66b..828755f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,7 +9,7 @@ Tcl.html
jimautoconf.h
jimautoconfext.h
jim-config.h
-jim-glob.c
+_*.c
jim-stdlib.c
jim-tclcompat.c
jim-tree.c
@@ -18,8 +18,5 @@ jimsh
libjim.a
libjim.so
*.o
-unicode_mapping.c
configure.gnu
-load-static-exts.c
-initjimsh.c
jimsh0
diff --git a/Makefile.in b/Makefile.in
index 0f0d1d2..73c9cc8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -34,34 +34,35 @@ endif
.EXPORT_ALL_VARIABLES:
-OBJS := load-static-exts.o jim-subcmd.o jim-interactive.o jim-format.o jim.o utf8.o jimregexp.o @EXTRA_OBJS@
+OBJS := _load-static-exts.o jim-subcmd.o jim-interactive.o jim-format.o jim.o utf8.o jimregexp.o @EXTRA_OBJS@
JIMSH := jimsh@EXEEXT@
-EXTENSION_OBJS := $(patsubst %,jim-%.o,@JIM_EXTENSIONS@)
-EXTENSION_MODS := $(patsubst %,%.so,@JIM_MOD_EXTENSIONS@)
+JIM_EXTENSIONS := @JIM_STATIC_C_EXTS@ @JIM_STATIC_TCL_EXTS@
+C_EXT_OBJS := $(patsubst %,jim-%.o,@JIM_STATIC_C_EXTS@) $(patsubst %,_jim-%.o,@JIM_STATIC_TCL_EXTS@)
+C_EXT_SHOBJS := $(patsubst %,%.so,@JIM_MOD_EXTENSIONS@)
EXTENSION_TCL := $(patsubst %,%.tcl,@JIM_TCL_EXTENSIONS@)
.PRECIOUS: jim-%.c
-all: $(JIMSH) $(EXTENSION_MODS)
+all: $(JIMSH) $(C_EXT_SHOBJS)
# Create C extensions from pure Tcl extensions
-jim-%.c: %.tcl
+_jim-%.c: %.tcl
@tclsh@ @srcdir@/make-c-ext.tcl $< >$@ || ( rm $@; exit 1)
-initjimsh.c: initjimsh.tcl
+_initjimsh.c: initjimsh.tcl
@tclsh@ @srcdir@/make-c-ext.tcl $< >$@ || ( rm $@; exit 1)
docs: Tcl.html
-$(JIMSH): $(LIBJIM) jimsh.o initjimsh.o
- $(CC) $(CFLAGS) @SH_LINKFLAGS@ $(LDFLAGS) -o $@ jimsh.o initjimsh.o $(LIBJIM) $(LDLIBS)
+$(JIMSH): $(LIBJIM) jimsh.o _initjimsh.o
+ $(CC) $(CFLAGS) @SH_LINKFLAGS@ $(LDFLAGS) -o $@ jimsh.o _initjimsh.o $(LIBJIM) $(LDLIBS)
install: all docs $(EXTENSION_TCL) install-exec
mkdir -p $(DESTDIR)$(prefix)/lib/jim
cp $(LIBJIM) $(DESTDIR)$(prefix)/lib
- cp @srcdir@/README.extensions $(EXTENSION_MODS) $(EXTENSION_TCL) $(DESTDIR)$(prefix)/lib/jim
+ cp @srcdir@/README.extensions $(C_EXT_SHOBJS) $(EXTENSION_TCL) $(DESTDIR)$(prefix)/lib/jim
mkdir -p $(DESTDIR)$(prefix)/include
cp @srcdir@/jim.h @srcdir@/jim-eventloop.h @srcdir@/jim-nvp.h @srcdir@/jim-signal.h \
@srcdir@/jim-subcmd.h @srcdir@/jim-win32compat.h $(DESTDIR)$(prefix)/include
@@ -76,32 +77,32 @@ install-exec: all
uninstall:
rm -f $(DESTDIR)$(prefix)/bin/$(JIMSH)
rm -f $(DESTDIR)$(prefix)/lib/$(LIBJIM)
- for i in README.extensions $(EXTENSION_MODS) $(EXTENSION_TCL); do rm -f $(DESTDIR)$(prefix)/lib/jim/$$i; done
+ for i in README.extensions $(C_EXT_SHOBJS) $(EXTENSION_TCL); do rm -f $(DESTDIR)$(prefix)/lib/jim/$$i; done
rm -f $(DESTDIR)$(prefix)/include/jim*.h
rm -f $(DESTDIR)$(prefix)/doc/jim/Tcl.html
test: $(JIMSH)
$(DEF_LD_PATH) $(MAKE) jimsh=`pwd`/jimsh -C @srcdir@/tests
-$(OBJS) $(EXTENSION_OBJS): Makefile
+$(OBJS) $(C_EXT_OBJS): Makefile
-ifneq (@JIM_UTF8@,)
+ifeq (@JIM_UTF8@,1)
# Generate the unicode case mapping
-utf8.o: unicode_mapping.c
+utf8.o: _unicode_mapping.c
-unicode_mapping.c: @srcdir@/UnicodeData.txt @srcdir@/parse-unidata.tcl
+_unicode_mapping.c: @srcdir@/UnicodeData.txt @srcdir@/parse-unidata.tcl
@tclsh@ @srcdir@/parse-unidata.tcl @srcdir@/UnicodeData.txt >$@ || ( rm $@; exit 1)
endif
-load-static-exts.c: @srcdir@/make-load-static-exts.tcl Makefile
- @tclsh@ @srcdir@/make-load-static-exts.tcl @JIM_EXTENSIONS@ >$@ || ( rm $@; exit 1)
+_load-static-exts.c: @srcdir@/make-load-static-exts.tcl Makefile
+ @tclsh@ @srcdir@/make-load-static-exts.tcl $(JIM_EXTENSIONS) >$@ || ( rm $@; exit 1)
ifeq ($(jim_libtype),static)
-$(LIBJIM): $(OBJS) $(EXTENSION_OBJS)
+$(LIBJIM): $(OBJS) $(C_EXT_OBJS)
$(AR) cr $@ $^
$(RANLIB) $@
else
-$(LIBJIM): $(OBJS) $(EXTENSION_OBJS)
+$(LIBJIM): $(OBJS) $(C_EXT_OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) $(SH_LDFLAGS) -o $@ $^ $(LDLIBS)
endif
@@ -113,7 +114,7 @@ Tcl.html: jim_tcl.txt
@tclsh@ @srcdir@/make-index $^ | asciidoc -o $@ -d manpage - || cp @srcdir@/Tcl_shipped.html Tcl.html
clean:
- rm -f *.o *.so lib*.a $(JIMSH) Tcl.html unicode_mapping.c load-static-exts.c initjimsh.c @GENERATED_SRCS@
+ rm -f *.o *.so lib*.a $(JIMSH) Tcl.html _*.c
distclean: clean
rm -f jimautoconf.h jim-config.h Makefile config.log autosetup/jimsh0@EXEEXT@
diff --git a/auto.def b/auto.def
index bd3119a..0ac4dde 100644
--- a/auto.def
+++ b/auto.def
@@ -120,6 +120,8 @@ if {[opt-bool utf8 full]} {
msg-result "Enabling UTF-8"
define JIM_UTF8
incr jimregexp
+} else {
+ define JIM_UTF8 0
}
if {[opt-bool maintainer]} {
msg-result "Enabling maintainer settings"
@@ -343,18 +345,24 @@ if {$extmod ne ""} {
msg-result "Jim dynamic extensions: [lsort $extmod]"
}
-define JIM_EXTENSIONS $ext
-define JIM_TCL_EXTENSIONS $extmodtcl
-define JIM_MOD_EXTENSIONS $extmod
-define EXTRA_OBJS $extra_objs
-
+# Separate out the static extensions into C and Tcl
+set ext_static_c {}
+set ext_static_tcl {}
foreach e $ext {
define jim_ext_$e
if {$e in $ext_tcl} {
- define-append GENERATED_SRCS jim-$e.c
+ lappend ext_static_tcl $e
+ } else {
+ lappend ext_static_c $e
}
}
+define JIM_STATIC_C_EXTS $ext_static_c
+define JIM_STATIC_TCL_EXTS $ext_static_tcl
+define JIM_TCL_EXTENSIONS $extmodtcl
+define JIM_MOD_EXTENSIONS $extmod
+define EXTRA_OBJS $extra_objs
+
make-config-header jim-config.h -auto {HAVE_LONG_LONG* JIM_UTF8} -none *
make-config-header jimautoconf.h -auto {jim_ext_* TCL_PLATFORM_* TCL_LIBRARY USE_* JIM_*}
make-template Makefile.in
diff --git a/utf8.c b/utf8.c
index f980987..90efef8 100644
--- a/utf8.c
+++ b/utf8.c
@@ -148,7 +148,7 @@ struct caseextmap {
};
/* Generated mapping tables */
-#include "unicode_mapping.c"
+#include "_unicode_mapping.c"
#define NUMCASEMAP sizeof(unicode_case_mapping) / sizeof(*unicode_case_mapping)