Commit Graph

353 Commits

Author SHA1 Message Date
orbea 8f861d438b qb: Fix checking the CXX compiler
This does the following.

1. Fixes checking if the CXX compiler works on platforms other than windows.
2. Turns the error when the CXX compiler is missing or doesn't work into a warning.
3. Adds HAVE_CC and HAVE_CXX.
4. Only adds CC and CXX to config.mk when HAVE_CC or HAVE_CXX are true.
5. Disables Qt companion, Vulkan, CXX_BUILD and NEED_CXX_LINKER if HAVE_CXX is false.
6. Explicitly errors when the CXX compiler is broken or missing and Qt or vulkan support is enabled.
7. No longer explicitly links with the CXX compiler on windows since this should no longer be needed.

This also adds the function `check_enabled` to `qb/qb.lib.sh` which
can be used to dynamically disable any libraries that require C++
support.
2018-05-03 12:24:32 -07:00
orbea b2f508d72e qb: Improve moc detection (#6680) 2018-05-01 13:40:42 -04:00
Brad Parker 20cb92c185 qb: allow building without Qt 2018-05-01 16:24:19 +00:00
Brad Parker 791aaa00e1 qb: detect Qt automatically 2018-04-30 22:11:55 -07:00
Brad Parker a1aefc901c Qt WIMP GUI 2018-04-30 14:33:05 -04:00
radius 3792a5e502 remap-redux part2: cleanup 2018-04-08 12:13:49 -05:00
orbea 85e4f5d94d qb: Add --docdir
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
2018-02-10 08:55:54 -08:00
orbea b67bb87c8d qb: Add --datarootdir to configure.
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.
2018-02-04 13:54:55 -08:00
twinaphex fde8cbecf2 Try to see if this works 2018-01-29 17:48:57 +01:00
orbea cc26f4a88c qb: Don't overwrite defaults
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.
2018-01-20 09:27:02 -08:00
kwyxz b9585df325 Update Haiku port to allow it to build again 2018-01-20 00:19:01 -08:00
orbea c8d25a9152 qb: Enable pulse detection for SunOS again. 2018-01-15 09:54:39 -08:00
orbea 06648ca21b qb: Silence shellcheck warning.
Line 25:
SORT=sort
^-- SC2209: Use var=$(command) to assign output (or quote to assign string).
2018-01-14 09:12:41 -08:00
kwyxz f566ecebf4 Disabling Pulse for now 2018-01-11 14:51:18 -08:00
kwyxz a11decf61d Added SunOS to the list of targets + fixed a sort specificity 2018-01-11 14:48:43 -08:00
orbea 4415086176
Revert "Fix building with built-in flac" 2018-01-08 18:12:53 +00:00
Brian Koropoff 4ad0a1214e Fix building with built-in flac
Not having HAVE_FLAC caused CHD support to be missing, etc.
This updates the logic to match how zlib is handled.
2018-01-07 10:48:09 -08:00
orbea e2b003a993 qb: Only look in /opt/vc/include if $HAVE_VIDEOCORE=yes. 2018-01-02 09:40:36 -08:00
orbea 48982de355 qb: Improve build without pkg-config. 2018-01-02 09:40:36 -08:00
orbea 8287a961e4 qb: Enable vulkan for Win32.
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.
2018-01-01 10:09:17 -08:00
orbea f993355f71 qb: Fix undefined miniupnpc references with C89_BUILD=1
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
2017-12-31 14:18:02 -08:00
orbea 24f69cb537 qb: Fix undefined flac references with C89_BUILD=1 2017-12-30 22:40:02 -08:00
orbea c96ae959b3 qb: Add a fallback path for jack audio without pkg-config
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.
2017-12-30 20:56:40 -08:00
orbea a37d624967 qb: Improve the check_val function.
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.
2017-12-30 20:56:40 -08:00
orbea 7ab2254fc4 qb: Fix --disable-oss for openbsd.
If --disable-oss is passed to configure we should not check for any oss support.
2017-12-30 15:45:19 -08:00
orbea 1b404afc86 qb: Include /usr/local/lib for *bsd too 2017-12-29 16:06:04 -08:00
Twinaphex 22062fdf91
Merge pull request #5991 from orbea/gl
qb: Include /usr/local/include for bsd based systems.
2017-12-29 21:08:41 +01:00
orbea 6ab2244a43 qb: Do not check for x11 when using --disable-x11. 2017-12-29 11:25:35 -08:00
orbea a34555c9a9 qb: Include /usr/local/include for bsd based systems.
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
2017-12-29 10:23:14 -08:00
orbea eaccab5237
Revert "config.libs.sh: reintroduce HAVE_X11 check" 2017-12-29 18:04:07 +00:00
Conn O'Griofa 010aa8061f config.libs.sh: reintroduce HAVE_X11 check
Current behaviour would force check_val to check for X11 even if explicitly disabled.

Fixes Raspberry Pi build (which requires --disable-x11).
2017-12-29 02:10:19 +00:00
orbea a2032a56a0 qb: Allow using the system flac. 2017-12-27 09:51:19 -08:00
Twinaphex 61b7b2e590
Merge pull request #5968 from pattheaux/leds
Leds
2017-12-27 18:01:33 +01:00
orbea e07ce68e7f Makefile.common: Clean up zlib check. 2017-12-27 08:38:47 -08:00
Ian House 8178e21cda Merge branch 'master' of https://github.com/libretro/RetroArch into leds 2017-12-27 11:14:35 -05:00
Ian House aa7c289708 Added an LED interface and a Raspberry Pi GPIO implementation 2017-12-27 11:11:08 -05:00
orbea c63011db71 qb: Disable all miniupnpc support with --disable-miniupnpc. 2017-12-26 16:18:47 -08:00
orbea ac044c47ee qb: HAVE_MINIUPNPC is needed for builtin miniupnpc 2017-12-26 00:52:04 -08:00
orbea 9e7882ec96 Makefile.common: Clean up the miniupnpc check 2017-12-26 00:15:54 -08:00
Zoltán Mizsei 4f46402afb Haiku build fix 2017-11-27 22:33:58 +01:00
Brad Parker 28c6237b47 FreeBSD: support libusb hid input driver 2017-11-27 11:30:29 -05:00
orbea fec63ae8ed qb: Set configure paths without unset variables. 2017-11-26 12:26:33 -08:00
orbea 631f0c4a8b qb: Create a check_val function for the no pkg-config fallback path. 2017-11-25 17:42:41 -08:00
orbea fc5f04a762 qb: Define $2_LIBS in the check_lib function. 2017-11-25 15:27:01 -08:00
orbea e0eb2b8a31 qb: Add $PKG_CONF_USED to the check_lib function to help avoid undefined referenecs. 2017-11-25 13:52:52 -08:00
orbea 82db21ed0b qb: Fix undefined references to EGL without pkg-config. 2017-11-25 11:05:40 -08:00
orbea 892c6b864a qb: Combine the add_include_dirs and add_library_dirs functions 2017-11-24 10:22:57 -08:00
orbea cf45945aa8 qb: Combine the check_switch_c and check_switch_cxx functions. 2017-11-24 08:21:38 -08:00
orbea 1ca43bd819 qb: Combine the add_define_header and add_define_make functions. 2017-11-23 18:36:19 -08:00
orbea c4dd3bbdce qb: Fix undefined udev references without pkg-config 2017-11-23 07:18:33 -08:00