#!/usr/bin/make -f # # Makefile for C code # # C sources to compile TARGET_DIR := ../../../target TARGET := $(TARGET_DIR)/libaioj.so WORKING_DIR := $(TARGET_DIR)/jni JAVA_BUILD_DIR := $(TARGET_DIR)/classes JAVA_HOME ?= /opt/java/jdk JVM_SHARED_LIB := $(JAVA_HOME)/jre/lib/i386/server INCLUDES := -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/linux -I $(WORKING_DIR) # classpath for javah ifdef CLASSPATH JAVAH_CLASSPATH = $(JAVA_BUILD_DIR):$(CLASSPATH) else JAVAH_CLASSPATH = $(JAVA_BUILD_DIR) endif all: $(TARGET) $(TARGET): org_apache_aio.cpp $(WORKING_DIR)/org_apache_aio_test_Test.h $(WORKING_DIR)/org_apache_aio_posix_PosixAsynchronousFileChannel.h $(WORKING_DIR)/org_apache_aio_linux_LinuxAsynchronousFileChannel.h $(WORKING_DIR)/org_apache_aio_posix_PosixAioFutureImpl.h g++ -O2 -shared -L$(JVM_SHARED_LIB) -ljsig -ljvm -lrt -lstdc++ $(INCLUDES) org_apache_aio.cpp -o $(TARGET) $(WORKING_DIR)/org_apache_aio_test_Test.h: $(TARGET_DIR)/classes/org/apache/aio/test/Test.class mkdir -p $(TARGET_DIR)/jni javah -force -classpath $(JAVAH_CLASSPATH) -d $(WORKING_DIR) org.apache.aio.test.Test $(WORKING_DIR)/org_apache_aio_posix_PosixAsynchronousFileChannel.h: $(TARGET_DIR)/classes/org/apache/aio/posix/PosixAsynchronousFileChannel.class mkdir -p $(TARGET_DIR)/jni javah -force -classpath $(JAVAH_CLASSPATH) -d $(WORKING_DIR) org.apache.aio.posix.PosixAsynchronousFileChannel $(WORKING_DIR)/org_apache_aio_posix_PosixAioFutureImpl.h: $(TARGET_DIR)/classes/org/apache/aio/posix/PosixAioFutureImpl.class mkdir -p $(TARGET_DIR)/jni javah -force -classpath $(JAVAH_CLASSPATH) -d $(WORKING_DIR) org.apache.aio.posix.PosixAioFutureImpl $(WORKING_DIR)/org_apache_aio_linux_LinuxAsynchronousFileChannel.h: $(TARGET_DIR)/classes/org/apache/aio/linux/LinuxAsynchronousFileChannel.class mkdir -p $(TARGET_DIR)/jni javah -force -classpath $(JAVAH_CLASSPATH) -d $(WORKING_DIR) org.apache.aio.linux.LinuxAsynchronousFileChannel