js/src/make-source-package.sh

branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
equal deleted inserted replaced
-1:000000000000 0:550735950dfe
1 #!/bin/sh
2
3 # Find out ASAP if some command breaks here, because we're copying a lot of
4 # files we don't actually maintain ourselves, and requirements could easily be
5 # broken.
6 set -e
7
8 # need these environment vars:
9 echo "Environment:"
10 echo " MAKE = $MAKE"
11 echo " MKDIR = $MKDIR"
12 echo " TAR = $TAR"
13 echo " DIST = $DIST"
14 echo " SRCDIR = $SRCDIR"
15 echo " MOZJS_MAJOR_VERSION = $MOZJS_MAJOR_VERSION"
16 echo " MOZJS_MINOR_VERSION = $MOZJS_MINOR_VERSION"
17 echo " MOZJS_PATCH_VERSION = $MOZJS_PATCH_VERSION"
18 echo " MOZJS_ALPHA = $MOZJS_ALPHA"
19
20 cmd=${1:-build}
21 pkg="mozjs-${MOZJS_MAJOR_VERSION}.${MOZJS_MINOR_VERSION}.${MOZJS_PATCH_VERSION:-${MOZJS_ALPHA:-0}}.tar.bz2"
22 pkgpath=${pkg%.tar*}
23 tgtpath=${DIST}/${pkgpath}
24 taropts="-jcf"
25
26 case $cmd in
27 "clean")
28 echo "Cleaning ${pkg} and ${tgtpath} ..."
29 rm -rf ${pkg} ${tgtpath}
30 ;;
31 "build")
32 echo "Packaging source tarball ${pkg}..."
33 if [ -d ${tgtpath} ]; then
34 echo "WARNING - dist tree ${tgtpath} already exists!"
35 fi
36 ${MKDIR} -p ${tgtpath}/js/src
37
38 # copy the embedded icu
39 ${MKDIR} -p ${tgtpath}/intl
40 cp -t ${tgtpath}/intl -dRp ${SRCDIR}/../../intl/icu
41
42 # copy main moz.build and Makefile.in
43 cp -t ${tgtpath} -dRp ${SRCDIR}/../../Makefile.in ${SRCDIR}/../../moz.build
44
45 # copy a nspr file used by the build system
46 ${MKDIR} -p ${tgtpath}/nsprpub/config
47 cp -t ${tgtpath}/nsprpub/config -dRp \
48 ${SRCDIR}/../../nsprpub/config/make-system-wrappers.pl
49
50 # copy build and config directory.
51 ${MKDIR} -p ${tgtpath}/build
52 cp -t ${tgtpath} -dRp ${SRCDIR}/../../build ${SRCDIR}/../../config
53
54 # put in js itself
55 cp -t ${tgtpath} -dRp ${SRCDIR}/../../mfbt
56 cp -t ${tgtpath}/js -dRp ${SRCDIR}/../jsd ${SRCDIR}/../public
57 find ${SRCDIR} -mindepth 1 -maxdepth 1 -not -path ${DIST} -a -not -name ${pkg} \
58 -exec cp -t ${tgtpath}/js/src -dRp {} +
59
60 # distclean if necessary
61 if [ -e ${tgtpath}/js/src/Makefile ]; then
62 ${MAKE} -C ${tgtpath}/js/src distclean
63 fi
64
65 cp -t ${tgtpath} -dRp \
66 ${SRCDIR}/../../python
67 ${MKDIR} -p ${tgtpath}/dom/bindings
68 cp -t ${tgtpath}/dom/bindings -dRp \
69 ${SRCDIR}/../../dom/bindings/mozwebidlcodegen
70 ${MKDIR} -p ${tgtpath}/media/webrtc/trunk/tools
71 cp -t ${tgtpath}/media/webrtc/trunk/tools -dRp \
72 ${SRCDIR}/../../media/webrtc/trunk/tools/gyp
73 ${MKDIR} -p ${tgtpath}/testing
74 cp -t ${tgtpath}/testing -dRp \
75 ${SRCDIR}/../../testing/mozbase
76
77 # remove *.pyc and *.pyo files if any
78 find ${tgtpath} -type f -name "*.pyc" -o -name "*.pyo" |xargs rm -f
79
80 # copy or create INSTALL
81 if [ -e {DIST}/INSTALL ]; then
82 cp -t ${tgtpath} ${DIST}/INSTALL
83 else
84 cat <<INSTALL_EOF >${tgtpath}/INSTALL
85 Full build documentation for SpiderMonkey is hosted on MDN:
86 https://developer.mozilla.org/en-US/docs/SpiderMonkey/Build_Documentation
87
88 Note that the libraries produced by the build system include symbols,
89 causing the binaries to be extremely large. It is highly suggested that \`strip\`
90 be run over the binaries before deploying them.
91
92 Building with default options may be performed as follows:
93 cd js/src
94 ./configure
95 make
96 INSTALL_EOF
97 fi
98
99 # copy or create README
100 if [ -e ${DIST}/README ]; then
101 cp -t ${tgtpath} ${DIST}/README
102 else
103 cat <<README_EOF >${tgtpath}/README
104 This directory contains SpiderMonkey ${MOZJS_MAJOR_VERSION}.
105
106 This release is based on a revision of Mozilla ${MOZJS_MAJOR_VERSION}:
107 http://hg.mozilla.org/releases/
108 The changes in the patches/ directory were applied.
109
110 MDN hosts the latest SpiderMonkey ${MOZJS_MAJOR_VERSION} release notes:
111 https://developer.mozilla.org/en-US/docs/SpiderMonkey/${MOZJS_MAJOR_VERSION}
112 README_EOF
113 fi
114
115 # copy LICENSE
116 if [ -e ${SRCDIR}/../../b2g/LICENSE ]; then
117 cp ${SRCDIR}/../../b2g/LICENSE ${tgtpath}/
118 else
119 cp ${SRCDIR}/../../LICENSE ${tgtpath}/
120 fi
121
122 # copy patches dir, if it currently exists in DIST
123 if [ -d ${DIST}/patches ]; then
124 cp -t ${tgtpath} -dRp ${DIST}/patches
125 elif [ -d ${SRCDIR}/../../patches ]; then
126 cp -t ${tgtpath} -dRp ${SRCDIR}/../../patches
127 fi
128
129 # Roll the tarball
130 ${TAR} $taropts ${DIST}/../${pkg} -C ${DIST} ${pkgpath}
131 echo "done."
132 ;;
133 *)
134 echo "Unrecognized command: $cmd"
135 ;;
136 esac

mercurial