| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 33 | 
1 files changed, 22 insertions, 11 deletions
| @@ -1,23 +1,34 @@ +################################################################################ +################################################################################  CFLAGS += -O3 +CFLAGS += -Wall -Wextra -pedantic -Werror  CFLAGS += -D_POSIX_SOURCE  CFLAGS += -D_POSIX_C_SOURCE=200809L  ################################################################################ -EXECUTABLE = jh-cli -SRC_DIR = ./src +EXECUTABLE ?= jh-cli +BASE_DIR ?= $(CURDIR) +SRC_DIR ?= $(BASE_DIR)/src +COMPILE_DIR ?= $(BASE_DIR)/compilation_data  ################################################################################ -export +SRC_FILES ?= $(shell find $(SRC_DIR) -type f -name *.c) +OBJ_FILES ?= $(patsubst $(SRC_DIR)/%.c,$(COMPILE_DIR)/%.o,$(SRC_FILES)) +DEP_FILES ?= $(patsubst %.o,%.d,$(OBJ_FILES))  ################################################################################  build: $(EXECUTABLE) -$(EXECUTABLE): $(SRC_DIR)/export.a -	$(CC) $(CFLAGS) -o $@ $< +$(OBJ_FILES): $(COMPILE_DIR)/%.o : $(SRC_DIR)/%.c $(COMPILE_DIR)/%.d +	$(CC) $(CFLAGS) -c -o $@ $< -$(SRC_DIR)/export.a: .JUST_CHECK -	$(MAKE) -C $(SRC_DIR) export.a +$(DEP_FILES): $(COMPILE_DIR)/%.d: $(SRC_DIR)/%.c +	mkdir -p $(dir $@) +	@set -e; rm -f $@; \ +		$(CC) -M $(CFLAGS) $< > $@.$$$$; \ +		sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ +		rm -f $@.$$$$ -clean: -	$(MAKE) -C $(SRC_DIR) clean -	rm -f $(EXECUTABLE) +$(EXECUTABLE): $(OBJ_FILES) +	$(CC) $(CFLAGS) -o $@ $^ -.JUST_CHECK: +clean: +	rm -fr $(EXECUTABLE) $(COMPILE_DIR) | 


