Files
Carbon/Makefile
2026-05-28 21:52:10 -03:00

36 lines
920 B
Makefile

CC=gcc
CXX=g++
CFLAGS=-Wall -Wextra
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: $(TARGET)
$(TARGET): $(OBJS)
g++ -shared -o ${BASE_NPATH}/$(TARGET) \
$(OBJS) ${BASE_NPATH}/libneonucleus.a $(TLA_PATH)/libtla.a -lc
%.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) $(TARGET)
.PHONY: all clean