Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Pass the STATIC_BUILD flag to the rc file build by windres to ensure the executable build a standalone set of the resources needed for Tk.dll on Windows Having a problem with GORT at the moment, so for now also download and maintain sherpa. Revert to using sherpa for package management Remove the static build of Tcl, no longer required. (The kit builder does its own now) |
|---|---|
| Timelines: | family | ancestors | descendants | both | gort |
| Files: | files | file ages | folders |
| SHA1: |
9b2600638a6c70be5f1aafe48f56d713 |
| User & Date: | hypnotoad 2016-02-23 17:52:50 |
Context
|
2016-02-27
| ||
| 16:39 | Re-jiggered the package indexer to handle TM files and to do a better balance of including code in the master pkgIndex.tcl file vs farming out the processing to package directory pkgIndex.tcl files. (Keeping the processing local really speeds up load time for VFS's) check-in: 4da2fe27db user: hypnotoad tags: gort | |
|
2016-02-23
| ||
| 17:52 | Pass the STATIC_BUILD flag to the rc file build by windres to ensure the executable build a standalone set of the resources needed for Tk.dll on Windows Having a problem with GORT at the moment, so for now also download and maintain sherpa. Revert to using sherpa for package management Remove the static build of Tcl, no longer required. (The kit builder does its own now) check-in: 9b2600638a user: hypnotoad tags: gort | |
| 01:11 | Changed the default supported Tcl to 8.6.3 Windows platform fixes Added a means to build kits from MSVC check-in: 035354bee3 user: hypnotoad tags: gort | |
Changes
Changes to Makefile.
| ︙ | ︙ | |||
8 9 10 11 12 13 14 |
reconfig:
rm -f autosetup/jimsh0.exe autosetup/jimsh0
ODIE_BUILD_TCLSH=`autosetup/find-tclsh`
${ODIE_BUILD_TCLSH} autosetup/autosetup $(ODIE_RECONFIG_OPTS)
cp -a ${ODIE_SRC_DIR}/odieConfig.tcl ${LOCAL_REPO}/lib/odieConfig.tcl
cp -a ${ODIE_SRC_DIR}/odieConfig.sh ${LOCAL_REPO}/lib/odieConfig.sh
| | | | | | | | > > | > > > | | | 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 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 76 77 78 79 80 81 82 83 84 85 86 |
reconfig:
rm -f autosetup/jimsh0.exe autosetup/jimsh0
ODIE_BUILD_TCLSH=`autosetup/find-tclsh`
${ODIE_BUILD_TCLSH} autosetup/autosetup $(ODIE_RECONFIG_OPTS)
cp -a ${ODIE_SRC_DIR}/odieConfig.tcl ${LOCAL_REPO}/lib/odieConfig.tcl
cp -a ${ODIE_SRC_DIR}/odieConfig.sh ${LOCAL_REPO}/lib/odieConfig.sh
install: sherpa
$(SHELL) scripts/make_skel.sh
$(SHELL) scripts/make_tcl.sh
ODIE_BUILD_TCLSH=`autosetup/find-tclsh`
$(ODIE_BUILD_TCLSH) scripts/make_gort.tcl
$(SHERPA) upgrade sqlite odielib tcllib
${ODIE_BUILD_TCLSH} build.tcl toadkit
packages: sherpa
$(SHERPA) install odielib tcllib
upgrade:
$(FOSSIL) update
${ODIE_BUILD_TCLSH} scripts/upgrade.tcl
$(ODIE_BUILD_TCLSH) scripts/make_gort.tcl
$(SHERPA) upgrade sqlite odielib tcllib
${ODIE_BUILD_TCLSH} build.tcl toadkit
upgrade-tcl:
$(FOSSIL) update
$(SHELL) scripts/make_tcl.sh
ODIE_BUILD_TCLSH=`autosetup/find-tclsh`
${ODIE_BUILD_TCLSH} scripts/upgrade.tcl
$(ODIE_BUILD_TCLSH) scripts/make_gort.tcl
$(SHERPA) upgrade sqlite odielib tcllib
${ODIE_BUILD_TCLSH} build.tcl clean
rm -rf tcl tk
${ODIE_BUILD_TCLSH} build.tcl toadkit
tcl:
$(SHELL) scripts/make_tcl.sh
rebuild:
$(SHELL) scripts/make_distclean.sh
$(FOSSIL) update
$(SHELL) scripts/make_tcl.sh
$(ODIE_BUILD_TCLSH) scripts/make_gort.tcl
$(SHERPA) upgrade sqlite odielib tcllib
${ODIE_BUILD_TCLSH} build.tcl toadkit
distclean:
$(SHELL) scripts/make_distclean.sh
basekit:
${ODIE_BUILD_TCLSH} build.tcl toadkit
sherpa: $ODIE_SANDBOX/sherpa/sherpa.tcl
gort: $ODIE_SANDBOX/gort/gort.tcl
$ODIE_SANDBOX/sherpa/sherpa.tcl:
$(ODIE_BUILD_TCLSH) scripts/make_gort.tcl
$ODIE_SANDBOX/gort/gort.tcl:
$(ODIE_BUILD_TCLSH) scripts/make_gort.tcl
$(ODIE_MKHDR):
$(CC) -o mkhdr.o scripts/mkhdr.c
$(CC) mkhdr.o -o mkhdr${EXE_SUFFIX}
cp -f mkhdr@EXE@ $(ODIE_MKHDR)
mkhdr: $(ODIE_MKHDR)
mkdoc:
$(TCLSH) scripts/mkdoc.tcl
.PHONY: all binaries clean depend distclean doc install libraries test upgrade upgrade-tcl
.PHONY: core sherpa basekit odielib toadkit sqlite reconfig mkhdr packages
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
|
Changes to build.tcl.
1 2 3 4 5 6 |
###
# script to build a tclkit
###
set HERE [file dirname [file normalize [info script]]]
set PWD [pwd]
namespace eval ::practcl {}
| > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
###
# script to build a tclkit
###
set HERE [file dirname [file normalize [info script]]]
set PWD [pwd]
namespace eval ::practcl {}
lappend auto_path [file normalize [file join $HERE .. tcllib modules]]
lappend auto_path [file normalize [file join $HERE .. odielib modules]]
#package ifneeded zipfile::mkzip 1.2 [list source [file join $::HERE scripts mkzip.tcl]]
if {[lindex $argv 0] eq "clean"} {
file delete -force build
file delete -force tcl
file delete -force tk
foreach file [glob -nocomplain *.a] {
file delete $file
|
| ︙ | ︙ | |||
278 279 280 281 282 283 284 | ### # Build a starter VFS for both Tcl and wish ### set VFSROOT [file join $PWD tclkit.vfs] set PKGROOT [file join $PWD tclkit.pkg] set USEMSVC [info exists env(VisualStudioVersion)] | < < | 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 |
###
# Build a starter VFS for both Tcl and wish
###
set VFSROOT [file join $PWD tclkit.vfs]
set PKGROOT [file join $PWD tclkit.pkg]
set USEMSVC [info exists env(VisualStudioVersion)]
if {![file exists [file join $PWD tcl]]} {
copyDir $::odie_tcl(src_dir) [file join $PWD tcl]
cd [file join $PWD tcl $::odie(tcl_src_dir)]
catch {domake distclean}
}
set tclConfig.sh [file join $PWD tcl $::odie(tcl_src_dir) tclConfig.sh]
if {$USEMSVC} {
cd [file join $PWD tcl $::odie(tcl_src_dir)]
doexec nmake -f makefile.vc INSTALLDIR=$PKGROOT release
doexec nmake -f makefile.vc INSTALLDIR=$PKGROOT install
cd $PWD
} else {
if {![file exists ${tclConfig.sh}]} {
cd [file join $PWD tcl $::odie(tcl_src_dir)]
|
| ︙ | ︙ | |||
382 383 384 385 386 387 388 |
set ::KIT(EXEEXT) .exe
set ::KIT(LDFLAGS_CONSOLE) {-mconsole -pipe -static-libgcc}
set ::KIT(LDFLAGS_WINDOW) {-mwindows -pipe -static-libgcc}
set ::KIT(EXTRA_CFLAGS) {-DTCL_TOMMATH -DMP_PREC=4 -DUNICODE -D_UNICODE -DBUILD_tcl -DBUILD_tk -DBUILD_ttk -DSTATIC_BUILD}
#lappend ::KIT(TCLSHELL_OBJS) [file join $PWD tk $::odie(tcl_src_dir) tk.res.o]
#lappend ::KIT(WISHSHELL_OBJS) [file join $PWD tk $::odie(tcl_src_dir) tk.res.o]
if {[file exists [file join $PWD tclkit.rc]]} {
| > | | | > > > > > > | 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 |
set ::KIT(EXEEXT) .exe
set ::KIT(LDFLAGS_CONSOLE) {-mconsole -pipe -static-libgcc}
set ::KIT(LDFLAGS_WINDOW) {-mwindows -pipe -static-libgcc}
set ::KIT(EXTRA_CFLAGS) {-DTCL_TOMMATH -DMP_PREC=4 -DUNICODE -D_UNICODE -DBUILD_tcl -DBUILD_tk -DBUILD_ttk -DSTATIC_BUILD}
#lappend ::KIT(TCLSHELL_OBJS) [file join $PWD tk $::odie(tcl_src_dir) tk.res.o]
#lappend ::KIT(WISHSHELL_OBJS) [file join $PWD tk $::odie(tcl_src_dir) tk.res.o]
if {[file exists [file join $PWD tclkit.rc]]} {
doexec windres -o [file join $PWD tclkit.res.o] -DSTATIC_BUILD \
--include [file join $PWD tcl generic] --include [file join $PWD tk generic] \
--include [file join $PWD tk $::odie(tcl_src_dir)] \
--include [file join $PWD tk $::odie(tcl_src_dir) rc] [file join $PWD tclkit.rc]
} else {
doexec windres -o [file join $PWD tclkit.res.o] -DSTATIC_BUILD \
--include [file join $PWD tcl generic] --include [file join $PWD tk generic] \
--include [file join $PWD tk $::odie(tcl_src_dir)] \
--include [file join $PWD tk $::odie(tcl_src_dir) rc] [file join $PWD tk $::odie(tcl_src_dir) rc tk.rc]
lappend ::KIT(TCLSHELL_OBJS) [file join $PWD tk $::odie(tcl_src_dir) wish.res.o]
lappend ::KIT(WISHSHELL_OBJS) [file join $PWD tk $::odie(tcl_src_dir) wish.res.o]
}
lappend ::KIT(TCLSHELL_OBJS) [file join $PWD tclkit.res.o]
lappend ::KIT(WISHSHELL_OBJS) [file join $PWD tclkit.res.o]
lappend ::KIT(INCLUDES) [file join $PWD tk $::odie(tcl_src_dir) rc]
} else {
set ::KIT(EXEEXT) {}
set ::KIT(LDFLAGS_CONSOLE) {}
set ::KIT(LDFLAGS_WINDOW) {}
set ::KIT(EXTRA_CFLAGS) {-DTCL_TOMMATH -DMP_PREC=4 -DBUILD_tk -DBUILD_ttk}
}
|
| ︙ | ︙ | |||
566 567 568 569 570 571 572 |
package ifneeded Tk @TKVERSION@ [list load $::tk_library/@TKDLL@ Tk]
}]
close $fout
}
cd $PWD
if {[lindex $argv 0] eq "toadkit"} {
| | < | | 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 598 599 |
package ifneeded Tk @TKVERSION@ [list load $::tk_library/@TKDLL@ Tk]
}]
close $fout
}
cd $PWD
if {[lindex $argv 0] eq "toadkit"} {
#file copy -force tclkit_bare$::KIT(EXEEXT) toadkit$::KIT(EXEEXT)
package ifneeded zipfile::mkzip 1.2 [list source [file join $::HERE scripts mkzip.tcl]]
package require zipfile::mkzip
#file copy -force [file join $::HERE default_tclsh.tcl] tclkit.vfs/main.tcl
::zipfile::mkzip::mkzip toadkit$::KIT(EXEEXT) -runtime tclkit_bare$::KIT(EXEEXT) -directory tclkit.vfs
}
cd $PWD
if {[lindex $argv 0] eq "wrap"} {
set name [lindex $argv 1]
set vfspath [lindex $argv 2]
#file copy -force tclkit_bare$::KIT(EXEEXT) toadkit$::KIT(EXEEXT)
puts [list AUTOPATH $::auto_path]
package ifneeded zipfile::mkzip 1.2 [list source [file join $::HERE scripts mkzip.tcl]]
package require zipfile::mkzip
copyDir tclkit.vfs $vfspath
#copyDir tclkit.vfs/lib $vfspath/lib
#copyDir tclkit.vfs/pkgs $vfspath/pkgs
::zipfile::mkzip::mkzip ${name}$::KIT(EXEEXT) -runtime tclkit_bare$::KIT(EXEEXT) -directory $vfspath
}
|
Changes to scripts/make_gort.tcl.
| ︙ | ︙ | |||
8 9 10 11 12 13 14 |
set path [file dirname [file normalize [info script]]]
proc ::doexec args {
exec {*}$args >&@ stdout
}
source $path/../odieConfig.tcl
| | > > > | | > > > > > > | 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
set path [file dirname [file normalize [info script]]]
proc ::doexec args {
exec {*}$args >&@ stdout
}
source $path/../odieConfig.tcl
proc get_distro {pkg {tag trunk} {local_path {}}} {
if {$local_path eq {}} {
set local_path $pkg
}
set PKG_SRCPATH $::odie(sandbox)/$local_path
if {![file exists $::odie(download)/$pkg.fos]} {
puts "Fossil clone $pkg"
doexec $::odie(fossil) clone $::odie(mirror_url)/$pkg $::odie(download)/$pkg.fos
}
if {![file exists ${PKG_SRCPATH}/$::odie(fossil_checkout)]} {
puts "Fossil open $local_path"
file mkdir ${PKG_SRCPATH}
cd ${PKG_SRCPATH}
doexec $::odie(fossil) open $::odie(download)/$pkg.fos
}
cd ${PKG_SRCPATH}
doexec $::odie(fossil) update $tag
return ${PKG_SRCPATH}
}
get_distro tcllib odie
get_distro gort trunk
get_distro gort sherpa sherpa
###
# Build supporting libraries needed by Gort
##
file mkdir $::odie(prefix)/bin
# Rebuild gort
set GORT_SRCPATH $::odie(src_dir)/../gort
set SHERPA_SRCPATH $::odie(src_dir)/../sherpa
if {$::tcl_platform(platform) eq "windows"} {
file copy -force ${GORT_SRCPATH}/gort.tcl $::odie(prefix)/bin/gort.tcl
file copy -force ${SHERPA_SRCPATH}/sherpa.tcl $::odie(prefix)/bin/sherpa.tcl
} else {
file delete $::odie(prefix)/bin/gort
file link -symbolic $::odie(prefix)/bin/gort ${GORT_SRCPATH}/gort.tcl
file delete $::odie(prefix)/bin/sherpa
file link -symbolic $::odie(prefix)/bin/sherpa ${SHERPA_SRCPATH}/sherpa.tcl
}
|
Changes to scripts/make_tcl.sh.
| ︙ | ︙ | |||
33 34 35 36 37 38 39 |
echo $ODIE_HOST
echo $ODIE_TARGET
#cd ${SANDBOX}/tcl
#${FOSSIL} update ${TCL_FOSSIL_BRANCH}
cd ${TCL_SRCPATH}
# Build Tcl twice. Once statically, once dynamically
| | | | | | | | | | | | | < | | 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 |
echo $ODIE_HOST
echo $ODIE_TARGET
#cd ${SANDBOX}/tcl
#${FOSSIL} update ${TCL_FOSSIL_BRANCH}
cd ${TCL_SRCPATH}
# Build Tcl twice. Once statically, once dynamically
#echo Build Static Tcl
#if [ "${ODIE_HOST}" != "${ODIE_TARGET}" ] ; then
# sh ./configure --enable-shared=no --with-tzdata --host=${ODIE_TARGET} ${TCL_CONFIG_FLAGS}
#else
# sh ./configure --enable-shared=no --with-tzdata ${TCL_CONFIG_FLAGS}
#fi
#make clean
#make binaries
#echo "COPYING STATIC LIBRARY"
#source tclConfig.sh
#cp -f $TCL_LIB_FILE ${ODIE_STATIC_TCLLIB}
#cp -f tclConfig.sh ${exec_prefix}/lib/tclkitConfig.sh
#cd ${TCL_SRCPATH}
echo Build Dynamic Tcl
if [ "${ODIE_HOST}" != "${ODIE_TARGET}" ] ; then
sh ./configure --prefix=${LOCAL_REPO} --libdir=${LOCAL_REPO}/lib --with-tzdata --host=${ODIE_TARGET} ${TCL_CONFIG_FLAGS}
else
sh ./configure --prefix=${LOCAL_REPO} --libdir=${LOCAL_REPO}/lib --with-tzdata ${TCL_CONFIG_FLAGS}
fi
make clean
|
| ︙ | ︙ |