############################################################################ # apps/benchmarks/coremark/Makefile # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. The # ASF licenses this file to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance with the # License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # ############################################################################ include $(APPDIR)/Make.defs # Coremark application ############################################################################ # Flags ############################################################################ COREMARK_URL ?= "https://github.com/eembc/coremark/archive" COREMARK_VERSION = main COREMARK_ZIP = $(COREMARK_VERSION).zip COREMARK_UNPACKNAME = coremark UNPACK ?= unzip -q -o VPATH += $(COREMARK_UNPACKNAME) VPATH += $(COREMARK_UNPACKNAME)$(DELIM)posix DEPPATH += --dep-path $(COREMARK_UNPACKNAME) DEPPATH += --dep-path $(COREMARK_UNPACKNAME)$(DELIM)posix CFLAGS += -Wno-strict-prototypes -Wno-undef ifeq ($(CONFIG_COREMARK_MULTITHREAD_OVERRIDE),y) COREMARK_NTHREADS = $(CONFIG_COREMARK_MULTITHREAD_COUNT) else ifneq ($(CONFIG_SMP_NCPUS),) COREMARK_NTHREADS = $(CONFIG_SMP_NCPUS) else COREMARK_NTHREADS = 1 endif endif ifeq ($(CONFIG_COREMARK_PRINT_ARGS),y) COREMARK_PRINT_ARGS = 1 else COREMARK_PRINT_ARGS = 0 endif ifeq ($(CONFIG_COREMARK_MEM_METHOD), 1) CFLAGS += ${DEFINE_PREFIX}MEM_LOCATION=\"HEAP\" else ifeq ($(CONFIG_COREMARK_MEM_METHOD), 2) CFLAGS += ${DEFINE_PREFIX}MEM_LOCATION=\"STACK\" else CFLAGS += ${DEFINE_PREFIX}MEM_LOCATION=\"GLOBAL\" endif CFLAGS += ${DEFINE_PREFIX}CALLGRIND_RUN=0 CFLAGS += ${DEFINE_PREFIX}COMPILER_REQUIRES_SORT_RETURN=0 CFLAGS += ${DEFINE_PREFIX}CORE_DEBUG=$(CONFIG_COREMARK_DEBUG) CFLAGS += ${DEFINE_PREFIX}FLAGS_STR=\""$(ARCHOPTIMIZATION)\"" CFLAGS += ${DEFINE_PREFIX}MEM_METHOD=$(CONFIG_COREMARK_MEM_METHOD) CFLAGS += ${DEFINE_PREFIX}MICA=0 CFLAGS += ${DEFINE_PREFIX}MULTITHREAD=$(COREMARK_NTHREADS) CFLAGS += ${DEFINE_PREFIX}PERFORMANCE_RUN=1 CFLAGS += ${DEFINE_PREFIX}PRINT_ARGS=$(COREMARK_PRINT_ARGS) CFLAGS += ${DEFINE_PREFIX}SEED_METHOD=$(CONFIG_COREMARK_SEED_METHOD) CFLAGS += ${DEFINE_PREFIX}USE_CLOCK=1 CFLAGS += ${DEFINE_PREFIX}USE_PTHREAD ifeq ($(CONFIG_COREMARK_ITERATIONS_OVERRIDE),y) CFLAGS += ${DEFINE_PREFIX}ITERATIONS=$(CONFIG_COREMARK_ITERATIONS_COUNT) else CFLAGS += ${DEFINE_PREFIX}ITERATIONS=0 endif CSRCS += core_list_join.c CSRCS += core_matrix.c CSRCS += core_state.c CSRCS += core_util.c CSRCS += core_portme.c ############################################################################ # Targets ############################################################################ $(COREMARK_ZIP): @echo "Downloading: $(COREMARK_URL)/$(COREMARK_ZIP)" $(Q) curl -O -L $(COREMARK_URL)/$(COREMARK_ZIP) $(COREMARK_UNPACKNAME): $(COREMARK_ZIP) @echo "Unpacking: $(COREMARK_ZIP) -> $(COREMARK_UNPACKNAME)" $(Q) $(UNPACK) $(COREMARK_ZIP) $(Q) mv coremark-$(COREMARK_VERSION) $(COREMARK_UNPACKNAME) $(Q) patch -p0 < add_init_message.patch # Update init message $(Q) touch $(COREMARK_UNPACKNAME) clean:: $(call DELFILE, $(OBJS)) # Download and unpack tarball if no git repo found ifeq ($(wildcard $(COREMARK_UNPACKNAME)/.git),) context:: $(COREMARK_UNPACKNAME) distclean:: $(call DELDIR, $(COREMARK_UNPACKNAME)) $(call DELFILE, $(COREMARK_ZIP)) endif ############################################################################ # Applications Configuration ############################################################################ MODULE = $(CONFIG_BENCHMARK_COREMARK) PROGNAME += $(CONFIG_COREMARK_PROGNAME) PRIORITY += $(CONFIG_COREMARK_PRIORITY) STACKSIZE += $(CONFIG_COREMARK_STACKSIZE) MAINSRC += core_main.c # Build with WebAssembly when CONFIG_INTERPRETERS_WAMR is enabled WASM_BUILD = both include $(APPDIR)/Application.mk