CC = gcc
JAVA = java
JAVAH = javah
JAVAC = javac
LIB = lib/libConsole.so
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
SOURCES = Getch.java
SOURCES += Console.java
OBJECTS = cross_getch.o
.SUFFIXES: .java
.c.o:
@echo "JAVA_HOME=$(JAVA_DIR)"
$(CC) -c $(CFLAGS) $(INCLUDE) $< -o $@
all: Getch.class $(LIB)
Getch.class: $(SOURCES)
$(JAVAC) -d . $(SOURCES)
$(JAVAH) -jni -d include Console
$(LIB): $(OBJECTS)
$(CC) -shared -Wl,-soname,libConsole.so.1,-rpath,lib $(OBJECTS) -o $@
.PHONY: clean
clean:
rm -f include/Getch.h include/Console.h *.class *~ $(LIB)
rm -f $(OBJECTS)
debug: Getch.class lib/libConsole.so
LD_LIBRARY_PATH=lib $(JAVA) -cp . Getch
run: Getch.class $(LIB)
$(JAVA) -Djava.library.path=lib -cp . Getch