From ca2e29b19f3d147364aa1906c46dc3b92d4bb348 Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Sun, 6 May 2018 11:44:32 +0200 Subject: [PATCH] Build & install Hercules passes --- Makefile | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index a1706a4..881524e 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,9 @@ PREFIX = $(HOME)/opt/hercules-compiler -all: build/bin/opt +TMP_DESTDIR = $(CURDIR)/install + +all: passes + +llvm-clang: build/bin/opt build/bin/opt: build/build.ninja ninja -C build @@ -10,7 +14,7 @@ llvm/tools/clang: llvm/projects/openmp: ln -s ../../openmp $@ -build: +build build_passes: mkdir $@ ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) @@ -31,18 +35,29 @@ endif build/build.ninja: | build llvm/tools/clang llvm/projects/openmp -# printenv | sort cd $(@D) && cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX="$(PREFIX)" \ -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_BACKTRACES=ON -DLLVM_ENABLE_WERROR=OFF \ -DBUILD_SHARED_LIBS=OFF -DLLVM_ENABLE_RTTI=ON $(LLVM_CROSS_FLAGS) \ + -DCMAKE_CXX_FLAGS='-DHERCULES_PASS_ROOT=\"$(PREFIX)/lib/hercules\"' \ -G "Ninja" $(CURDIR)/llvm +$(TMP_DESTDIR)/$(PREFIX)/lib/cmake/llvm: | llvm-clang + DESTDIR=$(TMP_DESTDIR) ninja -C build install + +build_passes/build.ninja: | build_passes $(TMP_DESTDIR)/$(PREFIX)/lib/cmake/llvm + cd $(@D) && cmake -DCMAKE_INSTALL_PREFIX="$(PREFIX)" \ + -DLLVM_DIR':'STRING=$(TMP_DESTDIR)$(PREFIX)/lib/cmake/llvm -DCMAKE_BUILD_TYPE=DEBUG \ + -DLLVM_TARGETS_TO_BUILD="X86;ARM" -G "Ninja" $(CURDIR)/HerculesCompiler/llvm-passes + +passes: build_passes/build.ninja + ninja -C build_passes install: all - cd build && ninja install + DESTDIR=$(DESTDIR) ninja -C build install + DESTDIR=$(DESTDIR) ninja -C build_passes install clean: - rm -rf build + rm -rf build build_passes define tar_concat $(foreach subarch,$(shell git submodule --quiet foreach 'echo $$toplevel/../$(prefix)-$$path.tar'),tar --concatenate --file=../$(prefix).tar $(subarch) -- 2.39.2