| ################################################################################ |
| # |
| # alchemy |
| # |
| ################################################################################ |
| |
| ALCHEMY_VERSION = d95b3c38cd37814a1b98d0bbf813de7adaaecfbc |
| ALCHEMY_SITE = $(call github,Parrot-Developers,alchemy,$(ALCHEMY_VERSION)) |
| ALCHEMY_LICENSE = BSD-3-Clause (Alchemy), GPL-2.0 (kconfig) |
| ALCHEMY_LICENSE_FILES = COPYING README |
| HOST_ALCHEMY_DEPENDENCIES = host-pkgconf host-python3 |
| |
| ALCHEMY_HOME = $(HOST_DIR)/opt/alchemy |
| ALCHEMY_SDK_BASEDIR = $(STAGING_DIR)/usr/lib/alchemy/sdk |
| |
| define HOST_ALCHEMY_INSTALL_CMDS |
| mkdir -p $(ALCHEMY_HOME) |
| cp -rf $(@D)/* $(ALCHEMY_HOME) |
| cp $(HOST_ALCHEMY_PKGDIR)/atom.mk.in $(ALCHEMY_HOME)/atom.mk.in |
| endef |
| |
| $(eval $(host-generic-package)) |
| |
| # Variables used by other packages |
| |
| ALCHEMY_MAKE = $(ALCHEMY_HOME)/scripts/alchemake |
| |
| # TARGET_ARCH is set to 'xxx' to avoid Alchemy managing the architecture. |
| # When Alchemy manages the architecture, it can add some flags to CFGLAGS and |
| # can lead to incorrect result with the toolchain provided in TARGET_CROSS. |
| # 'xxx' is an unknown architecture for Alchemy. Using this value is a simple |
| # way to disable the Alchemy architecture management. |
| ALCHEMY_TARGET_ENV = \ |
| $(TARGET_MAKE_ENV) \ |
| ALCHEMY_HOME=$(ALCHEMY_HOME) \ |
| ALCHEMY_WORKSPACE_DIR="$(@D)" \ |
| ALCHEMY_TARGET_OUT=alchemy-out \ |
| PKGCONFIG_BIN=$(PKG_CONFIG_HOST_BINARY) \ |
| TARGET_OS=linux \ |
| TARGET_OS_FLAVOUR=buildroot \ |
| TARGET_CROSS="$(TARGET_CROSS)" \ |
| TARGET_ARCH=xxx \ |
| TARGET_GLOBAL_CXXFLAGS="$(TARGET_CXXFLAGS)" \ |
| TARGET_GLOBAL_LDFLAGS="$(TARGET_LDFLAGS)" \ |
| TARGET_GLOBAL_FFLAGS="$(TARGET_FCFLAGS)" \ |
| TARGET_GLOBAL_FCFLAGS="$(TARGET_FCFLAGS)" |
| |
| ifeq ($(BR2_STATIC_LIBS),y) |
| ALCHEMY_TARGET_ENV += \ |
| TARGET_FORCE_STATIC=1 \ |
| TARGET_GLOBAL_CFLAGS="$(TARGET_CFLAGS)" |
| else |
| ALCHEMY_TARGET_ENV += \ |
| TARGET_GLOBAL_CFLAGS="$(TARGET_CFLAGS) -fPIC" |
| endif |
| |
| # Install an Alchemy SDK file. |
| # This macro can be used by Alchemy packages |
| # $1: Alchemy module name |
| # $2: Alchemy module file name |
| # $3: Alchemy module libraries this module depends on |
| define ALCHEMY_INSTALL_LIB_SDK_FILE |
| $(INSTALL) -m 0644 -D \ |
| $(ALCHEMY_HOME)/atom.mk.in \ |
| $(ALCHEMY_SDK_BASEDIR)/$($(PKG)_NAME)/atom.mk |
| $(SED) 's#@STAGING_DIR@#$(STAGING_DIR)#' \ |
| -e 's#@MODULE@#$(strip $(1))#' \ |
| -e 's#@MODULE_FILENAME@#$(strip $(2))#' \ |
| -e 's#@LIBRARIES@#$(strip $(3))#' \ |
| $(ALCHEMY_SDK_BASEDIR)/$($(PKG)_NAME)/atom.mk |
| endef |