CXX = g++
CXXFLAGS = -O3 -march=native -shared -fPIC -fopenmp -Wall -mavx2

TARGET = librsr.so
SRC = rsr_gemm.cpp quantize.cpp rsr_fused.cpp fmm_octree.cpp

# Verilator Stub (Real build needs verilator installed)
VERILATOR_TARGET = libtrme_rtl.so
VERILATOR_SRC = verilator/sim_main.cpp

all: $(TARGET) $(VERILATOR_TARGET)

$(TARGET): $(SRC)
	$(CXX) $(CXXFLAGS) -o $@ $^

$(VERILATOR_TARGET): $(VERILATOR_SRC)
	$(CXX) $(CXXFLAGS) -I/usr/share/verilator/include -o $@ $^ || echo "Skipping Verilator build (headers missing)"

clean:
	rm -f $(TARGET) $(VERILATOR_TARGET)
