Since macOS's filesystem is case-insensitive, its `tic` only generates
terminfo directory names that are hex numbers instead of letters, such
as 78/xterm instead of x/xterm. However, the configure script still
enables the mixed-case directory name feature by default. As a result,
ncurses will fail when trying to find terminfo entries like x/xterm if
they are generated on macOS.
It seems like there is no way to change the behavior of `tic` to create
alphabetical directories, so we can only disable this option explicitly.
Some applications search for the external version of libtic and
libtinfo, which are no longer present after
91ad7754fe.
Having a symlink fixes that, since libncurses exports the necessary
functions if they aren't available as a seperate library.
We may need entries with spaces in makeopts, installopts, and
configopts, and at that point we should also convert depends and
auth_opts to avoid confusion.
In commit ba97548686 `--with-termlib` was added to produce a
`libtinfo.a` file that nano then required. However, this causes ncurses
to build with _only_ screen-pointer ext funcs: e.g.
`reset_prog_mode_sp` exists, but `reset_prog_mode` does not.
By switching to `--enable-term-driver`, all functions are properly
exported again and the nano port compiles and runs just fine. :^)
This sets the --with-shared switch for the configure script so that
ncurses is compiled as a shared library in addition the default which is
a static library.
Without the --with-shared switch ncurses will only be compiled as a
static library.
To properly set the environment variables LOCAL_LDFLAGS and
LOCAL_LDFLAGS2, a case in the configure script had to be updated to
include '*serenity*'.
When building with ccache these ports failed to build because
CC contains more than one word.
The ncurses port also doesn't like how ccache preprocesses
files. This patch fixes that.
* Use ${version} instead of explicit version numbers in urls/filenames
* Move -L option to port script, as this is always good
* Fix some various other stuff
Ports/.port_include.sh, Toolchain/BuildIt.sh, Toolchain/UseIt.sh
have been left largely untouched due to use of Bash-exclusive
functions and variables such as $BASH_SOURCE, pushd and popd.
Much redundancy is removed from package scripts with this system.
It also supports simple dependency management, uninstalling (through
BSD ports style plist files), cleaning up after itself (with clean,
clean_dist, clean_all commands), etc.