37 lines
999 B
Makefile
37 lines
999 B
Makefile
CC=gcc
|
|
CXX=g++
|
|
CFLAGS=-Wall -Wextra
|
|
LD_FLAGS=
|
|
TARGET=libcarbon.so
|
|
|
|
BASE_PATH=./src/main/org/neoflock/NeoNucleus
|
|
JAVA_HOME=/usr/lib/jvm/java-25-openjdk/
|
|
BASE_NPATH=./src/native/
|
|
JAVA_SRCS = $(wildcard ./src/main/org/neoflock/NeoNucleus/*.java)
|
|
JAVA_CLASSES = $(wildcard ./src/main/org/neoflock/NeoNucleus/*.class)
|
|
TLA_PATH=./src/tla-static
|
|
|
|
CPP_SRCS = $(wildcard ${BASE_NPATH}/*.cpp)
|
|
OBJS = $(CPP_SRCS:.cpp=.o)
|
|
NATIVE_NAME=main
|
|
|
|
all: java $(TARGET)
|
|
|
|
$(TARGET): $(OBJS)
|
|
$(CXX) -shared -o ${BASE_NPATH}/$(TARGET) \
|
|
$(OBJS) ${BASE_NPATH}/libneonucleus.a $(TLA_PATH)/libtla.a $(TLA_PATH)/foreign/lua54/liblua.a -lc $(LD_FLAGS)
|
|
%.o: %.cpp
|
|
$(CXX) -c -fPIC -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux $(CFLAGS) \
|
|
$< -o $@
|
|
|
|
java: ${JAVA_CLASSES}
|
|
javac -h ./src/native/ ${JAVA_SRCS}
|
|
|
|
run: all
|
|
cd src/main && java -cp . -Djava.library.path=${PWD}/${BASE_NPATH} -Xcheck:jni org.neoflock.NeoNucleus.NativeBindings
|
|
|
|
clean:
|
|
rm ${JAVA_CLASSES}
|
|
rm $(OBJS) $(BASE_NPATH)/$(TARGET)
|
|
|
|
.PHONY: all clean |