###############################
##     RecoSim MAKEFILE     ###
###############################

DSRC_PUB=./src
DSRC_GEN=./src_gen

CFLAGS=-Wno-reorder -O1 -s 
CXXFLAGS=-I$(DSRC_PUB) -I$(DSRC_GEN) -I$(SYSTEMC)/include $(CFLAGS)
LDFLAGS=-L$(CLIB_PATH) -L$(SYSTEMC_LIB)
LIBS=-lsystemc -lrecosim

SRC_PUB	 := $(wildcard $(DSRC_PUB)/*.cpp)
SRC_GEN	 := $(wildcard $(DSRC_GEN)/*.cpp)

OBJS_PUB := $(SRC_PUB:$(DSRC_PUB)/%.cpp=$(DOBJ_PUB)/%.o)
OBJS_GEN := $(SRC_GEN:$(DSRC_GEN)/%.cpp=$(DOBJ_GEN)/%.o)
EXE     := exe/$(RECOSIM_EXE_NAME)

all: $(EXE)

$(EXE) : $(OBJS_PUB) $(OBJS_GEN)
	mkdir -p $(DEXE)
	$(LD) $(LDFLAGS) -Wl,-rpath=$(LDFLAGS) $(OBJS_PUB) $(OBJS_GEN) -o $@ $(LIBS) 2>&1 | c++filt
	@echo ""
	@echo "Compilation successful!"

$(OBJS_PUB): $(DOBJ_PUB)/%.o : $(DSRC_PUB)/%.cpp
	mkdir -p $(DOBJ_PUB)
	$(CXX) $(CXXFLAGS) -c -o $@ $<

$(OBJS_GEN): $(DOBJ_GEN)/%.o : $(DSRC_GEN)/%.cpp
	mkdir -p $(DOBJ_GEN) 
	$(CXX) $(CXXFLAGS) -c -o $@ $<

.PHONEY: clean
clean:
	-rm -f -r $(DOBJ_PUB)
	-rm -f -r $(DOBJ_GEN)
	-rm -f -r obj
	-rm -f -r $(DEXE)

