diff options
-rw-r--r-- | .github/workflows/linux-build.yml | 4 | ||||
-rw-r--r-- | .github/workflows/onefiledist.yml | 30 | ||||
-rw-r--r-- | generic/tkPkgConfig.c | 3 | ||||
-rw-r--r-- | macosx/GNUmakefile | 2 | ||||
-rw-r--r-- | unix/Makefile.in | 12 | ||||
-rwxr-xr-x | unix/configure | 2 | ||||
-rw-r--r-- | unix/configure.ac | 2 | ||||
-rw-r--r-- | win/Makefile.in | 19 | ||||
-rwxr-xr-x | win/configure | 4 | ||||
-rw-r--r-- | win/configure.ac | 2 | ||||
-rw-r--r-- | win/makefile.vc | 5 | ||||
-rw-r--r-- | win/tcl.m4 | 2 |
12 files changed, 51 insertions, 36 deletions
diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml index fd8741d..933a8d8 100644 --- a/.github/workflows/linux-build.yml +++ b/.github/workflows/linux-build.yml @@ -37,7 +37,7 @@ jobs: sudo apt-get install tcl8.6-dev libxss-dev mkdir "$HOME/install dir" touch tk/doc/man.macros tk/generic/tkStubInit.c - echo "CFGOPT=$CFGOPT --with-tcl=/usr/lib/tcl8.6" >> $GITHUB_ENV + echo "CFGOPT=$CFGOPT --with-tcl=/usr/lib/tcl8.6" --disable-vfs >> $GITHUB_ENV echo "CC=$COMPILER" >> $GITHUB_ENV echo "TOOL_DIR=$(cd tcl/tools;pwd)" >> $GITHUB_ENV echo "BUILD_CONFIG_ID=$OPTS" >> $GITHUB_ENV @@ -121,7 +121,7 @@ jobs: sudo apt-get install tcl8.6-dev libxss-dev xvfb mkdir "$HOME/install dir" touch tk/doc/man.macros tk/generic/tkStubInit.c - echo "CFGOPT=$CFGOPT --with-tcl=/usr/lib/tcl8.6" >> $GITHUB_ENV + echo "CFGOPT=$CFGOPT --with-tcl=/usr/lib/tcl8.6 --disable-vfs" >> $GITHUB_ENV echo "CC=$COMPILER" >> $GITHUB_ENV working-directory: "." env: diff --git a/.github/workflows/onefiledist.yml b/.github/workflows/onefiledist.yml index a7ee59b..9668cb5 100644 --- a/.github/workflows/onefiledist.yml +++ b/.github/workflows/onefiledist.yml @@ -36,7 +36,7 @@ jobs: working-directory: tcl/unix - name: Build & Install Tcl run: | - make binaries libraries tclzipfile install + make binaries libraries install make shell SCRIPT="$VER_PATH $GITHUB_ENV" working-directory: tcl/unix - name: Configure Tk @@ -48,15 +48,9 @@ jobs: make binaries libraries install working-directory: tk/unix # TODO: need the Tk version separately for distro naming below - - name: Pack Tk Library Files into Library Zip - run: | - unzip ../lib/libtcl*.zip - cp -a ../lib/tk[0-9]* . - zip -r ../1dist.zip . - working-directory: ${{ env.INST_DIR }}/1dist.vfs - name: Package run: | - cat ../tk/unix/wish 1dist.zip >> ${BUILD_NAME} + cp ../tk/unix/wish ${BUILD_NAME} chmod +x ${BUILD_NAME} tar -cf ${BUILD_NAME}.tar ${BUILD_NAME} working-directory: ${{ env.INST_DIR }} @@ -113,7 +107,7 @@ jobs: working-directory: tcl/unix - name: Build & Install Tcl run: | - make binaries libraries tclzipfile install + make binaries libraries install make shell SCRIPT="$VER_PATH $GITHUB_ENV" working-directory: tcl/unix - name: Configure Tk @@ -126,15 +120,9 @@ jobs: make binaries libraries install working-directory: tk/unix # TODO: need the Tk version separately for distro naming below - - name: Pack Tk Library Files into Library Zip - run: | - unzip ../lib/libtcl*.zip - cp -a ../lib/tk[0-9]* . - zip -r ../1dist.zip . - working-directory: ${{ env.INST_DIR }}/1dist.vfs - name: Package run: | - cat ../tk/unix/wish 1dist.zip >> contents/${BUILD_NAME} + cp ../tk/unix/wish contents/${BUILD_NAME} chmod +x contents/${BUILD_NAME} cat > contents/README.txt <<EOF This is a single-file executable developer preview of Tcl/Tk $TCL_PATCHLEVEL @@ -197,7 +185,7 @@ jobs: working-directory: tcl/win - name: Build & Install Tcl run: | - make binaries libraries tclzipfile install + make binaries libraries install echo "TCL_ZIP=`pwd`/`echo libtcl*.zip`" >> $GITHUB_ENV $INST_DIR/bin/tclsh* $VER_PATH $GITHUB_ENV working-directory: tcl/win @@ -211,15 +199,9 @@ jobs: echo "TK_BIN=`pwd`/`echo wish*.exe`" >> $GITHUB_ENV working-directory: tk/win # TODO: need the Tk version separately for distro naming below - - name: Pack Tk Library Files into Library Zip - run: | - unzip $TCL_ZIP - cp -R ../lib/tk[0-9]* . - zip -o -r ../1dist.zip * - working-directory: install/1dist - name: Package run: | - cat ${TK_BIN} 1dist.zip > combined/${BUILD_NAME}.exe + cp ${TK_BIN} combined/${BUILD_NAME}.exe working-directory: install env: BUILD_NAME: wish${{ env.TCL_PATCHLEVEL }}_unofficial diff --git a/generic/tkPkgConfig.c b/generic/tkPkgConfig.c index d9e5981..2c0615d 100644 --- a/generic/tkPkgConfig.c +++ b/generic/tkPkgConfig.c @@ -126,6 +126,9 @@ static const Tcl_Config cfg[] = { #ifdef CFG_RUNTIME_DEMODIR {"demodir,runtime", CFG_RUNTIME_DEMODIR}, #endif +#if !defined(STATIC_BUILD) + {"dllfile,runtime", CFG_RUNTIME_DLLFILE}, +#endif /* Installation paths to various stuff */ diff --git a/macosx/GNUmakefile b/macosx/GNUmakefile index 2451e5c..9828be5 100644 --- a/macosx/GNUmakefile +++ b/macosx/GNUmakefile @@ -193,7 +193,7 @@ ${objdir}/Makefile: ${UNIX_DIR}/Makefile.in ${UNIX_DIR}/configure \ mkdir -p "${OBJ_DIR}" && cd "${OBJ_DIR}" && \ if [ ${UNIX_DIR}/configure -nt config.status ]; then ${UNIX_DIR}/configure -C \ --prefix="${PREFIX}" --bindir="${BINDIR}" --libdir="${LIBDIR}" \ - --mandir="${MANDIR}" --enable-framework \ + --mandir="${MANDIR}" --enable-framework --disable-zipfs \ --with-tcl="${TCL_DIR}" \ ${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}; else ./config.status; fi ifneq (${VERSION},${TCL_VERSION}) diff --git a/unix/Makefile.in b/unix/Makefile.in index 7d75bc8..6f75076 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -616,8 +616,14 @@ ${TK_ZIP_FILE}: ${ZIP_INSTALL_OBJS} then : ; else \ cp -a $(TOP_DIR)/library/* ${TK_VFS_PATH}; \ fi + rm -rf ${TK_VFS_PATH}/demos @find ${TK_VFS_ROOT} -type d -empty -delete @echo "creating ${TK_ZIP_FILE} from ${TK_VFS_PATH}" + @if test "${ZIPFS_BUILD}" = "2" ; then \ + (zip=`(realpath '${NATIVE_ZIP}' || readlink -m '${NATIVE_ZIP}') 2>/dev/null || \ + (echo '${NATIVE_ZIP}' | sed "s?^\./?$$(pwd)/?")`; \ + cd ${TK_VFS_ROOT} && cp ${BUILD_TCLSH} ../${TK_ZIP_FILE} && $$zip -J ../${TK_ZIP_FILE}) \ + fi @(zip=`(realpath '${NATIVE_ZIP}' || readlink -m '${NATIVE_ZIP}' || \ echo '${NATIVE_ZIP}' | sed "s?^\./?$$(pwd)/?") 2>/dev/null`; \ echo 'cd ${TK_VFS_ROOT} &&' $$zip '${ZIP_PROG_OPTIONS} ../${TK_ZIP_FILE} ${ZIP_PROG_VFSSEARCH}'; \ @@ -667,6 +673,11 @@ objs: ${OBJS} ${WISH_EXE}: $(TK_STUB_LIB_FILE) $(WISH_OBJS) $(TK_LIB_FILE) @APP_RSRC_FILE@ ${CC} ${CFLAGS} ${LDFLAGS} $(WISH_OBJS) @TK_BUILD_LIB_SPEC@ \ $(WISH_LIBS) $(CC_SEARCH_FLAGS) -o ${WISH_EXE} + @if test "${ZIPFS_BUILD}" = "2" ; then \ + cat ${TK_ZIP_FILE} >> ${WISH_EXE}; \ + ${NATIVE_ZIP} -A ${WISH_EXE} \ + || echo 'ignore zip-error by adjust sfx process (not executable?)'; \ + fi # Resetting the LIB_RUNTIME_DIR below is required so that # the generated tktest executable gets the build directory @@ -1084,6 +1095,7 @@ tkPkgConfig.o: $(GENERIC_DIR)/tkPkgConfig.c -DCFG_RUNTIME_SCRDIR="\"$(TK_LIBRARY)\"" \ -DCFG_RUNTIME_INCDIR="\"$(includedir)\"" \ -DCFG_RUNTIME_DOCDIR="\"$(mandir)\"" \ + -DCFG_RUNTIME_DLLFILE="\"$(TK_LIB_FILE)\"" \ -DCFG_RUNTIME_DEMODIR="\"$(DEMO_INSTALL_DIR)\"" \ \ $(GENERIC_DIR)/tkPkgConfig.c diff --git a/unix/configure b/unix/configure index 192993a..a51070d 100755 --- a/unix/configure +++ b/unix/configure @@ -8837,7 +8837,7 @@ printf "%s\n" "No zip found on PATH. Building minizip" >&6; } ZIPFS_BUILD=1 - TK_ZIP_FILE=libtk_${TK_MAJOR_VERSION}_${TK_MINOR_VERSION}_${TK_PATCH_LEVEL}.zip + TK_ZIP_FILE=libtk${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_PATCH_LEVEL}.zip else ZIPFS_BUILD=0 TK_ZIP_FILE= diff --git a/unix/configure.ac b/unix/configure.ac index 5a3b813..ba34137 100644 --- a/unix/configure.ac +++ b/unix/configure.ac @@ -678,7 +678,7 @@ if test "$tcl_ok" = "yes" -a "x$enable_framework" != "xyes"; then # SC_ZIPFS_SUPPORT ZIPFS_BUILD=1 - TK_ZIP_FILE=libtk_${TK_MAJOR_VERSION}_${TK_MINOR_VERSION}_${TK_PATCH_LEVEL}.zip + TK_ZIP_FILE=libtk${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_PATCH_LEVEL}.zip else ZIPFS_BUILD=0 TK_ZIP_FILE= diff --git a/win/Makefile.in b/win/Makefile.in index ed5fdae..836df4a 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -656,11 +656,16 @@ install-private-headers: libraries $(INSTALL_DATA) $$i $(PRIVATE_INCLUDE_INSTALL_DIR); \ done; -$(WISH): $(WISH_OBJS) @LIBRARIES@ $(TK_STUB_LIB_FILE) wish.$(RES) +$(WISH): $(WISH_OBJS) @LIBRARIES@ $(TK_STUB_LIB_FILE) wish.$(RES) ${TK_ZIP_FILE} $(CC) $(CFLAGS) $(WISH_OBJS) $(TK_LIB_FILE) \ $(TK_STUB_LIB_FILE) $(TCL_LIB_FILE) $(LIBS) \ wish.$(RES) $(CC_EXENAME) $(LDFLAGS_WINDOW) @VC_MANIFEST_EMBED_EXE@ + @if test "${ZIPFS_BUILD}" = "2" ; then \ + cat ${TK_ZIP_FILE} >> ${WISH}; \ + ${NATIVE_ZIP} -A ${WISH} \ + || echo 'ignore zip-error by adjust sfx process (not executable?)'; \ + fi tktest: $(TKTEST) @@ -697,6 +702,12 @@ ${TK_ZIP_FILE}: ${ZIP_INSTALL_OBJS} ) || ( \ $(COPY) -a $(TOP_DIR)/library/* ${TK_VFS_PATH}; \ ) + $(RMDIR) ${TCL_VFS_PATH}/demos + @if test "${ZIPFS_BUILD}" = "2" ; then \ + (zip=`(realpath '${NATIVE_ZIP}' || readlink -m '${NATIVE_ZIP}') 2>/dev/null || \ + (echo '${NATIVE_ZIP}' | sed "s?^\./?$$(pwd)/?")`; \ + cd ${TK_VFS_ROOT} && cp ${BUILD_TCLSH}s.exe ../${TK_ZIP_FILE} && $$zip -J ../${TK_ZIP_FILE}) \ + fi (zip=`(realpath '${NATIVE_ZIP}' || readlink -m '${NATIVE_ZIP}') 2>/dev/null || \ (echo '${NATIVE_ZIP}' | sed "s?^\./?$$(pwd)/?")`; \ cd ${TK_VFS_ROOT} && \ @@ -763,6 +774,12 @@ tkUnixMenubu.$(OBJEXT): ${UNIX_DIR}/tkUnixMenubu.c tkUnixScale.$(OBJEXT): ${UNIX_DIR}/tkUnixScale.c $(CC) -c $(CC_SWITCHES) -DBUILD_tk -DBUILD_ttk @DEPARG@ $(CC_OBJNAME) +tkPkgConfig.$(OBJEXT): $(GENERIC_DIR)/tkPkgConfig.c + $(CC) -c $(CC_SWITCHES) -DBUILD_tk -DBUILD_ttk \ + -DCFG_RUNTIME_DLLFILE="\"$(TK_DLL_FILE)\"" \ + @DEPARG@ $(CC_OBJNAME) + + # Extra dependency info tkConsole.$(OBJEXT): configure Makefile tkMain.$(OBJEXT): configure Makefile diff --git a/win/configure b/win/configure index d80d32d..dc846fa 100755 --- a/win/configure +++ b/win/configure @@ -740,7 +740,6 @@ TCL_STUB_LIB_FILE TCL_LIB_SPEC TCL_LIB_FLAG TCL_LIB_FILE -TCL_ZIP_FILE TCL_SRC_DIR TCL_BIN_DIR TCL_VERSION @@ -4042,7 +4041,6 @@ printf "%s\n" "could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6; } - if test "${TCL_MAJOR_VERSION}" -lt 9 ; then if test "${TCL_MAJOR_VERSION}" != "${TK_MAJOR_VERSION}"; then as_fn_error $? "${TCL_BIN_DIR}/tclConfig.sh is for Tcl ${TCL_VERSION}. @@ -5754,7 +5752,7 @@ printf "%s\n" "No zip found on PATH building minizip" >&6; } ZIPFS_BUILD=1 - TK_ZIP_FILE=libtcl_${TK_MAJOR_VERSION}_${TK_MINOR_VERSION}_${TK_PATCH_LEVEL}.zip + TK_ZIP_FILE=libtk${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_PATCH_LEVEL}.zip else ZIPFS_BUILD=0 TCL_ZIP_FILE= diff --git a/win/configure.ac b/win/configure.ac index 2180b55..0b62869 100644 --- a/win/configure.ac +++ b/win/configure.ac @@ -195,7 +195,7 @@ if test "$tcl_ok" = "yes" ; then # SC_ZIPFS_SUPPORT ZIPFS_BUILD=1 - TK_ZIP_FILE=libtcl_${TK_MAJOR_VERSION}_${TK_MINOR_VERSION}_${TK_PATCH_LEVEL}.zip + TK_ZIP_FILE=libtk${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_PATCH_LEVEL}.zip else ZIPFS_BUILD=0 TCL_ZIP_FILE= diff --git a/win/makefile.vc b/win/makefile.vc index ba19f17..912f781 100644 --- a/win/makefile.vc +++ b/win/makefile.vc @@ -630,6 +630,11 @@ $(TMP_DIR)\winMain.obj: $(WIN_DIR)\winMain.c $(TMP_DIR)\tkMain2.obj: $(GENERICDIR)\tkMain.c
$(cc32) $(pkgcflags) /DUNICODE /D_UNICODE -Fo$@ $?
+$(TMP_DIR)\tkPkgConfig.obj: $(GENERICDIR)\tkPkgConfig.c
+ $(cc32) $(pkgcflags) \
+ -DCFG_RUNTIME_DLLFILE="\"$(TKLIBNAME)\"" \
+ -Fo$@ $?
+
# The following objects are part of the stub library and should not
# be built as DLL objects but none of the symbols should be exported
# and no reference made to a C runtime.
@@ -251,7 +251,6 @@ AC_DEFUN([SC_PATH_TKCONFIG], [ # TCL_BIN_DIR # TCL_SRC_DIR # TCL_LIB_FILE -# TCL_ZIP_FILE # #------------------------------------------------------------------------ @@ -288,7 +287,6 @@ AC_DEFUN([SC_LOAD_TCLCONFIG], [ AC_SUBST(TCL_BIN_DIR) AC_SUBST(TCL_SRC_DIR) - AC_SUBST(TCL_ZIP_FILE) AC_SUBST(TCL_LIB_FILE) AC_SUBST(TCL_LIB_FLAG) AC_SUBST(TCL_LIB_SPEC) |