host.mk 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # This file is part of the OpenADK project. OpenADK is copyrighted
  2. # material, please see the LICENCE file in the top-level directory.
  3. # This is where all package operation is done in
  4. ifneq (,$(findstring host,$(MAKECMDGOALS)))
  5. WRKDIR?= ${HOST_BUILD_DIR}/w-${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE}-host
  6. endif
  7. HOST_CONFIGURE_ENV+= PATH='${HOST_PATH}' \
  8. AUTOM4TE=${STAGING_HOST_DIR}/usr/bin/autom4te \
  9. CONFIG_SHELL='$(strip ${SHELL})' \
  10. PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig:${STAGING_HOST_DIR}/usr/share/pkgconfig' \
  11. PKG_CONFIG_SYSROOT_DIR='${STAGING_HOST_DIR}' \
  12. PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
  13. CC='$(strip ${CC_FOR_BUILD})' \
  14. CFLAGS='$(strip ${CFLAGS_FOR_BUILD})' \
  15. CXXFLAGS='$(strip ${CXXFLAGS_FOR_BUILD})' \
  16. CPPFLAGS='$(strip ${CPPFLAGS_FOR_BUILD})' \
  17. LDFLAGS='$(strip ${LDFLAGS_FOR_BUILD})'
  18. # this is environment for 'make all' and 'make install'
  19. HOST_MAKE_ENV?=
  20. # this is arguments for 'make all' and 'make install'
  21. HOST_XAKE_FLAGS?=
  22. # this is arguments for 'make all' ONLY
  23. HOST_MAKE_FLAGS?=
  24. # this is arguments for 'make install' ONLY
  25. HOST_FAKE_FLAGS?=
  26. HOST_ALL_TARGET?= all
  27. HOST_INSTALL_TARGET?= install
  28. HOST_MAKE_ENV+= PATH='${HOST_PATH}' \
  29. PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig:${STAGING_HOST_DIR}/usr/share/pkgconfig' \
  30. PKG_CONFIG_SYSROOT_DIR='${STAGING_HOST_DIR}' \
  31. PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
  32. CC='$(strip ${CC_FOR_BUILD})' \
  33. CFLAGS='$(strip ${CFLAGS_FOR_BUILD})' \
  34. CXXFLAGS='$(strip ${CXXFLAGS_FOR_BUILD})' \
  35. CPPFLAGS='$(strip ${CPPFLAGS_FOR_BUILD})' \
  36. LDFLAGS='$(strip ${LDFLAGS_FOR_BUILD})'
  37. HOST_MAKE_FLAGS+= ${HOST_XAKE_FLAGS} V=1
  38. HOST_FAKE_FLAGS+= ${HOST_XAKE_FLAGS}
  39. HOST_WRKINST= ${WRKDIR}/fake
  40. _HOST_EXTRACT_COOKIE= ${WRKDIST}/.extract_done
  41. _HOST_PATCH_COOKIE= ${WRKDIST}/.prepared
  42. _HOST_CONFIGURE_COOKIE= ${WRKDIR}/.host_configure_done
  43. _HOST_BUILD_COOKIE= ${WRKDIR}/.host_build_done
  44. _HOST_FAKE_COOKIE= ${HOST_WRKINST}/.host_fake_done
  45. _HOST_COOKIE= ${STAGING_PKG_DIR}/stamps/${PKG_NAME}${PKG_VERSION}-${PKG_RELEASE}-host
  46. hostextract: ${_HOST_EXTRACT_COOKIE}
  47. hostpatch: ${_HOST_PATCH_COOKIE}
  48. hostconfigure: ${_HOST_CONFIGURE_COOKIE}
  49. hostbuild: ${_HOST_BUILD_COOKIE}
  50. hostfake: ${_HOST_FAKE_COOKIE}
  51. # there are some parameters to the HOST_template function
  52. # 1.) Config.in identifier ADK_PACKAGE_$(1)
  53. # 2.) name of the package, for single package mostly $(PKG_NAME)
  54. # 3.) package version (upstream version) and package release (adk version),
  55. # always $(PKG_VERSION)-$(PKG_RELEASE)
  56. define HOST_template
  57. ALL_PKGOPTS+= $(1)
  58. PKGNAME_$(1)= $(2)
  59. HOSTDIR_$(1)= $(WRKDIR)/fake
  60. ALL_HOSTDIRS+= $${HOSTDIR_$(1)}
  61. ALL_HOSTINST+= $(2)-hostinstall
  62. $$(HOSTDIR_$(1)): ${_HOST_PATCH_COOKIE} ${_HOST_FAKE_COOKIE}
  63. endef
  64. .PHONY: all hostextract hostpatch hostconfigure \
  65. hostbuild hostpackage hostfake hostclean