CC := gcc
SRCDIR := src
BUILDDIR := build
TESTDIR := testing
TARGET := bin/cterm
SRCEXT := c
SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
CFLAGS := -lreadline
LIB := -L lib -lutil -lreadline
INC := -I include


$(TARGET): $(OBJECTS)
	@echo " Incrementing Build #"; make/genbuildno.sh
	@echo "Build number: $(shell grep BUILD include/config.h | cut -d' ' -f 3)"
	@echo " Linking..."
	@echo " $(CC) $^ -o $(TARGET) $(LIB)"; $(CC) $^ -o $(TARGET) $(LIB) -O3
	@echo " Done!"

$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
	@echo " Building..."
	@mkdir -p $(BUILDDIR)
	@echo " $(CC) $(CFLAGS) $(INC) -c -o $@ $<"; $(CC) $(CFLAGS) $(INC) -c -o $@ $< -save-temps -O3

clean:
	@echo " Cleaning..."; 
	@echo " cat /dev/null > $(TESTDIR)/trace.lp"; cat /dev/null > $(TESTDIR)/trace.lp;
	@echo " $(RM) -r $(BUILDDIR) $(TARGET)"; $(RM) -r $(BUILDDIR)/* $(TARGET);

#debug:	clean
debug:	CFLAGS += -ggdb -O0 -Wall -Wextra -pedantic -Wno-unused-variable -Wno-unused-parameter
debug:	CFLAGS += -D"DEBUG=1" -DGITBRANCH=\"$(shell git branch --show-current)\"
debug:	$(TARGET)

test:
	$(TARGET) /bin/sh

trace:
	cat /dev/null > $(TESTDIR)/trace.lp;
	strace -o $(TESTDIR)/trace.lp $(TARGET) /bin/sh

tracef:
	cat /dev/null > $(TESTDIR)/trace.lp;
	strace -fo $(TESTDIR)/trace.lp $(TARGET) /bin/sh

.PHONY: clean
