- PROGNAME := cg
-
- SRCDIR := sources
- INCLUDEDIR := include
- BINDIR := bin
-
- DEBUG := yes
-
- VPATH = $(SRCDIR) $(INCLUDEDIR)
-
- vpath %.cpp $(SRCDIR)
- vpath %.h $(INCLUDEDIR)
-
- ifdef COMSPEC
- # windows
- CXX := g++
- CXXFLAGS := -Wall -I$(INCLUDEDIR) -Ic:/SDL/include
- LIBS := -Lc:/SDL/lib -lmingw32 -lSDLmain -lopengl32 -lglu32 -mwindows
- EXESUFFIX := .exe
- POSTLIBS := -lSDL -lopengl32 -lglu32
-
- MKDIR := mkdir -p
- ECHO := echo
- RM := rm
- else
- # better than windows
- CXX := g++
- CXXFLAGS := -DUNIX -Wall `sdl-config --cflags` -I $(INCLUDEDIR)
- LIBS := `sdl-config --libs` -lGL -lGLU
- EXESUFFIX :=
- POSTLIBS :=
-
- RM := rm -f
- ECHO := echo
- MKDIR := mkdir -p
- endif
-
- ifeq "$(DEBUG)" "yes"
- CXXFLAGS := $(CXXFLAGS) -g -DDEBUG
- endif
-
- OBJECTS = main.o poly.o model.o glumodel.o light.o vec.o material.o color.o thing.o animation.o
-
- all: $(OBJECTS)
- @if [ ! -d $(BINDIR) ]; then \
- $(call run,$(MKDIR) $(BINDIR)); \
- fi
- $(CXX) $(CXXFLAGS) $(LIBS) $^ -o $(BINDIR)/$(PROGNAME)$(EXESUFFIX) $(POSTLIBS)
- run:
- $(BINDIR)/$(PROGNAME)$(EXESUFFIX)
- clean:
- $(RM) *.o
- distclean: clean
- $(RM) $(BINDIR)/$(PROGNAME)$(EXESUFFIX)
-
- .PHONY: all
- .PHONY: clean
- .PHONY: distclean
-
- run = $(ECHO) $(1); $(1) || exit $$?