macOS update building procedure
This commit is contained in:
parent
50a570ef2b
commit
3fa7cefa69
2 changed files with 24 additions and 21 deletions
2
Makefile
2
Makefile
|
|
@ -96,7 +96,7 @@ linux_ARCH_LIBS:=obj/postscript_print.o
|
||||||
ARCH_LIBS:=$($(OS)_ARCH_LIBS)
|
ARCH_LIBS:=$($(OS)_ARCH_LIBS)
|
||||||
|
|
||||||
windows_ARCH_CFLAGS:=
|
windows_ARCH_CFLAGS:=
|
||||||
osx_ARCH_CFLAGS:=-mmacosx-version-min=10.7 -isystem /opt/local/include -DHAVE_STRCASESTR -w -headerpad_max_install_names
|
osx_ARCH_CFLAGS:=-mmacosx-version-min=10.8 -isystem /opt/local/include -DHAVE_STRCASESTR -w -headerpad_max_install_names
|
||||||
beos_ARCH_CFLAGS:=
|
beos_ARCH_CFLAGS:=
|
||||||
linux_ARCH_CFLAGS:=
|
linux_ARCH_CFLAGS:=
|
||||||
ARCH_CFLAGS:=$($(OS)_ARCH_CFLAGS)
|
ARCH_CFLAGS:=$($(OS)_ARCH_CFLAGS)
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,11 @@ As of this writing, the required libraries are:
|
||||||
libsdl_ttf
|
libsdl_ttf
|
||||||
zlib
|
zlib
|
||||||
|
|
||||||
|
... and other non-library packages required by the Makefile are:
|
||||||
|
|
||||||
|
ImageMagick
|
||||||
|
pkgconfig
|
||||||
|
|
||||||
... but you should intall any package that is required by the latest version of
|
... but you should intall any package that is required by the latest version of
|
||||||
Tux Paint.
|
Tux Paint.
|
||||||
|
|
||||||
|
|
@ -62,28 +67,27 @@ copied to /Applications. It also creates TuxPaint.dmg for distribution.
|
||||||
|
|
||||||
KNOWN BUGS
|
KNOWN BUGS
|
||||||
----------
|
----------
|
||||||
On macOS 10.13 High Sierra:
|
- It is no longer possible to build Tux Paint that is backward compatible with
|
||||||
- The mouse cursor appears with an invert-transparent background due to an
|
older versions of macOS than the one on which it is built using the procedure
|
||||||
issue with SDL1 on macOS 10.13. A patch to SDL has been issued on May 16,
|
described in the below section, "BACKWARD COMPATIBILITY". This limitation
|
||||||
2018 to fix this issue. Until this patch is officially relased and becomes a
|
appears to stem from some libraries required by Tux Paint now being built
|
||||||
part of the MacPorts package, SDL will need to be built from the source code
|
using Rust that is unable to produce libraries that are backward compatible
|
||||||
that includes the patch to display the mouse cursor correctly under macOS 10.13.
|
with older versions of macOS. The steps of the procedure are left intact
|
||||||
Here are more details:
|
below anyway in case the situation changes in the near future, with the
|
||||||
|
exception that what once-referenced 10.7 now reference 10.8, believed to be
|
||||||
Patch - https://github.com/kanjitalk755/SDL/commit/0296d5e601a5deb5ce2f540a8eafd64dd22dbe69
|
the oldest version of macOS that Tux Paint could be backward compatible with*
|
||||||
Source + patch - https://github.com/kanjitalk755/SDL/tree/forHighSierra
|
once the Rust issue has been addressed.
|
||||||
Full discussion - https://bugzilla.libsdl.org/show_bug.cgi?id=4076
|
|
||||||
|
|
||||||
|
|
||||||
BACKWARD COMPATIBILITY
|
BACKWARD COMPATIBILITY
|
||||||
----------------------
|
----------------------
|
||||||
Broadly speaking, a Mac binary built on macOS 10.12 Sierra (for example) runs
|
Broadly speaking, a Mac binary built on macOS 10.12 Sierra (for example) runs
|
||||||
only on macOS 10.12 and later. To compile a binary that can also execute on an
|
only on macOS 10.12 and later. To compile a binary that can also execute on an
|
||||||
earlier version of macOS (say, 10.7 Lion and later), one of the following must
|
earlier version of macOS (say, 10.8 Mountain Lion and later), one of the
|
||||||
be done:
|
following must be done:
|
||||||
|
|
||||||
(A) Pass the flag -mmacosx-version-min=10.7 to the compiler.
|
(A) Pass the flag -mmacosx-version-min=10.8 to the compiler.
|
||||||
(B) Or set the environment variable MACOSX_DEPLOYMENT_TARGET to 10.7
|
(B) Or set the environment variable MACOSX_DEPLOYMENT_TARGET to 10.8
|
||||||
|
|
||||||
Tux Paint binary itself is built by doing (A) in the Makefile (by passing the
|
Tux Paint binary itself is built by doing (A) in the Makefile (by passing the
|
||||||
parameter to osx_ARCH_CFLAGS). However, the MacPorts libraries used by Tux
|
parameter to osx_ARCH_CFLAGS). However, the MacPorts libraries used by Tux
|
||||||
|
|
@ -93,14 +97,14 @@ earlier than the macOS on which it is built.
|
||||||
To build the Tux Paint package that can run on earlier versions of macOS, the
|
To build the Tux Paint package that can run on earlier versions of macOS, the
|
||||||
MacPorts libraries also need to be built with either #1 or #2. This is done by
|
MacPorts libraries also need to be built with either #1 or #2. This is done by
|
||||||
configuring MacPorts to install all packages from their sources and build them
|
configuring MacPorts to install all packages from their sources and build them
|
||||||
to run on macOS 10.7 and later:
|
to run on macOS 10.8 and later:
|
||||||
|
|
||||||
1. Install the MacPorts base normally.
|
1. Install the MacPorts base normally.
|
||||||
2. Before installing any MacPorts package, add the following settings to
|
2. Before installing any MacPorts package, add the following settings to
|
||||||
/opt/local/etc/macports/macports.conf:
|
/opt/local/etc/macports/macports.conf:
|
||||||
|
|
||||||
buildfromsource always
|
buildfromsource always
|
||||||
macosx_deployment_target 10.7
|
macosx_deployment_target 10.8
|
||||||
|
|
||||||
3. Install all packages normally.
|
3. Install all packages normally.
|
||||||
|
|
||||||
|
|
@ -118,9 +122,8 @@ packages and reinstall them after making system changes:
|
||||||
|
|
||||||
Even when Tux Paint and MacPorts are built to run on a specific version of
|
Even when Tux Paint and MacPorts are built to run on a specific version of
|
||||||
macOS, it is possible Tux Paint will not compile for or run on that version of
|
macOS, it is possible Tux Paint will not compile for or run on that version of
|
||||||
macOS. As of this writing, 10.7 is the oldest version of macOS that can be
|
macOS. As of this writing, 10.8 is the oldest version of macOS that can be
|
||||||
targetted without errors when compiling the sources of MacPorts libraries
|
targetted without errors when compiling the sources of MacPorts libraries
|
||||||
required by Tux Paint.
|
required by Tux Paint.
|
||||||
|
|
||||||
21st May 2018
|
Mark K. Kim <markuskimius@gmail.com>
|
||||||
Mark K. Kim <mkkim214@gmail.com>
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue