Makefile
Dies ist ein minimales Makefile, um ein C++-Projekt zu compilieren. Durch das Generieren der Dependencies werden auch Änderungen an Header-Dateien erkannt.
- Makefile
CXX = g++ CXXFLAGS ?= -g -Wall DEFINES += INCLUDES += LIBRARIES += LDFLAGS := SRCDIR := src BUILDDIR := build TARGET := program SOURCES := $(shell find $(SRCDIR) -type f -name "*.cpp") OBJECTS := $(patsubst $(SRCDIR)%, $(BUILDDIR)%, $(SOURCES:.cpp=.o)) DEPENDENCIES := $(OBJECTS:.o=.d) all: $(OBJECTS) $(CXX) -o $(BUILDDIR)/$(TARGET) $(LIBRARIES) $(OBJECTS) $(LDFLAGS) $(BUILDDIR)/%.o: $(SRCDIR)/%.cpp @- mkdir -p $(dir $@) $(CXX) $(CXXFLAGS) $(DEFINES) $(INCLUDES) -MMD -MF $(patsubst %.o,%.d,$@) -c $< -o $@ -include $(DEPENDENCIES) clean: rm -rf $(BUILDDIR) .PHONY: all clean
Alternativ zum Erzeugen einer statischen Bibliothek
all: $(OBJECTS) ar -rsc $(TARGET).a $(OBJECTS)