diff options
Diffstat (limited to 'build-aux/osx/build/README')
-rw-r--r-- | build-aux/osx/build/README | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/build-aux/osx/build/README b/build-aux/osx/build/README new file mode 100644 index 0000000..79c0d4a --- /dev/null +++ b/build-aux/osx/build/README @@ -0,0 +1,131 @@ +This is a guide to building gedit on OS X. This guide assumes that you are +already familiar with building gtk+ software on OS X (natively) using jhbuild. +Please make sure to read https://live.gnome.org/GTK%2B/OSX/Building +before proceeding. + + +Building gedit for OS X +============================================================================= + +Since version 3.14, gedit hosts a self-contained, in-tree guided build +process using jhbuild. The ./build script in this directory is the main +entry-point which handles: + +1) Initializing the build environment (installing jhbuild in-tree) +2) Bootstrapping and building all the necessary dependencies +3) Simple wrapper around common jhbuild tasks (build, make, shell, etc.) + +The basic build procedure in a pristine environment is: + + ./build all + +This will first initialize the build environment (if necessary), install +jhbuild if needed, bootstrap jhbuild and then continue to build gedit and +all its dependencies. Each of these stages can also be invoked manually: + + ./build init + ./build bootstrap + ./build build + +Note that at the moment of writing, ./build bootstrap is not entirely +equivalent to ./build jh bootstrap. The reason is that there is a problem +when building python as part of the bootstrap process. As a workaround, +python is actually built twice during bootstrap. + +By default, ./build will build against the 10.7 (Lion) OS X SDK, which +has to be already installed and available at + +$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk + +Although Xcode 5 does not distribute the 10.7 SDK by default, it can be +easily obtained from previous Xcode versions. To do so, find the last +version of Xcode to support a given SDK and download it from apple +developer downloads [1]. Open the package, and without installing, +extract the SDK directory and copy it to the right location. For 10.7, +the latest Xcode version to support it is 4.3.3, which can be downloaded +at [2] (links subject to change). + +It is also possible to build gedit against a different SDK by exporting +the GEDIT_SDK environment variable (defaults to 10.7). For example: + + export GEDIT_SDK=10.9 + ./build all + +Would build gedit against the 10.9 SDK and install in .build/10.9 +(see Directory structure below). + +Note that building gedit for OS X, although made easier by use of this +./build script, often still requires expertise and manual intervention +when things go wrong. If this is the case, please feel free to visit the +#gedit channel on GIMPnet IRC or send an e-mail to the gedit mailing list +(gedit-list@gnome.org). + + +Directory structure +============================================================================= +The general structure is as follows: + + /.build + root jhbuild directory. This directory will contain all the sources, + checkout directories and install locations during building. + + /$SDK : separated by SDK version + /source : checkout directory for all the sources + /inst : install directory for $SDK + + /pkgs : download location for tarballs + + /.home + an automatically created fake $HOME directory. This is used to create + an artificial separation for jhbuild such that it will not pick up on + possible existing .jhbuildrc files. This directory is also used to + install jhbuild itself. + + /config + /jhbuildrc-gedit : the gedit specific jhbuild environment configuration + + /modulesets + the jhbuild modulesets used to build gedit. Note that these are + self-contained and are updated each release. + + /patches : directory with jhbuild patches + /bootstrap.modules : the bootstrap modules + /gedit.modules : modules for gedit and all its dependencies + + /updater + /gedit-bootstrap-overrides.modules + jhbuild moduleset overrides for bootstrap + + /gedit-overrides.modules + jhbuild moduleset overrides for gedit + + /update_modulesets.py + an application which is used to update and merge jhbuild moduleset + files. The use of this application is two-fold: + + 1) It merges the override module files with the latest gtk-osx stable + modulesets, allowing for clean separation. The overrides files + contain only gedit specific changes on top of the gtk-osx stable + modulesets to obtain a gedit build. Additionally, it creates a + single moduleset file with only modules required for gedit in it and + copies any required patches specified in the moduleset to a local + directory. + + 2) It automatically looks for new versions (stable and unstable) of + GNOME libraries and queries whether or not to update modules that + have newer versions than those already in the moduleset. This makes + it easier to update to next-release versions of all required + dependencies. + + The output of running this application is a /modulesets directory + which is a self-contained modulesets/patches jhbuild configuration. + It can be copied to the parent directory to replace the previous + modulesets (which were generated in the same manner). + + Versions queried from GNOME ftp and downloaded patches are cached by + default in /.cache. Make sure to remove this directory (or parts of + it) to get up-to-date. + + +[1] https://developer.apple.com/downloads +[2] http://adcdownload.apple.com/Developer_Tools/xcode_4.3.3_for_lion/xcode_4.3.3_for_lion.dmg |