Hallo, weiss jemand von euch, ob man Targets im Makefile durch eine Kommandosubstitution setzen kann? Ich habe ein Makefile fuer ein Java-Programm, das vereinfach so aussieht: ---- CLASS_FILES=class1.class class2.class .SUFFIXES: .SUFFIXES: .java .class all: $(CLASS_FILES) ---- Da sich die Klassen langsam aber sicher vermehren, wuerde ich jetzt gerne die $(CLASS_FILES) automatisch erzeugen. Die offensichtliche Weg funktioniert nicht: VAR=`find -type f -name .java | sed ....` Und die Info-Pages zu GNU-Make scheinen so etwas nicht vorzusehen. Kann mir viel- leicht jemand von euch einen Tip geben? Gruss, Terje ______________________________________________________ Få den nye Yahoo! Messenger på http://no.messenger.yahoo.com/ Nye ikoner og bakgrunner, webkamera med superkvalitet og dobbelt så morsom
On Thu, 2004-01-29 at 21:53, Terje Fåberg wrote:
Hallo,
weiss jemand von euch, ob man Targets im Makefile durch eine Kommandosubstitution setzen kann? In einem make-Makefile geht das nicht. In einem GNU-Makefile gibt es eine Reihe von Möglichkeiten.
Da sich die Klassen langsam aber sicher vermehren, wuerde ich jetzt gerne die $(CLASS_FILES) automatisch erzeugen. Die offensichtliche Weg funktioniert nicht:
VAR=`find -type f -name .java | sed ....`
Und die Info-Pages zu GNU-Make scheinen so etwas nicht vorzusehen.
Lies noch mal, die info-Pages sind voll mit derartigen oder verwandten Beispielen. Stichworte shell, wildcard, foreach, subst Ralf
Ralf Corsepius skrev:
Lies noch mal, die info-Pages sind voll mit derartigen oder verwandten Beispielen. Stichworte shell, wildcard, foreach, subst
O ja. Danke fuer den Hinweis. Ich habe einfach nicht lange genug gesucht. Ich bin blind gewesen muessen. Fuer das Archiv: Die Loesung ist so einfach: CLASS_FILES=$(shell find src -type f -name '*.java' | sed -e 's/\.java/\.class/') Gruss und Danke! Terje ______________________________________________________ Få den nye Yahoo! Messenger på http://no.messenger.yahoo.com/ Nye ikoner og bakgrunner, webkamera med superkvalitet og dobbelt så morsom
Hallo, Am Thu, 29 Jan 2004, Terje Fåberg schrieb:
---- CLASS_FILES=class1.class class2.class
.SUFFIXES: .SUFFIXES: .java .class
all: $(CLASS_FILES) ----
Da sich die Klassen langsam aber sicher vermehren, wuerde ich jetzt gerne die $(CLASS_FILES) automatisch erzeugen. Die offensichtliche Weg funktioniert nicht:
VAR=`find -type f -name .java | sed ....`
==== JAVAC = javac JAVA_FILES = $(shell find . -type f -name '*.java') CLASS_FILES = $(patsubst %.java, %.class, $(JAVA_FILES)) all: $(CLASS_FILES) %.class: %.java $(JAVAC) $< ==== RTFM: info make -dnh -- /* calling RemoveRequest may cause the document to finish loading, which could result in our death. We need to make sure that we stay alive long enough to fight another battle... at least until we exit this function. */ nsCOMPtr<imgIRequest> kungFuDeathGrip(this) -- gef. v. P. Thomas in den Mozilla-Sourcen
Hallo! Nur so eine Idee (funktioniert für c++): JAVAFILES = $(wildcard $(dir)*.java) CLASS = $(patsubst %.java,%.class,$(JAVAFILES)) oder JAVAFILE = $(shell find -name '*.java') CLASS = $(patsubst %.java,%.class,$(JAVAFILES)) all: $(CLASS) usw. Gruß -- Dirk
Am Donnerstag, 29. Januar 2004 21:53 schrieb Terje Fåberg:
weiss jemand von euch, ob man Targets im Makefile durch eine Kommandosubstitution setzen kann? Ich habe ein Makefile fuer ein Java-Programm, das vereinfach so aussieht:
Ich wollte das früher auch mal mit Make machen, bin dann aber auf ant gestossen, dass macht die Sache um ein Vielfaches einfacher, da speziell auf die Eigenheiten von Java ausgelegt. Das SuSE RPM nennt sich jakarta-ant. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Am Donnerstag Januar 29 2004 21:53 schrieb Terje Fåberg:
Hallo,
weiss jemand von euch, ob man Targets im Makefile durch eine Kommandosubstitution setzen kann? Ich habe ein Makefile fuer ein Java-Programm, das vereinfach so aussieht:
Zum einen kümmert sich Java selbst um das kompilieren de Abhängigkeiten zum anderen, wenns dann unbedingt sein muß, nimm Ant. Ist im Jakarta Project. cu -- Roland Kruggel mailto: rk-liste@gmx.de System: AMD 1200Mhz, Debian woody, 2.4.23, KDE 3.1.4
participants (6)
-
David Haller
-
Dirk Dörr
-
Manfred Tremmel
-
Ralf Corsepius
-
Roland M. Kruggel
-
Terje Fåberg