lua.mk 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. ################################################################################
  2. #
  3. # lua
  4. #
  5. ################################################################################
  6. ifeq ($(BR2_PACKAGE_LUA_5_4),y)
  7. LUA_VERSION = 5.4.6
  8. else ifeq ($(BR2_PACKAGE_LUA_5_3),y)
  9. LUA_VERSION = 5.3.6
  10. else
  11. LUA_VERSION = 5.1.5
  12. endif
  13. LUA_SITE = https://www.lua.org/ftp
  14. LUA_INSTALL_STAGING = YES
  15. LUA_LICENSE = MIT
  16. ifeq ($(BR2_PACKAGE_LUA_5_3)$(BR2_PACKAGE_LUA_5_4),y)
  17. LUA_LICENSE_FILES = doc/readme.html
  18. else
  19. LUA_LICENSE_FILES = COPYRIGHT
  20. endif
  21. LUA_CPE_ID_VENDOR = lua
  22. LUA_PROVIDES = luainterpreter
  23. LUA_CFLAGS = -Wall -fPIC -DLUA_USE_POSIX
  24. ifeq ($(BR2_PACKAGE_LUA_5_4),y)
  25. LUA_CFLAGS += -DLUA_COMPAT_5_3
  26. else ifeq ($(BR2_PACKAGE_LUA_5_3),y)
  27. LUA_CFLAGS += -DLUA_COMPAT_5_2
  28. endif
  29. ifeq ($(BR2_PACKAGE_LUA_CVT_N2S),)
  30. LUA_CFLAGS += -DLUA_NOCVTN2S
  31. endif
  32. ifeq ($(BR2_PACKAGE_LUA_CVT_S2N),)
  33. LUA_CFLAGS += -DLUA_NOCVTS2N
  34. endif
  35. ifeq ($(BR2_STATIC_LIBS),y)
  36. LUA_BUILDMODE = static
  37. else
  38. LUA_BUILDMODE = dynamic
  39. LUA_CFLAGS += -DLUA_USE_DLOPEN
  40. LUA_MYLIBS += -ldl
  41. endif
  42. ifeq ($(BR2_PACKAGE_LUA_READLINE),y)
  43. LUA_DEPENDENCIES += readline ncurses
  44. LUA_MYLIBS += -lreadline -lhistory -lncurses
  45. LUA_CFLAGS += -DLUA_USE_READLINE
  46. else
  47. ifeq ($(BR2_PACKAGE_LUA_LINENOISE),y)
  48. LUA_DEPENDENCIES += linenoise
  49. LUA_MYLIBS += -llinenoise
  50. LUA_CFLAGS += -DLUA_USE_LINENOISE
  51. endif
  52. endif
  53. ifeq ($(BR2_PACKAGE_LUA_32BITS),y)
  54. define LUA_32BITS_LUACONF
  55. $(SED) 's/\/\* #define LUA_32BITS \*\//#define LUA_32BITS/' $(@D)/src/luaconf.h
  56. endef
  57. LUA_POST_PATCH_HOOKS += LUA_32BITS_LUACONF
  58. endif
  59. define HOST_LUA_LUACONF
  60. $(SED) 's|#define LUA_ROOT.*|#define LUA_ROOT "$(HOST_DIR)/"|' $(@D)/src/luaconf.h
  61. endef
  62. HOST_LUA_POST_PATCH_HOOKS += HOST_LUA_LUACONF
  63. HOST_LUA_CFLAGS = -Wall -fPIC -DLUA_USE_DLOPEN -DLUA_USE_POSIX
  64. ifeq ($(BR2_PACKAGE_LUA_5_3),y)
  65. HOST_LUA_CFLAGS += -DLUA_COMPAT_5_2
  66. endif
  67. HOST_LUA_MYLIBS = -ldl
  68. define LUA_BUILD_CMDS
  69. $(TARGET_MAKE_ENV) $(MAKE) \
  70. CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" \
  71. CFLAGS="$(TARGET_CFLAGS) $(LUA_CFLAGS)" \
  72. MYLIBS="$(LUA_MYLIBS)" AR="$(TARGET_CROSS)ar rcu" \
  73. MYLDFLAGS="$(TARGET_LDFLAGS)" \
  74. BUILDMODE=$(LUA_BUILDMODE) \
  75. PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all
  76. sed -e "s/@VERSION@/$(LUA_VERSION)/;s/@ABI@/$(LUAINTERPRETER_ABIVER)/;s/@MYLIBS@/$(LUA_MYLIBS)/" \
  77. package/lua/lua.pc.in > $(@D)/lua.pc
  78. endef
  79. define HOST_LUA_BUILD_CMDS
  80. $(HOST_MAKE_ENV) $(MAKE) \
  81. CFLAGS="$(HOST_LUA_CFLAGS)" \
  82. MYLDFLAGS="$(HOST_LDFLAGS)" \
  83. MYLIBS="$(HOST_LUA_MYLIBS)" \
  84. BUILDMODE=dynamic \
  85. PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all
  86. sed -e "s/@VERSION@/$(LUA_VERSION)/;s/@ABI@/$(LUAINTERPRETER_ABIVER)/;s/@MYLIBS@/$(HOST_LUA_MYLIBS)/" \
  87. package/lua/lua.pc.in > $(@D)/lua.pc
  88. endef
  89. define LUA_INSTALL_STAGING_CMDS
  90. $(TARGET_MAKE_ENV) $(MAKE) INSTALL_TOP="$(STAGING_DIR)/usr" -C $(@D) install
  91. $(INSTALL) -m 0644 -D $(@D)/lua.pc \
  92. $(STAGING_DIR)/usr/lib/pkgconfig/lua.pc
  93. endef
  94. define LUA_INSTALL_TARGET_CMDS
  95. $(TARGET_MAKE_ENV) $(MAKE) INSTALL_TOP="$(TARGET_DIR)/usr" -C $(@D) install
  96. endef
  97. define HOST_LUA_INSTALL_CMDS
  98. $(HOST_MAKE_ENV) $(MAKE) INSTALL_TOP="$(HOST_DIR)" -C $(@D) install
  99. $(INSTALL) -m 0644 -D $(@D)/lua.pc \
  100. $(HOST_DIR)/lib/pkgconfig/lua.pc
  101. endef
  102. $(eval $(generic-package))
  103. $(eval $(host-generic-package))