forked from etexteditor/e
/
get_externals_win.sh
115 lines (99 loc) · 2.9 KB
/
get_externals_win.sh
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
#!/bin/bash
#FIXME: refactor windows/linux code
_download()
{
# Download external libraries
echo "Downloading external libraries..."
echo
pushd arch
tempdir=`mktemp -d back.XXXXXX` || exit 1
mv *.zip $tempdir
mv *.gz $tempdir
mv *.bz2 $tempdir
wget http://curl.haxx.se/download/curl-7.18.2.tar.gz
wget http://libtomcrypt.com/files/crypt-1.11.tar.bz2
wget http://math.libtomcrypt.com/files/ltm-0.39.tar.bz2
wget http://www.equi4.com/pub/mk/metakit-2.4.9.7.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.6.tar.gz
wget http://kent.dl.sourceforge.net/sourceforge/tinyxml/tinyxml_2_5_3.tar.gz
wget http://biolpc22.york.ac.uk/pub/2.8.10/wxWidgets-2.8.10.tar.bz2
popd
}
_backup_existing_patches()
{
# Removing previous folders
tempdir=`mktemp -d back.XXXXXX` || exit 1
echo "Moving existing folders to $tempdir"
mv curl $tempdir/curl
mv libtomcrypt $tempdir/libtomcrypt
mv libtommath $tempdir/libtommath
mv metakit $tempdir/metakit
mv pcre $tempdir/pcre
mv tinyxml $tempdir/tinyxml
}
_extract_and_patch()
{
# Extract
echo "Extracting libraries.."
echo
tar -xzf arch/curl-*
tar -xjf arch/crypt-*
tar -xjf arch/ltm-*
tar -xzf arch/metakit-*
tar -xzf arch/pcre-*
tar -xzf arch/tinyxml_*
tar -xjf arch/wxWidgets-*
# Rename directories to generic names
echo "Renaming dirs..."
echo
mv curl-* curl
mv libtomcrypt-* libtomcrypt
mv libtommath-* libtommath
mv metakit-* metakit
mv pcre-* pcre
mv wxWidgets-* wxwidgets
# Apply patches
echo "Applying patches..."
echo
patch -d libtomcrypt/src/headers < patches/libtomcrypt.patch
patch -Np1 -d metakit < patches/metakit.patch
patch -d pcre < patches/pcre.patch
patch tinyxml/tinyxml.cpp < patches/tinyxml/tinyxml.cpp.patch
patch tinyxml/tinyxml.h < patches/tinyxml/tinyxml.h.patch
patch wxwidgets/src/aui/auibook.cpp < patches/wxwidgets/auibook.cpp.patch
patch wxwidgets/include/wx/aui/auibook.h < patches/wxwidgets/auibook.h.patch
# Copy msvc specific project files
echo "Copying msvc specific project files..."
echo
cp build_msvc/curllib* curl/lib
cp build_msvc/libtomcrypt* libtomcrypt
cp build_msvc/libtommath* libtommath
cp build_msvc/tinyxml/* tinyxml
cp -r build_msvc/metakit/* metakit/win
cp -r build_msvc/pcre/* pcre
}
_next_steps()
{
echo "** The libraries have been downloaded and patched. **"
echo "Now build the following projects in Visual Studio:"
echo
echo "curl\lib\curllib.sln"
echo "libtomcrypt\libtomcrypt.sln"
echo "libtommath\libtommath.sln"
echo "metakit\win\msvc90\mksrc.sln"
echo "pcre\pcre.sln"
echo "tinyxml\tinyxml.sln"
echo "wxwidgets\build\msw\wx.dsw"
echo
echo "For an automated build, run build_externals_win.cmd in a Visual Studio 2008 Command Prompt."
}
if [[ ! -e arch ]]; then
mkdir arch
fi
if [[ "$1" != "repatch" ]]; then
_download
fi
_backup_existing_patches
_extract_and_patch
_next_steps
exit 0