62 lines
996 B
Makefile
62 lines
996 B
Makefile
SHELL := /usr/bin/env bash
|
|
|
|
PREFIX :=
|
|
CC := $(PREFIX)gcc
|
|
LD := $(PREFIX)ld
|
|
SIZE := $(PREFIX)size
|
|
GDB := $(PREFIX)gdb
|
|
|
|
NAME := c-test-project
|
|
|
|
SRC_DIR := ./src
|
|
INC_DIR := ./inc
|
|
BIN_DIR := ./bin
|
|
OBJ_DIR := $(BIN_DIR)/obj
|
|
|
|
OPT_LEVEL := -g3 \
|
|
-O0
|
|
|
|
C_SRC := main.c
|
|
|
|
C_DEF :=
|
|
C_DEF := $(addprefix -D, $(C_DEF))
|
|
|
|
C_INC := $(INC_DIR)
|
|
C_INC := $(addprefix -I, $(C_INC))
|
|
|
|
C_FLAGS := $(C_DEF) \
|
|
$(C_INC) \
|
|
$(OPT_LEVEL) \
|
|
-Wall \
|
|
-Wextra \
|
|
-Wpedantic \
|
|
-Wconversion \
|
|
-Wsign-conversion \
|
|
-Wsign-compare \
|
|
-Wcast-align=strict \
|
|
-Wfloat-equal \
|
|
-Wlogical-op \
|
|
-Wno-unused-command-line-argument \
|
|
-Werror
|
|
|
|
BINARY := $(BIN_DIR)/$(NAME)
|
|
|
|
MKDIR := $(BIN_DIR) $(OBJ_DIR)
|
|
|
|
VPATH := $(SRC_DIR)
|
|
|
|
|
|
.PHONY: all clean test
|
|
|
|
all: clean $(MKDIR) $(BINARY)
|
|
|
|
clean:
|
|
@rm -rf $(MKDIR)
|
|
|
|
$(MKDIR):
|
|
@mkdir -p $@
|
|
|
|
$(BINARY): $(C_SRC)
|
|
gcc $(C_FLAGS) $^ -o $@
|
|
|