'port build' different than 'make all'

View: New views
4 Messages — Rating Filter:   Alert me  

'port build' different than 'make all'

by jcharum :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I have altered the GHC Portfile to have no build section (and no pre-build or post-build sections) and to set (amongst other things):

build.cmd make
build.type gnu
build.args ""
build.target all

(1)
$ sudo port configure
$ cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_ghc/work/ghc-6.6.1
$ sudo make all

(2)
$ sudo port configure
$ sudo port build


I think that running (1) and (2) should be equivalent.  However, when I do this, I do not get the same object files.  Namely, when I install with (1), my GHC works (at least for trivial examples).  When I install with (2), I get weird errors (that I can describe further if requested).  I have built GHC about 25 times (at ~4 hours/build) to narrow it down to this.  Can someone shed some light on why there is any difference?  I think it must be somewhere in my environment, but I can't figure out what - I have at least set the PATHs to be the same.  I am new to Portfile development and was interested in helping to get a good build for GHC 6.6.1 on Leopard.

If any more information is needed, I will happily provide it.  Thanks in advance for any help at all.

Re: 'port build' different than 'make all'

by Ryan Schmidt-24 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Jan 3, 2008, at 18:48, jcharum wrote:

> I have altered the GHC Portfile to have no build section (and no  
> pre-build or
> post-build sections) and to set (amongst other things):
>
> build.cmd make
> build.type gnu
> build.args ""
> build.target all
>
> (1)
> $ sudo port configure
> $ cd
> /opt/local/var/macports/build/
> _opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_
> ghc/work/ghc-6.6.1
> $ sudo make all
>
> (2)
> $ sudo port configure
> $ sudo port build
>
>
> I think that running (1) and (2) should be equivalent.  However,  
> when I do
> this, I do not get the same object files.  Namely, when I install  
> with (1),
> my GHC works (at least for trivial examples).  When I install with  
> (2), I
> get weird errors (that I can describe further if requested).  I  
> have built
> GHC about 25 times (at ~4 hours/build) to narrow it down to this.  Can
> someone shed some light on why there is any difference?  I think it  
> must be
> somewhere in my environment, but I can't figure out what - I have  
> at least
> set the PATHs to be the same.  I am new to Portfile development and  
> was
> interested in helping to get a good build for GHC 6.6.1 on Leopard.
>
> If any more information is needed, I will happily provide it.  
> Thanks in
> advance for any help at all.

I am not really familiar with ghc, but I can tell you that MacPorts  
builds in a modified environment. Any PATH you have set in your  
terminal, for example, is ignored, and MacPorts uses its own PATH. A  
slew of other environment variables are also set by MacPorts. I can't  
name them all off the top of my head but you can peek through the  
sources in src/port1.0 such as portconfigure.tcl and portbuild.tcl.

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo/macports-dev

Re: 'port build' different than 'make all'

by jcharum :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ryan Schmidt-24 wrote:
I am not really familiar with ghc, but I can tell you that MacPorts  
builds in a modified environment. Any PATH you have set in your  
terminal, for example, is ignored, and MacPorts uses its own PATH. A  
slew of other environment variables are also set by MacPorts. I can't  
name them all off the top of my head but you can peek through the  
sources in src/port1.0 such as portconfigure.tcl and portbuild.tcl.
I see.  I actually built with the PATH that the configure script reports during the MacPorts configure phase, so I think I got that part right unless the PATH is different for the build phase(!).  Thanks for the pointer to the sources to see the rest of the environment.  I will investigate to see if I can reproduce the MacPorts build output.

Re: 'port build' different than 'make all'

by Markus Weissmann-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 4 Jan 2008, at 03:59, jcharum wrote:

> Ryan Schmidt-24 wrote:
>>
>> I am not really familiar with ghc, but I can tell you that MacPorts
>> builds in a modified environment. Any PATH you have set in your
>> terminal, for example, is ignored, and MacPorts uses its own PATH. A
>> slew of other environment variables are also set by MacPorts. I can't
>> name them all off the top of my head but you can peek through the
>> sources in src/port1.0 such as portconfigure.tcl and portbuild.tcl.
>>
>
> I see.  I actually built with the PATH that the configure script  
> reports
> during the MacPorts configure phase, so I think I got that part  
> right unless
> the PATH is different for the build phase(!).  Thanks for the  
> pointer to the
> sources to see the rest of the environment.  I will investigate to  
> see if I
> can reproduce the MacPorts build output.


if you have a version of port < 1.6 installed: We removed two  
environment variables that caused build troubles on 10.5 (originally  
for prebinding).


Regards,

-Markus

--
Dipl. Inf. (FH) Markus W. Weissmann
http://www.macports.org/
http://www.mweissmann.de/

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo/macports-dev