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