
TARGETS = 16_keyframe_interpolation

UNAME := $(shell uname)

CSRCS = $(TARGETS:=.c) gli_convert.c gli_misc.c gli_scale.c gli_tga.c glprocs.c loadtex.c md2file.c md2normals.c
CPPSRCS = md2render.cpp
OBJS = $(CSRCS:.c=.o) $(CPPSRCS:.cpp=.o)

CC = gcc
CXX = g++
CFLAGS += -Wall
ifdef CG_INC_PATH
  CFLAGS += -I"$(CG_INC_PATH)"
endif
ifdef CG_LIB_PATH
  CLINKFLAGS += -L"$(CG_LIB_PATH)"
endif

ifeq ($(UNAME), Darwin)
  CLINKFLAGS += -framework OpenGL -framework GLUT -framework Cg
else
  ifeq ($(findstring CYGWIN, $(UNAME)), CYGWIN)
    CFLAGS += -D_WIN32 -DGLUT_DISABLE_ATEXIT_HACK
    CFLAGS += -I"C:\Program Files\NVIDIA Corporation\Cg\include"
    CLINKFLAGS += -L"C:\Program Files\NVIDIA Corporation\Cg\lib"
    CLINKFLAGS += -lcg -lcgGL -lglut32 -lglu32 -lopengl32
    EXE = .exe
  else
    CLINKFLAGS += -L/usr/X11R6/lib64 -L/usr/X11R6/lib
    CLINKFLAGS += -lCg -lCgGL -lglut -lGLU -lGL -lXi -lXmu -lX11 -lm -lpthread
  endif
endif

CXXFLAGS=$(CFLAGS)

BINARIES := $(TARGETS:=$(EXE))

all: $(BINARIES)

$(BINARIES) : $(OBJS)
	$(CXX) $(CFLAGS) -o $@ $(OBJS) $(CLINKFLAGS)

run: all
	./$(BINARIES)

clean:
	$(RM) $(BINARIES) $(OBJS)

clobber: clean
	$(RM) *.bak *.o *~

.PHONY: all run clean clobber

