diff options
Diffstat (limited to '')
-rw-r--r-- | Makefile | 33 |
1 files changed, 26 insertions, 7 deletions
@@ -14,14 +14,18 @@ JAVA_OPTIMISE=-O LIB_EXT=so JAVAC=javac +JAVAH=javah +JAR=jar JAVADIRS=-s "java" -d "bin/java" -cp "java" JAVAFLAGS=-Xlint $(JAVA_OPTIMISE) JAVA_FLAGS=$(JAVADIRS) $(JAVAFLAGS) -CFLAGS=-W{all,extra} -pedantic $(C_OPTIMISE) +CFLAGS=-W{all,extra} -pedantic $(C_OPTIMISE) -fPIC +SOFLAGS=-W{all,extra} -pedantic $(C_OPTIMISE) -shared CPPFLAGS= LDFLAGS= C_FLAGS=$(CFLAGS) $(CPPFLAGS) $(LDFLAGS) +SO_FLAGS=$(SOFLAGS) $(CPPFLAGS) $(LDFLAGS) JNI_C_INCLUDE=-I$${JAVA_HOME}/include JNI_C_FLAGS=$(JNI_INCLUDE) -fPIC -shared @@ -36,35 +40,50 @@ JNI_CLASSES = $(shell find "java-c-jni" | grep '\.java$$' | sed -e 's_^_bin/_g' +.PHONY: all all: java c java-c-jni - -java: $(JAVA_CLASSES) +.PHONY: java java-bin java-jar +java: java-bin java-jar +java-bin: $(JAVA_CLASSES) bin/java/%.class: java/%.java mkdir -p "bin/java" $(JAVAC) $(JAVA_FLAGS) "java/$*.java" +java-jar: bin/java/sha3.jar +bin/java/sha3.jar: bin/java/SHA3.class bin/java/ConcurrentSHA3.class + cd bin/java; $(JAR) cf sha3.jar SHA3.class ConcurrentSHA3.class -c: $(C_OBJS) $(C_BINS) +.PHONY: c c-bin c-so +c: c-bin c-so +c-bin: $(C_OBJS) $(C_BINS) bin/c/%.o: c/%.h c/%.c mkdir -p "bin/c" $(CC) $(C_FLAGS) -c "c/$*".{c,h} mv "$*.o" "bin/c/$*.o" bin/c/%: c/%.c $(CC) $(C_FLAGS) -o "$@" "c/$*".c "bin/c/"*.o +c-so: bin/c/sha3.$(LIB_EXT) +bin/c/sha3.$(LIB_EXT): bin/c/sha3.o + $(CC) $(SO_FLAGS) $^ -o "$@" +.PHONY: java-c-jni java-c-jni-so java-c-jni-jar java-c-jni: bin/java-c-jni/SHA3.$(LIB_EXT) $(JNI_CLASSES) bin/java-c-jni/%.class: java-c-jni/%.java mkdir -p "bin/java-c-jni" $(JAVAC) $(JNI_JAVA_FLAGS) "java-c-jni/$*.java" java-c-jni/%.h: bin/java-c-jni/%.class - javah -classpath bin/java-c-jni -jni -d java-c-jni \ + $(JAVAH) -classpath bin/java-c-jni -jni -d java-c-jni \ $$(echo "$<" | sed -e 's:^bin/java-c-jni/::' -e 's:.class$$::' | sed -e 's:/:.:g') -bin/java-c-jni/%.so: java-c-jni/%.h java-c-jni/%.c +java-c-jni-so: bin/java-c-jni/SHA3.$(LIB_EXT) +bin/java-c-jni/%.$(LIB_EXT): java-c-jni/%.h java-c-jni/%.c mkdir -p "bin/java-c-jni" - gcc $(C_FLAGS) $(JNI_C_FLAGS) "java-c-jni/$*.c" -o "bin/java-c-jni/$*.$(LIB_EXT)" + $(CC) $(C_FLAGS) $(JNI_C_FLAGS) "java-c-jni/$*.c" -o "$@" +java-c-jni-jar: bin/java-c-jni/sha3.jar +bin/java-c-jni/sha3.jar: bin/java-c-jni/SHA3.class + cd bin/java; $(JAR) cf sha3.jar SHA3.class |