Check-in [8d38788ffd]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Instead of statically link the tclkit executable, pack the tcl dll in the VFS
Timelines: family | ancestors | descendants | both | core_zip_vfs
Files: files | file ages | folders
SHA1: 8d38788ffdf22277b56291f682b5833eeeaf81a0
User & Date: hypnotoad 2014-09-09 14:47:12.025
Context
2014-09-09
15:02
Add tclkit to "make all" and install check-in: 84365e493b user: hypnotoad tags: core_zip_vfs
14:47
Instead of statically link the tclkit executable, pack the tcl dll in the VFS check-in: 8d38788ffd user: hypnotoad tags: core_zip_vfs
2014-09-06
11:41
Created a designated bootloader for Tclkits under windows On windows, tclkits build a private VFS i... check-in: cd9bbdf261 user: hypnotoad tags: core_zip_vfs
Changes
Unified Diff Ignore Whitespace Patch
Changes to tools/mkVfs.tcl.
49
50
51
52
53
54
55
56
57
58
59
60

61
62

63




64
65
66
67
68
69
70
    if {$::tcl_platform(platform) eq {unix}} {
	file attributes $d2 -permissions 0755
    } else {
	file attributes $d2 -readonly 1
    }
}

if {[llength $argv] < 3} {
    puts "Usage: VFS_ROOT TCLSRC_ROOT PLATFORM"
    exit 1
}
set TCL_SCRIPT_DIR [lindex $argv 0]

set TCLSRC_ROOT    [lindex $argv 1]
set PLATFORM       [lindex $argv 2]






puts "Building [file tail $TCL_SCRIPT_DIR] for $PLATFORM"
copyDir ${TCLSRC_ROOT}/library ${TCL_SCRIPT_DIR}

if {$PLATFORM == "windows"} {
    set ddedll [glob -nocomplain ${TCLSRC_ROOT}/win/tcldde*.dll]
    puts "DDE DLL $ddedll"
    if {$ddedll != {}} {







|
|


|
>
|
|
>

>
>
>
>







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
    if {$::tcl_platform(platform) eq {unix}} {
	file attributes $d2 -permissions 0755
    } else {
	file attributes $d2 -readonly 1
    }
}

if {[llength $argv] < 4} {
    puts "Usage: VFS_ROOT TCLSRC_ROOT PLATFORM TCLDLL"
    exit 1
}
set VFSROOT        [lindex $argv 0]
set VERSION        [lindex $argv 1]
set TCLSRC_ROOT    [lindex $argv 2]
set PLATFORM       [lindex $argv 3]
set TCLDLL         [lindex $argv 4]

file mkdir [file join $VFSROOT bin]
file copy -force $TCLDLL [file join $VFSROOT bin $TCLDLL]

set TCL_SCRIPT_DIR [file join $VFSROOT tcl$VERSION]
puts "Building [file tail $TCL_SCRIPT_DIR] for $PLATFORM"
copyDir ${TCLSRC_ROOT}/library ${TCL_SCRIPT_DIR}

if {$PLATFORM == "windows"} {
    set ddedll [glob -nocomplain ${TCLSRC_ROOT}/win/tcldde*.dll]
    puts "DDE DLL $ddedll"
    if {$ddedll != {}} {
Changes to unix/Makefile.in.
584
585
586
587
588
589
590


591
592
593
594
595
596
597
	$(MAC_OSX_DIR)/tclMacOSXBundle.c \
	$(MAC_OSX_DIR)/tclMacOSXFCmd.c \
	$(MAC_OSX_DIR)/tclMacOSXNotify.c

CYGWIN_SRCS = \
	$(TOP_DIR)/win/tclWinError.c



DTRACE_HDR = tclDTrace.h

DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d

ZLIB_SRCS = \
	$(ZLIB_DIR)/adler32.c \
	$(ZLIB_DIR)/compress.c \







>
>







584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
	$(MAC_OSX_DIR)/tclMacOSXBundle.c \
	$(MAC_OSX_DIR)/tclMacOSXFCmd.c \
	$(MAC_OSX_DIR)/tclMacOSXNotify.c

CYGWIN_SRCS = \
	$(TOP_DIR)/win/tclWinError.c

TCLKIT_SRCS = $(UNIX_DIR)/tclKitInit.c

DTRACE_HDR = tclDTrace.h

DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d

ZLIB_SRCS = \
	$(ZLIB_DIR)/adler32.c \
	$(ZLIB_DIR)/compress.c \
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
	$(ZLIB_DIR)/zutil.c

# Note: don't include DL_SRCS or MAC_OSX_SRCS in SRCS: most of those files
# won't compile on the current machine, and they will cause problems for
# things like "make depend".

SRCS = $(GENERIC_SRCS) $(TOMMATH_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \
	$(OO_SRCS) $(STUB_SRCS) @PLAT_SRCS@ @ZLIB_SRCS@

PWD=`pwd`
VFS_INSTALL_DIR=${PWD}/tclkit.vfs/tcl8.6

#--------------------------------------------------------------------------
# Start of rules
#--------------------------------------------------------------------------







|







608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
	$(ZLIB_DIR)/zutil.c

# Note: don't include DL_SRCS or MAC_OSX_SRCS in SRCS: most of those files
# won't compile on the current machine, and they will cause problems for
# things like "make depend".

SRCS = $(GENERIC_SRCS) $(TOMMATH_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \
	$(OO_SRCS) $(STUB_SRCS) @PLAT_SRCS@ @ZLIB_SRCS@ $TCLKIT_SRCS

PWD=`pwd`
VFS_INSTALL_DIR=${PWD}/tclkit.vfs/tcl8.6

#--------------------------------------------------------------------------
# Start of rules
#--------------------------------------------------------------------------
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
null.zip:
	touch .empty
	zip null.zip .empty 

# Rather than force an install, pack the files we need into a
# file system under our control
tclkit.vfs:
	make install-libraries DESTDIR=tclkit.vfs
	make install-tzdata DESTDIR=tclkit.vfs
	make install-packages DESTDIR=tclkit.vfs

# Assemble all of the tcl sources into a single executable
${TCLKIT_EXE}:  ${TCLKIT_OBJS} ${TCL_OBJS} ${TOMMATH_OBJS} ${ZLIB_OBJS} null.zip tclkit.vfs
	${CC} ${CFLAGS} ${LDFLAGS} \
		${TCLKIT_OBJS} ${TCL_OBJS} ${TOMMATH_OBJS} ${ZLIB_OBJS} \
		${LIBS} @EXTRA_TCLSH_LIBS@ \
		${CC_SEARCH_FLAGS} -o ${TCLKIT_EXE}
	cat null.zip >> ${TCLKIT_EXE}
	cd tclkit.vfs${prefix}/lib ; zip -rAq ${UNIX_DIR}/${TCLKIT_EXE} .

Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
	$(SHELL) config.status
#tclConfig.h: $(UNIX_DIR)/tclConfig.h.in
#	$(SHELL) config.status

clean: clean-packages







|
|
|


|

|
|


|







663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
null.zip:
	touch .empty
	zip null.zip .empty 

# Rather than force an install, pack the files we need into a
# file system under our control
tclkit.vfs:
	@echo "Building VFS File system in tclkit.vfs"
	@$(TCL_EXE) "$(TOP_DIR)/tools/mkVfs.tcl" \
	    "$(UNIX_DIR)/tclkit.vfs" "$(VERSION)" "$(TOP_DIR)"  unix ${TCL_LIB_FILE}

# Assemble all of the tcl sources into a single executable
${TCLKIT_EXE}:  ${TCL_EXE} $(TCLKIT_OBJS) ${TCL_LIB_FILE} ${TCL_STUB_LIB_FILE} ${ZLIB_OBJS} null.zip tclkit.vfs
	${CC} ${CFLAGS} ${LDFLAGS} \
		$(TCLKIT_OBJS) ${ZLIB_OBJS} \
		@TCL_BUILD_LIB_SPEC@ ${TCL_STUB_LIB_FILE} ${LIBS} @EXTRA_TCLSH_LIBS@ \
		${CC_SEARCH_FLAGS} -o ${TCLKIT_EXE}
	cat null.zip >> ${TCLKIT_EXE}
	cd tclkit.vfs ; zip -rAq ${UNIX_DIR}/${TCLKIT_EXE} .

Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
	$(SHELL) config.status
#tclConfig.h: $(UNIX_DIR)/tclConfig.h.in
#	$(SHELL) config.status

clean: clean-packages
1191
1192
1193
1194
1195
1196
1197



1198
1199
1200
1201
1202
1203
1204

tclIORChan.o: $(GENERIC_DIR)/tclIORChan.c $(IOHDR)
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIORChan.c

tclIORTrans.o: $(GENERIC_DIR)/tclIORTrans.c $(IOHDR)
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIORTrans.c




tclLink.o: $(GENERIC_DIR)/tclLink.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLink.c

tclListObj.o: $(GENERIC_DIR)/tclListObj.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclListObj.c

tclLiteral.o: $(GENERIC_DIR)/tclLiteral.c $(COMPILEHDR)







>
>
>







1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209

tclIORChan.o: $(GENERIC_DIR)/tclIORChan.c $(IOHDR)
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIORChan.c

tclIORTrans.o: $(GENERIC_DIR)/tclIORTrans.c $(IOHDR)
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIORTrans.c

tclKitInit.o: $(UNIX_DIR)/tclKitInit.c
	$(CC) -c $(APP_CC_SWITCHES) $(UNIX_DIR)/tclKitInit.c

tclLink.o: $(GENERIC_DIR)/tclLink.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLink.c

tclListObj.o: $(GENERIC_DIR)/tclListObj.c
	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclListObj.c

tclLiteral.o: $(GENERIC_DIR)/tclLiteral.c $(COMPILEHDR)
Changes to win/Makefile.in.
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
	zip -q null.zip .empty
	
# Rather than force an install, pack the files we need into a
# file system under our control
tclkit.vfs: $(TCLSH) $(DDE_DLL_FILE) $(REG_DLL_FILE)
	@echo "Building VFS File system in tclkit.vfs"
	@$(TCL_EXE) "$(ROOT_DIR)/tools/mkVfs.tcl" \
	    "$(WIN_DIR)/tclkit.vfs/tcl$(VERSION)" "$(ROOT_DIR)"  windows

$(TCLKIT): $(TCLKIT_OBJS) @LIBRARIES@ $(TCL_STUB_LIB_FILE) tclsh.$(RES) null.zip tclkit.vfs
	$(CC) $(CFLAGS) -DSTATIC_BUILD -UUSE_STUBS $(TCLKIT_OBJS)  $(LIBS) \
        tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
	@VC_MANIFEST_EMBED_EXE@
	cat null.zip >> $(TCLKIT)
	cd tclkit.vfs ; zip -rAq $(WIN_DIR)/$(TCLKIT) .







|







439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
	zip -q null.zip .empty
	
# Rather than force an install, pack the files we need into a
# file system under our control
tclkit.vfs: $(TCLSH) $(DDE_DLL_FILE) $(REG_DLL_FILE)
	@echo "Building VFS File system in tclkit.vfs"
	@$(TCL_EXE) "$(ROOT_DIR)/tools/mkVfs.tcl" \
	    "$(WIN_DIR)/tclkit.vfs" "$(VERSION)" "$(ROOT_DIR)"  windows $(TCL_LIB_FILE)

$(TCLKIT): $(TCLKIT_OBJS) @LIBRARIES@ $(TCL_STUB_LIB_FILE) tclsh.$(RES) null.zip tclkit.vfs
	$(CC) $(CFLAGS) -DSTATIC_BUILD -UUSE_STUBS $(TCLKIT_OBJS)  $(LIBS) \
        tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
	@VC_MANIFEST_EMBED_EXE@
	cat null.zip >> $(TCLKIT)
	cd tclkit.vfs ; zip -rAq $(WIN_DIR)/$(TCLKIT) .