Makefile 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. ##############################################################################
  2. # LuaJIT top level Makefile for installation. Requires GNU Make.
  3. #
  4. # Suitable for POSIX platforms (Linux, *BSD, OSX etc.).
  5. # Note: src/Makefile has many more configurable options.
  6. #
  7. # ##### This Makefile is NOT useful for installation on Windows! #####
  8. # For MSVC, please follow the instructions given in src/msvcbuild.bat.
  9. # For MinGW and Cygwin, cd to src and run make with the Makefile there.
  10. # NYI: add wininstall.bat
  11. #
  12. # Copyright (C) 2005-2010 Mike Pall. See Copyright Notice in luajit.h
  13. ##############################################################################
  14. MAJVER= 2
  15. MINVER= 0
  16. RELVER= 0
  17. PREREL= -beta2
  18. VERSION= $(MAJVER).$(MINVER).$(RELVER)$(PREREL)
  19. ABIVER= 5.1
  20. NODOTABIVER= 51
  21. ##############################################################################
  22. #
  23. # Change the installation path as needed and modify src/luaconf.h accordingly.
  24. # Note: PREFIX must be an absolute path!
  25. #
  26. export PREFIX= /usr/local
  27. ##############################################################################
  28. DPREFIX= $(DESTDIR)$(PREFIX)
  29. INSTALL_BIN= $(DPREFIX)/bin
  30. INSTALL_LIB= $(DPREFIX)/lib
  31. INSTALL_SHARE= $(DPREFIX)/share
  32. INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER)
  33. INSTALL_JITLIB= $(INSTALL_SHARE)/luajit-$(VERSION)/jit
  34. INSTALL_LMOD= $(INSTALL_SHARE)/lua/$(ABIVER)
  35. INSTALL_CMOD= $(INSTALL_LIB)/lua/$(ABIVER)
  36. INSTALL_MAN= $(INSTALL_SHARE)/man/man1
  37. INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
  38. INSTALL_TNAME= luajit-$(VERSION)
  39. INSTALL_TSYMNAME= luajit
  40. INSTALL_ANAME= libluajit-$(ABIVER).a
  41. INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER)
  42. INSTALL_SOSHORT= libluajit-$(ABIVER).so
  43. INSTALL_DYLIBNAME= libluajit-$(NODOTABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib
  44. INSTALL_DYLIBSHORT1= libluajit-$(NODOTABIVER).dylib
  45. INSTALL_DYLIBSHORT2= libluajit-$(NODOTABIVER).$(MAJVER).dylib
  46. INSTALL_PCNAME= luajit.pc
  47. INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
  48. INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
  49. INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
  50. INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
  51. INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
  52. INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
  53. INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
  54. INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
  55. $(INSTALL_PKGCONFIG) $(INSTALL_JITLIB) $(INSTALL_LMOD) $(INSTALL_CMOD)
  56. RM= rm -f
  57. MKDIR= mkdir -p
  58. SYMLINK= ln -sf
  59. INSTALL_X= install -m 0755
  60. INSTALL_F= install -m 0644
  61. LDCONFIG= ldconfig -n
  62. SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|"
  63. FILE_T= luajit
  64. FILE_A= libluajit.a
  65. FILE_SO= libluajit.so
  66. FILE_MAN= luajit.1
  67. FILE_PC= luajit.pc
  68. FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h
  69. FILES_JITLIB= bc.lua v.lua dump.lua dis_x86.lua dis_x64.lua vmdef.lua
  70. ifeq (,$(findstring Windows,$(OS)))
  71. ifeq (Darwin,$(shell uname -s))
  72. INSTALL_SONAME= $(INSTALL_DYLIBNAME)
  73. INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT1)
  74. INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT2)
  75. LDCONFIG= :
  76. endif
  77. endif
  78. ##############################################################################
  79. INSTALL_DEP= src/luajit
  80. default all $(INSTALL_DEP):
  81. @echo "==== Building LuaJIT $(VERSION) ===="
  82. $(MAKE) -C src
  83. @echo "==== Successfully built LuaJIT $(VERSION) ===="
  84. install: $(INSTALL_DEP)
  85. @echo "==== Installing LuaJIT $(VERSION) to $(PREFIX) ===="
  86. $(MKDIR) $(INSTALL_DIRS)
  87. cd src && $(INSTALL_X) $(FILE_T) $(INSTALL_T)
  88. cd src && test -f $(FILE_A) && $(INSTALL_F) $(FILE_A) $(INSTALL_STATIC) || :
  89. $(RM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
  90. cd src && test -f $(FILE_SO) && \
  91. $(INSTALL_F) $(FILE_SO) $(INSTALL_DYN) && \
  92. $(LDCONFIG) $(INSTALL_LIB) && \
  93. $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
  94. $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
  95. cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)
  96. cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \
  97. $(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \
  98. $(RM) $(FILE_PC).tmp
  99. cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
  100. cd lib && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
  101. @echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
  102. @echo ""
  103. @echo "Note: the beta releases deliberately do NOT install a symlink for luajit"
  104. @echo "You can do this now by running this command (with sudo):"
  105. @echo ""
  106. @echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)"
  107. @echo ""
  108. ##############################################################################
  109. amalg:
  110. @echo "Building LuaJIT $(VERSION)"
  111. $(MAKE) -C src amalg
  112. clean:
  113. $(MAKE) -C src clean
  114. cleaner:
  115. $(MAKE) -C src cleaner
  116. distclean:
  117. $(MAKE) -C src distclean
  118. .PHONY: all install amalg clean cleaner distclean
  119. ##############################################################################