61 lines
1.6 KiB
Makefile
61 lines
1.6 KiB
Makefile
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
|