|
6 | 6 | # C sources to compile |
7 | 7 |
|
8 | 8 | TARGET_DIR := ../../../target/classes |
9 | | -TARGET := $(TARGET_DIR)/libaffinity.so |
10 | | - |
| 9 | +JAVA_BUILD_DIR := $(TARGET_DIR) |
11 | 10 | WORKING_DIR := $(TARGET_DIR)/../jni |
12 | 11 |
|
13 | | -JAVA_BUILD_DIR := $(TARGET_DIR) |
| 12 | +SYS := $(shell gcc -dumpmachine) |
| 13 | +uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') |
14 | 14 |
|
15 | | -JAVA_HOME ?= /usr/java/default |
16 | | -JAVA_LIB := $(JAVA_HOME)/jre/lib |
17 | | -JVM_SHARED_LIBS := -L$(JAVA_LIB)/amd64/server -L$(JAVA_LIB)/i386/server -L$(JAVA_LIB)/amd64/jrockit/ -L$(JAVA_LIB)/i386/jrockit/ |
| 15 | +ifeq ($(uname_S),Linux) |
| 16 | + TARGET := $(TARGET_DIR)/libaffinity.so |
| 17 | + JAVA_HOME := /usr/java/default |
| 18 | + JAVA_LIB := $(JAVA_HOME)/jre/lib |
| 19 | + INCLUDES := -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/linux -I $(WORKING_DIR) |
| 20 | + JVM_SHARED_LIBS := -L$(JAVA_LIB)/amd64/server -L$(JAVA_LIB)/i386/server -L$(JAVA_LIB)/amd64/jrockit/ -L$(JAVA_LIB)/i386/jrockit/ |
| 21 | +endif |
18 | 22 |
|
19 | | -INCLUDES := -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/linux -I $(WORKING_DIR) |
| 23 | +ifeq ($(uname_S),Darwin) |
| 24 | + TARGET := $(TARGET_DIR)/libaffinity.dylib |
| 25 | + JAVA_HOME := $(shell /usr/libexec/java_home) |
| 26 | + JAVA_LIB := $(JAVA_HOME)/jre/lib |
| 27 | + INCLUDES := -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/darwin -I $(WORKING_DIR) |
| 28 | + JVM_SHARED_LIBS := -L$(JAVA_LIB) -L$(JAVA_LIB)/server |
| 29 | +endif |
20 | 30 |
|
21 | 31 | # classpath for javah |
22 | 32 | ifdef CLASSPATH |
|
27 | 37 |
|
28 | 38 | all: $(TARGET) |
29 | 39 |
|
30 | | -$(TARGET): com_higherfrequencytrading_affinity_impl_NativeAffinity.c $(WORKING_DIR)/com_higherfrequencytrading_affinity_impl_NativeAffinity.h $(WORKING_DIR)/com_higherfrequencytrading_clock_impl_JNIClock.h $(WORKING_DIR)/com_higherfrequencytrading_busywaiting_impl_BusyWaiting.h |
| 40 | +$(TARGET_DIR)/libaffinity.dylib: com_higherfrequencytrading_affinity_impl_NativeAffinity_MacOSX.c $(WORKING_DIR)/com_higherfrequencytrading_affinity_impl_NativeAffinity.h $(WORKING_DIR)/com_higherfrequencytrading_clock_impl_JNIClock.h $(WORKING_DIR)/com_higherfrequencytrading_busywaiting_impl_BusyWaiting.h |
| 41 | + gcc -O2 -shared -fPIC $(JVM_SHARED_LIBS) -ljvm $(INCLUDES) com_higherfrequencytrading_affinity_impl_NativeAffinity_MacOSX.c -o $(TARGET) |
| 42 | + |
| 43 | +$(TARGET_DIR)/libaffinity.so: com_higherfrequencytrading_affinity_impl_NativeAffinity.c $(WORKING_DIR)/com_higherfrequencytrading_affinity_impl_NativeAffinity.h $(WORKING_DIR)/com_higherfrequencytrading_clock_impl_JNIClock.h $(WORKING_DIR)/com_higherfrequencytrading_busywaiting_impl_BusyWaiting.h |
31 | 44 | gcc -O2 -shared -fPIC $(JVM_SHARED_LIBS) -ljvm -lrt $(INCLUDES) com_higherfrequencytrading_affinity_impl_NativeAffinity.c -o $(TARGET) |
32 | 45 |
|
33 | 46 | $(WORKING_DIR)/com_higherfrequencytrading_affinity_impl_NativeAffinity.h: $(TARGET_DIR)/com/higherfrequencytrading/affinity/impl/NativeAffinity.class |
|
0 commit comments