I only need to set it during build and destroot. How about setting the variable in the pre-build and pre-destroot phases?
Mark Brethen [email protected] > On Oct 4, 2018, at 12:09 PM, Ryan Schmidt <[email protected]> wrote: > > > > On Oct 4, 2018, at 12:05, Mark Brethen wrote: > >> On Oct 4, 2018, at 11:57 AM, Ryan Schmidt wrote: >> >>> On Oct 4, 2018, at 11:55, Mark Brethen wrote: >>> >>>> There’s just one glitch, the name of the build directory is determined by >>>> >>>> BUILD = $(shell ../../scripts/findhost.sh $(shell src/config.guess)) >>>> >>>> I can set it after the extract phase like so >>>> >>>> post-extract { >>>> set builddir [exec ${worksrcpath}/scripts/findhost.sh [exec >>>> ${worksrcpath}/config.guess]] >>>> configure.dir ${worksrcdir}/${builddir} >>>> } >>>> >>>> but then configure.dir isn't global for the config/build phases, is it? >>> >>> That's correct. >>> >>> Can you fix the build system so that it uses a predictable build directory >>> name (such as "build"), and then use that name in the portfile? >> >> I’d have to patch makefile and config.ac, at least. > > Another option could be to patch findhost.sh. > >> Can set variables be exported to global? > > Well I wasn't completely accurate. If you set configure.dir inside > post-extract, it is set for all phases that run after that in this invocation > of the port command. But you don't know for certain that the configure phase > will run in this invocation of the port command. The user might run "sudo > port extract yourport" (which in your example will set configure.dir) and > then later run "sudo port configure yourport" (and configure.dir will be back > to its default value). So don't set options in one phase and expect them to > be available in another phase. >
