]> rtime.felk.cvut.cz Git - hercules2020/hercules-compiler.git/blobdiff - Makefile
Generate multi-file orig.tar.gz
[hercules2020/hercules-compiler.git] / Makefile
index ef0edf37bd71d6db049cd200430b205854b01fd7..095aa74887794bd56132f561ad0169f127157d9c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -14,11 +14,14 @@ llvm/tools/clang:
 llvm/projects/openmp:
        ln -s ../../openmp $@
 
-build build_passes:
+build build_passes build_native:
        mkdir $@
 
 ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
 
+LLVM_TBLGEN=$(CURDIR)/build_native/bin/llvm-tblgen
+CLANG_TBLGEN=$(CURDIR)/build_native/bin/clang-tblgen
+
 LLVM_CROSS_FLAGS += -DCMAKE_C_COMPILER=$(DEB_HOST_GNU_TYPE)-gcc
 LLVM_CROSS_FLAGS += -DCMAKE_CXX_COMPILER=$(DEB_HOST_GNU_TYPE)-g++
 LLVM_CROSS_FLAGS += -DCMAKE_SYSTEM_PROCESSOR=$(DEB_HOST_GNU_CPU)
@@ -28,9 +31,23 @@ LLVM_CROSS_FLAGS += -DCMAKE_CROSSCOMPILING=True
 ## arm64 binaries on x86
 # LLVM_CROSS_FLAGS += -DLLVM_TABLEGEN="<path-to-host-bin>/llvm-tblgen"
 # LLVM_CROSS_FLAGS += -DCLANG_TABLEGEN="<path-to-host-bin>/clang-tblgen"
+LLVM_CROSS_FLAGS += -DLLVM_TABLEGEN="$(LLVM_TBLGEN)"
+LLVM_CROSS_FLAGS += -DCLANG_TABLEGEN="$(CLANG_TBLGEN)"
 LLVM_CROSS_FLAGS += -DLLVM_DEFAULT_TARGET_TRIPLE=$(DEB_HOST_GNU_TYPE)
 LLVM_CROSS_FLAGS += -DLLVM_TARGET_ARCH=$(DEB_TARGET_GNU_CPU)
 #LLVM_CROSS_FLAGS += -DLLVM_TARGETS_TO_BUILD=$(shell echo $(DEB_HOST_ARCH)|tr '[:lower:]' '[:upper:]')
+
+build/build.ninja: | $(LLVM_TBLGEN) $(CLANG_TBLGEN)
+
+$(LLVM_TBLGEN) $(CLANG_TBLGEN): | build_native/build.ninja
+       ninja -C build_native bin/llvm-tblgen bin/clang-tblgen
+
+build_native/build.ninja: | build_native
+       cd $(@D) && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(PREFIX)" \
+               -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_BACKTRACES=ON -DLLVM_ENABLE_WERROR=OFF \
+               -DBUILD_SHARED_LIBS=OFF -DLLVM_ENABLE_RTTI=ON \
+               -DCMAKE_CXX_FLAGS='-DHERCULES_PASS_ROOT=\"$(PREFIX)/lib/hercules\"' \
+               -G "Ninja" $(CURDIR)/llvm
 endif
 
 
@@ -72,14 +89,11 @@ install: all
 clean:
        rm -rf build build_passes install
 
-define tar_concat
-$(foreach subarch,$(shell git submodule --quiet foreach 'echo $$toplevel/../$(prefix)-$$path.tar'),tar --concatenate --file=../$(prefix).tar $(subarch)
-)
-endef
-
 create-orig-tgz: prefix=$(notdir $(CURDIR))
+create-orig-tgz: upstream_version=$(shell dpkg-parsechangelog --show-field Version|sed -e s/-.*//)
 create-orig-tgz:
-       git archive --format=tar --prefix=$(prefix)/ -o ../$(prefix).tar HEAD
-       git submodule foreach 'git archive --format=tar --prefix=$(prefix)/$$path/ -o $$toplevel/../$(prefix)-$$path.tar HEAD'
-       $(tar_concat)
-       gzip -c ../$(prefix).tar > "../$(prefix)_$(shell dpkg-parsechangelog --show-field Version|sed -e s/-.*//).orig.tar.gz"
+       git archive --prefix=$(prefix)/ -o ../$(prefix)_$(upstream_version).orig.tar.gz HEAD
+       git submodule foreach 'set -x; git archive --prefix=$$path/ -o $$toplevel/../$(prefix)_$(upstream_version).orig-$$path.tar.gz $$sha1'
+
+cross-tx2:
+       sbuild --host=arm64 -d xenial --add-depends="libc6-dev, libstdc++-5-dev" --build-failed-commands='%s'