📄 configure.in
字号:
DOES_NOT_HAVE_SIGNED=""else DOES_NOT_HAVE_SIGNED="#define signed"fi# ============================# Check for library functions.# ============================AC_CHECK_FUNCS(setenv snprintf srandom)AC_REPLACE_FUNCS(strcasecmp strdup strstr)# Change extension, as we use libtoolLIBOBJS="`echo $LIBOBJS|sed -e 's/\.o/\.lo/g'`"AC_HEADER_EGREP(srandom,math.h,AC_DEFINE(SRANDOM_IN_MATH_H))# ================# Choose settings.# ================AC_DEFINE(DRV_PIPE)AC_DEFINE(DRV_AIFF)# If we can guess the drivers needed from the system, no need to ask the user# to specify it manuallycase `uname` in AIX) AC_DEFINE(AIX) AC_CHECK_HEADERS(sys/audio.h sys/acpa.h) if test $ac_cv_header_sys_audio_h = yes && \ test $ac_cv_header_sys_acpa_h = yes then libmikmod_driver_aix=yes fi ;; HP-UX) AC_CHECK_HEADERS(sys/audio.h) if test $ac_cv_header_sys_audio_h = yes then libmikmod_driver_hp=yes fi ;; NetBSD|OpenBSD) AC_CHECK_HEADERS(sys/audioio.h) if test $ac_cv_header_sys_audioio_h = yes then libmikmod_driver_sun=yes if test "`uname`" = "NetBSD" then libmikmod_driverlist="netbsd $libmikmod_driverlist" else libmikmod_driverlist="openbsd $libmikmod_driverlist" fi fi ;; SunOS) AC_CHECK_HEADERS(sun/audioio.h sys/audioio.h) if test $ac_cv_header_sun_audioio_h = yes || \ test $ac_cv_header_sys_audioio_h = yes then libmikmod_driver_sun=yes libmikmod_driverlist="sun $libmikmod_driverlist" case `uname -r` in 4*) AC_DEFINE(SUNOS) ;; esac fi ;;esac if test $libmikmod_driver_af = yesthen libmikmod_driverlist="$libmikmod_driverlist audiofile" AC_DEFINE(DRV_AF) LIBRARY_LIB="-lAF $LIBRARY_LIB"fiif test $libmikmod_driver_aix = yesthen libmikmod_driverlist="aix $libmikmod_driverlist" AC_DEFINE(DRV_AIX)fiif test $libmikmod_driver_alsa = yesthen libmikmod_driverlist="alsa $libmikmod_driverlist" AC_DEFINE(DRV_ALSA) if test $libmikmod_dynload = no then LIBRARY_LIB="-lasound $LIBRARY_LIB" fifiif test $libmikmod_driver_esd = yesthen libmikmod_driverlist="$libmikmod_driverlist esd" AC_DEFINE(DRV_ESD) CFLAGS="$CFLAGS $ESD_CFLAGS" # Under Solaris and perhaps other systems, we have to forward esd # dependencies to libmikmod's dependency list. # However, no need to keep libraries we won't require (libossaudio on BSD # systems, libaudiofile, libasound on Linux) if test $libmikmod_dynload != no then ESD_LIBS="`echo $ESD_LIBS|sed -e 's/-lesd//'|sed -e 's/-lasound//'|sed -e 's/-laudiofile//'|sed -e 's/-lossaudio//'`" fi LIBRARY_LIB="$ESD_LIBS $LIBRARY_LIB"fiif test $libmikmod_driver_hp = yesthen libmikmod_driverlist="hp $libmikmod_driverlist" AC_DEFINE(DRV_HP)fiif test $libmikmod_driver_oss = yesthen # under Linux, /dev/sndstat is deprecated, never check for OSS as the # headers are always found. if test "`uname`" != "Linux" then AC_CACHE_CHECK([for OSS (/dev/sndstat)],libmikmod_cv_oss_dev_sndstat, if test -c /dev/sndstat then libmikmod_cv_oss_dev_sndstat=yes else libmikmod_cv_oss_dev_sndstat=no fi) else libmikmod_cv_oss_dev_sndstat=yes fi if test $libmikmod_cv_oss_dev_sndstat = yes then AC_CHECK_HEADERS(machine/soundcard.h) AC_CHECK_HEADERS(sys/soundcard.h) if test $ac_cv_header_machine_soundcard_h = yes || \ test $ac_cv_header_sys_soundcard_h = yes then libmikmod_driverlist="oss $libmikmod_driverlist" AC_DEFINE(DRV_OSS) fi fifiif test "`uname`" = "Darwin"then if test $libmikmod_driver_osx = yes then libmikmod_driverlist="osx $libmikmod_driverlist" AC_DEFINE(DRV_OSX) LIBRARY_LIB="-framework CoreAudio $LIBRARY_LIB" fifiif test "`uname`" = "Darwin"then if test $libmikmod_driver_mac = yes then libmikmod_driverlist="mac $libmikmod_driverlist" AC_DEFINE(DRV_MAC) LIBRARY_LIB="-framework Carbon $LIBRARY_LIB" fifiif test $libmikmod_driver_sam9407 = yesthen libmikmod_driverlist="sam9407 $libmikmod_driverlist" AC_DEFINE(DRV_SAM9407)fiif test $libmikmod_driver_sgi = yesthen libmikmod_driverlist="sgi $libmikmod_driverlist" AC_DEFINE(DRV_SGI) LIBRARY_LIB="-laudio $LIBRARY_LIB"fiif test $libmikmod_driver_sun = yesthen AC_DEFINE(DRV_SUN)fiif test $libmikmod_driver_ultra = yesthen libmikmod_driverlist="ultra $libmikmod_driverlist" AC_DEFINE(DRV_ULTRA) if test $libmikmod_dynload = no then LIBRARY_LIB="-lgus $LIBRARY_LIB" fifiif test $libmikmod_debug = yesthen AC_DEFINE(MIKMOD_DEBUG) CC="$CC -g"fiif test $libmikmod_dynload != nothen AC_DEFINE(MIKMOD_DYNAMIC) if test "`uname`" = "Linux" && \ test $libmikmod_cv_esd_needs_alsa = yes && \ test $libmikmod_driver_esd = yes then # @#!$ libmikmod_dynloading esd requires us to define and make visible # extra symbols (at least for 0.2.6 to 0.2.8) AC_CACHE_CHECK([if libmikmod_dynloading esd causes problems], libmikmod_cv_esd_broken, libmikmod_oldlibs=$LIBS LIBS="$LIBS $ESD_LIBS" AC_TRY_LINK([#include <esd.h>extern void *handle;], [void *p = handle;], libmikmod_cv_esd_broken=no,libmikmod_cv_esd_broken=yes) LIBS=$libmikmod_oldlibs) if test $libmikmod_cv_esd_broken = yes then AC_DEFINE(MIKMOD_DYNAMIC_ESD_NEEDS_ALSA) LIB_LDADD="$LIB_LDADD -rdynamic" echo "*** This means your version of EsounD defines some public symbols,*** which should have been defined static or weak. The compiled*** libmikmod will try to take care of the problem, but you'll have to*** use the '-rdynamic' option when linking an application which uses*** libmikmod with gcc. If you use another compiler, or -rdynamic is not*** available on your platform, you might not be able to use libmikmod's*** EsounD driver.*** In this case, consider recompiling libmikmod specifying*** '--disable-dl' in the configure script options." >&2 fi fi LIBRARY_LIB="$libmikmod_dllib $LIBRARY_LIB" if test $libmikmod_dynload = sun then # RTLD_GLOBAL is not defined under every system AC_CACHE_CHECK([if RTLD_GLOBAL is defined],libmikmod_cv_decl_rtld_global, AC_TRY_COMPILE([#include <dlfcn.h>],[int flag=RTLD_GLOBAL;], libmikmod_cv_decl_rtld_global=yes, libmikmod_cv_decl_rtld_global=no)) if test $libmikmod_cv_decl_rtld_global = yes then AC_DEFINE(HAVE_RTLD_GLOBAL) fi fifi# If compiling with gcc, use adequate optimization flagsif test $ac_cv_prog_gcc = yesthen # On at least x86 platforms, gcc 2.7.2.1 and earlier won't work if -O3 (or # -finline-functions) are used. Versions 2.7.2.3, 2.8.x and egcs are ok # (didn't test 2.7.2.2). # Until there's an easy way to catch broken inlining, we choose flags known # to work correctly depending of the compiler version. AC_CACHE_CHECK([if inlining functions is safe], libmikmod_cv_gcc_inline_safe, AC_TRY_RUN([int main(){#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 7) exit(0);#else exit(1);#endif}], libmikmod_cv_gcc_inline_safe=yes, libmikmod_cv_gcc_inline_safe=no, libmikmod_cv_gcc_inline_safe=no)) if test $libmikmod_cv_gcc_inline_safe = yes then CFLAGS="$CFLAGS -finline-functions" else CFLAGS="$CFLAGS -fno-strength-reduce" fi CFLAGS="$CFLAGS -funroll-loops -ffast-math" if test $libmikmod_debug = yes then CFLAGS="$CFLAGS -Wall -Werror" else CFLAGS="$CFLAGS -Wall" fi # pgcc 2.95.2 appears not to be able to compile libmikmod, although regular # gcc works fine. Issue a warning if the compiler is pgcc, until a reliable # way to detect flawed version (or, better, a reliable workaround) is # found.dnl do not cache this test - better rechecking every time AC_MSG_CHECKING(if compiler is pgcc) if ($CC -v 2>&1 | grep ^pgcc > /dev/null) 2>/dev/null then libmikmod_gcc_is_pgcc=yes else libmikmod_gcc_is_pgcc=no fi AC_MSG_RESULT($libmikmod_gcc_is_pgcc) if test $libmikmod_gcc_is_pgcc = yes then echo "*** Version 2.95.2 of this compiler, and perhaps others, are unable to*** compile libmikmod. If compilation fails for playercode/virtch.c*** around line 650, with the error ``internal error--insn does not*** satisfy its constraints'', then you'll have to use another compiler." >&2 fifiif test x$libmikmod_threads != xnothen AC_DEFINE(HAVE_PTHREAD) CFLAGS="$CFLAGS -D_REENTRANT" LIBRARY_LIB="$libmikmod_threads $LIBRARY_LIB" REENTRANT="-D_REENTRANT" if test $libmikmod_cv_gcc_pthread = yes then dnl There is no need for -pthread on darwin, and gcc dnl complains about unrecognized option -pthread if test "`uname`" != "Darwin" then REENTRANT="-pthread $REENTRANT" LIB_LDADD="-pthread" fi fifi # =================# Create Makefiles.# =================AC_SUBST(REENTRANT)AC_SUBST(DOES_NOT_HAVE_SIGNED)AC_SUBST(DLOBJS)AC_SUBST(LIBRARY_LIB)AC_SUBST(PLAYER_LIB)AC_SUBST(LIBMIKMOD_MAJOR_VERSION)AC_SUBST(LIBMIKMOD_MINOR_VERSION)AC_SUBST(LIBMIKMOD_MICRO_VERSION)AC_SUBST(LIBMIKMOD_VERSION)AC_SUBST(BETA_RELEASE)AC_SUBST(IS_BETA)AC_SUBST(SPEC_RELEASE)AC_SUBST(SPEC_PRERELEASE)AC_SUBST(LIB_LDADD)AC_OUTPUT(libmikmod-configlibmikmod.specMakefiledocs/Makefiledocs/libmikmod-config.1dlapi/Makefiledrivers/Makefileinclude/Makefileinclude/mikmod.hinclude/mikmod_build.h:include/mikmod.h.inlibmikmod/Makefileloaders/Makefilemmio/Makefileplayercode/Makefileposix/Makefilemacintosh/Makefilemacintosh/mikmod.hmacintosh/_libmikmodversion.rmacosx/mikmod.hmacosx/Info-Carbon_Framework.plistmacosx/Info-CoreAudio_Framework.plistos2/Makefiledos/Makefiledos/include/Makefiledos/src/Makefilewin32/Makefile,chmod +x libmikmod-config,cat macintosh/_libmikmodversion.r | tr '\n' '\r' > macintosh/libmikmodversion.r )# ====================# Print configuration.# ====================libmikmod_driverlist=`echo $libmikmod_driverlist raw wav aiff pipe stdout nosound|sed -e 's, , ,g'`if test $libmikmod_dynload != nothen libmikmod_dynload="yes, ${libmikmod_dynload} style"fiecho "Library configuration: Source code location: $srcdir Compiler: $CC Compiler flags: $CFLAGS Debug version: $libmikmod_debug Dynamically loaded drivers whenever possible: $libmikmod_dynload Drivers to be compiled: $libmikmod_driverlist Install path: $prefix/lib, $prefix/include"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -