[linux-l] Re: Makefile
Rainer Flicker
r.flicker at nexgo.de
Mo Dez 2 22:36:29 CET 2002
Hallo,
> Da hab ich mich noch nicht "rangetraut", hatte zuviele Probleme
> mit diesem libtool bei 3rd party stuff.
^^^^^^^^^
Compiler / Linker?
> Na ja, in den Depenencies der Sourcen steht dann z.B.
> #include <subdir/hallo.h>
Wenn die Headerfiles innerhalb deines package liegen, dann
müsste es
#include "subdir/hallo.h"
^^ ^^
lauten.
> ü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.
Das Makefile wird allerdings erst von configure aus dem
Makefile.in erzeugt.
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.
Bei "make dist" werden keine Makefiles eingepackt, da diese ja
erst von configure erzeugt werden sollen. In einem Makefile.am
reicht:
bin_PROGRAMS = pkgtest
pkgtest_SOURCES = \
global.h \
main.c
Dann machst vielleicht:
> ./configure --with-package=/anderswo/sonstwas
"--with-package" ist für fremde Pakte, wieso sollte es damit
Probleme geben.
> 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...
Grüße
Rainer
Mehr Informationen über die Mailingliste linux-l