#
# Introduction to Computing II (Keisanki Joron 2)
# Dept. of Engineering Systems, University of Tsukuba
# 2008/09/02, kameda[at]iit.tsukuba.ac.jp

#
# To use make command for compiling a single source file, 
# e.g. foo.c, type
#
# $ make foo
#

#---------------------------------------------------------
# generic variables
#---------------------------------------------------------

# Compiler
CC	 = gcc

# Options used on compiling
#CFLAGS   = -O2 -Wall 
CFLAGS   = -g -Wall 

# Options used on linking
LDFLAGS	 = -L/usr/X11R6/lib

# Libraries to be linked (OpenGL)
LDLIBS	 = -lX11 -lXmu -lXi -lGL -lGLU -lglut -lm 

#---------------------------------------------------------
# local variables
#---------------------------------------------------------

EXENAME = Animator-run

# Quiz-B2 (must)
OBJ_B2 = \
	rd-animator-data.o \
	rd-animator-script.o
MSC_B2 = \
	fl-animator-global.o \
	fl-animator-geomextra.o \
	fl-animator-geom.o \
	fl-animator-drawprimitive.o \
	fl-animator-drawextra.o \
	fl-animator-drawcore.o \
	fl-animator-callback.o \
	fl-animator-initgl.o \
	fl-animator-main.o

# Quiz-B23 (option)
OBJ_B23 = \
	rd-animator-data.o \
	rd-animator-script.o \
	st-animator-callback.o \
	st-animator-main.o
MSC_B23 = \
	fl-animator-global.o \
	fl-animator-geomextra.o \
	fl-animator-geom.o \
	fl-animator-drawprimitive.o \
	fl-animator-drawextra.o \
	fl-animator-drawcore.o \
	fl-animator-initgl.o 

# Quiz-C1/C11/D1, if you didn't do Quiz-B23
OBJ_C1 = \
	rd-animator-data.o \
	rd-animator-script.o \
	st-animator-geom.o \
	st-animator-drawcore.o 
MSC_C1 = \
	fl-animator-global.o \
	fl-animator-geomextra.o \
	fl-animator-drawprimitive.o \
	fl-animator-drawextra.o \
	fl-animator-callback.o \
	fl-animator-initgl.o \
	fl-animator-main.o

# Quiz-C1/C11/D1, # if you did Quiz-B23
OBJ_C1e = \
	rd-animator-data.o \
	rd-animator-script.o \
	st-animator-geom.o \
	st-animator-drawcore.o \
	st-animator-callback.o \
	st-animator-main.o
MSC_C1e = \
	fl-animator-global.o \
	fl-animator-geomextra.o \
	fl-animator-drawprimitive.o \
	fl-animator-drawextra.o \
	fl-animator-initgl.o 

#---------------------------------------------------------
# make rules
#---------------------------------------------------------

default:
	echo "Please specify one target ...."

clean:
	rm -f *.o *~ core

cleanup:
	rm -f *.o *~ core $(EXENAME)*

through: B2 B23 C1 C1e C11 C11e D1 D1e

$(OBJ_B2) $(OBJ_B23): st-animator-ic2.h

#------------------------------------
B2: $(EXENAME)B2

$(EXENAME)B2: $(OBJ_B2)
	gcc -o $@ $(OBJ_B2) $(MSC_B2) $(LDFLAGS) $(LDLIBS)

#------------------------------------
B23: $(EXENAME)B23

$(EXENAME)B23: $(OBJ_B23)
	gcc -o $@ $(OBJ_B23) $(MSC_B23) $(LDFLAGS) $(LDLIBS)

#------------------------------------
C1: $(EXENAME)C1

$(EXENAME)C1: $(OBJ_C1)
	gcc -o $@ $(OBJ_C1) $(MSC_C1) $(LDFLAGS) $(LDLIBS)

#------------------------------------
C1e: $(EXENAME)C1e

$(EXENAME)C1e: $(OBJ_C1e)
	gcc -o $@ $(OBJ_C1e) $(MSC_C1e) $(LDFLAGS) $(LDLIBS)

#------------------------------------
C11: $(EXENAME)C11

$(EXENAME)C11: $(OBJ_C1)
	gcc -o $@ $(OBJ_C1) $(MSC_C1) $(LDFLAGS) $(LDLIBS)

#------------------------------------
C11e: $(EXENAME)C11e

$(EXENAME)C11e: $(OBJ_C1e)
	gcc -o $@ $(OBJ_C1e) $(MSC_C1e) $(LDFLAGS) $(LDLIBS)

#------------------------------------
D1: $(EXENAME)D1

$(EXENAME)D1: $(OBJ_C1)
	gcc -o $@ $(OBJ_C1) $(MSC_C1) $(LDFLAGS) $(LDLIBS)

#------------------------------------
D1e: $(EXENAME)D1e

$(EXENAME)D1e: $(OBJ_C1e)
	gcc -o $@ $(OBJ_C1e) $(MSC_C1e) $(LDFLAGS) $(LDLIBS)



