Mailinglist Archive: opensuse-programming-de (108 mails)

< Previous Next >
Re: [opensuse-programming-de] Baubefehl lokalisieren
  • From: David Haller <lists@xxxxxxxxxx>
  • Date: Fri, 13 Feb 2009 04:25:40 +0100
  • Message-id: <20090213032540.GA1284@xxxxxxxxxxxxxxxxxx>
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
--
To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-programming-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups