diff --git a/hermit/.gitignore b/hermit/.gitignore index c61ab9e32..6e2b38d36 100644 --- a/hermit/.gitignore +++ b/hermit/.gitignore @@ -18,7 +18,7 @@ usr/tests/hello usr/tests/hello++ usr/tests/hellof usr/tests/jacobi -usr/tests/stream usr/tests/thr_hello +usr/benchmarks/stream usr/x86/ usr/tmp/ diff --git a/hermit/tools/Makefile b/hermit/tools/Makefile index 61668e319..5d6f26b0f 100644 --- a/hermit/tools/Makefile +++ b/hermit/tools/Makefile @@ -6,7 +6,7 @@ CFLAGS = -O2 -Wall HEXDUMP = hexdump LDFLGAS = INITRDFILES = ../usr/tests/hello #$(shell find ../usr/tests -perm -u+r+x -type f) -PROXYFILES = $(shell find ../usr/tests -perm -u+r+x -type f) +PROXYFILES = $(shell find ../usr/tests -perm -u+r+x -type f) $(shell find ../usr/benchmarks -perm -u+r+x -type f) # Prettify output V = 0 diff --git a/hermit/usr/Makefile b/hermit/usr/Makefile index 94051ecc0..7f7c9906f 100644 --- a/hermit/usr/Makefile +++ b/hermit/usr/Makefile @@ -24,6 +24,8 @@ demo: @echo Build demo applications $Q$(MAKE) CC_FOR_TARGET=$(CC_FOR_TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) -C tests depend $Q$(MAKE) CC_FOR_TARGET=$(CC_FOR_TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) -C tests + $Q$(MAKE) CC_FOR_TARGET=$(CC_FOR_TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) -C benchmarks depend + $Q$(MAKE) CC_FOR_TARGET=$(CC_FOR_TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) -C benchmarks $(ARCH): $Q$(MKDIR) $(TMP) @@ -65,6 +67,7 @@ $(TMP)/gcc: clean: @echo Cleaning toolchain $Q$(MAKE) -C tests clean + $Q$(MAKE) -C benchmarks clean veryclean: @echo Propper cleaning of the toolchain diff --git a/hermit/usr/benchmarks/Makefile b/hermit/usr/benchmarks/Makefile new file mode 100644 index 000000000..f1df1a615 --- /dev/null +++ b/hermit/usr/benchmarks/Makefile @@ -0,0 +1,71 @@ +ARCH = x86 +TARGET=x86_64-hermit +MAKE = make +override STRIP_DEBUG = --strip-unneeded --strip-debug +KEEP_DEBUG = --only-keep-debug + +# Set your own cross compiler tool chain prefix here +CROSSCOMPREFIX = x86_64-hermit- + +CC_FOR_TARGET = $(CROSSCOMPREFIX)gcc +CXX_FOR_TARGET = $(CROSSCOMPREFIX)g++ +GCC_FOR_TARGET = $(CROSSCOMPREFIX)gcc +CPP_FOR_TARGET = $(CROSSCOMPREFIX)cpp +AR_FOR_TARGET = $(CROSSCOMPREFIX)ar +AS_FOR_TARGET = $(CROSSCOMPREFIX)as +LD_FOR_TARGET = $(CROSSCOMPREFIX)ld +NM_FOR_TARGET = $(CROSSCOMPREFIX)nm +OBJDUMP_FOR_TARGET = $(CROSSCOMPREFIX)objdump +OBJCOPY_FOR_TARGET = $(CROSSCOMPREFIX)objcopy +RANLIB_FOR_TARGET = $(CROSSCOMPREFIX)ranlib +STRIP_FOR_TARGET = $(CROSSCOMPREFIX)strip +READELF_FOR_TARGET = $(CROSSCOMPREFIX)readelf + +# Prettify output +V = 0 +ifeq ($V,0) + Q = @ + P = > /dev/null +endif + +# other implicit rules +%.o : %.c + @echo [CC] $@ + $Q$(CC_FOR_TARGET) -c $(CFLAGS_FOR_TARGET) -o $@ $< + +%.o: %.cpp + @echo [CXX] $@ + $Q$(CXX_FOR_TARGET) -c $(CXXFLAGS_FOR_TARGET) $(CFLAGS_FOR_TARGET) -o $@ $< + +%.o: %.f90 + @echo [F90] $@ + $Q$(FC_FOR_TARGET) -c $(FFLAGS_FOR_TARGET) -o $@ $< + +default: all + +all: stream + +stream.o: stream.c + @echo [CC] $@ + $Q$(CC_FOR_TARGET) -c $(CFLAGS_FOR_TARGET) -fopenmp -o $@ $< + +stream: stream.o + @echo [LD] $@ + $Q$(CC_FOR_TARGET) $(LDFLAGS_FOR_TARGET) $(CFLAGS_FOR_TARGET) -fopenmp -o $@ $< + $Q$(OBJCOPY_FOR_TARGET) $(KEEP_DEBUG) $@ $@.sym + $Q$(OBJCOPY_FOR_TARGET) $(STRIP_DEBUG) $@ + $Qchmod a-x $@.sym + +clean: + @echo Cleaning benchmarks + $Q$(RM) stream *.sym *.o *~ + +veryclean: + @echo Propper cleaning benchmarks + $Q$(RM) stream *.sym *.o *~ + +depend: + $Q$(CC_FOR_TARGET) -MM $(CFLAGS_FOR_TARGET) *.c > Makefile.dep + +-include Makefile.dep +# DO NOT DELETE