Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 2.43 KB | None | 0 0
  1. # Program info
  2. # LIBRARY is the library filename "$(LIBRARY).so"
  3. # LUANAME is the Lua table name
  4. # OS and ARCH are currently only used as defines for the preprocessor.
  5. LIBRARY = box2d
  6. LUANAME = Box2D
  7. OS = LINUX
  8. ARCH = x86
  9.  
  10. # The C preprocessor is a massive pile of ass
  11. STUPIDFUNCNAMEHACK = luaopen_$(LIBRARY)
  12.  
  13. # Library installation path
  14. #INSTALLPATH=/usr/lib/lua/5.1/
  15. #INSTALLPATH=/usr/local/lib/lua/5.1/
  16. INSTALLPATH=/home/rena/dev/lua/libs/
  17.  
  18. # Options to pass to linker
  19. LDOPTIONS =
  20.  
  21. # Other files that must be present to compile.
  22. OTHER_DEP =
  23.  
  24. # Path to library files.
  25. LIBPATH = /usr/lib/
  26.  
  27. # Libraries being used.
  28. #LIBS = -L$(LIBPATH) -llua -lm `pkg-config --libs gtk+-2.0`
  29. LIBS = -L$(LIBPATH) -lBox2D
  30.  
  31. # Additional directories for header files.
  32. INCLUDES = -I$(SHARED) -I$(LUA)
  33.  
  34. # Used to generate build ID. Change BUILD_INDEX if multiple releases in one day.
  35. DAY = `date +%-d`
  36. MONTH = `date +%-m`
  37. YEAR = `date +%-y`
  38. BUILD_INDEX = 0
  39. BUILD_ID = "((BUILD_YEAR << 13) | (BUILD_MONTH << 9) | (BUILD_DAY << 4) | BUILD_INDEX)"
  40. BUILD_DEFS = -DBUILD_DAY=$(DAY) -DBUILD_MONTH=$(MONTH) -DBUILD_YEAR=$(YEAR) -DBUILD_INDEX=$(BUILD_INDEX) -DBUILD_ID=$(BUILD_ID)
  41.  
  42. # Variables to define for the preprocessor.
  43. DEFS = -DPROGRAMNAME="\"$(PROGNAME)\"" -D$(OS) -DOSNAME=\"$(OS)\" -DARCH=$(ARCH) -DLUANAME=\"$(LUANAME)\" -DLUAOPENFUNC=$(STUPIDFUNCNAMEHACK) $(BUILD_DEFS)
  44.  
  45. # Commands and flags used for various actions
  46. LUA_CFLAGS = `pkg-config lua5.1 --cflags`
  47. DELETE = rm -rf
  48. CXX = g++
  49. CXXFLAGS = -O3 -Wall $(DEFS) -fpic -c -o $(INCLUDES) $(LIBS)
  50. LD = $(CXX)
  51. LDFLAGS = -O2 -fpic $(LIBS) -c -o $(LIBRARY).o $(LIBRARY).cpp
  52. COMPILE = $(CXX) $(CXXFLAGS) -c
  53. MAKESO = $(CXX) -O -shared -fpic -o
  54.  
  55. # Make library
  56. all: $(LIBRARY).so
  57.  
  58. # Install
  59. install:
  60.     cp $(LIBRARY).so $(INSTALLPATH)
  61.    
  62. .PHONY : all install clean
  63.  
  64. %.o: %.cpp $(OTHER_DEP)
  65.     @echo Compiling $(<)...
  66.     @$(COMPILE) $(<) -o $(@)
  67.  
  68. $(LIBRARY).so: $(OBJS) $(SHARED_OBJS) $(LIBRARY).o
  69.     @echo Linking...
  70.     @$(MAKESO) $(@) $(^) $(LIBS)
  71.     @echo Done.
  72.    
  73. $(SHARED_OBJS): $(SHARED_SRCS)
  74.     @echo Compiling shared objects...
  75.     @$(COMPILE) $(^)
  76.    
  77. #this is stupidly complex for a simple recursive delete V_v
  78. clean:
  79.     @echo Cleaning...
  80.     @$(DELETE) $(LIBRARY).so
  81.     @find . -name "*.la" -exec rm -f {} \;
  82.     @find . -name "*.lo" -exec rm -f {} \;
  83.     @find . -name "*.so" -exec rm -f {} \;
  84.     @find . -name "*.o" -exec rm -f {} \;
  85.     @find . -name "*.log" -exec rm -f {} \;
  86.     @$(DELETE) ../$(LIBRARY).so
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement