configure.in 47 KB

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