JAVA = java
JC = javac
JH = javah
LD = gcc
CFLAGS = -Wall -O3
INC = /path/to/java/include
LINC = $(INC)/linux
LDFLAGS = -shared -Wl,-soname,libnative.so -I$(INC) -I$(LINC)
LIBS=-static -lc

all: libNativeThread.so

NativeThread.class: NativeThread.java
	$(JC) NativeThread.java

libNativeThread.so: NativeThread.c NativeThread.h
	$(LD) $(CFLAGS) -o libNativeThread.so $(LDFLAGS) NativeThread.c $(LIBS)

NativeThread.h: NativeThread.class
	$(JH) NativeThread

clean:
	-rm *.class NativeThread.h libNativeThread.so

test: all NativeThreadTest.class
	$(JAVA) NativeThreadTest

NativeThreadTest.class: NativeThreadTest.java
	$(JC) NativeThreadTest.java
