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
 |