فهرست منبع

Mac ReadMe: stylistic update (#639)

nilason 4 سال پیش
والد
کامیت
d51de9d1d7
1فایلهای تغییر یافته به همراه310 افزوده شده و 311 حذف شده
  1. 310 311
      macosx/ReadMe.md

+ 310 - 311
macosx/ReadMe.md

@@ -1,8 +1,11 @@
-# title: GRASS GIS Mac OS X Build
+| :exclamation:  Instructions below are not up-to-date. Update in progress. |
+|---------------------------------------------------------------------------|
+
+# GRASS GIS Mac OS X Build
 
 (and other Mac notes)
 
-**Table of Contents**
+## Table of Contents
 
 - Quickstart
 - About
@@ -21,48 +24,45 @@
     - Universal NetPBM
     - Universal FFMPEG
 
-Quickstart
-==========
+## Quickstart
 
 To build a Mac OS X application, add this to your configure options:
 
-\--prefix=/Applications \--enable-macosx-app
+`--prefix=/Applications --enable-macosx-app`
 
-About
-=====
+## About
 
 This builds GRASS as a Mac OS X application, more or less.
 
 The startup wrapper is a simple AppleScript that fires up a custom
 grass.sh (instead of the standard grass6x) and quits, leaving grass.sh
 running in a new Terminal window. The custom grass.sh takes care of some
-default and required environment settings (so the user doesn\'t have to
-fiddle with .bash\_profile), makes sure X11 in running, then starts
+default and required environment settings (so the user doesn't have to
+fiddle with .bash_profile), makes sure X11 in running, then starts
 init.sh.
 
-Building GRASS
-==============
+## Building GRASS
 
 Building GRASS as a Mac OS X application is pretty much the same as for
-a unix build (see the \"INSTALL\" document for details). For an
+a unix build (see the [INSTALL](../INSTALL) document for details). For an
 application, just add this option to configure:
 
-\--enable-macosx-app
+`--enable-macosx-app`
 
-With this option, the \--prefix specified is the path where GRASS.app
-will be installed. The default GRASS prefix is /usr/local, but for a Mac
-OS X application it should be /Applications. It is not possible to have
+With this option, the `--prefix` specified is the path where GRASS.app
+will be installed. The default GRASS prefix is `/usr/local`, but for a Mac
+OS X application it should be `/Applications`. It is not possible to have
 alternative default prefixes in configure, so you must set
-\--prefix=/Applications yourself for configure.
+`--prefix=/Applications` yourself for configure.
 
 The makefile tries to figure out the location of the GDAL programs, from
-the configured GDAL libs. This is set in grass.sh, and if it doesn\'t
+the configured GDAL libs. This is set in grass.sh, and if it doesn't
 correctly figure it out (some GRASS commands fail to find needed GDAL
-commands), set GDAL\_BIN before running make:
+commands), set `GDAL_BIN` before running make:
 
-export GDAL\_BIN=\[/path/to/gdal/bin\]
+`export GDAL_BIN=[/path/to/gdal/bin]`
 
-[Universal Build]{.underline}
+### Universal Build
 
 The GRASS build system is very friendly to a Universal build (unlike
 libtool-based builds). *This applies to a standard unix build as well as
@@ -79,190 +79,207 @@ The SDKs in Leopard are mostly taken care of.
 
 For example, /usr/local:
 
+```sh
 sudo ln -s /usr/local /Developer/SDKs/MacOSX10.4u.sdk/usr/local
+```
 
 For Leopard, there may be problems locating bin programs. Add the
 following:
 
+```sh
 sudo ln -s /usr/local/bin /Developer/SDKs/MacOSX10.4u.sdk/usr/local/bin
-
 sudo ln -s /usr/local/bin /Developer/SDKs/MacOSX10.5.sdk/usr/local/bin
+```
 
 If there are subfolders involved that are not already in the SDK, add
 them first. Say you have some libraries in /Users/Shared/unix (I put my
 static libraries there):
 
+```sh
 sudo mkdir -p /Developer/SDKs/MacOSX10.4u.sdk/Users/Shared
-
-ln -s /Users/Shared/unix
-/Developer/SDKs/MacOSX10.4u.sdk/Users/Shared/unix
+ln -s /Users/Shared/unix /Developer/SDKs/MacOSX10.4u.sdk/Users/Shared/unix
+```
 
 For /Library/Frameworks:
 
+```sh
 sudo mkdir -p /Developer/SDKs/MacOSX10.4u.sdk/Library
-
-sudo ln -s /Library/Frameworks
+sudo ln -s /Library/Frameworks \
 /Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks
+```
 
 **• Universal Dependencies**. Make sure all your extra dependencies are
 Universal.
 
 **• Tiger+**. This will NOT work on anything less than OSX 10.4.
 
-If those check OK, here\'s what to do. Simply add the universal flags to
+If those check OK, here's what to do. Simply add the universal flags to
 all compile and link commands. This is done by setting CFLAGS, CXXFLAGS
 and LDFLAGS before configuring the build. The basic flags are:
 
--arch ppc -arch i386
+`-arch ppc -arch i386`
 
 If you are building on OSX 10.4 PPC only, also add this:
 
--isysroot /Developer/SDKs/MacOSX10.4u.sdk
+`-isysroot /Developer/SDKs/MacOSX10.4u.sdk`
 
 Put it all together, for an Intel Mac on OSX 10.4 or any Mac on 10.5+:
 
-export CFLAGS=\"-arch ppc -arch i386\"
-
-export CXXFLAGS=\"-arch ppc -arch i386\"
-
-export LDFLAGS=\"-arch ppc -arch i386\"
+```sh
+export CFLAGS="-arch ppc -arch i386"
+export CXXFLAGS="-arch ppc -arch i386"
+export LDFLAGS="-arch ppc -arch i386"
+```
 
 Or for OSX 10.4 PPC:
 
+```sh
 export SDKROOT=/Developer/SDKs/MacOSX10.4u.sdk
-
-export CFLAGS=\"-arch ppc -arch i386 -isysroot \$SDKROOT\"
-
-export CXXFLAGS=\"-arch ppc -arch i386 -isysroot \$SDKROOT\"
-
-export LDFLAGS=\"-arch ppc -arch i386 -isysroot \$SDKROOT\"
+export CFLAGS="-arch ppc -arch i386 -isysroot $SDKROOT"
+export CXXFLAGS="-arch ppc -arch i386 -isysroot $SDKROOT"
+export LDFLAGS="-arch ppc -arch i386 -isysroot $SDKROOT"
+```
 
 For OSX 10.5, you can also build for 64bit (all processors except the
 first Intel Core Duo), just add:
 
--arch ppc64 -arch x86\_64
+`-arch ppc64 -arch x86_64`
 
-Optimization
-------------
+### Optimization
 
 By default, GRASS configures with debugging symbols turned on (the
-\"-g\" flag), and level 2 optimization (\"-O2\"). If you don\'t want
+"-g" flag), and level 2 optimization ("-O2"). If you don't want
 debugging on (it greatly increases the binary size) or want to use a
 different optimization, just add an optimization flag to the above
 CFLAGS and CXXFLAGS exports. Specifying an optimization disables
 debugging. Some common optimizations are (see the gcc man page for
 complete details):
 
--O2 most optimizations, a common default
+- `-O2` most optimizations, a common default
+- `-O3` high
+- `-Os` optimize for speed, also keep the binary size small (the Apple standard)
 
--O3 high
-
--Os optimize for speed, also keep the binary size small (the Apple
-standard)
-
-If you want debugging with a different optimization flag, use one of the
-above optimization flags plus \"-g\".
+If you want debugging with a different optimization flag, use one of the above
+optimization flags plus "-g".
 
 Remember to separate all flags with spaces.
 
-Configure Example
------------------
+### Configure Example
 
 As an example, to build GRASS using my frameworks and Tcl/Tk as built in
 the build notes below, this should work *(for a standard unix build,
-just remove the \--prefix and \--enable-macosx-app flags)*:
-
-./configure \--with-freetype
-\--with-freetype-includes=\"/Library/Frameworks/FreeType.framework/unix/include/freetype2
-/Library/Frameworks/FreeType.framework/unix/include\"
-\--with-freetype-libs=/Library/Frameworks/FreeType.framework/unix/lib
-\--with-gdal=/Library/Frameworks/GDAL.framework/Programs/gdal-config
-\--with-geos=/Library/Frameworks/GEOS.framework/Programs/geos-config
-\--with-proj
-\--with-proj-includes=/Library/Frameworks/PROJ.framework/unix/include
-\--with-proj-libs=/Library/Frameworks/PROJ.framework/unix/lib
-\--with-proj-share=/Library/Frameworks/PROJ.framework/Resources/proj
-\--with-jpeg-includes=/Library/Frameworks/UnixImageIO.framework/unix/include
-\--with-jpeg-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib
-\--with-png-includes=/Library/Frameworks/UnixImageIO.framework/unix/include
-\--with-png-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib
-\--with-tiff-includes=/Library/Frameworks/UnixImageIO.framework/unix/include
-\--with-tiff-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib
-\--without-postgres \--without-mysql \--with-odbc \--with-sqlite
-\--with-sqlite-libs=/Library/Frameworks/SQLite3.framework/unix/lib
-\--with-sqlite-includes=/Library/Frameworks/SQLite3.framework/unix/include
-\--with-fftw-includes=/Library/Frameworks/FFTW3.framework/unix/include
-\--with-fftw-libs=/Library/Frameworks/FFTW3.framework/unix/lib
-\--with-cxx
-\--with-tcltk-includes=\"/Library/Frameworks/Tcl.framework/Headers
-/Library/Frameworks/Tk.framework/Headers
-/Library/Frameworks/Tk.framework/PrivateHeaders\"
-\--with-tcltk-libs=/usr/local/lib \--with-x \--without-motif
-\--without-glw \--with-opengl=aqua \--without-readline
-\--prefix=/Applications \--enable-macosx-app
-
-That\'s a long line, but you have to be very explicit in the GRASS
-configure (and yes, the UnixImageIO framework is used multiple times).
-
-If you don\'t have the PROJ framework programs folder in your shell
+just remove the `--prefix` and `--enable-macosx-app` flags)*:
+
+```sh
+./configure \
+    --with-freetype \
+    --with-freetype-includes= \
+        "/Library/Frameworks/FreeType.framework/unix/include/freetype2 \
+        /Library/Frameworks/FreeType.framework/unix/include" \
+    --with-freetype-libs=/Library/Frameworks/FreeType.framework/unix/lib \
+    --with-gdal=/Library/Frameworks/GDAL.framework/Programs/gdal-config \
+    --with-geos=/Library/Frameworks/GEOS.framework/Programs/geos-config \
+    --with-proj \
+    --with-proj-includes=/Library/Frameworks/PROJ.framework/unix/include \
+    --with-proj-libs=/Library/Frameworks/PROJ.framework/unix/lib \
+    --with-proj-share=/Library/Frameworks/PROJ.framework/Resources/proj \
+    --with-jpeg-includes=/Library/Frameworks/UnixImageIO.framework/unix/include \
+    --with-jpeg-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \
+    --with-png-includes=/Library/Frameworks/UnixImageIO.framework/unix/include \
+    --with-png-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \
+    --with-tiff-includes=/Library/Frameworks/UnixImageIO.framework/unix/include \
+    --with-tiff-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \
+    --without-postgres \
+    --without-mysql \
+    --with-odbc \
+    --with-sqlite \
+    --with-sqlite-libs=/Library/Frameworks/SQLite3.framework/unix/lib \
+    --with-sqlite-includes=/Library/Frameworks/SQLite3.framework/unix/include \
+    --with-fftw-includes=/Library/Frameworks/FFTW3.framework/unix/include \
+    --with-fftw-libs=/Library/Frameworks/FFTW3.framework/unix/lib \
+    --with-cxx \
+    --with-tcltk-includes="/Library/Frameworks/Tcl.framework/Headers \
+            /Library/Frameworks/Tk.framework/Headers \
+            /Library/Frameworks/Tk.framework/PrivateHeaders" \
+    --with-tcltk-libs=/usr/local/lib \
+    --with-x \
+    --without-motif \
+    --without-glw \
+    --with-opengl=aqua \
+    --without-readline \
+    --prefix=/Applications \
+    --enable-macosx-app
+```
+
+That's a long line, but you have to be very explicit in the GRASS configure
+(and yes, the UnixImageIO framework is used multiple times).
+
+If you don't have the PROJ framework programs folder in your shell
 PATH, it will fail to find nad2bin. To correct this set NAD2BIN before
 running configure:
 
-export NAD2BIN=/Library/Frameworks/PROJ.framework/Programs/nad2bin
+`export NAD2BIN=/Library/Frameworks/PROJ.framework/Programs/nad2bin`
 
 Sometimes, for mysterious reasons so far, the automatic check for X11
 fails. Depending on various conditions, you may immediately notice this
-because configure stops. If X11 isn\'t found automatically, add this to
+because configure stops. If X11 isn't found automatically, add this to
 the configure line *(this applies to both the unix build and app
 build)*:
 
-\--x-includes=/usr/X11R6/include \--x-libraries=/usr/X11R6/lib
-
-To install the new Python GUI (see REQUIREMENTS.html and
-gui/wxpython/README, wxpython installer available at
-[wxpython.org](http://wxpython.org/)), add this to configure (fill in
-the correct version at x.x.x.x for the wxpython you have installed):
+`--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib`
 
-\--with-python
+To install the new Python GUI (see [REQUIREMENTS.html](../REQUIREMENTS.html)
+and [gui/wxpython/README](../gui/wxpython/README), wxpython installer
+available at [wxpython.org](http://wxpython.org/)), add this to configure (fill
+in the correct version at x.x.x.x for the wxpython you have installed):
 
-\--with-wxwidgets=/usr/local/lib/wxPython-unicode-x.x.x.x/bin/wx-config
+```
+--with-python
+--with-wxwidgets=/usr/local/lib/wxPython-unicode-x.x.x.x/bin/wx-config
+```
 
 Note: as of wxpython 2.8.8.0 you can use an external wxpython with the
 system Python on Leopard.
 
 If you want ffmpeg support (see build instructions below), add this:
 
-\--with-ffmpeg \--with-ffmpeg-includes=\"/usr/local/include
-/usr/local/include/libavcodec /usr/local/include/libavdevice
-/usr/local/include/libavformat /usr/local/include/libavutil
-/usr/local/include/libswscale\" \--with-ffmpeg-libs=/usr/local/lib
+```sh
+--with-ffmpeg \
+--with-ffmpeg-includes="/usr/local/include \
+    /usr/local/include/libavcodec /usr/local/include/libavdevice \
+    /usr/local/include/libavformat /usr/local/include/libavutil \
+    /usr/local/include/libswscale" \
+--with-ffmpeg-libs=/usr/local/lib
+```
 
 For cairo support (see build instructions at
-[kyngchaos.com](http://www.kyngchaos.com/macosx:build:cairo)), add this:
+[kyngchaos.com](https://web.archive.org/web/20161112052733/http://www.kyngchaos.com/macosx/build/cairo/)), add this:
 
-\--with-cairo \--with-cairo-includes=/usr/local/include/cairo
-\--with-cairo-libs=/usr/local/lib \--with-cairo-ldflags=-lcairo
+```sh
+--with-cairo \
+--with-cairo-includes=/usr/local/include/cairo \
+--with-cairo-libs=/usr/local/lib \
+--with-cairo-ldflags=-lcairo
+```
 
-Leopard Notes
--------------
+### Leopard Notes
 
 • Linker Problem
 
-The linker in Leopard\'s GCC from Xcode 3.0 has a bit of a problem with
-some libraries, notably X11\'s libGL. When trying to link libGL (for
+The linker in Leopard's GCC from Xcode 3.0 has a bit of a problem with
+some libraries, notably X11's libGL. When trying to link libGL (for
 example), it spits back an error:
 
-ld: cycle in dylib re-exports with /usr/X11/lib/libGL.dylib for
-architecture i386
+`ld: cycle in dylib re-exports with /usr/X11/lib/libGL.dylib for
+architecture i386`
 
 Xcode 3.1 does not have this problem. In other words, make sure to
 install the latest Xcode.
 
-Building an Installer Package
------------------------------
+### Building an Installer Package
 
 After running make, make bindist will assemble an installer package.
-This will have the name \"GRASS-\[version\].pkg\" and will be found in
+This will have the name "GRASS-[version].pkg" and will be found in
 the macosx folder in the GRASS source. On Tiger, there **will be** some
 **non-fatal errors** - *this is normal* and the installer package is
 still generated correctly.
@@ -273,231 +290,208 @@ The installer takes care of binary installation, and creating the
 This installer currently does NOT do any verification of installed
 dependencies or system version.
 
-Bundling Libraries and Programs
--------------------------------
+### Bundling Libraries and Programs
 
 Additional dependent libraries and programs can be bundled with the
 application package to make a more portable and easily installed GRASS
-application. See macosx/pkg/bundle.make for details.
+application. See `macosx/pkg/bundle.make` for details.
 
-GRASS uses DYLD\_LIBRARY\_PATH, which is set to the application\'s lib
+GRASS uses `DYLD_LIBRARY_PATH`, which is set to the application's lib
 folder, so it will find any libraries that are there that are not found
 in their expected locations. It also adds the application bin folder to
-the PATH, so helper programs installed there will be found.
+the `PATH`, so helper programs installed there will be found.
 
-There is NO need to bundle *everything*. Bundling readily available
-libraries and programs installed in standard locations is not necessary.
-Some things you might want to bundle include:
+There is NO need to bundle *everything*. Bundling readily available libraries
+and programs installed in standard locations is not necessary. Some things
+you might want to bundle include:
 
-\- GPSBabel (CLI)
-
-\- NetPBM programs (just what is used in GRASS)
-
-\- other support CLI programs for script modules
-
-\- ffmpeg libraries
-
-\- Postgres library (libpq)
+- GPSBabel (CLI)
+- NetPBM programs (just what is used in GRASS)
+- other support CLI programs for script modules
+- ffmpeg libraries
+- Postgres library (libpq)
 
 Things to leave out:
 
-\- applications that duplicate the above items (ie GPSBabel.app)
-
-\- /Library/Frameworks stuff
+- applications that duplicate the above items (ie GPSBabel.app)
+- /Library/Frameworks stuff
 
-Developer Notes
-===============
+## Developer Notes
 
 The applescript startup and grass.sh can be customized if desired, ie
 for a more complex startup that might give the user a dialog for startup
 options. They just provide the basic core to build upon.
 
-Help Files
-==========
+## Help Files
 
 Help files are linked into the OSX help system. Independent of what
-browser you choose to open help files (GRASS\_HTML\_BROWSER), you can
-open Help Viewer from almost any application\'s Help menu (it\'s best to
+browser you choose to open help files (`GRASS_HTML_BROWSER`), you can
+open Help Viewer from almost any application's Help menu (it's best to
 use Mac Help from the Finder Help menu), and GRASS Help will be
 available in the Library menu.
 
 Since they are linked to the help system, if GRASS.app is moved or
 renamed, the link will be broken. This may change in the future.
 
-Addon Modules
-=============
+## Addon Modules
 
 modbuild deprecated (not installed now). Makefile changes in progress to
 allow compiling external modules.
 
-Dependency Build Notes
-======================
+## Dependency Build Notes
 
 They apply to any OSX build, not just an application package build:
 
-Universal Aqua Tcl/Tk
----------------------
+### Universal Aqua Tcl/Tk
 
 The simplest way to install Tcl/Tk Aqua is to download
-[ActiveTcl](http://www.activestate.com/Products/activetcl/) from
+[ActiveTcl](https://www.activestate.com/products/tcl/) from
 ActiveState. This will give you a universal 32bit Tcl/Tk Aqua (64bit is
-currently not possible). [Make sure to run the *convenience* commands
-below.]{.underline}
+currently not possible). Make sure to run the *convenience* commands
+below.
 
 To make it easier to configure for GRASS (and other software), run these
 commands in a Terminal:
 
-sudo ln -sf /Library/Frameworks/Tcl.framework/Versions/8.5/Tcl
-/usr/local/lib/libtcl.dylib
-
-sudo ln -sf /Library/Frameworks/Tcl.framework/Versions/8.5/Tcl
-/usr/local/lib/libtcl8.5.dylib
-
-sudo ln -sf
-/Library/Frameworks/Tcl.framework/Versions/8.5/libtclstub8.5.a
-/usr/local/lib/libtclstub8.5.a
-
-sudo ln -sf /Library/Frameworks/Tk.framework/Versions/8.5/Tk
-/usr/local/lib/libtk.dylib
-
-sudo ln -sf /Library/Frameworks/Tk.framework/Versions/8.5/Tk
-/usr/local/lib/libtk8.5.dylib
-
-sudo ln -sf /Library/Frameworks/Tk.framework/Versions/8.5/libtkstub8.5.a
-/usr/local/lib/libtkstub8.5.a
-
-Universal GPSBabel
-------------------
+```sh
+sudo ln -sf /Library/Frameworks/Tcl.framework/Versions/8.5/Tcl \
+    /usr/local/lib/libtcl.dylib
+sudo ln -sf /Library/Frameworks/Tcl.framework/Versions/8.5/Tcl \
+    /usr/local/lib/libtcl8.5.dylib
+sudo ln -sf \
+    /Library/Frameworks/Tcl.framework/Versions/8.5/libtclstub8.5.a \
+    /usr/local/lib/libtclstub8.5.a
+sudo ln -sf /Library/Frameworks/Tk.framework/Versions/8.5/Tk \
+    /usr/local/lib/libtk.dylib
+sudo ln -sf /Library/Frameworks/Tk.framework/Versions/8.5/Tk \
+    /usr/local/lib/libtk8.5.dylib
+sudo ln -sf /Library/Frameworks/Tk.framework/Versions/8.5/libtkstub8.5.a \
+    /usr/local/lib/libtkstub8.5.a
+```
+
+### Universal GPSBabel
 
 A universal GPSBabel CLI executable is now included in the OSX binary
 from [www.gpsbabel.org](http://www.gpsbabel.org/). This does not need to
 be 64bit.
 
-Universal NetPBM
-----------------
+### Universal NetPBM
 
-NetPBM is not too hard to build, it\'s just weird. These instructions
+NetPBM is not too hard to build, it's just weird. These instructions
 use my UnixImageIO framework for the tiff, jpeg, png and jasper
 libraries.
 
 First, grab the [NetPBM](http://netpbm.sourceforge.net/) source and
-unzip it. Now it gets strange - it\'s an interactive configuration, and
-the various stages don\'t communicate with each other. Cd to the source
+unzip it. Now it gets strange - it's an interactive configuration, and
+the various stages don't communicate with each other. Cd to the source
 folder in a Terminal and:
 
-./configure
+`./configure` ↵
 
-**\<enter\>** to begin
+`Platform [darwin] ==>` ↵
 
-Platform \[darwin\] ==\> **\<enter\>**
+`Netpbm shared library directory [default] ==> `**`/usr/local`**
 
-Netpbm shared library directory \[default\] ==\> **/usr/local**
+choose where you will install it
+default is NOT /usr/local or any location at all, so you MUST set this
 
-> *choose where you will install it*
->
-> *default is NOT /usr/local or any location at all, so you MUST set
-> this*
+`regular or merge [regular] ==>` ↵
 
-regular or merge \[regular\] ==\> **\<enter\>**
+`static or shared [shared] ==>` ↵
 
-static or shared \[shared\] ==\> **\<enter\>**
+could use static, since GRASS only needs a few of the progs
 
-> *could use static, since GRASS only needs a few of the progs*
+`'#include' argument or NONE [<inttypes.h>] ==>` ↵
 
-\'\#include\' argument or NONE \[\<inttypes.h\>\] ==\> **\<enter\>**
+`What is your JPEG (graphics format) library?`
+`library filename or 'none' [libjpeg.so] ==>`
+    **`/Library/Frameworks/UnixImageIO.framework/unix/lib/libjpeg.dylib`**
 
-What is your JPEG (graphics format) library?
+`JPEG header directory [default] ==>`
+**`/Library/Frameworks/UnixImageIO.framework/Headers`**
 
-library filename or \'none\' \[libjpeg.so\] ==\>
-**/Library/Frameworks/UnixImageIO.framework/unix/lib/libjpeg.dylib**
+`What is your TIFF (graphics format) library?`
+`library filename or 'none' [libtiff.so] ==>`
+    **`/Library/Frameworks/UnixImageIO.framework/unix/lib/libtiff.dylib`**
 
-JPEG header directory \[default\] ==\>
-**/Library/Frameworks/UnixImageIO.framework/Headers**
+`TIFF header directory [default] ==>`
+    **`/Library/Frameworks/UnixImageIO.framework/Headers`**
 
-What is your TIFF (graphics format) library?
+`What is your PNG (graphics format) library?`
+`library filename or 'none' [libpng.so] ==>`
+    **`/Library/Frameworks/UnixImageIO.framework/unix/lib/libpng.dylib`**
 
-library filename or \'none\' \[libtiff.so\] ==\>
-**/Library/Frameworks/UnixImageIO.framework/unix/lib/libtiff.dylib**
+`PNG header directory [default] ==>`
+    **`/Library/Frameworks/UnixImageIO.framework/Headers`**
 
-TIFF header directory \[default\] ==\>
-**/Library/Frameworks/UnixImageIO.framework/Headers**
+`What is your Z (compression) library?`
+`library filename or 'none' [libz.so] ==>` **`-lz`**
 
-What is your PNG (graphics format) library?
+`Z header directory [default] ==>` ↵
 
-library filename or \'none\' \[libpng.so\] ==\>
-**/Library/Frameworks/UnixImageIO.framework/unix/lib/libpng.dylib**
+`Documentation URL [http://netpbm.sourceforge.net/doc/] ==>` ↵
 
-PNG header directory \[default\] ==\>
-**/Library/Frameworks/UnixImageIO.framework/Headers**
+ignore warning about libz
 
-What is your Z (compression) library?
-
-library filename or \'none\' \[libz.so\] ==\> **-lz**
-
-Z header directory \[default\] ==\> **\<enter\>**
-
-Documentation URL \[http://netpbm.sourceforge.net/doc/\] ==\>
-**\<enter\>**
-
-> *ignore warning about libz*
-
-echo \"JASPERLIB =
-/Library/Frameworks/UnixImageIO.framework/unix/lib/libjasper.dylib\"
-\>\> Makefile.config
-
-echo \"JASPERHDR\_DIR =
-/Library/Frameworks/UnixImageIO.framework/Headers\" \>\> Makefile.config
+```sh
+echo "JASPERLIB = /Library/Frameworks/UnixImageIO.framework/unix/lib/libjasper.dylib"  \
+    >> Makefile.config
+echo "JASPERHDR_DIR = /Library/Frameworks/UnixImageIO.framework/Headers" \
+    >> Makefile.config
+```
 
 For Tiger:
 
-echo \"CC = /usr/bin/gcc -arch ppc -arch i386 -isysroot
-/Developer/SDKs/MacOSX10.4u.sdk\" \>\> Makefile.config
+```sh
+echo "CC = /usr/bin/gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" \
+    >> Makefile.config
+```
 
 For Leopard:
 
-echo \"CC = /usr/bin/gcc -arch ppc -arch i386 -arch ppc64 -arch
-x86\_64\" \>\> Makefile.config
+```sh
+echo "CC = /usr/bin/gcc -arch ppc -arch i386 -arch ppc64 -arch x86\_64" \
+    >> Makefile.config
+```
 
+```sh
 make
-
 make package pkgdir=/path/to/some/temp/dir
+```
 
-> *it will create the folder and copy all binaries there*
+it will create the folder and copy all binaries there
 
-sudo ./installnetpbm
+`sudo ./installnetpbm`
 
 then answer some more questions:
 
-Where is the install package you created with \'make package\'?
-
-package directory (/tmp/netpbm) ==\> **/path/to/some/temp/dir**
+`Where is the install package you created with 'make package'?`
+`package directory (/tmp/netpbm) ==>` **`/path/to/some/temp/dir`**
 
-> *same location as specified in the make package step (lack of
-> inter-communication!)*
+same location as specified in the make package step (lack of
+ inter-communication!)
 
-install prefix (/usr/local/netpbm) ==\> **/usr/local**
+`install prefix (/usr/local/netpbm) ==>` **`/usr/local`**
 
-> *same location used for the Netpbm shared library directory (again,
-> lack of inter-communication!)*
->
-> *(it may ask you if you want to create the dir)*
+same location used for the Netpbm shared library directory (again,
+lack of inter-communication!)
+(it may ask you if you want to create the dir)
 
-It\'ll ask for subfolders for bin, lib, data, headers, man
+It'll ask for subfolders for bin, lib, data, headers, man
 
-For data, type: **/usr/local/share/netpbm**
+For data, type: **`/usr/local/share/netpbm`**
 
-For man, type: **/usr/local/share/man**
+For man, type: **`/usr/local/share/man`**
 
 For the rest, use the defaults
 
-don\'t create the manweb.conf file
+don't create the manweb.conf file
 
-And that\'s it.
+And that's it.
 
-Universal FFMPEG
-----------------
+### Universal FFMPEG
 
-[version:]{.underline} [0.5](http://www.ffmpeg.org/download.html)
+version: [0.5](http://www.ffmpeg.org/download.html)
 
 FFMPEG is constantly changing, and release versions are rare. For
 simplicity use the 0.5 release version. If you know anything about SVN
@@ -506,151 +500,156 @@ not in more recent SVN versions, so if configure complains about an
 invalid option, just remove it.
 
 This will build a basic FFMPEG as dynamic libraries for use with GRASS.
-The default static libraries don\'t work now because of reloc errors and
+The default static libraries don't work now because of reloc errors and
 the need for extra link flags. No extra formats are included, such as
 mp3lame and xvid. None of the ffmpeg programs are included either (GRASS
-doesn\'t need them).
+doesn't need them).
 
-It\'s a multi-step build, 1 for each architecture. Create a folder
+It's a multi-step build, 1 for each architecture. Create a folder
 inside the source for each arch:
 
+```sh
 mkdir build-i386
-
 mkdir build-ppc
+```
 
 and also for Leopard:
 
-mkdir build-x86\_64
-
+```sh
+mkdir build-x86_64
 mkdir build-ppc64
+```
 
 For i386 and ppc arches, if building on Tiger, you must add the
 following to extra-cflags and extra-ldflags in the configure command:
 
--isysroot /Developer/SDKs/MacOSX10.4u.sdk
+`-isysroot /Developer/SDKs/MacOSX10.4u.sdk`
 
 For i386:
 
+```sh
 cd build-i386
-
-../configure \--enable-shared \--disable-static \--disable-debug
-\--disable-ffserver \--disable-network \--enable-gpl \--enable-pthreads
-\--enable-swscale \--disable-vhook \--disable-ffplay \--disable-ffmpeg
-\--disable-amd3dnow \--arch=i386 \--extra-cflags=\"-arch i386\"
-\--extra-ldflags=\"-arch i386\"
+../configure --enable-shared --disable-static --disable-debug \
+    --disable-ffserver --disable-network --enable-gpl --enable-pthreads \
+    --enable-swscale --disable-vhook --disable-ffplay --disable-ffmpeg \
+    --disable-amd3dnow --arch=i386 --extra-cflags="-arch i386" \
+    --extra-ldflags="-arch i386"
+```
 
 If you are building *on* a PPC Mac, you need to add the flag
-\"\--enable-cross-compile\" to the above configure command.
+"`--enable-cross-compile`" to the above configure command.
 
+```sh
 make
-
 sudo make install
+```
 
-Install at this point installs everything. We don\'t care about the
+Install at this point installs everything. We don't care about the
 installed libraries yet, we just need the headers there.
 
 Now, the PPC build:
 
+```sh
 cd ../build-ppc
-
-../configure \--enable-shared \--disable-static \--disable-debug
-\--disable-ffserver \--disable-network \--enable-gpl \--enable-pthreads
-\--enable-swscale \--disable-vhook \--disable-ffplay \--disable-ffmpeg
-\--enable-altivec \--arch=ppc \--extra-cflags=\"-arch ppc\"
-\--extra-ldflags=\"-arch ppc\"
-
+../configure --enable-shared --disable-static --disable-debug \
+    --disable-ffserver --disable-network --enable-gpl --enable-pthreads \
+    --enable-swscale --disable-vhook --disable-ffplay --disable-ffmpeg \
+    --enable-altivec --arch=ppc --extra-cflags="-arch ppc" \
+    --extra-ldflags="-arch ppc"
 make
-
-Don\'t install this one, there is no need.
+```
+Don't install this one, there is no need.
 
 If you are building for Leopard, also do the 64bit varieties, otherwise
 skip to the lipo step below.
 
-For x86\_64:
+For x86_64:
 
-cd build-x86\_64
 
-../configure \--enable-shared \--disable-static \--disable-debug
-\--disable-ffserver \--disable-network \--enable-gpl \--enable-pthreads
-\--enable-swscale \--disable-vhook \--disable-ffplay \--disable-ffmpeg
-\--disable-amd3dnow \--arch=x86\_64 \--extra-cflags=\"-arch x86\_64\"
-\--extra-ldflags=\"-arch x86\_64\"
+```sh
+cd build-x86_64
+../configure --enable-shared --disable-static --disable-debug \
+    --disable-ffserver --disable-network --enable-gpl --enable-pthreads \
+    --enable-swscale --disable-vhook --disable-ffplay --disable-ffmpeg \
+    --disable-amd3dnow --arch=x86_64 --extra-cflags="-arch x86\_64" \
+    --extra-ldflags="-arch x86_64"
+```
 
 Again, if you are building *on* a PPC Mac, you need to add the flag
-\"\--enable-cross-compile\" to the above configure command.
+"`--enable-cross-compile`" to the above configure command.
 
-make
+`make`
 
 And ppc64:
 
+```sh
 cd ../build-ppc64
-
-../configure \--enable-shared \--disable-static \--disable-debug
-\--disable-ffserver \--disable-network \--enable-gpl \--enable-pthreads
-\--enable-swscale \--disable-vhook \--disable-ffplay \--disable-ffmpeg
-\--enable-altivec \--arch=ppc64 \--extra-cflags=\"-arch ppc64\"
-\--extra-ldflags=\"-arch ppc64\"
+../configure --enable-shared --disable-static --disable-debug \
+    --disable-ffserver --disable-network --enable-gpl --enable-pthreads \
+    --enable-swscale --disable-vhook --disable-ffplay --disable-ffmpeg \
+    --enable-altivec --arch=ppc64 --extra-cflags="-arch ppc64" \
+    --extra-ldflags="-arch ppc64"
+```
 
 Here, if you are building *on* an Intel Mac, you need to add the flag
-\"\--enable-cross-compile\" to the above configure command. Also, it
+"`--enable-cross-compile`" to the above configure command. Also, it
 will fail to completely identify it as 64bit, so you need to fix 2
 files.
 
-In **config.h**, find the HAVE\_PPC64 define and set it to 1:
+In **config.h**, find the `HAVE_PPC64` define and set it to 1:
 
-\#define HAVE\_PPC64 1
+`#define HAVE_PPC64 1`
 
 In **config.mak**, add this line to the end of the file:
 
-HAVE\_PPC64=yes
+`HAVE_PPC64=yes`
 
 Then finish:
 
-make
+`make`
 
 Now use lipo to merge them together, first drop down to the ffmpeg
 source folder:
 
-cd ..
+`cd ..`
 
 For each of the libraries:
 
 libavcodec
-
 libavdevice
-
 libavformat
-
 libavutil
-
 libswscale
 
-run the following lipo command (fill in the [libname]{.underline} in all
+run the following lipo command (fill in the **`[LIBNAME]`** in all
 places). For Leopard:
 
-sudo lipo -create
-build-ppc/[libname]{.underline}/[libname]{.underline}.dylib
-build-i386/[libname]{.underline}/[libname]{.underline}.dylib
-build-ppc64/[libname]{.underline}/[libname]{.underline}.dylib
-build-x86\_64/[libname]{.underline}/[libname]{.underline}.dylib -output
-/usr/local/lib/[libname]{.underline}.dylib
+```sh
+sudo lipo -create \
+    build-ppc/[LIBNAME]/[LIBNAME].dylib \
+    build-i386/[LIBNAME]/[LIBNAME].dylib \
+    build-ppc64/[LIBNAME]/[LIBNAME].dylib \
+    build-x86_64/[LIBNAME]/[LIBNAME].dylib \
+    -output /usr/local/lib/[LIBNAME].dylib
+```
 
 For Tiger:
 
-sudo lipo -create
-build-ppc/[libname]{.underline}/[libname]{.underline}.dylib
-build-i386/[libname]{.underline}/[libname]{.underline}.dylib -output
-/usr/local/lib/[libname]{.underline}.dylib
+```sh
+sudo lipo -create \
+    build-ppc/[LIBNAME]/[LIBNAME].dylib \
+    build-i386/[LIBNAME]/[LIBNAME].dylib \
+    -output /usr/local/lib/[LIBNAME].dylib
+```
 
 Done.
 
 © 2006-2008 by the GRASS Development Team
 
-This program is free software under the GNU General Public License
-(\>=v2).
+This program is free software under the GNU General Public License (>=v2).
 
 \- William Kyngesburye
 
-<kyngchaos@kyngchaos.com>
+kyngchaos@kyngchaos.com
 
-<http://www.kyngchaos.com/>
+http://www.kyngchaos.com/