Re: Re: Building OpenOffice.org with GNU make

Martin Hollmichel <[email protected]> Wed, 17 Feb 2010 16:22:47 +0100
Newsgroups gmane.comp.openoffice.devel.tools
Message-ID <[email protected]>
Jussi Pakkanen wrote:
> On Wed, Feb 17, 2010 at 11:57 AM, Martin Hollmichel
> <[email protected]> wrote:
>
>   
>> usually I analyse the build logs for understanding these kind of mechanisms,
>> here's my extract for sal module on Linux:
>> ...
>> tr -d "\015" < sal.map | awk -f ...../solenv/bin/addsym.awk >
>> ../unxlngi6.pro/misc/sal_uno_sal.map
>> ....
>> Making: ../unxlngi6.pro/lib/libuno_sal.so.3
>> g++ -Wl,-z,noexecstack -Wl,-z,combreloc -Wl,-z,defs -Wl,-Bsymbolic-functions
>> -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
>> -Wl,--hash-style=both -Wl,-rpath,'$ORIGIN' "-Wl,-hlibuno_sal.so.3" -shared
>> -Wl,-O1 -Wl,--version-script ../unxlngi6.pro/misc/sal_uno_sal.map .......
>>     
>
> There seem to be two phases in this. First you generate the target
> file with awk and then pass it to the linker. The first one is
> straightforward.
>
> The latter is a bit trickier but not very hard. First you set a
> dependency between the shared library and the generated version file.
> Then you need to pass the file to the linker. CMake allows you to
> define custom linker flags per target. To get the above you would add
> something like this:
>
> set_target_properties(sal PROPERTIES LINK_FLAGS "-Wl,--version-script
> ${GENERATED_SAL_MAP_FILE}")
>
>   
the process for Windows (MSVC) is very similar, I already invented a 
function add_mapfile(<libname> <map>) to do the job. I guess this 
approach will work for all other platforms as well.

thanks,

Martin

> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>