# Simple Makefile for Lodestone test

# The Code

CFILES  = createLoader.c createTest.c 
CXXFILES= echoBackend.cpp lsOBJLoader.cpp
HFILES  = lodestone.h createLoader.h echoBackend.h lsOBJLoader.h

OBJ= $(CFILES:.c=.o) $(CXXFILES:.cpp=.o)

# The Targets

lsOBJLoader: echoBackend.o lsOBJLoader.o lsOBJTest.o
	$(LD) -o objTest $(LDOPTS) $^ -lGL -lm $(LDLIBS)

createTest: $(OBJ)
	$(LD) -o createTest $(LDOPTS) $^ -lGL -lm  $(LDLIBS)

doc:
	doxygen Doxygen.cfg
    
# Check OS-dependent options

OS := $(shell echo `uname`)

ifeq ($(OS),IRIX)
    
    CC       := cc
    CCOPTS   := -g -n32
    LD       := CC
    LDOPTS   := $(CXXOPTS)
    LDLIBS   := -lCio
    CXX      := CC
    CXXOPTS  := $(CCOPTS) -LANG:std

endif
ifeq ($(OS),IRIX64)
    
    CC       := cc
    CCOPTS   := -g -n32
    LD       := CC
    LDOPTS   := $(CXXOPTS)
    LDLIBS   := -lCio
    CXX      := CC
    CXXOPTS  := $(CCOPTS) -LANG:std

endif
ifeq ($(OS),Linux)
    
    CC       := gcc
    CCOPTS   := -g -ansi 
    LD       := c++
    LDOPTS   := $(CCOPTS)
    LDLIBS   := 
    CXX      := c++
    CXXOPTS  := $(CCOPTS)

endif

# Default Rules

%.o: %.c 
	$(CC) -c $(CCOPTS) $<

%.o: %.cpp 
	$(CXX) -c $(CXXOPTS) $<

clean:
	rm -f *.o core

# Dependencies

trivialGraph.o: lodestone.h trivialGraph.h
trivialLoader.o: lodestone.h trivialLoader.h
