Skip to content

Instantly share code, notes, and snippets.

@skgsergio
Last active April 12, 2016 16:27
Show Gist options
  • Save skgsergio/3592136d4e64a5304b89 to your computer and use it in GitHub Desktop.
Save skgsergio/3592136d4e64a5304b89 to your computer and use it in GitHub Desktop.
Makefile para G3D
# Compilador, puede cambiarse con make CC=clang CXX=clang
CC ?= gcc
CXX ?= g++
# Flags normales
CCFLAGS = -march=native -O2 -fomit-frame-pointer -pipe
CXXFLAGS = $(CCFLAGS)
LDFLAGS = -Wl,-O1 -Wl,--as-needed
# Flags para debug
CCFLAGSDBG = -g -Wall -Wextra -pedantic
CXXFLAGSDBG = $(CCFLAGSDBG)
LDFLAGSDBG =
# Bibliotecas usadas
LDLIBS = -lGL -lglut -lGLU -lm
# Cada .cpp es auto-contenido y da pie a un binario (lo pide la asignatura)
CXXFILES := $(wildcard *.cpp)
BINFILES := $(CXXFILES:.cpp=.bin)
# Compilación normal
all: $(BINFILES)
strip $(BINFILES)
# Compilación para debug
debug: CCFLAGS = $(CCFLAGSDBG)
debug: CXXFLAGS = $(CXXFLAGSDBG)
debug: LDFLAGS = $(LDFLAGSDBG)
debug: $(BINFILES)
# Compilación de cada binario
%.bin: %.cpp
$(CXX) $(CXXFLAGS) -o $@ $< $(LDFLAGS) $(LDLIBS)
# Borrado de binarios
clean:
rm -f *.bin
# Creación del zip
zip: clean-zip clean debug
for t in $(CXXFILES:.cpp=) ; do \
zip $${t}.zip $${t}.cpp $${t}.bin; \
done
# Borrado del zip
clean-zip:
rm -f *.zip
# Comprobación de código en emacs (flymake)
check-syntax:
$(CXX) -o /dev/null -S ${CHK_SOURCES}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment