CC = LANG=C g++
LFLAGS += -lGLEW -lglfw -lGL -lcrypto
CFLAGS += -Wall -Werror -Wno-unused-function
CFLAGS += -O3 -g

NAME = ogl_md5
FILES = $(wildcard *.cpp)
INCFILES = $(wildcard *.glsl)
OBJECTS = $(INCFILES:%.glsl=%.glsl.o) $(FILES:%.cpp=%.o)
PREFIX ?= /usr/local

BGREEN = "\\033[1\;32m"
GREEN = "\\033[32m"
NORM = "\\033[0m"

.SUFFIXES:

$(NAME): $(OBJECTS)
    @echo "$(BGREEN)$(@)$(NORM)"
    $(CC) \
    -o $(@) \
    $(^) \
    $(LFLAGS)

%.o: %.cpp Makefile
    @echo "$(GREEN)$(@)$(NORM)"
    $(CC) -c \
    $(CFLAGS) \
    $(<) \
    -o $(@)

%.glsl.cpp: %.glsl
    xxd -i $(<) > $(@)

.PHONY: install
install: $(NAME)
    @install -v -t "$(DESTDIR)$(PREFIX)/bin" $(^)

.PHONY: clean
clean:
    rm -f $(NAME) $(OBJECTS) *.glsl.cpp