build
1: #!/bin/csh
2:
3: ##
4: # build - create a release of pyexiv2.zip
5: ##
6:
7: ##
8: # $Id: //depot/PyExiv2Release/build#7 $
9: # $Header: //depot/PyExiv2Release/build#7 $
10: # $Date: 2008/04/22 $
11: # $DateTime: 2008/04/22 18:26:42 $
12: # $Change: 117 $
13: # $File: //depot/PyExiv2Release/build $
14: # $Revision: #7 $
15: # $Author: rmills $
16: ##
17:
18: ##
19: # mount the network drives
20: mountU # /U = ubuntu drive
21: mountY # /Y = windows drive
22: mountP # /P = ppc drive
23: mountI # /I = intel drive
24: ##
25:
26: alias Popd 'popd > /dev/null'
27: alias Pushd 'pushd \!* > /dev/null'
28: alias Cp 'cp -p \!* >& /dev/null'
29:
30: ##
31: # cleanup from last time
32: if ( -e pyexiv2 ) then
33: rm -rf pyexiv2
34: endif
35: if ( -e pyexiv2.zip ) then
36: rm -rf pyexiv2.zip
37: endif
38: ##
39:
40: ##
41: #
42: echo building Readme.txt
43: mkdir pyexiv2
44: Cp ReadMe.txt pyexiv2
45: ##
46:
47: ##
48: #
49: echo building test
50: mkdir pyexiv2/test
51: ditto test pyexiv2/test
52: ##
53:
54: ##
55: #
56: echo building scripts
57: mkdir pyexiv2/scripts
58: Cp /I/Users/rmills/bin/gps.py pyexiv2/scripts
59: Cp /I/Users/rmills/bin/surd.py pyexiv2/scripts
60: ##
61:
62: ##
63: #
64: echo building linux
65: mkdir pyexiv2/linux
66: Pushd pyexiv2/linux
67:
68: mkdir site-packages
69: Pushd site-packages
70: Cp /U/home/rmills/gnu/pyexiv2/build/libpyexiv2.so libpyexiv2.so
71: Cp /U/home/rmills/gnu/pyexiv2/src/pyexiv2.py .
72: Popd
73:
74: mkdir lib
75: Pushd lib
76: Cp /U/home/rmills/gnu/boost_1_35_0/bin.v2/libs/python/build/gcc-4.1.3/release/threading-multi/libboost_python-gcc41-mt-1_35.so.1.35.0 libboost_python-gcc41-mt.so
77: Cp /U/home/rmills/gnu/expat-2.0.1/.libs/libexpat.so.1.5.2 .
78: Cp /U//home/rmills/gnu/exiv2-0.16/src/.libs/libexiv2.so.2.1.0 .
79: Popd
80:
81: Popd
82: ##
83:
84: ##
85: #
86: echo building Mac universals
87: if ( -e universal ) then
88: rm -rf universal
89: endif
90:
91: if ( -e intel ) then
92: rm -rf intel
93: endif
94:
95: if ( -e ppc ) then
96: rm -rf ppc
97: endif
98:
99: # copy the intel files
100: mkdir intel
101: Pushd intel
102: cp /I/Users/rmills/gnu/pyexiv2/build/libpyexiv2.dylib libpyexiv2.so
103: cp /I/Users/rmills/gnu/exiv2-0.16/src/.libs/libexiv2.2.1.0.dylib libexiv2.2.1.0.dylib
104: cp /I/Users/rmills/gnu/expat-2.0.1/.libs/libexpat.1.5.2.dylib libexpat.1.5.2.dylib
105: cp /I/Users/rmills/gnu/gettext-0.17/gettext-runtime/intl/.libs/libintl.8.0.2.dylib libintl.8.0.2.dylib
106: Popd
107:
108: # copy the ppc files
109: mkdir ppc
110: Pushd ppc
111: cp /P/Users/rmills/gnu/pyexiv2/build/libpyexiv2.dylib libpyexiv2.so
112: cp /P/Users/rmills/gnu/exiv2-0.16/src/.libs/libexiv2.2.1.0.dylib libexiv2.2.1.0.dylib
113: cp /P/Users/rmills/gnu/expat-2.0.1/.libs/libexpat.1.5.2.dylib libexpat.1.5.2.dylib
114: cp /P/Users/rmills/gnu/gettext-0.17/gettext-runtime/intl/.libs/libintl.8.0.2.dylib libintl.8.0.2.dylib
115: Popd
116:
117: # create the universal binaries
118: mkdir universal
119: Pushd universal
120: set t=libexiv2.2.1.0.dylib && lipo -arch ppc ../ppc/$t -arch i386 ../intel/$t -create -output $t
121: set t=libexpat.1.5.2.dylib && lipo -arch ppc ../ppc/$t -arch i386 ../intel/$t -create -output $t
122: set t=libintl.8.0.2.dylib && lipo -arch ppc ../ppc/$t -arch i386 ../intel/$t -create -output $t
123: set t=libpyexiv2.so && lipo -arch ppc ../ppc/$t -arch i386 ../intel/$t -create -output $t
124: Popd
125:
126: # cleanup
127: if ( -e intel ) then
128: rm -rf intel
129: endif
130:
131: if ( -e ppc ) then
132: rm -rf ppc
133: endif
134: ##
135:
136: ##
137: #
138: echo building macosx
139: mkdir pyexiv2/macosx
140: Pushd pyexiv2/macosx
141:
142: mkdir lib
143: Pushd lib
144: cp ../../../universal/libexiv2.2.1.0.dylib .
145: cp ../../../universal/libexpat.1.5.2.dylib .
146: cp ../../../universal/libintl.8.0.2.dylib .
147: Popd
148:
149: mkdir site-packages
150: Pushd site-packages
151: Cp /I/Users/rmills/gnu/pyexiv2/src/pyexiv2.py .
152: Cp ../../../universal/libpyexiv2.so .
153: Popd
154:
155: Popd
156:
157: # cleanup
158: if ( -e universal ) then
159: rm -rf universal
160: endif
161: ##
162:
163: ##
164: #
165: echo building windows
166: mkdir pyexiv2/windows
167: Pushd pyexiv2/windows
168:
169: mkdir site-packages
170: Pushd site-packages
171: Cp /Y/boost_1_35_0/bin.v2/libs/python/build/msvc-8.0/release/threading-multi/boost_python-vc80-mt-1_35.dll .
172: Cp /Y/gnu/expat-2.0.1/win32/bin/release/libexpat.dll .
173: Cp /Y/gnu/pyexiv2/build/libpyexiv2.dll libpyexiv2.pyd
174: Cp /Y/gnu/pyexiv2/src/pyexiv2.py .
175: Popd
176:
177: Popd
178: ##
179:
180: ##
181: #
182: echo building pyexiv2.zip
183: chmod -R +w pyexiv2
184: ditto -ck --keepParent --norsrc pyexiv2 pyexiv2.zip
185: ##
186:
187: ##
188: #
189: echo doing a diff on lastTime.txt and thisTime.txt
190: if ( -e lastTime.txt ) then
191: rm -rf LastTime.txt
192: endif
193:
194: if ( -e thisTime.txt ) then
195: mv thisTime.txt lastTime.txt
196: endif
197:
198: treesize pyexiv2 -s -r > thisTime.txt
199: diff lastTime.txt thisTime.txt
200: ##
201:
202: ##
203: #
204: echo
205: echo If everything looks OK, then execute release to publish
206: echo
207: ##
208:
209: ## That's all folks!