61 lines
1.4 KiB
Makefile
61 lines
1.4 KiB
Makefile
CXX ?= g++
|
|
CXXSTD = -std=c++23
|
|
WARN = -Wall -Wextra
|
|
CXXFLAGS ?= $(CXXSTD) $(WARN) -Werror -O2
|
|
BUILD = build
|
|
VERSION = $(shell cat VERSION)
|
|
BIN = $(BUILD)/detz
|
|
|
|
GEN_INC = $(BUILD)/gen
|
|
VERSION_HPP = $(GEN_INC)/version.hpp
|
|
|
|
SRCS = main.cpp src/cli/cli.cpp
|
|
OBJS = $(BUILD)/main.o $(BUILD)/cli.o
|
|
|
|
all: $(BIN)
|
|
|
|
$(VERSION_HPP): VERSION
|
|
@mkdir -p $(GEN_INC)
|
|
@sed 's/@VERSION@/$(VERSION)/' src/cli/version.hpp.in > $@
|
|
|
|
$(BUILD)/main.o: main.cpp src/cli/cli.h $(VERSION_HPP)
|
|
@mkdir -p $(BUILD)
|
|
$(CXX) $(CXXFLAGS) -I$(GEN_INC) -Isrc/cli -c main.cpp -o $@
|
|
|
|
$(BUILD)/cli.o: src/cli/cli.cpp src/cli/cli.h $(VERSION_HPP)
|
|
@mkdir -p $(BUILD)
|
|
$(CXX) $(CXXFLAGS) -I$(GEN_INC) -Isrc/cli -c src/cli/cli.cpp -o $@
|
|
|
|
$(BIN): $(OBJS)
|
|
$(CXX) $(CXXFLAGS) $(OBJS) -o $@
|
|
|
|
test: $(BIN) $(BUILD)/detz_test
|
|
./$(BUILD)/detz_test
|
|
./$(BUILD)/cli_test
|
|
./$(BIN) --version
|
|
|
|
$(BUILD)/detz_test: tests/test_main.cpp tests/cli_test.cpp src/cli/cli.cpp $(VERSION_HPP)
|
|
@mkdir -p $(BUILD)
|
|
$(CXX) $(CXXFLAGS) -Werror -I$(GEN_INC) -Isrc/cli tests/test_main.cpp src/cli/cli.cpp -o $@
|
|
$(CXX) $(CXXFLAGS) -Werror -I$(GEN_INC) -Isrc/cli tests/cli_test.cpp src/cli/cli.cpp -o $(BUILD)/cli_test
|
|
|
|
lint:
|
|
$(CXX) $(CXXSTD) $(WARN) -Werror -fsyntax-only main.cpp -I$(GEN_INC) -Isrc/cli || true
|
|
|
|
version-bump:
|
|
tools/version-bump.sh $(PART)
|
|
|
|
changelog:
|
|
tools/changelog.sh "$(MSG)"
|
|
|
|
tag:
|
|
tools/tag.sh
|
|
|
|
release:
|
|
PART=$(PART) MSG="$(MSG)" tools/release.sh
|
|
|
|
clean:
|
|
rm -rf $(BUILD)
|
|
|
|
-include src/*/*.mk
|