]> rtime.felk.cvut.cz Git - hercules2020/hercules-compiler.git/commitdiff
Build & install Hercules passes
authorMichal Sojka <michal.sojka@cvut.cz>
Sun, 6 May 2018 09:44:32 +0000 (11:44 +0200)
committerMichal Sojka <michal.sojka@cvut.cz>
Sun, 6 May 2018 09:44:32 +0000 (11:44 +0200)
Makefile

index a1706a4b9bff1bc4cb3be10620638f6b9c284028..881524e42784185cddf88ed62dbe4382637c0279 100644 (file)
--- 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)