ifeq ($(SYSTEM),) SYSTEM=$(shell uname) endif TRUESYSTEM=$(shell uname) MACHINE=$(shell uname -m) DISTRIB=$(shell cat /etc/issue | cut -f 1 -d\ | head -1) GL_GLUE=gl-glue.s CC = gcc CXX = g++ LD = g++ AS = as AR = ar rcs USR=/usr LIBXM = -lXm ifeq ($(SYSTEM),Darwin) ARCH_FLAGS=-arch i386 SHARED_FLAGS=-dynamiclib SHARED_EXT=dylib CPPFLAGS = -dynamic LD = g++ -arch i386 -read_only_relocs suppress STRIP = strip -x FINK= ifeq ($(TRUESYSTEM),Linux) CC = i686-apple-darwin9-gcc CXX = i686-apple-darwin9-g++ LD = i686-apple-darwin9-g++ -arch i386 -mmacosx-version-min=10.5 -read_only_relocs suppress STRIP = i686-apple-darwin9-strip -x AS = i686-apple-darwin9-as -arch i386 LIPO = i686-apple-darwin9-lipo AR = i686-apple-darwin9-ar rcs ARCH_FLAGS = LDFLAGS_MESA = -all_load ../Mesa-7.4.4-darwin9/lib/libGLU.a ../Mesa-7.4.4-darwin LUAJIT = ../LuaJIT-darwin9/src/libluajit.a USR=/usr/i686-apple-darwin9 FINK=$(USR) LIBXM = $(FINK) endif LIBXM = $(FINK)/sw/lib/libXm.a -lXp GMPDIR=../gmp-4.3.2-darwin9 GMPLIBDIR=$(GMPDIR)/lib GMP_LIBS=-all_load $(GMPLIBDIR)/libgmpxx.a $(GMPLIBDIR)/libgmp.a else ARCH_FLAGS=-march=i686 -m32 SHARED_FLAGS=-shared SHARED_EXT=so LD = g++ -m32 STRIP = strip --strip-unneeded GMPDIR=../gmp-4.3.2-linux GMPLIBDIR=$(GMPDIR)/lib GMP_LIBS=-Wl,--whole-archive $(GMPLIBDIR)/libgmpxx.a $(GMPLIBDIR)/libgmp.a -Wl,--no-whole-archive endif INCLUDES = \ -I../Baltisot/include \ -I../LuaJIT/src \ -I $(FINK)/sw/include \ -I $(GMPDIR)/include \ HAVES = -DHAVE_VSSCANF -DHAVE_LIBJPEG -DHAVE_FCNTL -DHAVE_UNISTD_H -DHAVE_FORK -DHAVE_PIPE -DHAVE_FSYNC -DHAVE_MALLOC_H -DHAVE_ASPRINTF -DHAVE_BYTESWAP_H -DCD_NO_OLD_INTERFACE -DGTK_DISABLE_DEPRECATED -DIUPLUA_USELOH -DUSE_STATIC CPPFLAGS_NO_ARCH += $(INCLUDES) -O4 -fexceptions -DSTDC_HEADERS -DREADLINE_STATIC -DHOOK_STDS -DWORDS_LITTLEENDIAN $(HAVES) -DTEC_LITTLEENDIAN -g -DNDEBUG -DUSE_MGL_NAMESPACE CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS) LDFLAGS += $(ARCH_FLAGS) $(SHARED_FLAGS) -L$(FINK)/sw/lib ./lua-interface.$(SHARED_EXT) vpath %.c ../Baltisot/lib:../Baltisot/src:src vpath %.cc ../Baltisot/lib:../Baltisot/src:src vpath %.cpp ../Baltisot/lib:../Baltisot/src:src vpath %.lua ../Baltisot/lib:../Baltisot/src:src GMP_SOURCES = \ plugin-luagmp.cc \ lgmp.lua \ WHOLE_SOURCES = \ $(GMP_SOURCES) \ MODULES_LIST = \ luagmp.$(SHARED_EXT) \ ALL_OBJECTS = $(addsuffix .o, $(notdir $(basename $(WHOLE_SOURCES)))) ALL_DEPS = $(addsuffix .dep, $(notdir $(basename $(WHOLE_SOURCES)))) all: dep modules dist: modules mkdir -p ../lua-interface-dist $(STRIP) $(MODULES_LIST) cp $(MODULES_LIST) ../lua-interface-dist modules: $(MODULES_LIST) dep: $(ALL_DEPS) luagmp.a: $(addsuffix .o, $(notdir $(basename $(GMP_SOURCES)))) $(AR) $@ $+ luagmp.$(SHARED_EXT): luagmp.a $(LD) $(LDFLAGS) -o $@ $+ $(GMP_LIBS) clean: rm -f *.o *.dep *.so *.dylib *.a %.dep : %.c $(CC) $(CPPFLAGS_NO_ARCH) -M -MF $@ $< %.dep : %.cpp $(CXX) $(CPPFLAGS_NO_ARCH) -M -MF $@ $< %.dep : %.cc $(CXX) $(CPPFLAGS_NO_ARCH) -M -MF $@ $< %.c : %.lua bin2c $< $@ $(basename $@) -include $(ALL_DEPS) .PHONY: dist clean