52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
include ../premake.make
 | 
						|
LDLIBS += -lboost_unit_test_framework
 | 
						|
 | 
						|
BIN := $(shell basename $$(pwd))
 | 
						|
 | 
						|
SRCS := $(notdir $(wildcard src/*.cpp))
 | 
						|
SRCS += $(notdir $(filter-out ../src/main.cpp,$(wildcard ../src/*.cpp)))
 | 
						|
OBJS := $(SRCS:.cpp=.o)
 | 
						|
DEPS := $(SRCS:.cpp=.d)
 | 
						|
 | 
						|
BUILDDIR := build/intermediates/
 | 
						|
 | 
						|
CXX ?= g++
 | 
						|
RM := /bin/rm -rf
 | 
						|
 | 
						|
CXXFLAGS += -Wshadow -Wall -Wpedantic -Wextra -Wno-unused-parameter
 | 
						|
CXXFLAGS += -g3 -std=c++20 -I../src
 | 
						|
ifeq ($(DEBUG),1)
 | 
						|
	CXXFLAGS += -D DEBUG -O0
 | 
						|
	CONFIG := debug
 | 
						|
else
 | 
						|
	CXXFLAGS += -D NDEBUG -O3
 | 
						|
	CONFIG := release
 | 
						|
endif
 | 
						|
OUTDIR := build/$(CONFIG)/
 | 
						|
 | 
						|
vpath %.cpp src ../src
 | 
						|
vpath %.d $(BUILDDIR)
 | 
						|
vpath %.o $(BUILDDIR)
 | 
						|
 | 
						|
.PHONY: all clean prebuild
 | 
						|
 | 
						|
all: prebuild $(OUTDIR)$(BIN)
 | 
						|
 | 
						|
prebuild:
 | 
						|
	@mkdir -p $(BUILDDIR) $(OUTDIR)
 | 
						|
 | 
						|
$(OUTDIR)$(BIN): $(OBJS)
 | 
						|
	$(CXX) $(addprefix $(BUILDDIR),$(OBJS)) $(LDFLAGS) $(LDLIBS) -o $(OUTDIR)$(BIN)
 | 
						|
	@ln -sf $(OUTDIR)$(BIN) $(BIN)
 | 
						|
 | 
						|
%.o %.d: %.cpp
 | 
						|
	$(CXX) $(CXXFLAGS) -MMD -MP -MT $@ -MF $*.d -c $<
 | 
						|
	@mv $@ $*.d $(BUILDDIR)
 | 
						|
 | 
						|
-include $(addprefix $(BUILDDIR), $(DEPS))
 | 
						|
 | 
						|
clean:
 | 
						|
	$(RM) build $(BIN)
 | 
						|
 | 
						|
-include postmake.make
 |