На главную | В раздел

Sample makefile for GCC precompiled header file (GCH/PCH)

Ниже представлен текст простого makefile, который позволит Вам собрать приложение из нескольких модулей в CXX файлах.
Этот makefile позвволит Вам использовать GNU C Compiler precompiled header file GCH.
Для использования Вам необходимо изменить название приложения(sample-application) на Ваше, добавить/удалить флаги компилятора(CXXFLAGS) и сборщика(LDFLAGS), зависимости от бибилотек(LIBS).
Этот makefile предполагает, следующую структуру проекта:
./include/ - папка с заголовками, которые все без исключения необходимо включать в файл precomp.h (precompiled header) директивами #include
./ - папка в которой лежат CXX файлы модулей Вашего приложения, полученные в результате компиляции объектные модули (файлы с расширением o)

# User defined
TARGET=sample-application
SOURCES=$(wildcard *.cxx)
OBJECTS=$(SOURCES:%.cxx=%.o)
LIBS=

# Standard
CXX=g++
CXXFLAGS:=-g -Wall -O0 -Iinclude -c
LD=g++
LDFLAGS:=$(LIBS)

all: $(TARGET)
	@echo Done!

$(TARGET) : precomp.h.gch $(OBJECTS)
	@echo Linking
	$(LD) $(LDFLAGS) -o $@ $(OBJECTS)

%.o: %.cxx
	@echo "$(CXX): $< -> $@"
	@$(CXX) $< $(CXXFLAGS) -include precomp.h -o $@

precomp.h.gch : precomp.h
	@echo Precompiled header
	@$(CXX) $< $(CXXFLAGS) -o $@

clean:
	@echo Cleaning
	rm -f precomp.h.gch *.o $(TARGET)



© Константин С. Вишнивецкий, 2007-2017