blob: 9ca9a7bcdde306c05083f455b90a98df7bf06c8d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
#!/usr/bin/env bash
set -e
#
# This script autoconficates the libopenmpt source tree and builds an
# autotools-based release tarball.
#
# WARNING: The script expects to be run from the root of an OpenMPT svn
# checkout. The invests no effort in verifying this precondition.
#
echo "Gathering version ..."
. libopenmpt/libopenmpt_version.mk
echo "Cleaning local build ..."
make NO_SDL=1 NO_SDL2=1 clean
echo "Cleaning dist-autotools.tar ..."
rm -rf bin/dist-autotools.tar || true
echo "Cleaning tmp directory ..."
if [ -e bin/dist-autotools ]; then
chmod -R u+rw bin/dist-autotools || true
fi
rm -rf bin/dist-autotools || true
echo "Making tmp directory ..."
mkdir bin/dist-autotools
if `svn info . > /dev/null 2>&1` ; then
echo "Exporting svn ..."
svn export ./LICENSE bin/dist-autotools/LICENSE
svn export ./README.md bin/dist-autotools/README.md
svn export ./.clang-format bin/dist-autotools/.clang-format
svn export ./common bin/dist-autotools/common
mkdir bin/dist-autotools/doc
svn export ./doc/contributing.md bin/dist-autotools/doc/contributing.md
svn export ./doc/libopenmpt_styleguide.md bin/dist-autotools/doc/libopenmpt_styleguide.md
svn export ./doc/module_formats.md bin/dist-autotools/doc/module_formats.md
svn export ./doc/openmpt_styleguide.md bin/dist-autotools/doc/openmpt_styleguide.md
svn export ./soundlib bin/dist-autotools/soundlib
svn export ./sounddsp bin/dist-autotools/sounddsp
mkdir -p bin/dist-autotools/src/mpt
svn export ./src/mpt/.clang-format bin/dist-autotools/src/mpt/.clang-format
svn export ./src/mpt/LICENSE.BSD-3-Clause.txt bin/dist-autotools/src/mpt/LICENSE.BSD-3-Clause.txt
svn export ./src/mpt/LICENSE.BSL-1.0.txt bin/dist-autotools/src/mpt/LICENSE.BSL-1.0.txt
svn export ./src/mpt/audio bin/dist-autotools/src/mpt/audio
svn export ./src/mpt/base bin/dist-autotools/src/mpt/base
svn export ./src/mpt/binary bin/dist-autotools/src/mpt/binary
svn export ./src/mpt/check bin/dist-autotools/src/mpt/check
svn export ./src/mpt/crc bin/dist-autotools/src/mpt/crc
#svn export ./src/mpt/crypto bin/dist-autotools/src/mpt/crypto
svn export ./src/mpt/detect bin/dist-autotools/src/mpt/detect
svn export ./src/mpt/endian bin/dist-autotools/src/mpt/endian
svn export ./src/mpt/environment bin/dist-autotools/src/mpt/environment
svn export ./src/mpt/exception_text bin/dist-autotools/src/mpt/exception_text
svn export ./src/mpt/format bin/dist-autotools/src/mpt/format
svn export ./src/mpt/io bin/dist-autotools/src/mpt/io
svn export ./src/mpt/io_read bin/dist-autotools/src/mpt/io_read
svn export ./src/mpt/io_write bin/dist-autotools/src/mpt/io_write
#svn export ./src/mpt/json bin/dist-autotools/src/mpt/json
#svn export ./src/mpt/library bin/dist-autotools/src/mpt/library
svn export ./src/mpt/mutex bin/dist-autotools/src/mpt/mutex
svn export ./src/mpt/out_of_memory bin/dist-autotools/src/mpt/out_of_memory
svn export ./src/mpt/osinfo bin/dist-autotools/src/mpt/osinfo
svn export ./src/mpt/parse bin/dist-autotools/src/mpt/parse
#svn export ./src/mpt/path bin/dist-autotools/src/mpt/path
svn export ./src/mpt/random bin/dist-autotools/src/mpt/random
svn export ./src/mpt/string bin/dist-autotools/src/mpt/string
svn export ./src/mpt/string_transcode bin/dist-autotools/src/mpt/string_transcode
svn export ./src/mpt/system_error bin/dist-autotools/src/mpt/system_error
svn export ./src/mpt/test bin/dist-autotools/src/mpt/test
svn export ./src/mpt/uuid bin/dist-autotools/src/mpt/uuid
#svn export ./src/mpt/uuid_namespace bin/dist-autotools/src/mpt/uuid_namespace
mkdir -p bin/dist-autotools/src/openmpt
svn export ./src/openmpt/all bin/dist-autotools/src/openmpt/all
svn export ./src/openmpt/base bin/dist-autotools/src/openmpt/base
svn export ./src/openmpt/logging bin/dist-autotools/src/openmpt/logging
svn export ./src/openmpt/random bin/dist-autotools/src/openmpt/random
svn export ./src/openmpt/soundbase bin/dist-autotools/src/openmpt/soundbase
svn export ./test bin/dist-autotools/test
rm bin/dist-autotools/test/mpt_tests_crypto.cpp
rm bin/dist-autotools/test/mpt_tests_uuid_namespace.cpp
svn export ./libopenmpt bin/dist-autotools/libopenmpt
svn export ./examples bin/dist-autotools/examples
svn export ./openmpt123 bin/dist-autotools/openmpt123
mkdir bin/dist-autotools/build
mkdir bin/dist-autotools/build/svn_version
svn export ./build/svn_version/svn_version.h bin/dist-autotools/build/svn_version/svn_version.h
mkdir bin/dist-autotools/m4
touch bin/dist-autotools/m4/emptydir
svn export ./build/autotools/configure.ac bin/dist-autotools/configure.ac
svn export ./build/autotools/Makefile.am bin/dist-autotools/Makefile.am
else
echo "Exporting git ..."
cp -r ./LICENSE bin/dist-autotools/LICENSE
cp -r ./README.md bin/dist-autotools/README.md
cp -r ./.clang-format bin/dist-autotools/.clang-format
cp -r ./common bin/dist-autotools/common
mkdir bin/dist-autotools/doc
cp -r ./doc/contributing.md bin/dist-autotools/doc/contributing.md
cp -r ./doc/libopenmpt_styleguide.md bin/dist-autotools/doc/libopenmpt_styleguide.md
cp -r ./doc/module_formats.md bin/dist-autotools/doc/module_formats.md
cp -r ./doc/openmpt_styleguide.md bin/dist-autotools/doc/openmpt_styleguide.md
cp -r ./soundlib bin/dist-autotools/soundlib
cp -r ./sounddsp bin/dist-autotools/sounddsp
mkdir -p bin/dist-autotools/src/mpt
cp -r ./src/mpt/.clang-format bin/dist-autotools/src/mpt/.clang-format
cp -r ./src/mpt/LICENSE.BSD-3-Clause.txt bin/dist-autotools/src/mpt/LICENSE.BSD-3-Clause.txt
cp -r ./src/mpt/LICENSE.BSL-1.0.txt bin/dist-autotools/src/mpt/LICENSE.BSL-1.0.txt
cp -r ./src/mpt/audio bin/dist-autotools/src/mpt/audio
cp -r ./src/mpt/base bin/dist-autotools/src/mpt/base
cp -r ./src/mpt/binary bin/dist-autotools/src/mpt/binary
cp -r ./src/mpt/check bin/dist-autotools/src/mpt/check
cp -r ./src/mpt/crc bin/dist-autotools/src/mpt/crc
#cp -r ./src/mpt/crypto bin/dist-autotools/src/mpt/crypto
cp -r ./src/mpt/detect bin/dist-autotools/src/mpt/detect
cp -r ./src/mpt/endian bin/dist-autotools/src/mpt/endian
cp -r ./src/mpt/environment bin/dist-autotools/src/mpt/environment
cp -r ./src/mpt/exception_text bin/dist-autotools/src/mpt/exception_text
cp -r ./src/mpt/format bin/dist-autotools/src/mpt/format
cp -r ./src/mpt/io bin/dist-autotools/src/mpt/io
cp -r ./src/mpt/io_read bin/dist-autotools/src/mpt/io_read
cp -r ./src/mpt/io_write bin/dist-autotools/src/mpt/io_write
#cp -r ./src/mpt/json bin/dist-autotools/src/mpt/json
#cp -r ./src/mpt/library bin/dist-autotools/src/mpt/library
cp -r ./src/mpt/mutex bin/dist-autotools/src/mpt/mutex
cp -r ./src/mpt/out_of_memory bin/dist-autotools/src/mpt/out_of_memory
cp -r ./src/mpt/osinfo bin/dist-autotools/src/mpt/osinfo
cp -r ./src/mpt/parse bin/dist-autotools/src/mpt/parse
#cp -r ./src/mpt/path bin/dist-autotools/src/mpt/path
cp -r ./src/mpt/random bin/dist-autotools/src/mpt/random
cp -r ./src/mpt/string bin/dist-autotools/src/mpt/string
cp -r ./src/mpt/string_transcode bin/dist-autotools/src/mpt/string_transcode
cp -r ./src/mpt/system_error bin/dist-autotools/src/mpt/system_error
cp -r ./src/mpt/test bin/dist-autotools/src/mpt/test
cp -r ./src/mpt/uuid bin/dist-autotools/src/mpt/uuid
#cp -r ./src/mpt/uuid_namespace bin/dist-autotools/src/mpt/uuid_namespace
mkdir -p bin/dist-autotools/src/openmpt
cp -r ./src/openmpt/all bin/dist-autotools/src/openmpt/all
cp -r ./src/openmpt/base bin/dist-autotools/src/openmpt/base
cp -r ./src/openmpt/logging bin/dist-autotools/src/openmpt/logging
cp -r ./src/openmpt/random bin/dist-autotools/src/openmpt/random
cp -r ./src/openmpt/soundbase bin/dist-autotools/src/openmpt/soundbase
cp -r ./test bin/dist-autotools/test
rm bin/dist-autotools/test/mpt_tests_crypto.cpp
rm bin/dist-autotools/test/mpt_tests_uuid_namespace.cpp
cp -r ./libopenmpt bin/dist-autotools/libopenmpt
cp -r ./examples bin/dist-autotools/examples
cp -r ./openmpt123 bin/dist-autotools/openmpt123
mkdir bin/dist-autotools/build
mkdir bin/dist-autotools/build/svn_version
cp -r ./build/svn_version/svn_version.h bin/dist-autotools/build/svn_version/svn_version.h
mkdir bin/dist-autotools/m4
touch bin/dist-autotools/m4/emptydir
cp -r ./build/autotools/configure.ac bin/dist-autotools/configure.ac
cp -r ./build/autotools/Makefile.am bin/dist-autotools/Makefile.am
fi
echo "Querying svn version ..."
if `svn info . > /dev/null 2>&1` ; then
BUILD_SVNURL="$(svn info --xml | grep '^<url>' | sed 's/<url>//g' | sed 's/<\/url>//g' | sed 's/\//\\\//g' )"
BUILD_SVNVERSION="$(svnversion -n . | tr ':' '-' )"
BUILD_SVNDATE="$(svn info --xml | grep '^<date>' | sed 's/<date>//g' | sed 's/<\/date>//g' )"
else
BUILD_SVNURL="$(git log --grep=git-svn-id -n 1 | grep git-svn-id | tail -n 1 | tr ' ' '\n' | tail -n 2 | head -n 1 | sed 's/@/ /g' | awk '{print $1;}' | sed 's/\//\\\//g')"
BUILD_SVNVERSION="$(git log --grep=git-svn-id -n 1 | grep git-svn-id | tail -n 1 | tr ' ' '\n' | tail -n 2 | head -n 1 | sed 's/@/ /g' | awk '{print $2;}')$(if [ $(git rev-list $(git log --grep=git-svn-id -n 1 --format=format:'%H') ^$(git log -n 1 --format=format:'%H') --count ) -ne 0 ] ; then echo M ; fi)"
BUILD_SVNDATE="$(git log -n 1 --date=iso --format=format:'%cd' | sed 's/ +0000/Z/g' | tr ' ' 'T')"
fi
echo " BUILD_SVNURL=${BUILD_SVNURL}"
echo " BUILD_SVNVERSION=${BUILD_SVNVERSION}"
echo " BUILD_SVNDATE=${BUILD_SVNDATE}"
echo "Building man pages ..."
make NO_SDL=1 NO_SDL2=1 bin/openmpt123.1
echo "Copying man pages ..."
mkdir bin/dist-autotools/man
cp bin/openmpt123.1 bin/dist-autotools/man/openmpt123.1
echo "Cleaning local buid ..."
make NO_SDL=1 NO_SDL2=1 clean
echo "Changing to autotools package directory ..."
OLDDIR="$(pwd)"
cd bin/dist-autotools/
echo "Setting version in configure.ac ..."
cat configure.ac | sed "s/!!MPT_LIBOPENMPT_VERSION_MAJOR!!/${LIBOPENMPT_VERSION_MAJOR}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
cat configure.ac | sed "s/!!MPT_LIBOPENMPT_VERSION_MINOR!!/${LIBOPENMPT_VERSION_MINOR}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
cat configure.ac | sed "s/!!MPT_LIBOPENMPT_VERSION_PATCH!!/${LIBOPENMPT_VERSION_PATCH}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
cat configure.ac | sed "s/!!MPT_LIBOPENMPT_VERSION_PREREL!!/${LIBOPENMPT_VERSION_PREREL}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
cat configure.ac | sed "s/!!MPT_LIBOPENMPT_LTVER_CURRENT!!/${LIBOPENMPT_LTVER_CURRENT}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
cat configure.ac | sed "s/!!MPT_LIBOPENMPT_LTVER_REVISION!!/${LIBOPENMPT_LTVER_CURRENT}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
cat configure.ac | sed "s/!!MPT_LIBOPENMPT_LTVER_AGE!!/${LIBOPENMPT_LTVER_AGE}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
echo " SemVer metadata "
MPT_SEMVER_METADATA_PREFIX=
if [ "${LIBOPENMPT_VERSION_PREREL}x" = "x" ] ; then
MPT_SEMVER_METADATA_PREFIX=release
else
MPT_SEMVER_METADATA_PREFIX=r${BUILD_SVNVERSION}
fi
cat configure.ac | sed "s/!!MPT_SEMVER_METADATA_PREFIX!!/${MPT_SEMVER_METADATA_PREFIX}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
echo " SVNURL"
cat configure.ac | sed "s/!!MPT_SVNURL!!/${BUILD_SVNURL}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
echo " SVNVERSION"
cat configure.ac | sed "s/!!MPT_SVNVERSION!!/${BUILD_SVNVERSION}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
echo " SVNDATE"
cat configure.ac | sed "s/!!MPT_SVNDATE!!/${BUILD_SVNDATE}/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
echo " PACKAGE"
cat configure.ac | sed "s/!!MPT_PACKAGE!!/true/g" > configure.ac.tmp && mv configure.ac.tmp configure.ac
echo "Generating 'Doxyfile.in' ..."
( cat libopenmpt/Doxyfile | grep -v '^PROJECT_NUMBER' | sed 's/INPUT += /INPUT += @top_srcdir@\//g' > Doxyfile.in ) && ( echo "PROJECT_NUMBER = @PACKAGE_VERSION@" >> Doxyfile.in ) && rm libopenmpt/Doxyfile
echo "OUTPUT_DIRECTORY = doxygen-doc" >> Doxyfile.in
echo "WARN_IF_DOC_ERROR = NO" >> Doxyfile.in
echo "Running 'autoreconf -i' ..."
autoreconf -i
echo "Running './configure' ..."
./configure
echo "Running 'make dist' ..."
make dist
echo "Running 'make distcheck' ..."
#make distcheck
(
make distcheck 3>&1 1>&2 2>&3 | ( grep -v 'libtool: install: warning:' || true ) | ( grep -v 'libtool: warning: remember to run' || true ) | ( grep -v "libtool: warning: '.*la' has not been installed" || true )
exit ${PIPESTATUS[0]}
) 3>&1 1>&2 2>&3
echo "Running 'make' ..."
make
echo "Running 'make check' ..."
make check
echo "Building dist-autotools.tar ..."
cd "$OLDDIR"
MPT_LIBOPENMPT_VERSION=$(make NO_SDL=1 NO_SDL2=1 distversion-tarball)
cd bin/dist-autotools
rm -rf libopenmpt
mkdir -p libopenmpt/src.autotools/$MPT_LIBOPENMPT_VERSION/
cp *.tar.gz libopenmpt/src.autotools/$MPT_LIBOPENMPT_VERSION/
tar -cv --numeric-owner --owner=0 --group=0 -f ../dist-autotools.tar libopenmpt
cd ../..
|