On Nov 27, 2008, at 11:05, Ian Grant wrote:
I am trying to build a port which has a more complicated build
procedure than just 'make xxx' I have to first build and install
the main package and then go back into several subdirectories of
the build directory and build and install plugins.
Can anyone point me to an example port which does something like
this? I guess I need to add a post-destroot { } section to do
this. But how to change the working directory and run the make. Do
I just use the tcl 'cd' and 'exec' commands, or is there some
sophisticated error handling that I need to do?
Actually if you're wanting to "make" additional things, then that
should happen in post-build, not post-destroot. Destroot is only for
moving stuff that has already been built into the staging area. So
maybe you need a post-build to build the plugins, and also a post-
destroot to stage them. For the post-build, you would probably just
use the tcl "system" command. You may not use the tcl "cd" command;
it is deprecated and will not be in MacPorts 1.7.0 and later. You
might do something like this:
set plugins {foo bar baz}
post-build {
foreach plugin ${plugins} {
system "cd ${worksrcpath}/plugins/${plugin} && make"
}
}
post-destroot {
foreach plugin ${plugins} {
system "cd ${worksrcpath}/plugins/${plugin} && make install"
}
}
Or you might consider fixing their existing Makefile so that it
installs the plugins, and contributing that change back to the
authors of the software. Then the Portfile becomes simpler.
Just being able to read the default build { } script would be a
good start. Where is that kept?
That's probably a lot more complicated than you need but it's here:
http://trac.macports.org/browser/trunk/base/src/port1.0/portbuild.tcl
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev