Ken,
On 5/28/06, Ken Williams <[EMAIL PROTECTED]> wrote:
For at least GNU make, I think you should be able to change this:
java ::
@$(MKPATH) Java/classes
"$jdk/javac" -deprecation -g -d Java/classes Java/sources/org/perl/
inline/java/*.java
"$jdk/jar" cf Java/InlineJavaServer.jar -C Java/classes org -C Java/
classes InlineJava.properties
"$jdk/jar" cf Java/InlineJavaUser.jar -C Java/classes
InlineJavaUserClassLink.class
to this:
java :: Java/InlineJavaServer.jar Java/InlineJavaUser.jar
CLASS_FILES=$(patsubst Java/sources/%,Java/classes/%,$(wildcard Java/
sources/org/perl/inline/java/*.java))
Java/InlineJavaServer.jar: $(CLASS_FILES)
"$jdk/jar" cf Java/InlineJavaServer.jar -C Java/classes org -C Java/
classes InlineJava.properties
Java/InlineJavaUser.jar: $(CLASS_FILES)
"$jdk/jar" cf Java/InlineJavaUser.jar -C Java/classes
InlineJavaUserClassLink.class
Java/classes/%.class: Java/sources/%.java:
@$(MKPATH) Java/classes
"$jdk/javac" -deprecation -g -d Java/classes $<
pure_all :: java
Since you always need to compile all the Java files together, I
finally used a timestamp file like this:
JAVA_SRC=<Enumerate all .java files. Easy to do from Makefile.PL>
java.ts: $(JAVA_SRC)
@$(MKPATH) $obj_dir
"$javac" -deprecation -g -d $obj_dir $src
"$jar" cf $server_arch -C $obj_dir org -C $obj_dir InlineJava.properties
"$jar" cf $user_arch -C $obj_dir InlineJavaUserClassLink.class
@$(TOUCH) java.ts
java :: java.ts
That seems to do the trick.
Thanks Artem and Ken for your help and suggestions,
Patrick
--
=====================
Patrick LeBoutillier
Laval, Québec, Canada