Makefile/Makefile

49 lines
1.3 KiB
Makefile

# 2024 by Alexander Popov <iiiypuk@fastmail.fm>
# Имя исполняемого файла
PROGRAM = example_binary
# Компиляторы
CC = gcc
CXX = clang-16
# Флаги компиляции для исходных файлов C
CFLAGS = -O2 -Wall
# Флаги компиляции для исходных файлов C++
CXXFLAGS = -std=c++17 -O2 -Wall
# Флаги для Си препроцессора (обычно включают пути к файлам и символы, определенные в командной строке), используемые C и C++
CPPFLAGS = -g
# Флаги компоновщика
LDFLAGS = -O2 -Wall -g
# Библиотеки
LDLIBS = -lstdc++
# Файлы исходных кодов
SRC = lib.c main.cc
# Объектные файлы
OBJ = $(subst .cc,.o,$(SRC))
OBJ := $(subst .c,.o,$(OBJ))
RM = rm -f
# Правило по умолчанию
all: $(PROGRAM)
# Сборка иисполняемого файла
$(PROGRAM): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $(OBJ) $(LDLIBS)
# Сборка объектных файлов
lib.o: lib.c lib.h
main.o: main.cc lib.h
# Очистка скомпилированных файлов
clean:
$(RM) $(OBJ)
# Удаление программы
distclean: clean
$(RM) $(PROGRAM)