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
