forked from Github_Repos/cvw
140 lines
3.4 KiB
Makefile
140 lines
3.4 KiB
Makefile
# Copyright 2018 Embedded Microprocessor Benchmark Consortium (EEMBC)
|
|
#
|
|
# Licensed 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.
|
|
#
|
|
# Original Author: Shay Gal-on
|
|
|
|
# Make sure the default target is to simply build and run the benchmark.
|
|
RSTAMP = v1.0
|
|
|
|
.PHONY: run score
|
|
run: $(OUTFILE) rerun score
|
|
|
|
score:
|
|
@echo "Check run1.log and run2.log for results."
|
|
@echo "See README.md for run and reporting rules."
|
|
|
|
ifndef PORT_DIR
|
|
# Ports for a couple of common self hosted platforms
|
|
UNAME=$(shell if command -v uname 2> /dev/null; then uname ; fi)
|
|
ifneq (,$(findstring CYGWIN,$(UNAME)))
|
|
PORT_DIR=cygwin
|
|
endif
|
|
ifneq (,$(findstring Linux,$(UNAME)))
|
|
MACHINE=$(shell uname -m)
|
|
ifneq (,$(findstring 64,$(MACHINE)))
|
|
PORT_DIR=linux64
|
|
else
|
|
PORT_DIR=linux
|
|
endif
|
|
endif
|
|
endif
|
|
ifndef PORT_DIR
|
|
$(error PLEASE define PORT_DIR! (e.g. make PORT_DIR=simple))
|
|
endif
|
|
vpath %.c $(PORT_DIR)
|
|
vpath %.h $(PORT_DIR)
|
|
vpath %.mak $(PORT_DIR)
|
|
include $(PORT_DIR)/core_portme.mak
|
|
|
|
ifndef $(ITERATIONS)
|
|
ITERATIONS=0
|
|
endif
|
|
ifdef REBUILD
|
|
FORCE_REBUILD=force_rebuild
|
|
endif
|
|
|
|
CFLAGS += -DITERATIONS=$(ITERATIONS)
|
|
|
|
CORE_FILES = core_list_join core_main core_matrix core_state core_util
|
|
ORIG_SRCS = $(addsuffix .c,$(CORE_FILES))
|
|
SRCS = $(ORIG_SRCS) $(PORT_SRCS)
|
|
OBJS = $(addprefix $(OPATH),$(addsuffix $(OEXT),$(CORE_FILES)) $(PORT_OBJS))
|
|
OUTNAME = coremark$(EXE)
|
|
OUTFILE = $(OPATH)$(OUTNAME)
|
|
LOUTCMD = $(OFLAG) $(OUTFILE) $(LFLAGS_END)
|
|
OUTCMD = $(OUTFLAG) $(OUTFILE) $(LFLAGS_END)
|
|
|
|
HEADERS = coremark.h
|
|
CHECK_FILES = $(ORIG_SRCS) $(HEADERS)
|
|
|
|
$(OPATH):
|
|
$(MKDIR) $(OPATH)
|
|
|
|
.PHONY: compile link
|
|
ifdef SEPARATE_COMPILE
|
|
$(OPATH)$(PORT_DIR):
|
|
$(MKDIR) $(OPATH)$(PORT_DIR)
|
|
|
|
compile: $(OPATH) $(OPATH)$(PORT_DIR) $(OBJS) $(HEADERS)
|
|
link: compile
|
|
$(LD) $(LFLAGS) $(XLFLAGS) $(OBJS) $(LOUTCMD)
|
|
|
|
else
|
|
|
|
compile: $(OPATH) $(SRCS) $(HEADERS)
|
|
$(CC) $(CFLAGS) $(XCFLAGS) $(SRCS) $(OUTCMD)
|
|
link: compile
|
|
@echo "Link performed along with compile"
|
|
|
|
endif
|
|
|
|
$(OUTFILE): $(SRCS) $(HEADERS) Makefile core_portme.mak $(FORCE_REBUILD)
|
|
$(MAKE) port_prebuild
|
|
$(MAKE) link
|
|
$(MAKE) port_postbuild
|
|
|
|
.PHONY: rerun
|
|
rerun:
|
|
$(MAKE) XCFLAGS="$(XCFLAGS) -DPERFORMANCE_RUN=1" load run1.log
|
|
$(MAKE) XCFLAGS="$(XCFLAGS) -DVALIDATION_RUN=1" load run2.log
|
|
|
|
PARAM1=$(PORT_PARAMS) 0x0 0x0 0x66 $(ITERATIONS)
|
|
PARAM2=$(PORT_PARAMS) 0x3415 0x3415 0x66 $(ITERATIONS)
|
|
PARAM3=$(PORT_PARAMS) 8 8 8 $(ITERATIONS)
|
|
|
|
run1.log-PARAM=$(PARAM1) 7 1 2000
|
|
run2.log-PARAM=$(PARAM2) 7 1 2000
|
|
run3.log-PARAM=$(PARAM3) 7 1 1200
|
|
|
|
run1.log run2.log run3.log: load
|
|
$(MAKE) port_prerun
|
|
$(RUN) $(OUTFILE) $($(@)-PARAM) > $(OPATH)$@
|
|
$(MAKE) port_postrun
|
|
|
|
.PHONY: gen_pgo_data
|
|
gen_pgo_data: run3.log
|
|
|
|
.PHONY: load
|
|
load: $(OUTFILE)
|
|
$(MAKE) port_preload
|
|
$(LOAD) $(OUTFILE)
|
|
$(MAKE) port_postload
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f $(OUTFILE) $(OPATH)*.log *.info $(OPATH)index.html $(PORT_CLEAN)
|
|
|
|
.PHONY: force_rebuild
|
|
force_rebuild:
|
|
echo "Forcing Rebuild"
|
|
|
|
.PHONY: check
|
|
check:
|
|
md5sum -c coremark.md5
|
|
|
|
ifdef ETC
|
|
# Targets related to testing and releasing CoreMark. Not part of the general release!
|
|
include Makefile.internal
|
|
endif
|