Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Adaptations to non tip 430 kit builds to use a version of zipfs which is featureset compatible with tip430 |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | practcl |
Files: | files | file ages | folders |
SHA3-256: |
efdc25747371635b63dc0a6e07f7b6af |
User & Date: | hypnotoad 2017-11-29 12:24:05.811 |
Context
2017-11-29
| ||
22:09 | Updating to practcl 0.10.1 from tcllib check-in: 8526551d20 user: hypnotoad tags: practcl | |
12:24 | Adaptations to non tip 430 kit builds to use a version of zipfs which is featureset compatible with tip430 check-in: efdc257473 user: hypnotoad tags: practcl | |
10:21 | Updating practcl from tcllib check-in: 1c421720fa user: hypnotoad tags: practcl | |
Changes
Changes to practcl.tcl.
︙ | ︙ | |||
1694 1695 1696 1697 1698 1699 1700 | ### # START: class toolset gcc.tcl ### ::oo::class create ::practcl::toolset.gcc { superclass ::practcl::toolset | | < < | | 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 | ### # START: class toolset gcc.tcl ### ::oo::class create ::practcl::toolset.gcc { superclass ::practcl::toolset method build-compile-sources {PROJECT COMPILE CPPCOMPILE INCLUDES} { set objext [my define get OBJEXT o] set EXTERN_OBJS {} set OBJECTS {} set result {} set builddir [$PROJECT define get builddir] file mkdir [file join $builddir objs] set debug [$PROJECT define get debug 0] set task {} ### # Compile the C sources ### ::practcl::debug ### COMPILE PRODUCTS foreach {ofile info} [${PROJECT} project-compile-products] { ::practcl::debug $ofile $info |
︙ | ︙ | |||
1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 | set cmd $CPPCOMPILE } else { set cmd $COMPILE } if {[dict exists $info extra]} { append cmd " [dict get $info extra]" } append cmd " -c $cfile" append cmd " -o $ofilename" dict set task $ofile command $cmd } } set completed 0 while {$completed==0} { | > | 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 | set cmd $CPPCOMPILE } else { set cmd $COMPILE } if {[dict exists $info extra]} { append cmd " [dict get $info extra]" } append cmd " $INCLUDES" append cmd " -c $cfile" append cmd " -o $ofilename" dict set task $ofile command $cmd } } set completed 0 while {$completed==0} { |
︙ | ︙ | |||
1924 1925 1926 1927 1928 1929 1930 | if {[info exists proc(CXX)]} { set COMPILECPP "$proj(CXX) $defs $INCLUDES $proj(CFLAGS_DEBUG) -ggdb \ $defs $proj(CFLAGS_WARNING)" } else { set COMPILECPP $COMPILE } } else { | | | | | 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 | if {[info exists proc(CXX)]} { set COMPILECPP "$proj(CXX) $defs $INCLUDES $proj(CFLAGS_DEBUG) -ggdb \ $defs $proj(CFLAGS_WARNING)" } else { set COMPILECPP $COMPILE } } else { set COMPILE "$proj(CC) $proj(CFLAGS) $defs" if {[info exists proc(CXX)]} { set COMPILECPP "$proj(CXX) $defs $proj(CFLAGS)" } else { set COMPILECPP $COMPILE } } set products [my build-compile-sources $PROJECT $COMPILE $COMPILECPP $INCLUDES] set map {} lappend map %LIBRARY_NAME% $proj(name) lappend map %LIBRARY_VERSION% $proj(version) lappend map %LIBRARY_VERSION_NODOTS% [string map {. {}} $proj(version)] lappend map %OUTFILE% $outfile lappend map %LIBRARY_OBJECTS% $products |
︙ | ︙ | |||
2045 2046 2047 2048 2049 2050 2051 | lappend includedir $cpath } } set INCLUDES "-I[join $includedir " -I"]" if {$debug} { set COMPILE "$TCL(cc) $TCL(shlib_cflags) $TCL(cflags_debug) -ggdb \ | | | | | 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 | lappend includedir $cpath } } set INCLUDES "-I[join $includedir " -I"]" if {$debug} { set COMPILE "$TCL(cc) $TCL(shlib_cflags) $TCL(cflags_debug) -ggdb \ $TCL(cflags_warning) $TCL(extra_cflags)" } else { set COMPILE "$TCL(cc) $TCL(shlib_cflags) $TCL(cflags_optimize) \ $TCL(cflags_warning) $TCL(extra_cflags)" } append COMPILE " " $defs lappend OBJECTS {*}[my build-compile-sources $PROJECT $COMPILE $COMPILE $INCLUDES] set TCLSRC [file normalize $TCLSRCDIR] if {[${PROJECT} define get TEACUP_OS] eq "windows"} { set windres [$PROJECT define get RC windres] set RSOBJ [file join $path build tclkit.res.o] set RCSRC [${PROJECT} define get kit_resource_file] |
︙ | ︙ | |||
2111 2112 2113 2114 2115 2116 2117 | } else { append cmd " $TCL(ldflags_optimize)" } append cmd " $OBJECTS" append cmd " $EXTERN_OBJS" if {$debug && $os eq "windows"} { | | | 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 | } else { append cmd " $TCL(ldflags_optimize)" } append cmd " $OBJECTS" append cmd " $EXTERN_OBJS" if {$debug && $os eq "windows"} { #append cmd " -static" append cmd " -L${TCL(src_dir)}/win -ltcl86g" if {[$PROJECT define get static_tk]} { append cmd " -L${TK(src_dir)}/win -ltk86g" } } else { append cmd " $TCL(build_lib_spec)" if {[$PROJECT define get static_tk]} { |
︙ | ︙ | |||
2950 2951 2952 2953 2954 2955 2956 | ::practcl::debug [self] [self class] [self method] project-compile-products $filename if {[my define exists ofile]} { set ofile [my define get ofile] } else { set ofile [my Ofile $filename] my define set ofile $ofile } | | | 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 | ::practcl::debug [self] [self class] [self method] project-compile-products $filename if {[my define exists ofile]} { set ofile [my define get ofile] } else { set ofile [my Ofile $filename] my define set ofile $ofile } lappend result $ofile [list cfile $filename include [my define get include] extra [my define get extra] external [string is true -strict [my define get external]] object [self]] } } foreach item [my link list subordinate] { lappend result {*}[$item project-compile-products] } return $result } |
︙ | ︙ | |||
4433 4434 4435 4436 4437 4438 4439 | # function declarations set define {} set mainhook [$PROJECT define get TCL_LOCAL_MAIN_HOOK Tclkit_MainHook] set mainfunc [$PROJECT define get TCL_LOCAL_APPINIT Tclkit_AppInit] set mainscript [$PROJECT define get main.tcl main.tcl] set vfsroot [$PROJECT define get vfsroot "[$PROJECT define get ZIPFS_VOLUME]app"] set vfs_main "${vfsroot}/${mainscript}" | < < | | | | | | | | < < | < > | 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 | # function declarations set define {} set mainhook [$PROJECT define get TCL_LOCAL_MAIN_HOOK Tclkit_MainHook] set mainfunc [$PROJECT define get TCL_LOCAL_APPINIT Tclkit_AppInit] set mainscript [$PROJECT define get main.tcl main.tcl] set vfsroot [$PROJECT define get vfsroot "[$PROJECT define get ZIPFS_VOLUME]app"] set vfs_main "${vfsroot}/${mainscript}" set map {} foreach var { vfsroot mainhook mainfunc vfs_main } { dict set map %${var}% [set $var] } set preinitscript { set ::odie(boot_vfs) %vfsroot% set ::SRCDIR $::odie(boot_vfs) if {[file exists [file join %vfsroot% tcl_library init.tcl]]} { set ::tcl_library [file join %vfsroot% tcl_library] set ::auto_path {} } if {[file exists [file join %vfsroot% tk_library tk.tcl]]} { set ::tk_library [file join %vfsroot% tk_library] } } ; # Preinitscript set zvfsboot { /* * %mainhook% -- * Performs the argument munging for the shell */ } ::practcl::cputs zvfsboot { CONST char *archive; Tcl_FindExecutable(*argv[0]); archive=Tcl_GetNameOfExecutable(); } # We have to initialize the virtual filesystem before calling # Tcl_Init(). Otherwise, Tcl_Init() will not be able to find # its startup script files. if {![$PROJECT define get tip_430 0]} { ::practcl::cputs zvfsboot { TclZipfs_Init(NULL);} } ::practcl::cputs zvfsboot " if(!TclZipfs_Mount(NULL, archive, \"app\", NULL)) \x7B " ::practcl::cputs zvfsboot { Tcl_Obj *vfsinitscript; vfsinitscript=Tcl_NewStringObj("%vfs_main%",-1); Tcl_IncrRefCount(vfsinitscript); if(Tcl_FSAccess(vfsinitscript,F_OK)==0) { /* Startup script should be set before calling Tcl_AppInit */ Tcl_SetStartupScript(vfsinitscript,NULL); |
︙ | ︙ | |||
4520 4521 4522 4523 4524 4525 4526 | # Build AppInit() set appinit {} practcl::cputs appinit { if ((Tcl_Init)(interp) == TCL_ERROR) { return TCL_ERROR; } | | > > > > | 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 | # Build AppInit() set appinit {} practcl::cputs appinit { if ((Tcl_Init)(interp) == TCL_ERROR) { return TCL_ERROR; } } if {![$PROJECT define get tip_430 0]} { ::practcl::cputs appinit { TclZipfs_Init(interp);} } set main_init_script {} foreach {statpkg info} $statpkglist { set initfunc {} if {[dict exists $info initfunc]} { set initfunc [dict get $info initfunc] } |
︙ | ︙ | |||
4644 4645 4646 4647 4648 4649 4650 | my define set tip_430 1 } else { # The Tclconfig project maintains a mirror of the version # released with the Tcl core my define set tip_430 0 ::practcl::LOCAL tool odie unpack set COMPATSRCROOT [::practcl::LOCAL tool odie define get srcdir] | | | | 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 | my define set tip_430 1 } else { # The Tclconfig project maintains a mirror of the version # released with the Tcl core my define set tip_430 0 ::practcl::LOCAL tool odie unpack set COMPATSRCROOT [::practcl::LOCAL tool odie define get srcdir] my add class csource ofile tclZipFs.o filename [file join $COMPATSRCROOT compat tclZipFs.c] extra -I[::practcl::file_relative $CWD [file join $TCLSRCDIR compat zlib contrib minizip]] } my define add include_dir [file join $TCLSRCDIR generic] my define add include_dir [file join $TCLSRCDIR $PLATFORM_SRC_DIR] # This file will implement TCL_LOCAL_APPINIT and TCL_LOCAL_MAIN_HOOK my build-tclkit_main $PROJECT $PKG_OBJS } ## Wrap an executable # method wrap {PWD exename vfspath args} { cd $PWD if {![file exists $vfspath]} { file mkdir $vfspath } foreach item [my link list core.library] { set name [$item define get name] set libsrcdir [$item define get srcdir] if {[file exists [file join $libsrcdir library]]} { ::practcl::copyDir [file join $libsrcdir library] [file join $vfspath ${name}_library] } } # Assume the user will populate the VFS path #if {[my define get installdir] ne {}} { # ::practcl::copyDir [file join [my define get installdir] [string trimleft [my define get prefix] /] lib] [file join $vfspath lib] #} foreach arg $args { |
︙ | ︙ |