I figured that I might not get a chance to look at this later this 
weekend and
decided to pass on a few hand of poker so I took a look at your webrev.  I
didn't go through this in the detail I might have liked, but it's 
getting late.
Here are some comments.

    -Norm

usr/src/lib/ilmbase/Makefile.sfw
    Line 34:
        "all" target should be building the acutal bits and perhaps 
split into
        32/64 bit targets.
            (cd $(VERS) ; $(CCSMAKE))
            (cd $(VERS)-64 ; $(CCSMAKE))
    Line 41:
        If you plan on using the component's install target, you might use
            INSTALL="$(INSTALL_PROTO)", which guarantee files install in the
            proto area and will post process them as they are 
installed.  On the
            otherhand, if you use an install-xxx script, it doesn't matter.
    Line 42:
        You should quote the values in setting the environment variables
                CC="$(CC)" CXX="$(CCC)"
    Lines 43:
        You shouldn't need to specify these libraries, they should be in the
        default set when using CC to link C++ programs and libraries
    Line 44:
        Presumably you will want to set --prefix=$(CFGREFIX) and
        --mandir=$(CFGMAN)
    Lines 45:
        You don't need to "cd .." in your subshell, leaving the subshell 
() puts
        you right back where you started.  Also, this doens't belong 
here.  It
        belongs as part of the "all" target.
    Line 46:
        You should use $(SH), $(KSH93) or whatever shell this was 
written for,
        but not $(SHELL).  Also this doesn't belong here.  It belongs as 
part
        the "all" target
    Line 48: see line 41
    Line 49: see line 42, but use the 64-bit variants.
            CC="$(CC64)" CXX="$(CCC64)"
    Line 50: use the predefined macros from Makefile.master, ...
            CXXFLAGS="$(CCFLAGS64)"
    Lines 51-54: see lines 43-46
    Lines 56-76:
        You shouldn't need any of these patches if you define
            CXXLINK="$(CCC) -norunpath"
        in the calling environment to configure.
            CXXLINK="$(CCC64) -norunpath"
        for 64-bit
       
usr/src/lib/ilmbase/install-ilmbase
usr/src/lib/ilmbase/install-ilmbase-64
    pulling bits out of .libs directories can be dangerous because 
libtool has
    a final relink that it does prior to installation.  You might seriously
    consider just using the (cd $(VER) ; make install) approach to 
installation
    instead of ($(SH) ./install-XXX).
    For the 64 bit support you may have to do something like
        (cd $(VER)-64 ; make DESTDIR=$(SRC)/.../$(VER)-64/proto install ; \
            $(SH) ../install-XXX-64)
    to get the bits linked properly and pick out what you want to put in the
    proto area.
    I notice that you are installing writable files in /usr, don't  
There is no
    reason for them to be 644 or 755 when 444 and 555 is sufficient.
    If you "make install", you will want to use proto-fix to make sure 
that the
    permissions match the packaging in your makefile.sfw
        $(SRC)/tools/protofix --pkg $$pkg --perm

usr/src/lib/ilmbase/ltmain.sh
    Why the new ltmain?
   
usr/src/lib/ilmbase/patch/Makefile.in.Half.patch
usr/src/lib/ilmbase/patch/Makefile.in.Half64.patch
usr/src/lib/ilmbase/patch/Makefile.in.Iex.patch
usr/src/lib/ilmbase/patch/Makefile.in.Iex64.patch
usr/src/lib/ilmbase/patch/Makefile.in.IlmThread.patch
usr/src/lib/ilmbase/patch/Makefile.in.IlmThread64.patch
usr/src/lib/ilmbase/patch/Makefile.in.Imath.patch
usr/src/lib/ilmbase/patch/Makefile.in.Imath64.patch 
    You shouldn't need any of these patches.

usr/src/lib/openexr/Makefile.sfw
    I have similar comments to the ilmbase Makefile.sfw and
    at lines 51 and 57, --prefix=$(CFGPREFIX), not =$(ROOT)/usr

usr/src/lib/openexr/install-openexr
usr/src/lib/openexr/install-openexr-64
    see corresponding ilmbase comment
   
usr/src/lib/openexr/ltmain.sh.new
    see corresponting ilmbase comment

usr/src/lib/openexr/patch/Makefile.in.IlmImf.patch
usr/src/lib/openexr/patch/Makefile.in.IlmImf64.patch
usr/src/lib/openexr/patch/Makefile.in.exrenvmap.patch
usr/src/lib/openexr/patch/Makefile.in.exrheader.patch
usr/src/lib/openexr/patch/Makefile.in.exrmakepreview.patch
usr/src/lib/openexr/patch/Makefile.in.exrmaketiled.patch
usr/src/lib/openexr/patch/Makefile.in.exrstdattr.patch
    You shouldn't need these patches.

usr/src/pkgdefs/SUNW*/prototype_*
    Lots of stuff that doesn't need to be writable.


Norm Jacobs wrote:
> I haven't really had a chance to review this yet, but your comment below 
> concerns me.  You say that you are patching open source component 
> makefiles in order to fix the RUNPATH.  That *may* be necessary, but 
> assuming that the RUNPATH issue is due to linking C++ with the Sun C++ 
> compiler and it placing it's own favorite directories into the RUNPATH, 
> you can turn this off with "-norunpath" and not have to patch the 
> makefiles.  Just add "CCC += -norunpath" at the appropriate place after 
> you include "Makefile.lib" in your Makefile.sfw.  You should also quote 
> your use of various variables being passed into the calling environment 
> for things like configure, "make all", ...  Ex:
>     cd $(VER) ; env CXX="$(CCC)" CXXFLAGS="$(CCFLAGS)" ... ./configure
> or
>     cd $(VER)-64 ; env CXX="$(CCC64)" CXXFLAGS="$(CCFLAGS64)" ... 
> ./configure
>
> At any rate, I will try to take a closer look at your workspace over the 
> weekend.
>
>     -Norm
>
>
> Sheng-qi Jiang wrote:
>   
>> Jim Walker wrote:
>>   
>>     
>>> Thanks Henry,
>>>
>>> I have no further comments.
>>>     
>>>       
>> Please help review the Makefile.sfw and patch directory.
>> ( these patch files was to remove the unused RPATH of delivery binaries.
>>
>> http://cr.opensolaris.org/~henryj/openexr/
>>
>>
>> Thanks!
>>
>>   
>>     
>
> _______________________________________________
> sfwnv-discuss mailing list
> sfwnv-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/sfwnv-discuss
>   


Reply via email to