diff --git a/Makefile b/Makefile index e6481e0..b6cfcd4 100644 --- a/Makefile +++ b/Makefile @@ -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 NOM = $(basename $(notdir $(SRC))) OBJ = $(addprefix $(BUILD_DIR)/,$(addsuffix .o, $(NOM))) +DEP = $(addprefix $(BUILD_DIR)/,$(addsuffix .d, $(NOM))) #------------------------------------------------------------------------------ # MAIN BUILD RULES #------------------------------------------------------------------------------ +# Main rule +all: init build + +# General build +build: $(PROJECT_NAME) + # Build all the .o files in src dir -$(BUILD_DIR)/%.o: src/%.c - $(CC) $(CFLAGS) -c $< $(INCLUDES) -o $(BUILD_DIR)/$(notdir $@) +$(BUILD_DIR)/%.o: src/%.c src/includes/%.h Makefile + $(CC) $(CFLAGS) -MMD -MP -c $< $(INCLUDES) -o $(BUILD_DIR)/$(notdir $@) # Build all the .o files in base dir -$(BUILD_DIR)/%.o: %.c - $(CC) $(CFLAGS) -c $< $(INCLUDES) -o $(BUILD_DIR)/$(notdir $@) +$(BUILD_DIR)/%.o: %.c Makefile + $(CC) $(CFLAGS) -MMD -MP -c $< $(INCLUDES) -o $(BUILD_DIR)/$(notdir $@) # Main program $(PROJECT_NAME): $(OBJ) @@ -34,6 +41,8 @@ $(PROJECT_NAME): $(OBJ) kyoutest: $(BUILD_DIR)/helloworld.o $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ +# Dependancies generated by GCC (for headers) +-include $(DEP) #------------------------------------------------------------------------------ # SILLY RULES @@ -49,10 +58,6 @@ SUSSYBAKA: # UTILITIES #------------------------------------------------------------------------------ -all: init build - -build: $(PROJECT_NAME) localecho - rebuild: clean build dev: build run @@ -66,17 +71,20 @@ test: @echo CC: $(CC) @echo CFLAGS: $(CFLAGS) @echo LDFLAGS: $(LDFLAGS) + @echo LIBS: $(LIBS) @echo LDLIBS: $(LDLIBS) @echo OBJ: $(OBJ) @echo SRC: $(SRC) + @echo DEP: $(DEP) @echo INCLUDES: $(INCLUDES) run: $(PROJECT_NAME) ./$(PROJECT_NAME) clean: - @rm -rif *.o *.gch - @rm -rif $(BUILD_DIR)/*.o $(BUILD_DIR)/*.gch + @rm -if $(OBJ) $(DEP) +# @rm -rif *.o *.gch +# @rm -rif $(BUILD_DIR)/*.o $(BUILD_DIR)/*.gch clear: clean @rm $(PROJECT_NAME) diff --git a/src/includes/test.h b/src/includes/test.h index 323a278..ccc60c8 100644 --- a/src/includes/test.h +++ b/src/includes/test.h @@ -1,3 +1,4 @@ +#define DEBUG extern char* sTestString; \ No newline at end of file