root/trunk/uploadr/README.osx

Revision 383, 7.9 kB (checked in by calh, 2 years ago)

renamed the .cpp to a .template file to avoid accidentally checking keys into SVN

Line 
1 Flickr Uploadr
2
3 Copyright (c) 2007-2008 Yahoo! Inc.  All rights reserved.  This library is
4 free software; you can redistribute it and/or modify it under the terms of
5 the GNU General Public License (GPL), version 2 only.  This library is
6 distributed WITHOUT ANY WARRANTY, whether express or implied. See the GNU
7 GPL for more details (http://www.gnu.org/licenses/gpl.html)
8
9 ------------------------------------------------------------------------
10
11 This guide uses UPLOADR to indicate the root of the Flickr Uploadr
12 source tree on your filesystem.  It probably shouldn't contain spaces.
13
14 You can obtain the Flickr Uploadr source code from either a tarball or
15 from Subversion.
16
17 Download tarball:
18   http://flickr.com/tools/uploadr/
19
20 Checkout from Subversion:
21   $ svn co http://code.flickr.com/svn/trunk/uploadr UPLOADR
22
23
24 XULRunner
25 ------------------------------------------------------------------------
26
27 XULRunner trunk builds:
28   ftp://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-trunk/
29
30 Note: You want the version *without* 'sdk' in the name.
31
32 Install the Mac version of XULRunner, which will live in
33 /Library/Frameworks.  Then pull it into your fake Uploadr distribution:
34   $ mkdir UPLOADR/MacUploadr.app/Contents/Frameworks
35   $ sudo mv /Library/Frameworks/XUL.framework \
36     UPLOADR/MacUploadr.app/Contents/Frameworks
37
38 Install MacPorts if you haven't already:
39   http://svn.macosforge.org/repository/macports/downloads/MacPorts-1.5.0/
40
41 The Mozilla tools require the IDL library:
42   $ sudo port install libidl
43
44
45 Gecko SDK
46 ------------------------------------------------------------------------
47
48 To build the XPCOM components you will need the Gecko SDK. For PPC Mac:
49   http://developer.mozilla.org/en/docs/Gecko_SDK#Downloading
50
51 For Intel Mac:
52   http://www.oxymoronical.com/view/1114
53
54 Place the SDK(s) appropriately:
55   UPLOADR/MacUploadr.app/Contents/Resources/gecko-sdk.mac (Intel Mac)
56   UPLOADR/MacUploadr.app/Contents/Resources/gecko-sdk.ppc (PPC Mac)
57
58 These SDKs are from the Gecko 1.8 series and so are only safe to use
59 if the XPCOM components use only frozen interfaces.  Fortunately,
60 Uploadr currently falls into this category.
61
62
63 API Keys
64 ------------------------------------------------------------------------
65
66 You'll need your own API key and secret from Flickr to build Uploadr.
67 These can be obtained at http://flickr.com/services/api/.  The key
68 and secret must be placed in flKey.cpp in the spaces provided. Copy
69 flKey.cpp.template to flKey.cpp and insert your keys:
70
71   UPLOADR/MacUploadr.app/Contents/Resources/components/flKey.cpp.template
72   UPLOADR/MacUploadr.app/Contents/Resources/components/flKey.cpp
73
74 The API key is stored as a string.  The secret is stored as individual
75 characters so it is not easily readable from the binary.
76
77 There are blocks to keep both a Windows and Mac key/secret in the same
78 source file (you certainly don't have to, though).  This is mainly
79 important for the official builds.
80
81
82
83 GraphicsMagick
84 ------------------------------------------------------------------------
85
86 Install prerequisites with MacPorts:
87   $ sudo port install jpeg configure.flags=-O3
88   $ sudo port install tiff configure.flags=-O3
89   $ sudo port install libpng
90
91 Download GraphicsMagick source (try and stick with 1.1.10):
92   ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.1/GraphicsMagick-1.1.10.tar.bz2
93
94 Configure and install GraphicsMagick:
95   $ ./configure \
96     CFLAGS="-O3" \
97     CXXFLAGS="-O3" \
98     CPPFLAGS="-I/opt/local/include -I/usr/local/include" \
99     LDFLAGS="-L/opt/local/lib -L/usr/local/lib" \
100     --without-x --without-perl \
101     --disable-installed \
102     --without-dps --without-fpx --without-jbig --without-jp2 \
103     --without-lcms --without-trio --without-ttf --without-wmf \
104     --with-quantum-depth=16
105   $ make && sudo make install
106
107 Because of dynamic/static linker weirdness, after building GraphicsMagick,
108 move libjpeg.dylib, libtiff.dylib and libpng.dylib out of the way:
109   $ sudo mv /opt/local/lib/libjpeg.dylib /opt/local/lib/libjpeg.dylib.sav
110   $ sudo mv /opt/local/lib/libtiff.dylib /opt/local/lib/libtiff.dylib.sav
111   $ sudo mv /opt/local/lib/libpng.dylib /opt/local/lib/libpng.dylib.sav
112
113 For Mac, the magic.mgk, modules.mgk and delegates.mgk files must be in
114 Contents/lib/GraphicsMagick-<version>/config/.  Like on Windows, these
115 are included in the tarball/Subversion trees.
116
117
118
119 Exiv2
120 ------------------------------------------------------------------------
121
122 Download Exiv2 source from:
123   http://exiv2.org/download.html
124
125 In Unix-land, it's easy!
126   $ sudo port install libiconv
127   $ sudo port install expat
128   $ sudo port install xml2
129   $ ./configure --prefix=/opt/local --disable-shared --with-expat=/opt/local
130   $ make && sudo make install
131
132 Again because of static linker weirdness, after building Exiv2, move the
133 dynamic libraries out of the way:
134   $ sudo mv /opt/local/lib/libiconv.dylib /opt/local/lib/libiconv.dylib.sav
135   $ sudo mv /opt/local/lib/libexpat.dylib /opt/local/lib/libexpat.dylib.sav
136   $ sudo mv /opt/local/lib/libxml2.dylib /opt/local/lib/libxml2.dylib.sav
137
138
139 FFmpeg
140 ------------------------------------------------------------------------
141
142 Check out the most recent version of FFmpeg:
143   $ svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
144   $ cd ffmpeg
145
146 Then build:
147   $ ./configure --disable-ffserver --disable-ffplay --enable-gpl \
148     --disable-vhook --disable-mmx --enable-static --disable-shared  \
149     --extra-cflags=-fno-common --disable-debug --enable-swscale
150   $ make && sudo make install
151
152
153
154 Building XPCOM components
155 ------------------------------------------------------------------------
156
157 If you make any changes to the IDL files defining the XPCOM interfaces,
158 you must increment the BuildID defined in:
159   UPLOADR/MacUploadr.app/Contents/Resources/application.ini
160
161 Use the Makefile in:
162   UPLOADR/MacUploadr.app/Contents/Resources/components/
163
164 Running `make ppc gm ; make ppc key` will build the PPC binaries as
165 gm.dylib.ppc and key.dylib.ppc.  `make mac gm ; make mac key` will
166 build gm.dylib.mac and key.dylib.mac.  These architecture-dependent
167 files can be combined on an Intel Mac to leave gm.dylib and key.dylib
168 by running `make universal gm ; make universal key`.
169
170
171
172 Running Flickr Uploadr
173 ------------------------------------------------------------------------
174
175 The app can be launched by double-clicking on MacUploadr.app in Finder.
176
177 Launch Uploadr from Terminal to get debug windows:
178   $ chmod a+w MacUploadr.app/Contents/MacOS/xulrunner
179   $ MacUploadr.app/Contents/MacOS/xulrunner -jsconsole
180
181
182 Packaging
183 ------------------------------------------------------------------------
184
185 The nice background image for the DMGs must be recreated each time you
186 change version numbers.
187   o Start Disk Utility and create a new image called "Flickr Uploadr
188     $(VERSION)" (substitute your version)
189   o Create a folder there called "Flickr Uploadr.app" and a symbolic
190     link called "Applications"
191   o Copy one of the installer images from mac_installer/ in as ".i.png"
192   o Create a symbolic link to that image as "i.png"
193   o Open the image with Finder and press Command+J to set folder options
194       o Select "This window only"
195       o Set the "Icon size" to 128px
196       o Uncheck "Snap to grid"
197       o Set the background picture to your "i.png" symbolic link (this
198         is rather finicky)
199       o Close the settings window
200   o Delete the "i.png" symbolic link (the hidden file will remain)
201   o Arrange the icons appropriately
202   o Close the window
203
204 After all of that, copy the .DS_Store file into your source tree, the
205 Makefile will take care of everything else (substitute your version):
206   $ cp /Volumes/Flickr\ Uploadr\ $(VERSION)/.DS_Store \
207     UPLOADR/mac_installer/DS_Store
208
209 Unmount and delete the disk image you created.
210
211 One-command builds for all eight languages:
212   $ make mac all
213
214 NOTE: This will fail at the MAR build steps, unless you have the Mozilla
215 tools built and installed. See README.updates for this, or you can
216 skip the MAR build step (recommended for outside developers):
217   $ make mac all-build
218
219 Or to build a single language:
220   $ make mac build en-US
221
222
Note: See TracBrowser for help on using the browser.