Commited autotools patch by Anthony Molinaro, it looks like he know

autotools fat better than I do :D
This commit is contained in:
yabause 2006-11-22 18:57:04 +00:00
parent 9c71c153a7
commit 04a2fe35b8
2 changed files with 96 additions and 63 deletions

View File

@ -1,81 +1,114 @@
AC_INIT(desmume, 0.3.3)
dnl --- Package name is first argument to AC_INIT
dnl --- Release version is second argument to AC_INIT
AC_CANONICAL_HOST
AC_INIT(desmume, [0.3.3])
AM_INIT_AUTOMAKE
dnl -- find target architecture for some os specific libraries
AC_CANONICAL_TARGET
case $target in
*linux*) desmume_arch=linux;;
*mingw*) desmume_arch=windows;;
*darwin*) desmume_arch=linux;;
*linux*) desmume_arch=linux;;
*mingw*) desmume_arch=windows;;
*darwin*) desmume_arch=linux;;
esac
AC_SUBST(desmume_arch)
AM_INIT_AUTOMAKE(desmume, 0.3.3)
AC_PROG_CC
dnl -- make sure we have a C++ compiler
AC_PROG_CXX
AC_PROG_INSTALL
dnl -- use ranlib for libraries
AC_PROG_RANLIB
AC_LANG(C++)
dnl -- check for endianess
AC_C_BIGENDIAN
dnl --- Other prerequisites ---
dnl - Check for zlib
AC_CHECK_LIB(z, gzopen)
AC_PATH_PROGS(HAVE_LIBSDL, [sdl-config sdl11-config])
dnl - Check for SDL
AC_PATH_PROGS(SDLCONFIG, [sdl-config sdl11-config])
if test ! "x$SDLCONFIG" = "x" ; then
SDL_CFLAGS=`$SDLCONFIG --cflags`
SDL_LIBS=`$SDLCONFIG --libs`
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)
HAVE_SDL="yes"
else
HAVE_SDL="no"
fi
dnl - Check for GTK
AC_CHECK_TOOL(HAVE_PKG, pkg-config)
if test ! "x$HAVE_PKG" = "x" ; then
PKG_CHECK_MODULES(GTK,
"gtk+-2.0",
HAVE_GTK=yes,
HAVE_GTK=no)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
fi
dnl - Determine which UI's to build
if test "x$HAVE_SDL" = "xyes"; then
# SDL adds just a cli
UI_DIR="cli $UI_DIR"
if test "x$HAVE_GTK" = "xyes"; then
# GTK requires SDL
UI_DIR="gtk $UI_DIR"
fi
fi
case $target in
*darwin*)
if test x$HAVE_LIBSDL = x ; then
AC_MSG_ERROR([You need to install SDL])
else
SDL_CFLAGS=`$HAVE_LIBSDL --cflags`
SDL_LIBS=`$HAVE_LIBSDL --libs`
fi
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)
UI_DIR="cli"
AC_SUBST([UI_DIR])
;;
*linux*)
AC_CHECK_TOOL(HAVE_PKG, pkg-config)
if test ! x$HAVE_PKG = x ; then
GTK_CFLAGS=`$HAVE_PKG gtk+-2.0 --cflags`
GTK_LIBS=`$HAVE_PKG gtk+-2.0 --libs`
fi
if test x$HAVE_LIBSDL = x ; then
AC_MSG_ERROR([You need to install SDL])
else
SDL_CFLAGS=`$HAVE_LIBSDL --cflags`
SDL_LIBS=`$HAVE_LIBSDL --libs`
GTK_CFLAGS="$GTK_CFLAGS $SDL_CFLAGS"
GTK_LIBS="$GTK_LIBS $SDL_LIBS"
fi
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
UI_DIR="gtk cli"
AC_SUBST([UI_DIR])
;;
*mingw*)
LIBS="$LIBS -ldxguid -ldxerr8 -ldsound -mwindows"
UI_DIR=windows
AC_SUBST([UI_DIR])
;;
*mingw*)
LIBS="$LIBS -ldxguid -ldxerr8 -ldsound -mwindows"
UI_DIR="windows"
;;
esac
AC_ARG_ENABLE(debug, AC_HELP_STRING(--enable-debug, enable debug information),
AC_DEFINE(DEBUG))
AC_SUBST(UI_DIR)
dnl - Compiler warnings
# for developer use, enable lots of compile warnings,
# but don't require this generally, because some system's
# header files (BSD) can't handle it
#
# NB: must add -Werror after AC_PROG_CC, etc., so do this last
AC_ARG_ENABLE(hardcore,
[ --enable-hardcore turn on -W -Wall -Werror],
[case "${enableval}" in
yes) ENABLE_HARDCORE=1 ;;
no) ENABLE_HARDCORE=0 ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-hardcore) ;; esac],
[ENABLE_HARDCORE=0])
if test "x[$]ENABLE_HARDCORE" = "x1"; then
AC_MSG_WARN(enable hardcore compile warnings)
if test "x$CXX" = "x"; then
dnl - only valid for C with newer gcc's
CPPFLAGS="[$]CPPFLAGS -Wmissing-prototypes"
fi
CPPFLAGS="[$]CPPFLAGS -Werror -W -Wall -Wpointer-arith -Wcast-align -Wwrite-strings"
fi
dnl - Enable debug mode
AC_ARG_ENABLE(debug,
AC_HELP_STRING(--enable-debug, enable debug information),
AC_DEFINE(DEBUG))
dnl -- set maintainer mode
AM_MAINTAINER_MODE
AC_SUBST(USE_MAINTAINER_MODE)
dnl --- Finally, output all the makefiles
AC_CONFIG_FILES([Makefile
src/Makefile
src/cli/Makefile
src/gtk/Makefile
src/windows/Makefile
src/Makefile
src/cli/Makefile
src/gtk/Makefile
src/windows/Makefile
])
AC_OUTPUT

View File

@ -1,4 +1,4 @@
bin_PROGRAMS = desmume
desmume_SOURCES = main.c desmume.c dToolsList.c tools/ioregsView.c ../sndsdl.c
desmume_LDADD = ../libdesmume.a $(GTK_LIBS)
desmume_CFLAGS = $(GTK_CFLAGS)
desmume_LDADD = ../libdesmume.a $(SDL_LIBS) $(GTK_LIBS)
desmume_CFLAGS = $(SDL_CFLAGS) $(GTK_CFLAGS)