include Makefile.o.dep

name=mormsample

ifndef GLOBAL_WORKING_DIR
GLOBAL_WORKING_DIR := $(shell pwd)/../..
endif


CXX          = g++10
#CXX          = clang++

# -fsanitize=address
# -Wl,-rpath=/usr/local/lib/gcc5 or just compile with -static-libstdc++

CXXFLAGS     = -Wl,-rpath=/usr/local/lib/gcc10 -Wfatal-errors -fPIC -Wall -pedantic -O0 -g3 -pthread -std=c++20 -I/usr/local/include -I$(GLOBAL_WORKING_DIR)/pikotools/src -I$(GLOBAL_WORKING_DIR)/morm/src
LDFLAGS      = -L/usr/local/lib


export CXX
export CXXFLAGS
export LDFLAGS
export GLOBAL_WORKING_DIR


current_path := $(shell pwd)
global_relative_working_dir := $(shell relative_path $(current_path) $(GLOBAL_WORKING_DIR))


# IMPROVE ME
# add dependency to pikotools
all: morm $(name)


$(name): morm pikotools $(o)
	$(CXX) -o $(name) $(CXXFLAGS) $(LDFLAGS) $(o) $(GLOBAL_WORKING_DIR)/morm/src/morm.a $(GLOBAL_WORKING_DIR)/pikotools/src/pikotools.a $(LDFLAGS) -lpq -lpthread


.PHONY: morm


morm:
	@cd $(GLOBAL_WORKING_DIR)/morm/src ; $(MAKE) -e


pikotools:
	@cd $(GLOBAL_WORKING_DIR)/pikotools/src ; $(MAKE) -e


%.o: %.cpp
	$(CXX) -c $(CXXFLAGS) $<


depend:
	makedepend -Y. -I$(global_relative_working_dir)/pikotools/src -I$(global_relative_working_dir)/morm/src -f- *.cpp > Makefile.dep
	echo -n "o = " > Makefile.o.dep
	ls -1 *.cpp | xargs -I foo echo -n foo " " | sed -E "s/([^\.]*)\.cpp[ ]/\1\.o/g" >> Makefile.o.dep


clean:
	@cd $(GLOBAL_WORKING_DIR)/morm/src  ; $(MAKE) -e clean
	rm -f *.o
	rm -f $(name)




include Makefile.dep
