Permalink
Browse files

build: use pkg-config to find dependencies.

pkg-config is friendlier to cross-compilation, and all these libraries
nowadays use it natively.

This also allows to drop the m4 files for freetype and sdl.
  • Loading branch information...
Flameeyes committed Mar 4, 2013
1 parent b3988fd commit 639c3f290d53ca4740ba920773c0b05e51aa4c13
Showing with 8 additions and 407 deletions.
  1. +8 −33 configure.ac
  2. +0 −193 m4/freetype2.m4
  3. +0 −181 m4/sdl.m4
View
@@ -36,35 +36,16 @@ CXXFLAGS="$CXXFLAGS $GL_CFLAGS $GLU_CFLAGS"
CPPFLAGS="$CPPFLAGS $GL_CFLAGS $GLU_CFLAGS"
LIBS="$LIBS $GL_LIBS $GLU_LIBS"
-#SDL
-SDL_VERSION=1.2.10
-AM_PATH_SDL($SDL_VERSION,
- :,
- AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!])
-)
-CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
-CPPFLAGS="$CPPFLAGS $SDL_CFLAGS"
-LIBS="$LIBS $SDL_LIBS"
+PKG_CHECK_MODULES([FT2], [freetype2 >= 9.0.3])
+PKG_CHECK_MODULES([PCRE], [libpcre])
+PKG_CHECK_MODULES([GLEW], [glew])
+PKG_CHECK_MODULES([SDL], [sdl >= 1.2.10 SDL_image])
-#Freetype2
-AC_CHECK_FT2([9.0.3],[],[AC_MSG_ERROR([FreeType2 is required. Please see INSTALL])])
-CXXFLAGS="$CXXFLAGS $FT2_CFLAGS"
-CPPFLAGS="$CPPFLAGS $FT2_CFLAGS"
-LIBS="$LIBS $FT2_LIBS"
+CPPFLAGS="${CPPFLAGS} ${FT2_CFLAGS} ${PCRE_CFLAGS} ${GLEW_CFLAGS} ${SDL_CFLAGS}"
+LIBS="${LIBS} ${FT2_LIBS} ${PCRE_LIBS} ${GLEW_LIBS} ${SDL_LIBS}"
-#SDL_image library with PNG support
-AC_CHECK_LIB(SDL_image, IMG_LoadPNG_RW, LIBS="$LIBS", AC_MSG_ERROR([SDL_image with PNG support required. Please see INSTALL]))
-
-#SDL_image library with JPG support
-AC_CHECK_LIB(SDL_image, IMG_LoadJPG_RW, LIBS="$LIBS", AC_MSG_ERROR([SDL_image with JPG support required. Please see INSTALL]))
-
-LIBS="$LIBS -lSDL_image"
-
-#PCRE
-AC_CHECK_LIB([pcre], [pcre_compile],, AC_MSG_ERROR(PCRE is required. Please see INSTALL))
-
-#GLEW
-AC_CHECK_LIB(GLEW, glewInit, LIBS="$LIBS -lGLEW", AC_MSG_ERROR([GLEW is required. Please see INSTALL]))
+AC_CHECK_FUNCS([IMG_LoadPNG_RW], , AC_MSG_ERROR([SDL_image with PNG support required. Please see INSTALL]))
+AC_CHECK_FUNCS([IMG_LoadJPG_RW], , AC_MSG_ERROR([SDL_image with JPEG support required. Please see INSTALL]))
#BOOST
AX_BOOST_BASE([1.46], , AC_MSG_ERROR(Boost Filesystem >= 1.46 is required. Please see INSTALL))
@@ -77,12 +58,6 @@ LIBS="$LIBS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB"
#GLM
AC_CHECK_HEADER([glm/glm.hpp],, AC_MSG_ERROR(GLM headers are required. Please see INSTALL))
-#Check for required headers
-AC_CHECK_HEADER([SDL.h],, AC_MSG_ERROR(SDL headers are required. Please see INSTALL))
-AC_CHECK_HEADER([SDL_image.h],, AC_MSG_ERROR(SDL_image headers are required. Please see INSTALL))
-AC_CHECK_HEADER([pcre.h],, AC_MSG_ERROR(PCRE headers are required. Please see INSTALL))
-AC_CHECK_HEADER([GL/glew.h],, AC_MSG_ERROR(GLEW headers are required. Please see INSTALL))
-
#see if ttf-font-dir option is enabled
AC_ARG_ENABLE(ttf-font-dir,[AS_HELP_STRING([--enable-ttf-font-dir=DIR],[directory containing GNU FreeFont TTF fonts])],[gourcefontdir="$enableval"],[gourcefontdir=""])
AM_CONDITIONAL([FONTDIR], [test "x$gourcefontdir" != "x"])
View
@@ -1,193 +0,0 @@
-# Configure paths for FreeType2
-# Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor
-#
-# Copyright 2001, 2003, 2007 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT. By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-#
-# As a special exception to the FreeType project license, this file may be
-# distributed as part of a program that contains a configuration script
-# generated by Autoconf, under the same distribution terms as the rest of
-# that program.
-#
-# serial 2
-
-# AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-# Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
-# MINIMUM-VERSION is what libtool reports; the default is `7.0.1' (this is
-# FreeType 2.0.4).
-#
-AC_DEFUN([AC_CHECK_FT2],
- [# Get the cflags and libraries from the freetype-config script
- #
- AC_ARG_WITH([ft-prefix],
- dnl don't quote AS_HELP_STRING!
- AS_HELP_STRING([--with-ft-prefix=PREFIX],
- [Prefix where FreeType is installed (optional)]),
- [ft_config_prefix="$withval"],
- [ft_config_prefix=""])
-
- AC_ARG_WITH([ft-exec-prefix],
- dnl don't quote AS_HELP_STRING!
- AS_HELP_STRING([--with-ft-exec-prefix=PREFIX],
- [Exec prefix where FreeType is installed (optional)]),
- [ft_config_exec_prefix="$withval"],
- [ft_config_exec_prefix=""])
-
- AC_ARG_ENABLE([freetypetest],
- dnl don't quote AS_HELP_STRING!
- AS_HELP_STRING([--disable-freetypetest],
- [Do not try to compile and run a test FreeType program]),
- [],
- [enable_fttest=yes])
-
- if test x$ft_config_exec_prefix != x ; then
- ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix"
- if test x${FT2_CONFIG+set} != xset ; then
- FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config
- fi
- fi
-
- if test x$ft_config_prefix != x ; then
- ft_config_args="$ft_config_args --prefix=$ft_config_prefix"
- if test x${FT2_CONFIG+set} != xset ; then
- FT2_CONFIG=$ft_config_prefix/bin/freetype-config
- fi
- fi
-
- AC_PATH_PROG([FT2_CONFIG], [freetype-config], [no])
-
- min_ft_version=m4_if([$1], [], [7.0.1], [$1])
- AC_MSG_CHECKING([for FreeType -- version >= $min_ft_version])
- no_ft=""
- if test "$FT2_CONFIG" = "no" ; then
- no_ft=yes
- else
- FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags`
- FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs`
- ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
- ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
- ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- ft_min_major_version=`echo $min_ft_version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
- ft_min_minor_version=`echo $min_ft_version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
- ft_min_micro_version=`echo $min_ft_version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- if test x$enable_fttest = xyes ; then
- ft_config_is_lt=""
- if test $ft_config_major_version -lt $ft_min_major_version ; then
- ft_config_is_lt=yes
- else
- if test $ft_config_major_version -eq $ft_min_major_version ; then
- if test $ft_config_minor_version -lt $ft_min_minor_version ; then
- ft_config_is_lt=yes
- else
- if test $ft_config_minor_version -eq $ft_min_minor_version ; then
- if test $ft_config_micro_version -lt $ft_min_micro_version ; then
- ft_config_is_lt=yes
- fi
- fi
- fi
- fi
- fi
- if test x$ft_config_is_lt = xyes ; then
- no_ft=yes
- else
- ac_save_CPPFLAGS="$CPPFLAGS"
- ac_save_LIBS="$LIBS"
- CPPFLAGS="$CPPFLAGS $FT2_CFLAGS"
- LIBS="$FT2_LIBS $LIBS"
-
- #
- # Sanity checks for the results of freetype-config to some extent.
- #
- AC_RUN_IFELSE([
- AC_LANG_SOURCE([[
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main()
-{
- FT_Library library;
- FT_Error error;
-
- error = FT_Init_FreeType(&library);
-
- if (error)
- return 1;
- else
- {
- FT_Done_FreeType(library);
- return 0;
- }
-}
-
- ]])
- ],
- [],
- [no_ft=yes],
- [echo $ECHO_N "cross compiling; assuming OK... $ECHO_C"])
-
- CPPFLAGS="$ac_save_CPPFLAGS"
- LIBS="$ac_save_LIBS"
- fi # test $ft_config_version -lt $ft_min_version
- fi # test x$enable_fttest = xyes
- fi # test "$FT2_CONFIG" = "no"
-
- if test x$no_ft = x ; then
- AC_MSG_RESULT([yes])
- m4_if([$2], [], [:], [$2])
- else
- AC_MSG_RESULT([no])
- if test "$FT2_CONFIG" = "no" ; then
-# AC_MSG_WARN([
-
-# The freetype-config script installed by FreeType 2 could not be found.
-# If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in
-# your path, or set the FT2_CONFIG environment variable to the
-# full path to freetype-config.
-# ])
- :
- else
- if test x$ft_config_is_lt = xyes ; then
- AC_MSG_WARN([
-
- Your installed version of the FreeType 2 library is too old.
- If you have different versions of FreeType 2, make sure that
- correct values for --with-ft-prefix or --with-ft-exec-prefix
- are used, or set the FT2_CONFIG environment variable to the
- full path to freetype-config.
- ])
- else
- AC_MSG_WARN([
-
- The FreeType test program failed to run. If your system uses
- shared libraries and they are installed outside the normal
- system library path, make sure the variable LD_LIBRARY_PATH
- (or whatever is appropriate for your system) is correctly set.
- ])
- fi
- fi
-
- FT2_CFLAGS=""
- FT2_LIBS=""
- m4_if([$3], [], [:], [$3])
- fi
-
- AC_SUBST([FT2_CFLAGS])
- AC_SUBST([FT2_LIBS])])
-
-# end of freetype2.m4
Oops, something went wrong.

0 comments on commit 639c3f2

Please sign in to comment.