]> git.lizzy.rs Git - rust.git/blob - mk/dist.mk
Remove rustpkg.
[rust.git] / mk / dist.mk
1 ######################################################################
2 # Distribution
3 ######################################################################
4
5 PKG_NAME := rust
6 PKG_DIR = $(PKG_NAME)-$(CFG_RELEASE)
7 PKG_TAR = $(PKG_DIR).tar.gz
8
9 ifdef CFG_ISCC
10 PKG_ISS = $(wildcard $(S)src/etc/pkg/*.iss)
11 PKG_ICO = $(S)src/etc/pkg/rust-logo.ico
12 PKG_EXE = $(PKG_DIR)-install.exe
13 endif
14
15 PKG_GITMODULES := $(S)src/libuv $(S)src/llvm $(S)src/gyp
16
17 PKG_FILES := \
18     $(S)COPYRIGHT                              \
19     $(S)LICENSE-APACHE                         \
20     $(S)LICENSE-MIT                            \
21     $(S)AUTHORS.txt                            \
22     $(S)CONTRIBUTING.md                        \
23     $(S)README.md                              \
24     $(S)RELEASES.txt                           \
25     $(S)configure $(S)Makefile.in              \
26     $(S)man                                    \
27     $(S)doc                                    \
28     $(addprefix $(S)src/,                      \
29       README.txt                               \
30       driver                                   \
31       librustc                                 \
32       compiletest                              \
33       etc                                      \
34       libextra                                 \
35       libstd                                   \
36       libsyntax                                \
37       librustuv                                \
38       libgreen                                 \
39       libnative                                \
40       rt                                       \
41       librustdoc                               \
42       rustllvm                                 \
43       snapshots.txt                            \
44       test)                                    \
45     $(PKG_GITMODULES)                          \
46     $(filter-out Makefile config.stamp config.mk, \
47                  $(MKFILE_DEPS))
48
49 UNROOTED_PKG_FILES := $(patsubst $(S)%,./%,$(PKG_FILES))
50
51 ifdef CFG_ISCC
52 LICENSE.txt: $(S)COPYRIGHT $(S)LICENSE-APACHE $(S)LICENSE-MIT
53         cat $^ > $@
54
55 %.iss: $(S)src/etc/pkg/%.iss
56         cp $< $@
57
58 %.ico: $(S)src/etc/pkg/%.ico
59         cp $< $@
60
61 $(PKG_EXE): rust.iss modpath.iss LICENSE.txt rust-logo.ico \
62             $(PKG_FILES) $(CSREQ3_T_$(CFG_BUILD)_H_$(CFG_BUILD))
63         $(CFG_PYTHON) $(S)src/etc/copy-runtime-deps.py i686-pc-mingw32/stage3/bin
64         @$(call E, ISCC: $@)
65         $(Q)"$(CFG_ISCC)" $<
66 endif
67
68
69 $(PKG_TAR): $(PKG_FILES)
70         @$(call E, making dist dir)
71         $(Q)rm -Rf dist
72         $(Q)mkdir -p dist/$(PKG_DIR)
73         $(Q)tar \
74          -C $(S) \
75          --exclude-vcs \
76          --exclude=*~ \
77          --exclude=*/llvm/test/*/*.ll \
78          --exclude=*/llvm/test/*/*.td \
79          --exclude=*/llvm/test/*/*.s \
80          --exclude=*/llvm/test/*/*/*.ll \
81          --exclude=*/llvm/test/*/*/*.td \
82          --exclude=*/llvm/test/*/*/*.s \
83          -c $(UNROOTED_PKG_FILES) | tar -x -C dist/$(PKG_DIR)
84         $(Q)tar -czf $(PKG_TAR) -C dist $(PKG_DIR)
85         $(Q)rm -Rf dist
86
87 .PHONY: dist distcheck
88
89 ifdef CFG_WINDOWSY_$(CFG_BUILD)
90
91 dist: $(PKG_EXE)
92
93 distcheck: dist
94         @echo
95         @echo -----------------------------------------------
96         @echo $(PKG_EXE) ready for distribution
97         @echo -----------------------------------------------
98
99 else
100
101 dist: $(PKG_TAR)
102
103 distcheck: $(PKG_TAR)
104         $(Q)rm -Rf dist
105         $(Q)mkdir -p dist
106         @$(call E, unpacking $(PKG_TAR) in dist/$(PKG_DIR))
107         $(Q)cd dist && tar -xzf ../$(PKG_TAR)
108         @$(call E, configuring in dist/$(PKG_DIR)-build)
109         $(Q)mkdir -p dist/$(PKG_DIR)-build
110         $(Q)cd dist/$(PKG_DIR)-build && ../$(PKG_DIR)/configure
111         @$(call E, making 'check' in dist/$(PKG_DIR)-build)
112         $(Q)+make -C dist/$(PKG_DIR)-build check
113         @$(call E, making 'clean' in dist/$(PKG_DIR)-build)
114         $(Q)+make -C dist/$(PKG_DIR)-build clean
115         $(Q)rm -Rf dist
116         @echo
117         @echo -----------------------------------------------
118         @echo $(PKG_TAR) ready for distribution
119         @echo -----------------------------------------------
120
121 endif