configure.in
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:19k
源码类别:

Windows CE

开发平台:

C/C++

  1. dnl Process this file with autoconf to produce a configure script.
  2. dnl
  3. dnl $Id: configure.in,v 1.20 2004/02/20 22:08:30 raph Exp $
  4. AC_INIT(include/mikmod.h.in)
  5. LIBMIKMOD_MAJOR_VERSION=3
  6. LIBMIKMOD_MINOR_VERSION=2
  7. LIBMIKMOD_MICRO_VERSION=0
  8. # bn where n is the beta
  9. BETA=b2
  10. # used for #if in header files
  11. IS_BETA=1
  12. # used when a numeric beta number is required.
  13. BETA_RELEASE=2  # beta 1
  14. LIBMIKMOD_VERSION=$LIBMIKMOD_MAJOR_VERSION.$LIBMIKMOD_MINOR_VERSION.$LIBMIKMOD_MICRO_VERSION$BETA
  15. # stuff for autogenerating the spec file. 
  16. # should be 1 for final releases
  17. SPEC_RELEASE=0.2beta2
  18. # should be empty for final releases
  19. SPEC_PRERELEASE=-beta2
  20. AM_INIT_AUTOMAKE(libmikmod,$LIBMIKMOD_VERSION)
  21. AM_CONFIG_HEADER(config.h)
  22. AM_MAINTAINER_MODE
  23. # ==============================================================
  24. # libmikmod specific control variables and their default values.
  25. # ==============================================================
  26. libmikmod_driver_af=yes
  27. libmikmod_driver_aix=no
  28. libmikmod_driver_alsa=yes
  29. libmikmod_driver_esd=yes
  30. libmikmod_driver_hp=no
  31. libmikmod_driver_oss=yes
  32. libmikmod_driver_sam9407=yes
  33. libmikmod_driver_sgi=no
  34. libmikmod_driver_sun=no
  35. libmikmod_driver_osx=yes
  36. libmikmod_driver_mac=no
  37. libmikmod_driver_ultra=yes
  38. libmikmod_driverlist=
  39. libmikmod_dynload=yes
  40. libmikmod_dynload_underscores=no
  41. libmikmod_debug=no
  42. libmikmod_threads=yes
  43. DLOBJS=""
  44. # =========================
  45. # Configure script options.
  46. # =========================
  47. AC_ARG_ENABLE(af,
  48. [  --enable-af             include AudioFile driver [guessed]],
  49. [if test "$enableval" = "yes"
  50. then
  51.   libmikmod_driver_af=yes
  52. else
  53.   libmikmod_driver_af=no
  54. fi])
  55. AC_ARG_ENABLE(alsa,
  56. [  --enable-alsa           Linux only: include Advanced Linux Sound Architecture
  57.                           driver [guessed]],
  58. [if test "$enableval" = "yes"
  59. then
  60.   libmikmod_driver_alsa=yes
  61. else
  62.   libmikmod_driver_alsa=no
  63. fi])
  64. AC_ARG_ENABLE(esd,
  65. [  --enable-esd            include Enlightened sound daemon driver [guessed]],
  66. [if test "$enableval" = "yes"
  67. then
  68.   libmikmod_driver_esd=yes
  69. else
  70.   libmikmod_driver_esd=no
  71. fi])
  72. AC_ARG_ENABLE(oss,
  73. [  --enable-oss            include OSS driver [guessed]],
  74. [if test "$enableval" = "yes"
  75. then
  76.   libmikmod_driver_oss=yes
  77. else
  78.   libmikmod_driver_oss=no
  79. fi])
  80. AC_ARG_ENABLE(osx,
  81. [  --enable-osx            include OSX driver [guessed]],
  82. [if test "$enableval" = "yes"
  83. then
  84.   libmikmod_driver_osx=yes
  85. else
  86.   libmikmod_driver_osx=no
  87. fi])
  88. AC_ARG_ENABLE(mac,
  89. [  --enable-mac            include MAC carbon driver [default=no]],
  90. [if test "$enableval" = "yes"
  91. then
  92.   libmikmod_driver_mac=yes
  93. else
  94.   libmikmod_driver_mac=no
  95. fi])
  96. AC_ARG_ENABLE(sam9407,
  97. [  --enable-sam9407        Linux only: include sam9407 driver [guessed]],
  98. [if test "$enableval" = "yes"
  99. then
  100.   libmikmod_driver_sam9407=yes
  101. else
  102.   libmikmod_driver_sam9407=no
  103. fi])
  104. AC_ARG_ENABLE(ultra,
  105. [  --enable-ultra          Linux only: include Ultra driver [guessed]],
  106. [if test "$enableval" = "yes"
  107. then
  108.   libmikmod_driver_ultra=yes
  109. else
  110.   libmikmod_driver_ultra=no
  111. fi])
  112. AC_ARG_ENABLE(dl,
  113. [  --enable-dl             load alsa, esound and ultra drivers at runtime
  114.                           [default=yes]],
  115. [if test "$enableval" = "yes"
  116. then
  117.   libmikmod_dynload=yes
  118. else
  119.   libmikmod_dynload=no
  120. fi])
  121. AC_ARG_ENABLE(debug,
  122. [  --enable-debug          build a debug version of libmikmod [default=no]],
  123. [if test "$enableval" = "yes"
  124. then
  125.   libmikmod_debug=yes
  126. else
  127.   libmikmod_debug=no
  128. fi])
  129. AC_ARG_ENABLE(threads,
  130. [  --enable-threads        build a thread-safe version of libmikmod [default=guessed]],
  131. [if test "$enableval" = "yes"
  132. then
  133. libmikmod_threads=yes
  134. else
  135. libmikmod_threads=no
  136. fi])
  137. # ===================
  138. # Check for programs.
  139. # ===================
  140. AC_PROG_CC
  141. AC_PROG_INSTALL
  142. AC_PROG_LN_S
  143. AM_PROG_LIBTOOL
  144. AC_PROG_MAKE_SET
  145. AC_PROG_LIBTOOL
  146. # Check if makeinfo support html output. If it doesn't, pretend it's missing
  147. # rather than failing rebuilding the documentation.
  148. AC_CACHE_CHECK([if makeinfo supports html output],libmikmod_cv_makeinfo_html,
  149. if (makeinfo --help 2>&1 | grep html > /dev/null) 2>/dev/null
  150. then
  151. libmikmod_cv_makeinfo_html=yes
  152. else
  153. libmikmod_cv_makeinfo_html=no
  154. fi)
  155. if test $libmikmod_cv_makeinfo_html = no
  156. then
  157. MAKEINFO="$missing_dir/missing makeinfo"
  158. else
  159. MAKEINFO="$MAKEINFO --no-split"
  160. fi
  161. # ====================
  162. # Check for libraries.
  163. # ====================
  164. # dl functions
  165. # ------------
  166. if test $libmikmod_dynload = yes
  167. then
  168. libmikmod_dynload=no
  169. libmikmod_dllib=
  170. # SunOS-style shared libraries
  171. AC_CHECK_HEADERS(dlfcn.h)
  172. if test $ac_cv_header_dlfcn_h = yes
  173. then
  174. AC_CHECK_LIB(c,dlopen,libmikmod_dynload=sun,
  175.              [AC_CHECK_LIB(dl,dlopen,[libmikmod_dynload=sun
  176.                                       libmikmod_dllib="-ldl"],libmikmod_dynload=no)])
  177. else
  178. # HP-UX-style shared libraries
  179. AC_CHECK_HEADERS(dl.h)
  180. if test $ac_cv_header_dl_h = yes
  181. then
  182. AC_CHECK_LIB(dld,shl_load,[libmikmod_dynload=hp
  183.                            libmikmod_dllib="-ldld"
  184.                            DLOBJS="dl_hpux.lo"
  185.                            CFLAGS="${CFLAGS} -I${srcdir}/dlapi"],libmikmod_dynload=no)
  186. fi
  187. fi
  188. fi
  189. if test $libmikmod_dynload = sun
  190. then
  191. AC_CACHE_CHECK(
  192. [wherever dynamically loaded symbols need underscores],
  193. libmikmod_cv_dynload_underscores,
  194. libmikmod_oldlibs=$LIBS
  195. LIBS="$LIBS $libmikmod_dllib"
  196. AC_LANG_SAVE
  197. AC_LANG_C
  198. AC_TRY_RUN([#include <dlfcn.h>
  199. #ifndef RTLD_GLOBAL
  200. #define RTLD_GLOBAL 0
  201. #endif
  202. int main(void)
  203. {
  204. void *libc, *printfptr;
  205. libc = dlopen("libc.so", RTLD_LAZY | RTLD_GLOBAL);
  206. if (!libc)
  207. exit(1);
  208. printfptr = dlsym(libc, "_printf");
  209. dlclose(libc);
  210. exit(!printfptr);
  211. }],
  212. libmikmod_cv_dynload_underscores=yes,
  213. libmikmod_cv_dynload_underscores=no,
  214. libmikmod_cv_dynload_underscores=no)
  215. AC_LANG_RESTORE
  216. LIBS=$libmikmod_oldlibs
  217. )
  218. if test $libmikmod_cv_dynload_underscores = yes
  219. then
  220. AC_DEFINE(DLSYM_NEEDS_UNDERSCORE)
  221. fi
  222. fi
  223. # POSIX.4 threads
  224. # ---------------
  225. if test $libmikmod_threads = yes
  226. then
  227. libmikmod_threads=no
  228. AC_CACHE_CHECK(
  229. [if compiler recognizes -pthread],
  230. libmikmod_cv_gcc_pthread,
  231. ac_save_CFLAGS=$CFLAGS
  232. CFLAGS="$CFLAGS -pthread"
  233. AC_LANG_SAVE
  234. AC_LANG_C
  235. AC_TRY_LINK([#include <pthread.h>],
  236. [int p = pthread_create(NULL,NULL,NULL,NULL);],
  237. libmikmod_cv_gcc_pthread=yes,
  238. libmikmod_cv_gcc_pthread=no
  239. )
  240. AC_LANG_RESTORE
  241. CFLAGS=$ac_save_CFLAGS
  242. )
  243. if test $libmikmod_cv_gcc_pthread = yes
  244. then
  245. dnl There is no need for -pthread on darwin, and gcc
  246. dnl complains about unrecognized option -pthread
  247. if test "`uname`" != "Darwin"
  248. then
  249. libmikmod_threads=""
  250. CFLAGS="$CFLAGS -pthread"
  251. fi
  252. else
  253. dnl AC_CHECK_HEADERS(pthread.h) unreliable
  254. AC_CHECK_LIB(pthread,pthread_create,libmikmod_threads=-lpthread,
  255.              [AC_CHECK_LIB(c_r,pthread_create,libmikmod_threads=-lc_r)])
  256. fi
  257. fi
  258. # ALSA - Linux only
  259. # -----------------
  260. if test "`uname`" = "Linux" && test $libmikmod_driver_alsa = yes
  261. then
  262. libmikmod_driver_alsa=no
  263. AC_CHECK_HEADERS(sys/asoundlib.h)
  264. if test $ac_cv_header_sys_asoundlib_h = yes
  265. then
  266. AC_CHECK_LIB(asound,snd_cards,libmikmod_driver_alsa=yes)
  267. fi
  268. else
  269. libmikmod_driver_alsa=no
  270. fi
  271. # esd
  272. # ---
  273. if test $libmikmod_driver_esd = yes
  274. then
  275. libmikmod_driver_esd=no
  276. AM_PATH_ESD(0.2.6,libmikmod_driver_esd=yes)
  277. # We also need to know if esd is compiled with alsa support
  278. if test $libmikmod_driver_esd = yes
  279. then
  280. AC_CACHE_CHECK([if esd requires alsa],libmikmod_cv_esd_needs_alsa,
  281. if (esd-config --libs 2>&1 |grep asound >/dev/null) 2>/dev/null
  282. then
  283. libmikmod_cv_esd_needs_alsa=yes
  284. else
  285. libmikmod_cv_esd_needs_alsa=no
  286. fi)
  287. else
  288. libmikmod_cv_esd_needs_alsa=no
  289. fi
  290. fi
  291. # sgi audio - IRIX only
  292. # ---------------------
  293. case `uname` in
  294. IRIX*)
  295. AC_CHECK_HEADERS(dmedia/audio.h)
  296. if test $ac_cv_header_dmedia_audio_h = yes
  297. then
  298. AC_CHECK_LIB(audio,ALseterrorhandler,libmikmod_driver_sgi=yes)
  299. fi
  300. ;;
  301. esac
  302. # audiofile
  303. # ---------
  304. if test $libmikmod_driver_af = yes
  305. then
  306. libmikmod_driver_af=no
  307. AC_CHECK_HEADERS(AF/AFlib.h)
  308. if test $ac_cv_header_AF_AFlib_h = yes
  309. then
  310. AC_CHECK_LIB(AF,AFOpenAudioConn,libmikmod_driver_af=yes)
  311. fi
  312. fi
  313. # libgus - Linux only
  314. # -------------------
  315. if test "`uname`" = "Linux" && test $libmikmod_driver_ultra = yes
  316. then
  317. libmikmod_driver_ultra=no
  318. AC_CHECK_HEADERS(libgus.h)
  319. if test $ac_cv_header_libgus_h = yes
  320. then
  321. AC_CHECK_LIB(gus,gus_cards,libmikmod_driver_ultra=yes)
  322. fi
  323. else
  324. libmikmod_driver_ultra=no
  325. fi
  326. # sam9407 - Linux only
  327. # --------------------
  328. if test "`uname`" = "Linux" && test $libmikmod_driver_sam9407 = yes
  329. then
  330. libmikmod_driver_sam9407=no
  331. AC_CHECK_HEADERS(sys/sam9407.h)
  332. if test $ac_cv_header_sys_sam9407_h = yes
  333. then
  334. libmikmod_driver_sam9407=yes
  335. fi
  336. else
  337. libmikmod_driver_sam9407=no
  338. fi
  339. # =======================
  340. # Check for header files.
  341. # =======================
  342. AC_HEADER_STDC
  343. AC_HEADER_SYS_WAIT
  344. AC_CHECK_HEADERS(fcntl.h malloc.h memory.h strings.h sys/ioctl.h unistd.h)
  345. # =============================================================
  346. # Check for typedefs, structures, and compiler characteristics.
  347. # =============================================================
  348. AC_PROG_GCC_TRADITIONAL
  349. AC_C_CONST
  350. AC_TYPE_PID_T
  351. AC_TYPE_SIZE_T
  352. AC_CACHE_CHECK([if compiler understands the signed keyword],
  353. libmikmod_cv_gcc_signed,
  354. AC_LANG_SAVE
  355. AC_LANG_C
  356. AC_TRY_COMPILE(,[signed int t = 0;],
  357. libmikmod_cv_gcc_signed=yes,libmikmod_cv_gcc_signed=no)
  358. AC_LANG_RESTORE)
  359. if test $libmikmod_cv_gcc_signed = yes
  360. then
  361. DOES_NOT_HAVE_SIGNED=""
  362. else
  363. DOES_NOT_HAVE_SIGNED="#define signed"
  364. fi
  365. # ============================
  366. # Check for library functions.
  367. # ============================
  368. AC_CHECK_FUNCS(setenv snprintf srandom)
  369. AC_REPLACE_FUNCS(strcasecmp strdup strstr)
  370. # Change extension, as we use libtool
  371. LIBOBJS="`echo $LIBOBJS|sed -e 's/.o/.lo/g'`"
  372. AC_HEADER_EGREP(srandom,math.h,AC_DEFINE(SRANDOM_IN_MATH_H))
  373. # ================
  374. # Choose settings.
  375. # ================
  376. AC_DEFINE(DRV_PIPE)
  377. AC_DEFINE(DRV_AIFF)
  378. # If we can guess the drivers needed from the system, no need to ask the user
  379. # to specify it manually
  380. case `uname` in
  381. AIX)
  382. AC_DEFINE(AIX)
  383. AC_CHECK_HEADERS(sys/audio.h sys/acpa.h)
  384. if test $ac_cv_header_sys_audio_h = yes && 
  385.    test $ac_cv_header_sys_acpa_h = yes
  386. then
  387. libmikmod_driver_aix=yes
  388. fi
  389. ;;
  390. HP-UX)
  391. AC_CHECK_HEADERS(sys/audio.h)
  392. if test $ac_cv_header_sys_audio_h = yes
  393. then
  394. libmikmod_driver_hp=yes
  395. fi
  396. ;;
  397. NetBSD|OpenBSD)
  398. AC_CHECK_HEADERS(sys/audioio.h)
  399. if test $ac_cv_header_sys_audioio_h = yes
  400. then
  401. libmikmod_driver_sun=yes
  402. if test "`uname`" = "NetBSD"
  403. then
  404. libmikmod_driverlist="netbsd $libmikmod_driverlist"
  405. else
  406. libmikmod_driverlist="openbsd $libmikmod_driverlist"
  407. fi
  408. fi
  409. ;;
  410. SunOS)
  411. AC_CHECK_HEADERS(sun/audioio.h sys/audioio.h)
  412. if test $ac_cv_header_sun_audioio_h = yes || 
  413.    test $ac_cv_header_sys_audioio_h = yes
  414. then
  415. libmikmod_driver_sun=yes
  416. libmikmod_driverlist="sun $libmikmod_driverlist"
  417. case `uname -r` in
  418. 4*) AC_DEFINE(SUNOS) ;;
  419. esac
  420. fi
  421. ;;
  422. esac
  423. if test $libmikmod_driver_af = yes
  424. then
  425. libmikmod_driverlist="$libmikmod_driverlist audiofile"
  426. AC_DEFINE(DRV_AF)
  427. LIBRARY_LIB="-lAF $LIBRARY_LIB"
  428. fi
  429. if test $libmikmod_driver_aix = yes
  430. then
  431. libmikmod_driverlist="aix $libmikmod_driverlist"
  432. AC_DEFINE(DRV_AIX)
  433. fi
  434. if test $libmikmod_driver_alsa = yes
  435. then
  436. libmikmod_driverlist="alsa $libmikmod_driverlist"
  437.   AC_DEFINE(DRV_ALSA)
  438. if test $libmikmod_dynload = no
  439. then
  440.   LIBRARY_LIB="-lasound $LIBRARY_LIB"
  441. fi
  442. fi
  443. if test $libmikmod_driver_esd = yes
  444. then
  445. libmikmod_driverlist="$libmikmod_driverlist esd"
  446. AC_DEFINE(DRV_ESD)
  447. CFLAGS="$CFLAGS $ESD_CFLAGS"
  448. # Under Solaris and perhaps other systems, we have to forward esd
  449. # dependencies to libmikmod's dependency list.
  450. # However, no need to keep libraries we won't require (libossaudio on BSD
  451. # systems, libaudiofile, libasound on Linux)
  452. if test $libmikmod_dynload != no
  453. then
  454. ESD_LIBS="`echo $ESD_LIBS|sed -e 's/-lesd//'|sed -e 's/-lasound//'|sed -e 's/-laudiofile//'|sed -e 's/-lossaudio//'`"
  455. fi
  456. LIBRARY_LIB="$ESD_LIBS $LIBRARY_LIB"
  457. fi
  458. if test $libmikmod_driver_hp = yes
  459. then
  460. libmikmod_driverlist="hp $libmikmod_driverlist"
  461. AC_DEFINE(DRV_HP)
  462. fi
  463. if test $libmikmod_driver_oss = yes
  464. then
  465. # under Linux, /dev/sndstat is deprecated, never check for OSS as the
  466. # headers are always found.
  467. if test "`uname`" != "Linux"
  468. then
  469. AC_CACHE_CHECK([for OSS (/dev/sndstat)],libmikmod_cv_oss_dev_sndstat,
  470. if test -c /dev/sndstat
  471. then
  472. libmikmod_cv_oss_dev_sndstat=yes
  473. else
  474. libmikmod_cv_oss_dev_sndstat=no
  475. fi)
  476. else
  477. libmikmod_cv_oss_dev_sndstat=yes
  478. fi
  479. if test $libmikmod_cv_oss_dev_sndstat = yes
  480. then
  481. AC_CHECK_HEADERS(machine/soundcard.h)
  482. AC_CHECK_HEADERS(sys/soundcard.h)
  483. if test $ac_cv_header_machine_soundcard_h = yes || 
  484.    test $ac_cv_header_sys_soundcard_h = yes
  485. then
  486. libmikmod_driverlist="oss $libmikmod_driverlist"
  487. AC_DEFINE(DRV_OSS)
  488. fi
  489. fi
  490. fi
  491. if test "`uname`" = "Darwin"
  492. then
  493. if test $libmikmod_driver_osx = yes
  494. then
  495.   libmikmod_driverlist="osx $libmikmod_driverlist"
  496.   AC_DEFINE(DRV_OSX)
  497.   LIBRARY_LIB="-framework CoreAudio $LIBRARY_LIB"
  498. fi
  499. fi
  500. if test "`uname`" = "Darwin"
  501. then
  502. if test $libmikmod_driver_mac = yes
  503. then
  504. libmikmod_driverlist="mac $libmikmod_driverlist"
  505. AC_DEFINE(DRV_MAC)
  506. LIBRARY_LIB="-framework Carbon $LIBRARY_LIB"
  507. fi
  508. fi
  509. if test $libmikmod_driver_sam9407 = yes
  510. then
  511. libmikmod_driverlist="sam9407 $libmikmod_driverlist"
  512. AC_DEFINE(DRV_SAM9407)
  513. fi
  514. if test $libmikmod_driver_sgi = yes
  515. then
  516. libmikmod_driverlist="sgi $libmikmod_driverlist"
  517. AC_DEFINE(DRV_SGI)
  518. LIBRARY_LIB="-laudio $LIBRARY_LIB"
  519. fi
  520. if test $libmikmod_driver_sun = yes
  521. then
  522. AC_DEFINE(DRV_SUN)
  523. fi
  524. if test $libmikmod_driver_ultra = yes
  525. then
  526. libmikmod_driverlist="ultra $libmikmod_driverlist"
  527. AC_DEFINE(DRV_ULTRA)
  528. if test $libmikmod_dynload = no
  529. then
  530. LIBRARY_LIB="-lgus $LIBRARY_LIB"
  531. fi
  532. fi
  533. if test $libmikmod_debug = yes
  534. then
  535. AC_DEFINE(MIKMOD_DEBUG)
  536. CC="$CC -g"
  537. fi
  538. if test $libmikmod_dynload != no
  539. then
  540. AC_DEFINE(MIKMOD_DYNAMIC)
  541. if test "`uname`" = "Linux" && 
  542.    test $libmikmod_cv_esd_needs_alsa = yes && 
  543.    test $libmikmod_driver_esd = yes
  544. then
  545. # @#!$ libmikmod_dynloading esd requires us to define and make visible
  546. # extra symbols (at least for 0.2.6 to 0.2.8)
  547. AC_CACHE_CHECK([if libmikmod_dynloading esd causes problems],
  548. libmikmod_cv_esd_broken,
  549. libmikmod_oldlibs=$LIBS
  550. LIBS="$LIBS $ESD_LIBS"
  551. AC_TRY_LINK([
  552. #include <esd.h>
  553. extern void *handle;],
  554. [void *p = handle;],
  555. libmikmod_cv_esd_broken=no,libmikmod_cv_esd_broken=yes)
  556. LIBS=$libmikmod_oldlibs)
  557. if test $libmikmod_cv_esd_broken = yes
  558. then
  559. AC_DEFINE(MIKMOD_DYNAMIC_ESD_NEEDS_ALSA)
  560. LIB_LDADD="$LIB_LDADD -rdynamic"
  561. echo "
  562. *** This means your version of EsounD defines some public symbols,
  563. *** which should have been defined static or weak. The compiled
  564. *** libmikmod will try to take care of the problem, but you'll have to
  565. *** use the '-rdynamic' option when linking an application which uses
  566. *** libmikmod with gcc. If you use another compiler, or -rdynamic is not
  567. *** available on your platform, you might not be able to use libmikmod's
  568. *** EsounD driver.
  569. *** In this case, consider recompiling libmikmod specifying
  570. *** '--disable-dl' in the configure script options.
  571. " >&2
  572. fi
  573. fi
  574. LIBRARY_LIB="$libmikmod_dllib $LIBRARY_LIB"
  575. if test $libmikmod_dynload = sun
  576. then
  577. # RTLD_GLOBAL is not defined under every system
  578. AC_CACHE_CHECK([if RTLD_GLOBAL is defined],libmikmod_cv_decl_rtld_global,
  579. AC_TRY_COMPILE([#include <dlfcn.h>],[int flag=RTLD_GLOBAL;],
  580. libmikmod_cv_decl_rtld_global=yes,
  581. libmikmod_cv_decl_rtld_global=no))
  582. if test $libmikmod_cv_decl_rtld_global = yes
  583. then
  584. AC_DEFINE(HAVE_RTLD_GLOBAL)
  585. fi
  586. fi
  587. fi
  588. # If compiling with gcc, use adequate optimization flags
  589. if test $ac_cv_prog_gcc = yes
  590. then
  591. # On at least x86 platforms, gcc 2.7.2.1 and earlier won't work if -O3 (or
  592. # -finline-functions) are used. Versions 2.7.2.3, 2.8.x and egcs are ok
  593. # (didn't test 2.7.2.2).
  594. # Until there's an easy way to catch broken inlining, we choose flags known
  595. # to work correctly depending of the compiler version.
  596. AC_CACHE_CHECK([if inlining functions is safe],
  597. libmikmod_cv_gcc_inline_safe,
  598. AC_TRY_RUN([
  599. int main()
  600. {
  601. #if defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 7)
  602. exit(0);
  603. #else
  604. exit(1);
  605. #endif
  606. }],
  607. libmikmod_cv_gcc_inline_safe=yes,
  608. libmikmod_cv_gcc_inline_safe=no,
  609. libmikmod_cv_gcc_inline_safe=no))
  610. if test $libmikmod_cv_gcc_inline_safe = yes
  611. then
  612. CFLAGS="$CFLAGS -finline-functions"
  613. else
  614. CFLAGS="$CFLAGS -fno-strength-reduce"
  615. fi
  616. CFLAGS="$CFLAGS -funroll-loops -ffast-math"
  617. if test $libmikmod_debug = yes
  618. then
  619. CFLAGS="$CFLAGS -Wall -Werror"
  620. else
  621. CFLAGS="$CFLAGS -Wall"
  622. fi
  623. # pgcc 2.95.2 appears not to be able to compile libmikmod, although regular
  624. # gcc works fine. Issue a warning if the compiler is pgcc, until a reliable
  625. # way to detect flawed version (or, better, a reliable workaround) is
  626. # found.
  627. dnl do not cache this test - better rechecking every time
  628. AC_MSG_CHECKING(if compiler is pgcc)
  629. if ($CC -v 2>&1 | grep ^pgcc > /dev/null) 2>/dev/null
  630. then
  631. libmikmod_gcc_is_pgcc=yes
  632. else
  633. libmikmod_gcc_is_pgcc=no
  634. fi
  635. AC_MSG_RESULT($libmikmod_gcc_is_pgcc)
  636. if test $libmikmod_gcc_is_pgcc = yes
  637. then
  638. echo "
  639. *** Version 2.95.2 of this compiler, and perhaps others, are unable to
  640. *** compile libmikmod. If compilation fails for playercode/virtch.c
  641. *** around line 650, with the error ``internal error--insn does not
  642. *** satisfy its constraints'', then you'll have to use another compiler.
  643. " >&2
  644. fi
  645. fi
  646. if test x$libmikmod_threads != xno
  647. then
  648. AC_DEFINE(HAVE_PTHREAD)
  649. CFLAGS="$CFLAGS -D_REENTRANT"
  650. LIBRARY_LIB="$libmikmod_threads $LIBRARY_LIB"
  651. REENTRANT="-D_REENTRANT"
  652. if test $libmikmod_cv_gcc_pthread = yes
  653. then
  654. dnl There is no need for -pthread on darwin, and gcc
  655. dnl complains about unrecognized option -pthread
  656. if test "`uname`" != "Darwin"
  657. then
  658. REENTRANT="-pthread $REENTRANT"
  659. LIB_LDADD="-pthread"
  660. fi
  661. fi
  662. fi
  663. # =================
  664. # Create Makefiles.
  665. # =================
  666. AC_SUBST(REENTRANT)
  667. AC_SUBST(DOES_NOT_HAVE_SIGNED)
  668. AC_SUBST(DLOBJS)
  669. AC_SUBST(LIBRARY_LIB)
  670. AC_SUBST(PLAYER_LIB)
  671. AC_SUBST(LIBMIKMOD_MAJOR_VERSION)
  672. AC_SUBST(LIBMIKMOD_MINOR_VERSION)
  673. AC_SUBST(LIBMIKMOD_MICRO_VERSION)
  674. AC_SUBST(LIBMIKMOD_VERSION)
  675. AC_SUBST(BETA_RELEASE)
  676. AC_SUBST(IS_BETA)
  677. AC_SUBST(SPEC_RELEASE)
  678. AC_SUBST(SPEC_PRERELEASE)
  679. AC_SUBST(LIB_LDADD)
  680. AC_OUTPUT(
  681. libmikmod-config
  682. libmikmod.spec
  683. Makefile
  684. docs/Makefile
  685. docs/libmikmod-config.1
  686. dlapi/Makefile
  687. drivers/Makefile
  688. include/Makefile
  689. include/mikmod.h
  690. include/mikmod_build.h:include/mikmod.h.in
  691. libmikmod/Makefile
  692. loaders/Makefile
  693. mmio/Makefile
  694. playercode/Makefile
  695. posix/Makefile
  696. macintosh/Makefile
  697. macintosh/mikmod.h
  698. macintosh/_libmikmodversion.r
  699. macosx/mikmod.h
  700. macosx/Info-Carbon_Framework.plist
  701. macosx/Info-CoreAudio_Framework.plist
  702. os2/Makefile
  703. dos/Makefile
  704. dos/include/Makefile
  705. dos/src/Makefile
  706. win32/Makefile,
  707. chmod +x libmikmod-config,
  708. cat macintosh/_libmikmodversion.r | tr 'n' 'r' > macintosh/libmikmodversion.r )
  709. # ====================
  710. # Print configuration.
  711. # ====================
  712. libmikmod_driverlist=`echo $libmikmod_driverlist raw wav aiff pipe stdout nosound|sed -e 's,  , ,g'`
  713. if test $libmikmod_dynload != no
  714. then
  715. libmikmod_dynload="yes, ${libmikmod_dynload} style"
  716. fi
  717. echo "
  718. Library configuration:
  719.   Source code location: $srcdir
  720.   Compiler: $CC
  721.   Compiler flags: $CFLAGS
  722.   Debug version: $libmikmod_debug
  723.   Dynamically loaded drivers whenever possible: $libmikmod_dynload
  724.   Drivers to be compiled: $libmikmod_driverlist
  725.   Install path: $prefix/lib, $prefix/include
  726. "