1234567891011121314151617181920212223242526272829303132333435363738394041 |
- CC = g++
- PROJECT = ld39
- OBJDIR = obj
- SRCDIR = src
- IDIR = include
- OPTS = -std=c++14 -g -Wall -I$(IDIR)
- LIBS = -ltmxlite -lsfml-audio -lsfml-graphics -lsfml-window -lsfml-system
- SRCS = $(shell find $(SRCDIR) -name '*.cpp')
- SRCDIRS = $(shell find . -name '*.cpp' | dirname {} | sort | uniq | sed 's/\/$(SRCDIR)//g' )
- OBJS = $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$(SRCS))
- .PHONY: default all clean
- .PRECIOUS: $(TARGET)
- default: $(PROJECT)
- all: default
- $(PROJECT): buildrepo $(OBJS)
- $(CC) $(OBJS) $(LIBS) -o $@
- $(OBJDIR)/%.o: $(SRCDIR)/%.cpp
- $(CC) $(OPTS) -c $< -o $@
- clean:
- -rm -f obj/*.o
- -rm -f $(TARGET)
- run:
- -./$(PROJECT)
-
- buildrepo:
- @$(call make-repo)
- define make-repo
- mkdir -p $(OBJDIR)
- for dir in $(SRCDIRS); \
- do \
- mkdir -p $(OBJDIR)/$$dir; \
- done
- endef
|