JAVA_HOME = $(shell java -XshowSettings:properties -version 2>&1 | grep 'java.home' | cut -d'=' -f2  | xargs )

CC = gcc
CXX = g++

HEADERS_JNI = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux

CXXFLAGS = -I. $(HEADERS_JNI) -shared -fPIC  -std=c++20
LDFLAGS = -shared -fPIC -std=c++20

SRC = libjasoninterrupts.cpp
OBJ = $(SRC:.cpp=.o) 

.PHONY: all clean distclean generate_header

all: generate_header libjasoninterrupts.so

generate_header:
	echo "#ifndef __JASON_INTERRUPTS__" > jason_interrupts.h
	echo "#define __JASON_INTERRUPTS__ " >> jason_interrupts.h
	for header in $$(ls *.h); do \
		echo "#include <$${header}>" >> jason_interrupts.h ; \
	done 
	echo "#endif" >> jason_interrupts.h
	

libjasoninterrupts.so: $(OBJ)
	$(CXX) -shared -fPIC $(CXXFLAGS) $(OBJ) -o $@

clean:
	rm -f *.so *.o *.class

distclean: clean
