Makefile watch for header updates

This commit is contained in:
2024-03-24 20:14:18 +01:00
parent 5c5686b3d2
commit ae4ebd8e2b
2 changed files with 19 additions and 10 deletions

View File

@@ -12,19 +12,26 @@ INCLUDES = $(shell if [ -n "$(LIBS)" ]; then pkg-config -cflags $(LIBS); fi) -Is
SRC = $(shell find src/ -type f -name '*.c') main.c SRC = $(shell find src/ -type f -name '*.c') main.c
NOM = $(basename $(notdir $(SRC))) NOM = $(basename $(notdir $(SRC)))
OBJ = $(addprefix $(BUILD_DIR)/,$(addsuffix .o, $(NOM))) OBJ = $(addprefix $(BUILD_DIR)/,$(addsuffix .o, $(NOM)))
DEP = $(addprefix $(BUILD_DIR)/,$(addsuffix .d, $(NOM)))
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# MAIN BUILD RULES # MAIN BUILD RULES
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Main rule
all: init build
# General build
build: $(PROJECT_NAME)
# Build all the .o files in src dir # Build all the .o files in src dir
$(BUILD_DIR)/%.o: src/%.c $(BUILD_DIR)/%.o: src/%.c src/includes/%.h Makefile
$(CC) $(CFLAGS) -c $< $(INCLUDES) -o $(BUILD_DIR)/$(notdir $@) $(CC) $(CFLAGS) -MMD -MP -c $< $(INCLUDES) -o $(BUILD_DIR)/$(notdir $@)
# Build all the .o files in base dir # Build all the .o files in base dir
$(BUILD_DIR)/%.o: %.c $(BUILD_DIR)/%.o: %.c Makefile
$(CC) $(CFLAGS) -c $< $(INCLUDES) -o $(BUILD_DIR)/$(notdir $@) $(CC) $(CFLAGS) -MMD -MP -c $< $(INCLUDES) -o $(BUILD_DIR)/$(notdir $@)
# Main program # Main program
$(PROJECT_NAME): $(OBJ) $(PROJECT_NAME): $(OBJ)
@@ -34,6 +41,8 @@ $(PROJECT_NAME): $(OBJ)
kyoutest: $(BUILD_DIR)/helloworld.o kyoutest: $(BUILD_DIR)/helloworld.o
$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
# Dependancies generated by GCC (for headers)
-include $(DEP)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# SILLY RULES # SILLY RULES
@@ -49,10 +58,6 @@ SUSSYBAKA:
# UTILITIES # UTILITIES
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
all: init build
build: $(PROJECT_NAME) localecho
rebuild: clean build rebuild: clean build
dev: build run dev: build run
@@ -66,17 +71,20 @@ test:
@echo CC: $(CC) @echo CC: $(CC)
@echo CFLAGS: $(CFLAGS) @echo CFLAGS: $(CFLAGS)
@echo LDFLAGS: $(LDFLAGS) @echo LDFLAGS: $(LDFLAGS)
@echo LIBS: $(LIBS)
@echo LDLIBS: $(LDLIBS) @echo LDLIBS: $(LDLIBS)
@echo OBJ: $(OBJ) @echo OBJ: $(OBJ)
@echo SRC: $(SRC) @echo SRC: $(SRC)
@echo DEP: $(DEP)
@echo INCLUDES: $(INCLUDES) @echo INCLUDES: $(INCLUDES)
run: $(PROJECT_NAME) run: $(PROJECT_NAME)
./$(PROJECT_NAME) ./$(PROJECT_NAME)
clean: clean:
@rm -rif *.o *.gch @rm -if $(OBJ) $(DEP)
@rm -rif $(BUILD_DIR)/*.o $(BUILD_DIR)/*.gch # @rm -rif *.o *.gch
# @rm -rif $(BUILD_DIR)/*.o $(BUILD_DIR)/*.gch
clear: clean clear: clean
@rm $(PROJECT_NAME) @rm $(PROJECT_NAME)

View File

@@ -1,3 +1,4 @@
#define DEBUG
extern char* sTestString; extern char* sTestString;