By default 'make install' will now install the following 2-3 files
to $(DESTDIR)$(SHARE_DIR)/doc/retroarch which by default is
/usr/local/share/doc/retroarch.
COPYING
README.md
and if media/assets exists it will install:
media/assets/COPYING to COPYING.assets
Users will be able to configure this install path with.
./configure --docdir=PATH
For example:
./configure --docdir=/usr/doc/RetroArch-1.7.0
This allows a user to use --datarootdir=PATH to configure the
share directory used for pixmaps, desktop files, man pages and assets.
By default this will be '/usr/local/share'. Assets and man page install
paths can still be configured with:
--with-man_dir=PATH
and
--with-assets_dir=PATH
Some operating systems like Haiku use unconventional install paths
and this should allow them to configure their build correctly.
Haiku really should use the configure flags provided, that is why they exists.
In this case.
./configure \
--global-config-dir=$PREFIX/settings
--with-assets_dir=$PREFIX/data
--with-mand_dir=$PREFIX/documentation/man
Changing the defaults just makes the script more complicated for no good reason.
The check_lib function does not seem able to detect vulkan on windows,
this replaces a hack in Makefile.common that does the same, but while allowing
C89_BUILD=1 and --disable-vulkan to work.
LD retroarch
obj-unix/./libretro-common/net/net_natt.o: In function `natt_open_port':
/RetroArch/libretro-common/net/net_natt.c:120: undefined reference to `UPNP_AddAnyPortMapping'
/RetroArch/libretro-common/net/net_natt.c:133: undefined reference to `UPNP_GetExternalIPAddress'
/RetroArch/libretro-common/net/net_natt.c:126: undefined reference to `UPNP_AddPortMapping'
obj-unix/./libretro-common/net/net_natt.o: In function `natt_init':
/RetroArch/libretro-common/net/net_natt.c:61: undefined reference to `upnpDiscover'
/RetroArch/libretro-common/net/net_natt.c:74: undefined reference to `miniwget'
/RetroArch/libretro-common/net/net_natt.c:77: undefined reference to `parserootdesc'
/RetroArch/libretro-common/net/net_natt.c:79: undefined reference to `GetUPNPUrls'
/RetroArch/libretro-common/net/net_natt.c:81: undefined reference to `freeUPNPDevlist'
collect2: error: ld returned 1 exit status
make: *** [Makefile:159: retroarch] Error 1
This is a proof of concept for the fallback path without pkg-config.
As jack is something often not installed by default it demonstrates
that when pkg-config exists and the dependency doesn't the check_val
function in qb/qb.libs.sh will redundantly check -ljack and as expected,
fail. It also shows that when pkg-config is not installed and jack is
enabled with --enable-jack it will bail and print a configure error.
This accomplishes two things for the fallback path without pkg-config.
1. If --disable-foo is passed to configure it will explicitly skip
check_val. This has the benefit of reducing checks in
qb/config.libs.sh which are easy to break due to human error.
2. When a fallback path exists and --enable-foo is passed to configure,
but fails due to the missing -lfoo check_val will now bail and print
a configure error. However --enable-foo will still be ignored if
there is no fallback path and pkg-config is not installed.
One issue with this is that if pkg-config is installed and the package
foo is not, it will still check if -lfoo works. As not all pkg-config
implemenations can be trusted to work even if they exist this seems
unavoidable.
This resolves an issue where the default freebsd compiler does not
include /usr/local/include which contains important headers such as
GL/gl.h and results in the check_header function failing to find them.
Unfortunately pkg-config/pkgconf will not work here for two reasons.
1. It does not seem able to actually check for gl.h which RetroArch
explicitly needs.
2. Not all systems have a pkg-config implementation so we will still
have to fall back to checking for gl.h...
Fixes https://github.com/libretro/RetroArch/issues/5958