Overview
| Comment: | Merged in support for creating a static KitDLL |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
3fc6a2107a69003c949af4bf9a4e160c |
| User & Date: | rkeene on 2016-02-24 20:52:23 |
| Other Links: | manifest | tags |
Context
|
2016-02-24
| ||
| 21:45 | Corrected an issue where the KitDLL file cannot be located cause initialization to fail check-in: 9c7bd6cad1 user: rkeene tags: trunk | |
| 20:52 | Merged in support for creating a static KitDLL check-in: 3fc6a2107a user: rkeene tags: trunk | |
| 20:41 | Create a Tcl_Init() symbol if we are creating a static libtclkit Closed-Leaf check-in: e6ab988ad4 user: rkeene tags: feature-kitdll-static | |
| 20:00 | Added Tcl 8.5.19 to the web interface check-in: f71b69d91f user: rkeene tags: trunk | |
Changes
Modified README from [c5d7d876b1] to [b457bfcb27].
| ︙ | ︙ | |||
142 143 144 145 146 147 148 149 150 151 152 153 154 155 | itcl thread 10. KC_TCL_STATICPKGS Set this variable to the value "1" to attempt to force the packages included in the "pkgs" directory of Tcl 8.6+ to be compiled statically Cross compiling Environment Variables: 1. CC C compiler e.g. i686-pc-mingw32-gcc 2. CXX | > > > > > | 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | itcl thread 10. KC_TCL_STATICPKGS Set this variable to the value "1" to attempt to force the packages included in the "pkgs" directory of Tcl 8.6+ to be compiled statically 11. KITCREATOR_STATIC_KITDLL Set this variable to the value "1" to build a static KitDLL. This only has an affect when KITCREATOR_PKGS specifies that "kitdll" is to be built (e.g., KITCREATOR_PKGS='kitdll') Cross compiling Environment Variables: 1. CC C compiler e.g. i686-pc-mingw32-gcc 2. CXX |
| ︙ | ︙ |
Modified kitsh/build.sh from [fe33f09af3] to [cb53c1165d].
| ︙ | ︙ | |||
111 112 113 114 115 116 117 |
fi
# Cleanup
rm -f kit kit.exe tclsh tclsh.exe
# Determine if target is KitDLL or KitSH
if [ "${KITTARGET}" = "kitdll" ]; then
| > > > | > | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
fi
# Cleanup
rm -f kit kit.exe tclsh tclsh.exe
# Determine if target is KitDLL or KitSH
if [ "${KITTARGET}" = "kitdll" ]; then
if [ "${KITCREATOR_STATIC_KITDLL}" = '1' ]; then
CONFIGUREEXTRA="${CONFIGUREEXTRA} --enable-kitdll=static"
else
CONFIGUREEXTRA="${CONFIGUREEXTRA} --enable-kitdll"
fi
fi
# Compile Kit
if [ -z "${ZLIBDIR}" ]; then
echo "Running: ./configure --with-tcl=\"${TCLCONFIGDIR}\" ${CONFIGUREEXTRA}"
./configure --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA}
|
| ︙ | ︙ | |||
164 165 166 167 168 169 170 |
if [ "${KITTARGET}" = "kitdll" ]; then
## Find the library created
for chkkittarget in libtclkit*.*; do
if [ ! -f "${chkkittarget}" ]; then
continue
fi
| | | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
if [ "${KITTARGET}" = "kitdll" ]; then
## Find the library created
for chkkittarget in libtclkit*.*; do
if [ ! -f "${chkkittarget}" ]; then
continue
fi
if echo "${chkkittarget}" | egrep '\..*\.(lib|def|a)$'; then
continue
fi
KITTARGET_NAME="./${chkkittarget}"
break
done
|
| ︙ | ︙ |
Modified kitsh/buildsrc/kitsh-0.0/Makefile.common.in from [93d968f811] to [bfce9994ae].
| ︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 | EXTRA_OBJS = @EXTRA_OBJS@ LDRUNPATH = @LDRUNPATH@ EXTRA_KIT_DEPS = @EXTRA_KIT_DEPS@ EXTRA_VFS_OBJS = @EXTRA_VFS_OBJS@ TCLSH_NATIVE = tclsh LDFLAGS_ADD = @LDFLAGS_ADD@ DIR2C_FLAGS = @DIR2C_FLAGS@ # Build targets ## VFS Build cvfs_data_tcl.o: cvfs_data_tcl.c cvfs_data_tcl.c: dir2c.tcl starpack.vfs cvfs_data.c "$(TCLSH_NATIVE)" dir2c.tcl tcl starpack.vfs $(DIR2C_FLAGS) > cvfs_data_tcl.c | > > | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | EXTRA_OBJS = @EXTRA_OBJS@ LDRUNPATH = @LDRUNPATH@ EXTRA_KIT_DEPS = @EXTRA_KIT_DEPS@ EXTRA_VFS_OBJS = @EXTRA_VFS_OBJS@ TCLSH_NATIVE = tclsh LDFLAGS_ADD = @LDFLAGS_ADD@ DIR2C_FLAGS = @DIR2C_FLAGS@ AR = @AR@ RANLIB = @RANLIB@ # Build targets ## VFS Build cvfs_data_tcl.o: cvfs_data_tcl.c cvfs_data_tcl.c: dir2c.tcl starpack.vfs cvfs_data.c "$(TCLSH_NATIVE)" dir2c.tcl tcl starpack.vfs $(DIR2C_FLAGS) > cvfs_data_tcl.c |
| ︙ | ︙ | |||
41 42 43 44 45 46 47 48 49 50 51 52 53 54 | ### Windows resources kit.res.o: kit.rc tclkit.ico $(RC) -o kit.res.o $(CPPFLAGS) kit.rc # Cleanup routines clean: rm -f kit kit.res.o rm -f libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ rm -f $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) rm -f cvfs_data_tcl.c cvfs_data_tcl.o rm -f cvfs.tcl.h rm -f tclsh.o tclsh tclsh.exe rm -f wish.o wish wish.exe | > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | ### Windows resources kit.res.o: kit.rc tclkit.ico $(RC) -o kit.res.o $(CPPFLAGS) kit.rc # Cleanup routines clean: rm -rf __TMP__ rm -f kit kit.res.o rm -f libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ rm -f $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) rm -f cvfs_data_tcl.c cvfs_data_tcl.o rm -f cvfs.tcl.h rm -f tclsh.o tclsh tclsh.exe rm -f wish.o wish wish.exe |
| ︙ | ︙ |
Modified kitsh/buildsrc/kitsh-0.0/Makefile.kitdll.in from [05829b4d07] to [6164206d04].
1 2 3 | OBJS = kitInit.o rechan.o pwb.o zlib.o # Default target | | > > > > > > > > > > > > > > > | > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
OBJS = kitInit.o rechan.o pwb.o zlib.o
# Default target
all: @TARGET@
-include Makefile.common
kitdll: libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
kitdll-static: libtclkit@KITDLL_LIB_VERSION@.a
## DLL Build
libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@: $(OBJS) $(EXTRA_KIT_DEPS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS)
$(CC) $(CPPFLAGS) $(CFLAGS) -o libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) $(LDFLAGS) $(SHOBJLDFLAGS) @WHOLEARCHIVE@ $(ARCHS) @NOWHOLEARCHIVE@ $(LIBS) $(LDFLAGS_ADD)
-for striplib in $(STRIPLIBS); do $(OBJCOPY) --weaken "$${striplib}"; done
-mv libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@.safe; \
$(CC) $(CPPFLAGS) $(CFLAGS) -o libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) $(LDFLAGS) $(SHOBJLDFLAGS) @WHOLEARCHIVE@ $(ARCHS) @NOWHOLEARCHIVE@ $(LIBS) || \
mv libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@.safe libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
-rm -f libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@.safe
## Static archive build
libtclkit@KITDLL_LIB_VERSION@.a: $(OBJS) $(EXTRA_KIT_DEPS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS)
rm -f libtclkit@KITDLL_LIB_VERSION@.a.new
rm -rf __TMP__
mkdir __TMP__
for arch in $(ARCHS); do ( cd __TMP__ && ar x ../$${arch} ); done
$(OBJCOPY) --redefine-sym Tcl_Init=Tcl_InitReal __TMP__/tclInterp.o
$(AR) cr libtclkit@KITDLL_LIB_VERSION@.a.new $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) __TMP__/*.o
rm -rf __TMP__
$(RANLIB) libtclkit@KITDLL_LIB_VERSION@.a.new
mv libtclkit@KITDLL_LIB_VERSION@.a.new libtclkit@KITDLL_LIB_VERSION@.a
# Test driver
tclsh.o: tclsh.c
tclsh: tclsh.o $(EXTRA_OBJS) @TARGET@
$(CC) $(CPPFLAGS) $(CFLAGS) -o tclsh tclsh.o $(EXTRA_OBJS) -L. -ltclkit@KITDLL_LIB_VERSION@ $(LDRUNPATH)
wish.o: wish.c
wish: wish.o $(EXTRA_OBJS) libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
$(CC) $(CPPFLAGS) $(CFLAGS) $(WISH_CFLAGS) -o wish wish.o $(EXTRA_OBJS) -L. -ltclkit@KITDLL_LIB_VERSION@ $(LDRUNPATH)
.PHONY: kitdll kitdll-static
|
Modified kitsh/buildsrc/kitsh-0.0/configure.ac from [42d57f3f66] to [77fa1a4052].
| ︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | EXTRA_KIT_DEPS="" AC_MSG_CHECKING([what target to build]) AC_ARG_ENABLE(kitdll, AC_HELP_STRING([--enable-kitdll], [Enable building KitDLL instead of Tclkit (default: no)]), [ AS_CASE([$enableval], [yes|kitdll], [ TARGET="kitdll" ], no, [ true ], [ AC_MSG_RESULT([unknown]) AC_MSG_ERROR([Invalid option: $enableval]) ] ) ]) AC_MSG_RESULT([$TARGET]) dnl Find the appropriate libraries to link to AC_SEARCH_LIBS(acos, m,, [ AC_MSG_WARN([Couldn't find acos (normally in libm)!]) ]) AC_SEARCH_LIBS(dlsym, dl,, [ AC_MSG_WARN([Couldn't find dlsym (normally in libdl)!]) ]) AS_IF([test "$TARGET" = "tclkit"], [ dnl We have Tclkit dnl Specify local Appinit function AC_DEFINE(TK_LOCAL_APPINIT, [TclKit_AppInit], [Tclkit appinit function]) ], [ dnl We have KitDLL dnl Determine system information DC_CHK_OS_INFO dnl Determine how to create a shared object DC_GET_SHOBJFLAGS dnl Determine if we have "objcopy" available to weaken non-Tcl/Tk symbols AC_CHECK_TOOL(OBJCOPY, objcopy, [:]) dnl Define KitDLL usage AC_DEFINE([TCLKIT_DLL], [1], [Define if you are using a KitDLL rather than a Tclkit]) ]) dnl Figure out how to statically link to libgcc, if needed DC_STATIC_LIBGCC dnl Set linker rpath for tclsh/wish DC_SETLDRUNPATH([.]) | > > > > > > > > > > > > > > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | EXTRA_KIT_DEPS="" AC_MSG_CHECKING([what target to build]) AC_ARG_ENABLE(kitdll, AC_HELP_STRING([--enable-kitdll], [Enable building KitDLL instead of Tclkit (default: no)]), [ AS_CASE([$enableval], [yes|kitdll], [ TARGET="kitdll" ], static, [ TARGET="kitdll-static" ], no, [ true ], [ AC_MSG_RESULT([unknown]) AC_MSG_ERROR([Invalid option: $enableval]) ] ) ]) AC_MSG_RESULT([$TARGET]) AC_SUBST(TARGET) dnl Find the appropriate libraries to link to AC_SEARCH_LIBS(acos, m,, [ AC_MSG_WARN([Couldn't find acos (normally in libm)!]) ]) AC_SEARCH_LIBS(dlsym, dl,, [ AC_MSG_WARN([Couldn't find dlsym (normally in libdl)!]) ]) AS_IF([test "$TARGET" = "tclkit"], [ dnl We have Tclkit TARGET_BASE='tclkit' dnl Specify local Appinit function AC_DEFINE(TK_LOCAL_APPINIT, [TclKit_AppInit], [Tclkit appinit function]) ], [ dnl We have KitDLL TARGET_BASE='kitdll' dnl Determine system information DC_CHK_OS_INFO dnl Determine how to create a shared object DC_GET_SHOBJFLAGS dnl Determine if we have "objcopy" available to weaken non-Tcl/Tk symbols AC_CHECK_TOOL(OBJCOPY, objcopy, [:]) dnl Define KitDLL usage AC_DEFINE([TCLKIT_DLL], [1], [Define if you are using a KitDLL rather than a Tclkit]) dnl Define a static KitDLL AS_IF([test "$TARGET" = "kitdll-static"], [ AC_CHECK_TOOL(RANLIB, [ranlib], [:]) AC_CHECK_TOOL(AR, [ar], [false MISSING AR]) AC_DEFINE([TCLKIT_DLL_STATIC], [1], [Define if you are building a static KitDLL]) ]) ]) dnl Figure out how to statically link to libgcc, if needed DC_STATIC_LIBGCC dnl Set linker rpath for tclsh/wish DC_SETLDRUNPATH([.]) |
| ︙ | ︙ | |||
197 198 199 200 201 202 203 | ) AC_SUBST(EXTRA_KIT_DEPS) AC_SUBST(LDFLAGS_ADD) dnl Put correct Makefile template in place rm -f Makefile.in | | | 212 213 214 215 216 217 218 219 220 221 222 |
)
AC_SUBST(EXTRA_KIT_DEPS)
AC_SUBST(LDFLAGS_ADD)
dnl Put correct Makefile template in place
rm -f Makefile.in
cp Makefile.${TARGET_BASE}.in Makefile.in
dnl Produce output
AC_OUTPUT(Makefile Makefile.common)
|
Modified kitsh/buildsrc/kitsh-0.0/kitInit.c from [3cb384a768] to [f888dda2c4].
| ︙ | ︙ | |||
567 568 569 570 571 572 573 574 575 576 577 578 579 |
* are ready to be used when invoked.
*/
#ifdef TCLKIT_DLL
void __attribute__((constructor)) _Tclkit_Init(void) {
#else
static void _Tclkit_Init(void) {
#endif
Tcl_StaticPackage(0, "tclkit::init", Tclkit_init_Init, NULL);
_Tclkit_Generic_Init();
return;
}
| > > > > > > > > > > > > > > > > > > | 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 |
* are ready to be used when invoked.
*/
#ifdef TCLKIT_DLL
void __attribute__((constructor)) _Tclkit_Init(void) {
#else
static void _Tclkit_Init(void) {
#endif
static int called = 0;
if (called) {
return;
}
called = 1;
Tcl_StaticPackage(0, "tclkit::init", Tclkit_init_Init, NULL);
_Tclkit_Generic_Init();
return;
}
#if defined(TCLKIT_DLL) && defined(TCLKIT_DLL_STATIC)
int Tcl_InitReal(Tcl_Interp *interp);
int Tcl_Init(Tcl_Interp *interp) {
_Tclkit_Init();
return(Tcl_InitReal(interp));
}
#endif
|