alchemy.mk 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. ################################################################################
  2. #
  3. # alchemy
  4. #
  5. ################################################################################
  6. ALCHEMY_VERSION = d95b3c38cd37814a1b98d0bbf813de7adaaecfbc
  7. ALCHEMY_SITE = $(call github,Parrot-Developers,alchemy,$(ALCHEMY_VERSION))
  8. ALCHEMY_LICENSE = BSD-3-Clause (Alchemy), GPL-2.0 (kconfig)
  9. ALCHEMY_LICENSE_FILES = COPYING README
  10. HOST_ALCHEMY_DEPENDENCIES = host-pkgconf host-python3
  11. ALCHEMY_HOME = $(HOST_DIR)/opt/alchemy
  12. ALCHEMY_SDK_BASEDIR = $(STAGING_DIR)/usr/lib/alchemy/sdk
  13. define HOST_ALCHEMY_INSTALL_CMDS
  14. mkdir -p $(ALCHEMY_HOME)
  15. cp -rf $(@D)/* $(ALCHEMY_HOME)
  16. cp $(HOST_ALCHEMY_PKGDIR)/atom.mk.in $(ALCHEMY_HOME)/atom.mk.in
  17. endef
  18. $(eval $(host-generic-package))
  19. # Variables used by other packages
  20. ALCHEMY_MAKE = $(ALCHEMY_HOME)/scripts/alchemake
  21. # TARGET_ARCH is set to 'xxx' to avoid Alchemy managing the architecture.
  22. # When Alchemy manages the architecture, it can add some flags to CFGLAGS and
  23. # can lead to incorrect result with the toolchain provided in TARGET_CROSS.
  24. # 'xxx' is an unknown architecture for Alchemy. Using this value is a simple
  25. # way to disable the Alchemy architecture management.
  26. ALCHEMY_TARGET_ENV = \
  27. $(TARGET_MAKE_ENV) \
  28. ALCHEMY_HOME=$(ALCHEMY_HOME) \
  29. ALCHEMY_WORKSPACE_DIR="$(@D)" \
  30. ALCHEMY_TARGET_OUT=alchemy-out \
  31. PKGCONFIG_BIN=$(PKG_CONFIG_HOST_BINARY) \
  32. TARGET_OS=linux \
  33. TARGET_OS_FLAVOUR=buildroot \
  34. TARGET_CROSS="$(TARGET_CROSS)" \
  35. TARGET_ARCH=xxx \
  36. TARGET_GLOBAL_CXXFLAGS="$(TARGET_CXXFLAGS)" \
  37. TARGET_GLOBAL_LDFLAGS="$(TARGET_LDFLAGS)" \
  38. TARGET_GLOBAL_FFLAGS="$(TARGET_FCFLAGS)" \
  39. TARGET_GLOBAL_FCFLAGS="$(TARGET_FCFLAGS)"
  40. ifeq ($(BR2_STATIC_LIBS),y)
  41. ALCHEMY_TARGET_ENV += \
  42. TARGET_FORCE_STATIC=1 \
  43. TARGET_GLOBAL_CFLAGS="$(TARGET_CFLAGS)"
  44. else
  45. ALCHEMY_TARGET_ENV += \
  46. TARGET_GLOBAL_CFLAGS="$(TARGET_CFLAGS) -fPIC"
  47. endif
  48. # Install an Alchemy SDK file.
  49. # This macro can be used by Alchemy packages
  50. # $1: Alchemy module name
  51. # $2: Alchemy module file name
  52. # $3: Alchemy module libraries this module depends on
  53. define ALCHEMY_INSTALL_LIB_SDK_FILE
  54. $(INSTALL) -m 0644 -D \
  55. $(ALCHEMY_HOME)/atom.mk.in \
  56. $(ALCHEMY_SDK_BASEDIR)/$($(PKG)_NAME)/atom.mk
  57. $(SED) 's#@STAGING_DIR@#$(STAGING_DIR)#' \
  58. -e 's#@MODULE@#$(strip $(1))#' \
  59. -e 's#@MODULE_FILENAME@#$(strip $(2))#' \
  60. -e 's#@LIBRARIES@#$(strip $(3))#' \
  61. $(ALCHEMY_SDK_BASEDIR)/$($(PKG)_NAME)/atom.mk
  62. endef