blob: 55fea82e9cb02873ecb33014ab4eff8590c05bb0 (
plain)
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
|
#!/bin/sh -x
# This script must be run from the packaging directory under the gromacs
# plugins area of the source tree
if [ "$1" = "" ]
then
GROMACS_VERSION="3.3.3"
else
GROMACS_VERSION="$1"
fi
TOP_LEVEL=`pwd`
# do a quick check to see if I'm running from somewhere that might make sense
if [ ! -e "$TOP_LEVEL/Win32" ]
then
echo "incorrect directory structure, cannot continue"
exit 1
fi
# Get rid of any build stuff from before.
rm -rf Win32/build Win32/dist Win32/install
# If there isn't a pre-built version cached
if [ ! -e "/c/GMX_Install" ]
then
# do the build, so grab the Win modified sources.
if [ ! -e "/c/build_prereqs/gromacs-$GROMACS_VERSION-modified.tar.gz" ]
then
echo "This compile cannot continue until the correct sources are installed."
cat Win32/installer_build_notes.txt
exit 1
fi
# Make sure the mcpp.zip exists for the packager later.
if [ ! -e "/c/build_prereqs/mcpp.zip" ]
then
echo "You need a version of mcpp and renamed properly."
echo "check the installer nsi file for the correct directory structure"
exit 1
fi
mkdir Win32/install || exit 1
cd Win32/install
unzip /c/build_prereqs/mcpp.zip || exit 1
cd $TOP_LEVEL
mkdir Win32/build || exit 1
cd Win32/build || exit 1
mkdir tmpbuild || exit 1
# expand the gromacs Win source into the build directory
tar -xzvf /c/build_prereqs/gromacs-$GROMACS_VERSION-modified.tar.gz || exit 1
# Build gromacs phase
cd gromacs-$GROMACS_VERSION || exit 1
CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --prefix=$TOP_LEVEL/Win32/build/tmpbuild --enable-double --program-suffix= || exit 1
make || exit 1
make install || exit 1
# end of gromacs build
cd $TOP_LEVEL/Win32 || exit 1
# Make and fill the final distribution directories
mkdir dist || exit 1
mkdir dist/src || exit 1
cd dist/src || exit 1
# extract the stock source into it
tar -xzvf /c/build_prereqs/gromacs-$GROMACS_VERSION.tar.gz || exit 1
cd $TOP_LEVEL/Win32/build/tmpbuild || exit 1
# move the built binaries into the distribution directory
mv bin $TOP_LEVEL/Win32/dist || exit 1
mv include $TOP_LEVEL/Win32/dist || exit 1
mv share $TOP_LEVEL/Win32/dist || exit 1
mv lib $TOP_LEVEL/Win32/dist || exit 1
# move the gromacs distribution to where it needs to be for the installer
# this is in a shared directory with mcpp
cd $TOP_LEVEL/Win32 || exit 1
mv dist install || exit 1
# move the other files needed for the installer
for name in `echo License.txt install-header.bmp install.ico uninstall.ico wizard-sidebar.bmp GMX-installer.nsi`
do
cp $name install || exit 1
done
cp $TOP_LEVEL/ReadMe.html install || exit 1
cd install || exit 1
find . -depth -type d -name ".svn" -print -exec rm -rf {} \;
# Do the backup, but we don't care if it succeeds
mkdir /c/GMX_Install
if [ "$?" = "0" ]
then
cd install
cp -R dist /c/GMX_Install
cp -R mcpp /c/GMX_Install
else
echo "Unable to create pre-compiled directory c:\GMX_Install"
echo "Fix this or you will always have to compile gromacs every time"
fi
else
# There's already pre-built binaries in the cache location, use them
cd $TOP_LEVEL/Win32
mkdir install
for name in `echo License.txt install-header.bmp install.ico uninstall.ico wizard-sidebar.bmp GMX-installer.nsi`
do
cp $name install
done
cp $TOP_LEVEL/ReadMe.html install
cd /c/GMX_Install
cp -R dist $TOP_LEVEL/Win32/install
cp -r mcpp $TOP_LEVEL/Win32/install
fi
cd $TOP_LEVEL/Win32 || exit 1
# Change the version information for the installer script
cat GMX-installer.nsi | sed -e "s:^!define PRODUCT_VERSION .*:!define PRODUCT_VERSION \\\"$GROMACS_VERSION\\\":" > GMX-installer.nsi.btmp
mv GMX-installer.nsi.btmp GMX-installer.nsi || exit 1
Run the installer
cd $TOP_LEVEL/Win32/install
"c:/program files/nsis/makensis.exe" GMX-installer.nsi
|