Hi Paul,

Thanks for the suggestion, I will check with sfw cteam first. From my 
point of view, once the second build of ocaml becomes redundant, we can 
file a RFE to fix that. Then it's not a problem any more.

Regards,
Bill

Paul Cunningham ???:

>Hi Bill,
>
>Yes I completely understand why, at the moment, you have to build ocaml 
>twice.
>
>It all comes down to the fact that at present ocaml (eg. SUNWocaml) is 
>*not* on the build servers. But once you have integrated these packages 
>and the build server have been updated to the Nevada build with these 
>pkgs in, SUNWocaml will be there - hence at that point the second build 
>of ocaml is redundant (I think - correct me if I am wrong in thinking that).
>
>So why not just have a "Flag-Day" that says once you have integrated 
>your stuff into the sfwnv-consolidation then "SUNWocaml must be 
>installed" on *all* sfwnv build servers. While you are developing it 
>though, you will also need it on the build server you use.
>
>But I expect the sfwnv gatekeeper will have some comments on what is the 
>best way to do this - so seek advice there.
>
>Sorry, I'm not really trying to make your job integrating this hard.
>Paul :-)
>
>bill yan wrote:
>  
>
>>That would be greate if SUNWocaml can be pre-installed on build server.
>>
>>Currently, We have to bulid ocaml two times. one is for the SUNWocaml 
>>package and the other is for the compliation of lablgtk and unison. This 
>>is because during the compilation of lablgtk and unison , some ocaml 
>>scripts which are interpreted by ocamlrun program are needed.
>>
>>For example,  in ocamlc script, the first line is the location of 
>>interpreter, as follows:
>>
>>#!/usr/bin/ocamlrun
>>
>>
>>For the ocamlc to be built into package SUNWocaml, the header should be:
>>
>>#!/usr/bin/ocamlrun
>>
>>
>>But with the header above, ocamlc can't be run during the compilation of 
>>lablgtk and unison, because at that time, the path of ocamlrun is 
>>$ROOT/usr/bin/ocamlrun(proto area), not /usr/bin/ocamlrun . So we need 
>>to compile another ocamlc with the header $ROOT/usr/bin/ocamlrun(proto 
>>area) to make sure it can be run during the compilatioin of lablgtk and 
>>unison. 
>>
>>
>>That's why we compile ocaml twice.  We really appreciate that if you 
>>could advise us the better solution based on the current situation.
>>
>>Regards,
>>Bill
>>
>>
>>Paul Cunningham ???:
>>    
>>
>>>So finally ...
>>>
>>>I still don't see why you need to build and install the 'ocaml compiler' 
>>>twice! (and two copies of the same source tarball)
>>>
>>>   1. built to be delivered as SUNWocaml
>>>   2. built as a temp tool to build lablgtk & unison.
>>>
>>>Just seems like a waste of machine resources to me.
>>>
>>>I would have thought it was best to have SUNWocaml installed on build 
>>>boxes and it become a sfwnv build tool requirement. Then it's there when 
>>>it comes to build unison & lablgtk.
>>>
>>>Is the sfwnv gatekeeper/c-team happy with you doing this pkg build twice 
>>>per ws build? If so you can ignore my objections to this :-)
>>>
>>>Paul
>>>
>>>Liu Xin wrote:
>>>... cut ...
>>>  
>>>      
>>>
>>>>Paul Cunningham:
>>>>    
>>>>        
>>>>
>>>... cut ...
>>>  
>>>      
>>>
>>>>>Liu Xin wrote:
>>>>>  
>>>>>      
>>>>>          
>>>>>
>>>>>>Please help review the fix of CR6689922 CR6739050 and CR6739053. Any 
>>>>>>comments are welcome. Thanks.
>>>>>>
>>>>>>Webrev is at:
>>>>>>http://cr.opensolaris.org/~liuxin/ocaml_lablgtk_unison/ 
>>>>>><http://cr.opensolaris.org/%7Eliuxin/ocaml_lablgtk_unison/>
>>>>>>
>>>>>>        
>>>>>>            
>>>>>>
>>>... cut ....
>>>
>>>  
>>>      
>>>
>>>>>=== Start of Comments ====
>>>>>
>>>>>1. usr/src/cmd/Makefile
>>>>>    Shouldn't unison have a build dependency on
>>>>>    the ocaml compiler build?
>>>>>
>>>>>    For lablgtk see comment (5)
>>>>>  
>>>>>      
>>>>>          
>>>>>
>>>>The unison will use the ocaml compliler that installed in the temporary 
>>>>dir by lablgtk.
>>>>We can not use the one that was built by ocaml/Makefile.sfw,
>>>>please see comment (3)
>>>>    
>>>>        
>>>>
>>>>>2. usr/src/cmd/unison/Makefile.sfw
>>>>>    Why are you moving stuff about that belongs to
>>>>>    ocaml and lablgtk in this Makefile (lines 48-52),
>>>>>    shouldn't that have been done in the builds of
>>>>>    those packages at the appropriate time?
>>>>>  
>>>>>      
>>>>>          
>>>>>
>>>>please see comment (3) first
>>>>
>>>>There are two ocaml now.One was built by ocaml/Makefile.sfw to be 
>>>>installed into the proto area, the other installed in the temporary dir 
>>>>by lablgtk/Makefile.sfw for compling.
>>>>The unison will use the ocaml compliler that installed in the temporary 
>>>>dir by lablgtk/Makefile.sfw.(temporary 
>>>>dir=/proto/root_sparc/usr/share/ocaml/)
>>>>But the lablgtk will be put under the ocaml dir that was built by 
>>>>ocaml/Makefile.sfw in order to be installed into the right place.(the 
>>>>ocaml dir=/proto/root_sparc/usr)
>>>>The unison also use the lablgtk ,so copy the lablgtk files to the 
>>>>temporary dir for compling.
>>>>    
>>>>        
>>>>
>>>  
>>>      
>>>
>>>>>3. usr/src/cmd/ocaml/Makefile.sfw
>>>>>    Why are you 'configure'ing this twice? My guess
>>>>>    is that you somehow want to be able to use the
>>>>>    ocaml you put into the proto area to build
>>>>>    unison - but the proto area should have the real
>>>>>    SUNWocaml files in it.
>>>>>
>>>>>    Use the default 'configure --prefix=..' value defined
>>>>>    in Makefile.master (and any other defaults). You could
>>>>>    also use the CONFIGURE_OPTIONS method, eg.
>>>>>    './configure $(CONFIGURE_OPTIONS)' see other recent
>>>>>    pkg integrations.
>>>>>  
>>>>>      
>>>>>          
>>>>>
>>>>The ocaml built by ocaml/Makefile.sfw will generate several binary files 
>>>>to install.
>>>>such as
>>>>                ocamlc
>>>>                ocamlcp
>>>>                ocamlopt
>>>>                ocamlrun
>>>>                ......
>>>>
>>>>Most of them need "ocamlrun" to run.They will be put in the proto area 
>>>>as the the real SUNWocaml files
>>>>the 'configure --prefix=..' dose not only define the PATH where to 
>>>>install them,but also defines where is the "ocamlrun" to run them.
>>>>For example
>>>>if use the 'configure --prefix=/usr',then build the source to generate 
>>>>ocamlc ...
>>>>========================
>>>>#strings ocamlc | more
>>>>#!/usr/bin/ocamlrun
>>>>caml_alloc_dummy
>>>>......
>>>>
>>>>========================
>>>>
>>>>if use the 'configure --prefix=/$(ROOT)/usr' ,then build the source to 
>>>>generate ocamlc ...
>>>>========================
>>>>#echo $ROOT
>>>>/builds/.../proto/root_sparc
>>>>#
>>>>#strings ocamlc | more
>>>>#!/builds/.../proto/root_sparc/usr/bin/ocamlrun
>>>>caml_alloc_dummy
>>>>......
>>>>========================
>>>>
>>>>So I use the first 'configure --prefix=/usr' to defines where is the 
>>>>"ocamlrun" in the binary files (#!/usr/bin/ocamlrun) and build the 
>>>>source to generate them,
>>>>then use the second 'configure --prefix=$(ROOT)/usr' to define the PATH 
>>>>in the unison-2.27.57/makefile to install them to the proto area.
>>>>
>>>>Since the ocamlc and other binary files with '#!/usr/bin/ocamlrun' in 
>>>>them can not run when they are in the proto area ($ROOT is not "/"),
>>>>we have to install them again when labgtk and unison need.
>>>>
>>>>There are two ocaml now.
>>>>One was built by ocaml/Makefile.sfw to be installed into the proto area,
>>>>the other installed in the temporary dir by lablgtk/Makefile.sfw for 
>>>>compling.
>>>>Unison will use the one built by lablgtk/Makefile.sfw.
>>>>
>>>>
>>>>    
>>>>        
>>>>
>>>>>4. usr/src/cmd/ocaml/install-sfw
>>>>>    Add 'line space' after line 45 ('make install' line).
>>>>>    Is this 'make install' actually installing it into the
>>>>>    proto area (eg. no DESTDIR= or equivalent)?
>>>>>
>>>>>  
>>>>>      
>>>>>          
>>>>>
>>>>Yes, the install path will be defined by the "configue" in the 
>>>>Makefile.sfw .
>>>>'make install' will use the makefile that is generated by the "configue".
>>>>    
>>>>        
>>>>
>>>.. cut ..
>>>
>>>  
>>>      
>>>
>>>>>5. usr/src/cmd/lablgtk/Makefile.sfw
>>>>>    Why are you building ocaml again in this lablgtk
>>>>>    Makefile ? Shouldn't you be using the one that was built
>>>>>    by ocaml/Makefile.sfw ?
>>>>>
>>>>>  
>>>>>      
>>>>>          
>>>>>
>>>>please see comment (3)
>>>>    
>>>>        
>>>>
>>>... cut ...
>>>
>>>
>>>  
>>>      
>>>
>>>>>8. usr/src/cmd/lablgtk/ocaml-3.10.2.tar.gz
>>>>>      & usr/src/cmd/ocaml/ocaml-3.10.2.tar.gz
>>>>>    Why put this source tarball twice in gate?
>>>>>
>>>>>  
>>>>>      
>>>>>          
>>>>>
>>>>please see comment (3)
>>>>    
>>>>        
>>>>
>>>... cut ...
>>>
>>>  
>>>      
>>>
>>>>>=== End of Comments ======
>>>>>      
>>>>>          
>>>>>
>>>  
>>>      
>>>
>
>  
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.opensolaris.org/pipermail/sfwnv-discuss/attachments/20080910/3686401f/attachment.html>

Reply via email to