Re: Baubefehl lokalisieren

David Haller <[email protected]>
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Hello,

On Fri, 13 Feb 2009, Sascha 'saigkill' Manns wrote:
>ich möchte gerne einem Baubefehl den -soname Passus hinzufügen. Ich habe 
>die Ausgabe ab %install gepostet. Mir geht es um den letzten 
>(abgegrenzten) Teil. Wo finde ich den Baubefehl? configure, Makefile.in 
>oder in einer foo.c Datei?

Ne URL zu tktray wäre hilfreich gewesen.

[..]
>gcc -pipe -shared -o libtktray1.1.so tktray.o -lXext -lX11  -L/usr/lib -
>ltclstub8.5 -L/usr/lib -ltkstub8.5                                  
>: libtktray1.1.so     

In dem Fall kommt's darauf an, wie "sauber" das sein soll und welchen
soname du willst. Auf die Schnelle finde ich die Variable SHLIB_LD
(aus dem Makefile) als am besten geeignet.

Die Anpassung geht:

a) direkt im configure, z.B. per

    sed -i '/test "$have_dl" = yes/,/else/{
        s/SHLIB_LD="${CC} -shared"/SHLIB_LD="${CC} -shared -Wl,-soname,\\$@"/;
    }' configure

Könnte man gut im %prep im .spec unterbringen. Oder halt nen patch
generieren.

b) gleiche Stelle in tclconfig/tcl.m4 anpassen, dann muß aber
   autoreconf laufen

Nach a)

$ ./configure
[..]
$ grep SHLIB_LD.*soname Makefile
SHLIB_LD        = gcc -pipe -shared -Wl,-soname,$@
$ touch tktray.o
$ make
rm -f libtktray1.1.so
gcc -pipe -shared -Wl,-soname,libtktray1.1.so -o libtktray1.1.so
tktray.o -lXext -L/usr/X11R6/lib -lX11  -L/usr/local/lib -ltclstub8.4
-L/usr/local/lib -ltkstub8.4
[Fehler wg. dummy .o Datei, ich hab hier grad kein tk8.5]

Wg. dem soname könnte man ggfs. den sed-Befehl anpassen, z.B.
    ... -shared -Wl,-soname,lib%{name}.so.%{version}
(und die lib noch passend umbenennen und mit symlinks verarzten) oder
so Zeugs, wenn man das .spec auch mit tktray1.2 verwenden will ;)

Achso, das findet man durch fleißig Makefile lesen und sich dann die
"Generierung" zurückhangeln ;)

HTH,
-dnh

-- 
Ich kenne da auch einen zentralen Nameserver einer nicht wirklich kleinen
Firma, der auf einem Pentium 200 läuft. Auslastung typischerweise im Bereich
zwischen *gähn* und *iswas?*, reicht also.         -- Alexander Schreiber
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.