1 .PHONY
: all clean configure
3 host_arch
= $(shell uname
-m
)
4 ifeq ($(host_arch
),x86_64
)
5 enabled_arches
= ppc64le aarch64 x86_64
6 else ifeq ($(host_arch
),aarch64
)
7 # debian 10 doesn't have cross-compilers for ppc64le from aarch64
8 enabled_arches
= aarch64 x86_64
9 else ifeq ($(host_arch
),ppc64le
)
10 enabled_arches
= ppc64le aarch64 x86_64
12 $(error unsupported arch
$(host_arch
))
15 all: $(foreach arch
,$(enabled_arches
),build-
$(arch
)/benchmarks
)
17 common_cmake_flags
= -S .
18 common_cmake_flags
+= -DCMAKE_EXPORT_COMPILE_COMMANDS
:BOOL
=TRUE
19 common_cmake_flags
+= -DCMAKE_BUILD_TYPE
=RelWithDebInfo
21 reset_make_env
= "MAKEFLAGS=" "MFLAGS=" "MAKELEVEL=" "MAKE_TERMERR=" "MAKE_TERMOUT="
23 .installed-dependencies
: install-deps.sh
24 .
/install-deps.sh
$(enabled_arches
)
25 touch .installed-dependencies
27 build-ppc64le
/Makefile
: toolchain-powerpc64le-linux-gnu.cmake CMakeLists.txt .installed-dependencies
29 env
$(reset_make_env
) cmake
$(common_cmake_flags
) -B build-ppc64le
-DCMAKE_TOOLCHAIN_FILE
=toolchain-powerpc64le-linux-gnu.cmake
31 build-aarch64
/Makefile
: toolchain-aarch64-linux-gnu.cmake CMakeLists.txt .installed-dependencies
33 env
$(reset_make_env
) cmake
$(common_cmake_flags
) -B build-aarch64
-DCMAKE_TOOLCHAIN_FILE
=toolchain-aarch64-linux-gnu.cmake
35 build-x86_64
/Makefile
: toolchain-x86_64-linux-gnu.cmake CMakeLists.txt .installed-dependencies
37 env
$(reset_make_env
) cmake
$(common_cmake_flags
) -B build-x86_64
-DCMAKE_TOOLCHAIN_FILE
=toolchain-x86_64-linux-gnu.cmake
39 configure
: $(foreach arch
,$(enabled_arches
),build-
$(arch
)/Makefile
)
43 build-ppc64le
/benchmarks
: build-ppc64le
/Makefile __force-run
44 $(MAKE
) -C build-ppc64le benchmarks
46 build-aarch64
/benchmarks
: build-aarch64
/Makefile __force-run
47 $(MAKE
) -C build-aarch64 benchmarks
49 build-x86_64
/benchmarks
: build-x86_64
/Makefile __force-run
50 $(MAKE
) -C build-x86_64 benchmarks
53 rm -fr build-ppc64le build-aarch64 build-x86_64 .installed-dependencies