OS=$(shell uname)
CXX=g++
CXXFLAGS=-std=c++20 -DNOSSL
DEV=1
TEST=1

ifeq ($(DEV),1)
	CXXFLAGS += -Wall -g
else
	CXXFLAGS += -O3 -flto
endif

ifneq ($(OS),Darwin)
CXXFLAGS += -static
endif

ifeq ($(TEST),1)
	CXXFLAGS += -DTEST_EXCHANGE
endif

ws=easywsclient/easywsclient.o
xml=ftplibpp/ftplib.o
main=${ws} ${xml} json.o bom.o protocol.o book.o

default: test click bot

test: test.o strat.o ${main}
	${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ $^

click: click.o ${main}
	${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ $^

bot: bot.o strat.o ${main}
	${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ $^

%.o: %.cpp
	${CXX} ${CXXFLAGS} -c -o $@ $^

.PHONY: clean
clean:
	rm -f ${main} test click bot