On Jul 6, 2011, at 00:21, Ryan Schmidt wrote:
> On Jul 6, 2011, at 01:51, [email protected] wrote:
>
>> Revision: 80177
>> http://trac.macports.org/changeset/80177
>> Author: [email protected]
>> Date: 2011-07-05 23:51:22 -0700 (Tue, 05 Jul 2011)
>> Log Message:
>> -----------
>> mercury: Update version to 11.01 for x86_64 support, clang build fixes
>
>
>> worksrcdir ${name}-${version}
>> -post-extract { file rename \
>> - ${workpath}/${name}-compiler-${version} \
>> - ${workpath}/${name}-${version}
>> - }
>>
>> -post-patch { reinplace \
>> - s|\$(INSTALL_ELISP_DIR)|${prefix}/lib/${name}/elisp| \
>> - ${worksrcpath}/Mmakefile
>> - }
>> +depends_lib \
>> + port:readline
>>
>> -depends_lib port:readline
>> +post-extract {
>> + file rename ${workpath}/${name}-compiler-${version}
>> ${workpath}/${name}-${version}
>> +}
>
> Why rename it in post-extract? Why not just use it with its existing name, by
> removing the worksrcdir definition a few lines above?
Odd, yeah... I wonder why it was setup like that. I just did formatting
changes there and didn't really look at what that part was doing.
It should work fine just using worksrcdir. I'll update it.
>> -# Note that most of the building actually takes place in the
>> -# destroot phase. This is a consequence of the mercury build
>> -# scheme.
>> +# mercury's bootstrapping doesn't work with DESTDIR, so do it an ugly way...
>> +set real_prefix ${prefix}
>> +prefix ${destroot}${prefix}
>> +destroot.destdir ""
>
> Oh my that's ugly. I'm not even sure I really understand why this works. Is
> this just so that ./configure gets called with --prefix=${destroot}${prefix}
> instead of --prefix=${prefix}?
Yes.
> If so, wouldn't that be the simpler thing to do, rather than redefining
> existing variables, which is sure to confuse other portfile readers, and
> MacPorts itself (see below)?
>
>
>> -build {
>> - system "cd ${worksrcpath} && make
>> INSTALL_PREFIX=${destroot}${prefix}"
>> - }
>> +post-destroot {
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.memprof/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.prof/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.prof/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.prof/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.prof/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.prof/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.prof/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.prof/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.prof/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.prof/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.prof/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.prof/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.prof/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.prof/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.prof/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/hlc.gc.trseg/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.par.gc/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/hlc.par.gc/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.par.gc/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/hlc.par.gc/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.par.gc/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/hlc.par.gc/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.par.gc/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/hlc.par.gc/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.par.gc/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/hlc.par.gc/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.par.gc/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/hlc.par.gc/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/hlc.par.gc/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/hlc.par.gc/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/libgc.dylib
>> ${prefix}/lib/mercury/lib/libgc.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/libgc_prof.dylib
>> ${prefix}/lib/mercury/lib/libgc_prof.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/libpar_gc.dylib
>> ${prefix}/lib/mercury/lib/libpar_gc.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/none.gc/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/none.gc/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/none.gc/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/none.gc/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/none.gc/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/none.gc/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/none.gc/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.debug/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/none.gc.debug/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.debug/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/none.gc.debug/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.debug/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/none.gc.debug/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.debug/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/none.gc.debug/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.debug/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/none.gc.debug/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.debug/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/none.gc.debug/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.debug/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/none.gc.debug/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.decldebug/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/none.gc.decldebug/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.decldebug/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/none.gc.decldebug/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.decldebug/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/none.gc.decldebug/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.decldebug/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/none.gc.decldebug/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.decldebug/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/none.gc.decldebug/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.decldebug/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/none.gc.decldebug/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.decldebug/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/none.gc.decldebug/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.prof/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/none.gc.prof/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.prof/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/none.gc.prof/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.prof/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/none.gc.prof/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.prof/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/none.gc.prof/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.prof/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/none.gc.prof/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.prof/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/none.gc.prof/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.prof/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/none.gc.prof/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.profdeep/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/none.gc.profdeep/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.profdeep/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/none.gc.profdeep/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.profdeep/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/none.gc.profdeep/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.profdeep/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/none.gc.profdeep/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.profdeep/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/none.gc.profdeep/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.profdeep/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/none.gc.profdeep/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.gc.profdeep/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/none.gc.profdeep/libmer_trace.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.par.gc/libmer_browser.dylib
>> ${prefix}/lib/mercury/lib/none.par.gc/libmer_browser.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.par.gc/libmer_eventspec.dylib
>> ${prefix}/lib/mercury/lib/none.par.gc/libmer_eventspec.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.par.gc/libmer_mdbcomp.dylib
>> ${prefix}/lib/mercury/lib/none.par.gc/libmer_mdbcomp.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.par.gc/libmer_rt.dylib
>> ${prefix}/lib/mercury/lib/none.par.gc/libmer_rt.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.par.gc/libmer_ssdb.dylib
>> ${prefix}/lib/mercury/lib/none.par.gc/libmer_ssdb.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.par.gc/libmer_std.dylib
>> ${prefix}/lib/mercury/lib/none.par.gc/libmer_std.dylib"
>> + system "install_name_tool -id
>> ${real_prefix}/lib/mercury/lib/none.par.gc/libmer_trace.dylib
>> ${prefix}/lib/mercury/lib/none.par.gc/libmer_trace.dylib"
>
> Oh my. Surely a foreach loop would be a shorter way to do this.
Probably, but it takes about 5-10 hours to build, and I didn't want to make a
typo I'd regret.
>> -destroot {
>> - system "cd ${worksrcpath} && make
>> INSTALL_PREFIX=${destroot}${prefix} \
>> -
>> MERCURY_COMPILER=${worksrcpath}/compiler/mercury_compile install"
>> - }
>> + file delete ${prefix}/var/macports/build
>> +}
>
> Which, because of your above changes in variable definitions, is actually
> deleting ${destroot}${prefix}/var/macports/build?
Yes. Like the comment above indicates, their bootstrapping is stupid, ugly,
and wrong.
> Which was presumably also only created by MacPorts in the first place because
> of the above changes in variable definitions?
No, it was created by their stupid build system during 'make install' ...
believe me, it's not sane. I've been fighting it for 3 days now (mainly
because of the nasty build time. I've reported the issues upstream, and
hopefully the next version will play nicer.
--Jeremy
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev