1. Make sure to install the mozilla build environment for your platform: windows, Mac OS X, linux. You will also need to install subversion. BlueGriffon is based on mozilla-central.
  2. create a new directory for BlueGriffon's and XULrunner's sources
  3. get mozilla-central from Mozilla through Mercurial
    hg clone http://hg.mozilla.org/mozilla-central mozilla-2.0
  4. get BlueGriffon's tree through subversion:
    cd mozilla-2.0
    svn checkout http://sources.disruptive-innovations.com/bluegriffon/trunk bluegriffon
  5. get BlueGriffon locales through subversion:
    cd bluegriffon
    svn checkout http://sources.disruptive-innovations.com/bluegriffon-l10n/trunk locales
  6. tweak variable  _AVAILABLE_LOCALES in file bluegriffon/langpacks/Makefile.in according to your wishes ; en-US is always built, this is for the extra locales
  7. use the right revision of Gecko and apply the patch to the trunk
    cd mozilla-2.0
    hg update -r `cat bluegriffon/config/mozilla_central_revision.txt`
    patch -p 1 < bluegriffon/config/content.patch
  8. create a .mozconfig file. I am using myself the following settings for my daily work on OS X (Mountain Lion):
    CC=/opt/local/libexec/llvm-3.1/bin/clang
    CXX=/opt/local/libexec/llvm-3.1/bin/clang++

    ##############################
    # Assuming you want a universal build
    ##############################
    . $topsrcdir/build/macosx/universal/mozconfig

    ac_add_options --with-macos-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
    ac_add_options --enable-macos-target=10.7

    ##############################
    # tweak the following line according to your wishes
    # warning, the directory must exist in the filesystem
    ##############################
    mk_add_options MOZ_OBJDIR=/Users/glazou/bin/opt/bluegriffon

    mk_add_options AUTOCONF=/opt/local/bin/autoconf213

    ##############################
    # tweak the following according to your wishes
    ##############################
    ac_add_options --disable-debug
    ac_add_options --enable-optimize
    ac_add_options --enable-strip

    ac_add_options --without-ccache

    ##############################
    # build mar #
    ##############################
    ac_add_options --enable-installer

    ##############################
    # I build on a 8-cpu machine ; comment out or adapt to your own case
    ##############################
    mk_add_options MOZ_MAKE_FLAGS="-j8"

    ##############################
    # DO NOT MODIFY BELOW THIS LINE
    ##############################
    ac_add_options --enable-application=bluegriffon
    mk_add_options MOZ_TOOLKIT_SEARCH=

    mk_add_options MOZ_OMNIJAR=

    ac_add_options --disable-javaxpcom
    ac_add_options --disable-activex
    ac_add_options --disable-activex-scripting
    ac_add_options --disable-tests
    ac_add_options --disable-airbag
    ac_add_options --enable-places
    ac_add_options --enable-storage
    ac_add_options --disable-crashreporter
    ac_add_options --enable-webm

    ac_add_options --disable-vista-sdk-requirements

    ac_add_options --disable-dbm
    ac_add_options --disable-webrtc
  9. type make -f client.mk build_all
  10. bluegriffon.exe is in $MOZ_OBJDIR/dist/bin on windows/linux and BlueGriffon.app is in $MOZ_OBJDIR/dist on Mac (launch with open BlueGriffon.app)