Простейший (полезный) make-файл, который позволяет режим отладки / выпуска:
#
# Define the source and object files for the executable
SRC = $(wildcard *.cpp)
OBJ = $(patsubst %.cpp,%.o, $(SRC))
#
# set up extra flags for explicitly setting mode
debug: CXXFLAGS += -g
release: CXXFLAGS += -O3
#
# Link all the objects into an executable.
all: $(OBJ)
$(CXX) -o example $(LDFLAGS) $(OBJ) $(LOADLIBES) $(LDLIBS)
#
# Though both modes just do a normal build.
debug: all
release: all
clean:
rm $(OBJ)
Использование Сборка по умолчанию (без заданных оптимизаций)
> make
g++ -c -o p1.o p1.cpp
g++ -c -o p2.o p2.cpp
g++ -o example p1.o p2.o
Использование: сборка выпуска (использует -O3)
> make clean release
rm p1.o p2.o
g++ -O3 -c -o p1.o p1.cpp
g++ -O3 -c -o p2.o p2.cpp
g++ -o example p1.o p2.o
Использование: отладочная сборка (использует -g)
> make clean debug
rm p1.o p2.o
g++ -g -c -o p1.o p1.cpp
g++ -g -c -o p2.o p2.cpp
g++ -o example p1.o p2.o