]> err.no Git - sope/blob - README-OSX.txt
Drop apache 1 build-dependency
[sope] / README-OSX.txt
1 Building Notes
2 ==============
3
4 Prerequisites:
5 - Apple Developer Tools
6
7 There are two ways to build SOPE on MacOSX:
8 a) build using gnustep-make
9 b) build using Xcode >= 2.4
10
11 Option a) is usually used when you build SOPE for use with OGo, while b)
12 is more appropriate for SOPE:X applications or other interested
13 3rd parties which already have existing Xcode projects.
14
15
16 Building using gstep-make:
17 ==========================
18
19 For the build just enter:
20   ./configure
21   make -s install
22 or
23   make -s debug=yes install
24 if you build with debug information.
25
26
27 Building using Xcode:
28 =====================
29
30 For the Xcode build to succeed it is imperative to have everything built
31 in a central location. This can be achieved by navigating to:
32
33 Xcode -> Preferences -> Building
34
35 and select:
36 "Place Build Products in:" [x] Customized location:
37
38 The location itself is arbitrary, mine is: "/Local/BuildArea".
39
40
41 The Xcode build comes in two variants, one for development and the other
42 for deployment.
43
44 Development
45 -----------
46
47 Development usually means you're happily hacking away at your pet
48 projects and sometimes want to update the SOPE frameworks. For this purpose
49 use the "all" target and the accompanied "Development" build style. Later,
50 you can narrow the target down to something more specific. For development
51 we assume the destination for frameworks to be /Library/Frameworks.
52 Once you are done building all the frameworks the loader commands of the
53 frameworks will have that destination path built in. In order to use the
54 frameworks you either have to install them (by copying them manually to
55 their intended destination) or to prepare symlinks from
56 /Library/Frameworks to the place where the built products
57 are. I usually have symlinks from /Library/Frameworks to /Local/BuildArea
58 (see above) for each of the products.
59
60 Also the following products are expected to be in the following locations:
61 *.sax -> /Library/SaxDrivers
62 *.sxp -> /Library/SoProducts
63
64 Either copy them to the appropriate places or symlink them
65 (my suggestion).
66
67
68 Deployment
69 ----------
70
71 Deployment in our terms means you want to copy all required SOPE products
72 into an application's app wrapper. For this step all frameworks need to be
73 built in a special fashion, as the "install_name" of the frameworks needs
74 to be prepared to point to a relative path in the app wrapper. The
75 situation is even more complicated as all frameworks during linking store
76 the "install names" of other frameworks in their mach loader commands. In
77 order for this step not to break we need to set up an environment which is
78 clearly separated from the Development environment. I chose to use
79 $(USER_LIBRARY_DIR)/EmbeddedFrameworks
80 as the default destination for these builds. In order for your application
81 to easily pick up the built products and copy them into its app wrapper
82 this location needs to be fixed and easily accessible. Note that on my
83 system ~/Library/EmbeddedFrameworks is a symlink to
84 /Library/EmbeddedFrameworks so even if you don't like the location at all
85 it's very easy to point it to someplace else. As soon as you have set this
86 up you can use the "Wrapper Contents" target with the accompanied
87 "Wrapper" build style to build all wrapper contents in the appropriate
88 fashion. When you're done you can copy all the wrapper products into your
89 application's wrapper. The expected destination is the "Frameworks"
90 directory in the wrappers "Contents" directory. For a complete list of
91 what you need to copy into your application's wrapper see the
92 "Direct Dependencies" of all "Wrapper Contents" targets in all SOPE
93 related projects.
94
95 The SOPE umbrella
96 -----------------
97
98 For Deployment purposes, the SOPE umbrella framework comes in pretty
99 handy. If you use it in conjunction with the "Wrapper" build style, it
100 will be created in
101 $(USER_LIBRARY_DIR)/EmbeddedFrameworks/Wrapper/SOPE.framework
102 and can be copied into your application's app wrapper without further
103 adjustments. It contains all SOPE frameworks and also guarantees that
104 all loader commands of the frameworks and SaxDriver bundles will have been
105 fixed to be relative to the SOPE.framework umbrella.
106
107
108 Prebinding Notes
109 ================
110
111 NOTE: AS OF MAC OS X 10.5, PREBINDING IS DEPRECATED.
112 The following is left here as a reference, only.
113
114 General technical information about prebinding is available from Apple at
115 http://developer.apple.com/documentation/Performance/Conceptual/LaunchTime/Tasks/Prebinding.html#//apple_ref/doc/uid/20001858.
116
117 OGo frameworks currently use the range from 0xC0000000 to 0xCFFFFFFF.
118
119 Any questions and feedback regarding our use of this range should go to
120 Marcus Mueller <znek@mulle-kybernetik.com>.