CC=gcc CXX=g++ AR=ar CFLAGS=-Wall -Wextra LD_FLAGS= TARGET=libcarbon.so MODE=DEBUG 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 NN_PATH=NeoNucleus/src NN_FLAGS=-std=gnu11 -O2 -fPIC -I$(TLA_PATH)/foreign/lua54 NN_SRC=$(NN_PATH)/neonucleus.c $(NN_PATH)/ncomplib.c $(NN_PATH)/luaarch.c NN_OBJS=neonucleus.o ncomplib.o luaarch.o CPP_SRCS = $(wildcard ${BASE_NPATH}/*.cpp) OBJS = $(CPP_SRCS:.cpp=.o) NATIVE_NAME=main all: java $(TARGET) src/native/libneonucleus.a: $(NN_SRC) $(CC) -c $(NN_SRC) $(NN_FLAGS) $(AR) rcs src/native/libneonucleus.a $(NN_OBJS) $(TARGET): $(OBJS) src/native/libneonucleus.a $(CXX) -shared -o ${BASE_NPATH}/$(TARGET) \ $(OBJS) src/native/libneonucleus.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) -DMODE=$(MODE) \ $< -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 nn.o rm ${JAVA_CLASSES} rm $(OBJS) $(BASE_NPATH)/$(TARGET) .PHONY: all clean