• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Umgebungsvariable für makefile erstellen

Delryn

Newbie
Ich möchte ein makefile erstellen, welches weitere makefiles aufrufen soll. Dieses soll systemweit erreichbar sein, so dass ich in jedem beliebigen Ordner z.B.

make -f SystemweitesMakefile

eingeben kann. Geht so etwas? Hab schon versucht etwas in den usr/bin-Ordner zu legen :oops:
 

rethus

Advanced Hacker
Im Grunde genommen bräuchtest du dein Script nur dorthin zu legen, wo deine PATH-Variable hin verweist.

echo $PATH

Damit sollte er das Script dann finden. Worauf zu achten ist, dass in dem Scrippt nur absolute Pfadangaben verwendet werden, da du ja bei einem Systemweiten Aufruf nicht genau festlegen kannst, aus welchem Verzeichnis herraus dein makefile aufgerufen wird.

Ach ja... und natürlich das Script ausführbar machen (vergisst man schon mal in der Eile :lol:
 
OP
D

Delryn

Newbie
Danke für deine Antwort, ich bekomme es leider nicht ganz hin. Hier erstmal die Pfade auf die $PATH verweist:

linux:~ # echo $PATH
/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin

Wo muss ich jetzt mein makefile "testmake" ablegen, wenn ich es systemweit per

make -f testmake verwenden möchte?
Ich habe es mit 2 der genannten Ordner probiert, was aber nicht geklappt hat ("missing file")
 
Ich verstehe die Frage ehrlich gesagt nicht.

Möchtest Du ein Makefile verwenden, das nicht den Dateinamen "Makefile" hat?
=> Dann ist die Option "-f" das Richtige für Dich:
Code:
make -f <Dateiname>

Möchtest Du mit einem Makefile etwas bauen, ohne vorher in das Verzeichnis wechseln zu müssen, in dem sich das Makefile befindet?
=> Dann ist die Option "-f" nicht das Richtige für Dich, sondern die Option "-C":
Code:
make -C <Verzeichnis>
Möchtest Du in einem Verzeichnis ein Makefile haben, das in Unterverzeichnissen andere Makefiles ausführt?
=> Dann brauchst Du überhaupt keine Option für "make", sondern das oberste Makefile könnte so aussehen:
Code:
SUBDIRS = Verzeichnis1 Verzeichnis2 Verzeichnis3

all:
	for i in $(SUBDIRS) ; do $(MAKE) -C $$i ; done
 

TeXpert

Guru
@traffic steht doch alles im 1. Post:

Ich möchte ein makefile erstellen, welches weitere makefiles aufrufen soll. Dieses soll systemweit erreichbar sein, so dass ich in jedem beliebigen Ordner z.B.


also
Code:
$ cd /tmp
$ make -f foobar
und
Code:
$ cd /root
$ make -f foobar
oder
Code:
$ cd /home/foo
$ make -f foobar

sollen das gleiche machen, und das geht afaik nur mit einem qualifizierten Namen -> also

Code:
$cd $SOMEWHERE
make -f $PATHTOMAKEFILE/foobar
aber ob das Sinn macht möchte ich gerne in den Raum stellen ;)
 
Oben