summaryrefslogtreecommitdiffstats
path: root/macosx/buildTkConfig.tcl
blob: 45597ea51410a912c3203e553551ebef94d95703 (plain)
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
42
43
44
#!/bin/sh
#
# Synthesize tkConfig.sh for Mac OS X based
# on tclConfig.sh and tkConfig.sh.in
#
# RCS: @(#) $Id: buildTkConfig.tcl,v 1.4 2004/11/16 04:05:53 das Exp $
#
# the next line restarts using tclsh \
exec tclsh8.4 "$0" "$@"

proc main {tclConfigFile tkConfigFileIn tkConfigFile} {
	set in [open $tclConfigFile]
	set tclConfig [read $in]
	close $in
	set in [open $tkConfigFileIn]
	set tkConfig [read $in]
	close $in
	set tclconfvars [regexp -all -inline -line -- {^TCL_([^=]*)=(.*)$} $tclConfig]
	lappend tclconfvars {} {XINCLUDES} \
	[lindex [regexp -inline -line -- {^TCL_INCLUDE_SPEC=(.*)$} $tclConfig] 1]
	set tkconfvars [regexp -all -inline -line -- {^TK_([^=]*)=} $tkConfig]
	foreach {-> var val} $tclconfvars {
		regsub -all -- {([Tt])cl((?![[:alnum:]])|stub)} $val {\1k\2} val
		foreach {-> tkvar} $tkconfvars {
			regsub -all -- "TCL_$tkvar" $val "TK_$tkvar" val
		}
		regsub -line -- "^TK_$var=.*\$" $tkConfig "TK_$var=$val" tkConfig
	}
	regsub -line -all -- {@[^@]+@} $tkConfig {} tkConfig
	regsub -line -all -- {(/tk)/(?:Development|Deployment)} $tkConfig {\1} tkConfig
	regsub -line {^(TK_DEFS=')} $tkConfig {\1 -DMAC_OSX_TK } tkConfig
	
	set out [open $tkConfigFile w]
	puts $out $tkConfig
	close $out
}

if {$argc != 3} {
	puts stderr "usage: $argv0 /path/to/tclConfig.sh \
/path/to/tkConfig.sh.in /path/to/tkConfig.sh"
	exit 1
}

main [lindex $argv 0] [lindex $argv 1] [lindex $argv 2]