lua.mk 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. #############################################################
  2. #
  3. # lua
  4. #
  5. #############################################################
  6. LUA_VERSION = 5.1.4
  7. LUA_SITE = http://www.lua.org/ftp
  8. LUA_INSTALL_STAGING = YES
  9. ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y)
  10. LUA_MYCFLAGS += -fPIC
  11. endif
  12. LUA_MYLIBS += -ldl
  13. ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_READLINE),y)
  14. LUA_DEPENDENCIES = readline ncurses
  15. LUA_MYLIBS += -lreadline -lhistory -lncurses
  16. LUA_MYCFLAGS += -DLUA_USE_LINUX
  17. else
  18. LUA_MYCFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN
  19. endif
  20. HOST_LUA_DEPENDENCIES =
  21. HOST_LUA_MYCFLAGS = -fPIC -DLUA_USE_DLOPEN -DLUA_USE_POSIX
  22. HOST_LUA_MYLIBS = -ldl
  23. define LUA_BUILD_CMDS
  24. sed -i -e 's/-O2//' $(@D)/src/Makefile
  25. sed -i -e 's/\/usr\/local/\/usr/' $(@D)/etc/lua.pc
  26. $(MAKE) \
  27. CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" \
  28. MYCFLAGS="$(TARGET_CFLAGS) $(LUA_MYCFLAGS)" \
  29. MYLIBS="$(LUA_MYLIBS)" AR="$(TARGET_CROSS)ar rcu" \
  30. PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all
  31. endef
  32. define HOST_LUA_BUILD_CMDS
  33. sed -i -e 's/-O2//' $(@D)/src/Makefile
  34. sed -i -e 's/\/usr\/local/\/usr/' $(@D)/etc/lua.pc
  35. $(MAKE) \
  36. MYCFLAGS="$(HOST_LUA_MYCFLAGS)" \
  37. MYLIBS="$(HOST_LUA_MYLIBS)" \
  38. PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all
  39. endef
  40. ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y)
  41. define LUA_INSTALL_STAGING_SHARED_LIB
  42. $(INSTALL) -D $(@D)/src/liblua.so.$(LUA_VERSION) \
  43. $(STAGING_DIR)/usr/lib/liblua.so.$(LUA_VERSION)
  44. ln -sf liblua.so.$(LUA_VERSION) $(STAGING_DIR)/usr/lib/liblua.so
  45. endef
  46. endif
  47. define LUA_INSTALL_STAGING_CMDS
  48. $(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \
  49. $(STAGING_DIR)/usr/lib/pkgconfig/lua.pc
  50. $(INSTALL) $(@D)/src/liblua.a $(STAGING_DIR)/usr/lib
  51. $(INSTALL) $(@D)/src/lua $(STAGING_DIR)/usr/bin
  52. $(INSTALL) $(@D)/src/luac $(STAGING_DIR)/usr/bin
  53. $(INSTALL) $(@D)/src/lua.h $(STAGING_DIR)/usr/include
  54. $(INSTALL) $(@D)/src/luaconf.h $(STAGING_DIR)/usr/include
  55. $(INSTALL) $(@D)/src/lualib.h $(STAGING_DIR)/usr/include
  56. $(INSTALL) $(@D)/src/lauxlib.h $(STAGING_DIR)/usr/include
  57. endef
  58. ifeq ($(BR2_PACKAGE_LUA_INTERPRETER),y)
  59. define LUA_INSTALL_INTERPRETER
  60. $(INSTALL) $(@D)/src/lua $(TARGET_DIR)/usr/bin
  61. endef
  62. endif
  63. ifeq ($(BR2_PACKAGE_LUA_COMPILER),y)
  64. define LUA_INSTALL_COMPILER
  65. $(INSTALL) $(@D)/src/luac $(TARGET_DIR)/usr/bin
  66. endef
  67. endif
  68. ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y)
  69. define LUA_INSTALL_LIBRARY
  70. $(INSTALL) $(@D)/src/liblua.so.$(LUA_VERSION) \
  71. $(TARGET_DIR)/usr/lib/liblua.so.$(LUA_VERSION)
  72. ln -sf liblua.so.$(LUA_VERSION) $(TARGET_DIR)/usr/lib/liblua.so
  73. $(INSTALL) $(@D)/src/liblua.a $(TARGET_DIR)/usr/lib/liblua.a
  74. endef
  75. else
  76. define LUA_INSTALL_LIBRARY
  77. $(INSTALL) $(@D)/src/liblua.a $(TARGET_DIR)/usr/lib/liblua.a
  78. endef
  79. endif
  80. ifeq ($(BR2_HAVE_DEVFILES),y)
  81. define LUA_INSTALL_DEVFILES
  82. $(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \
  83. $(TARGET_DIR)/usr/lib/pkgconfig/lua.pc
  84. $(INSTALL) $(@D)/src/lua.h $(TARGET_DIR)/usr/include
  85. $(INSTALL) $(@D)/src/luaconf.h $(TARGET_DIR)/usr/include
  86. $(INSTALL) $(@D)/src/lualib.h $(TARGET_DIR)/usr/include
  87. $(INSTALL) $(@D)/src/lauxlib.h $(TARGET_DIR)/usr/include
  88. endef
  89. endif
  90. define LUA_INSTALL_TARGET_CMDS
  91. $(LUA_INSTALL_INTERPRETER)
  92. $(LUA_INSTALL_COMPILER)
  93. $(LUA_INSTALL_LIBRARY)
  94. $(LUA_INSTALL_DEVFILES)
  95. endef
  96. define HOST_LUA_INSTALL_CMDS
  97. $(INSTALL) $(@D)/src/lua $(HOST_DIR)/usr/bin
  98. $(INSTALL) $(@D)/src/luac $(HOST_DIR)/usr/bin
  99. $(INSTALL) $(@D)/src/liblua.so.$(LUA_VERSION) \
  100. $(HOST_DIR)/usr/lib/liblua.so.$(LUA_VERSION)
  101. ln -sf liblua.so.$(LUA_VERSION) $(HOST_DIR)/usr/lib/liblua.so
  102. $(INSTALL) $(@D)/src/liblua.a $(HOST_DIR)/usr/lib/liblua.a
  103. $(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \
  104. $(HOST_DIR)/usr/lib/pkgconfig/lua.pc
  105. $(INSTALL) $(@D)/src/lua.h $(HOST_DIR)/usr/include
  106. $(INSTALL) $(@D)/src/luaconf.h $(HOST_DIR)/usr/include
  107. $(INSTALL) $(@D)/src/lualib.h $(HOST_DIR)/usr/include
  108. $(INSTALL) $(@D)/src/lauxlib.h $(HOST_DIR)/usr/include
  109. endef
  110. LUA_INSTALLED_FILES = \
  111. /usr/include/lua.h \
  112. /usr/include/luaconf.h \
  113. /usr/include/lualib.h \
  114. /usr/include/lauxlib.h \
  115. /usr/lib/pkgconfig/lua.pc \
  116. /usr/bin/lua \
  117. /usr/bin/luac \
  118. /usr/lib/liblua.a \
  119. /usr/lib/liblua.so*
  120. define LUA_UNINSTALL_STAGING_CMDS
  121. for i in $(LUA_INSTALLED_FILES); do \
  122. rm -f $(STAGING_DIR)$$i; \
  123. done
  124. endef
  125. define LUA_UNINSTALL_TARGET_CMDS
  126. for i in $(LUA_INSTALLED_FILES); do \
  127. rm -f $(TARGET_DIR)$$i; \
  128. done
  129. endef
  130. define HOST_LUA_UNINSTALL_TARGET_CMDS
  131. for i in $(LUA_INSTALLED_FILES); do \
  132. rm -f $(HOST_DIR)$$i; \
  133. done
  134. endef
  135. define LUA_CLEAN_CMDS
  136. -$(MAKE) -C $(@D) clean
  137. endef
  138. define HOST_LUA_CLEAN_CMDS
  139. -$(MAKE) -C $(@D) clean
  140. endef
  141. $(eval $(call GENTARGETS))
  142. $(eval $(call GENTARGETS,host))