sourcefiles:=$(shell find . -name "*.cpp") objfiles:=$(patsubst %.cpp,%.o,$(sourcefiles)) GLOBAL_WORKING_DIR := $(shell pwd)/../../.. WINIX_NEEDED_MACROS = -DPT_HAS_MORM_LIBRARY \ -DEZC_HAS_MORM_LIBRARY \ -DMORM_HAS_EZC_LIBRARY ifndef CXX CXX = g++ endif ifndef CXXFLAGS # /usr/include/postgresql is in Linux distros (Alpine) CXXFLAGS = -Wall -pedantic -O2 -std=c++20 \ -I/usr/local/include \ -I/usr/include/postgresql \ -I$(GLOBAL_WORKING_DIR)/winix/winixcli \ -I$(GLOBAL_WORKING_DIR)/pikotools/src \ -I$(GLOBAL_WORKING_DIR)/morm/src \ -I$(GLOBAL_WORKING_DIR)/ezc/src \ -I$(GLOBAL_WORKING_DIR)/tito/src \ $(WINIX_NEEDED_MACROS) endif ifndef LDFLAGS LDFLAGS = -L/usr/local/lib -s endif export CXX export CXXFLAGS export LDFLAGS export WINIX_NEEDED_MACROS progname = winix all: $(progname) $(progname): $(objfiles) pikotools morm ezc $(CXX) -o $(progname) $(CXXFLAGS) $(LDFLAGS) $(objfiles) $(GLOBAL_WORKING_DIR)/ezc/src/ezc.a $(GLOBAL_WORKING_DIR)/morm/src/morm.a $(GLOBAL_WORKING_DIR)/pikotools/src/pikotools.a %.o: %.cpp $(CXX) -c $(CXXFLAGS) -o $@ $< .PHONY: pikotools .PHONY: morm .PHONY: ezc pikotools: $(MAKE) -C ../../../pikotools morm: $(MAKE) -C ../../../morm/src ezc: $(MAKE) -C ../../../ezc/src clean: rm -f $(objfiles) rm -f $(progname) $(MAKE) -C ../../../pikotools clean $(MAKE) -C ../../../morm/src clean $(MAKE) -C ../../../ezc/src clean depend: makedepend -Y. -I../../../pikotools/src -I../../../morm/src -I../../../ezc/src -I../../../tito/src $(WINIX_NEEDED_MACROS) -f- $(sourcefiles) > Makefile.dep -include Makefile.dep