configure.in 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031
  1. #############################################################################
  2. #
  3. # MODULE: Grass Compilation
  4. # AUTHOR(S): Original author unknown - probably CERL
  5. # Eric G. Miller - egm2 jps.net
  6. # Justin Hickey - Thailand - jhickey hpcc.nectec.or.th
  7. # Markus Neteler - Germany/Italy - neteler itc.it
  8. # PURPOSE: This configure runs all the tests to determine what components
  9. # are installed on the current system. It also defines certain
  10. # configuration variables for compilation and installation.
  11. # COPYRIGHT: (C) 2000-2009, 2011 by the GRASS Development Team
  12. #
  13. # This program is free software under the GNU General
  14. # Public License (>=v2). Read the file COPYING that
  15. # comes with GRASS for details.
  16. #
  17. # MANUAL: http://www.gnu.org/software/autoconf/manual/autoconf.html
  18. # Website for config.guess, config.sub:
  19. # http://savannah.gnu.org/cgi-bin/viewcvs/config/config/
  20. # Note: use autoconf-2.13
  21. #############################################################################
  22. define([AC_CACHE_LOAD], )
  23. define([AC_CACHE_SAVE], )
  24. define([AC_CACHE_VAL], [
  25. $2
  26. ])
  27. AC_INIT(configure.in)
  28. AC_PREREQ(2.13)
  29. AC_PREFIX_DEFAULT(/usr/local)
  30. AC_CONFIG_HEADER(include/config.h)
  31. AC_CANONICAL_HOST
  32. AC_PROG_CC
  33. LOC_EXEEXT
  34. AC_SUBST(MINGW32)
  35. # Check for full floating-point support, including Infinity and NaN
  36. IEEEFLAG=
  37. LOC_CHECK_FP_INF_NAN([],
  38. [],
  39. [ ac_save_cflags=${CFLAGS}
  40. CFLAGS=-mieee
  41. LOC_CHECK_FP_INF_NAN([ with -mieee],
  42. [IEEEFLAG="-mieee"],
  43. [AC_MSG_WARN([*** Incomplete floating-point support.])],
  44. [AC_MSG_ERROR([*** INTERNAL CONFIGURE ERROR])])
  45. CFLAGS=${ac_save_cflags}],
  46. [ LOC_CHECK_CC_MIEEE ])
  47. CFLAGS="$CFLAGS $IEEEFLAG"
  48. # Set BINDIR
  49. if test -n "${bindir}"; then
  50. BINDIR="${bindir}"
  51. else
  52. BINDIR=/usr/local/bin
  53. fi
  54. AC_SUBST(BINDIR)
  55. # Set SRCDIR and DSTDIR
  56. AC_PATH_PROG(pwd, pwd, pwd)
  57. if test "$MINGW32" = yes ; then
  58. winpwd="$pwd -W"
  59. else
  60. winpwd="$pwd"
  61. fi
  62. AC_MSG_CHECKING(for source directory)
  63. if test -z "$srcdir" ; then
  64. SRCDIR=`$pwd`
  65. else
  66. SRCDIR=`(cd "$srcdir" ; $pwd)`
  67. fi
  68. AC_MSG_RESULT("$SRCDIR")
  69. AC_MSG_CHECKING(for build directory)
  70. DSTDIR=`$pwd`
  71. WINDSTDIR=`$winpwd`
  72. AC_MSG_RESULT("$DSTDIR")
  73. AC_SUBST(SRCDIR)
  74. AC_SUBST(DSTDIR)
  75. # Set ARCH
  76. ARCH=
  77. if test -z "${host}"; then
  78. ARCH="unknown"
  79. else
  80. ARCH="${host}"
  81. fi
  82. AC_SUBST(ARCH)
  83. # Use absolute path for aux directory so that install-sh works
  84. AC_CONFIG_AUX_DIR("$SRCDIR")
  85. # Set GISBASE and GRASS_BIN
  86. GISBASE="${WINDSTDIR}/dist.${ARCH}"
  87. GRASS_BIN="${DSTDIR}/bin.${ARCH}"
  88. AC_SUBST(GISBASE)
  89. AC_SUBST(GRASS_BIN)
  90. # Set GRASS_VERSION_*
  91. GRASS_VERSION_FILE=include/VERSION
  92. GRASS_VERSION_MAJOR=`sed -n 1p "${GRASS_VERSION_FILE}"`
  93. GRASS_VERSION_MINOR=`sed -n 2p "${GRASS_VERSION_FILE}"`
  94. GRASS_VERSION_RELEASE=`sed -n 3p "${GRASS_VERSION_FILE}"`
  95. GRASS_VERSION_DATE=`sed -n 4p "${GRASS_VERSION_FILE}"`
  96. GRASS_VERSION_NUMBER=`echo ${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.${GRASS_VERSION_RELEASE}`
  97. NAME_VER=`echo ${GRASS_VERSION_NUMBER} | sed 's/\..*//'`
  98. changequote(,)
  99. LIB_VER=`echo ${GRASS_VERSION_NUMBER} | sed 's/^\([0-9.]*\).*$/\1/'`
  100. changequote([,])
  101. GRASS_VERSION_SVN=
  102. AC_PATH_PROG(SVN_VERSION, svnversion, no)
  103. if test "$SVN_VERSION" != "no" ; then
  104. GRASS_VERSION_SVN=`$SVN_VERSION -c | cut -f2 -d:`
  105. fi
  106. AC_SUBST(GRASS_VERSION_FILE)
  107. AC_SUBST(GRASS_VERSION_MAJOR)
  108. AC_SUBST(GRASS_VERSION_MINOR)
  109. AC_SUBST(GRASS_VERSION_RELEASE)
  110. AC_SUBST(GRASS_VERSION_NUMBER)
  111. AC_SUBST(GRASS_VERSION_DATE)
  112. AC_SUBST(GRASS_VERSION_SVN)
  113. AC_SUBST(NAME_VER)
  114. AC_SUBST(LIB_VER)
  115. # Check for MacOSX App
  116. AC_ARG_ENABLE(macosx-app,
  117. [ --enable-macosx-app create a MacOSX application],,
  118. [enable_macosx_app=no])
  119. AC_MSG_CHECKING(for MacOSX App)
  120. case "$enable_macosx_app" in
  121. yes) MACOSX_APP=1 ;;
  122. no) MACOSX_APP= ;;
  123. *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
  124. esac
  125. AC_MSG_RESULT("$enable_macosx_app")
  126. AC_SUBST(MACOSX_APP)
  127. # Check for MacOSX archs
  128. AC_MSG_CHECKING(for MacOSX architectures)
  129. MACOSX_ARCHS=
  130. if test -z "$with_macosx_archs" ; then
  131. AC_MSG_RESULT(no)
  132. else
  133. for a in $with_macosx_archs
  134. do
  135. # check if valid arch?
  136. case "$a" in
  137. i386|ppc|x86_64|ppc64)
  138. MACOSX_ARCHS="$MACOSX_ARCHS -arch $a"
  139. ;;
  140. esac
  141. done
  142. AC_MSG_RESULT([$MACOSX_ARCHS])
  143. LDFLAGS="$LDFLAGS $MACOSX_ARCHS"
  144. CFLAGS="$CFLAGS $MACOSX_ARCHS"
  145. CXXFLAGS="$CXXFLAGS $MACOSX_ARCHS"
  146. fi
  147. AC_SUBST(MACOSX_ARCHS)
  148. # Done checking MacOSX archs
  149. # Check for MacOSX SDK
  150. AC_MSG_CHECKING(for MacOSX SDK)
  151. MACOSX_SDK=
  152. if test -z "$with_macosx_sdk" ; then
  153. AC_MSG_RESULT(no)
  154. else
  155. AC_CHECK_FILE($with_macosx_sdk/SDKSettings.plist, [
  156. MACOSX_SDK="-isysroot $with_macosx_sdk"],[
  157. AC_MSG_ERROR([*** specified SDK does not exist or is not a SDK])])
  158. LDFLAGS="$LDFLAGS $MACOSX_SDK"
  159. CFLAGS="$CFLAGS $MACOSX_SDK"
  160. CXXFLAGS="$CXXFLAGS $MACOSX_SDK"
  161. fi
  162. AC_SUBST(MACOSX_SDK)
  163. # Done checking MacOSX SDK
  164. # Set INST_DIR
  165. if test -n "$MACOSX_APP" ; then
  166. INSTDIR='${prefix}'"/GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.app/Contents/MacOS"
  167. else
  168. INSTDIR='${prefix}'"/grass-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.${GRASS_VERSION_RELEASE}"
  169. fi
  170. AC_SUBST(INSTDIR)
  171. # Get flags for building shared libraries
  172. SC_ENABLE_SHARED
  173. ac_save_ldflags="$LDFLAGS"
  174. SC_CONFIG_CFLAGS
  175. LDFLAGS="${ac_save_ldflags} $LDFLAGS"
  176. # Enable options
  177. AC_ARG_ENABLE(w11,
  178. [ --enable-w11 use W11 library for Windows X11 emulation],,
  179. [enable_w11=no])
  180. # With options
  181. LOC_ARG_WITH(cxx, C++)
  182. #LOC_ARG_WITH(g77, GNU Fortran 77, no)
  183. AC_ARG_WITH(macosx-archs,
  184. [ --with-macosx-archs[=arch list]
  185. compile multiple architectures on MacOSX, ie.
  186. universal. Valid architectures are i386, ppc,
  187. x86_64 and ppc64. (default: no [native])],, with_macosx_archs="no")
  188. AC_ARG_WITH(macosx-sdk,
  189. [ --with-macosx-sdk[=path/sdk]
  190. compile with a system SDK on MacOSX. (default: no)],, with_macosx_sdk="no")
  191. LOC_ARG_WITH(jpeg, JPEG)
  192. LOC_ARG_WITH(tiff, TIFF)
  193. LOC_ARG_WITH(png, PNG)
  194. LOC_ARG_WITH(tcltk, Tcl/Tk)
  195. LOC_ARG_WITH(postgres, PostgreSQL, no)
  196. LOC_ARG_WITH(mysql, MySQL, no)
  197. LOC_ARG_WITH(sqlite, SQLite, no)
  198. LOC_ARG_WITH(ffmpeg, FFMPEG, no)
  199. LOC_ARG_WITH(opengl, OpenGL)
  200. LOC_ARG_WITH(odbc, ODBC, no)
  201. LOC_ARG_WITH(fftw, FFTW)
  202. LOC_ARG_WITH(blas, BLAS, no)
  203. LOC_ARG_WITH(lapack, LAPACK, no)
  204. LOC_ARG_WITH(cairo, Cairo)
  205. LOC_ARG_WITH(freetype, FreeType)
  206. LOC_ARG_WITH(nls, NLS, no)
  207. LOC_ARG_WITH(readline, Readline, no)
  208. LOC_ARG_WITH(opendwg, openDWG, no)
  209. LOC_ARG_WITH(regex, regex)
  210. LOC_ARG_WITH(pthread, POSIX threads, no)
  211. LOC_ARG_WITH(openmp, OpenMP, no)
  212. AC_ARG_WITH(gdal,
  213. [ --with-gdal[=path/gdal-config]
  214. enable GDAL/OGR support (gdal-config with path,
  215. e.g. '--with-gdal=/usr/local/bin/gdal-config')])
  216. AC_ARG_WITH(liblas,
  217. [ --with-liblas[=path/liblas-config]
  218. enable libLAS support (liblas-config with path,
  219. e.g. '--with-liblas=/usr/local/bin/liblas-config',
  220. default: no)],, with_liblas="no")
  221. AC_ARG_WITH(wxwidgets,
  222. [ --with-wxwidgets[=path/wx-config]
  223. enable wxWidgets support (wx-config with path,
  224. e.g. '--with-wxwidgets=/usr/local/bin/wx-config',
  225. default: no)],, with_wxwidgets="no")
  226. # With includes and libs options
  227. AC_ARG_WITH(geos,
  228. [ --with-geos[=path/geos-config]
  229. enable GEOS support (geos-config with path,
  230. e.g. '--with-geos=/usr/local/bin/geos-config',
  231. default: no)],, with_geos="no")
  232. AC_ARG_WITH(includes,
  233. [ --with-includes=DIRS site include files are in DIRS])
  234. AC_ARG_WITH(libs,
  235. [ --with-libs=DIRS site library files are in DIRS])
  236. LOC_ARG_WITH_INC(zlib, zlib)
  237. LOC_ARG_WITH_LIB(zlib, zlib)
  238. LOC_ARG_WITH_INC(readline, Readline)
  239. LOC_ARG_WITH_LIB(readline, Readline)
  240. LOC_ARG_WITH_INC(jpeg, JPEG)
  241. LOC_ARG_WITH_LIB(jpeg, JPEG)
  242. LOC_ARG_WITH_INC(tiff, TIFF)
  243. LOC_ARG_WITH_LIB(tiff, TIFF)
  244. LOC_ARG_WITH_INC(png, PNG)
  245. LOC_ARG_WITH_LIB(png, PNG)
  246. LOC_ARG_WITH_INC(tcltk, Tcl/Tk)
  247. LOC_ARG_WITH_LIB(tcltk, Tcl/Tk)
  248. LOC_ARG_WITH_INC(postgres, PostgreSQL)
  249. LOC_ARG_WITH_LIB(postgres, PostgreSQL)
  250. LOC_ARG_WITH_INC(mysql, MySQL)
  251. LOC_ARG_WITH_LIB(mysql, MySQL)
  252. LOC_ARG_WITH_INC(sqlite, SQLite)
  253. LOC_ARG_WITH_LIB(sqlite, SQLite)
  254. LOC_ARG_WITH_INC(ffmpeg, FFMPEG)
  255. LOC_ARG_WITH_LIB(ffmpeg, FFMPEG)
  256. LOC_ARG_WITH_INC(opengl, OpenGL)
  257. LOC_ARG_WITH_LIB(opengl, OpenGL)
  258. LOC_ARG_WITH_FRAMEWORK(opengl, OpenGL)
  259. LOC_ARG_WITH_INC(odbc, ODBC)
  260. LOC_ARG_WITH_LIB(odbc, ODBC)
  261. LOC_ARG_WITH_INC(fftw, FFTW)
  262. LOC_ARG_WITH_LIB(fftw, FFTW)
  263. LOC_ARG_WITH_INC(blas, BLAS)
  264. LOC_ARG_WITH_LIB(blas, BLAS)
  265. LOC_ARG_WITH_INC(lapack, LAPACK)
  266. LOC_ARG_WITH_LIB(lapack, LAPACK)
  267. LOC_ARG_WITH_INC(cairo, cairo)
  268. LOC_ARG_WITH_LIB(cairo, cairo)
  269. LOC_ARG_WITH_LDFLAGS(cairo, cairo)
  270. LOC_ARG_WITH_INC(freetype, FreeType)
  271. LOC_ARG_WITH_LIB(freetype, FreeType)
  272. LOC_ARG_WITH_INC(proj, External PROJ.4)
  273. LOC_ARG_WITH_LIB(proj, External PROJ.4)
  274. LOC_ARG_WITH_SHARE(proj, External PROJ.4)
  275. LOC_ARG_WITH_INC(opendwg, openDWG)
  276. LOC_ARG_WITH_LIB(opendwg, openDWG)
  277. LOC_ARG_WITH_INC(regex, regex)
  278. LOC_ARG_WITH_LIB(regex, regex)
  279. LOC_ARG_WITH_INC(pthread, POSIX threads)
  280. LOC_ARG_WITH_LIB(pthread, POSIX threads)
  281. LOC_ARG_WITH_INC(openmp, OpenMP)
  282. LOC_ARG_WITH_LIB(openmp, OpenMP)
  283. # Put this early on so CPPFLAGS and LDFLAGS have any additional dirs
  284. # With includes option
  285. # Handle Fortran compiler choice
  286. #LOC_CHECK_USE(g77, GNU Fortran 77, USE_G77)
  287. # Done checking fortran
  288. AC_MSG_CHECKING(for additional include dirs)
  289. case "$with_includes" in
  290. y | ye | yes | n | no)
  291. AC_MSG_ERROR([*** You must supply a directory to list --with-includes.])
  292. ;;
  293. esac
  294. AC_MSG_RESULT($with_includes)
  295. if test -n "$with_includes"; then
  296. for dir in $with_includes; do
  297. if test -d "$dir"; then
  298. INCLUDE_DIRS="$INCLUDE_DIRS -I$dir"
  299. else
  300. AC_MSG_ERROR([*** Include directory $dir does not exist.])
  301. fi
  302. done
  303. CPPFLAGS="$CPPFLAGS $INCLUDE_DIRS"
  304. fi
  305. AC_SUBST(INCLUDE_DIRS)
  306. # With libs option
  307. AC_MSG_CHECKING(for additional library dirs)
  308. case "$with_libs" in
  309. y | ye | yes | n | no)
  310. AC_MSG_ERROR([*** You must supply a directory list to --with-libs.])
  311. ;;
  312. esac
  313. AC_MSG_RESULT($with_libs)
  314. if test -n "$with_libs"; then
  315. for dir in $with_libs; do
  316. if test -d "$dir"; then
  317. LIBRARY_DIRS="$LIBRARY_DIRS -L$dir"
  318. else
  319. AC_MSG_ERROR([*** Library directory $dir does not exist.])
  320. fi
  321. done
  322. LDFLAGS="$LDFLAGS $LIBRARY_DIRS"
  323. fi
  324. AC_SUBST(LIBRARY_DIRS)
  325. # Programs and standard headers, libraries, functions
  326. AC_PROG_INSTALL
  327. AC_PROG_LEX
  328. if test "$LEX" = "lex"; then
  329. AC_PATH_PROG(LEXPATH, lex, no)
  330. if test "$LEXPATH" = "no"; then
  331. AC_MSG_ERROR([*** Unable to locate lex.])
  332. fi
  333. fi
  334. AC_PROG_YACC
  335. if test "$YACC" = "yacc"; then
  336. AC_PATH_PROG(YACCPATH, yacc, no)
  337. if test "$YACCPATH" = "no"; then
  338. AC_MSG_ERROR([*** Unable to locate yacc.])
  339. fi
  340. fi
  341. AC_PROG_RANLIB
  342. AC_CHECK_PROGS(AR, ar)
  343. AC_CHECK_PROGS(ENV, env)
  344. AC_PATH_PROG(PERL, perl, no)
  345. AC_HEADER_STDC
  346. #AC_CHECK_HEADERS(curses.h limits.h termio.h termios.h unistd.h values.h)
  347. AC_CHECK_HEADERS(limits.h termio.h termios.h unistd.h values.h f2c.h g2c.h)
  348. AC_CHECK_HEADERS(sys/ioctl.h sys/mtio.h sys/resource.h sys/time.h)
  349. AC_CHECK_HEADERS(sys/timeb.h sys/types.h sys/utsname.h)
  350. AC_CHECK_HEADERS(libintl.h iconv.h)
  351. AC_CHECK_HEADERS(langinfo.h)
  352. AC_HEADER_TIME
  353. AC_TYPE_OFF_T
  354. AC_TYPE_UID_T
  355. AC_TYPE_SIGNAL
  356. AC_CYGWIN
  357. AC_CHECK_FUNCS(ftime gethostname gettimeofday lseek nice time uname)
  358. AC_CHECK_FUNCS(seteuid setpriority setreuid setruid)
  359. AC_CHECK_FUNCS(drand48)
  360. AC_CHECK_FUNCS(putenv setenv)
  361. AC_CHECK_FUNCS(nanosleep)
  362. if test "$cross_compiling" != "yes" ; then
  363. AC_FUNC_SETPGRP
  364. else
  365. CROSS_COMPILING=1
  366. AC_SUBST(CROSS_COMPILING)
  367. fi
  368. AC_MSG_CHECKING(for long long int)
  369. AC_TRY_COMPILE(,[long long int x;],[
  370. AC_MSG_RESULT(yes)
  371. AC_DEFINE(HAVE_LONG_LONG_INT)
  372. ],[
  373. AC_MSG_RESULT(no)
  374. ])
  375. AC_MSG_CHECKING(for W11)
  376. case "$enable_w11" in
  377. yes|no) AC_MSG_RESULT("$enable_w11") ;;
  378. *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
  379. esac
  380. USE_X11=
  381. USE_W11=
  382. XLIB=
  383. XTLIB=
  384. if test "$enable_w11" = "yes" ; then
  385. X_CFLAGS=-I${SRCDIR}/display/drivers/windows/libW11
  386. X_LIBS='-L$(LIBDIR)'
  387. AC_SUBST(X_CFLAGS)
  388. AC_SUBST(X_LIBS)
  389. USE_W11="1"
  390. USE_X11="1"
  391. XLIB=-lX11
  392. CFLAGS="$CFLAGS -D__W98__"
  393. else
  394. AC_PATH_XTRA
  395. if test "$no_x" != "yes"; then
  396. USE_X11="1"
  397. XLIB=-lX11
  398. XTLIB=-lXt
  399. fi
  400. fi
  401. AC_SUBST(XLIB)
  402. AC_SUBST(XTLIB)
  403. AC_SUBST(USE_X11)
  404. # Note that some systems (FreeBSD for example) need an extra library for
  405. # cuserid
  406. ac_save_libs="$LIBS"
  407. LIBS=""
  408. AC_SEARCH_LIBS(cuserid,[compat])
  409. DBMIEXTRALIB="$LIBS"
  410. LIBS="$ac_save_libs"
  411. AC_SUBST(DBMIEXTRALIB)
  412. # Note: -lxdr -liberty -lws2_32 is for MinGW
  413. AC_CHECK_FUNC(xdrmem_create, XDRLIB=, [
  414. AC_CHECK_LIB(sun, xdrmem_create, XDRLIB=-lsun, [
  415. AC_CHECK_LIB(nsl, xdrmem_create, XDRLIB=-lnsl, [
  416. AC_CHECK_LIB(rpclib, xdrmem_create, XDRLIB=-lrpclib, [
  417. AC_CHECK_LIB(xdr, xdrmem_create, XDRLIB="-lxdr -liberty -lws2_32" ,
  418. [ AC_MSG_ERROR([*** Unable to locate XDR functions.]) ], -liberty -lws2_32 )
  419. ])])])])
  420. AC_SUBST(XDRLIB)
  421. AC_CHECK_FUNCS(asprintf)
  422. AC_SUBST(HAVE_ASPRINTF)
  423. # Test if mathlib needs -lm flag or is included with libc
  424. AC_CHECK_FUNC(atan, MATHLIB=, [
  425. AC_CHECK_LIB(m, atan, MATHLIB=-lm, [
  426. AC_MSG_ERROR([*** Failed check for math library.])
  427. ])])
  428. AC_SUBST(MATHLIB)
  429. AC_CHECK_FUNC(dlsym, DLLIB=, [
  430. AC_CHECK_LIB(dl, dlsym, DLLIB=-ldl, [
  431. DLLIB=
  432. ])])
  433. AC_SUBST(DLLIB)
  434. AC_CHECK_FUNC(iconv, ICONVLIB=, [
  435. AC_CHECK_LIB(iconv, iconv, ICONVLIB=-liconv, [
  436. AC_CHECK_LIB(giconv, iconv, ICONVLIB=-lgiconv, [
  437. AC_CHECK_FUNC(libiconv, ICONVLIB=, [
  438. AC_CHECK_LIB(iconv, libiconv, ICONVLIB=-liconv, [
  439. AC_CHECK_LIB(giconv, libiconv, ICONVLIB=-lgiconv, [
  440. AC_MSG_WARN([*** Unable to locate iconv() function.])
  441. ICONVLIB=
  442. ])])])])])])
  443. AC_SUBST(ICONVLIB)
  444. have_socket=1
  445. AC_CHECK_FUNC(socket, SOCKLIB=, [
  446. AC_CHECK_LIB(socket, socket, SOCKLIB=-lsocket, [
  447. have_socket=0
  448. AC_MSG_WARN([*** Unable to locate socket() function.])
  449. ])])
  450. AC_SUBST(SOCKLIB)
  451. if test "$have_socket" = 1 ; then
  452. HAVE_SOCKET=1
  453. AC_DEFINE(HAVE_SOCKET)
  454. else
  455. HAVE_SOCKET=
  456. fi
  457. AC_SUBST(HAVE_SOCKET)
  458. # Mandatory zlib dependency
  459. ZLIBLIBPATH=
  460. ZLIBINCPATH=
  461. ZLIB=
  462. # With zlib includes directory
  463. LOC_CHECK_INC_PATH(zlib,zlib,ZLIBINCPATH)
  464. LOC_CHECK_INCLUDES(zlib.h,zlib,$ZLIBINCPATH)
  465. # With zlib library directory
  466. LOC_CHECK_LIB_PATH(zlib,zlib,ZLIBLIBPATH)
  467. LOC_CHECK_LIBS(z,deflate,zlib,$ZLIBLIBPATH,ZLIB,,,)
  468. #
  469. AC_SUBST(ZLIBINCPATH)
  470. AC_SUBST(ZLIBLIBPATH)
  471. AC_SUBST(ZLIB)
  472. # Done checking zlib
  473. # Mandatory PROJ dependency
  474. PROJINC=
  475. PROJLIB=
  476. PROJSHARE=
  477. # With PROJ includes directory
  478. LOC_CHECK_INC_PATH(proj,External PROJ.4,PROJINC)
  479. LOC_CHECK_INCLUDES(proj_api.h,External PROJ.4,$PROJINC)
  480. # PROJ version check
  481. if test "$cross_compiling" = yes; then
  482. AC_MSG_WARN([*** Cannot check PROJ.4 version (cross-compiling).])
  483. else
  484. LOC_CHECK_VERSION_INT(proj_api.h,PJ_VERSION,External PROJ.4,proj_ver,$PROJINC,0)
  485. if test `expr "$proj_ver" \< 446` = 1 ; then
  486. AC_MSG_ERROR([*** PROJ.4.4.6 or later is required.])
  487. fi
  488. fi
  489. # With PROJ library directory
  490. LOC_CHECK_LIB_PATH(proj,External PROJ.4,PROJLIB)
  491. LOC_CHECK_LIBS(proj,pj_get_def,External PROJ.4,$PROJLIB,PROJLIB,,,)
  492. # With PROJ share directory
  493. LOC_CHECK_SHARE_PATH(proj,External PROJ.4,PROJSHARE)
  494. if test -z "$PROJSHARE" ; then
  495. AC_MSG_WARN([*** External PROJ.4 directory not specified; default will be used])
  496. PROJSHARE=/usr/local/share/proj
  497. fi
  498. # LOC_CHECK_SHARE does not work when cross compiling
  499. if test "$cross_compiling" = "yes" ; then
  500. AC_MSG_CHECKING([for epsg])
  501. AC_MSG_RESULT([unknown (cross-compiling)])
  502. else
  503. LOC_CHECK_SHARE(epsg,External PROJ.4,$PROJSHARE,[
  504. AC_MSG_WARN([*** Unable to locate PROJ data files.])
  505. ])
  506. fi
  507. AC_SUBST(PROJINC)
  508. AC_SUBST(PROJLIB)
  509. AC_SUBST(PROJSHARE)
  510. # nad2bin needs to be in path for installing datum gridshift files
  511. AC_PATH_PROG(NAD2BIN, nad2bin, no)
  512. if test "$NAD2BIN" = "no"; then
  513. AC_MSG_ERROR([*** Unable to locate nad2bin (needs to be in PATH).])
  514. fi
  515. # Done checking PROJ
  516. # Enable regex option
  517. LOC_CHECK_USE(regex,regex,USE_REGEX)
  518. REGEXINCPATH=
  519. REGEXLIBPATH=
  520. REGEXLIB=
  521. if test -n "$USE_REGEX"; then
  522. # With regex includes directory
  523. LOC_CHECK_INC_PATH(regex,regex,REGEXINCPATH)
  524. LOC_CHECK_INCLUDES(regex.h,regex,$REGEXINCPATH)
  525. # With regex library directory
  526. LOC_CHECK_LIB_PATH(regex,regex,REGEXLIBPATH)
  527. LOC_CHECK_FUNC(regcomp,regex functions,REGEXLIB,,,,,[
  528. LOC_CHECK_LIBS(regex,regcomp,regex,$REGEXLIBPATH,REGEXLIB,,,)
  529. ])
  530. fi # $USE_REGEX
  531. AC_SUBST(REGEXINCPATH)
  532. AC_SUBST(REGEXLIBPATH)
  533. AC_SUBST(REGEXLIB)
  534. AC_SUBST(USE_REGEX)
  535. # Done checking regex
  536. # Enable Readline option
  537. LOC_CHECK_USE(readline,Readline,USE_READLINE)
  538. READLINEINCPATH=
  539. READLINELIBPATH=
  540. READLINELIB=
  541. HISTORYLIB=
  542. if test -n "$USE_READLINE"; then
  543. # With Readline includes directory
  544. LOC_CHECK_INC_PATH(readline,Readline,READLINEINCPATH)
  545. LOC_CHECK_INCLUDES(readline/readline.h,Readline,$READLINEINCPATH)
  546. LOC_CHECK_INCLUDES(readline/history.h,Readline,$READLINEINCPATH)
  547. # With Readline library directory
  548. LOC_CHECK_LIB_PATH(readline,Readline,READLINELIBPATH)
  549. LOC_CHECK_LIBS(readline,readline,Readline,$READLINELIBPATH,READLINELIB,,,)
  550. LOC_CHECK_LIBS(history,add_history,History,$READLINELIBPATH,HISTORYLIB,,,)
  551. fi # $USE_READLINE
  552. AC_SUBST(READLINEINCPATH)
  553. AC_SUBST(READLINELIBPATH)
  554. AC_SUBST(READLINELIB)
  555. AC_SUBST(HISTORYLIB)
  556. # Done checking Readline
  557. # Enable JPEG option
  558. LOC_CHECK_USE(jpeg,JPEG,USE_JPEG)
  559. JPEGINCPATH=
  560. JPEGLIBPATH=
  561. JPEGLIB=
  562. if test -n "$USE_JPEG"; then
  563. # With JPEG includes directory
  564. LOC_CHECK_INC_PATH(jpeg,JPEG,JPEGINCPATH)
  565. LOC_CHECK_INCLUDES(jpeglib.h,JPEG,$JPEGINCPATH)
  566. # With JPEG library directory
  567. LOC_CHECK_LIB_PATH(jpeg,JPEG,JPEGLIBPATH)
  568. LOC_CHECK_LIBS(jpeg,jpeg_start_compress,JPEG,$JPEGLIBPATH,JPEGLIB,,,,$ZLIB)
  569. fi # $USE_JPEG
  570. AC_SUBST(JPEGINCPATH)
  571. AC_SUBST(JPEGLIBPATH)
  572. AC_SUBST(JPEGLIB)
  573. # Done checking JPEG
  574. # GDAL option
  575. AC_MSG_CHECKING(whether to use GDAL)
  576. GDAL_LIBS=
  577. GDAL_CFLAGS=
  578. USE_GDAL=
  579. USE_OGR=
  580. if test "`basename xx/$with_gdal`" = "gdal-config" ; then
  581. GDAL_CONFIG="$with_gdal"
  582. fi
  583. if test "$with_gdal" = "no" ; then
  584. AC_MSG_RESULT(no)
  585. else
  586. AC_MSG_RESULT(yes)
  587. AC_PATH_PROG(GDAL_CONFIG, gdal-config, no)
  588. if test "$GDAL_CONFIG" = "no" ; then
  589. AC_MSG_ERROR([*** couldn't find gdal-config])
  590. fi
  591. if test "$GDAL_CONFIG" != "" ; then
  592. GDAL_LIBS=`"$GDAL_CONFIG" --libs`
  593. GDAL_DEP_LIBS=`"$GDAL_CONFIG" --dep-libs`
  594. GDAL_CFLAGS=`"$GDAL_CONFIG" --cflags`
  595. USE_GDAL=1
  596. if test `"$GDAL_CONFIG" --ogr-enabled` = "yes" ; then
  597. AC_DEFINE(HAVE_OGR)
  598. USE_OGR=1
  599. fi
  600. fi
  601. GDAL=
  602. ac_save_libs="$LIBS"
  603. ac_save_cflags="$CFLAGS"
  604. LIBS="$LIBS $GDAL_LIBS"
  605. CFLAGS="$CFLAGS $GDAL_CFLAGS"
  606. AC_TRY_LINK([#include <gdal.h>],[GDALOpen("foo", GA_ReadOnly);],,[
  607. LIBS="$LIBS $GDAL_DEP_LIBS"
  608. AC_TRY_LINK([#include <gdal.h>],[GDALOpen("foo", GA_ReadOnly);],GDAL_LIBS="$GDAL_LIBS $GDAL_DEP_LIBS",[
  609. AC_MSG_ERROR([*** Unable to locate GDAL library.])
  610. ])
  611. ])
  612. LIBS=${ac_save_libs}
  613. CFLAGS=${ac_save_cflags}
  614. AC_DEFINE(HAVE_GDAL)
  615. fi
  616. AC_SUBST(GDAL_LIBS)
  617. AC_SUBST(GDAL_CFLAGS)
  618. AC_SUBST(USE_GDAL)
  619. AC_SUBST(USE_OGR)
  620. # libLAS option
  621. AC_MSG_CHECKING(whether to use libLAS)
  622. LIBLAS_LIBS=
  623. LIBLAS_CFLAGS=
  624. USE_LIBLAS=
  625. if test "`basename xx/$with_liblas`" = "liblas-config" ; then
  626. LIBLAS_CONFIG="$with_liblas"
  627. fi
  628. if test "$with_liblas" = "no" ; then
  629. AC_MSG_RESULT(no)
  630. else
  631. AC_MSG_RESULT(yes)
  632. AC_PATH_PROG(LIBLAS_CONFIG, liblas-config, no)
  633. if test "$LIBLAS_CONFIG" = "no" ; then
  634. AC_MSG_ERROR([*** couldn't find liblas-config])
  635. fi
  636. if test "$LIBLAS_CONFIG" != "" ; then
  637. LIBLAS_LIBS=`"$LIBLAS_CONFIG" --libs`
  638. LIBLAS_CFLAGS=`"$LIBLAS_CONFIG" --cflags`
  639. LIBLAS_INC=`"$LIBLAS_CONFIG" --includes`
  640. USE_LIBLAS=1
  641. fi
  642. LIBLAS=
  643. ac_save_libs="$LIBS"
  644. ac_save_cflags="$CFLAGS"
  645. LIBS="$LIBS $LIBLAS_LIBS"
  646. CFLAGS="$CFLAGS $LIBLAS_CFLAGS"
  647. AC_TRY_LINK([#include <liblas/capi/liblas.h>],[LASReader_Create("foo");],,[
  648. AC_TRY_LINK([#include <liblas/capi/liblas.h>],[LASReader_Create("foo");],LAS_LIBS="$LAS_LIBS",[
  649. AC_MSG_ERROR([*** Unable to locate libLAS library.])
  650. ])
  651. ])
  652. LIBS=${ac_save_libs}
  653. CFLAGS=${ac_save_cflags}
  654. AC_DEFINE(HAVE_LIBLAS)
  655. fi
  656. AC_SUBST(LIBLAS_LIBS)
  657. AC_SUBST(LIBLAS_CFLAGS)
  658. AC_SUBST(LIBLAS_INC)
  659. AC_SUBST(USE_LIBLAS)
  660. # GEOS option
  661. AC_MSG_CHECKING(whether to use GEOS)
  662. GEOS_LIBS=
  663. GGEOS_CFLAGS=
  664. USE_GEOS=
  665. # FIXME: "quote" $with_geos ?
  666. if test "`basename xx/$with_geos`" = "geos-config" ; then
  667. GEOS_CONFIG="$with_geos"
  668. fi
  669. if test "$with_geos" = "no" ; then
  670. AC_MSG_RESULT(no)
  671. else
  672. AC_MSG_RESULT(yes)
  673. AC_PATH_PROG(GEOS_CONFIG, geos-config, no)
  674. if test "$GEOS_CONFIG" = "no" ; then
  675. AC_MSG_ERROR([*** couldn't find geos-config])
  676. fi
  677. if test "$GEOS_CONFIG" != "" ; then
  678. GEOS_LIBS=`"$GEOS_CONFIG" --libs`
  679. GEOS_CFLAGS=`"$GEOS_CONFIG" --cflags`
  680. USE_GEOS=1
  681. fi
  682. LOC_CHECK_INCLUDES(geos_c.h,GEOS,$GEOS_CFLAGS)
  683. if test "$MINGW32" = yes ; then
  684. LOC_CHECK_LIBS(geos_c_i,initGEOS,GEOS,$GEOS_LIBS,GEOS_LIBS)
  685. else
  686. LOC_CHECK_LIBS(geos_c,initGEOS,GEOS,$GEOS_LIBS,GEOS_LIBS)
  687. fi
  688. AC_DEFINE(HAVE_GEOS)
  689. fi
  690. AC_SUBST(GEOS_LIBS)
  691. AC_SUBST(GEOS_CFLAGS)
  692. AC_SUBST(USE_GEOS)
  693. # Enable TIFF option
  694. LOC_CHECK_USE(tiff,TIFF,USE_TIFF)
  695. TIFF_INCLUDE_DIRS=
  696. TIFF_LIBRARY_DIRS=
  697. TIFFLIB=
  698. if test -n "$USE_TIFF"; then
  699. # With TIFF includes directory
  700. LOC_CHECK_INC_PATH(tiff,TIFF,TIFF_INCLUDE_DIRS)
  701. LOC_CHECK_INCLUDES(tiffio.h,TIFF,$TIFF_INCLUDE_DIRS)
  702. # With TIFF library directory
  703. LOC_CHECK_LIB_PATH(tiff,TIFF,TIFF_LIBRARY_DIRS)
  704. LOC_CHECK_LIBS(tiff,TIFFOpen,TIFF,$TIFF_LIBRARY_DIRS,TIFFLIB,,,,$JPEGLIBPATH $JPEGLIB,$ZLIB,$MATHLIB)
  705. fi # $USE_TIFF
  706. AC_SUBST(TIFF_INCLUDE_DIRS)
  707. AC_SUBST(TIFF_LIBRARY_DIRS)
  708. AC_SUBST(TIFFLIB)
  709. # Done checking TIFF
  710. # Enable PNG option
  711. LOC_CHECK_USE(png,PNG,USE_PNG)
  712. PNGINC=
  713. PNGLIB=
  714. if test -n "$USE_PNG"; then
  715. # With PNG includes directory
  716. LOC_CHECK_INC_PATH(png,PNG,PNGINC)
  717. LOC_CHECK_INCLUDES(png.h,PNG,$PNGINC)
  718. # With PNG library directory
  719. LOC_CHECK_LIB_PATH(png,PNG,PNGLIB)
  720. LOC_CHECK_LIBS(png,png_read_image,PNG,$PNGLIB,PNGLIB,,$ZLIB $MATHLIB,)
  721. fi # $USE_PNG
  722. AC_SUBST(PNGINC)
  723. AC_SUBST(PNGLIB)
  724. AC_SUBST(USE_PNG)
  725. # Done checking PNG
  726. # Enable PostgreSQL option
  727. LOC_CHECK_USE(postgres,PostgreSQL,USE_POSTGRES)
  728. if test -n "$USE_POSTGRES"; then
  729. AC_DEFINE(HAVE_POSTGRES)
  730. fi # $USE_POSTGRES
  731. PQINCPATH=
  732. PQLIBPATH=
  733. PQLIB=
  734. if test -n "$USE_POSTGRES"; then
  735. # With PostgreSQL includes directory
  736. LOC_CHECK_INC_PATH(postgres,PostgreSQL,PQINCPATH)
  737. LOC_CHECK_INCLUDES(libpq-fe.h,PostgreSQL,$PQINCPATH)
  738. fi # $USE_POSTGRES
  739. if test -n "$USE_POSTGRES"; then
  740. # With PostgreSQL library directory
  741. LOC_CHECK_LIB_PATH(postgres,PostgreSQL,PQLIBPATH)
  742. LOC_CHECK_LIBS(pq,PQsetdbLogin,PostgreSQL,$PQLIBPATH,PQLIB,,,,-lcrypt,-lssl -lcrypto)
  743. ac_save_ldflags="$LDFLAGS"
  744. LDFLAGS="$LDFLAGS $PQLIBPATH"
  745. AC_CHECK_LIB(pq,PQcmdTuples, [AC_DEFINE(HAVE_PQCMDTUPLES)], [
  746. AC_CHECK_LIB(pq,PQcmdTuples, [AC_DEFINE(HAVE_PQCMDTUPLES)], [
  747. ], -lcrypt)
  748. ])
  749. LDFLAGS="${ac_save_ldflags}"
  750. fi # $USE_POSTGRES
  751. AC_SUBST(USE_POSTGRES)
  752. AC_SUBST(PQINCPATH)
  753. AC_SUBST(PQLIBPATH)
  754. AC_SUBST(PQLIB)
  755. # Done checking PostgreSQL
  756. # Enable MySQL option
  757. LOC_CHECK_USE(mysql,MySQL,USE_MYSQL)
  758. MYSQLINCPATH=
  759. MYSQLLIBPATH=
  760. MYSQLLIB=
  761. if test -n "$USE_MYSQL"; then
  762. # With MySQL includes directory
  763. LOC_CHECK_INC_PATH(mysql,MySQL,MYSQLINCPATH)
  764. LOC_CHECK_INCLUDES(mysql.h,MySQL,$MYSQLINCPATH)
  765. fi # $USE_MYSQL
  766. if test -n "$USE_MYSQL"; then
  767. # With MySQL library directory
  768. LOC_CHECK_LIB_PATH(mysql,MySQL,MYSQLLIBPATH)
  769. LOC_CHECK_LIBS(mysqlclient,mysql_query,MySQL,$MYSQLLIBPATH,MYSQLLIB,,,,$ZLIB,$SOCKLIB,$MATHLIB)
  770. # Check for libmysqld (for embeded version of the driver)
  771. AC_PATH_PROG(MYSQLD_CONFIG, mysql_config, no)
  772. if test "$MYSQLD_CONFIG" = "no" ; then
  773. AC_MSG_ERROR([*** couldn't find mysql_config])
  774. fi
  775. if test "$MYSQLD_CONFIG" != "" ; then
  776. AC_LANG_SAVE
  777. AC_LANG_CPLUSPLUS
  778. ac_save_libs="$LIBS"
  779. MYSQLDLIB=`"$MYSQLD_CONFIG" --libmysqld-libs`
  780. LIBS="$MYSQLDLIB $LIBS"
  781. AC_CHECK_FUNC(mysql_server_init,,[MYSQLDLIB="";
  782. AC_MSG_WARN([libmysqld not found])] )
  783. LIBS=$ac_save_libs
  784. AC_LANG_C
  785. AC_LANG_RESTORE
  786. fi
  787. fi # $USE_MYSQL
  788. AC_SUBST(USE_MYSQL)
  789. AC_SUBST(MYSQLINCPATH)
  790. AC_SUBST(MYSQLLIBPATH)
  791. AC_SUBST(MYSQLLIB)
  792. AC_SUBST(MYSQLDLIB)
  793. # Done checking MySQL
  794. # Enable SQLite option
  795. LOC_CHECK_USE(sqlite,SQLite,USE_SQLITE)
  796. SQLITEINCPATH=
  797. SQLITELIBPATH=
  798. SQLITELIB=
  799. if test -n "$USE_SQLITE"; then
  800. # With SQLite includes directory
  801. LOC_CHECK_INC_PATH(sqlite,SQLite,SQLITEINCPATH)
  802. LOC_CHECK_INCLUDES(sqlite3.h,SQLite,$SQLITEINCPATH)
  803. AC_DEFINE(HAVE_SQLITE)
  804. fi # $USE_SQLITE
  805. if test -n "$USE_SQLITE"; then
  806. # With SQLite library directory
  807. LOC_CHECK_LIB_PATH(sqlite,SQLite,SQLITELIBPATH)
  808. LOC_CHECK_LIBS(sqlite3,sqlite3_open,SQLite,$SQLITELIBPATH,SQLITELIB,,,,$MATHLIB,$DLLIB)
  809. fi # $USE_SQLITE
  810. AC_SUBST(USE_SQLITE)
  811. AC_SUBST(SQLITEINCPATH)
  812. AC_SUBST(SQLITELIBPATH)
  813. AC_SUBST(SQLITELIB)
  814. # Done checking SQLite
  815. # Enable FFMPEG option
  816. LOC_CHECK_USE(ffmpeg, FFMPEG, USE_FFMPEG)
  817. FFMPEGINCPATH=
  818. FFMPEGLIBPATH=
  819. FFMPEGLIB=
  820. if test -n "$USE_FFMPEG"; then
  821. # With FFMPEG includes directory
  822. LOC_CHECK_INC_PATH(ffmpeg, FFMPEG, FFMPEGINCPATH)
  823. LOC_CHECK_INCLUDES(avcodec.h,FFMPEG,$FFMPEGINCPATH)
  824. LOC_CHECK_INCLUDES(avformat.h,FFMPEG,$FFMPEGINCPATH)
  825. LOC_CHECK_INCLUDES(swscale.h,FFMPEG,$FFMPEGINCPATH)
  826. AC_DEFINE(HAVE_FFMPEG)
  827. fi # $USE_FFMPEG
  828. if test -n "$USE_FFMPEG"; then
  829. # With FFMPEG library directory
  830. LOC_CHECK_LIB_PATH(ffmpeg, FFMPEG, FFMPEGLIBPATH)
  831. LOC_CHECK_LIBS(avutil, av_free, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB,,,,$MATHLIB)
  832. LOC_CHECK_LIBS(avcodec, avcodec_init, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB)
  833. LOC_CHECK_LIBS(avformat, av_set_parameters, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB)
  834. fi # $USE_FFMPEG
  835. AC_SUBST(USE_FFMPEG)
  836. AC_SUBST(FFMPEGINCPATH)
  837. AC_SUBST(FFMPEGLIBPATH)
  838. AC_SUBST(FFMPEGLIB)
  839. # Done checking FFMPEG
  840. # Enable OpenGL option
  841. OPENGLINC=
  842. OPENGLLIB=
  843. OPENGLULIB=
  844. USE_OPENGL=
  845. OPENGL_X11=
  846. OPENGL_AQUA=
  847. OPENGL_WINDOWS=
  848. AC_MSG_CHECKING(whether to use OpenGL)
  849. AC_MSG_RESULT("$with_opengl")
  850. case "$with_opengl" in
  851. n|no)
  852. OPENGL_TYPE=none
  853. ;;
  854. y|yes|x|x11|glx)
  855. OPENGL_TYPE=X11
  856. USE_OPENGL=1
  857. OPENGL_X11=1
  858. ;;
  859. aqua|mac|osx|macosx|agl)
  860. OPENGL_TYPE=Aqua
  861. USE_OPENGL=1
  862. OPENGL_AQUA=1
  863. ;;
  864. win|windows|mswin|wgl)
  865. OPENGL_TYPE=Windows
  866. USE_OPENGL=1
  867. OPENGL_WINDOWS=1
  868. ;;
  869. *)
  870. AC_MSG_ERROR([*** Valid arguments for --with-opengl= are yes,no,x11,aqua,windows.])
  871. ;;
  872. esac
  873. if test -n "$USE_OPENGL" ; then
  874. if test "$OPENGL_X11" = 1 ; then
  875. # With OpenGL includes directory
  876. LOC_CHECK_INC_PATH(opengl,OpenGL,OPENGLINC)
  877. LOC_CHECK_INCLUDES(GL/gl.h GL/glu.h,OpenGL,$OPENGLINC $X_CFLAGS)
  878. # With OpenGL library directory
  879. LOC_CHECK_LIB_PATH(opengl,OpenGL,OPENGL_LIB_PATH)
  880. LOC_CHECK_LIBS(GL,glBegin,OpenGL,$OPENGL_LIB_PATH,OPENGLLIB,$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-lpthread,-lXext)
  881. LOC_CHECK_LIBS(GLU,gluBeginCurve,GLU,$OPENGL_LIB_PATH,OPENGLULIB,$OPENGLLIB $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-lstdc++)
  882. OPENGLLIB="$OPENGL_LIB_PATH $OPENGLLIB"
  883. OPENGLULIB="$OPENGL_LIB_PATH $OPENGLULIB"
  884. LOC_CHECK_FUNC(glXCreatePbuffer,,,,,$OPENGLLIB,[AC_DEFINE(HAVE_PBUFFERS)])
  885. LOC_CHECK_FUNC(glXCreateGLXPixmap,,,,,$OPENGLLIB,[AC_DEFINE(HAVE_PIXMAPS)])
  886. AC_DEFINE(OPENGL_X11)
  887. fi # $OPENGL_X11
  888. if test "$OPENGL_AQUA" = 1 ; then
  889. LOC_CHECK_FRAMEWORK_PATH(opengl,OpenGL,OPENGLPATH)
  890. LOC_CHECK_INCLUDES(OpenGL/gl.h OpenGL/glu.h,OpenGL,$OPENGLPATH)
  891. LOC_CHECK_FUNC(glBegin,OpenGL library,OPENGLLIB,-framework OpenGL -framework AGL -framework ApplicationServices,$OPENGLPATH)
  892. LOC_CHECK_FUNC(gluBeginCurve,GLU library,OPENGLLIB,,$OPENGLPATH,$OPENGLLIB)
  893. OPENGLINC="$OPENGLPATH"
  894. OPENGLLIBPATH="$OPENGLPATH"
  895. AC_DEFINE(OPENGL_AQUA)
  896. fi # $OPENGL_AQUA
  897. if test "$OPENGL_WINDOWS" = 1 ; then
  898. # With OpenGL includes directory
  899. LOC_CHECK_INC_PATH(opengl,OpenGL,OPENGLINC)
  900. LOC_CHECK_INCLUDES(GL/gl.h GL/glu.h,OpenGL,$OPENGLINC)
  901. # With OpenGL library directory
  902. LOC_CHECK_LIB_PATH(opengl,OpenGL,OPENGL_LIB_PATH)
  903. ac_save_cflags="$CFLAGS"
  904. CFLAGS="$CFLAGS $OPENGLINC"
  905. LOC_CHECK_LINK(opengl32,[#include <GL/gl.h>],[glEnd();],OpenGL,$OPENGL_LIB_PATH,OPENGLLIB)
  906. LOC_CHECK_LINK(glu32,[#include <GL/glu.h>],[gluNewQuadric();],GLU,$OPENGL_LIB_PATH,OPENGLULIB,$OPENGLLIB)
  907. CFLAGS="${ac_save_cflags}"
  908. OPENGLLIB="$OPENGL_LIB_PATH $OPENGLLIB"
  909. OPENGLULIB="$OPENGL_LIB_PATH $OPENGLULIB"
  910. AC_DEFINE(OPENGL_WINDOWS)
  911. fi # $OPENGL_WINDOWS
  912. fi # $USE_OPENGL
  913. AC_SUBST(USE_OPENGL)
  914. AC_SUBST(OPENGL_X11)
  915. AC_SUBST(OPENGL_AQUA)
  916. AC_SUBST(OPENGL_WINDOWS)
  917. AC_SUBST(OPENGLINC)
  918. AC_SUBST(OPENGLLIB)
  919. AC_SUBST(OPENGLULIB)
  920. # Done checking OpenGL
  921. # Enable TCLTK option
  922. LOC_CHECK_USE(tcltk,Tcl/Tk,USE_TCLTK)
  923. TCLINCDIR=
  924. TCLTKLIBPATH=
  925. TCLTKLIBS=
  926. if test -n "$USE_TCLTK"; then
  927. # With Tcl/Tk includes directory
  928. LOC_CHECK_INC_PATH(tcltk,Tcl/Tk,TCLINCDIR)
  929. LOC_CHECK_INCLUDES(tcl.h,Tcl,$TCLINCDIR)
  930. LOC_CHECK_INCLUDES(tk.h,Tk,$TCLINCDIR $X_CFLAGS)
  931. # Tcl/Tk version checks
  932. LOC_CHECK_VERSION_STRING(tcl.h,TCL_VERSION,Tcl,tcl_ver,$TCLINCDIR,UNKNOWN)
  933. LOC_CHECK_VERSION_STRING(tk.h,TK_VERSION,Tk,tk_ver,$TCLINCDIR $X_CFLAGS,UNKNOWN)
  934. if test "$tcl_ver" = "$tk_ver" ; then
  935. tcltk_ver="$tcl_ver"
  936. else
  937. AC_MSG_ERROR([*** Tcl/Tk version mismatch.])
  938. fi
  939. # FreeBSD and CygWin don't have a "dot" between major/minor version number
  940. tcltk_ver2=`echo "$tcltk_ver" | sed 's/\.//g'`
  941. # With Tcl/Tk library directory
  942. LOC_CHECK_LIB_PATH(tcltk,Tcl/Tk,TCLTKLIBPATH)
  943. TCLLIB=
  944. TKLIB=
  945. MACOSX_ARCHS_TCLTK=
  946. # Can't test tcl/tk libs on 64bit OSX Aqua for now
  947. # assume that if OpenGL Aqua, then user specifies TclTk Aqua
  948. if test "$OPENGL_AQUA" = 1 ; then
  949. save_CFLAGS="$CFLAGS"
  950. CFLAGS="`echo \"$CFLAGS\" | sed -E 's/-arch +x86_64//g' | sed -E 's/-arch +ppc64//g'`"
  951. save_LDFLAGS="$LDFLAGS"
  952. LDFLAGS="`echo \"$LDFLAGS\" | sed -E 's/-arch +x86_64//g' | sed -E 's/-arch +ppc64//g'`"
  953. fi
  954. LOC_CHECK_LIBS(tcl, Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
  955. LOC_CHECK_LIBS(tcl$tcltk_ver, Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
  956. LOC_CHECK_LIBS(tcl$tcltk_ver2,Tcl_Init,Tcl,$TCLTKLIBPATH,TCLLIB,,$MATHLIB,[
  957. ],$DLLIB)
  958. ],$DLLIB)
  959. ],$DLLIB)
  960. LOC_CHECK_LIBS(tk, Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
  961. LOC_CHECK_LIBS(tk$tcltk_ver, Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
  962. LOC_CHECK_LIBS(tk$tcltk_ver2,Tk_MainWindow,Tk,$TCLTKLIBPATH,TKLIB,$TCLLIB,$MATHLIB,[
  963. ],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
  964. ],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
  965. ],$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
  966. # restore CFLAGS/LDLFAGS from Aqua 64bit strip
  967. # only Tcl/Tk-based makefiles will strip 64bit out during compile
  968. if test "$OPENGL_AQUA" = 1 ; then
  969. CFLAGS="$save_CFLAGS"
  970. LDFLAGS="$save_LDFLAGS"
  971. fi
  972. TCLTKLIBS="$TKLIB $TCLLIB"
  973. # check for available OSX archs in TclTk
  974. if test -n "$MACOSX_ARCHS" ; then
  975. save_LDFLAGS="$LDFLAGS"
  976. LDFLAGS=
  977. save_CFLAGS="$CFLAGS"
  978. CFLAGS=
  979. tlib=`echo "$TCLLIB" | sed -e 's/-l//' -e 's/^ *//' -e 's/ *$//'`
  980. for a in i386 ppc x86_64 ppc64
  981. do
  982. # add only if in MACOSX_ARCHS
  983. AC_CHECK_LIB($tlib, Tcl_Init, [
  984. if test -n "`echo "$MACOSX_ARCHS" | grep $a`" ; then
  985. MACOSX_ARCHS_TCLTK="$MACOSX_ARCHS_TCLTK -arch $a"
  986. fi
  987. ],, -arch $a $MACOSX_SDK $TCLTKLIBPATH)
  988. done
  989. LDFLAGS="$save_LDFLAGS"
  990. CFLAGS="$save_CFLAGS"
  991. fi
  992. AC_DEFINE(HAVE_TCLTK)
  993. fi # $USE_TCLTK
  994. TKINCDIR=$TCLINCDIR
  995. AC_SUBST(USE_TCLTK)
  996. AC_SUBST(TCLINCDIR)
  997. AC_SUBST(TKINCDIR)
  998. AC_SUBST(TCLTKLIBPATH)
  999. AC_SUBST(TCLTKLIBS)
  1000. AC_SUBST(MACOSX_ARCHS_TCLTK)
  1001. # Done checking Tcl/Tk
  1002. # Enable ODBC option
  1003. LOC_CHECK_USE(odbc,ODBC,USE_ODBC)
  1004. ODBCINC=
  1005. ODBCLIB=
  1006. if test -n "$USE_ODBC"; then
  1007. # With ODBC includes directory
  1008. LOC_CHECK_INC_PATH(odbc,ODBC,ODBCINC)
  1009. LOC_CHECK_INCLUDES(sql.h,ODBC,$ODBCINC)
  1010. # With ODBC library directory
  1011. LOC_CHECK_LIB_PATH(odbc,ODBC,ODBCLIB)
  1012. LOC_CHECK_LIBS(odbc,SQLConnect,ODBC,$ODBCLIB,ODBCLIB,$ICONVLIB,,[
  1013. LOC_CHECK_LIBS(iodbc,SQLConnect,ODBC,$ODBCLIB,ODBCLIB,,,[
  1014. ac_save_cflags="$CFLAGS"
  1015. CFLAGS="$CFLAGS $ODBCINC"
  1016. LOC_CHECK_LINK(odbc32,[#include <windows.h>
  1017. #include <sql.h>],[SQLAllocEnv((SQLHENV *)0);],ODBC,$ODBCLIB,ODBCLIB)
  1018. CFLAGS="${ac_save_cflags}"
  1019. ])
  1020. ])
  1021. fi # $USE_ODBC
  1022. AC_SUBST(ODBCINC)
  1023. AC_SUBST(ODBCLIB)
  1024. # Done checking ODBC
  1025. # Enable FFTW option
  1026. LOC_CHECK_USE(fftw,FFTW,USE_FFTW)
  1027. FFTWINC=
  1028. FFTWLIB=
  1029. if test -n "$USE_FFTW"; then
  1030. # With FFTW includes directory
  1031. LOC_CHECK_INC_PATH(fftw,FFTW,FFTWINC)
  1032. LOC_CHECK_INCLUDES(fftw3.h,FFTW,$FFTWINC,[
  1033. LOC_CHECK_INCLUDES(fftw.h,FFTW,,[
  1034. LOC_CHECK_INCLUDES(dfftw.h,FFTW,,)
  1035. ])
  1036. ])
  1037. # With FFTW library directory
  1038. LOC_CHECK_LIB_PATH(fftw,FFTW,FFTWLIB)
  1039. LOC_CHECK_LIBS(fftw3, fftw_execute,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,[
  1040. LOC_CHECK_LIBS(fftw, fftwnd_one,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,[
  1041. LOC_CHECK_LIBS(dfftw,fftwnd_one,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,)
  1042. ])
  1043. ])
  1044. fi # $USE_FFTW
  1045. AC_SUBST(FFTWINC)
  1046. AC_SUBST(FFTWLIB)
  1047. # Done checking FFTW
  1048. # Enable BLAS option
  1049. LOC_CHECK_USE(blas,BLAS,USE_BLAS)
  1050. BLASLIB=
  1051. BLASINC=
  1052. if test -n "$USE_BLAS"; then
  1053. # With BLAS includes directory
  1054. # BLAS doesn't have includes (FORTRAN library)
  1055. # With BLAS library directory
  1056. LOC_CHECK_INC_PATH(blas, BLAS, BLASINC)
  1057. LOC_CHECK_LIB_PATH(blas, BLAS, BLASLIB)
  1058. # See if cblas.h exists (CBLAS,ATLAS,others)
  1059. save_CPPFLAGS="$CPPFLAGS"
  1060. CPPFLAGS="$BLASINC $CPPFLAGS"
  1061. AC_CHECK_HEADERS(cblas.h)
  1062. CPPFLAGS="$save_CPPFLAGS"
  1063. LOC_CHECK_LIBS(blas,dnrm2_,BLAS,$BLASLIB,BLASLIB,$MATHLIB,,,-lg2c)
  1064. blas_ok=no
  1065. # Check for ATLAS
  1066. save_LDFLAGS="$LDFLAGS"
  1067. LDFLAGS="$BLASLIB $LDFLAGS"
  1068. AC_CHECK_LIB(atlas, ATL_xerbla,
  1069. [AC_CHECK_LIB(f77blas, sgemm_,
  1070. [AC_CHECK_LIB(cblas, cblas_dgemm,
  1071. [blas_ok=yes; BLASLIB="-lcblas -lf77blas -latlas"],
  1072. [],[-lf77blas -latlas])],
  1073. [],[-latlas])]
  1074. )
  1075. LDFLAGS="$save_LDFLAGS"
  1076. # Do we have ATLAS?
  1077. if test $blas_ok = yes; then
  1078. AC_DEFINE(HAVE_LIBATLAS)
  1079. fi
  1080. # BLAS in Apple vecLib framework? (Mac OS-X)
  1081. # not dependent on APP build
  1082. #if test -n "$MACOSX_APP"; then
  1083. if test $blas_ok = no; then
  1084. vlib_flags="-framework vecLib"
  1085. save_LIBS="$LIBS"
  1086. LIBS="$vlib_flags $LIBS"
  1087. AC_MSG_CHECKING([for sgemm in $vlib_flags])
  1088. AC_TRY_LINK([], [sgemm], [blas_ok=yes; BLASLIB="$vlib_flags"], [BLASLIB=""])
  1089. AC_MSG_RESULT($blas_ok)
  1090. LIBS="$save_LIBS"
  1091. fi
  1092. #fi # $MACOSX_APP
  1093. # BLAS in PhiPACK libraries? (requires generic BLAS, too)
  1094. if test $blas_ok = no; then
  1095. AC_CHECK_LIB(blas, sgemm_,
  1096. [AC_CHECK_LIB(dgemm, dgemm_,
  1097. [AC_CHECK_LIB(sgemm, sgemm_,
  1098. [blas_ok=yes; BLASLIB="-lsgemm -ldgemm -lblas"],
  1099. [], [-lblas])],
  1100. [], [-lblas])]
  1101. )
  1102. fi
  1103. # BLAS in Sun Performance library?
  1104. if test $blas_ok = no; then
  1105. if test "x$GCC" != xyes; then # only works with Sun CC
  1106. AC_CHECK_LIB(sunmath, acosp,
  1107. [AC_CHECK_LIB(sunperf, sgemm_,
  1108. [blas_ok=yes; BLASLIB="-xlic_lib=sunperf -lsunmath"],
  1109. [], [-lsunmath])]
  1110. )
  1111. fi
  1112. fi
  1113. # Generic BLAS library
  1114. if test $blas_ok = no; then
  1115. AC_CHECK_LIB(blas, sgemm_, [blas_ok=yes; BLASLIB="-lblas"])
  1116. fi
  1117. if test $blas_ok = yes; then
  1118. AC_DEFINE(HAVE_LIBBLAS)
  1119. fi
  1120. fi # $USE_BLAS
  1121. AC_SUBST(BLASLIB)
  1122. AC_SUBST(BLASINC)
  1123. # Done checking BLAS
  1124. # Enable LAPACK option
  1125. LOC_CHECK_USE(lapack,LAPACK,USE_LAPACK)
  1126. LAPACKLIB=
  1127. LAPACKINC=
  1128. # LAPACK is useless without BLAS
  1129. if test -n "$USE_BLAS"; then
  1130. if test -n "$USE_LAPACK"; then
  1131. # With LAPACK includes directory
  1132. # LAPACK doesn't have includes (FORTRAN library)
  1133. # With LAPACK library directory
  1134. lapack_ok=no
  1135. LOC_CHECK_INC_PATH(lapack, LAPACK, LAPACKINC)
  1136. LOC_CHECK_LIB_PATH(lapack, LAPACK, LAPACKLIB)
  1137. # See if clapack.h exists (ATLAS)
  1138. save_CPPFLAGS="$CPPFLAGS"
  1139. CPPFLAGS="$LAPACKINC $CPPFLAGS"
  1140. AC_CHECK_HEADERS(clapack.h)
  1141. CPPFLAGS="$save_CPPFLAGS"
  1142. # LAPACK linked to by default?
  1143. if test lapack_ok=no; then
  1144. save_LIBS="$LIBS"; LIBS="$LIBS $BLASLIB $MATHLIB $FLIBS"
  1145. save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LAPACKLIB $LDFLAGS"
  1146. AC_CHECK_FUNC(dsegv_, [lapack_ok=yes])
  1147. LIBS="$save_LIBS"
  1148. LDFLAGS="$save_LDFLAGS"
  1149. fi
  1150. # Generic LAPACK library?
  1151. if test $lapack_ok = no; then
  1152. save_libs="$LIBS"; LIBS="$BLASLIB $MATHLIB $LIBS"
  1153. save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LAPACKLIB $LDFLAGS"
  1154. AC_CHECK_LIB(lapack, desgv_,
  1155. [lapack_ok=yes; LAPACKLIB="-llapack"], [], [$FLIBS])
  1156. LIBS="$save_LIBS"
  1157. LDFLAGS="$save_LDFLAGS"
  1158. fi
  1159. if test $lapack_ok = no; then
  1160. LOC_CHECK_LIBS(lapack,dgesv_,LAPACK,$LAPACKLIB,LAPACKLIB,$BLASLIB $MATHLIB,,,-lg2c)
  1161. fi
  1162. AC_DEFINE(HAVE_LIBLAPACK)
  1163. fi # $USE_LAPACK
  1164. fi # $USE_BLAS
  1165. AC_SUBST(LAPACKLIB)
  1166. AC_SUBST(LAPACKINC)
  1167. # Done checking LAPACK
  1168. # Enable Cairo display driver option
  1169. LOC_CHECK_USE(cairo,Cairo,USE_CAIRO)
  1170. CAIROINC=
  1171. CAIROLIB=
  1172. if test -n "$USE_CAIRO"; then
  1173. cairo="cairo"
  1174. pkgs="cairo-ft cairo-fc cairo-pdf cairo-ps cairo-svg"
  1175. if test -n "$USE_X11"; then
  1176. pkgs="$pkgs cairo-xlib cairo-xlib-xrender"
  1177. fi
  1178. for pkg in $pkgs ; do
  1179. if pkg-config --exists $pkg ; then
  1180. cairo="$cairo $pkg"
  1181. fi
  1182. done
  1183. # With Cairo includes directory
  1184. #FIXME: somehow quote dirs with spaces in $cairo ?
  1185. CAIROINC=`pkg-config --cflags $cairo`
  1186. LOC_CHECK_INC_PATH(cairo,cairo,CAIROINC)
  1187. LOC_CHECK_INCLUDES(cairo.h,Cairo,$CAIROINC)
  1188. # With Cairo library directory
  1189. CAIROLIB=`pkg-config --libs $cairo`
  1190. LOC_CHECK_LIB_PATH(cairo,cairo,CAIROLIB)
  1191. LOC_CHECK_LDFLAGS(cairo,cairo,CAIROLIB)
  1192. LOC_CHECK_FUNC(cairo_create,,,,,$CAIROLIB,[:])
  1193. LOC_CHECK_FUNC(cairo_xlib_surface_create_with_xrender_format,,,,,$CAIROLIB,
  1194. [CAIRO_HAS_XRENDER=1],[CAIRO_HAS_XRENDER=])
  1195. AC_SUBST(CAIRO_HAS_XRENDER)
  1196. LOC_CHECK_FUNC(cairo_xlib_surface_get_xrender_format,,,,,$CAIROLIB,
  1197. [CAIRO_HAS_XRENDER_SURFACE=1],[CAIRO_HAS_XRENDER_SURFACE=])
  1198. AC_SUBST(CAIRO_HAS_XRENDER_SURFACE)
  1199. CAIROLIB="$CAIROLIB $CAIROLDFLAGS"
  1200. fi # $USE_CAIRO
  1201. AC_SUBST(CAIROINC)
  1202. AC_SUBST(CAIROLIB)
  1203. AC_SUBST(USE_CAIRO)
  1204. # Done checking Cairo
  1205. # Enable FreeType option
  1206. LOC_CHECK_USE(freetype,FreeType,USE_FREETYPE)
  1207. FTINC=
  1208. FTLIB=
  1209. if test -n "$USE_FREETYPE"; then
  1210. # With FreeType includes directory
  1211. LOC_CHECK_INC_PATH(freetype,FreeType,FTINC)
  1212. LOC_CHECK_INCLUDES(ft2build.h,FreeType,$FTINC)
  1213. # With FreeType library directory
  1214. LOC_CHECK_LIB_PATH(freetype,FreeType,FTLIB)
  1215. LOC_CHECK_LIBS(freetype,FT_Init_FreeType,FreeType,$FTLIB,FTLIB,,,)
  1216. fi # $USE_FREETYPE
  1217. AC_SUBST(FTINC)
  1218. AC_SUBST(FTLIB)
  1219. # Done checking FreeType
  1220. # Enable NLS option
  1221. LOC_CHECK_USE(nls,NLS,USE_NLS)
  1222. INTLLIB=
  1223. HAVE_NLS=
  1224. if test -n "${USE_NLS}" ; then
  1225. AC_DEFINE(USE_NLS)
  1226. AC_CHECK_FUNC(gettext, INTLLIB=, [
  1227. AC_CHECK_LIB(intl, gettext, INTLLIB=-lintl, [
  1228. AC_MSG_ERROR([*** Unable to locate gettext() function.])
  1229. ])])
  1230. HAVE_NLS=1
  1231. fi
  1232. AC_SUBST(INTLLIB)
  1233. AC_SUBST(HAVE_NLS)
  1234. # Enable C++ option
  1235. LOC_CHECK_USE(cxx,C++,USE_CXX)
  1236. if test -n "$USE_CXX"; then
  1237. AC_PROG_CXX
  1238. else
  1239. CXX=
  1240. CXXFLAGS=
  1241. AC_SUBST(CXX)
  1242. AC_SUBST(CXXFLAGS)
  1243. fi
  1244. # Done checking C++
  1245. # Enable openDWG option
  1246. LOC_CHECK_USE(opendwg,openDWG,USE_OPENDWG)
  1247. OPENDWGINCPATH=
  1248. OPENDWGLIBPATH=
  1249. OPENDWGLIB=
  1250. if test -n "${USE_OPENDWG}"; then
  1251. # With OPENDWG includes directory
  1252. LOC_CHECK_INC_PATH(opendwg,openDGW,OPENDWGINCPATH)
  1253. LOC_CHECK_INCLUDES(ad2.h,openDWG,$OPENDWGINCPATH)
  1254. # With OPENDWG library directory
  1255. LOC_CHECK_LIB_PATH(opendwg,openDWG,OPENDWGLIBPATH)
  1256. #search for ad2.a, ad3.a ... in openDWG toolkit directory:
  1257. #FIX ME how to program this test??
  1258. #LOC_CHECK_LIBS(ad?.a,adSeekLayer,openDWG,$OPENDWGLIBPATH,OPENDWGLIB,,)
  1259. #
  1260. #for now hack (but working):
  1261. TRUEOPENDWGLIBPATH=`echo "$OPENDWGLIBPATH" | cut -b3-`
  1262. adlib=`ls -1 "$TRUEOPENDWGLIBPATH"/ad?.a | tail -1`
  1263. OPENDWGLIB="$adlib"
  1264. fi # $USE_OPENDWG
  1265. AC_SUBST(OPENDWGINCPATH)
  1266. AC_SUBST(OPENDWGLIBPATH)
  1267. AC_SUBST(OPENDWGLIB)
  1268. AC_SUBST(USE_OPENDWG)
  1269. # Done checking OPENDWG
  1270. # Enable pthread option
  1271. LOC_CHECK_USE(pthread,POSIX threads,USE_PTHREAD)
  1272. PTHREADINCPATH=
  1273. PTHREADLIBPATH=
  1274. PTHREADLIB=
  1275. if test -n "$USE_PTHREAD"; then
  1276. # With pthread includes directory
  1277. LOC_CHECK_INC_PATH(pthread,POSIX threads,PTHREADINCPATH)
  1278. LOC_CHECK_INCLUDES(pthread.h,POSIX threads,$PTHREADINCPATH)
  1279. # With pthread library directory
  1280. LOC_CHECK_LIB_PATH(pthread,POSIX threads,PTHREADLIBPATH)
  1281. LOC_CHECK_FUNC(pthread_create,POSIX threads functions,PTHREADLIB,,,,,[
  1282. LOC_CHECK_LIBS(pthread,pthread_create,POSIX threads,$PTHREADLIBPATH,PTHREADLIB,,,)
  1283. ])
  1284. fi # $USE_PTHREAD
  1285. AC_SUBST(PTHREADINCPATH)
  1286. AC_SUBST(PTHREADLIBPATH)
  1287. AC_SUBST(PTHREADLIB)
  1288. AC_SUBST(USE_PTHREAD)
  1289. # Done checking pthread
  1290. # Enable OpenMP option
  1291. LOC_CHECK_USE(openmp,OpenMP,USE_OPENMP)
  1292. OMPINCPATH=
  1293. OMPLIBPATH=
  1294. OMPLIB=
  1295. OMPCFLAGS=
  1296. if test -n "$USE_OPENMP"; then
  1297. # With OpenMP includes directory
  1298. LOC_CHECK_INC_PATH(openmp,OpenMP,OMPINCPATH)
  1299. LOC_CHECK_INCLUDES(omp.h,OpenMP,$OMPINCPATH)
  1300. # With OpenMP library directory
  1301. # GCC et al.: -lgomp
  1302. # Solaris cc: -lmtsk
  1303. # AIX xlc: -lxlsmp
  1304. # SGI IRIX 6.5 MIPSpro C/C++: -lmp
  1305. LOC_CHECK_LIB_PATH(gomp,OpenMP,OMPLIBPATH)
  1306. LOC_CHECK_FUNC(GOMP_parallel_start,OpenMP functions,OMPLIB,,,,,[
  1307. LOC_CHECK_LIBS(gomp,GOMP_parallel_start,OpenMP,$OMPLIBPATH,OMPLIB,,,)
  1308. ])
  1309. # compiler dependent
  1310. #if test ${CC} = "gcc" ; then
  1311. if test x$GCC = xyes ; then
  1312. # GNU C compiler (>= 4.2.1)
  1313. OMPCFLAGS=-fopenmp
  1314. elif test ${CC} = "icc" ; then
  1315. # Intel compiler
  1316. OMPCFLAGS=-openmp
  1317. elif test ${CC} = "opencc" ; then
  1318. # AMD's x86 Open64 compiler
  1319. OMPCFLAGS=-mp
  1320. elif test ${CC} = "pgcc" ; then
  1321. # Portland Group's compiler
  1322. OMPCFLAGS=-mp
  1323. # ... anybody else?
  1324. fi
  1325. # try to build a test program with "$CC $OMPCLFAGS" to confirm it works
  1326. #...how?
  1327. #echo "int main() {return 0;}" > test.c
  1328. #$CC $OMPCLFAGS test.c -o test
  1329. fi # $USE_OPENMP
  1330. AC_SUBST(OMPINCPATH)
  1331. AC_SUBST(OMPLIBPATH)
  1332. AC_SUBST(OMPLIB)
  1333. AC_SUBST(OMPCFLAGS)
  1334. AC_SUBST(USE_OPENMP)
  1335. # Done checking OpenMP
  1336. # Enable LFS (from cdr-tools)
  1337. dnl Check for large file support
  1338. dnl Do this last to make sure that no large file definition
  1339. dnl in confdefs.h will modify our results
  1340. AC_SYS_LARGEFILE
  1341. dnl Warning do not run this test. it interferes with the test
  1342. dnl AC_CHECK_FUNCS(fseeko ftello) from above.
  1343. dnl The test AC_HAVE_LARGEFILES will check whether ftello/fseeko
  1344. dnl are available in Large File mode
  1345. AC_FUNC_FSEEKO
  1346. AC_HAVE_LARGEFILES
  1347. USE_LARGEFILES=
  1348. if test $ac_cv_largefiles = yes; then
  1349. USE_LARGEFILES=1
  1350. fi
  1351. AC_SUBST(USE_LARGEFILES)
  1352. # Done large file support
  1353. # Enable wxWidgets support (for wxGUI)
  1354. AC_MSG_CHECKING(whether to use wxWidgets)
  1355. WXVERSION=
  1356. WXWIDGETSCXXFLAGS=
  1357. WXWIDGETSCPPFLAGS=
  1358. WXWIDGETSLIB=
  1359. USE_WXWIDGETS=
  1360. MACOSX_ARCHS_WXPYTHON=
  1361. if test "$with_wxwidgets" = "no" ; then
  1362. AC_MSG_RESULT(no)
  1363. else
  1364. AC_MSG_RESULT(yes)
  1365. USE_WXWIDGETS="1"
  1366. if test "$with_wxwidgets" != "yes" ; then
  1367. WX_CONFIG="$with_wxwidgets"
  1368. fi
  1369. AC_PATH_PROG(WX_CONFIG, wx-config, no)
  1370. if test "$WX_CONFIG" = "no" ; then
  1371. AC_MSG_ERROR([*** couldn't find wx-config
  1372. wxWidgets must be installed on your system.
  1373. Please check that wx-config is in path, the directory
  1374. where wxWidgets libraries are installed (returned by
  1375. 'wx-config --libs' or 'wx-config --static --libs' command)
  1376. is in LD_LIBRARY_PATH or equivalent variable and
  1377. wxWidgets version is 2.8.1 or above.])
  1378. fi
  1379. # Check wxWidgets version
  1380. REQWX="2.8.1"
  1381. AC_MSG_CHECKING([wxWidgets version])
  1382. if WXVERSION=`"$WX_CONFIG" --version`; then
  1383. AC_MSG_RESULT([$WXVERSION])
  1384. else
  1385. AC_MSG_RESULT([not found])
  1386. AC_MSG_ERROR([wxWidgets is required.])
  1387. fi
  1388. if test `expr "$WXVERSION" \< "$REQWX"` = 1 ; then
  1389. AC_MSG_ERROR([*** wxWidgets "$REQWX" or later is required.])
  1390. fi
  1391. # With wxWidgets includes directory
  1392. WXWIDGETSCXXFLAGS=`"$WX_CONFIG" --cxxflags`
  1393. WXWIDGETSCPPFLAGS=`"$WX_CONFIG" --cppflags`
  1394. LOC_CHECK_INCLUDES(wx/wxprec.h,wxWidgets,$WXWIDGETSCPPFLAGS)
  1395. # With wxWidgets library directory
  1396. WXWIDGETSLIB=`"$WX_CONFIG" --libs`
  1397. # shouldn't have arch flags in C/LD flags on OSX
  1398. for a in i386 ppc x86_64 ppc64
  1399. do
  1400. WXWIDGETSCXXFLAGS=`echo "$WXWIDGETSCXXFLAGS" | sed "s/-arch *$a//g"`
  1401. WXWIDGETSCPPFLAGS=`echo "$WXWIDGETSCPPFLAGS" | sed "s/-arch *$a//g"`
  1402. WXWIDGETSLIB=`echo "$WXWIDGETSLIB" | sed "s/-arch *$a//g"`
  1403. done
  1404. # check for available OSX archs in wxPython
  1405. if test -n "$MACOSX_ARCHS" ; then
  1406. wxver=`"$WX_CONFIG" --version`
  1407. wxlib=`"$WX_CONFIG" --prefix`/lib/lib`"$WX_CONFIG" --basename`-`echo "$wxver" | cut -d . -f1,2`.dylib
  1408. wxlibinfo=`file "$wxlib"`
  1409. for a in i386 ppc x86_64 ppc64
  1410. do
  1411. # add only if in MACOSX_ARCHS
  1412. if test -n "`echo \"$wxlibinfo\" | grep \"library $a\"`" ; then
  1413. if test -n "`echo \"$MACOSX_ARCHS\" | grep $a`" ; then
  1414. MACOSX_ARCHS_WXPYTHON="$MACOSX_ARCHS_WXPYTHON -arch $a"
  1415. fi
  1416. fi
  1417. done
  1418. fi
  1419. fi # $USE_WXWIDGETS
  1420. AC_SUBST(WXVERSION)
  1421. AC_SUBST(WXWIDGETSCXXFLAGS)
  1422. AC_SUBST(WXWIDGETSCPPFLAGS)
  1423. AC_SUBST(WXWIDGETSLIB)
  1424. AC_SUBST(USE_WXWIDGETS)
  1425. AC_SUBST(MACOSX_ARCHS_WXPYTHON)
  1426. # Done checking wxWidgets
  1427. USE_TERMIO=
  1428. AC_SUBST(USE_TERMIO)
  1429. STRIPFLAG=
  1430. AC_SUBST(STRIPFLAG)
  1431. GRASS_HOME="${DSTDIR}"
  1432. AC_SUBST(GRASS_HOME)
  1433. AC_OUTPUT(include/Make/Platform.make include/Make/Doxyfile_arch_html include/Make/Doxyfile_arch_latex include/version.h grass.pc)
  1434. LOC_MSG([Copying config.status to config.status.${ARCH}])
  1435. cp -f config.status config.status.${ARCH}
  1436. # Display configuration status
  1437. USE_TOGL=
  1438. if test -n "${USE_TCLTK}" -a -n "${USE_OPENGL}" ; then
  1439. USE_TOGL="1"
  1440. fi
  1441. LOC_MSG()
  1442. LOC_MSG([GRASS is now configured for: ${host}])
  1443. LOC_MSG()
  1444. LOC_MSG([ Source directory: ${SRCDIR}])
  1445. LOC_MSG([ Build directory: ${DSTDIR}])
  1446. LOC_MSG([ Installation directory: ${INSTDIR}])
  1447. LOC_MSG([ Startup script in directory: ${bindir}])
  1448. LOC_MSG([ C compiler: ${CC} ${CFLAGS}])
  1449. LOC_MSG([ C++ compiler: ${CXX} ${CXXFLAGS}])
  1450. #LOC_MSG([ FORTRAN compiler: ${F77} ${FFLAGS}])
  1451. LOC_MSG([ Building shared libraries: ${shared_ok}])
  1452. LOC_MSG([ OpenGL platform: ${OPENGL_TYPE}])
  1453. LOC_MSG()
  1454. LOC_MSG_USE(MacOSX application,MACOSX_APP)
  1455. LOC_MSG([ MacOSX architectures: ${MACOSX_ARCHS}])
  1456. LOC_MSG([ MacOSX SDK: ${MACOSX_SDK}])
  1457. LOC_MSG()
  1458. LOC_MSG_USE(Tcl/Tk NVIZ,USE_TOGL)
  1459. LOC_MSG()
  1460. LOC_MSG_USE(BLAS support,USE_BLAS)
  1461. LOC_MSG_USE(C++ support,USE_CXX)
  1462. LOC_MSG_USE(Cairo support,USE_CAIRO)
  1463. LOC_MSG_USE(DWG support,USE_OPENDWG)
  1464. LOC_MSG_USE(FFMPEG support,USE_FFMPEG)
  1465. LOC_MSG_USE(FFTW support,USE_FFTW)
  1466. LOC_MSG_USE(FreeType support,USE_FREETYPE)
  1467. LOC_MSG_USE(GDAL support,USE_GDAL)
  1468. LOC_MSG_USE(GEOS support,USE_GEOS)
  1469. LOC_MSG_USE(JPEG support,USE_JPEG)
  1470. LOC_MSG_USE(LAPACK support,USE_LAPACK)
  1471. LOC_MSG_USE(Large File support (LFS), USE_LARGEFILES)
  1472. LOC_MSG_USE(libLAS support,USE_LIBLAS)
  1473. LOC_MSG_USE(MySQL support,USE_MYSQL)
  1474. LOC_MSG_USE(NLS support,USE_NLS)
  1475. LOC_MSG_USE(ODBC support,USE_ODBC)
  1476. LOC_MSG_USE(OGR support,USE_OGR)
  1477. LOC_MSG_USE(OpenGL support,USE_OPENGL)
  1478. LOC_MSG_USE(OpenMP support,USE_OPENMP)
  1479. LOC_MSG_USE(PNG support,USE_PNG)
  1480. LOC_MSG_USE(POSIX thread support,USE_PTHREAD)
  1481. LOC_MSG_USE(PostgreSQL support,USE_POSTGRES)
  1482. LOC_MSG_USE(Readline support,USE_READLINE)
  1483. LOC_MSG_USE(Regex support,USE_REGEX)
  1484. LOC_MSG_USE(SQLite support,USE_SQLITE)
  1485. LOC_MSG_USE(TIFF support,USE_TIFF)
  1486. LOC_MSG_USE(Tcl/Tk support,USE_TCLTK)
  1487. LOC_MSG_USE(wxWidgets support,USE_WXWIDGETS)
  1488. LOC_MSG_USE(X11 support,USE_X11)
  1489. LOC_MSG()