]> rtime.felk.cvut.cz Git - hercules2020/hercules-compiler.git/blob - Makefile
Create orig.tar.gz from git index rather than from worktree
[hercules2020/hercules-compiler.git] / Makefile
1 PREFIX = $(HOME)/opt/hercules-compiler
2 all: build/bin/opt
3
4 build/bin/opt: build/build.ninja
5         ninja -C build
6
7 llvm/tools/clang:
8         ln -s ../../clang $@
9
10 llvm/projects/openmp:
11         ln -s ../../openmp $@
12
13 build:
14         mkdir $@
15
16 ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
17
18 LLVM_CROSS_FLAGS += -DCMAKE_C_COMPILER=$(DEB_HOST_GNU_TYPE)-gcc
19 LLVM_CROSS_FLAGS += -DCMAKE_CXX_COMPILER=$(DEB_HOST_GNU_TYPE)-g++
20 LLVM_CROSS_FLAGS += -DCMAKE_SYSTEM_PROCESSOR=$(DEB_HOST_GNU_CPU)
21
22 LLVM_CROSS_FLAGS += -DCMAKE_CROSSCOMPILING=True
23 ## We don't need host tablegens, because we use qemu & binfmt to run
24 ## arm64 binaries on x86
25 # LLVM_CROSS_FLAGS += -DLLVM_TABLEGEN="<path-to-host-bin>/llvm-tblgen"
26 # LLVM_CROSS_FLAGS += -DCLANG_TABLEGEN="<path-to-host-bin>/clang-tblgen"
27 LLVM_CROSS_FLAGS += -DLLVM_DEFAULT_TARGET_TRIPLE=$(DEB_HOST_GNU_TYPE)
28 LLVM_CROSS_FLAGS += -DLLVM_TARGET_ARCH=$(DEB_TARGET_GNU_CPU)
29 #LLVM_CROSS_FLAGS += -DLLVM_TARGETS_TO_BUILD=$(shell echo $(DEB_HOST_ARCH)|tr '[:lower:]' '[:upper:]')
30 endif
31
32
33 build/build.ninja: | build llvm/tools/clang llvm/projects/openmp
34 #       printenv | sort
35         cd $(@D) && cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX="$(PREFIX)" \
36                 -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_BACKTRACES=ON -DLLVM_ENABLE_WERROR=OFF \
37                 -DBUILD_SHARED_LIBS=OFF -DLLVM_ENABLE_RTTI=ON $(LLVM_CROSS_FLAGS) \
38                 -G "Ninja" $(CURDIR)/llvm
39
40
41 install: all
42         cd build && ninja install
43
44 clean:
45         rm -rf build
46
47 define tar_concat
48 $(foreach subarch,$(shell git submodule --quiet foreach 'echo $$toplevel/../$(prefix)-$$path.tar'),tar --concatenate --file=../$(prefix).tar $(subarch)
49 )
50 endef
51
52 create-orig-tgz: prefix=$(notdir $(CURDIR))
53 create-orig-tgz:
54         git archive --format=tar --prefix=$(prefix)/ -o ../$(prefix).tar HEAD
55         git submodule foreach 'git archive --format=tar --prefix=$(prefix)/$$path/ -o $$toplevel/../$(prefix)-$$path.tar HEAD'
56         $(tar_concat)
57         gzip -c ../$(prefix).tar > "../$(prefix)_$(shell dpkg-parsechangelog --show-field Version|sed -e s/-.*//).orig.tar.gz"