42 lines
714 B
Makefile
Executable file
42 lines
714 B
Makefile
Executable file
CC := gcc
|
|
LD := $(CC)
|
|
LIBS := -lm
|
|
LDFLAGS :=
|
|
CFLAGS := -Wall -Wextra -Wno-override-init -std=c2x -include_.h
|
|
SRC := part1.c mylib.c
|
|
ifeq ($(PART),2)
|
|
SRC := part2.c mylib.c
|
|
endif
|
|
OBJ_DIR := build
|
|
OBJ := $(addprefix $(OBJ_DIR)/, $(patsubst %.c,%.o,$(SRC)))
|
|
DIR := .
|
|
RAW_NAME:= a.out
|
|
NAME := $(RAW_NAME)
|
|
|
|
ifeq ($(RELEASE),1)
|
|
CFLAGS += -O3
|
|
LDFLAGS += -O3 -s
|
|
else
|
|
CFLAGS += -O0 -g3
|
|
LDFLAGS += -O0 -g
|
|
endif
|
|
|
|
all: $(NAME)
|
|
|
|
$(NAME): $(OBJ)
|
|
$(LD) $(LDFLAGS) -o $(DIR)/$(NAME) $(OBJ) $(LIBS)
|
|
|
|
$(OBJ_DIR)/%.o: %.c
|
|
@mkdir -p $(@D)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
clean:
|
|
@rm -rf $(OBJ_DIR)
|
|
@rm -rf $(RAW_NAME)
|
|
|
|
re:
|
|
@make --no-print clean
|
|
@make --no-print all
|
|
|
|
.PHONY: all clean re
|