
TARGETS = cgfxcat

UNAME := $(shell uname)

GLEW  := ../../OpenGL/glew

CGFXCAT_C = cgfxcat.c register_states.c

CGFXCAT_OBJS = $(CGFXCAT_C:.c=.o) 

CC         =  gcc
CFLAGS     += -Wall
CFLAGS     += -I"$(GLEW)/include"
CFLAGS     += -DGLEW_STATIC
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 Cg
  CLINKFLAGS += -framework GLUT
  CLINKFLAGS += -framework OpenGL
else
  ifeq ($(findstring CYGWIN, $(UNAME)), CYGWIN)
    CFLAGS     += -D_WIN32
    CFLAGS     += -I"C:\Program Files\NVIDIA Corporation\Cg\include"
    CLINKFLAGS += -L"C:\Program Files\NVIDIA Corporation\Cg\lib"
    CLINKFLAGS += -lcgGL -lcg
    CLINKFLAGS += -lglut32
    CLINKFLAGS += -lglu32 -lopengl32
    EXE = .exe
  else
    ifeq ($(UNAME), SunOS)
      CLINKFLAGS += -lCgGL -lCg
      CLINKFLAGS += -L/usr/X11R6/lib64 -L/usr/X11R6/lib
      CLINKFLAGS += -lglut -lXi -lXmu -lX11 -lm
      CLINKFLAGS += -lGLU -lGL
      CLINKFLAGS += -lpthread
    else
      CLINKFLAGS += -lCgGL -lCg
      CLINKFLAGS += -L/usr/X11R6/lib64 -L/usr/X11R6/lib
      CLINKFLAGS += -lglut -lXi -lXmu -lX11 -lm
      CLINKFLAGS += -lGLU -lGL
      CLINKFLAGS += -lpthread
    endif
  endif
endif

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

all: $(BINARIES)


cgfxcat$(EXE): $(CGFXCAT_OBJS)
	$(CC) $(CFLAGS) $(CGFXCAT_OBJS) -o $@ $(CLINKFLAGS)

run: all
	./cgfxcat$(EXE)

clean:
	$(RM) $(BINARIES) $(CGFXCAT_OBJS) 

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

.PHONY: all run clean clobber
