crt/Makefile
CC = LC_ALL=C g++
CFLAGS += -Wall -Werror -DUSE_X -DUSE_THREADS -DUSE_SIMD -DSTATIC_LIGHT -DLIGHTMAP_INTERPOLATE -DIMAGE_INTERPOLATE
LFLAGS += -lpthread -lX11
NAME = crt
SOURCES = $(wildcard *.cpp)
HEADERS = $(wildcard *.hpp) Makefile
OBJECTS = $(SOURCES:.cpp=.o)
PREFIX ?= /usr/local
ifeq ($(MAKECMDGOALS),release)
CFLAGS += -O3 -DNDEBUG -march=native -flto -ffast-math
LFLAGS += -O3 -flto
else
ifeq ($(MAKECMDGOALS),debug)
CFLAGS += -O2 -g -pg -DSTATS
LFLAGS += -pg
else
CFLAGS += -O2 -g -DNDEBUG
endif
endif
$(NAME): $(OBJECTS)
$(CC) -o $(@) $(^) $(LFLAGS)
%.o: %.cpp $(HEADERS)
$(CC) $(CFLAGS) -o $(@) -c $(<)
.PHONY: debug release
debug release: $(NAME)
.PHONY: run
run: $(NAME)
./$(<)
.PHONY: install
install: $(NAME)
@install -v -t "$(DESTDIR)$(PREFIX)/bin" $(^)
.PHONY: clean
clean:
rm -f $(NAME) $(OBJECTS)