TARGET := anaglym COBJS := $(patsubst %.c,%.o,$(wildcard *.c)) CXXOBJS := $(patsubst %.cc,%.o,$(wildcard *.cc)) OBJS := $(COBJS) $(CXXOBJS) CDEPS := $(COBJS:.o=.dep) CXXDEPS := $(CXXOBJS:.o=.dep) DEPS := $(CDEPS) $(CXXDEPS) WINCHECK := $(shell which msys-1.0.dll >/dev/null 2>&1; if [ $$? -eq 0 ]; then echo MSYS; fi) ifeq ($(strip $(WINCHECK)),) WINDOWS := 0 else WINDOWS := 1 endif LUAINCLUDE := $(shell which lua-config >/dev/null 2>&1; if [ $$? -eq 0 ]; then lua-config --include; fi) ifeq ($(strip $(LUAINCLUDE)),) LUAINCLUDE := -I/usr/include/lua5.1 endif LUALIBS := $(shell which lua-config >/dev/null 2>&1; if [ $$? -eq 0 ]; then lua-config --libs; fi) ifeq ($(strip $(LUALIBS)),) LUALIBS := -llua5.1 endif SDLINCLUDE := $(shell sdl-config --cflags) SDLLIBS := $(shell sdl-config --libs) ODEINCLUDE := $(shell ode-config --cflags) ODELIBS := $(shell ode-config --libs) ifeq ($(WINDOWS),1) GLLIBS := -lopengl32 -lglu32 WINDOWSLIBS := -lmingw32 else GLLIBS := -lGL -lGLU endif CFLAGS := $(LUAINCLUDE) $(SDLINCLUDE) $(ODEINCLUDE) -O2 CXXFLAGS := $(CFLAGS) LDFLAGS := $(LUALIBS) $(ODELIBS) $(GLLIBS) $(WINDOWSLIBS) $(SDLLIBS) all: $(TARGET) $(TARGET): $(OBJS) wfobj/WFObj.o OdeWorld/OdeWorld.o $(CXX) -o $@ $^ $(LDFLAGS) .PHONY: wfobj/WFObj.o wfobj/WFObj.o: $(MAKE) -C wfobj .PHONY: OdeWorld/OdeWorld.o OdeWorld/OdeWorld.o: $(MAKE) -C OdeWorld %.o: %.c $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $< %.o: %.cc $(CXX) -c -o $@ $(CPPFLAGS) $(CXXFLAGS) $< # Make dependency files %.dep: %.c @set -e; rm -f $@; \ $(CC) -MM $(CPPFLAGS) $< | sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' > $@ %.dep: %.cc @set -e; rm -f $@; \ $(CXX) -MM $(CPPFLAGS) $< | sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' > $@ clean: -rm -f *.o *.dep *~ $(TARGET) -include $(DEPS)