Skip to content

Instantly share code, notes, and snippets.

@jchaffin
Last active March 11, 2018 23:18
Show Gist options
  • Save jchaffin/2bea236de377dcaa4e0fd5f8a9fe74f9 to your computer and use it in GitHub Desktop.
Save jchaffin/2bea236de377dcaa4e0fd5f8a9fe74f9 to your computer and use it in GitHub Desktop.
Makefile template for C++
x :=
CC :=g++
CXXFLAGS := -O3 -std=c++0x -pg -D_DEBUG -g -c -Wall
SRCDIR := src
BUILDDIR := build
BINDIR = bin
TARGET := $(BINDIR)/$(X)
SRCEXT := cpp
SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
OBJECTS := $(patsubst $(SRCDIR)/%, $(BUILDDIR)/%, $(SOURCES:.$(SRCEXT)=.o))
INC := -I include
$(BUILDDIR)/%.o : $(SRCDIR)/%.$(SRCEXT)
@mkdir -p $(BUILDDIR)
@echo " $(CC) $(CXXFLAGS) $(INC) -c -o $@ $<"; $(CC) $(CXXFLAGS) $(INC) $< -o $@
$(TARGET): $(OBJECTS)
@echo " Linking..."
@mkdir -p $(BINDIR)
@echo " $(CC) $^ -o $(TARGET)"; $(CC) $^ -o $(TARGET)
@echo "\nCASH RULES EVERYTHING AROUND ME CREAMIN' 💵"
clean:
@echo "Cleaning...";
$(shell echo rm -rf bin build src/*.o)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment