<pre style='margin:0'>
Ken (kencu) pushed a commit to branch documentation
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/170f17c6b08ea67532f25e399749ff29e1fbc678">https://github.com/macports/macports-legacy-support/commit/170f17c6b08ea67532f25e399749ff29e1fbc678</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 170f17c6b08ea67532f25e399749ff29e1fbc678
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Thu Jun 4 12:56:13 2020 -0700

<span style='display:block; white-space:pre;color:#404040;'>    simplify documentation
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    so as not be overwhelming
</span><span style='display:block; white-space:pre;color:#404040;'>    move build information to separate file
</span><span style='display:block; white-space:pre;color:#404040;'>    as it is rarely needed
</span>---
 BUILDING.txt | 40 +++++++++++++++++++++++++++++++++
 README.md    | 73 ++++++++----------------------------------------------------
 2 files changed, 49 insertions(+), 64 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/BUILDING.txt b/BUILDING.txt
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..a09479b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/BUILDING.txt
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+## Building
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Usual Makefile project. This project does not require a configure phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+### Special optional variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# `PLATFORM`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Darwin version to target against. Detected automatically, 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+but can also be overridden manually to test builds for other OS versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The Darwin version is equal to the macOS version +4, eg macOS 10.12 is darwin 16.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is for historical reasons, based on Darwin's evolution.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# `FORCE_ARCH`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Architecture to build for. Accepts a single value only, not a list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+If your `lipo` binary is new enough and supports the `-archs` flag, you will
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+not need to use this variable. Instead, directly build the software
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+universally in one pass using the usual `-arch` compiler flags. The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+autodetection, split and merge features will then handle the different
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+architectures automatically.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Older versions of `lipo` do not support the `-archs` flag, so automatic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+architecture detection via binary/object file inspection is not be possible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+on older platforms.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In order to avoid an additional dependency on the `cctools` port 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+to provide a newer `lipo` version, this variable was introduced. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+It disables the automatic architecture detection feature and instead 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+hardcodes the contained value as the target architecture.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Within `MacPorts`, we use it in multi-architecture builds with one
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pass per architecture. Finally, the `MacPorts ``muniversal` PortGroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+will merge the resulting binaries into one fat/universal binary automatically.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Some symbols must be built multiple times. Each variant will use a different
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+data layout and have a special postfix appended to it. The data layouts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported and needed depend upon the architecture and (target) OS version.
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/README.md b/README.md
</span><span style='display:block; white-space:pre;color:#808080;'>index 51f6a7d..e8b69f9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/README.md
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/README.md
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,19 +1,15 @@
</span> # MacPorts Support for Legacy OSX Versions
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-## Features
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Installs wrapper headers and a library of functions that add common
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+functions missing in various older OSX releases to bring them 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+approximately up to current expected standards.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Installs a number of wrapper headers around system headers that add
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-functionality missing in various older OSX releases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To use this library within [MacPorts](https://github.com/macports)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+add the `legacysupport` PortGroup to the Portfile. This will add the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+required include paths and libraries to allow the library to do it's 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+magic with most build systems.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Installed headers use the `include_next` pre-processor feature to add
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the missing features and then forward include the original header.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-So using these headers instead of the originals should be transparent.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Missing functions are compiled into a library that must also be linked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-into any builds using the wrapped headers. This is handled in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-[MacPorts](https://github.com/macports) via the `legacysupport` PortGroup.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Wrapped headers are:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Wrapped headers and replaced functions are:
</span> 
 <table>
   <tr>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,55 +139,4 @@ Wrapped headers are:
</span>   </tr>
 </table>
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-## Building
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This project does currently *not* use a configuration phase.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Instead, configuration is supposed to take place by overriding the main
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-`Makefile`'s variables, either via environment variables, command line
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-parameters to the `make` call itself or modification of the main `Makefile`.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-`GNU make` is a hard build dependency.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Most variables contain paths to various tools. Unless explicitly stated
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-otherwise, both system (BSD-derived) and `GNU coreutils` variants should work,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-with a preference for the native system tools.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-### Special variables
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#### `PLATFORM`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Major Darwin (not [Mac] OS X/macOS!) version to target against.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This is typically detected automatically, but can also be overridden manually
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-to test builds for other OS versions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Some symbols must be built multiple times. Each variant will use a different
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-data layout and have a special postfix appended to it. The data layouts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-supported and needed depend upon the architecture and (target) OS version.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#### `FORCE_ARCH`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Exactly one single architecture to build for.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Older versions of `lipo` do not support the `-archs` flag, so automatic
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-architecture detection via binary/object file inspection will *not* be possible
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-on older platforms.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-In order to avoid an additional dependency, and, arguably more importantly, a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-circular dependency with the `cctools` port providing newer `lipo` versions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-within `MacPorts`, this variable was introduced. It disables the automatic
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-architecture detection feature and instead hardcodes the contained value as the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-target architecture.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Within `MacPorts`, we use it in universal (multi-architecture) builds with one
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-pass per architecture. Eventually, the `MacPorts` system/`muniversal` PortGroup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-will merge the resulting binaries into one fat/universal binary automatically.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-**This variable takes one single value only. It is not a list.**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-If your `lipo` binary is new enough and supports the `-archs` flag, you will
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*not* need to use this variable. Instead, directly build the software
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-universally in one pass via the usual `-arch` compiler flags. The
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-autodetection, split and merge features will then handle the different
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-architectures automatically.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For information on building this library outside MacPorts, see BUILDING.txt.
</span></pre><pre style='margin:0'>

</pre>