41 lines
		
	
	
		
			736 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			736 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
BIN=YOUR_PROJECT_NAME
 | 
						|
 | 
						|
CC_FLAGS  = -Isrc/include -std=c23
 | 
						|
CXX_FLAGS = -Isrc/include -Ilib/ -std=c++23 -fmodules-ts
 | 
						|
LD_FLAGS  = -lm 
 | 
						|
CC=gcc
 | 
						|
CXX=g++
 | 
						|
LD=gcc
 | 
						|
AR=ar
 | 
						|
 | 
						|
LIBS=
 | 
						|
include lib/make.mk
 | 
						|
 | 
						|
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)) $(LIBS)
 | 
						|
 | 
						|
 | 
						|
all: build/$(BIN) compile_commands.json
 | 
						|
	@rm -r build/obj
 | 
						|
	
 | 
						|
keep: build/$(BIN)
 | 
						|
 | 
						|
clean:
 | 
						|
	rm -r build/obj/
 | 
						|
 | 
						|
 | 
						|
build/$(BIN): $(objects)
 | 
						|
	$(LD)  -o $@ $^ $(LD_FLAGS)
 | 
						|
 | 
						|
build/obj/%.cpp.o: */%.cpp
 | 
						|
	@mkdir -p $(dir $@)
 | 
						|
	$(CXX) -c -o $@ $< $(CXX_FLAGS)
 | 
						|
 | 
						|
build/obj/%.c.o: */%.c
 | 
						|
	@mkdir -p $(dir $@)
 | 
						|
	$(CC) -c -o $@ $< $(CC_FLAGS)
 | 
						|
 | 
						|
compile_commands.json:
 | 
						|
	compiledb -n make
 |