configure.in 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. # Process this file with autoconf to produce a configure script.
  2. AC_INIT(physfs.c)
  3. dnl ---------------------------------------------------------------------
  4. dnl System/version info
  5. dnl ---------------------------------------------------------------------
  6. # Making releases:
  7. # MICRO_VERSION += 1;
  8. # INTERFACE_AGE += 1;
  9. # BINARY_AGE += 1;
  10. # if any functions have been added, set INTERFACE_AGE to 0.
  11. # if backwards compatibility has been broken,
  12. # set BINARY_AGE and INTERFACE_AGE to 0.
  13. MAJOR_VERSION=0
  14. MINOR_VERSION=1
  15. MICRO_VERSION=7
  16. INTERFACE_AGE=0
  17. BINARY_AGE=0
  18. VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
  19. AC_SUBST(MAJOR_VERSION)
  20. AC_SUBST(MINOR_VERSION)
  21. AC_SUBST(MICRO_VERSION)
  22. AC_SUBST(INTERFACE_AGE)
  23. AC_SUBST(BINARY_AGE)
  24. AC_SUBST(VERSION)
  25. # libtool versioning
  26. LT_RELEASE=$MAJOR_VERSION.$MINOR_VERSION
  27. LT_CURRENT=`expr $MICRO_VERSION - $INTERFACE_AGE`
  28. LT_REVISION=$INTERFACE_AGE
  29. LT_AGE=`expr $BINARY_AGE - $INTERFACE_AGE`
  30. AC_SUBST(LT_RELEASE)
  31. AC_SUBST(LT_CURRENT)
  32. AC_SUBST(LT_REVISION)
  33. AC_SUBST(LT_AGE)
  34. dnl Detect the canonical host and target build environment
  35. AC_CANONICAL_BUILD
  36. AC_CANONICAL_HOST
  37. AC_CANONICAL_TARGET
  38. dnl Setup for automake
  39. AM_CONFIG_HEADER(config.h)
  40. AM_INIT_AUTOMAKE(physfs, $VERSION)
  41. dnl ---------------------------------------------------------------------
  42. dnl Compilers and other tools
  43. dnl ---------------------------------------------------------------------
  44. AC_PROG_CC
  45. AC_PROG_CXX
  46. AC_PROG_INSTALL
  47. AC_PROG_LN_S
  48. AC_LIBTOOL_WIN32_DLL
  49. LIBTOOL="libtool"
  50. AM_PROG_LIBTOOL
  51. AC_CHECK_PROG(we_have_sed, sed, yes, no)
  52. dnl ---------------------------------------------------------------------
  53. dnl Debug mode?
  54. dnl ---------------------------------------------------------------------
  55. AC_ARG_ENABLE(debug,
  56. [ --enable-debug enable debug mode [default=yes]],
  57. , enable_debug=yes)
  58. if test x$enable_debug = xyes; then
  59. if test x$ac_cv_prog_cc_g = xyes; then
  60. CFLAGS="-g -O0"
  61. else
  62. CFLAGS="-O0"
  63. fi
  64. CFLAGS="$CFLAGS -Werror -Wall"
  65. AC_DEFINE([DEBUG], 1, [define if debug build is enabled])
  66. AC_DEFINE([DEBUG_CHATTER], 1, [define if debug chatter is enabled])
  67. else
  68. CFLAGS="-O2"
  69. AC_DEFINE([NDEBUG], 1, [define if debug build is disabled])
  70. fi
  71. dnl ---------------------------------------------------------------------
  72. dnl Build test program?
  73. dnl ---------------------------------------------------------------------
  74. AC_ARG_ENABLE(testprog,
  75. [ --enable-testprog build test program [default=yes]],
  76. , enable_testprog=yes)
  77. dnl ---------------------------------------------------------------------
  78. dnl Checks for libraries.
  79. dnl ---------------------------------------------------------------------
  80. require_zlib="no"
  81. dnl Check for zip archiver inclusion...
  82. AC_ARG_ENABLE(zip,
  83. [ --enable-zip enable ZIP support [default=yes]],
  84. , enable_zip=yes)
  85. if test x$enable_zip = xyes; then
  86. AC_DEFINE([PHYSFS_SUPPORTS_ZIP], 1, [define if zip support is enabled])
  87. require_zlib="yes"
  88. fi
  89. dnl Check for zip archiver inclusion...
  90. AC_ARG_ENABLE(grp,
  91. [ --enable-grp enable Build Engine GRP support [default=yes]],
  92. , enable_grp=yes)
  93. if test x$enable_grp = xyes; then
  94. AC_DEFINE([PHYSFS_SUPPORTS_GRP], 1, [define if grp support is enabled])
  95. fi
  96. AC_ARG_ENABLE(internal-zlib,
  97. [ --enable-internal-zlib use included zlib [default=only if needed]],
  98. , enable_internal_zlib=maybe)
  99. dnl Check for zlib if needed.
  100. have_external_zlib="no"
  101. if test x$enable_internal_zlib != xyes; then
  102. if test x$require_zlib = xyes; then
  103. AC_CHECK_HEADER(zlib.h, have_zlib_hdr=yes)
  104. AC_CHECK_LIB(z, zlibVersion, have_zlib_lib=yes)
  105. if test x$have_zlib_hdr = xyes -a x$have_zlib_lib = xyes; then
  106. have_external_zlib="yes"
  107. fi
  108. fi
  109. fi
  110. AC_MSG_CHECKING([what zlib to use])
  111. dnl no zlib is needed at all if we aren't supporting ZIP files.
  112. if test x$require_zlib = xno; then
  113. enable_internal_zlib="no"
  114. enable_external_zlib="no"
  115. AC_MSG_RESULT([no zlib needed])
  116. else
  117. if test x$enable_internal_zlib = xmaybe; then
  118. if test x$have_external_zlib = xyes; then
  119. enable_internal_zlib="no"
  120. enable_external_zlib="yes"
  121. else
  122. enable_internal_zlib="yes"
  123. enable_external_zlib="no"
  124. fi
  125. else
  126. if test x$enable_internal_zlib = xno -a x$have_external_zlib = xyes; then
  127. enable_internal_zlib="no"
  128. enable_external_zlib="yes"
  129. fi
  130. fi
  131. if test x$enable_internal_zlib = xyes; then
  132. AC_MSG_RESULT([internal zlib])
  133. else
  134. if test x$enable_external_zlib = xyes; then
  135. AC_MSG_RESULT([external zlib])
  136. LIBS="$LIBS -lz"
  137. else
  138. AC_MSG_ERROR([Need zlib, but you disabled our copy and have no system lib])
  139. fi
  140. fi
  141. fi
  142. dnl determine if we should include readline support...
  143. AC_ARG_ENABLE(readline,
  144. [ --enable-readline use GNU readline in test program [default=yes]],
  145. , enable_readline=yes)
  146. if test x$enable_readline = xyes; then
  147. AC_CHECK_HEADER(readline/readline.h, have_readline_hdr=yes)
  148. AC_CHECK_LIB(readline, readline, have_readline_lib=yes, , -lcurses)
  149. AC_CHECK_HEADER(readline/history.h, have_history_hdr=yes)
  150. AC_CHECK_LIB(readline, add_history, have_history_lib=yes, , -lcurses)
  151. if test x$have_readline_hdr = xyes -a x$have_readline_lib = xyes; then
  152. if test x$have_history_hdr = xyes -a x$have_history_lib = xyes; then
  153. AC_DEFINE([PHYSFS_HAVE_READLINE], 1, [define if we have readline])
  154. LIBS="$LIBS -lreadline -lcurses"
  155. fi
  156. fi
  157. fi
  158. dnl !!! FIXME: Not sure how to detect this...
  159. dnl check for 64-bit llseek()...
  160. dnl AC_CHECK_LIB(c, llseek, have_llseek=yes)
  161. if test x$have_llseek = xyes; then
  162. AC_DEFINE([PHYSFS_HAVE_LLSEEK], 1, [define if we have llseek])
  163. fi
  164. enable_cdrom=no
  165. dnl determine if we should use the stubbed CD-ROM detection code.
  166. dnl AC_ARG_ENABLE(cdrom,
  167. dnl [ --enable-cdrom try standard CD-ROM support [default=yes]],
  168. dnl , enable_cdrom=yes)
  169. dnl BSD systems use sys/ucred.h for getting mounted volumes.
  170. dnl Linux and others use mntent.h.
  171. AC_CHECK_HEADER(sys/ucred.h, have_ucred_hdr=yes)
  172. if test x$have_ucred_hdr = xyes; then
  173. AC_DEFINE([PHYSFS_HAVE_SYS_UCRED_H], 1, [define if we have sys/ucred.h])
  174. enable_cdrom=yes
  175. fi
  176. AC_CHECK_HEADER(mntent.h, have_mntent_hdr=yes)
  177. if test x$have_mntent_hdr = xyes; then
  178. AC_DEFINE([PHYSFS_HAVE_MNTENT_H], 1, [define if we have mntent.h])
  179. enable_cdrom=yes
  180. fi
  181. dnl AC_CHECK_HEADER(be/kernel/OS.h, this_is_beos=yes)
  182. AC_MSG_CHECKING([if this is BeOS])
  183. if test x$build_os = xbeos; then
  184. this_is_beos=yes
  185. LIBS="$LIBS -lroot -lbe"
  186. else
  187. this_is_beos=no
  188. fi
  189. AC_MSG_RESULT([$this_is_beos])
  190. AC_MSG_CHECKING([if this is Cygwin])
  191. if test x$build_os = xcygwin; then
  192. this_is_cygwin=yes
  193. CFLAGS="$CFLAGS -DWIN32"
  194. else
  195. this_is_cygwin=no
  196. fi
  197. AC_MSG_RESULT([$this_is_cygwin])
  198. this_is_macosx=no
  199. if test x$we_have_sed = xyes; then
  200. AC_MSG_CHECKING([if this is MacOS X])
  201. x=`echo $build_os |sed "s/darwin.*/darwin/"`
  202. if test x$x = xdarwin -a x$build_vendor = xapple; then
  203. this_is_macosx=yes
  204. fi
  205. AC_MSG_RESULT([$this_is_macosx])
  206. fi
  207. this_is_freebsd=no
  208. if test x$we_have_sed = xyes; then
  209. AC_MSG_CHECKING([if this is FreeBSD])
  210. x=`echo $build_os |tr A-Z a-z |sed "s/.*freebsd.*/freebsd/"`
  211. if test x$x = xfreebsd; then
  212. this_is_freebsd=yes
  213. LDFLAGS="$LDFLAGS -pthread"
  214. fi
  215. AC_MSG_RESULT([$this_is_freebsd])
  216. fi
  217. this_is_openbsd=no
  218. if test x$we_have_sed = xyes; then
  219. AC_MSG_CHECKING([if this is OpenBSD])
  220. x=`echo $build_os |tr A-Z a-z |sed "s/.*openbsd.*/openbsd/"`
  221. if test x$x = xopenbsd; then
  222. this_is_openbsd=yes
  223. LDFLAGS="$LDFLAGS -pthread"
  224. fi
  225. AC_MSG_RESULT([$this_is_openbsd])
  226. fi
  227. this_is_atheos=no
  228. if test x$we_have_sed = xyes; then
  229. AC_MSG_CHECKING([if this is AtheOS])
  230. x=`echo $build_os |tr A-Z a-z |sed "s/.*atheos.*/atheos/"`
  231. if test x$x = xatheos; then
  232. this_is_atheos=yes
  233. enable_cdrom=no
  234. LDFLAGS="$LDFLAGS -lpthread"
  235. fi
  236. AC_MSG_RESULT([$this_is_atheos])
  237. fi
  238. dnl Some platform might disable this, so check this down here...
  239. if test x$enable_cdrom != xyes; then
  240. AC_DEFINE([PHYSFS_NO_CDROM_SUPPORT], 1, [define if we have no CD support])
  241. fi
  242. # Checks for header files.
  243. AC_HEADER_STDC
  244. AC_CHECK_HEADERS([stdlib.h string.h])
  245. # Checks for typedefs, structures, and compiler characteristics.
  246. dnl AC_C_CONST
  247. dnl AC_TYPE_SIZE_T
  248. # Checks for library functions.
  249. # This is only in the bleeding edge autoconf distro...
  250. #AC_FUNC_MALLOC
  251. AC_FUNC_MEMCMP
  252. AC_CHECK_FUNCS([memset strrchr])
  253. CFLAGS="$CFLAGS -D_REENTRANT -D_THREAD_SAFE"
  254. LDFLAGS="$LDFLAGS -no-undefined"
  255. dnl Add Makefile conditionals
  256. AM_CONDITIONAL(BUILD_ZLIB, test x$enable_internal_zlib = xyes)
  257. AM_CONDITIONAL(BUILD_TEST_PHYSFS, test x$enable_testprog = xyes)
  258. AM_CONDITIONAL(BUILD_MACOSX, test x$this_is_macosx = xyes)
  259. AM_CONDITIONAL(BUILD_BEOS, test x$this_is_beos = xyes)
  260. AM_CONDITIONAL(BUILD_CYGWIN, test x$this_is_cygwin = xyes)
  261. AC_OUTPUT([
  262. Makefile
  263. archivers/Makefile
  264. platform/Makefile
  265. zlib114/Makefile
  266. test/Makefile
  267. extras/Makefile
  268. ])
  269. dnl end of configure.in ...