CC := gcc SRCDIR := src BUILDDIR := build BINDIR := bin TESTDIR := tests TARGET := bin/cterm TESTBIN := bin/testsuite 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 #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) run: $(TARGET) /bin/sh $(TESTBIN): $(TESTDIR)/tests.c @echo " Building Testsuite..."; $(CC) $(CFLAGS) -O0 $(INC) -I$(SRCDIR) $(TESTDIR)/tests.c -o $(TESTBIN) @echo " Running Tests..." bin/testsuite test: $(TESTBIN) 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 clean: @echo " Cleaning..."; @echo " cat /dev/null > $(TESTDIR)/trace.lp"; cat /dev/null > $(TESTDIR)/trace.lp; @echo " $(RM) -r $(BUILDDIR)/* $(BINDIR)/*"; $(RM) -r $(BUILDDIR)/* $(BINDIR)/*; .PHONY: clean