source: trunk/base/src/port1.0/portconfigure.tcl @ 53420

Last change on this file since 53420 was 53420, checked in by jmr@…, 11 years ago

Wait until the start of configure to append the various FLAGS values that are dependent on whether the universal variant is selected, since if they are evaluated at the top level of a portfile a universal variant may well have not been defined yet. This is actually similar to the 1.7 behaviour where they are appended in the default universal variant.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 22.6 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
2# portconfigure.tcl
3# $Id: portconfigure.tcl 53420 2009-07-05 18:22:01Z jmr@macports.org $
4#
5# Copyright (c) 2002 - 2003 Apple Computer, Inc.
6# Copyright (c) 2007 Markus W. Weissmann <mww@macports.org>
7# All rights reserved.
8#
9# Redistribution and use in source and binary forms, with or without
10# modification, are permitted provided that the following conditions
11# are met:
12# 1. Redistributions of source code must retain the above copyright
13#    notice, this list of conditions and the following disclaimer.
14# 2. Redistributions in binary form must reproduce the above copyright
15#    notice, this list of conditions and the following disclaimer in the
16#    documentation and/or other materials provided with the distribution.
17# 3. Neither the name of Apple Computer, Inc. nor the names of its contributors
18#    may be used to endorse or promote products derived from this software
19#    without specific prior written permission.
20#
21# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31# POSSIBILITY OF SUCH DAMAGE.
32#
33
34package provide portconfigure 1.0
35package require portutil 1.0
36
37set org.macports.configure [target_new org.macports.configure portconfigure::configure_main]
38target_provides ${org.macports.configure} configure
39target_requires ${org.macports.configure} main fetch extract checksum patch
40target_prerun ${org.macports.configure} portconfigure::configure_start
41
42namespace eval portconfigure {
43}
44
45# define options
46commands configure autoreconf automake autoconf xmkmf
47# defaults
48default configure.env       ""
49default configure.pre_args  {--prefix=${prefix}}
50default configure.cmd       ./configure
51default configure.dir       {${worksrcpath}}
52default autoreconf.dir      {${worksrcpath}}
53default autoreconf.pre_args {--install}
54default autoconf.dir        {${worksrcpath}}
55default automake.dir        {${worksrcpath}}
56default xmkmf.cmd           xmkmf
57default xmkmf.dir           {${worksrcpath}}
58default use_configure       yes
59
60option_proc use_autoreconf  portconfigure::set_configure_type
61option_proc use_automake    portconfigure::set_configure_type
62option_proc use_autoconf    portconfigure::set_configure_type
63option_proc use_xmkmf       portconfigure::set_configure_type
64
65proc portconfigure::set_configure_type {option action args} {
66    if {[string equal ${action} "set"] && [tbool args]} {
67        switch $option {
68            use_xmkmf {
69                depends_build-append port:imake
70            }
71            default {
72                depends_build-append port:autoconf port:automake port:libtool
73            }
74        }
75    }
76}
77
78options configure.asroot
79default configure.asroot no
80
81# Configure special environment variables.
82# We could have m32/m64/march/mtune be global configurable at some point.
83options configure.m32 configure.m64 configure.march configure.mtune
84default configure.march     {}
85default configure.mtune     {}
86# We could have debug/optimizations be global configurable at some point.
87options configure.optflags configure.cflags configure.cppflags configure.cxxflags configure.objcflags configure.ldflags configure.libs configure.fflags configure.f90flags configure.fcflags configure.classpath
88default configure.optflags  {-O2}
89# compiler flags section
90default configure.cflags    {${configure.optflags}}
91default configure.cppflags  {-I${prefix}/include}
92default configure.cxxflags  {${configure.optflags}}
93default configure.objcflags {${configure.optflags}}
94default configure.ldflags   {-L${prefix}/lib}
95default configure.libs      {}
96default configure.fflags    {${configure.optflags}}
97default configure.f90flags  {${configure.optflags}}
98default configure.fcflags   {${configure.optflags}}
99default configure.classpath {}
100
101# tools section
102options configure.perl configure.python configure.ruby configure.install configure.awk configure.bison configure.pkg_config configure.pkg_config_path
103default configure.perl              {}
104default configure.python            {}
105default configure.ruby              {}
106default configure.install           {${portutil::autoconf::install_command}}
107default configure.awk               {}
108default configure.bison             {}
109default configure.pkg_config        {}
110default configure.pkg_config_path   {}
111
112options configure.build_arch configure.archflags
113default configure.build_arch {${build_arch}}
114default configure.archflags  {[portconfigure::configure_get_archflags]}
115
116options configure.universal_archs configure.universal_args configure.universal_cflags configure.universal_cppflags configure.universal_cxxflags configure.universal_ldflags
117default configure.universal_archs       {${universal_archs}}
118default configure.universal_args        {--disable-dependency-tracking}
119default configure.universal_cflags      {[portconfigure::configure_get_universal_cflags]}
120default configure.universal_cppflags    {[portconfigure::configure_get_universal_cppflags]}
121default configure.universal_cxxflags    {[portconfigure::configure_get_universal_cflags]}
122default configure.universal_ldflags     {[portconfigure::configure_get_universal_ldflags]}
123
124# Select a distinct compiler (C, C preprocessor, C++)
125options configure.ccache configure.distcc configure.pipe configure.cc configure.cxx configure.cpp configure.objc configure.f77 configure.f90 configure.fc configure.javac configure.compiler
126default configure.ccache        {${configureccache}}
127default configure.distcc        {${configuredistcc}}
128default configure.pipe          {${configurepipe}}
129default configure.cc            {[portconfigure::configure_get_compiler cc]}
130default configure.cxx           {[portconfigure::configure_get_compiler cxx]}
131default configure.cpp           {[portconfigure::configure_get_compiler cpp]}
132default configure.objc          {[portconfigure::configure_get_compiler objc]}
133default configure.f77           {[portconfigure::configure_get_compiler f77]}
134default configure.f90           {[portconfigure::configure_get_compiler f90]}
135default configure.fc            {[portconfigure::configure_get_compiler fc]}
136default configure.javac         {[portconfigure::configure_get_compiler javac]}
137default configure.compiler      {[portconfigure::configure_get_default_compiler]}
138
139set_ui_prefix
140
141proc portconfigure::configure_start {args} {
142    global UI_PREFIX configure.compiler configure.optflags configure.archflags
143    global configure.march configure.mtune configure.universal_cflags
144    global configure.universal_cxxflags configure.universal_cppflags
145    global configure.universal_ldflags configure.universal_args
146   
147    ui_msg "$UI_PREFIX [format [msgcat::mc "Configuring %s"] [option name]]"
148
149    set name ""
150    switch -exact ${configure.compiler} {
151        gcc { set name "System gcc" }
152        gcc-3.3 { set name "Mac OS X gcc 3.3" }
153        gcc-4.0 { set name "Mac OS X gcc 4.0" }
154        gcc-4.2 { set name "Mac OS X gcc 4.2" }
155        llvm-gcc-4.2 { set name "Mac OS X llvm-gcc 4.2" }
156        clang { set name "Mac OS X clang" }
157        apple-gcc-3.3 { set name "MacPorts Apple gcc 3.3" }
158        apple-gcc-4.0 { set name "MacPorts Apple gcc 4.0" }
159        apple-gcc-4.2 { set name "MacPorts Apple gcc 4.2" }
160        macports-gcc-3.3 { set name "MacPorts gcc 3.3" }
161        macports-gcc-3.4 { set name "MacPorts gcc 3.4" }
162        macports-gcc-4.0 { set name "MacPorts gcc 4.0" }
163        macports-gcc-4.1 { set name "MacPorts gcc 4.1" }
164        macports-gcc-4.2 { set name "MacPorts gcc 4.2" }
165        macports-gcc-4.3 { set name "MacPorts gcc 4.3" }
166        macports-gcc-4.4 { set name "MacPorts gcc 4.4" }
167        default { return -code error "Invalid value for configure.compiler" }
168    }
169    ui_debug "Using compiler '$name'"
170   
171    # add in extra CFLAGS etc
172    if {[variant_exists universal] && [variant_isset universal]} {
173        foreach flag {cflags objcflags fflags f90flags fcflags} {
174            configure.${flag}-append ${configure.universal_cflags}
175        }
176        configure.cxxflags-append ${configure.universal_cxxflags}
177        configure.cppflags-append ${configure.universal_cppflags}
178        configure.ldflags-append ${configure.universal_ldflags}
179        configure.pre_args-append ${configure.universal_args}
180    } else {
181        foreach flag {cflags cxxflags objcflags fflags f90flags fcflags} {
182            configure.${flag}-append ${configure.archflags}
183            if {${configure.march} != {}} {
184                configure.${flag}-append "-march=${configure.march}"
185            }
186            if {${configure.mtune} != {}} {
187                configure.${flag}-append "-mtune=${configure.mtune}"
188            }
189        }
190        configure.ldflags-append ${configure.archflags}
191    }
192}
193
194# internal function to determine the compiler flags to select an arch
195proc portconfigure::configure_get_archflags {args} {
196    global configure.build_arch configure.m32 configure.m64 configure.compiler
197    set flags ""
198    if {[tbool configure.m64]} {
199        set flags "-m64"
200    } elseif {[tbool configure.m32]} {
201        set flags "-m32"
202    } elseif {${configure.build_arch} != ""} {
203        if {[arch_flag_supported]} {
204            set flags "-arch ${configure.build_arch}"
205        } elseif {${configure.build_arch} == "x86_64" || ${configure.build_arch} == "ppc64"} {
206            set flags "-m64"
207        } elseif {${configure.compiler} != "gcc-3.3"} {
208            set flags "-m32"
209        }
210    }
211    return $flags
212}
213
214# internal function to determine the "-arch xy" flags for the compiler
215proc portconfigure::configure_get_universal_archflags {args} {
216    global configure.universal_archs
217    set flags ""
218    foreach arch ${configure.universal_archs} {
219        if {$flags == ""} {
220            set flags "-arch $arch"
221        } else {
222            append flags " -arch $arch"
223        }
224    }
225    return $flags
226}
227
228# internal function to determine the CPPFLAGS for the compiler
229proc portconfigure::configure_get_universal_cppflags {args} {
230    global os.arch os.major developer_dir
231    set flags ""
232    # include sysroot in CPPFLAGS too (twice), for the benefit of autoconf
233    if {${os.arch} == "powerpc" && ${os.major} == "8"} {
234        set flags "-isysroot ${developer_dir}/SDKs/MacOSX10.4u.sdk"
235    }
236    return $flags
237}
238
239# internal function to determine the CFLAGS for the compiler
240proc portconfigure::configure_get_universal_cflags {args} {
241    global os.arch os.major developer_dir
242    set flags [configure_get_universal_archflags]
243    # these flags should be valid for C/C++ and similar compiler frontends
244    if {${os.arch} == "powerpc" && ${os.major} == "8"} {
245        set flags "-isysroot ${developer_dir}/SDKs/MacOSX10.4u.sdk ${flags}"
246    }
247    return $flags
248}
249
250# internal function to determine the LDFLAGS for the compiler
251proc portconfigure::configure_get_universal_ldflags {args} {
252    global os.arch os.major developer_dir
253    set flags [configure_get_universal_archflags]
254    # works around linking without using the CFLAGS, outside of automake
255    if {${os.arch} == "powerpc" && ${os.major} == "8"} {
256        set flags "-Wl,-syslibroot,${developer_dir}/SDKs/MacOSX10.4u.sdk ${flags}"
257    }
258    return $flags
259}
260
261# internal proc to determine if the compiler supports -arch
262proc portconfigure::arch_flag_supported {args} {
263    global configure.compiler
264    switch -exact ${configure.compiler} {
265        gcc-4.0 -
266        gcc-4.2 -
267        llvm-gcc-4.2 -
268        clang -
269        apple-gcc-4.0 -
270        apple-gcc-4.2 {
271            return yes
272        }
273        default {
274            return no
275        }
276    }
277}
278
279# internal function to determine the default compiler
280proc portconfigure::configure_get_default_compiler {args} {
281    global os.platform os.major
282    set compiler ""
283    switch -exact "${os.platform} ${os.major}" {
284        "darwin 7" { set compiler gcc-3.3 }
285        "darwin 8" { set compiler gcc-4.0 }
286        "darwin 9" { set compiler gcc-4.0 }
287        "darwin 10" { set compiler gcc-4.2 }
288        default { set compiler gcc }
289    }
290    return $compiler
291}
292
293# internal function to find correct compilers
294proc portconfigure::configure_get_compiler {type} {
295    global configure.compiler prefix developer_dir
296    set ret ""
297    switch -exact ${configure.compiler} {
298        gcc {
299            switch -exact ${type} {
300                cc   { set ret /usr/bin/gcc }
301                objc { set ret /usr/bin/gcc }
302                cxx  { set ret /usr/bin/g++ }
303                cpp  { set ret /usr/bin/cpp }
304            }
305        }
306        gcc-3.3 {
307            switch -exact ${type} {
308                cc   { set ret /usr/bin/gcc-3.3 }
309                objc { set ret /usr/bin/gcc-3.3 }
310                cxx  { set ret /usr/bin/g++-3.3 }
311                cpp  { set ret /usr/bin/cpp-3.3 }
312            }
313        }
314        gcc-4.0 {
315            switch -exact ${type} {
316                cc   { set ret /usr/bin/gcc-4.0 }
317                objc { set ret /usr/bin/gcc-4.0 }
318                cxx  { set ret /usr/bin/g++-4.0 }
319                cpp  { set ret /usr/bin/cpp-4.0 }
320            }
321        }
322        gcc-4.2 {
323            switch -exact ${type} {
324                cc   { set ret /usr/bin/gcc-4.2 }
325                objc { set ret /usr/bin/gcc-4.2 }
326                cxx  { set ret /usr/bin/g++-4.2 }
327            }
328        }
329        llvm-gcc-4.2 {
330            switch -exact ${type} {
331                cc   { set ret ${developer_dir}/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 }
332                objc { set ret ${developer_dir}/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 }
333                cxx  { set ret ${developer_dir}/usr/llvm-gcc-4.2/bin/llvm-g++-4.2 }
334            }
335        }
336        clang {
337            switch -exact ${type} {
338                cc   { set ret ${developer_dir}/usr/bin/clang }
339                objc { set ret ${developer_dir}/usr/bin/clang }
340            }
341        }
342        apple-gcc-3.3 {
343            switch -exact ${type} {
344                cc  { set ret ${prefix}/bin/gcc-apple-3.3 }
345                cpp { set ret ${prefix}/bin/cpp-apple-3.3 }
346            }
347        }
348        apple-gcc-4.0 {
349            switch -exact ${type} {
350                cc   { set ret ${prefix}/bin/gcc-apple-4.0 }
351                objc { set ret ${prefix}/bin/gcc-apple-4.0 }
352                cpp  { set ret ${prefix}/bin/cpp-apple-4.0 }
353            }
354        }
355        apple-gcc-4.2 {
356            switch -exact ${type} {
357                cc   { set ret ${prefix}/bin/gcc-apple-4.2 }
358                objc { set ret ${prefix}/bin/gcc-apple-4.2 }
359                cpp  { set ret ${prefix}/bin/cpp-apple-4.2 }
360            }
361        }
362        macports-gcc-3.3 {
363            switch -exact ${type} {
364                cc  { set ret ${prefix}/bin/gcc-mp-3.3 }
365                cxx { set ret ${prefix}/bin/g++-mp-3.3 }
366                cpp { set ret ${prefix}/bin/cpp-mp-3.3 }
367            }
368        }
369        macports-gcc-3.4 {
370            switch -exact ${type} {
371                cc  { set ret ${prefix}/bin/gcc-mp-3.4 }
372                cxx { set ret ${prefix}/bin/g++-mp-3.4 }
373                cpp { set ret ${prefix}/bin/cpp-mp-3.4 }
374            }
375        }
376        macports-gcc-4.0 {
377            switch -exact ${type} {
378                cc   { set ret ${prefix}/bin/gcc-mp-4.0 }
379                objc { set ret ${prefix}/bin/gcc-mp-4.0 }
380                cxx  { set ret ${prefix}/bin/g++-mp-4.0 }
381                cpp  { set ret ${prefix}/bin/cpp-mp-4.0 }
382                fc   { set ret ${prefix}/bin/gfortran-mp-4.0 }
383                f77  { set ret ${prefix}/bin/gfortran-mp-4.0 }
384                f90  { set ret ${prefix}/bin/gfortran-mp-4.0 }
385            }
386        }
387        macports-gcc-4.1 {
388            switch -exact ${type} {
389                cc   { set ret ${prefix}/bin/gcc-mp-4.1 }
390                objc { set ret ${prefix}/bin/gcc-mp-4.1 }
391                cxx  { set ret ${prefix}/bin/g++-mp-4.1 }
392                cpp  { set ret ${prefix}/bin/cpp-mp-4.1 }
393                fc   { set ret ${prefix}/bin/gfortran-mp-4.1 }
394                f77  { set ret ${prefix}/bin/gfortran-mp-4.1 }
395                f90  { set ret ${prefix}/bin/gfortran-mp-4.1 }
396            }
397        }
398        macports-gcc-4.2 {
399            switch -exact ${type} {
400                cc   { set ret ${prefix}/bin/gcc-mp-4.2 }
401                objc { set ret ${prefix}/bin/gcc-mp-4.2 }
402                cxx  { set ret ${prefix}/bin/g++-mp-4.2 }
403                cpp  { set ret ${prefix}/bin/cpp-mp-4.2 }
404                fc   { set ret ${prefix}/bin/gfortran-mp-4.2 }
405                f77  { set ret ${prefix}/bin/gfortran-mp-4.2 }
406                f90  { set ret ${prefix}/bin/gfortran-mp-4.2 }
407            }
408        }
409        macports-gcc-4.3 {
410            switch -exact ${type} {
411                cc   { set ret ${prefix}/bin/gcc-mp-4.3 }
412                objc { set ret ${prefix}/bin/gcc-mp-4.3 }
413                cxx  { set ret ${prefix}/bin/g++-mp-4.3 }
414                cpp  { set ret ${prefix}/bin/cpp-mp-4.3 }
415                fc   { set ret ${prefix}/bin/gfortran-mp-4.3 }
416                f77  { set ret ${prefix}/bin/gfortran-mp-4.3 }
417                f90  { set ret ${prefix}/bin/gfortran-mp-4.3 }
418            }
419        }
420        macports-gcc-4.4 {
421            switch -exact ${type} {
422                cc   { set ret ${prefix}/bin/gcc-mp-4.4 }
423                objc { set ret ${prefix}/bin/gcc-mp-4.4 }
424                cxx  { set ret ${prefix}/bin/g++-mp-4.4 }
425                cpp  { set ret ${prefix}/bin/cpp-mp-4.4 }
426                fc   { set ret ${prefix}/bin/gfortran-mp-4.4 }
427                f77  { set ret ${prefix}/bin/gfortran-mp-4.4 }
428                f90  { set ret ${prefix}/bin/gfortran-mp-4.4 }
429            }
430        }
431    }
432    return $ret
433}
434
435proc portconfigure::configure_main {args} {
436    global [info globals]
437    global worksrcpath use_configure use_autoreconf use_autoconf use_automake use_xmkmf
438    global configure.env configure.pipe configure.cflags configure.cppflags configure.cxxflags configure.objcflags configure.ldflags configure.libs configure.fflags configure.f90flags configure.fcflags configure.classpath
439    global configure.perl configure.python configure.ruby configure.install configure.awk configure.bison configure.pkg_config configure.pkg_config_path
440    global configure.ccache configure.distcc configure.cc configure.cxx configure.cpp configure.objc configure.f77 configure.f90 configure.fc configure.javac
441   
442    if {[tbool use_autoreconf]} {
443        if {[catch {command_exec autoreconf} result]} {
444            return -code error "[format [msgcat::mc "%s failure: %s"] autoreconf $result]"
445        }
446    }
447   
448    if {[tbool use_automake]} {
449        if {[catch {command_exec automake} result]} {
450            return -code error "[format [msgcat::mc "%s failure: %s"] automake $result]"
451        }
452    }
453   
454    if {[tbool use_autoconf]} {
455        if {[catch {command_exec autoconf} result]} {
456            return -code error "[format [msgcat::mc "%s failure: %s"] autoconf $result]"
457        }
458    }
459
460    if {[tbool use_xmkmf]} {
461        if {[catch {command_exec xmkmf} result]} {
462            return -code error "[format [msgcat::mc "%s failure: %s"] xmkmf $result]"
463        } else {
464            # XXX should probably use make command abstraction but we know that
465            # X11 will already set things up so that "make Makefiles" always works.
466            system "cd ${worksrcpath} && make Makefiles"
467        }
468    } elseif {[tbool use_configure]} {
469        # Merge (ld|c|cpp|cxx)flags into the environment variable.
470        parse_environment configure
471
472        # Set pre-compiler filter to use (ccache/distcc), if any.
473        if {[tbool configure.ccache] && [tbool configure.distcc]} {
474            set filter "ccache "
475            append_list_to_environment_value configure "CCACHE_PREFIX" "distcc"
476        } elseif {[tbool configure.ccache]} {
477            set filter "ccache "
478        } elseif {[tbool configure.distcc]} {
479            set filter "distcc "
480        } else {
481            set filter ""
482        }
483       
484        # Set flags controlling the kind of compiler output.
485        if {[tbool configure.pipe]} {
486            set output "-pipe "
487        } else {
488            set output ""
489        }
490
491        # Append configure flags.
492        append_list_to_environment_value configure "CC" ${filter}${configure.cc}
493        append_list_to_environment_value configure "CPP" ${filter}${configure.cpp}
494        append_list_to_environment_value configure "CXX" ${filter}${configure.cxx}
495        append_list_to_environment_value configure "OBJC" ${filter}${configure.objc}
496        append_list_to_environment_value configure "FC" ${configure.fc}
497        append_list_to_environment_value configure "F77" ${configure.f77}
498        append_list_to_environment_value configure "F90" ${configure.f90}
499        append_list_to_environment_value configure "JAVAC" ${configure.javac}
500        append_list_to_environment_value configure "CFLAGS" ${output}${configure.cflags}
501        append_list_to_environment_value configure "CPPFLAGS" ${configure.cppflags}
502        append_list_to_environment_value configure "CXXFLAGS" ${output}${configure.cxxflags}
503        append_list_to_environment_value configure "OBJCFLAGS" ${output}${configure.objcflags}
504        append_list_to_environment_value configure "LDFLAGS" ${configure.ldflags}
505        append_list_to_environment_value configure "LIBS" ${configure.libs}
506        append_list_to_environment_value configure "FFLAGS" ${output}${configure.fflags}
507        append_list_to_environment_value configure "F90FLAGS" ${output}${configure.f90flags}
508        append_list_to_environment_value configure "FCFLAGS" ${output}${configure.fcflags}
509        append_list_to_environment_value configure "CLASSPATH" ${configure.classpath}
510        append_list_to_environment_value configure "PERL" ${configure.perl}
511        append_list_to_environment_value configure "PYTHON" ${configure.python}
512        append_list_to_environment_value configure "RUBY" ${configure.ruby}
513        append_list_to_environment_value configure "INSTALL" ${configure.install}
514        append_list_to_environment_value configure "AWK" ${configure.awk}
515        append_list_to_environment_value configure "BISON" ${configure.bison}
516        append_list_to_environment_value configure "PKG_CONFIG" ${configure.pkg_config}
517        append_list_to_environment_value configure "PKG_CONFIG_PATH" ${configure.pkg_config_path}
518
519        # Execute the command (with the new environment).
520        if {[catch {command_exec configure} result]} {
521            return -code error "[format [msgcat::mc "%s failure: %s"] configure $result]"
522        }
523    }
524    return 0
525}
Note: See TracBrowser for help on using the repository browser.