aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-05-06 17:34:59 +0200
committerSven Gothel <[email protected]>2023-05-06 17:34:59 +0200
commit3c2a0c1cfd66e0d812997db4836c69379e1e8476 (patch)
tree730fbb47fe405b195d87bc8ee3d8bc8197b70802
parentc0027eb10c20e41bdcbb2aff3ecb00c5b6351f31 (diff)
MacOS: Using 'Minimum Deployment Target' 10.7 (Lion) and documenting MacOS versions
Note that starting with Xcode 14.3, the upcoming 'Minimum Deployment Target' is 10.13 (High Sierra). However, we are still using Xcode 14.2 and hence 10.7 is still supported. Note that I upped the 'Minimum Deployment Target' (again) from 10.5 to 10.7 to align with JOAL/openal-soft, i.e. a guaranteed common denominator. You may still try to use 10.5. Note lowest tested MacOS version (from myself) is 10.13.6 w/ x86_64) (High Sierra).
-rw-r--r--doc/HowToBuild.html9
-rw-r--r--doc/JogAmpMacOSVersions.md51
-rwxr-xr-xmake/gluegen-cpptasks-base.xml50
3 files changed, 64 insertions, 46 deletions
diff --git a/doc/HowToBuild.html b/doc/HowToBuild.html
index 89a5a89..dc4e680 100644
--- a/doc/HowToBuild.html
+++ b/doc/HowToBuild.html
@@ -137,12 +137,16 @@ apt-get install kernel-package build-essential
</li>
<li> <b>MacOS and iOS</b> x86_64 and aarch64
<ul>
- <li><a href="http://www.apple.com/macosx/">Mac OS</a> 12.6.5</li>
+ <li>Build machine: <a href="http://www.apple.com/macosx/">Mac OS</a> 12.6.5 (Monterey)
+ <ul>
+ <li>Lowest test machine: <a href="http://www.apple.com/macosx/">Mac OS</a> 10.13.6 (High Sierra)</li>
+ <li>Minimum deployment target: <a href="http://www.apple.com/macosx/">Mac OS</a> 10.7 (Lion)</li>
+ </ul></li>
<li><a href="http://developer.apple.com/technologies/xcode.html">Xcode</a> 14.2 for clang, etc (included in MacOS)</li>
<li>MacOS SDK 11.3 from a previous XCode version or <a href="https://github.com/phracker/MacOSX-SDKs">from this alternative site</a>
<ul>
<li><i>export SDKROOT=macosx11.3</i></li>
- <li>We use <i>-mmacosx-version-min=10.5</i> deployment target in general.</li>
+ <li>We use <i>-mmacosx-version-min=10.7</i> (Lion 10.7) minimum deployment target.</li>
</ul></li>
<li>git &ge; 2.37 provided by Xcode &ge; 14</li>
<li>awk is provided by MacOS</li>
@@ -151,6 +155,7 @@ apt-get install kernel-package build-essential
<li>Install symlinks to <i>/usr/local/bin</i>, run: <i>sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install</i></li>
</ul></li>
<li><a href="https://7-zip.org/">7-Zip 21.07</a> x86_64 and arm64 version</li>
+ <li>See also <a href="JogAmpMacOSVersions.md">MacOS Versions Related to JogAmp</a></li>
</ul>
Prepare fat universal OpenJDK libraries
<ul>
diff --git a/doc/JogAmpMacOSVersions.md b/doc/JogAmpMacOSVersions.md
new file mode 100644
index 0000000..aba78d3
--- /dev/null
+++ b/doc/JogAmpMacOSVersions.md
@@ -0,0 +1,51 @@
+# MacOS Versions Related to JogAmp
+
+References
+
+- [Mac OS Version History (wiki)](https://en.wikipedia.org/wiki/MacOS_version_history).
+- [Xcode Version Comparison Table (wiki)](https://en.wikipedia.org/wiki/Xcode#Version_comparison_table)
+
+## Overview
+
+| MacOS Version | Release Name | Darwin Version | JogAmp Relation |
+|:--------------|:-------------|:---------------|:-------------------------------------------|
+| 10.7 | Lion | 11 | Min deployment target |
+| | | | |
+| 10.13 | High Sierra | 17 | Test node 10.13.6, `x86_64` |
+| 10.14 | Mojave | 18 | |
+| 10.15 | Catalina | 19 | |
+| | | | |
+| 11 | Big Sur | 20 | Build node 12.6.5, w/ Xcode 14.2, `x86_64` |
+| 12 | Monterey | 21 | |
+| 13 | Ventura | 22 | Test node 13.1, `arm64` |
+
+## OpenJDK
+
+Available Java(tm) VMs
+
+- [OpenJDK](http://openjdk.java.net/) build @ [Adoptium](https://adoptium.net/temurin/releases/)
+ - [Adoptium Supported MacOS Versions](https://adoptium.net/supported-platforms/)
+ - MacOS 10.15, 11, 12, 13 for `x86_64` and `arm64`
+
+## JogAmp Build and Test Setup
+
+- MacOS 12.6.5 (Monterey), Darwin 21, `x86_64`
+ - Build and main test machine
+ - XCode 14.2 w/ SDK 11.3
+ - `export SDKROOT=macosx11.3` (*MacOS SDK*)
+ - `-mmacosx-version-min=10.7` (*Miniumum deployment target*)
+ - OpenJDK Temurin 17.0.5+8
+
+- MacOS 10.13.6 (High Sierra), Darwin 17, `x86_64`
+ - Test machine
+ - OpenJDK Temurin 17.0.5+8
+
+- MacOS 13.1 (Ventura), Darwin 22, `arm64`
+ - Test machine
+ - OpenJDK Temurin 17.0.5+8
+
+## Change History
+
+| Date | Note |
+|:-----------|:-----------------------------------------|
+| 2023-05-06 | Initial Version for JogAmp Release 2.5.0 |
diff --git a/make/gluegen-cpptasks-base.xml b/make/gluegen-cpptasks-base.xml
index 8cac554..8410ec9 100755
--- a/make/gluegen-cpptasks-base.xml
+++ b/make/gluegen-cpptasks-base.xml
@@ -218,20 +218,10 @@
<condition property="c.strip.libraries"><isfalse value="${c.compiler.debug}"/></condition>
<!-- NOTE: the values of the macos<arch> attributes will not be overridden if already set externally -->
- <property name="macosppc" value="false" />
- <property name="macosx64" value="true" />
- <property name="macosx32" value="false" /> <!-- we disable 32bit on OSX for good now -->
+ <property name="macosppc" value="false" /> <!-- permanently disabled -->
+ <property name="macosx32" value="false" /> <!-- permanently disabled -->
+ <property name="macosx64" value="true" /> <!-- for x86_64 and arm64 -->
- <!-- Need a way to be able to disable the macosx64 property specification in a build.xml -->
- <condition property="use.macosppc">
- <istrue value="${macosppc}" />
- </condition>
- <condition property="use.macosx32">
- <and>
- <istrue value="${macosx32}" />
- <os family="mac"/>
- </and>
- </condition>
<condition property="use.macosx64">
<and>
<istrue value="${macosx64}" />
@@ -1223,40 +1213,16 @@
<!--
MacOSX compiler configuration.
- 2023-05-04 Actively supported architectures are 'x86_64' and 'arm64'.
-
- XCode 14.2 on a MacOS 12.6.5 x86_64 (mac-mini) machine
- using MacOS SDK 11.3 is capable to produce fat-lipo code
- for MacOS >= 10.5 lipo libs covering 'x86_64' and 'arm64'.
- The MacOS SDK 11.3 has been re-added from a previous XCode installation.
- However, alternative source is <https://github.com/phracker/MacOSX-SDKs>.
-
- Only for using C++ and hence the C++ STL,
- the minimum version is 10.7 due to clang++ libc++.
- This is currently the case for JOAL's bundled openal-soft,
- as well as for JOGL's optional oculusvr-sdk (disabled).
-
- The official JogAmp build uses
- - `export SDKROOT=macosx11.3` (environment variable)
- - `java.lib.dir.platform=/Users/jogamp/temurin-17.jdk.fat.lib` (file ~/gluegen.properties)
- - generated by `make/scripts/make.macosx.jdk_lipo_libs.sh`
-
- Sync with doc/HowToBuild.html
+ See and sync-with doc/HowToBuild.html and doc/JogAmpMacOSVersions.md
-->
<compiler id="compiler.cfg.macosx" name="${gcc.compat.compiler}">
- <!-- Note: Apple doesn't seem to provide ppc binaries on Snow Leopard -->
- <compilerarg value="-arch" if="use.macosppc"/>
- <compilerarg value="ppc" if="use.macosppc"/>
- <compilerarg value="-arch" if="use.macosx32"/>
- <compilerarg value="i386" if="use.macosx32"/>
<compilerarg value="-arch" if="use.macosx64"/>
<compilerarg value="x86_64" if="use.macosx64"/>
<compilerarg value="-arch" if="use.macosx64"/>
<compilerarg value="arm64" if="use.macosx64"/>
- <!-- Note: Apple doesn't seem to provide ppc64 binaries on Leopard -->
<compilerarg value="-Wmost" />
<compilerarg value="-ObjC" />
- <compilerarg value="-mmacosx-version-min=10.5"/>
+ <compilerarg value="-mmacosx-version-min=10.7"/>
<!-- sysincludepath path="${macosx.sdkroot}" if="macosx.sdkroot"/ -->
<defineset>
<define name="_DEBUG" if="c.compiler.use-debug"/>
@@ -1483,15 +1449,11 @@
<linker id="linker.cfg.macosx" name="${gcc.compat.compiler}">
<!-- compilerarg value="-v"/ -->
- <linkerarg value="-arch" if="use.macosppc"/>
- <linkerarg value="ppc" if="use.macosppc"/>
- <linkerarg value="-arch" if="use.macosx32"/>
- <linkerarg value="i386" if="use.macosx32"/>
<linkerarg value="-arch" if="use.macosx64"/>
<linkerarg value="x86_64" if="use.macosx64"/>
<linkerarg value="-arch" if="use.macosx64"/>
<linkerarg value="arm64" if="use.macosx64"/>
- <linkerarg value="-mmacosx-version-min=11.0"/>
+ <linkerarg value="-mmacosx-version-min=10.7"/>
<linkerarg value="-static-libgcc" if="isGCC"/>
<linkerarg value="-static-libstdc++" if="isGCC"/>
</linker>