]> git.lizzy.rs Git - rust.git/blob - mk/dist.mk
doc: 'if' expressions no longer require parens
[rust.git] / mk / dist.mk
1 ######################################################################
2 # Distribution
3 ######################################################################
4
5
6 PKG_NAME := rust
7 PKG_VER  = $(shell date +"%Y-%m-%d")-snap
8 PKG_DIR = $(PKG_NAME)-$(PKG_VER)
9 PKG_TAR = $(PKG_DIR).tar.gz
10
11 ifdef CFG_MAKENSIS
12 PKG_NSI = $(S)src/etc/pkg/rust.nsi
13 PKG_EXE = $(PKG_DIR)-install.exe
14 endif
15
16 PKG_3RDPARTY := rt/valgrind.h rt/memcheck.h \
17                 rt/isaac/rand.h rt/isaac/standard.h \
18                 rt/uthash/uthash.h rt/uthash/utlist.h \
19                 rt/bigint/bigint.h rt/bigint/bigint_int.cpp \
20                 rt/bigint/bigint_ext.cpp rt/bigint/low_primes.h
21
22 PKG_UV := \
23                 $(wildcard $(S)src/rt/libuv/*) \
24                 $(wildcard $(S)src/rt/libuv/include/*) \
25                 $(wildcard $(S)src/rt/libuv/include/*/*) \
26                 $(wildcard $(S)src/rt/libuv/src/*) \
27                 $(wildcard $(S)src/rt/libuv/src/*/*) \
28                 $(wildcard $(S)src/rt/libuv/src/*/*/*)
29
30 PKG_PP_EXAMPLES = $(wildcard $(S)src/test/pretty/*.pp)
31
32 PKG_FILES = \
33     $(wildcard $(S)src/etc/*.*)                \
34     $(S)LICENSE.txt $(S)README                 \
35     $(S)configure $(S)Makefile.in              \
36     $(S)src/snapshots.txt                      \
37     $(addprefix $(S)src/,                      \
38       README comp/README                       \
39       $(RUNTIME_CS) $(RUNTIME_HDR)             \
40       $(RUNTIME_S)                             \
41       rt/rustrt.def.in                         \
42       rt/intrinsics/intrinsics.ll.in           \
43       rt/main.ll.in                            \
44       $(RUSTLLVM_LIB_CS) $(RUSTLLVM_OBJS_CS)   \
45       $(RUSTLLVM_HDR)                          \
46       rustllvm/rustllvm.def.in                 \
47       $(PKG_3RDPARTY))                         \
48     $(PKG_UV)                                  \
49     $(COMPILER_INPUTS)                         \
50     $(STDLIB_INPUTS)                           \
51     $(ALL_TEST_INPUTS)                         \
52     $(FUZZER_CRATE)                            \
53     $(FUZZER_INPUTS)                           \
54     $(COMPILETEST_CRATE)                       \
55     $(COMPILETEST_INPUTS)                      \
56     $(PKG_PP_EXAMPLES)                         \
57     $(MKFILES)
58
59 dist: $(PKG_TAR) $(PKG_EXE)
60
61 nsis-dist: $(PKG_EXE)
62
63 lic.txt: $(S)LICENSE.txt
64         @$(call E, crlf: $@)
65         @$(Q)perl -pe 's@\r\n|\n@\r\n@go' <$< >$@
66
67 $(PKG_EXE): $(PKG_NSI) $(PKG_FILES) $(DOCS) $(SREQ3$(CFG_HOST_TRIPLE)) lic.txt
68         @$(call E, makensis: $@)
69         $(Q)makensis -NOCD -V1 "-XOutFile $@" "-XLicenseData lic.txt" $<
70         $(Q)rm -f lic.txt
71
72 $(PKG_TAR): $(PKG_FILES)
73         @$(call E, making dist dir)
74         $(Q)rm -Rf dist
75         $(Q)mkdir -p dist/$(PKG_DIR)
76         $(Q)tar -c $(PKG_FILES) | tar -x -C dist/$(PKG_DIR)
77         $(Q)tar -czf $(PKG_TAR) -C dist $(PKG_DIR)
78         $(Q)rm -Rf dist
79
80 distcheck: $(PKG_TAR)
81         $(Q)rm -Rf dist
82         $(Q)mkdir -p dist
83         @$(call E, unpacking $(PKG_TAR) in dist/$(PKG_DIR))
84         $(Q)cd dist && tar -xzf ../$(PKG_TAR)
85         @$(call E, configuring in dist/$(PKG_DIR)-build)
86         $(Q)mkdir -p dist/$(PKG_DIR)-build
87         $(Q)cd dist/$(PKG_DIR)-build && ../$(PKG_DIR)/configure
88         @$(call E, making 'check' in dist/$(PKG_DIR)-build)
89         $(Q)make -C dist/$(PKG_DIR)-build check
90         @$(call E, making 'clean' in dist/$(PKG_DIR)-build)
91         $(Q)make -C dist/$(PKG_DIR)-build clean
92         $(Q)rm -Rf dist
93         @echo
94         @echo -----------------------------------------------
95         @echo $(PKG_TAR) ready for distribution
96         @echo -----------------------------------------------
97
98