CC = LANG=C g++
LFLAGS += -lGLEW -lglfw -lGL -lGLU -lpthread
CFLAGS += -Wall -Werror
CFLAGS += -O2 -g
NAME = yabba
SOURCES = $(wildcard *.cpp)
OBJECTS = $(SOURCES:.cpp=.o)
HEADERS = $(wildcard *.hpp)
PREFIX ?= /usr/local
FILE_PREFIX = .
install: FILE_PREFIX = $(PREFIX)/share/$(NAME)
CFLAGS += -DFILE_PREFIX=\"$(FILE_PREFIX)\"
BGREEN = "\\033[1\;32m"
GREEN = "\\033[32m"
NORM = "\\033[0m"
$(NAME): $(OBJECTS)
@echo "$(BGREEN)$(@)$(NORM)"
$(CC) \
-o $(@) \
$(^) \
$(LFLAGS)
%.o: %.cpp $(HEADERS) Makefile
@echo "$(GREEN)$(@)$(NORM)"
$(CC) -c \
$(CFLAGS) \
$(<) \
-o $(@)
.PHONY: install
install: $(NAME)
@install -v -t "$(DESTDIR)$(PREFIX)/bin" $(^)
@install -v -d \
"$(DESTDIR)$(PREFIX)/share/$(^)/shaders" \
"$(DESTDIR)$(PREFIX)/share/$(^)/sokoban" \
"$(DESTDIR)$(PREFIX)/share/$(^)/textures"
@install -v -t "$(DESTDIR)$(PREFIX)/share/$(^)/shaders" shaders/*.glsl
@install -v -t "$(DESTDIR)$(PREFIX)/share/$(^)/sokoban" sokoban/*.txt
@install -v -t "$(DESTDIR)$(PREFIX)/share/$(^)/textures" textures/*.ppm
.PHONY: clean
clean:
rm -f $(NAME) $(OBJECTS)