Check-in [99ca0f2d45]
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2018 Conference, Houston/TX, US, Oct 15-19
Send your abstracts to tclconference@googlegroups.com or submit via the online form
by Aug 20.

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

Overview
Comment:Modifications to the build process to accomidate linux Added sherpa to the pantheon of bootstrapped packages Removed the autosetup step for toadkits baked into odie autosetup ø 
Timelines: family | ancestors | descendants | both | autosetup
Files: files | file ages | folders
SHA1: 99ca0f2d456309b5c6a0ef6aad363ef1d7b35dc9
User & Date: hypnotoad 2015-03-27 18:41:47
Context
2015-03-27
19:03
Fixed where sherpa_bootstrap installs sherpa packages  check-in: 223625274c user: hypnotoad tags: autosetup
18:41
Modifications to the build process to accomidate linux Added sherpa to the pantheon of bootstrapped packages Removed the autosetup step for toadkits baked into odie autosetup ø  check-in: 99ca0f2d45 user: hypnotoad tags: autosetup
2015-03-24
21:20
Formalizing on ::project(srcdir) as the appropriate flag for file directories Adapted the tea-like template building mechanism from odielib into a general purpose tool check-in: a69c0492a6 user: hypnotoad tags: autosetup
Changes
Unified Diff Ignore Whitespace Patch
Changes to auto.def.
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
###
# Odie autosetup script
###
use cc cc-lib system odie

options {
  sandbox: with-sandbox:  =>  {Writable location for builds}
  download: with-download =>  {Writable location for downloading source}
  tclbranch:release   	=>  {Branch of the Tcl core to build against}
  tkbranch:  		=>  {Branch of the Tk core to build against
 * defaults to tclbranch
 * if "none" is specified, Tk is disabled}
  windowsystem:native    =>  {For platforms with multiple windowing systems, which system to target.
native - The native window system
x11 - An x11 emulation environment
none - Disable Tk support (equivilent to tkbranch=none)
}
  64bit:detect		=> {Enable 64 bit support (default detect)}
  fossil:               => {Location of native fossil executable (default detect)}
  tclsh:                => {Location of native tcl shell (default detect)}
}

set ::odie(src_dir) [file dirname [file-normalize [info script]]]


switch [opt-val 64bit] {
  amd64 -
  x64 -
  x86_64 {
    set ::odie(64bit) 1




|



















>







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
###
# Odie autosetup script
###
use system

options {
  sandbox: with-sandbox:  =>  {Writable location for builds}
  download: with-download =>  {Writable location for downloading source}
  tclbranch:release   	=>  {Branch of the Tcl core to build against}
  tkbranch:  		=>  {Branch of the Tk core to build against
 * defaults to tclbranch
 * if "none" is specified, Tk is disabled}
  windowsystem:native    =>  {For platforms with multiple windowing systems, which system to target.
native - The native window system
x11 - An x11 emulation environment
none - Disable Tk support (equivilent to tkbranch=none)
}
  64bit:detect		=> {Enable 64 bit support (default detect)}
  fossil:               => {Location of native fossil executable (default detect)}
  tclsh:                => {Location of native tcl shell (default detect)}
}

set ::odie(src_dir) [file dirname [file-normalize [info script]]]
use odie

switch [opt-val 64bit] {
  amd64 -
  x64 -
  x86_64 {
    set ::odie(64bit) 1

75
76
77
78
79
80
81


82
83
84
85
86
87
88
if {$::odie(build_tclsh) eq {}} {
  set ::odie(build_tclsh) [info nameofexecutable]
} else {
  set ::odie_config(tclsh) $::odie(build_tclsh)
}
set ::odie_prog(tclsh) $::odie(build_tclsh)
define ODIE_BUILD_TCLSH $::odie(build_tclsh)



foreach {program required domake} {
  zip 	 1 0
  unzip  1 0
  tar    1 0
  git    0 1
  strip  0 0







>
>







76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
if {$::odie(build_tclsh) eq {}} {
  set ::odie(build_tclsh) [info nameofexecutable]
} else {
  set ::odie_config(tclsh) $::odie(build_tclsh)
}
set ::odie_prog(tclsh) $::odie(build_tclsh)
define ODIE_BUILD_TCLSH $::odie(build_tclsh)

use cc cc-lib odie

foreach {program required domake} {
  zip 	 1 0
  unzip  1 0
  tar    1 0
  git    0 1
  strip  0 0
274
275
276
277
278
279
280
281
282
283
284
285
  if {[llength $value]!=1} {
    set value '$value'
  }
  puts $fout "TK_[string toupper $field]=$value"
}

close $fout

###
# Configure toadkit
###
source [file join $::odie(src_dir) src toadkit configure.tcl]







<
<
<
<
<
277
278
279
280
281
282
283





  if {[llength $value]!=1} {
    set value '$value'
  }
  puts $fout "TK_[string toupper $field]=$value"
}

close $fout





Changes to scripts/common.tcl.
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
###
# Common suite of routines for the odie boostrap process
###
set path [file normalize [file join [file dirname [file normalize [info script]]] ..]]

if {[file exists [file join $path odieConfig.tcl]]} {
    source [file join $path odieConfig.tcl]
}

set ::autosetup(exe) $::argv0
set ::autosetup(istcl) 1
set ::autosetup(start) [clock millis]
set ::autosetup(installed) 0
set ::autosetup(msg-checking) 0
set ::autosetup(msg-quiet) 0
set ::autosetup(msg-timing) 0




<



>







1
2
3
4

5
6
7
8
9
10
11
12
13
14
15
###
# Common suite of routines for the odie boostrap process
###
set path [file normalize [file join [file dirname [file normalize [info script]]] ..]]

if {[file exists [file join $path odieConfig.tcl]]} {
    source [file join $path odieConfig.tcl]
}
lappend ::auto_path [file join $::odie(prefix) lib]
set ::autosetup(exe) $::argv0
set ::autosetup(istcl) 1
set ::autosetup(start) [clock millis]
set ::autosetup(installed) 0
set ::autosetup(msg-checking) 0
set ::autosetup(msg-quiet) 0
set ::autosetup(msg-timing) 0
73
74
75
76
77
78
79

80
81
82
83
84
85
86
87
88
89





90
91
92
93
94
95
96


proc ::sherpa_bootstrap::sandbox_path pkg {
  return [file join $::odie(sandbox) $pkg]
}

proc ::sherpa_bootstrap::build_gnumake {pkg action} {

  if {$action eq "install"} {
    set PKG_SRCPATH [sandbox_path $pkg]
    cd ${PKG_SRCPATH}
    doexec $::odie(fossil) update
    if {![file exists ${PKG_SRCPATH}/Makefile]} {
      if {$::odie(host) != $::odie(target)} {
	doexec sh ./configure --prefix=$::odie(local_repo) --libdir=$::odie(local_repo)/lib --host=$::odie(host)
      } else {
	doexec sh ./configure --prefix=$::odie(local_repo) --libdir=$::odie(local_repo)/lib
      }





    }
    if [catch {
        domake install
    } err] {
	puts "Died on $err"
	exit 1
    }







>




|
|
|
<
<
|
>
>
>
>
>







73
74
75
76
77
78
79
80
81
82
83
84
85
86
87


88
89
90
91
92
93
94
95
96
97
98
99
100


proc ::sherpa_bootstrap::sandbox_path pkg {
  return [file join $::odie(sandbox) $pkg]
}

proc ::sherpa_bootstrap::build_gnumake {pkg action} {
  puts "BUILD GNUMAKE $pkg $action"
  if {$action eq "install"} {
    set PKG_SRCPATH [sandbox_path $pkg]
    cd ${PKG_SRCPATH}
    doexec $::odie(fossil) update
    set args [list  --prefix=$::odie(local_repo)]
    if {$::odie(host) != $::odie(target)} {
	lappend args --host=$::odie(host)


    }
    if {[file exists ${PKG_SRCPATH}/auto.def]} {
      doexec [info nameofexecutable] $::odie(odie_src_dir)/autosetup/autosetup {*}$args
    } elseif {![file exists ${PKG_SRCPATH}/Makefile]} {
      lappend args  --libdir=$::odie(local_repo)/lib
      doexec sh ./configure {*}$args
    }
    if [catch {
        domake install
    } err] {
	puts "Died on $err"
	exit 1
    }
183
184
185
186
187
188
189

190
191
192
193
194

195
196
197
198
199
200
201
}

if {!$::odie(windows)} {
    ::sherpa_bootstrap::distribution tclx {
      get_proc   download_fossil
      build_proc build_gnumake
    }

    ::sherpa_bootstrap::distribution kettle {
      get_proc   download_fossil
      requires {tclx tcllib tklib}
      build_proc build_kettle
    }

}
::sherpa_bootstrap::distribution tclvfs {
  get_proc   download_fossil
  requires tcllib
  build_proc build_gnumake
}
::sherpa_bootstrap::distribution taolib {







>





>







187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
}

if {!$::odie(windows)} {
    ::sherpa_bootstrap::distribution tclx {
      get_proc   download_fossil
      build_proc build_gnumake
    }
if 0 {
    ::sherpa_bootstrap::distribution kettle {
      get_proc   download_fossil
      requires {tclx tcllib tklib}
      build_proc build_kettle
    }
}
}
::sherpa_bootstrap::distribution tclvfs {
  get_proc   download_fossil
  requires tcllib
  build_proc build_gnumake
}
::sherpa_bootstrap::distribution taolib {
216
217
218
219
220
221
222







223
224
225
226
227
228
229

::sherpa_bootstrap::distribution odielib {
  get_proc   download_fossil
  fossil_branch autosetup
  requires {tcllib}
  build_proc build_gnumake
}








proc ::doexec args {
  exec {*}$args >&@ stdout
}

###
# Make sure the odielib toolkit is downloaded







>
>
>
>
>
>
>







222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242

::sherpa_bootstrap::distribution odielib {
  get_proc   download_fossil
  fossil_branch autosetup
  requires {tcllib}
  build_proc build_gnumake
}

::sherpa_bootstrap::distribution sherpa {
  get_proc   download_fossil
  fossil_branch trunk
  requires {tcllib odielib taolib}
  build_proc build_gnumake
}

proc ::doexec args {
  exec {*}$args >&@ stdout
}

###
# Make sure the odielib toolkit is downloaded
Changes to scripts/sherpa.tcl.