
TARGETS = cgfx_bumpdemo cgfx_bumpdemo2

UNAME := $(shell uname)

CC = gcc
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 -lopengl32 -lglu32
    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

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

all: $(BINARIES)

cgfx_bumpdemo$(EXE) : cgfx_bumpdemo.o
	$(CC) $(CFLAGS) -o $@ cgfx_bumpdemo.o $(CLINKFLAGS)

cgfx_bumpdemo2$(EXE) : cgfx_bumpdemo2.o
	$(CC) $(CFLAGS) -o $@ cgfx_bumpdemo2.o $(CLINKFLAGS)

run: all
	./cgfx_bumpdemo$(EXE)
	./cgfx_bumpdemo2$(EXE)

clean:
	$(RM) $(BINARIES) cgfx_bumpdemo.o cgfx_bumpdemo2.o

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

.PHONY: all run clean clobber
