]> rtime.felk.cvut.cz Git - hercules2020/hercules-compiler.git/blobdiff - Makefile
Update Makefile
[hercules2020/hercules-compiler.git] / Makefile
index c29ac498cc013728e038a2557034706a120c0704..5878c5226e92b50169f502b341c7f67bff065e7f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
 PREFIX = $(HOME)/opt/hercules-compiler
+all: build/bin/opt
 
-all: build/build.ninja
+build/bin/opt: build/build.ninja
        ninja -C build
 
 llvm/tools/clang:
@@ -12,5 +13,38 @@ llvm/projects/openmp:
 build:
        mkdir $@
 
-build/build.ninja: build llvm/tools/clang llvm/projects/openmp
-       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 -G "Ninja" $(CURDIR)/llvm
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+
+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)
+
+LLVM_CROSS_FLAGS += -DCMAKE_CROSSCOMPILING=True
+## We don't need host tablegens, because we use qemu & binfmt to run
+## 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_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:]')
+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) \
+               -G "Ninja" $(CURDIR)/llvm
+
+
+install: all
+       cd build && ninja install
+
+clean:
+       rm -rf build
+
+create-orig-tgz: prefix=$(notdir $(CURDIR))
+create-orig-tgz:
+       git ls-files --recurse-submodules | sed "s#^#$(prefix)/#" | \
+       tar -c -C.. -z -f "../$(prefix)_$(shell dpkg-parsechangelog --show-field Version|sed -e s/-.*//).orig.tar.gz" --verbatim-files-from --files-from=-