diff --git a/filetraverser/Makefile b/filetraverser/Makefile new file mode 100644 --- /dev/null +++ b/filetraverser/Makefile @@ -0,0 +1,46 @@ + CC = gcc + JAVA = java +JAVAH = javah +JAVAC = javac + TC = Unix + LIB = lib/lib$(TC).so + +SOURCES = FileTraverser.java +SOURCES += $(TC).java + +OBJECTS = unix.o + +ifdef JAVA_HOME + JAVA_DIR="$(JAVA_HOME)" +else + JAVA_DIR=/usr/lib/jvm/java-6-sun +endif + +INCLUDE = -I$(JAVA_DIR)/include -I$(JAVA_DIR)/include/linux -Iinclude + +.SUFFIXES: .java + +.c.o: + @echo "JAVA_HOME=$(JAVA_DIR)" + $(CC) -c $(CFLAGS) $(INCLUDE) $< -o $@ + +all: $(TC).class $(LIB) + +$(TC).class: $(SOURCES) + $(JAVAC) -d . $(SOURCES) + $(JAVAH) -jni -d include $(TC) + +$(LIB): $(OBJECTS) + $(CC) -shared -Wl,-soname,lib$(TC).so.1,-rpath,lib $(OBJECTS) -o $@ + +.PHONY: clean + +clean: + rm -f include/$(TC).h *.class *~ $(LIB) + rm -f $(OBJECTS) + +debug: all + LD_LIBRARY_PATH=lib $(JAVA) -cp . FileTraverser + +run: all + $(JAVA) -Djava.library.path=lib -cp . FileTraverser $(HOME) 1