summaryrefslogtreecommitdiffstats
path: root/build-aux/osx/build/README
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/osx/build/README')
-rw-r--r--build-aux/osx/build/README131
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