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?


> -# 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}? 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.


> -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? Which was presumably also 
only created by MacPorts in the first place because of the above changes in 
variable definitions?




_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to