From 3163bf87d7b955d08dedd5ebaccb1b2a86ffdcb9 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Thu, 25 Feb 2016 22:55:04 -0500 Subject: [PATCH] configure: Switch to pkg-config macros. All dependency libraries install pkg-config .pc files nowadays, which makes the process of looking them up a lot simpler. Get rid of the SDL workaround macro as it's not needed. [Backported from upstream commit 3163bf87d7b955d08dedd5ebaccb1b2a86ffdcb9. Fixes static linking issues with SDL_mixer.] Signed-off-by: Rodrigo Rebello --- configure.ac | 117 ++++++++++++++-------------------------- opl/examples/Makefile.am | 2 +- src/Makefile.am | 7 ++- textscreen/Makefile.am | 2 +- textscreen/examples/Makefile.am | 2 +- 5 files changed, 49 insertions(+), 81 deletions(-) diff --git a/configure.ac b/configure.ac index 7b03485..48f83ef 100644 --- a/configure.ac +++ b/configure.ac @@ -33,89 +33,54 @@ then CFLAGS="-O$OPT_LEVEL -g $WARNINGS $orig_CFLAGS" fi -dnl Search for SDL ... - -AM_PATH_SDL(1.1.3) - -# Add the SDL compiler flags to the default compiler flag variables. -# It is important to do this now, before checking for headers and -# library functions. The reason being that on Windows, sdl-config -# sets the -mno-cygwin compiler option in order to generate MinGW -# executables. If we don't do this now, we might end up discovering -# header files that are not actually available to us when we come -# to compile. - -CFLAGS="$CFLAGS $SDL_CFLAGS" -LDFLAGS="$LDFLAGS $SDL_LIBS" - -# On some platforms, SDL renames main() to SDL_main() using a #define, -# so that its own main, stored in the SDLmain library, can be run first. -# Unfortunately, this causes problems for autoconf, which builds -# test programs to probe the system. All library/header/symbol checks -# must be run in this block, that performs a workaround for the problem. - -AC_SDL_MAIN_WORKAROUND([ - - # Check for SDL_mixer. - - AC_CHECK_LIB(SDL_mixer,Mix_LoadMUS,[ - SDLMIXER_LIBS="$SDLMIXER_LIBS -lSDL_mixer" - ],[ - echo "*** Could not find SDL_mixer. Please install it." - exit -1 - ]) - - # Check for SDL_net. - - AC_CHECK_LIB(SDL_net,SDLNet_UDP_Send,[ - SDLNET_LIBS="$SDLNET_LIBS -lSDL_net" - ],[ - echo "*** Could not find SDL_net. Please install it." - exit -1 - ]) - - # Check for libsamplerate. - AC_ARG_WITH([libsamplerate], - AS_HELP_STRING([--without-libsamplerate], - [Build without libsamplerate @<:@default=check@:>@]), - [], - [ - [with_libsamplerate=check] - ]) - AS_IF([test "x$with_libsamplerate" != xno], [ - AC_CHECK_LIB(samplerate, src_new, [], [ - AS_IF([test "x$with_libsamplerate" != xcheck], [AC_MSG_FAILURE( - [--with-libsamplerate was given, but test for libsamplerate failed]) - ]) +PKG_CHECK_MODULES([SDL], [sdl]) +PKG_CHECK_MODULES([SDLMIXER], [SDL_mixer]) +PKG_CHECK_MODULES([SDLNET], [SDL_net]) + +# Check for libsamplerate. +AC_ARG_WITH([libsamplerate], +AS_HELP_STRING([--without-libsamplerate], + [Build without libsamplerate @<:@default=check@:>@]), +[], +[ + [with_libsamplerate=check] +]) +AS_IF([test "x$with_libsamplerate" != xno], [ + PKG_CHECK_MODULES([SAMPLERATE], [samplerate >= 0.1.8], [ + AC_DEFINE([HAVE_LIBSAMPLERATE], [1], [libsamplerate installed]) + ], [ + AS_IF([test "x$with_libsamplerate" != xcheck], [AC_MSG_FAILURE( + [--with-libsamplerate was given, but test for libsamplerate failed]) ]) ]) - # Check for libpng. - AC_ARG_WITH([libpng], - AS_HELP_STRING([--without-libpng], - [Build without libpng @<:@default=check@:>@]), - [], - [ - [with_libpng=check] - ]) - AS_IF([test "x$with_libpng" != xno], [ - AC_CHECK_LIB(z, zlibVersion) - AC_CHECK_LIB(png, png_get_io_ptr, [], [ - AS_IF([test "x$with_libpng" != xcheck], [AC_MSG_FAILURE( - [--with-libpng was given, but test for libpng failed]) - ]) +]) +# Check for libpng. +AC_ARG_WITH([libpng], +AS_HELP_STRING([--without-libpng], + [Build without libpng @<:@default=check@:>@]), +[], +[ + [with_libpng=check] +]) +AS_IF([test "x$with_libpng" != xno], [ + PKG_CHECK_MODULES([PNG], [libpng >= 1.6.10], [ + AC_DEFINE([HAVE_LIBPNG], [1], [libpng installed]) + ], [ + AS_IF([test "x$with_libpng" != xcheck], [AC_MSG_FAILURE( + [--with-libpng was given, but test for libpng failed]) ]) ]) - AC_CHECK_LIB(m, log) +]) +AC_CHECK_LIB(m, log) - AC_CHECK_HEADERS([linux/kd.h dev/isa/spkrio.h dev/speaker/speaker.h]) - AC_CHECK_FUNCS(mmap ioperm) +AC_CHECK_HEADERS([linux/kd.h dev/isa/spkrio.h dev/speaker/speaker.h]) +AC_CHECK_FUNCS(mmap ioperm) - # OpenBSD I/O i386 library for I/O port access. - # (64 bit has the same thing with a different name!) +# OpenBSD I/O i386 library for I/O port access. +# (64 bit has the same thing with a different name!) - AC_CHECK_LIB(i386, i386_iopl) - AC_CHECK_LIB(amd64, amd64_iopl) -]) +AC_CHECK_LIB(i386, i386_iopl) +AC_CHECK_LIB(amd64, amd64_iopl) case $host in *cygwin* | *mingw* ) diff --git a/opl/examples/Makefile.am b/opl/examples/Makefile.am index 9afcd51..54c37f8 100644 --- a/opl/examples/Makefile.am +++ b/opl/examples/Makefile.am @@ -1,5 +1,5 @@ -AM_CFLAGS = -I$(top_srcdir)/opl +AM_CFLAGS = -I$(top_srcdir)/opl @SDL_CFLAGS@ noinst_PROGRAMS=droplay diff --git a/src/Makefile.am b/src/Makefile.am index 78ee3ba..9624e01 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,7 +21,8 @@ execgames_SCRIPTS = $(SETUP_BINARIES) AM_CFLAGS = -I$(top_srcdir)/textscreen \ -I$(top_srcdir)/opl \ -I$(top_srcdir)/pcsound \ - @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@ + @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@ \ + @SAMPLERATE_CFLAGS@ @PNG_CFLAGS@ # Common source files used by absolutely everything: @@ -150,7 +151,9 @@ EXTRA_LIBS = \ @LDFLAGS@ \ @SDL_LIBS@ \ @SDLMIXER_LIBS@ \ - @SDLNET_LIBS@ + @SDLNET_LIBS@ \ + @SAMPLERATE_LIBS@ \ + @PNG_LIBS@ if HAVE_WINDRES @PROGRAM_PREFIX@doom_SOURCES=$(SOURCE_FILES_WITH_DEH) resource.rc diff --git a/textscreen/Makefile.am b/textscreen/Makefile.am index 628d4ff..427ed40 100644 --- a/textscreen/Makefile.am +++ b/textscreen/Makefile.am @@ -1,5 +1,5 @@ -AM_CFLAGS = -I$(top_srcdir)/src +AM_CFLAGS = -I$(top_srcdir)/src @SDL_CFLAGS@ CTAGS_ARGS=-I TXT_UNCAST_ARG+ diff --git a/textscreen/examples/Makefile.am b/textscreen/examples/Makefile.am index 4632d92..b857748 100644 --- a/textscreen/examples/Makefile.am +++ b/textscreen/examples/Makefile.am @@ -1,5 +1,5 @@ -AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/textscreen +AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/textscreen @SDL_CFLAGS@ noinst_PROGRAMS=guitest calculator -- 2.1.4