configure.in 47 KB

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