[linux-l] Re: Makefile

Steffen Dettmer steffen at dett.de
Mo Dez 2 10:59:53 CET 2002


* Rainer Flicker wrote on Mon, Dec 02, 2002 at 00:03 +0100:
> Ich finde automake+autoconf auch toll, erst recht wenn man so-libs
> erstellt. 

Da hab ich mich noch nicht "rangetraut", hatte zuviele Probleme
mit diesem libtool bei 3rd party stuff. Hier paßt ne Version
nicht, mußte da basteln etc. pp. Aber "theoretisch" ist es nett,
muß man aber "bedienen" können.

> > >ist trotzdem schoen, wenn man die prinzipien dahinter kennt ...
> > Ja, dann versteht man z.B., warum automake/autoconf bei
> > "--with-package=../../sonstwas/hallo" massive Probleme mit den
> > Dependcies bekommt, wenn man "make dist" verwendet, und erwartet,
> > man könne den Tarball compilieren...

> Wo ist dabei das Problem?

Na ja, in den Depenencies der Sourcen steht dann z.B.
#include <subdir/hallo.h>
über ../../sonstwas/ wird das dann z.B. bei gcc -E oder -M
#include <../../sonstwas/subdir/hallo.h>
Nun ist das automake bißchen langweilig bei dependencies. So in
etwa: was mit /usr anfängt, ist 'ne System-Dependency, und
wandert nicht ins Makefile. Selbst wenn Du /usr/include relativ
holst, dürfte das knallen. Jedenfalls schreibt automake die
Abhängigkeiten so (also ../../) in die Makefiles, die dann auch
bei make dist eingepackt werden. Dann machst vielleicht:
./configure --with-package=/anderswo/sonstwas
und make schlägt fehl mir:
No rule to make target ../../sonstwas/subdir/hallo.h
weil die Abhängigkeiten bei Dists ja eben nicht neu gemacht
werden. Gaaanz toll. Das fällt einem z.B. auf den Fuß, wenn man
RPMs bauen möchte, es compiliert dann eben nicht. Kann man
natürlich hinbiegen (mit absoluten Pfaden arbeiten, z.B.), dann
compiliert es, wenn es dann zufällig ein
/home/steffen/work/sonstwas/src/subdir/hallo.h gibt. Aber sowas
möchte man ja nicht im src-RPM haben! Ich möchte in den Makefiles
aber keine automatischen dependencies haben, die über mein
toplevel hinaus zurückgehen (also nix mit $(toplevel)/..). Hab
ich bis heute nicht hingekriegt. Ein Workaround ist
AUTOMAKE_OPTIONS=no-dependencies, was natürlich die Arbeit
umständlich macht, weil man dann eben gar keine Dependencies mehr
hat, was auch keinen Spaß macht, weil man ständig Linkerfehler
etc. produziert, wenn man einen Header ändert oder sowas...

Wenn hier jemand ne Idee hat / Lösung kennt, her damit!

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.




Mehr Informationen über die Mailingliste linux-l