libcp/Makefile
2025-05-11 21:51:54 +03:00

38 lines
750 B
Makefile

LIB=libc+
COM_FLAGS = -fPIC -Isrc/include
CC_FLAGS = -std=c23
CXX_FLAGS = -std=c++23 -nostdinc++
LD_FLAGS = -nostdlib++ -lsupc++
CC=gcc
CXX=g++
LD=g++
AR=ar
cxx_sources=$(wildcard src/*.cpp)
c_sources=$(wildcard src/*.c)
objects=$(patsubst src/%.cpp,build/obj/%.cpp.o,$(cxx_sources)) $(patsubst src/%.c,build/obj/%.c.o,$(c_sources))
all: build/$(LIB).a build/$(LIB).so compile_commands.json
build/$(LIB).a: $(objects)
$(AR) rcs $@ $^
build/$(LIB).so: $(objects)
$(LD) -shared -o $@ $^
clean:
rm -r build/obj/
build/obj/%.cpp.o: */%.cpp
@mkdir -p $(dir $@)
$(CXX) -c -o $@ $< $(CXX_FLAGS) $(COM_FLAGS)
build/obj/%.c.o: */%.c
@mkdir -p $(dir $@)
$(CC) -c -o $@ $< $(CC_FLAGS) $(COM_FLAGS)
compile_commands.json:
compiledb -n make