morph/Makefile
2025-06-24 21:09:26 +03:00

39 lines
733 B
Makefile

BIN=morph
BUILD_DIR?=build
CC_FLAGS = -std=c23 -ggdb -Isrc/include
CXX_FLAGS = -std=c++23 -ggdb
LD_FLAGS = -ggdb
CC=clang
CXX=clang
LD=clang
AR=ar
cxx_sources=$(wildcard src/*.cpp)
c_sources=$(wildcard src/*.c)
objects=$(patsubst src/%.cpp,$(BUILD_DIR)/obj/%.cpp.o,$(cxx_sources)) $(patsubst src/%.c,$(BUILD_DIR)/obj/%.c.o,$(c_sources))
all: $(BUILD_DIR)/$(BIN)
# compile_commands.json
$(BUILD_DIR)/$(BIN): $(objects)
$(LD) -o $@ $^ $(LD_FLAGS)
clean:
rm -r $(BUILD_DIR)/obj/
$(BUILD_DIR)/obj/%.cpp.o: */%.cpp
@mkdir -p $(dir $@)
$(CXX) -c -o $@ $< $(CXX_FLAGS) $(COM_FLAGS)
$(BUILD_DIR)/obj/%.c.o: */%.c
@mkdir -p $(dir $@)
$(CC) -c -o $@ $< $(CC_FLAGS) $(COM_FLAGS)
compile_commands.json:
compiledb -n make