Makefile : now checks if CC compiler is installed and executable

This commit is contained in:
saundersp 2024-03-09 20:36:07 +01:00
parent 0da832aa8b
commit 6011177dd4

View File

@ -21,11 +21,11 @@ all: $(EXEC)
$(OBJ_DIR): $(OBJ_DIR):
@mkdir -v $@ @mkdir -v $@
$(OBJ_DIR)/%.$(OBJ_EXT): $(SRC_DIR)/%.cpp $(SRC_DIR)/%.hpp | $(OBJ_DIR) $(OBJ_DIR)/%.$(OBJ_EXT): $(SRC_DIR)/%.cpp $(SRC_DIR)/%.hpp | $(OBJ_DIR) check-cc-works
@echo Compiling $< @echo Compiling $<
@$(CC) $(CFLAGS) -c $< -o $@ @$(CC) $(CFLAGS) -c $< -o $@
$(EXEC): $(OBJ) $(EXEC): $(OBJ) | check-cc-works
@echo Linking objects files to $@ @echo Linking objects files to $@
@$(CC) $(CFLAGS) $^ -o $@ @$(CC) $(CFLAGS) $^ -o $@
@ -36,7 +36,7 @@ profile: start | check-gprof-works check-gprof2dot-works
@gprof $(EXEC) gmon.out | gprof2dot | dot -Tpng -o output.png @gprof $(EXEC) gmon.out | gprof2dot | dot -Tpng -o output.png
debug: $(EXEC) | check-gdb-works debug: $(EXEC) | check-gdb-works
@gdb -q -tui $(EXEC) -x copies @gdb -q -tui $(EXEC)
check: $(EXEC) | check-valgrind-works check: $(EXEC) | check-valgrind-works
@valgrind -q -s --leak-check=full --show-leak-kinds=all $(EXEC) @valgrind -q -s --leak-check=full --show-leak-kinds=all $(EXEC)
@ -53,6 +53,10 @@ mrproper: clean
.PHONY: check-env .PHONY: check-env
check-env: check-gprof2dot-works check-gprof-works check-gdb-works check-valgrind-works check-r2-works check-env: check-gprof2dot-works check-gprof-works check-gdb-works check-valgrind-works check-r2-works
.PHONY: check-cc-works
check-cc-works:
@${CC} --help >/dev/null 2>&1 || (echo 'Please install a valid CC compiler.' && exit 1)
.PHONY: check-gprof2dot-works .PHONY: check-gprof2dot-works
check-gprof2dot-works: check-gprof2dot-works:
@gprof2dot --help >/dev/null 2>&1 || (echo 'Please install gprof2dot.' && exit 1) @gprof2dot --help >/dev/null 2>&1 || (echo 'Please install gprof2dot.' && exit 1)