More feedback from the developer:

> Supposing that a profile.dat is available in csl/generated-c (as it is when 
> one has fetched from subversion, and it will be in some future snapshots, but 
> is NOT in the files you unpack from the .tar file in the mac snapshot 
> directory unless you may yourself a private very very new one to play with). 
> then the full recipe to build everything is
>  ./configure --with-csl; ./configure --with-psl; make
> 
> That sets up to build all necessary components and regenerate all the things 
> that normally need regenerating.
> 
> profile.dat CAN be created from scratch but you will not want to do that.
> 

Is it possible to issue more than one configure statement before make in a port 
file?


Sent from my iPhone

> On Sep 18, 2018, at 8:32 AM, Ryan Schmidt <ryandes...@macports.org> wrote:
> 
> 
> 
>> On Sep 18, 2018, at 08:25, Mark Brethen wrote:
>> 
>> Yep, here is his response:
>> 
>>> Aha - when I look at your macports log you do not seem to be fetching 
>>> Reduce from subversion, you are fetching a source .tar file for it. Well 
>>> that has not up to now contained profile.dat because one can regenerate 
>>> what is needed by going (in a build directory where csl.img etc get created)
>>> make profile
>>> which first builds bootstrapreduce (twice over probably so that forward 
>>> refereces get optimised), then runs all the Reduce test scripts using it 
>>> (and because that is in profiling mod it is slower than a regular test 
>>> run). Subsequent to that "make c-code" will use the new profile info to 
>>> recreate generated-c/u*.cpp etc. Those steps make the file in 
>>> cslbuild/generated-c and so the copy of a prebuilt set from 
>>> csl/gene4rated-c would be unnecessary. So this is sort of rational but is a 
>>> consequence of the difference between the way macports is building stuff 
>>> and my expectations! I think I have just changed things so that maybe 
>>> csl/generated-c/profile.dat should get included in the tar source file - 
>>> making it yet bigger! 
>> 
>> I explained that only a single make command is issued when a port is 
>> installed (not counting subports). In this particular case those steps he 
>> mentions would need to be in the top-level makefile, correct?
> 
> The MacPorts defaults only run a single "make all" in the build phase, that's 
> correct. If you need to run multiple make commands in different directories, 
> you can do that in pre-build or post-build blocks, such as:
> 
> pre-build {
>    system -W ${build.dir} "${build.cmd} profile"
> }
> 
> Or if all of the make targets will be run in the same directory, you can even 
> more simply just list all the targets in build.target:
> 
> build.target profile c-code all
> 
> Normally MacPorts will build the targets in parallel, but since you already 
> disable parallel building for this port, they'll be done sequentially.
> 
> If target all requires that target c-code be run first, and if target c-code 
> require that target profile be run first, those dependencies should be 
> declared by the author in the Makefile so that it happens automatically. 
> Until they do that, you can run the targets manually as above.
> 
> 

Reply via email to