am335x-pru-package.mk 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. ################################################################################
  2. #
  3. # am335x-pru-package
  4. #
  5. ################################################################################
  6. AM335X_PRU_PACKAGE_VERSION = 5f374ad57cc195f28bf5e585c3d446aba6ee7096
  7. AM335X_PRU_PACKAGE_SITE = https://github.com/beagleboard/am335x_pru_package
  8. AM335X_PRU_PACKAGE_SITE_METHOD = git
  9. AM335X_PRU_PACKAGE_LICENSE = BSD-3-Clause
  10. AM335X_PRU_PACKAGE_LICENSE_FILES = pru_sw/utils/LICENCE.txt
  11. AM335X_PRU_PACKAGE_DEPENDENCIES = host-am335x-pru-package
  12. AM335X_PRU_PACKAGE_INSTALL_STAGING = YES
  13. # The default 'all' rule builds everything, when we just need the library
  14. ifeq ($(BR2_ENABLE_DEBUG),y)
  15. AM335X_PRU_PACKAGE_MAKE_TARGET = debug $(if $(BR2_STATIC_LIBS),,sodebug)
  16. else
  17. AM335X_PRU_PACKAGE_MAKE_TARGET = release $(if $(BR2_STATIC_LIBS),,sorelease)
  18. endif
  19. define AM335X_PRU_PACKAGE_BUILD_CMDS
  20. $(TARGET_MAKE_ENV) $(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" \
  21. -C $(@D)/pru_sw/app_loader/interface $(AM335X_PRU_PACKAGE_MAKE_TARGET)
  22. endef
  23. # 'install' installs whatever was built, and our patch removes the dependency
  24. # on the release build, so we can use it to install whatever we built above.
  25. define AM335X_PRU_PACKAGE_INSTALL_STAGING_CMDS
  26. $(TARGET_MAKE_ENV) $(MAKE1) DESTDIR="$(STAGING_DIR)" PREFIX="/usr" \
  27. -C $(@D)/pru_sw/app_loader/interface install
  28. endef
  29. define AM335X_PRU_PACKAGE_INSTALL_TARGET_CMDS
  30. $(TARGET_MAKE_ENV) $(MAKE1) DESTDIR="$(TARGET_DIR)" PREFIX="/usr" \
  31. -C $(@D)/pru_sw/app_loader/interface install
  32. endef
  33. # The debug libraries are named differently than the release ones,
  34. # so we must provide a symlink to still be able to link with them.
  35. ifeq ($(BR2_ENABLE_DEBUG),y)
  36. define AM335X_PRU_PACKAGE_LN_DEBUG_STAGING_STATIC
  37. ln -sf libprussdrvd.a $(STAGING_DIR)/usr/lib/libprussdrv.a
  38. endef
  39. AM335X_PRU_PACKAGE_POST_INSTALL_STAGING_HOOKS += AM335X_PRU_PACKAGE_LN_DEBUG_STAGING_STATIC
  40. ifeq ($(BR2_STATIC_LIBS),)
  41. define AM335X_PRU_PACKAGE_LN_DEBUG_STAGING_SHARED
  42. ln -sf libprussdrvd.so $(STAGING_DIR)/usr/lib/libprussdrv.so
  43. endef
  44. AM335X_PRU_PACKAGE_POST_INSTALL_STAGING_HOOKS += AM335X_PRU_PACKAGE_LN_DEBUG_STAGING_SHARED
  45. define AM335X_PRU_PACKAGE_LN_DEBUG_TARGET
  46. ln -sf libprussdrvd.so $(TARGET_DIR)/usr/lib/libprussdrv.so
  47. endef
  48. AM335X_PRU_PACKAGE_POST_INSTALL_TARGET_HOOKS += AM335X_PRU_PACKAGE_LN_DEBUG_TARGET
  49. endif # !STATIC
  50. endif # DEBUG
  51. define HOST_AM335X_PRU_PACKAGE_BUILD_CMDS
  52. cd $(@D)/pru_sw/utils/pasm_source; \
  53. $(HOSTCC) -Wall -D_UNIX_ pasm.c pasmpp.c pasmexp.c pasmop.c \
  54. pasmdot.c pasmstruct.c pasmmacro.c path_utils.c -o ../pasm
  55. endef
  56. define HOST_AM335X_PRU_PACKAGE_INSTALL_CMDS
  57. $(INSTALL) -m 0755 -D $(@D)/pru_sw/utils/pasm $(HOST_DIR)/bin/pasm
  58. endef
  59. $(eval $(generic-package))
  60. $(eval $(host-generic-package))