You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.3 KiB

  1. #
  2. # Copyright (C) 2018 Lim Guo Wei
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. PKG_NAME:=coremark
  9. PKG_SOURCE_DATE:=2020-12-17
  10. PKG_SOURCE_VERSION:=5e0f662ce709f1af8d272bd8d3960034603d3850
  11. PKG_RELEASE:=1
  12. PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
  13. PKG_SOURCE_URL:=https://codeload.github.com/eembc/coremark/tar.gz/$(PKG_SOURCE_VERSION)?
  14. PKG_HASH:=fb0a2ee2113322eb976fa521d0ac033a997e0097185c2c2325d84ca94a7f5a6d
  15. PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
  16. PKG_MAINTAINER:=Lim Guo Wei <limguowei@gmail.com>
  17. PKG_LICENSE:=Apache-2.0
  18. PKG_LICENSE_FILES:=LICENSE.md
  19. PKG_USE_MIPS16:=0
  20. include $(INCLUDE_DIR)/package.mk
  21. define Package/coremark
  22. SECTION:=utils
  23. CATEGORY:=Utilities
  24. TITLE:=CoreMark Embedded Microprocessor Benchmark
  25. URL:=https://github.com/eembc/coremark
  26. endef
  27. define Package/coremark/description
  28. Embedded Microprocessor Benchmark
  29. endef
  30. DIR_ARCH:=linux$(if $(CONFIG_ARCH_64BIT),64)
  31. define Package/coremark/config
  32. config COREMARK_OPTIMIZE_O3
  33. bool "Use all optimizations (-O3)"
  34. depends on PACKAGE_coremark
  35. default y
  36. help
  37. This enables additional optmizations using the -O3 compilation flag.
  38. config COREMARK_ENABLE_MULTITHREADING
  39. bool "Enable multithreading support"
  40. depends on PACKAGE_coremark
  41. default n
  42. help
  43. This enables multithreading support
  44. config COREMARK_NUMBER_OF_THREADS
  45. int "Number of threads"
  46. depends on COREMARK_ENABLE_MULTITHREADING
  47. default 2
  48. help
  49. Number of threads to run in parallel
  50. endef
  51. TARGET_CFLAGS += -flto
  52. ifeq ($(CONFIG_COREMARK_OPTIMIZE_O3),y)
  53. TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS)) -O3
  54. endif
  55. ifeq ($(CONFIG_COREMARK_ENABLE_MULTITHREADING),y)
  56. EXTRA_CFLAGS := -DMULTITHREAD=$(CONFIG_COREMARK_NUMBER_OF_THREADS) -DUSE_PTHREAD
  57. endif
  58. define Build/Compile
  59. $(SED) 's|EXE = .exe|EXE =|' $(PKG_BUILD_DIR)/$(DIR_ARCH)/core_portme.mak
  60. mkdir $(PKG_BUILD_DIR)/$(ARCH)
  61. $(CP) -r $(PKG_BUILD_DIR)/$(DIR_ARCH)/* $(PKG_BUILD_DIR)/$(ARCH)
  62. $(MAKE) -C $(PKG_BUILD_DIR) PORT_DIR=$(ARCH) $(MAKE_FLAGS) \
  63. PORT_CFLAGS="$(TARGET_CFLAGS)" XCFLAGS="$(EXTRA_CFLAGS)" compile
  64. endef
  65. define Package/coremark/install
  66. $(INSTALL_DIR) $(1)/bin
  67. $(INSTALL_BIN) $(PKG_BUILD_DIR)/coremark $(1)/bin/
  68. endef
  69. $(eval $(call BuildPackage,coremark))