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:
Ne URL zu tktray wäre hilfreich gewesen.
[..]
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
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 > |