42 lines
1.0 KiB
Makefile
42 lines
1.0 KiB
Makefile
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 -lreadline
|
|
INC := -I include
|
|
|
|
$(TARGET): $(OBJECTS)
|
|
@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 " $(RM) -r $(BUILDDIR) $(TARGET)"; $(RM) -r $(BUILDDIR) $(TARGET)
|
|
|
|
debug: CFLAGS += -ggdb -O0 -Wall -Wextra -pedantic -D"DEBUG=1"
|
|
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
|