configure.in 128 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874
  1. dnl Autoconf script for GNU Emacs
  2. dnl To rebuild the `configure' script from this, execute the command
  3. dnl autoconf
  4. dnl in the directory containing this script.
  5. dnl If you changed any AC_DEFINES, also run autoheader.
  6. dnl
  7. dnl Copyright (C) 1994-1996, 1999-2012 Free Software Foundation, Inc.
  8. dnl
  9. dnl This file is part of GNU Emacs.
  10. dnl
  11. dnl GNU Emacs is free software: you can redistribute it and/or modify
  12. dnl it under the terms of the GNU General Public License as published by
  13. dnl the Free Software Foundation, either version 3 of the License, or
  14. dnl (at your option) any later version.
  15. dnl
  16. dnl GNU Emacs is distributed in the hope that it will be useful,
  17. dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. dnl GNU General Public License for more details.
  20. dnl
  21. dnl You should have received a copy of the GNU General Public License
  22. dnl along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
  23. AC_PREREQ(2.65)
  24. AC_INIT(emacs, 24.2)
  25. AC_CONFIG_HEADER(src/config.h:src/config.in)
  26. AC_CONFIG_SRCDIR(src/lisp.h)
  27. AC_CONFIG_AUX_DIR(build-aux)
  28. AM_INIT_AUTOMAKE
  29. dnl Support for --program-prefix, --program-suffix and
  30. dnl --program-transform-name options
  31. AC_ARG_PROGRAM
  32. dnl It is important that variables on the RHS not be expanded here,
  33. dnl hence the single quotes. This is per the GNU coding standards, see
  34. dnl (autoconf) Installation Directory Variables
  35. dnl See also epaths.h below.
  36. lispdir='${datadir}/emacs/${version}/lisp'
  37. locallisppath='${datadir}/emacs/${version}/site-lisp:'\
  38. '${datadir}/emacs/site-lisp'
  39. lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
  40. etcdir='${datadir}/emacs/${version}/etc'
  41. archlibdir='${libexecdir}/emacs/${version}/${configuration}'
  42. docdir='${datadir}/emacs/${version}/etc'
  43. gamedir='${localstatedir}/games/emacs'
  44. dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
  45. dnl Create a new --with option that defaults to being disabled.
  46. dnl NAME is the base name of the option. The shell variable with_NAME
  47. dnl will be set to either the user's value (if the option is
  48. dnl specified; 'yes' for a plain --with-NAME) or to 'no' (if the
  49. dnl option is not specified). Note that the shell variable name is
  50. dnl constructed as autoconf does, by replacing non-alphanumeric
  51. dnl characters with "_".
  52. dnl HELP-STRING is the help text for the option.
  53. AC_DEFUN([OPTION_DEFAULT_OFF], [dnl
  54. AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[],[dnl
  55. m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=no])dnl
  56. ])dnl
  57. dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
  58. dnl Create a new --with option that defaults to being enabled. NAME
  59. dnl is the base name of the option. The shell variable with_NAME
  60. dnl will be set either to 'no' (for a plain --without-NAME) or to
  61. dnl 'yes' (if the option is not specified). Note that the shell
  62. dnl variable name is constructed as autoconf does, by replacing
  63. dnl non-alphanumeric characters with "_".
  64. dnl HELP-STRING is the help text for the option.
  65. AC_DEFUN([OPTION_DEFAULT_ON], [dnl
  66. AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[],[dnl
  67. m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=yes])dnl
  68. ])dnl
  69. OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail])
  70. if test "$with_pop" = yes; then
  71. AC_DEFINE(MAIL_USE_POP)
  72. fi
  73. AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
  74. OPTION_DEFAULT_OFF([kerberos],[support Kerberos-authenticated POP])
  75. if test "$with_kerberos" != no; then
  76. AC_DEFINE(KERBEROS)
  77. fi
  78. AH_TEMPLATE(KERBEROS,
  79. [Define to support Kerberos-authenticated POP mail retrieval.])dnl
  80. OPTION_DEFAULT_OFF([kerberos5],[support Kerberos version 5 authenticated POP])
  81. if test "${with_kerberos5}" != no; then
  82. if test "${with_kerberos}" = no; then
  83. with_kerberos=yes
  84. AC_DEFINE(KERBEROS)
  85. fi
  86. AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
  87. fi
  88. OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host])
  89. dnl FIXME hesiod support may not be present, so it seems like an error
  90. dnl to define, or at least use, this unconditionally.
  91. if test "$with_hesiod" != no; then
  92. AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
  93. fi
  94. OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
  95. if test "$with_mmdf" != no; then
  96. AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
  97. fi
  98. OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
  99. if test "$with_mail_unlink" != no; then
  100. AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
  101. fi
  102. AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME],
  103. [string giving default POP mail host])],
  104. AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.]))
  105. OPTION_DEFAULT_ON([sound],[don't compile with sound support])
  106. OPTION_DEFAULT_ON([sync-input],[process async input synchronously])
  107. if test "$with_sync_input" = yes; then
  108. AC_DEFINE(SYNC_INPUT, 1, [Process async input synchronously.])
  109. fi
  110. dnl FIXME currently it is not the last.
  111. dnl This should be the last --with option, because --with-x is
  112. dnl added later on when we find the path of X, and it's best to
  113. dnl keep them together visually.
  114. AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
  115. [use an X toolkit (KIT one of: yes or gtk, gtk3, lucid or athena, motif, no)])],
  116. [ case "${withval}" in
  117. y | ye | yes ) val=gtk ;;
  118. n | no ) val=no ;;
  119. l | lu | luc | luci | lucid ) val=lucid ;;
  120. a | at | ath | athe | athen | athena ) val=athena ;;
  121. m | mo | mot | moti | motif ) val=motif ;;
  122. g | gt | gtk ) val=gtk ;;
  123. gtk3 ) val=gtk3 ;;
  124. * )
  125. AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
  126. this option's value should be `yes', `no', `lucid', `athena', `motif', `gtk' or
  127. `gtk3'. `yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
  128. ;;
  129. esac
  130. with_x_toolkit=$val
  131. ])
  132. OPTION_DEFAULT_OFF([wide-int], [prefer wide Emacs integers (typically 62-bit)])
  133. if test "$with_wide_int" = yes; then
  134. AC_DEFINE([WIDE_EMACS_INT], 1, [Use long long for EMACS_INT if available.])
  135. fi
  136. dnl _ON results in a '--without' option in the --help output, so
  137. dnl the help text should refer to "don't compile", etc.
  138. OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
  139. OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
  140. OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
  141. OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
  142. OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
  143. OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
  144. OPTION_DEFAULT_ON([xml2],[don't compile with XML parsing support])
  145. OPTION_DEFAULT_ON([imagemagick],[don't compile with ImageMagick image support])
  146. OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts])
  147. OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
  148. OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
  149. OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
  150. OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
  151. OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
  152. OPTION_DEFAULT_OFF([ns],[use NeXTstep (Cocoa or GNUstep) windowing system])
  153. OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
  154. OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
  155. OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
  156. OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support])
  157. OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
  158. OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
  159. ## For the times when you want to build Emacs but don't have
  160. ## a suitable makeinfo, and can live without the manuals.
  161. dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
  162. OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
  163. ## Makefile.in needs the cache file name.
  164. AC_SUBST(cache_file)
  165. ## This is an option because I do not know if all info/man support
  166. ## compressed files, nor how to test if they do so.
  167. OPTION_DEFAULT_ON([compress-info],[don't compress the installed Info pages])
  168. if test $with_compress_info = yes; then
  169. GZIP_INFO=yes
  170. else
  171. GZIP_INFO=
  172. fi
  173. AC_SUBST(GZIP_INFO)
  174. AC_ARG_WITH([pkg-config-prog],dnl
  175. [AS_HELP_STRING([--with-pkg-config-prog=PATH],
  176. [path to pkg-config for finding GTK and librsvg])])
  177. if test "X${with_pkg_config_prog}" != X; then
  178. if test "${with_pkg_config_prog}" != yes; then
  179. PKG_CONFIG="${with_pkg_config_prog}"
  180. fi
  181. fi
  182. CRT_DIR=
  183. AC_ARG_WITH([crt-dir],dnl
  184. [AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
  185. The default is /usr/lib, or /usr/lib64 on some platforms.])])
  186. CRT_DIR="${with_crt_dir}"
  187. AC_ARG_WITH(gameuser,dnl
  188. [AS_HELP_STRING([--with-gameuser=USER],[user for shared game score files])])
  189. test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \
  190. && gameuser="${with_gameuser}"
  191. test "X$gameuser" = X && gameuser=games
  192. AC_ARG_WITH([gnustep-conf],dnl
  193. [AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
  194. test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
  195. GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
  196. test "X$GNUSTEP_CONFIG_FILE" = "X" && \
  197. GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
  198. AC_ARG_ENABLE(ns-self-contained,
  199. [AS_HELP_STRING([--disable-ns-self-contained],
  200. [disable self contained build under NeXTstep])],
  201. EN_NS_SELF_CONTAINED=$enableval,
  202. EN_NS_SELF_CONTAINED=yes)
  203. AC_ARG_ENABLE(asserts,
  204. [AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
  205. USE_XASSERTS=$enableval,
  206. USE_XASSERTS=no)
  207. AC_ARG_ENABLE(maintainer-mode,
  208. [AS_HELP_STRING([--disable-maintainer-mode],
  209. [disable make rules and dependencies not useful (and sometimes
  210. confusing) to the casual installer])],
  211. USE_MAINTAINER_MODE=$enableval,
  212. USE_MAINTAINER_MODE=yes)
  213. if test $USE_MAINTAINER_MODE = yes; then
  214. MAINT=
  215. else
  216. MAINT=#
  217. fi
  218. AC_SUBST(MAINT)
  219. AC_ARG_ENABLE(locallisppath,
  220. [AS_HELP_STRING([--enable-locallisppath=PATH],
  221. [directories Emacs should search for lisp files specific
  222. to this site])],
  223. if test "${enableval}" = "no"; then
  224. locallisppath=
  225. elif test "${enableval}" != "yes"; then
  226. locallisppath=${enableval}
  227. fi)
  228. AC_ARG_ENABLE(checking,
  229. [AS_HELP_STRING([--enable-checking@<:@=LIST@:>@],
  230. [enable expensive run-time checks. With LIST,
  231. enable only specific categories of checks.
  232. Categories are: all,yes,no.
  233. Flags are: stringbytes, stringoverrun, stringfreelist,
  234. xmallocoverrun, conslist])],
  235. [ac_checking_flags="${enableval}"],[])
  236. IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
  237. for check in $ac_checking_flags
  238. do
  239. case $check in
  240. # these set all the flags to specific states
  241. yes) ac_enable_checking=1 ;;
  242. no) ac_enable_checking= ;
  243. ac_gc_check_stringbytes= ;
  244. ac_gc_check_string_overrun= ;
  245. ac_gc_check_string_free_list= ;
  246. ac_xmalloc_overrun= ;
  247. ac_gc_check_cons_list= ;;
  248. all) ac_enable_checking=1 ;
  249. ac_gc_check_stringbytes=1 ;
  250. ac_gc_check_string_overrun=1 ;
  251. ac_gc_check_string_free_list=1 ;
  252. ac_xmalloc_overrun=1 ;
  253. ac_gc_check_cons_list=1 ;;
  254. # these enable particular checks
  255. stringbytes) ac_gc_check_stringbytes=1 ;;
  256. stringoverrun) ac_gc_check_string_overrun=1 ;;
  257. stringfreelist) ac_gc_check_string_free_list=1 ;;
  258. xmallocoverrun) ac_xmalloc_overrun=1 ;;
  259. conslist) ac_gc_check_cons_list=1 ;;
  260. *) AC_MSG_ERROR(unknown check category $check) ;;
  261. esac
  262. done
  263. IFS="$ac_save_IFS"
  264. if test x$ac_enable_checking != x ; then
  265. AC_DEFINE(ENABLE_CHECKING, 1,
  266. [Enable expensive run-time checking of data types?])
  267. fi
  268. if test x$ac_gc_check_stringbytes != x ; then
  269. AC_DEFINE(GC_CHECK_STRING_BYTES, 1,
  270. [Define this temporarily to hunt a bug. If defined, the size of
  271. strings is redundantly recorded in sdata structures so that it can
  272. be compared to the sizes recorded in Lisp strings.])
  273. fi
  274. if test x$ac_gc_check_string_overrun != x ; then
  275. AC_DEFINE(GC_CHECK_STRING_OVERRUN, 1,
  276. [Define this to check for short string overrun.])
  277. fi
  278. if test x$ac_gc_check_string_free_list != x ; then
  279. AC_DEFINE(GC_CHECK_STRING_FREE_LIST, 1,
  280. [Define this to check the string free list.])
  281. fi
  282. if test x$ac_xmalloc_overrun != x ; then
  283. AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1,
  284. [Define this to check for malloc buffer overrun.])
  285. fi
  286. if test x$ac_gc_check_cons_list != x ; then
  287. AC_DEFINE(GC_CHECK_CONS_LIST, 1,
  288. [Define this to check for errors in cons list.])
  289. fi
  290. AC_ARG_ENABLE(use-lisp-union-type,
  291. [AS_HELP_STRING([--enable-use-lisp-union-type],
  292. [use a union for the Lisp_Object data type.
  293. This is only useful for development for catching certain types of bugs.])],
  294. if test "${enableval}" != "no"; then
  295. AC_DEFINE(USE_LISP_UNION_TYPE, 1,
  296. [Define this to use a lisp union for the Lisp_Object data type.])
  297. fi)
  298. AC_ARG_ENABLE(profiling,
  299. [AS_HELP_STRING([--enable-profiling],
  300. [build emacs with profiling support.
  301. This might not work on all platforms])],
  302. [ac_enable_profiling="${enableval}"],[])
  303. if test x$ac_enable_profiling != x ; then
  304. PROFILING_CFLAGS="-DPROFILING=1 -pg"
  305. else
  306. PROFILING_CFLAGS=
  307. fi
  308. AC_SUBST(PROFILING_CFLAGS)
  309. AC_ARG_ENABLE(autodepend,
  310. [AS_HELP_STRING([--enable-autodepend],
  311. [automatically generate dependencies to .h-files.
  312. Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
  313. found])],
  314. [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
  315. #### Make srcdir absolute, if it isn't already. It's important to
  316. #### avoid running the path through pwd unnecessarily, since pwd can
  317. #### give you automounter prefixes, which can go away. We do all this
  318. #### so Emacs can find its files when run uninstalled.
  319. ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
  320. unset CDPATH
  321. case "${srcdir}" in
  322. /* ) ;;
  323. . )
  324. ## We may be able to use the $PWD environment variable to make this
  325. ## absolute. But sometimes PWD is inaccurate.
  326. ## Note: we used to use ${PWD} at the end instead of `pwd`,
  327. ## but that tested only for a well-formed and valid PWD,
  328. ## it did not object when PWD was well-formed and valid but just wrong.
  329. if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`" ;
  330. then
  331. srcdir="$PWD"
  332. else
  333. srcdir="`(cd ${srcdir}; pwd)`"
  334. fi
  335. ;;
  336. * ) srcdir="`(cd ${srcdir}; pwd)`" ;;
  337. esac
  338. #### Given the configuration name, set machfile and opsysfile to the
  339. #### names of the m/*.h and s/*.h files we should use.
  340. ### Canonicalize the configuration name.
  341. AC_CANONICAL_HOST
  342. canonical=$host
  343. configuration=${host_alias-${build_alias-$host}}
  344. dnl This used to use changequote, but, apart from `changequote is evil'
  345. dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
  346. dnl the great gob of text. Thus it's not processed for possible expansion.
  347. dnl Just make sure the brackets remain balanced.
  348. dnl
  349. dnl Since Emacs can't find matching pairs of quotes, boundaries are
  350. dnl indicated by comments.
  351. dnl quotation begins
  352. [
  353. ### If you add support for a new configuration, add code to this
  354. ### switch statement to recognize your configuration name and select
  355. ### the appropriate operating system and machine description files.
  356. ### You would hope that you could choose an m/*.h file pretty much
  357. ### based on the machine portion of the configuration name, and an s/*.h
  358. ### file based on the operating system portion. However, it turns out
  359. ### that each m/*.h file is pretty manufacturer-specific - for
  360. ### example mips.h is MIPS
  361. ### So we basically have to have a special case for each
  362. ### configuration name.
  363. ###
  364. ### As far as handling version numbers on operating systems is
  365. ### concerned, make sure things will fail in a fixable way. If
  366. ### /etc/MACHINES doesn't say anything about version numbers, be
  367. ### prepared to handle anything reasonably. If version numbers
  368. ### matter, be sure /etc/MACHINES says something about it.
  369. machine='' opsys='' unported=no
  370. case "${canonical}" in
  371. ## GNU/Linux and similar ports
  372. *-*-linux* )
  373. opsys=gnu-linux
  374. case ${canonical} in
  375. alpha*) machine=alpha ;;
  376. s390x-*) machine=ibms390x ;;
  377. powerpc*) machine=macppc ;;
  378. sparc*) machine=sparc ;;
  379. ia64*) machine=ia64 ;;
  380. m68k*) machine=m68k ;;
  381. x86_64*) machine=amdx86-64 ;;
  382. esac
  383. ;;
  384. ## FreeBSD ports
  385. *-*-freebsd* )
  386. opsys=freebsd
  387. case "${canonical}" in
  388. alpha*) machine=alpha ;;
  389. amd64-*|x86_64-*) machine=amdx86-64 ;;
  390. ia64-*) machine=ia64 ;;
  391. i[3456]86-*) machine=intel386 ;;
  392. powerpc-*) machine=macppc ;;
  393. sparc-*) machine=sparc ;;
  394. sparc64-*) machine=sparc ;;
  395. esac
  396. ;;
  397. ## FreeBSD kernel + glibc based userland
  398. *-*-kfreebsd*gnu* )
  399. opsys=gnu-kfreebsd
  400. case "${canonical}" in
  401. alpha*) machine=alpha ;;
  402. amd64-*|x86_64-*) machine=amdx86-64 ;;
  403. ia64-*) machine=ia64 ;;
  404. i[3456]86-*) machine=intel386 ;;
  405. powerpc-*) machine=macppc ;;
  406. sparc-*) machine=sparc ;;
  407. sparc64-*) machine=sparc ;;
  408. esac
  409. ;;
  410. ## NetBSD ports
  411. *-*-netbsd* )
  412. opsys=netbsd
  413. case "${canonical}" in
  414. alpha*) machine=alpha ;;
  415. x86_64-*) machine=amdx86-64 ;;
  416. i[3456]86-*) machine=intel386 ;;
  417. m68k-*) machine=m68k ;;
  418. powerpc-*) machine=macppc ;;
  419. sparc*-) machine=sparc ;;
  420. vax-*) machine=vax ;;
  421. esac
  422. ;;
  423. ## OpenBSD ports
  424. *-*-openbsd* )
  425. opsys=openbsd
  426. case "${canonical}" in
  427. alpha*) machine=alpha ;;
  428. x86_64-*) machine=amdx86-64 ;;
  429. i386-*) machine=intel386 ;;
  430. powerpc-*) machine=macppc ;;
  431. sparc*) machine=sparc ;;
  432. vax-*) machine=vax ;;
  433. esac
  434. ;;
  435. ## Apple Darwin / Mac OS X
  436. *-apple-darwin* )
  437. case "${canonical}" in
  438. i[3456]86-* ) machine=intel386 ;;
  439. powerpc-* ) machine=macppc ;;
  440. x86_64-* ) machine=amdx86-64 ;;
  441. * ) unported=yes ;;
  442. esac
  443. opsys=darwin
  444. # Define CPP as follows to make autoconf work correctly.
  445. CPP="${CC-cc} -E -no-cpp-precomp"
  446. # Use fink packages if available.
  447. if test -d /sw/include && test -d /sw/lib; then
  448. GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
  449. CPP="${CPP} ${GCC_TEST_OPTIONS}"
  450. NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
  451. fi
  452. ;;
  453. ## HP 9000 series 700 and 800, running HP/UX
  454. hppa*-hp-hpux10.2* )
  455. opsys=hpux10-20
  456. ;;
  457. hppa*-hp-hpux1[1-9]* )
  458. opsys=hpux11
  459. CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
  460. ;;
  461. ## IBM machines
  462. rs6000-ibm-aix4.[23]* )
  463. machine=ibmrs6000 opsys=aix4-2
  464. ;;
  465. powerpc-ibm-aix4.[23]* )
  466. machine=ibmrs6000 opsys=aix4-2
  467. ;;
  468. rs6000-ibm-aix[56]* )
  469. machine=ibmrs6000 opsys=aix4-2
  470. ;;
  471. powerpc-ibm-aix[56]* )
  472. machine=ibmrs6000 opsys=aix4-2
  473. ;;
  474. ## Silicon Graphics machines
  475. ## Iris 4D
  476. mips-sgi-irix6.5 )
  477. opsys=irix6-5
  478. # Without defining _LANGUAGE_C, things get masked out in the headers
  479. # so that, for instance, grepping for `free' in stdlib.h fails and
  480. # AC_HEADER_STD_C fails. (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
  481. NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
  482. NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
  483. ;;
  484. ## Suns
  485. *-sun-solaris* \
  486. | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
  487. | x86_64-*-solaris2* | x86_64-*-sunos5*)
  488. case "${canonical}" in
  489. i[3456]86-*-* ) machine=intel386 ;;
  490. amd64-*-*|x86_64-*-*) machine=amdx86-64 ;;
  491. sparc* ) machine=sparc ;;
  492. * ) unported=yes ;;
  493. esac
  494. case "${canonical}" in
  495. *-sunos5.6* | *-solaris2.6* )
  496. opsys=sol2-6
  497. NON_GNU_CPP=/usr/ccs/lib/cpp
  498. RANLIB="ar -ts"
  499. ;;
  500. *-sunos5.[7-9]* | *-solaris2.[7-9]* )
  501. opsys=sol2-6
  502. emacs_check_sunpro_c=yes
  503. NON_GNU_CPP=/usr/ccs/lib/cpp
  504. ;;
  505. *-sunos5* | *-solaris* )
  506. opsys=sol2-10
  507. emacs_check_sunpro_c=yes
  508. NON_GNU_CPP=/usr/ccs/lib/cpp
  509. ;;
  510. esac
  511. ## Watch out for a compiler that we know will not work.
  512. case "${canonical}" in
  513. *-solaris* | *-sunos5* )
  514. if [ "x$CC" = x/usr/ucb/cc ]; then
  515. ## /usr/ucb/cc doesn't work;
  516. ## we should find some other compiler that does work.
  517. unset CC
  518. fi
  519. ;;
  520. *) ;;
  521. esac
  522. ;;
  523. ## Intel 386 machines where we don't care about the manufacturer.
  524. i[3456]86-*-* )
  525. machine=intel386
  526. case "${canonical}" in
  527. *-cygwin ) opsys=cygwin ;;
  528. *-darwin* ) opsys=darwin
  529. CPP="${CC-cc} -E -no-cpp-precomp"
  530. ;;
  531. *-sysv4.2uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
  532. *-sysv5uw* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
  533. *-sysv5OpenUNIX* ) opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
  534. ## Otherwise, we'll fall through to the generic opsys code at the bottom.
  535. esac
  536. ;;
  537. * )
  538. unported=yes
  539. ;;
  540. esac
  541. ### If the code above didn't choose an operating system, just choose
  542. ### an operating system based on the configuration name. You really
  543. ### only want to use this when you have no idea what the right
  544. ### operating system is; if you know what operating systems a machine
  545. ### runs, it's cleaner to make it explicit in the case statement
  546. ### above.
  547. if test x"${opsys}" = x; then
  548. case "${canonical}" in
  549. *-gnu* ) opsys=gnu ;;
  550. * )
  551. unported=yes
  552. ;;
  553. esac
  554. fi
  555. ]
  556. dnl quotation ends
  557. if test $unported = yes; then
  558. AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
  559. Check `etc/MACHINES' for recognized configuration names.])
  560. fi
  561. if test -n "$machine"; then
  562. machfile="m/${machine}.h"
  563. else
  564. machfile=
  565. fi
  566. opsysfile="s/${opsys}.h"
  567. #### Choose a compiler.
  568. test -n "$CC" && cc_specified=yes
  569. # Save the value of CFLAGS that the user specified.
  570. SPECIFIED_CFLAGS="$CFLAGS"
  571. dnl Sets GCC=yes if using gcc.
  572. AC_PROG_CC
  573. AM_PROG_CC_C_O
  574. # Initialize gnulib right after verifying that the C compiler works.
  575. gl_EARLY
  576. # On Suns, sometimes $CPP names a directory.
  577. if test -n "$CPP" && test -d "$CPP"; then
  578. CPP=
  579. fi
  580. ## If not using gcc, and on Solaris, and no CPP specified, see if
  581. ## using a Sun compiler, which needs -Xs to prevent whitespace.
  582. if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
  583. test x"$CPP" = x; then
  584. AC_MSG_CHECKING([whether we are using a Sun C compiler])
  585. AC_CACHE_VAL(emacs_cv_sunpro_c,
  586. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
  587. [[#ifndef __SUNPRO_C
  588. fail;
  589. #endif
  590. ]])], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
  591. AC_MSG_RESULT($emacs_cv_sunpro_c)
  592. if test x"$emacs_cv_sunpro_c" = xyes; then
  593. NON_GNU_CPP="$CC -E -Xs"
  594. fi
  595. fi
  596. #### Some systems specify a CPP to use unless we are using GCC.
  597. #### Now that we know whether we are using GCC, we can decide whether
  598. #### to use that one.
  599. if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
  600. then
  601. CPP="$NON_GNU_CPP"
  602. fi
  603. #### Some systems specify a CC to use unless we are using GCC.
  604. #### Now that we know whether we are using GCC, we can decide whether
  605. #### to use that one.
  606. if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
  607. test x$cc_specified != xyes
  608. then
  609. CC="$NON_GNU_CC"
  610. fi
  611. if test x$GCC = xyes; then
  612. test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"
  613. else
  614. test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
  615. fi
  616. ### Use -Wdeclaration-after-statement if the compiler supports it
  617. AC_MSG_CHECKING([whether gcc understands -Wdeclaration-after-statement])
  618. SAVE_CFLAGS="$CFLAGS"
  619. CFLAGS="$CFLAGS -Wdeclaration-after-statement"
  620. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], has_option=yes, has_option=no)
  621. if test $has_option = yes; then
  622. C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
  623. fi
  624. AC_MSG_RESULT($has_option)
  625. CFLAGS="$SAVE_CFLAGS"
  626. unset has_option
  627. unset SAVE_CFLAGS
  628. ### Use -Wold-style-definition if the compiler supports it
  629. # This can be removed when conversion to standard C is finished.
  630. AC_MSG_CHECKING([whether gcc understands -Wold-style-definition])
  631. SAVE_CFLAGS="$CFLAGS"
  632. CFLAGS="$CFLAGS -Wold-style-definition"
  633. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], has_option=yes, has_option=no)
  634. if test $has_option = yes; then
  635. C_WARNINGS_SWITCH="-Wold-style-definition $C_WARNINGS_SWITCH"
  636. fi
  637. AC_MSG_RESULT($has_option)
  638. CFLAGS="$SAVE_CFLAGS"
  639. unset has_option
  640. unset SAVE_CFLAGS
  641. ### Use -Wimplicit-function-declaration if the compiler supports it
  642. AC_MSG_CHECKING([whether gcc understands -Wimplicit-function-declaration])
  643. SAVE_CFLAGS="$CFLAGS"
  644. CFLAGS="$CFLAGS -Wimplicit-function-declaration"
  645. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], has_option=yes, has_option=no)
  646. if test $has_option = yes; then
  647. C_WARNINGS_SWITCH="-Wimplicit-function-declaration $C_WARNINGS_SWITCH"
  648. fi
  649. AC_MSG_RESULT($has_option)
  650. CFLAGS="$SAVE_CFLAGS"
  651. unset has_option
  652. unset SAVE_CFLAGS
  653. AC_SUBST(C_WARNINGS_SWITCH)
  654. #### Some other nice autoconf tests.
  655. dnl checks for programs
  656. AC_PROG_CPP
  657. AC_PROG_INSTALL
  658. if test "x$RANLIB" = x; then
  659. AC_PROG_RANLIB
  660. fi
  661. ## Although we're running on an amd64 kernel, we're actually compiling for
  662. ## the x86 architecture. The user should probably have provided an
  663. ## explicit --build to `configure', but if everything else than the kernel
  664. ## is running in i386 mode, we can help them out.
  665. if test "$machine" = "amdx86-64"; then
  666. AC_CHECK_DECL([i386])
  667. if test "$ac_cv_have_decl_i386" = "yes"; then
  668. canonical=`echo "$canonical" | sed -e 's/^amd64/i386/' -e 's/^x86_64/i386/'`
  669. machine=intel386
  670. machfile="m/${machine}.h"
  671. fi
  672. AC_CHECK_DECL([__ILP32__], [machfile="m/intel386.h"])
  673. fi
  674. AC_PATH_PROG(INSTALL_INFO, install-info)
  675. AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
  676. AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
  677. dnl Don't use GZIP, which is used by gzip for additional parameters.
  678. AC_PATH_PROG(GZIP_PROG, gzip)
  679. ## Need makeinfo >= 4.6 (?) to build the manuals.
  680. AC_PATH_PROG(MAKEINFO, makeinfo, no)
  681. dnl By this stage, configure has already checked for egrep and set EGREP,
  682. dnl or exited with an error if no egrep was found.
  683. if test "$MAKEINFO" != "no" && \
  684. test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[6-9]]|4\.[[1-5]][[0-9]]+)'`" = x; then
  685. MAKEINFO=no
  686. fi
  687. ## Makeinfo is unusual. For a released Emacs, the manuals are
  688. ## pre-built, and not deleted by the normal clean rules. makeinfo is
  689. ## therefore in the category of "special tools" not normally required, which
  690. ## configure does not have to check for (eg autoconf itself).
  691. ## In a Bazaar checkout on the other hand, the manuals are not included.
  692. ## So makeinfo is a requirement to build from Bazaar, and configure
  693. ## should test for it as it does for any other build requirement.
  694. ## We use the presence of $srcdir/info/emacs to distinguish a release,
  695. ## with pre-built manuals, from a Bazaar checkout.
  696. HAVE_MAKEINFO=yes
  697. if test "$MAKEINFO" = "no"; then
  698. MAKEINFO=makeinfo
  699. if test "x${with_makeinfo}" = "xno"; then
  700. HAVE_MAKEINFO=no
  701. elif test ! -e $srcdir/info/emacs; then
  702. AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.6, and your
  703. source tree does not seem to have pre-built manuals in the `info' directory.
  704. Either install a suitable version of makeinfo, or re-run configure
  705. with the `--without-makeinfo' option to build without the manuals.] )
  706. fi
  707. fi
  708. AC_SUBST(HAVE_MAKEINFO)
  709. dnl Add our options to ac_link now, after it is set up.
  710. if test x$GCC = xyes; then
  711. test "x$GCC_LINK_TEST_OPTIONS" != x && \
  712. ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
  713. else
  714. test "x$NON_GCC_LINK_TEST_OPTIONS" != x && \
  715. ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
  716. fi
  717. dnl We need -znocombreloc if we're using a relatively recent GNU ld.
  718. dnl If we can link with the flag, it shouldn't do any harm anyhow.
  719. dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
  720. dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
  721. dnl if not built to support GNU ld.
  722. late_LDFLAGS=$LDFLAGS
  723. if test x$GCC = xyes; then
  724. LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
  725. else
  726. LDFLAGS="$LDFLAGS -znocombreloc"
  727. fi
  728. AC_MSG_CHECKING([for -znocombreloc])
  729. AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
  730. [AC_MSG_RESULT(yes)],
  731. LDFLAGS=$late_LDFLAGS
  732. [AC_MSG_RESULT(no)])
  733. # The value of CPP is a quoted variable reference, so we need to do this
  734. # to get its actual value...
  735. CPP=`eval "echo $CPP"`
  736. dnl The function dump-emacs will not be defined and temacs will do
  737. dnl (load "loadup") automatically unless told otherwise.
  738. test "x$CANNOT_DUMP" = "x" && CANNOT_DUMP=no
  739. case "$opsys" in
  740. your-opsys-here) CANNOT_DUMP=yes ;;
  741. esac
  742. test "$CANNOT_DUMP" = "yes" && \
  743. AC_DEFINE(CANNOT_DUMP, 1, [Define if Emacs cannot be dumped on your system.])
  744. AC_SUBST(CANNOT_DUMP)
  745. UNEXEC_OBJ=unexelf.o
  746. case "$opsys" in
  747. # MSDOS uses unexcoff.o
  748. # MSWindows uses unexw32.o
  749. aix4-2)
  750. UNEXEC_OBJ=unexaix.o
  751. ;;
  752. cygwin)
  753. UNEXEC_OBJ=unexcw.o
  754. ;;
  755. darwin)
  756. UNEXEC_OBJ=unexmacosx.o
  757. ;;
  758. hpux10-20 | hpux11)
  759. UNEXEC_OBJ=unexhp9k800.o
  760. ;;
  761. sol2-10)
  762. # Use the Solaris dldump() function, called from unexsol.c, to dump
  763. # emacs, instead of the generic ELF dump code found in unexelf.c.
  764. # The resulting binary has a complete symbol table, and is better
  765. # for debugging and other observability tools (debuggers, pstack, etc).
  766. #
  767. # If you encounter a problem using dldump(), please consider sending
  768. # a message to the OpenSolaris tools-linking mailing list:
  769. # http://mail.opensolaris.org/mailman/listinfo/tools-linking
  770. #
  771. # It is likely that dldump() works with older Solaris too, but this has
  772. # not been tested, so for now this change is for Solaris 10 or newer.
  773. UNEXEC_OBJ=unexsol.o
  774. ;;
  775. esac
  776. LD_SWITCH_SYSTEM=
  777. case "$opsys" in
  778. freebsd)
  779. ## Let `ld' find image libs and similar things in /usr/local/lib.
  780. ## The system compiler, GCC, has apparently been modified to not
  781. ## look there, contrary to what a stock GCC would do.
  782. LD_SWITCH_SYSTEM=-L/usr/local/lib
  783. ;;
  784. gnu-linux)
  785. ## cpp test was "ifdef __mips__", but presumably this is equivalent...
  786. case $host_cpu in mips*) LD_SWITCH_SYSTEM="-G 0";; esac
  787. ;;
  788. netbsd)
  789. LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib"
  790. ;;
  791. openbsd)
  792. ## Han Boetes <han@mijncomputer.nl> says this is necessary,
  793. ## otherwise Emacs dumps core on elf systems.
  794. LD_SWITCH_SYSTEM="-Z"
  795. ;;
  796. esac
  797. AC_SUBST(LD_SWITCH_SYSTEM)
  798. ac_link="$ac_link $LD_SWITCH_SYSTEM"
  799. ## This setting of LD_SWITCH_SYSTEM references LD_SWITCH_X_SITE_AUX,
  800. ## which has not been defined yet. When this was handled with cpp,
  801. ## it was expanded to null when configure sourced the s/*.h file.
  802. ## Thus LD_SWITCH_SYSTEM had different values in configure and the Makefiles.
  803. ## FIXME it would be cleaner to put this in LD_SWITCH_SYSTEM_TEMACS
  804. ## (or somesuch), but because it is supposed to go at the _front_
  805. ## of LD_SWITCH_SYSTEM, we cannot do that in exactly the same way.
  806. ## Compare with the gnu-linux case below, which added to the end
  807. ## of LD_SWITCH_SYSTEM, and so can instead go at the front of
  808. ## LD_SWITCH_SYSTEM_TEMACS.
  809. case "$opsys" in
  810. netbsd|openbsd)
  811. ## _AUX_RPATH is like _AUX, but uses -rpath instead of -R.
  812. LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_AUX_RPATH) $LD_SWITCH_SYSTEM" ;;
  813. esac
  814. C_SWITCH_MACHINE=
  815. if test "$machine" = "alpha"; then
  816. AC_CHECK_DECL([__ELF__])
  817. if test "$ac_cv_have_decl___ELF__" = "yes"; then
  818. ## With ELF, make sure that all common symbols get allocated to in the
  819. ## data section. Otherwise, the dump of temacs may miss variables in
  820. ## the shared library that have been initialized. For example, with
  821. ## GNU libc, __malloc_initialized would normally be resolved to the
  822. ## shared library's .bss section, which is fatal.
  823. if test "x$GCC" = "xyes"; then
  824. C_SWITCH_MACHINE="-fno-common"
  825. else
  826. AC_MSG_ERROR([What gives? Fix me if DEC Unix supports ELF now.])
  827. fi
  828. else
  829. UNEXEC_OBJ=unexalpha.o
  830. fi
  831. fi
  832. AC_SUBST(C_SWITCH_MACHINE)
  833. AC_SUBST(UNEXEC_OBJ)
  834. C_SWITCH_SYSTEM=
  835. ## Some programs in src produce warnings saying certain subprograms
  836. ## are too complex and need a MAXMEM value greater than 2000 for
  837. ## additional optimization. --nils@exp-math.uni-essen.de
  838. test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
  839. C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
  840. ## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
  841. ## It is redundant in glibc2, since we define _GNU_SOURCE.
  842. AC_SUBST(C_SWITCH_SYSTEM)
  843. LIBS_SYSTEM=
  844. case "$opsys" in
  845. ## IBM's X11R5 uses -lIM and -liconv in AIX 3.2.2.
  846. aix4-2) LIBS_SYSTEM="-lrts -lIM -liconv" ;;
  847. freebsd) LIBS_SYSTEM="-lutil" ;;
  848. hpux*) LIBS_SYSTEM="-l:libdld.sl" ;;
  849. sol2*) LIBS_SYSTEM="-lsocket -lnsl" ;;
  850. ## Motif needs -lgen.
  851. unixware) LIBS_SYSTEM="-lsocket -lnsl -lelf -lgen" ;;
  852. esac
  853. AC_SUBST(LIBS_SYSTEM)
  854. ### Make sure subsequent tests use flags consistent with the build flags.
  855. if test x"${OVERRIDE_CPPFLAGS}" != x; then
  856. CPPFLAGS="${OVERRIDE_CPPFLAGS}"
  857. else
  858. CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
  859. fi
  860. # Suppress obsolescent Autoconf test for size_t; Emacs assumes C89 or better.
  861. AC_DEFUN([AC_TYPE_SIZE_T])
  862. # Likewise for obsolescent test for uid_t, gid_t; Emacs assumes them.
  863. AC_DEFUN([AC_TYPE_UID_T])
  864. dnl Do this early because it can frob feature test macros for Unix-98 &c.
  865. AC_SYS_LARGEFILE
  866. LIB_MATH=-lm
  867. LIB_STANDARD=
  868. START_FILES=
  869. dnl NB do not use CRT_DIR unquoted here, since it might not be set yet.
  870. case $opsys in
  871. cygwin )
  872. LIB_MATH=
  873. START_FILES='pre-crt0.o'
  874. ;;
  875. darwin )
  876. ## Adding -lm confuses the dynamic linker, so omit it.
  877. LIB_MATH=
  878. START_FILES='pre-crt0.o'
  879. ;;
  880. freebsd )
  881. LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
  882. START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
  883. ;;
  884. gnu-linux | gnu-kfreebsd )
  885. LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
  886. START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
  887. ;;
  888. hpux10-20 | hpux11 )
  889. LIB_STANDARD=-lc
  890. START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o'
  891. ;;
  892. dnl NB this may be adjusted below.
  893. netbsd | openbsd )
  894. LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o'
  895. START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o'
  896. ;;
  897. esac
  898. AC_SUBST(LIB_MATH)
  899. AC_SUBST(START_FILES)
  900. dnl Not all platforms use crtn.o files. Check if the current one does.
  901. crt_files=
  902. for file in x $LIB_STANDARD $START_FILES; do
  903. case "$file" in
  904. *CRT_DIR*) crt_files="$crt_files `echo $file | sed -e 's|.*/||'`" ;;
  905. esac
  906. done
  907. if test "x$crt_files" != x; then
  908. ## If user specified a crt-dir, use that unconditionally.
  909. crt_gcc=no
  910. if test "X$CRT_DIR" = "X"; then
  911. CRT_DIR=/usr/lib # default
  912. case "$canonical" in
  913. x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
  914. ## On x86-64 and s390x GNU/Linux distributions, the standard library
  915. ## can be in a variety of places. We only try /usr/lib64 and /usr/lib.
  916. ## For anything else (eg /usr/lib32), it is up the user to specify
  917. ## the location (bug#5655).
  918. ## Test for crtn.o, not just the directory, because sometimes the
  919. ## directory exists but does not have the relevant files (bug#1287).
  920. ## FIXME better to test for binary compatibility somehow.
  921. test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
  922. ;;
  923. powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
  924. esac
  925. case "$opsys" in
  926. hpux10-20) CRT_DIR=/lib ;;
  927. esac
  928. test "x${GCC}" = xyes && crt_gcc=yes
  929. fi # CRT_DIR = ""
  930. crt_missing=
  931. for file in $crt_files; do
  932. ## If we're using gcc, try to determine it automatically by asking
  933. ## gcc. [If this doesn't work, CRT_DIR will remain at the
  934. ## system-dependent default from above.]
  935. if test $crt_gcc = yes && test ! -e $CRT_DIR/$file; then
  936. crt_file=`$CC --print-file-name=$file 2>/dev/null`
  937. case "$crt_file" in
  938. */*)
  939. CRT_DIR=`AS_DIRNAME(["$crt_file"])`
  940. ;;
  941. esac
  942. fi
  943. dnl We expect all the files to be in a single directory, so after the
  944. dnl first there is no point asking gcc.
  945. crt_gcc=no
  946. test -e $CRT_DIR/$file || crt_missing="$crt_missing $file"
  947. done # $crt_files
  948. test "x$crt_missing" = x || \
  949. AC_MSG_ERROR([Required file(s) not found:$crt_missing
  950. Try using the --with-crt-dir option.])
  951. fi # crt_files != ""
  952. AC_SUBST(CRT_DIR)
  953. case $opsys in
  954. netbsd | openbsd )
  955. if test -f $CRT_DIR/crti.o; then
  956. test -f $CRT_DIR/crtn.o || \
  957. AC_MSG_ERROR([Required file not found: crtn.o])
  958. LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
  959. START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
  960. fi
  961. ;;
  962. esac
  963. dnl This function definition taken from Gnome 2.0
  964. dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
  965. dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
  966. dnl also defines GSTUFF_PKG_ERRORS on error
  967. AC_DEFUN([PKG_CHECK_MODULES], [
  968. succeeded=no
  969. AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  970. if test "$PKG_CONFIG" = "no" ; then
  971. ifelse([$4], , [AC_MSG_ERROR([
  972. *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
  973. else
  974. PKG_CONFIG_MIN_VERSION=0.9.0
  975. if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
  976. AC_MSG_CHECKING(for $2)
  977. if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
  978. AC_MSG_RESULT(yes)
  979. succeeded=yes
  980. AC_MSG_CHECKING($1_CFLAGS)
  981. $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
  982. AC_MSG_RESULT($$1_CFLAGS)
  983. AC_MSG_CHECKING($1_LIBS)
  984. $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
  985. AC_MSG_RESULT($$1_LIBS)
  986. else
  987. AC_MSG_RESULT(no)
  988. $1_CFLAGS=""
  989. $1_LIBS=""
  990. ## If we have a custom action on failure, don't print errors, but
  991. ## do set a variable so people can do so.
  992. $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
  993. ifelse([$4], ,echo $$1_PKG_ERRORS,)
  994. fi
  995. AC_SUBST($1_CFLAGS)
  996. AC_SUBST($1_LIBS)
  997. else
  998. echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
  999. echo "*** See http://www.freedesktop.org/software/pkgconfig"
  1000. fi
  1001. fi
  1002. if test $succeeded = yes; then
  1003. ifelse([$3], , :, [$3])
  1004. else
  1005. ifelse([$4], , [AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.])], [$4])
  1006. fi
  1007. ])
  1008. if test "${with_sound}" != "no"; then
  1009. # Sound support for GNU/Linux and the free BSDs.
  1010. AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h,
  1011. have_sound_header=yes)
  1012. # Emulation library used on NetBSD.
  1013. AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
  1014. AC_SUBST(LIBSOUND)
  1015. ALSA_REQUIRED=1.0.0
  1016. ALSA_MODULES="alsa >= $ALSA_REQUIRED"
  1017. PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
  1018. if test $HAVE_ALSA = yes; then
  1019. SAVE_CFLAGS="$CFLAGS"
  1020. SAVE_LIBS="$LIBS"
  1021. CFLAGS="$ALSA_CFLAGS $CFLAGS"
  1022. LIBS="$ALSA_LIBS $LIBS"
  1023. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <asoundlib.h>]], [[snd_lib_error_set_handler (0);]])],
  1024. emacs_alsa_normal=yes,
  1025. emacs_alsa_normal=no)
  1026. if test "$emacs_alsa_normal" != yes; then
  1027. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <alsa/asoundlib.h>]],
  1028. [[snd_lib_error_set_handler (0);]])],
  1029. emacs_alsa_subdir=yes,
  1030. emacs_alsa_subdir=no)
  1031. if test "$emacs_alsa_subdir" != yes; then
  1032. AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.])
  1033. fi
  1034. ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
  1035. fi
  1036. CFLAGS="$SAVE_CFLAGS"
  1037. LIBS="$SAVE_LIBS"
  1038. LIBSOUND="$LIBSOUND $ALSA_LIBS"
  1039. CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
  1040. AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
  1041. fi
  1042. dnl Define HAVE_SOUND if we have sound support. We know it works and
  1043. dnl compiles only on the specified platforms. For others, it
  1044. dnl probably doesn't make sense to try.
  1045. if test x$have_sound_header = xyes || test $HAVE_ALSA = yes; then
  1046. case "$opsys" in
  1047. dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
  1048. gnu-linux|freebsd|netbsd)
  1049. AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.])
  1050. ;;
  1051. esac
  1052. fi
  1053. AC_SUBST(CFLAGS_SOUND)
  1054. fi
  1055. dnl checks for header files
  1056. AC_CHECK_HEADERS(sys/select.h sys/time.h unistd.h utime.h \
  1057. linux/version.h sys/systeminfo.h \
  1058. stdio_ext.h fcntl.h coff.h pty.h sys/mman.h \
  1059. sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
  1060. sys/utsname.h pwd.h utmp.h dirent.h util.h)
  1061. AC_MSG_CHECKING(if personality LINUX32 can be set)
  1062. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/personality.h>]], [[personality (PER_LINUX32)]])],
  1063. emacs_cv_personality_linux32=yes,
  1064. emacs_cv_personality_linux32=no)
  1065. AC_MSG_RESULT($emacs_cv_personality_linux32)
  1066. if test $emacs_cv_personality_linux32 = yes; then
  1067. AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
  1068. [Define to 1 if personality LINUX32 can be set.])
  1069. fi
  1070. dnl On Solaris 8 there's a compilation warning for term.h because
  1071. dnl it doesn't define `bool'.
  1072. AC_CHECK_HEADERS(term.h, , , -)
  1073. AC_HEADER_TIME
  1074. AC_CHECK_DECLS([sys_siglist])
  1075. if test $ac_cv_have_decl_sys_siglist != yes; then
  1076. # For Tru64, at least:
  1077. AC_CHECK_DECLS([__sys_siglist])
  1078. if test $ac_cv_have_decl___sys_siglist = yes; then
  1079. AC_DEFINE(sys_siglist, __sys_siglist,
  1080. [Define to any substitute for sys_siglist.])
  1081. fi
  1082. fi
  1083. AC_HEADER_SYS_WAIT
  1084. dnl Some systems have utime.h but don't declare the struct anyplace.
  1085. AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
  1086. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef TIME_WITH_SYS_TIME
  1087. #include <sys/time.h>
  1088. #include <time.h>
  1089. #else
  1090. #ifdef HAVE_SYS_TIME_H
  1091. #include <sys/time.h>
  1092. #else
  1093. #include <time.h>
  1094. #endif
  1095. #endif
  1096. #ifdef HAVE_UTIME_H
  1097. #include <utime.h>
  1098. #endif]], [[static struct utimbuf x; x.actime = x.modtime;]])],
  1099. emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
  1100. if test $emacs_cv_struct_utimbuf = yes; then
  1101. AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
  1102. fi
  1103. dnl Check for speed_t typedef.
  1104. AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
  1105. [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <termios.h>]], [[speed_t x = 1;]])],
  1106. emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
  1107. if test $emacs_cv_speed_t = yes; then
  1108. AC_DEFINE(HAVE_SPEED_T, 1,
  1109. [Define to 1 if `speed_t' is declared by <termios.h>.])
  1110. fi
  1111. AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
  1112. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef TIME_WITH_SYS_TIME
  1113. #include <sys/time.h>
  1114. #include <time.h>
  1115. #else
  1116. #ifdef HAVE_SYS_TIME_H
  1117. #include <sys/time.h>
  1118. #else
  1119. #include <time.h>
  1120. #endif
  1121. #endif]], [[static struct timeval x; x.tv_sec = x.tv_usec;]])],
  1122. emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
  1123. HAVE_TIMEVAL=$emacs_cv_struct_timeval
  1124. if test $emacs_cv_struct_timeval = yes; then
  1125. AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
  1126. fi
  1127. AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
  1128. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]],
  1129. [[static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;]])],
  1130. emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
  1131. HAVE_EXCEPTION=$emacs_cv_struct_exception
  1132. if test $emacs_cv_struct_exception != yes; then
  1133. AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
  1134. fi
  1135. AC_CHECK_HEADERS(sys/socket.h)
  1136. AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
  1137. #if HAVE_SYS_SOCKET_H
  1138. #include <sys/socket.h>
  1139. #endif])
  1140. AC_CHECK_HEADERS(ifaddrs.h, , , [AC_INCLUDES_DEFAULT
  1141. #if HAVE_SYS_SOCKET_H
  1142. #include <sys/socket.h>
  1143. #endif])
  1144. AC_CHECK_HEADERS(net/if_dl.h, , , [AC_INCLUDES_DEFAULT
  1145. #if HAVE_SYS_SOCKET_H
  1146. #include <sys/socket.h>
  1147. #endif])
  1148. AC_CHECK_FUNCS(getifaddrs freeifaddrs)
  1149. dnl checks for structure members
  1150. AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
  1151. struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
  1152. struct ifreq.ifr_addr,
  1153. struct ifreq.ifr_addr.sa_len], , ,
  1154. [AC_INCLUDES_DEFAULT
  1155. #if HAVE_SYS_SOCKET_H
  1156. #include <sys/socket.h>
  1157. #endif
  1158. #if HAVE_NET_IF_H
  1159. #include <net/if.h>
  1160. #endif])
  1161. dnl checks for compiler characteristics
  1162. dnl Testing __STDC__ to determine prototype support isn't good enough.
  1163. dnl DEC C, for instance, doesn't define it with default options, and
  1164. dnl is used on 64-bit systems (OSF Alphas). Similarly for volatile
  1165. dnl and void *.
  1166. AC_C_PROTOTYPES
  1167. AC_C_VOLATILE
  1168. AC_C_CONST
  1169. AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
  1170. [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[void * foo;]])],
  1171. emacs_cv_void_star=yes, emacs_cv_void_star=no)])
  1172. if test $emacs_cv_void_star = yes; then
  1173. AC_DEFINE(POINTER_TYPE, void)
  1174. else
  1175. AC_DEFINE(POINTER_TYPE, char)
  1176. fi
  1177. AH_TEMPLATE(POINTER_TYPE,
  1178. [Define as `void' if your compiler accepts `void *'; otherwise
  1179. define as `char'.])dnl
  1180. dnl Check for endianness.
  1181. AC_C_BIGENDIAN
  1182. AC_CACHE_CHECK([for __attribute__ ((__aligned__ (expr)))],
  1183. [emacs_cv_attribute_aligned],
  1184. [AC_COMPILE_IFELSE(
  1185. [AC_LANG_PROGRAM(
  1186. [[char __attribute__ ((__aligned__ (1 << 3))) c;]],
  1187. [[]])],
  1188. [emacs_cv_attribute_aligned=yes],
  1189. [emacs_cv_attribute_aligned=no])])
  1190. if test $emacs_cv_attribute_aligned = yes; then
  1191. AC_DEFINE([HAVE_ATTRIBUTE_ALIGNED], 1,
  1192. [Define to 1 if GCC-style __attribute__ ((__aligned__ (expr))) works.])
  1193. fi
  1194. dnl check for Make feature
  1195. AC_PROG_MAKE_SET
  1196. DEPFLAGS=
  1197. MKDEPDIR=":"
  1198. deps_frag=deps.mk
  1199. dnl check for GNU Make if we have GCC and autodepend is on.
  1200. if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
  1201. AC_MSG_CHECKING([whether we are using GNU Make])
  1202. HAVE_GNU_MAKE=no
  1203. testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
  1204. if test "x$testval" != x; then
  1205. HAVE_GNU_MAKE=yes
  1206. else
  1207. ac_enable_autodepend=no
  1208. fi
  1209. AC_MSG_RESULT([$HAVE_GNU_MAKE])
  1210. if test $HAVE_GNU_MAKE = yes; then
  1211. AC_MSG_CHECKING([whether gcc understands -MMD -MF])
  1212. SAVE_CFLAGS="$CFLAGS"
  1213. CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
  1214. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
  1215. CFLAGS="$SAVE_CFLAGS"
  1216. test -f deps.d || ac_enable_autodepend=no
  1217. rm -rf deps.d
  1218. AC_MSG_RESULT([$ac_enable_autodepend])
  1219. fi
  1220. if test $ac_enable_autodepend = yes; then
  1221. DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
  1222. ## In parallel builds, another make might create depdir between
  1223. ## the first test and mkdir, so stick another test on the end.
  1224. ## Or use install-sh -d? mkdir -p is not portable.
  1225. MKDEPDIR='test -d ${DEPDIR} || mkdir ${DEPDIR} || test -d ${DEPDIR}'
  1226. deps_frag=autodeps.mk
  1227. fi
  1228. fi
  1229. deps_frag=$srcdir/src/$deps_frag
  1230. AC_SUBST(MKDEPDIR)
  1231. AC_SUBST(DEPFLAGS)
  1232. AC_SUBST_FILE(deps_frag)
  1233. lisp_frag=$srcdir/src/lisp.mk
  1234. AC_SUBST_FILE(lisp_frag)
  1235. dnl checks for operating system services
  1236. AC_SYS_LONG_FILE_NAMES
  1237. #### Choose a window system.
  1238. AC_PATH_X
  1239. if test "$no_x" = yes; then
  1240. window_system=none
  1241. else
  1242. window_system=x11
  1243. fi
  1244. ## Workaround for bug in autoconf <= 2.62.
  1245. ## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
  1246. ## No need to do anything special for these standard directories.
  1247. if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
  1248. x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
  1249. fi
  1250. LD_SWITCH_X_SITE_AUX=
  1251. LD_SWITCH_X_SITE_AUX_RPATH=
  1252. if test "${x_libraries}" != NONE; then
  1253. if test -n "${x_libraries}"; then
  1254. LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
  1255. LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
  1256. LD_SWITCH_X_SITE_AUX_RPATH=`echo ${LD_SWITCH_X_SITE_AUX} | sed -e 's/-R/-Wl,-rpath,/'`
  1257. fi
  1258. x_default_search_path=""
  1259. x_search_path=${x_libraries}
  1260. if test -z "${x_search_path}"; then
  1261. x_search_path=/usr/lib
  1262. fi
  1263. for x_library in `echo ${x_search_path}: | \
  1264. sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
  1265. x_search_path="\
  1266. ${x_library}/X11/%L/%T/%N%C%S:\
  1267. ${x_library}/X11/%l/%T/%N%C%S:\
  1268. ${x_library}/X11/%T/%N%C%S:\
  1269. ${x_library}/X11/%L/%T/%N%S:\
  1270. ${x_library}/X11/%l/%T/%N%S:\
  1271. ${x_library}/X11/%T/%N%S"
  1272. if test x"${x_default_search_path}" = x; then
  1273. x_default_search_path=${x_search_path}
  1274. else
  1275. x_default_search_path="${x_search_path}:${x_default_search_path}"
  1276. fi
  1277. done
  1278. fi
  1279. AC_SUBST(LD_SWITCH_X_SITE_AUX)
  1280. AC_SUBST(LD_SWITCH_X_SITE_AUX_RPATH)
  1281. if test "${x_includes}" != NONE && test -n "${x_includes}"; then
  1282. C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
  1283. fi
  1284. if test x"${x_includes}" = x; then
  1285. bitmapdir=/usr/include/X11/bitmaps
  1286. else
  1287. # accumulate include directories that have X11 bitmap subdirectories
  1288. bmd_acc="dummyval"
  1289. for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
  1290. if test -d "${bmd}/X11/bitmaps"; then
  1291. bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
  1292. fi
  1293. if test -d "${bmd}/bitmaps"; then
  1294. bmd_acc="${bmd_acc}:${bmd}/bitmaps"
  1295. fi
  1296. done
  1297. if test ${bmd_acc} != "dummyval"; then
  1298. bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
  1299. fi
  1300. fi
  1301. HAVE_NS=no
  1302. NS_IMPL_COCOA=no
  1303. NS_IMPL_GNUSTEP=no
  1304. tmp_CPPFLAGS="$CPPFLAGS"
  1305. tmp_CFLAGS="$CFLAGS"
  1306. CPPFLAGS="$CPPFLAGS -x objective-c"
  1307. CFLAGS="$CFLAGS -x objective-c"
  1308. TEMACS_LDFLAGS2="\${LDFLAGS}"
  1309. GNU_OBJC_CFLAGS=
  1310. dnl I don't think it's especially important, but src/Makefile.in
  1311. dnl (now the only user of ns_appdir) used to go to the trouble of adding a
  1312. dnl trailing "/" to it, so now we do it here.
  1313. if test "${with_ns}" != no; then
  1314. if test "${opsys}" = darwin; then
  1315. NS_IMPL_COCOA=yes
  1316. ns_appdir=`pwd`/nextstep/Emacs.app
  1317. ns_appbindir=${ns_appdir}/Contents/MacOS/
  1318. ns_appresdir=${ns_appdir}/Contents/Resources
  1319. ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
  1320. elif test -f $GNUSTEP_CONFIG_FILE; then
  1321. NS_IMPL_GNUSTEP=yes
  1322. ns_appdir=`pwd`/nextstep/Emacs.app
  1323. ns_appbindir=${ns_appdir}/
  1324. ns_appresdir=${ns_appdir}/Resources
  1325. ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
  1326. dnl FIXME sourcing this several times in subshells seems inefficient.
  1327. GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
  1328. GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
  1329. dnl I seemed to need these as well with GNUstep-startup 0.25.
  1330. GNUSTEP_LOCAL_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_HEADERS)"
  1331. GNUSTEP_LOCAL_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_LIBRARIES)"
  1332. test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \
  1333. GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}"
  1334. test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \
  1335. GNUSTEP_LOCAL_LIBRARIES="-L${GNUSTEP_LOCAL_LIBRARIES}"
  1336. CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
  1337. CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
  1338. LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
  1339. LIB_STANDARD=
  1340. START_FILES=
  1341. TEMACS_LDFLAGS2=
  1342. dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1.
  1343. dnl If they had chosen to either define it or not, we could have
  1344. dnl just used AC_CHECK_DECL here.
  1345. AC_CACHE_CHECK(if GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS,
  1346. emacs_cv_objc_exceptions,
  1347. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <GNUstepBase/GSConfig.h>]],
  1348. [[#if defined BASE_NATIVE_OBJC_EXCEPTIONS && BASE_NATIVE_OBJC_EXCEPTIONS > 0
  1349. 1;
  1350. #else
  1351. fail;
  1352. #endif]])], emacs_cv_objc_exceptions=yes, emacs_cv_objc_exceptions=no ) )
  1353. if test $emacs_cv_objc_exceptions = yes; then
  1354. dnl _NATIVE_OBJC_EXCEPTIONS is used by the GNUstep headers.
  1355. AC_DEFINE(_NATIVE_OBJC_EXCEPTIONS, 1,
  1356. [Define if GNUstep uses ObjC exceptions.])
  1357. GNU_OBJC_CFLAGS="-fobjc-exceptions"
  1358. fi
  1359. fi
  1360. dnl This is only used while we test the NS headers, it gets reset below.
  1361. CFLAGS="$CFLAGS $GNU_OBJC_CFLAGS"
  1362. AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
  1363. [AC_MSG_ERROR([`--with-ns' was specified, but the include
  1364. files are missing or cannot be compiled.])])
  1365. NS_HAVE_NSINTEGER=yes
  1366. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
  1367. [NSInteger i;])],
  1368. ns_have_nsinteger=yes,
  1369. ns_have_nsinteger=no)
  1370. if test $ns_have_nsinteger = no; then
  1371. NS_HAVE_NSINTEGER=no
  1372. fi
  1373. fi
  1374. AC_SUBST(TEMACS_LDFLAGS2)
  1375. ns_frag=/dev/null
  1376. NS_OBJ=
  1377. NS_OBJC_OBJ=
  1378. if test "${HAVE_NS}" = yes; then
  1379. if test "$with_toolkit_scroll_bars" = "no"; then
  1380. AC_MSG_ERROR([Non-toolkit scroll bars are not implemented for Nextstep.])
  1381. fi
  1382. window_system=nextstep
  1383. with_xft=no
  1384. # set up packaging dirs
  1385. if test "${EN_NS_SELF_CONTAINED}" = yes; then
  1386. prefix=${ns_appresdir}
  1387. exec_prefix=${ns_appbindir}
  1388. libexecdir=${ns_appbindir}/libexec
  1389. fi
  1390. ns_frag=$srcdir/src/ns.mk
  1391. NS_OBJ="fontset.o fringe.o image.o"
  1392. NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o"
  1393. fi
  1394. CFLAGS="$tmp_CFLAGS"
  1395. CPPFLAGS="$tmp_CPPFLAGS"
  1396. AC_SUBST(NS_OBJ)
  1397. AC_SUBST(NS_OBJC_OBJ)
  1398. AC_SUBST(LIB_STANDARD)
  1399. AC_SUBST_FILE(ns_frag)
  1400. case "${window_system}" in
  1401. x11 )
  1402. HAVE_X_WINDOWS=yes
  1403. HAVE_X11=yes
  1404. case "${with_x_toolkit}" in
  1405. athena | lucid ) USE_X_TOOLKIT=LUCID ;;
  1406. motif ) USE_X_TOOLKIT=MOTIF ;;
  1407. gtk ) with_gtk=yes
  1408. dnl Don't set this for GTK. A lot of tests below assumes Xt when
  1409. dnl USE_X_TOOLKIT is set.
  1410. USE_X_TOOLKIT=none ;;
  1411. gtk3 ) with_gtk3=yes
  1412. USE_X_TOOLKIT=none ;;
  1413. no ) USE_X_TOOLKIT=none ;;
  1414. dnl If user did not say whether to use a toolkit, make this decision later:
  1415. dnl use the toolkit if we have gtk, or X11R5 or newer.
  1416. * ) USE_X_TOOLKIT=maybe ;;
  1417. esac
  1418. ;;
  1419. nextstep | none )
  1420. HAVE_X_WINDOWS=no
  1421. HAVE_X11=no
  1422. USE_X_TOOLKIT=none
  1423. ;;
  1424. esac
  1425. if test "$window_system" = none && test "X$with_x" != "Xno"; then
  1426. AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
  1427. if test "$HAVE_XSERVER" = true ||
  1428. test -n "$DISPLAY" ||
  1429. test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
  1430. AC_MSG_ERROR([You seem to be running X, but no X development libraries
  1431. were found. You should install the relevant development files for X
  1432. and for the toolkit you want, such as Gtk+, Lesstif or Motif. Also make
  1433. sure you have development files for image handling, i.e.
  1434. tiff, gif, jpeg, png and xpm.
  1435. If you are sure you want Emacs compiled without X window support, pass
  1436. --without-x
  1437. to configure.])
  1438. fi
  1439. fi
  1440. ### If we're using X11, we should use the X menu package.
  1441. HAVE_MENUS=no
  1442. case ${HAVE_X11} in
  1443. yes ) HAVE_MENUS=yes ;;
  1444. esac
  1445. # Do the opsystem or machine files prohibit the use of the GNU malloc?
  1446. # Assume not, until told otherwise.
  1447. GNU_MALLOC=yes
  1448. doug_lea_malloc=yes
  1449. AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
  1450. AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
  1451. AC_CACHE_CHECK(whether __after_morecore_hook exists,
  1452. emacs_cv_var___after_morecore_hook,
  1453. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern void (* __after_morecore_hook)();]],[[__after_morecore_hook = 0]])],
  1454. emacs_cv_var___after_morecore_hook=yes,
  1455. emacs_cv_var___after_morecore_hook=no)])
  1456. if test $emacs_cv_var___after_morecore_hook = no; then
  1457. doug_lea_malloc=no
  1458. fi
  1459. dnl See comments in aix4-2.h about maybe using system malloc there.
  1460. system_malloc=no
  1461. case "$opsys" in
  1462. ## darwin ld insists on the use of malloc routines in the System framework.
  1463. darwin|sol2-10) system_malloc=yes ;;
  1464. esac
  1465. if test "${system_malloc}" = "yes"; then
  1466. AC_DEFINE(SYSTEM_MALLOC, 1, [Define to use system malloc.])
  1467. GNU_MALLOC=no
  1468. GNU_MALLOC_reason="
  1469. (The GNU allocators don't work with this system configuration.)"
  1470. GMALLOC_OBJ=
  1471. VMLIMIT_OBJ=
  1472. else
  1473. test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
  1474. VMLIMIT_OBJ=vm-limit.o
  1475. fi
  1476. AC_SUBST(GMALLOC_OBJ)
  1477. AC_SUBST(VMLIMIT_OBJ)
  1478. if test "$doug_lea_malloc" = "yes" ; then
  1479. if test "$GNU_MALLOC" = yes ; then
  1480. GNU_MALLOC_reason="
  1481. (Using Doug Lea's new malloc from the GNU C Library.)"
  1482. fi
  1483. AC_DEFINE(DOUG_LEA_MALLOC, 1,
  1484. [Define to 1 if you are using the GNU C Library.])
  1485. ## Use mmap directly for allocating larger buffers.
  1486. ## FIXME this comes from src/s/{gnu,gnu-linux}.h:
  1487. ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
  1488. ## Does the AC_FUNC_MMAP test below make this check unnecessary?
  1489. case "$opsys" in
  1490. gnu*) REL_ALLOC=no ;;
  1491. esac
  1492. fi
  1493. if test x"${REL_ALLOC}" = x; then
  1494. REL_ALLOC=${GNU_MALLOC}
  1495. fi
  1496. use_mmap_for_buffers=no
  1497. case "$opsys" in
  1498. cygwin|freebsd|irix6-5) use_mmap_for_buffers=yes ;;
  1499. esac
  1500. AC_FUNC_MMAP
  1501. if test $use_mmap_for_buffers = yes; then
  1502. AC_DEFINE(USE_MMAP_FOR_BUFFERS, 1, [Define to use mmap to allocate buffer text.])
  1503. REL_ALLOC=no
  1504. fi
  1505. LIBS="$LIBS_SYSTEM $LIBS"
  1506. dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
  1507. dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
  1508. AC_CHECK_LIB(dnet, dnet_ntoa)
  1509. dnl This causes -lresolv to get used in subsequent tests,
  1510. dnl which causes failures on some systems such as HPUX 9.
  1511. dnl AC_CHECK_LIB(resolv, gethostbyname)
  1512. dnl FIXME replace main with a function we actually want from this library.
  1513. AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
  1514. dnl Check if pthreads is available.
  1515. LIB_PTHREAD=
  1516. AC_CHECK_HEADERS(pthread.h)
  1517. if test "$ac_cv_header_pthread_h"; then
  1518. dnl gmalloc.c uses pthread_atfork, which is not available on older-style
  1519. dnl hosts such as MirBSD 10, so test for pthread_atfork instead of merely
  1520. dnl testing for pthread_self if Emacs uses gmalloc.c.
  1521. if test "$GMALLOC_OBJ" = gmalloc.o; then
  1522. emacs_pthread_function=pthread_atfork
  1523. else
  1524. emacs_pthread_function=pthread_self
  1525. fi
  1526. AC_CHECK_LIB(pthread, $emacs_pthread_function, HAVE_PTHREAD=yes)
  1527. fi
  1528. if test "$HAVE_PTHREAD" = yes; then
  1529. case "${canonical}" in
  1530. *-hpux*) ;;
  1531. *) LIB_PTHREAD="-lpthread"
  1532. LIBS="$LIB_PTHREAD $LIBS" ;;
  1533. esac
  1534. AC_DEFINE(HAVE_PTHREAD, 1, [Define to 1 if you have pthread (-lpthread).])
  1535. fi
  1536. AC_SUBST([LIB_PTHREAD])
  1537. AC_CHECK_LIB(pthreads, cma_open)
  1538. ## Note: when using cpp in s/aix4.2.h, this definition depended on
  1539. ## HAVE_LIBPTHREADS. That was not defined earlier in configure when
  1540. ## the system file was sourced. Hence the value of LIBS_SYSTEM
  1541. ## added to LIBS in configure would never contain the pthreads part,
  1542. ## but the value used in Makefiles might. FIXME?
  1543. ##
  1544. ## -lpthreads seems to be necessary for Xlib in X11R6, and should
  1545. ## be harmless on older versions of X where it happens to exist.
  1546. test "$opsys" = "aix4-2" && \
  1547. test $ac_cv_lib_pthreads_cma_open = yes && \
  1548. LIBS_SYSTEM="$LIBS_SYSTEM -lpthreads"
  1549. dnl Check for need for bigtoc support on IBM AIX
  1550. case ${host_os} in
  1551. aix*)
  1552. AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
  1553. case $GCC in
  1554. yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
  1555. *) gdb_cv_bigtoc=-bbigtoc ;;
  1556. esac
  1557. LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
  1558. AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])], [], [gdb_cv_bigtoc=])
  1559. ])
  1560. ;;
  1561. esac
  1562. # Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
  1563. # used for the tests that follow. We set them back to REAL_CFLAGS and
  1564. # REAL_CPPFLAGS later on.
  1565. REAL_CFLAGS="$CFLAGS"
  1566. REAL_CPPFLAGS="$CPPFLAGS"
  1567. if test "${HAVE_X11}" = "yes"; then
  1568. DEFS="$C_SWITCH_X_SITE $DEFS"
  1569. LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
  1570. LIBS="-lX11 $LIBS"
  1571. CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
  1572. CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
  1573. # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
  1574. # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
  1575. # but it's more convenient here to set LD_RUN_PATH
  1576. # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
  1577. if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
  1578. LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
  1579. export LD_RUN_PATH
  1580. fi
  1581. if test "${opsys}" = "gnu-linux"; then
  1582. AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
  1583. AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
  1584. [[XOpenDisplay ("foo");]])],
  1585. [xgnu_linux_first_failure=no],
  1586. [xgnu_linux_first_failure=yes])
  1587. if test "${xgnu_linux_first_failure}" = "yes"; then
  1588. OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
  1589. OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
  1590. OLD_CPPFLAGS="$CPPFLAGS"
  1591. OLD_LIBS="$LIBS"
  1592. LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
  1593. C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
  1594. CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
  1595. LIBS="$LIBS -b i486-linuxaout"
  1596. AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
  1597. [[XOpenDisplay ("foo");]])],
  1598. [xgnu_linux_second_failure=no],
  1599. [xgnu_linux_second_failure=yes])
  1600. if test "${xgnu_linux_second_failure}" = "yes"; then
  1601. # If we get the same failure with -b, there is no use adding -b.
  1602. # So take it out. This plays safe.
  1603. LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
  1604. C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
  1605. CPPFLAGS="$OLD_CPPFLAGS"
  1606. LIBS="$OLD_LIBS"
  1607. AC_MSG_RESULT(no)
  1608. else
  1609. AC_MSG_RESULT(yes)
  1610. fi
  1611. else
  1612. AC_MSG_RESULT(no)
  1613. fi
  1614. fi
  1615. # Reportedly, some broken Solaris systems have XKBlib.h but are missing
  1616. # header files included from there.
  1617. AC_MSG_CHECKING(for Xkb)
  1618. AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>
  1619. #include <X11/XKBlib.h>]],
  1620. [[XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);]])],
  1621. emacs_xkb=yes, emacs_xkb=no)
  1622. AC_MSG_RESULT($emacs_xkb)
  1623. if test $emacs_xkb = yes; then
  1624. AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
  1625. fi
  1626. AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
  1627. XScreenNumberOfScreen XSetWMProtocols)
  1628. fi
  1629. if test "${window_system}" = "x11"; then
  1630. AC_MSG_CHECKING(X11 version 6)
  1631. AC_CACHE_VAL(emacs_cv_x11_version_6,
  1632. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]],
  1633. [[#if XlibSpecificationRelease < 6
  1634. fail;
  1635. #endif
  1636. ]])], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
  1637. if test $emacs_cv_x11_version_6 = yes; then
  1638. AC_MSG_RESULT(6 or newer)
  1639. AC_DEFINE(HAVE_X11R6, 1,
  1640. [Define to 1 if you have the X11R6 or newer version of Xlib.])
  1641. AC_DEFINE(HAVE_X_I18N, 1, [Define if you have usable i18n support.])
  1642. ## inoue@ainet.or.jp says Solaris has a bug related to X11R6-style
  1643. ## XIM support.
  1644. case "$opsys" in
  1645. sol2-*) : ;;
  1646. *) AC_DEFINE(HAVE_X11R6_XIM, 1,
  1647. [Define if you have usable X11R6-style XIM support.])
  1648. ;;
  1649. esac
  1650. else
  1651. AC_MSG_RESULT(before 6)
  1652. fi
  1653. fi
  1654. ### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
  1655. HAVE_RSVG=no
  1656. if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then
  1657. if test "${with_rsvg}" != "no"; then
  1658. RSVG_REQUIRED=2.11.0
  1659. RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
  1660. PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, HAVE_RSVG=yes, :)
  1661. AC_SUBST(RSVG_CFLAGS)
  1662. AC_SUBST(RSVG_LIBS)
  1663. if test $HAVE_RSVG = yes; then
  1664. AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
  1665. CFLAGS="$CFLAGS $RSVG_CFLAGS"
  1666. LIBS="$RSVG_LIBS $LIBS"
  1667. fi
  1668. fi
  1669. fi
  1670. HAVE_IMAGEMAGICK=no
  1671. if test "${HAVE_X11}" = "yes"; then
  1672. if test "${with_imagemagick}" != "no"; then
  1673. ## 6.2.8 is the earliest version known to work, but earlier versions
  1674. ## might work - let us know if you find one.
  1675. ## 6.0.7 does not work. See bug#7955.
  1676. IMAGEMAGICK_MODULE="Wand >= 6.2.8"
  1677. PKG_CHECK_MODULES(IMAGEMAGICK, $IMAGEMAGICK_MODULE, HAVE_IMAGEMAGICK=yes, :)
  1678. AC_SUBST(IMAGEMAGICK_CFLAGS)
  1679. AC_SUBST(IMAGEMAGICK_LIBS)
  1680. if test $HAVE_IMAGEMAGICK = yes; then
  1681. AC_DEFINE(HAVE_IMAGEMAGICK, 1, [Define to 1 if using imagemagick.])
  1682. CFLAGS="$CFLAGS $IMAGEMAGICK_CFLAGS"
  1683. LIBS="$IMAGEMAGICK_LIBS $LIBS"
  1684. AC_CHECK_FUNCS(MagickExportImagePixels)
  1685. fi
  1686. fi
  1687. fi
  1688. HAVE_GTK=no
  1689. GTK_OBJ=
  1690. if test "${with_gtk3}" = "yes"; then
  1691. GLIB_REQUIRED=2.28
  1692. GTK_REQUIRED=3.0
  1693. GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
  1694. dnl Checks for libraries.
  1695. PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
  1696. if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
  1697. AC_MSG_ERROR($GTK_PKG_ERRORS)
  1698. fi
  1699. AC_DEFINE(HAVE_GTK3, 1, [Define to 1 if using GTK 3 or later.])
  1700. GTK_OBJ=emacsgtkfixed.o
  1701. fi
  1702. if test "$pkg_check_gtk" != "yes"; then
  1703. HAVE_GTK=no
  1704. if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
  1705. GLIB_REQUIRED=2.10
  1706. GTK_REQUIRED=2.10
  1707. GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
  1708. dnl Checks for libraries.
  1709. PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
  1710. if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
  1711. AC_MSG_ERROR($GTK_PKG_ERRORS)
  1712. fi
  1713. fi
  1714. fi
  1715. if test x"$pkg_check_gtk" = xyes; then
  1716. AC_SUBST(GTK_CFLAGS)
  1717. AC_SUBST(GTK_LIBS)
  1718. C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
  1719. CFLAGS="$CFLAGS $GTK_CFLAGS"
  1720. LIBS="$GTK_LIBS $LIBS"
  1721. dnl Try to compile a simple GTK program.
  1722. GTK_COMPILES=no
  1723. AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
  1724. if test "${GTK_COMPILES}" != "yes"; then
  1725. if test "$USE_X_TOOLKIT" != "maybe"; then
  1726. AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]);
  1727. fi
  1728. else
  1729. HAVE_GTK=yes
  1730. AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
  1731. GTK_OBJ="gtkutil.o $GTK_OBJ"
  1732. USE_X_TOOLKIT=none
  1733. if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
  1734. :
  1735. else
  1736. AC_MSG_WARN([[Your version of Gtk+ will have problems with
  1737. closing open displays. This is no problem if you just use
  1738. one display, but if you use more than one and close one of them
  1739. Emacs may crash.]])
  1740. sleep 3
  1741. fi
  1742. fi
  1743. fi
  1744. AC_SUBST(GTK_OBJ)
  1745. if test "${HAVE_GTK}" = "yes"; then
  1746. dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
  1747. dnl a lot if #ifdef:s, say we have toolkit scrollbars.
  1748. if test "$with_toolkit_scroll_bars" != no; then
  1749. with_toolkit_scroll_bars=yes
  1750. fi
  1751. dnl Check if we have the old file selection dialog declared and
  1752. dnl in the link library. In 2.x it may be in the library,
  1753. dnl but not declared if deprecated featured has been selected out.
  1754. dnl AC_CHECK_DECL checks for a macro, so check for GTK_TYPE_FILE_SELECTION.
  1755. HAVE_GTK_FILE_SELECTION=no
  1756. AC_CHECK_DECL(GTK_TYPE_FILE_SELECTION, HAVE_GTK_FILE_SELECTION=yes,
  1757. HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT
  1758. #include <gtk/gtk.h>])
  1759. if test "$HAVE_GTK_FILE_SELECTION" = yes; then
  1760. AC_CHECK_FUNCS(gtk_file_selection_new)
  1761. fi
  1762. dnl Check for functions introduced in 2.14 and later.
  1763. AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \
  1764. gtk_dialog_get_action_area gtk_widget_get_sensitive \
  1765. gtk_widget_get_mapped gtk_adjustment_get_page_size \
  1766. gtk_orientable_set_orientation \
  1767. gtk_window_set_has_resize_grip)
  1768. fi
  1769. dnl D-Bus has been tested under GNU/Linux only. Must be adapted for
  1770. dnl other platforms. Support for higher D-Bus versions than 1.0 is
  1771. dnl also not configured.
  1772. HAVE_DBUS=no
  1773. DBUS_OBJ=
  1774. if test "${with_dbus}" = "yes"; then
  1775. PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
  1776. if test "$HAVE_DBUS" = yes; then
  1777. LIBS="$LIBS $DBUS_LIBS"
  1778. AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
  1779. AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
  1780. DBUS_OBJ=dbusbind.o
  1781. fi
  1782. fi
  1783. AC_SUBST(DBUS_OBJ)
  1784. dnl GSettings has been tested under GNU/Linux only.
  1785. HAVE_GSETTINGS=no
  1786. if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" = "yes"; then
  1787. PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.26, HAVE_GSETTINGS=yes, HAVE_GSETTINGS=no)
  1788. if test "$HAVE_GSETTINGS" = "yes"; then
  1789. AC_DEFINE(HAVE_GSETTINGS, 1, [Define to 1 if using GSettings.])
  1790. SETTINGS_CFLAGS="$GSETTINGS_CFLAGS"
  1791. SETTINGS_LIBS="$GSETTINGS_LIBS"
  1792. fi
  1793. fi
  1794. dnl GConf has been tested under GNU/Linux only.
  1795. dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
  1796. HAVE_GCONF=no
  1797. if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
  1798. PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
  1799. if test "$HAVE_GCONF" = yes; then
  1800. AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
  1801. dnl Newer GConf doesn't link with g_objects, so this is not defined.
  1802. SETTINGS_CFLAGS="$SETTINGS_CFLAGS $GCONF_CFLAGS"
  1803. SETTINGS_LIBS="$SETTINGS_LIBS $GCONF_LIBS"
  1804. fi
  1805. fi
  1806. if test "$HAVE_GSETTINGS" = "yes" || test "$HAVE_GCONF" = "yes"; then
  1807. SAVE_CFLAGS="$CFLAGS"
  1808. SAVE_LIBS="$LIBS"
  1809. CFLAGS="$SETTINGS_CFLAGS $CFLAGS"
  1810. LIBS="$SETTINGS_LIBS $LIBS"
  1811. AC_CHECK_FUNCS([g_type_init])
  1812. CFLAGS="$SAVE_CFLAGS"
  1813. LIBS="$SAVE_LIBS"
  1814. fi
  1815. AC_SUBST(SETTINGS_CFLAGS)
  1816. AC_SUBST(SETTINGS_LIBS)
  1817. dnl SELinux is available for GNU/Linux only.
  1818. HAVE_LIBSELINUX=no
  1819. LIBSELINUX_LIBS=
  1820. if test "${with_selinux}" = "yes"; then
  1821. AC_CHECK_LIB([selinux], [lgetfilecon], HAVE_LIBSELINUX=yes, HAVE_LIBSELINUX=no)
  1822. if test "$HAVE_LIBSELINUX" = yes; then
  1823. AC_DEFINE(HAVE_LIBSELINUX, 1, [Define to 1 if using SELinux.])
  1824. LIBSELINUX_LIBS=-lselinux
  1825. fi
  1826. fi
  1827. AC_SUBST(LIBSELINUX_LIBS)
  1828. HAVE_GNUTLS=no
  1829. HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY=no
  1830. if test "${with_gnutls}" = "yes" ; then
  1831. PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], HAVE_GNUTLS=yes, HAVE_GNUTLS=no)
  1832. if test "${HAVE_GNUTLS}" = "yes"; then
  1833. AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.])
  1834. fi
  1835. CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
  1836. LIBS="$LIBGNUTLS_LIBS $LIBS"
  1837. AC_CHECK_FUNCS(gnutls_certificate_set_verify_function, HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY=yes)
  1838. if test "${HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY}" = "yes"; then
  1839. AC_DEFINE(HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY, 1, [Define if using GnuTLS certificate verification callbacks.])
  1840. fi
  1841. fi
  1842. AC_SUBST(LIBGNUTLS_LIBS)
  1843. AC_SUBST(LIBGNUTLS_CFLAGS)
  1844. dnl Do not put whitespace before the #include statements below.
  1845. dnl Older compilers (eg sunos4 cc) choke on it.
  1846. HAVE_XAW3D=no
  1847. LUCID_LIBW=
  1848. if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
  1849. if test "$with_xaw3d" != no; then
  1850. AC_MSG_CHECKING(for xaw3d)
  1851. AC_CACHE_VAL(emacs_cv_xaw3d,
  1852. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
  1853. #include <X11/Intrinsic.h>
  1854. #include <X11/Xaw3d/Simple.h>]],
  1855. [[]])],
  1856. [AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb,
  1857. emacs_cv_xaw3d=yes, emacs_cv_xaw3d=no)],
  1858. emacs_cv_xaw3d=no)])
  1859. else
  1860. emacs_cv_xaw3d=no
  1861. fi
  1862. if test $emacs_cv_xaw3d = yes; then
  1863. AC_MSG_RESULT([yes; using Lucid toolkit])
  1864. USE_X_TOOLKIT=LUCID
  1865. HAVE_XAW3D=yes
  1866. LUCID_LIBW=-lXaw3d
  1867. AC_DEFINE(HAVE_XAW3D, 1,
  1868. [Define to 1 if you have the Xaw3d library (-lXaw3d).])
  1869. else
  1870. AC_MSG_RESULT(no)
  1871. AC_MSG_CHECKING(for libXaw)
  1872. AC_CACHE_VAL(emacs_cv_xaw,
  1873. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
  1874. #include <X11/Intrinsic.h>
  1875. #include <X11/Xaw/Simple.h>]],
  1876. [[]])],
  1877. emacs_cv_xaw=yes,
  1878. emacs_cv_xaw=no)])
  1879. if test $emacs_cv_xaw = yes; then
  1880. AC_MSG_RESULT([yes; using Lucid toolkit])
  1881. USE_X_TOOLKIT=LUCID
  1882. LUCID_LIBW=-lXaw
  1883. elif test x"${USE_X_TOOLKIT}" = xLUCID; then
  1884. AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
  1885. else
  1886. AC_MSG_ERROR([No X toolkit could be found.
  1887. If you are sure you want Emacs compiled without an X toolkit, pass
  1888. --with-x-toolkit=no
  1889. to configure. Otherwise, install the development libraries for the toolkit
  1890. that you want to use (e.g. Gtk+) and re-run configure.])
  1891. fi
  1892. fi
  1893. fi
  1894. X_TOOLKIT_TYPE=$USE_X_TOOLKIT
  1895. LIBXTR6=
  1896. if test "${USE_X_TOOLKIT}" != "none"; then
  1897. AC_MSG_CHECKING(X11 toolkit version)
  1898. AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
  1899. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Intrinsic.h>]],
  1900. [[#if XtSpecificationRelease < 6
  1901. fail;
  1902. #endif
  1903. ]])], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
  1904. HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
  1905. if test $emacs_cv_x11_toolkit_version_6 = yes; then
  1906. AC_MSG_RESULT(6 or newer)
  1907. AC_DEFINE(HAVE_X11XTR6, 1,
  1908. [Define to 1 if you have the X11R6 or newer version of Xt.])
  1909. LIBXTR6="-lSM -lICE"
  1910. case "$opsys" in
  1911. ## Use libw.a along with X11R6 Xt.
  1912. unixware) LIBXTR6="$LIBXTR6 -lw" ;;
  1913. esac
  1914. else
  1915. AC_MSG_RESULT(before 6)
  1916. fi
  1917. dnl If using toolkit, check whether libXmu.a exists.
  1918. dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
  1919. OLDLIBS="$LIBS"
  1920. if test x$HAVE_X11XTR6 = xyes; then
  1921. LIBS="-lXt -lSM -lICE $LIBS"
  1922. else
  1923. LIBS="-lXt $LIBS"
  1924. fi
  1925. AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
  1926. test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
  1927. fi
  1928. AC_SUBST(LIBXTR6)
  1929. dnl FIXME the logic here seems weird, but this is what cpp was doing.
  1930. dnl Why not just test for libxmu in the normal way?
  1931. LIBXMU=-lXmu
  1932. case $opsys in
  1933. ## These systems don't supply Xmu.
  1934. hpux* | aix4-2 )
  1935. test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
  1936. ;;
  1937. esac
  1938. AC_SUBST(LIBXMU)
  1939. # On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
  1940. if test "${HAVE_X11}" = "yes"; then
  1941. if test "${USE_X_TOOLKIT}" != "none"; then
  1942. AC_CHECK_LIB(Xext, XShapeQueryExtension)
  1943. fi
  1944. fi
  1945. LIBXP=
  1946. if test "${USE_X_TOOLKIT}" = "MOTIF"; then
  1947. AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
  1948. [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <Xm/Xm.h>]],
  1949. [[#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
  1950. int x = 5;
  1951. #else
  1952. Motif version prior to 2.1.
  1953. #endif]])],
  1954. emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
  1955. if test $emacs_cv_motif_version_2_1 = yes; then
  1956. AC_CHECK_LIB(Xp, XpCreateContext, LIBXP=-lXp)
  1957. else
  1958. AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
  1959. # We put this in CFLAGS temporarily to precede other -I options
  1960. # that might be in CFLAGS temporarily.
  1961. # We put this in CPPFLAGS where it precedes the other -I options.
  1962. OLD_CPPFLAGS=$CPPFLAGS
  1963. OLD_CFLAGS=$CFLAGS
  1964. CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
  1965. CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
  1966. [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>]],
  1967. [[int x = 5;]])],
  1968. emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
  1969. if test $emacs_cv_lesstif = yes; then
  1970. # Make sure this -I option remains in CPPFLAGS after it is set
  1971. # back to REAL_CPPFLAGS.
  1972. # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
  1973. # have those other -I options anyway. Ultimately, having this
  1974. # directory ultimately in CPPFLAGS will be enough.
  1975. REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
  1976. LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
  1977. else
  1978. CFLAGS=$OLD_CFLAGS
  1979. CPPFLAGS=$OLD_CPPFLAGS
  1980. fi
  1981. fi
  1982. AC_CHECK_HEADER([Xm/BulletinB.h], [],
  1983. [AC_MSG_ERROR([Motif toolkit requested but requirements not found.])])
  1984. fi
  1985. dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
  1986. dnl using Motif or Xaw3d is available, and unless
  1987. dnl --with-toolkit-scroll-bars=no was specified.
  1988. AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
  1989. [Define to 1 if we should use toolkit scroll bars.])dnl
  1990. USE_TOOLKIT_SCROLL_BARS=no
  1991. if test "${with_toolkit_scroll_bars}" != "no"; then
  1992. if test "${USE_X_TOOLKIT}" != "none"; then
  1993. if test "${USE_X_TOOLKIT}" = "MOTIF"; then
  1994. AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
  1995. HAVE_XAW3D=no
  1996. USE_TOOLKIT_SCROLL_BARS=yes
  1997. elif test "${HAVE_XAW3D}" = "yes" || test "${USE_X_TOOLKIT}" = "LUCID"; then
  1998. AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
  1999. USE_TOOLKIT_SCROLL_BARS=yes
  2000. fi
  2001. elif test "${HAVE_GTK}" = "yes"; then
  2002. AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
  2003. USE_TOOLKIT_SCROLL_BARS=yes
  2004. elif test "${HAVE_NS}" = "yes"; then
  2005. AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
  2006. USE_TOOLKIT_SCROLL_BARS=yes
  2007. fi
  2008. fi
  2009. dnl See if XIM is available.
  2010. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  2011. #include <X11/Xlib.h>
  2012. #include <X11/Xresource.h>]],
  2013. [[XIMProc callback;]])],
  2014. [HAVE_XIM=yes
  2015. AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
  2016. HAVE_XIM=no)
  2017. dnl `--with-xim' now controls only the initial value of use_xim at run time.
  2018. if test "${with_xim}" != "no"; then
  2019. AC_DEFINE(USE_XIM, 1,
  2020. [Define to 1 if we should use XIM, if it is available.])
  2021. fi
  2022. if test "${HAVE_XIM}" != "no"; then
  2023. late_CFLAGS=$CFLAGS
  2024. if test "$GCC" = yes; then
  2025. CFLAGS="$CFLAGS --pedantic-errors"
  2026. fi
  2027. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  2028. #include <X11/Xlib.h>
  2029. #include <X11/Xresource.h>]],
  2030. [[Display *display;
  2031. XrmDatabase db;
  2032. char *res_name;
  2033. char *res_class;
  2034. XIMProc callback;
  2035. XPointer *client_data;
  2036. #ifndef __GNUC__
  2037. /* If we're not using GCC, it's probably not XFree86, and this is
  2038. probably right, but we can't use something like --pedantic-errors. */
  2039. extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
  2040. char*, XIMProc, XPointer*);
  2041. #endif
  2042. (void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
  2043. client_data);]])],
  2044. [emacs_cv_arg6_star=yes])
  2045. AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
  2046. [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
  2047. either XPointer or XPointer*.])dnl
  2048. if test "$emacs_cv_arg6_star" = yes; then
  2049. AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
  2050. else
  2051. AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
  2052. fi
  2053. CFLAGS=$late_CFLAGS
  2054. fi
  2055. ### Start of font-backend (under any platform) section.
  2056. # (nothing here yet -- this is a placeholder)
  2057. ### End of font-backend (under any platform) section.
  2058. ### Start of font-backend (under X11) section.
  2059. if test "${HAVE_X11}" = "yes"; then
  2060. PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no)
  2061. ## Use -lXft if available, unless `--with-xft=no'.
  2062. HAVE_XFT=maybe
  2063. if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
  2064. with_xft="no";
  2065. fi
  2066. if test "x${with_xft}" != "xno"; then
  2067. PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
  2068. ## Because xftfont.c uses XRenderQueryExtension, we also
  2069. ## need to link to -lXrender.
  2070. HAVE_XRENDER=no
  2071. AC_CHECK_LIB(Xrender, XRenderQueryExtension, HAVE_XRENDER=yes)
  2072. if test "$HAVE_XFT" != no && test "$HAVE_XRENDER" != no; then
  2073. OLD_CPPFLAGS="$CPPFLAGS"
  2074. OLD_CFLAGS="$CFLAGS"
  2075. OLD_LIBS="$LIBS"
  2076. CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
  2077. CFLAGS="$CFLAGS $XFT_CFLAGS"
  2078. XFT_LIBS="-lXrender $XFT_LIBS"
  2079. LIBS="$XFT_LIBS $LIBS"
  2080. AC_CHECK_HEADER(X11/Xft/Xft.h,
  2081. AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
  2082. if test "${HAVE_XFT}" = "yes"; then
  2083. AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
  2084. AC_SUBST(XFT_LIBS)
  2085. C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
  2086. else
  2087. CPPFLAGS="$OLD_CPPFLAGS"
  2088. CFLAGS="$OLD_CFLAGS"
  2089. LIBS="$OLD_LIBS"
  2090. fi # "${HAVE_XFT}" = "yes"
  2091. fi # "$HAVE_XFT" != no
  2092. fi # "x${with_xft}" != "xno"
  2093. ## We used to allow building with FreeType and without Xft.
  2094. ## However, the ftx font backend driver is not in good shape.
  2095. if test "$HAVE_XFT" != "yes"; then
  2096. dnl For the "Does Emacs use" message at the end.
  2097. HAVE_XFT=no
  2098. HAVE_FREETYPE=no
  2099. else
  2100. dnl Strict linkers fail with
  2101. dnl ftfont.o: undefined reference to symbol 'FT_New_Face'
  2102. dnl if -lfreetype is not specified.
  2103. dnl The following is needed to set FREETYPE_LIBS.
  2104. PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes,
  2105. HAVE_FREETYPE=no)
  2106. test "$HAVE_FREETYPE" = "no" && AC_MSG_ERROR(libxft requires libfreetype)
  2107. fi
  2108. HAVE_LIBOTF=no
  2109. if test "${HAVE_FREETYPE}" = "yes"; then
  2110. AC_DEFINE(HAVE_FREETYPE, 1,
  2111. [Define to 1 if using the freetype and fontconfig libraries.])
  2112. if test "${with_libotf}" != "no"; then
  2113. PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes,
  2114. HAVE_LIBOTF=no)
  2115. if test "$HAVE_LIBOTF" = "yes"; then
  2116. AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.])
  2117. AC_CHECK_LIB(otf, OTF_get_variation_glyphs,
  2118. HAVE_OTF_GET_VARIATION_GLYPHS=yes,
  2119. HAVE_OTF_GET_VARIATION_GLYPHS=no)
  2120. if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
  2121. AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1,
  2122. [Define to 1 if libotf has OTF_get_variation_glyphs.])
  2123. fi
  2124. fi
  2125. fi
  2126. dnl FIXME should there be an error if HAVE_FREETYPE != yes?
  2127. dnl Does the new font backend require it, or can it work without it?
  2128. fi
  2129. HAVE_M17N_FLT=no
  2130. if test "${HAVE_LIBOTF}" = yes; then
  2131. if test "${with_m17n_flt}" != "no"; then
  2132. PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no)
  2133. if test "$HAVE_M17N_FLT" = "yes"; then
  2134. AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
  2135. fi
  2136. fi
  2137. fi
  2138. else
  2139. HAVE_XFT=no
  2140. HAVE_FREETYPE=no
  2141. HAVE_LIBOTF=no
  2142. HAVE_M17N_FLT=no
  2143. fi
  2144. ### End of font-backend (under X11) section.
  2145. AC_SUBST(FREETYPE_CFLAGS)
  2146. AC_SUBST(FREETYPE_LIBS)
  2147. AC_SUBST(FONTCONFIG_CFLAGS)
  2148. AC_SUBST(FONTCONFIG_LIBS)
  2149. AC_SUBST(LIBOTF_CFLAGS)
  2150. AC_SUBST(LIBOTF_LIBS)
  2151. AC_SUBST(M17N_FLT_CFLAGS)
  2152. AC_SUBST(M17N_FLT_LIBS)
  2153. ### Use -lXpm if available, unless `--with-xpm=no'.
  2154. HAVE_XPM=no
  2155. LIBXPM=
  2156. if test "${HAVE_X11}" = "yes"; then
  2157. if test "${with_xpm}" != "no"; then
  2158. AC_CHECK_HEADER(X11/xpm.h,
  2159. [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
  2160. if test "${HAVE_XPM}" = "yes"; then
  2161. AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
  2162. AC_EGREP_CPP(no_return_alloc_pixels,
  2163. [#include "X11/xpm.h"
  2164. #ifndef XpmReturnAllocPixels
  2165. no_return_alloc_pixels
  2166. #endif
  2167. ], HAVE_XPM=no, HAVE_XPM=yes)
  2168. if test "${HAVE_XPM}" = "yes"; then
  2169. AC_MSG_RESULT(yes)
  2170. else
  2171. AC_MSG_RESULT(no)
  2172. fi
  2173. fi
  2174. fi
  2175. if test "${HAVE_XPM}" = "yes"; then
  2176. AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).])
  2177. LIBXPM=-lXpm
  2178. fi
  2179. fi
  2180. AC_SUBST(LIBXPM)
  2181. ### Use -ljpeg if available, unless `--with-jpeg=no'.
  2182. HAVE_JPEG=no
  2183. LIBJPEG=
  2184. if test "${HAVE_X11}" = "yes"; then
  2185. if test "${with_jpeg}" != "no"; then
  2186. dnl Checking for jpeglib.h can lose because of a redefinition of
  2187. dnl HAVE_STDLIB_H.
  2188. AC_CHECK_HEADER(jerror.h,
  2189. [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
  2190. fi
  2191. AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
  2192. if test "${HAVE_JPEG}" = "yes"; then
  2193. AC_DEFINE(HAVE_JPEG)
  2194. AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
  2195. [#include <jpeglib.h>
  2196. version=JPEG_LIB_VERSION
  2197. ],
  2198. [AC_DEFINE(HAVE_JPEG)],
  2199. [AC_MSG_WARN([libjpeg found, but not version 6b or later])
  2200. HAVE_JPEG=no])
  2201. fi
  2202. if test "${HAVE_JPEG}" = "yes"; then
  2203. LIBJPEG=-ljpeg
  2204. fi
  2205. fi
  2206. AC_SUBST(LIBJPEG)
  2207. ### Use -lpng if available, unless `--with-png=no'.
  2208. HAVE_PNG=no
  2209. LIBPNG=
  2210. if test "${HAVE_X11}" = "yes"; then
  2211. if test "${with_png}" != "no"; then
  2212. # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
  2213. # in /usr/include/libpng.
  2214. AC_CHECK_HEADERS(png.h libpng/png.h)
  2215. if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
  2216. AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
  2217. fi
  2218. fi
  2219. if test "${HAVE_PNG}" = "yes"; then
  2220. AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
  2221. LIBPNG="-lpng -lz -lm"
  2222. fi
  2223. fi
  2224. AC_SUBST(LIBPNG)
  2225. ### Use -ltiff if available, unless `--with-tiff=no'.
  2226. HAVE_TIFF=no
  2227. LIBTIFF=
  2228. if test "${HAVE_X11}" = "yes"; then
  2229. if test "${with_tiff}" != "no"; then
  2230. AC_CHECK_HEADER(tiffio.h,
  2231. [tifflibs="-lz -lm"
  2232. # At least one tiff package requires the jpeg library.
  2233. if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
  2234. AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)])
  2235. fi
  2236. if test "${HAVE_TIFF}" = "yes"; then
  2237. AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
  2238. dnl FIXME -lz -lm, as per libpng?
  2239. LIBTIFF=-ltiff
  2240. fi
  2241. fi
  2242. AC_SUBST(LIBTIFF)
  2243. ### Use -lgif or -lungif if available, unless `--with-gif=no'.
  2244. HAVE_GIF=no
  2245. LIBGIF=
  2246. if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
  2247. AC_CHECK_HEADER(gif_lib.h,
  2248. # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
  2249. # Earlier versions can crash Emacs.
  2250. [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
  2251. if test "$HAVE_GIF" = yes; then
  2252. LIBGIF=-lgif
  2253. elif test "$HAVE_GIF" = maybe; then
  2254. # If gif_lib.h but no libgif, try libungif.
  2255. AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=no)
  2256. test "$HAVE_GIF" = yes && LIBGIF=-lungif
  2257. fi
  2258. if test "${HAVE_GIF}" = "yes"; then
  2259. AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
  2260. fi
  2261. fi
  2262. AC_SUBST(LIBGIF)
  2263. dnl Check for required libraries.
  2264. if test "${HAVE_X11}" = "yes"; then
  2265. MISSING=""
  2266. WITH_NO=""
  2267. test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
  2268. MISSING="libXpm" && WITH_NO="--with-xpm=no"
  2269. test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
  2270. MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
  2271. test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
  2272. MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
  2273. test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
  2274. MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
  2275. test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
  2276. MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
  2277. if test "X${MISSING}" != X; then
  2278. AC_MSG_ERROR([The following required libraries were not found:
  2279. $MISSING
  2280. Maybe some development libraries/packages are missing?
  2281. If you don't want to link with them give
  2282. $WITH_NO
  2283. as options to configure])
  2284. fi
  2285. fi
  2286. ### Use -lgpm if available, unless `--with-gpm=no'.
  2287. HAVE_GPM=no
  2288. LIBGPM=
  2289. if test "${with_gpm}" != "no"; then
  2290. AC_CHECK_HEADER(gpm.h,
  2291. [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
  2292. if test "${HAVE_GPM}" = "yes"; then
  2293. AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
  2294. LIBGPM=-lgpm
  2295. fi
  2296. fi
  2297. AC_SUBST(LIBGPM)
  2298. dnl Check for malloc/malloc.h on darwin
  2299. AC_CHECK_HEADER(malloc/malloc.h, [AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.])])
  2300. C_SWITCH_X_SYSTEM=
  2301. ### Use NeXTstep API to implement GUI.
  2302. if test "${HAVE_NS}" = "yes"; then
  2303. AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
  2304. if test "${NS_IMPL_COCOA}" = "yes"; then
  2305. AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.])
  2306. fi
  2307. if test "${NS_IMPL_GNUSTEP}" = "yes"; then
  2308. AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
  2309. # See also .m.o rule in Makefile.in */
  2310. # FIXME: are all these flags really needed? Document here why. */
  2311. dnl FIXME this should be renamed to GNUSTEP_CFLAGS, and only
  2312. dnl used in src/Makefile.in.
  2313. C_SWITCH_X_SYSTEM="-D_REENTRANT -fPIC -fno-strict-aliasing -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
  2314. ## Extra CFLAGS applied to src/*.m files.
  2315. GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
  2316. fi
  2317. if test "${NS_HAVE_NSINTEGER}" = "yes"; then
  2318. AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
  2319. fi
  2320. # We also have mouse menus.
  2321. HAVE_MENUS=yes
  2322. OTHER_FILES=ns-app
  2323. fi
  2324. ### Use session management (-lSM -lICE) if available
  2325. HAVE_X_SM=no
  2326. LIBXSM=
  2327. if test "${HAVE_X11}" = "yes"; then
  2328. AC_CHECK_HEADER(X11/SM/SMlib.h,
  2329. [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
  2330. if test "${HAVE_X_SM}" = "yes"; then
  2331. AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
  2332. LIBXSM="-lSM -lICE"
  2333. case "$LIBS" in
  2334. *-lSM*) ;;
  2335. *) LIBS="$LIBXSM $LIBS" ;;
  2336. esac
  2337. fi
  2338. fi
  2339. AC_SUBST(LIBXSM)
  2340. ### Use libxml (-lxml2) if available
  2341. HAVE_LIBXML2=no
  2342. if test "${with_xml2}" != "no"; then
  2343. ### I'm not sure what the version number should be, so I just guessed.
  2344. PKG_CHECK_MODULES(LIBXML2, libxml-2.0 > 2.6.17, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
  2345. if test "${HAVE_LIBXML2}" = "yes"; then
  2346. LIBS="$LIBXML2_LIBS $LIBS"
  2347. AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
  2348. if test "${HAVE_LIBXML2}" = "yes"; then
  2349. AC_DEFINE(HAVE_LIBXML2, 1, [Define to 1 if you have the libxml library (-lxml2).])
  2350. else
  2351. LIBXML2_LIBS=""
  2352. LIBXML2_CFLAGS=""
  2353. fi
  2354. fi
  2355. fi
  2356. AC_SUBST(LIBXML2_LIBS)
  2357. AC_SUBST(LIBXML2_CFLAGS)
  2358. # If netdb.h doesn't declare h_errno, we must declare it by hand.
  2359. AC_CACHE_CHECK(whether netdb declares h_errno,
  2360. emacs_cv_netdb_declares_h_errno,
  2361. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
  2362. [[return h_errno;]])],
  2363. emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
  2364. if test $emacs_cv_netdb_declares_h_errno = yes; then
  2365. AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
  2366. fi
  2367. # fmod, logb, and frexp are found in -lm on most systems.
  2368. # On HPUX 9.01, -lm does not contain logb, so check for sqrt.
  2369. AC_CHECK_LIB(m, sqrt)
  2370. # Check for mail-locking functions in a "mail" library. Probably this should
  2371. # have the same check as for liblockfile below.
  2372. AC_CHECK_LIB(mail, maillock, have_mail=yes, have_mail=no)
  2373. if test $have_mail = yes; then
  2374. LIBS_MAIL=-lmail
  2375. LIBS="$LIBS_MAIL $LIBS"
  2376. AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the `mail' library (-lmail).])
  2377. else
  2378. LIBS_MAIL=
  2379. fi
  2380. dnl Debian, at least:
  2381. AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no)
  2382. if test $have_lockfile = yes; then
  2383. LIBS_MAIL=-llockfile
  2384. LIBS="$LIBS_MAIL $LIBS"
  2385. AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the `lockfile' library (-llockfile).])
  2386. else
  2387. # If we have the shared liblockfile, assume we must use it for mail
  2388. # locking (e.g. Debian). If we couldn't link against liblockfile
  2389. # (no liblockfile.a installed), ensure that we don't need to.
  2390. dnl This works for files generally, not just executables.
  2391. dnl Should we look elsewhere for it? Maybe examine /etc/ld.so.conf?
  2392. AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
  2393. /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
  2394. if test $ac_cv_prog_liblockfile = yes; then
  2395. AC_MSG_ERROR([Shared liblockfile found but can't link against it.
  2396. This probably means that movemail could lose mail.
  2397. There may be a `development' package to install containing liblockfile.])
  2398. fi
  2399. fi
  2400. AC_CHECK_FUNCS(touchlock)
  2401. AC_CHECK_HEADERS(maillock.h)
  2402. AC_SUBST(LIBS_MAIL)
  2403. ## Define MAIL_USE_FLOCK (or LOCKF) if the mailer uses flock (or lockf) to
  2404. ## interlock access to the mail spool. The alternative is a lock file named
  2405. ## /usr/spool/mail/$USER.lock.
  2406. mail_lock=no
  2407. case "$opsys" in
  2408. aix4-2) mail_lock="lockf" ;;
  2409. gnu|freebsd|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;;
  2410. ## On GNU/Linux systems, both methods are used by various mail programs.
  2411. ## I assume most people are using newer mailers that have heard of flock.
  2412. ## Change this if you need to.
  2413. ## Debian contains a patch which says: ``On Debian/GNU/Linux systems,
  2414. ## configure gets the right answers, and that means *NOT* using flock.
  2415. ## Using flock is guaranteed to be the wrong thing. See Debian Policy
  2416. ## for details.'' and then uses `#ifdef DEBIAN'. Unfortunately the
  2417. ## Debian maintainer hasn't provided a clean fix for Emacs.
  2418. ## movemail.c will use `maillock' when MAILDIR, HAVE_LIBMAIL and
  2419. ## HAVE_MAILLOCK_H are defined, so the following appears to be the
  2420. ## correct logic. -- fx
  2421. ## We must check for HAVE_LIBLOCKFILE too, as movemail does.
  2422. ## liblockfile is a Free Software replacement for libmail, used on
  2423. ## Debian systems and elsewhere. -rfr.
  2424. gnu-*)
  2425. mail_lock="flock"
  2426. if test $have_mail = yes || test $have_lockfile = yes; then
  2427. test $ac_cv_header_maillock_h = yes && mail_lock=no
  2428. fi
  2429. ;;
  2430. esac
  2431. BLESSMAIL_TARGET=
  2432. case "$mail_lock" in
  2433. flock) AC_DEFINE(MAIL_USE_FLOCK, 1, [Define if the mailer uses flock to interlock the mail spool.]) ;;
  2434. lockf) AC_DEFINE(MAIL_USE_LOCKF, 1, [Define if the mailer uses lockf to interlock the mail spool.]) ;;
  2435. *) BLESSMAIL_TARGET="need-blessmail" ;;
  2436. esac
  2437. AC_SUBST(BLESSMAIL_TARGET)
  2438. AC_CHECK_FUNCS(gethostname getdomainname \
  2439. rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
  2440. random lrand48 logb frexp fmod rint cbrt ftime setsid \
  2441. strerror fpathconf select euidaccess getpagesize tzset setlocale \
  2442. utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
  2443. __fpending mblen mbrlen mbsinit strsignal setitimer ualarm \
  2444. sendto recvfrom getsockopt setsockopt getsockname getpeername \
  2445. gai_strerror mkstemp getline getdelim mremap fsync sync \
  2446. difftime mempcpy mblen mbrlen posix_memalign \
  2447. cfmakeraw cfsetspeed copysign __executable_start)
  2448. dnl Cannot use AC_CHECK_FUNCS
  2449. AC_CACHE_CHECK([for __builtin_unwind_init],
  2450. emacs_cv_func___builtin_unwind_init,
  2451. [AC_LINK_IFELSE([AC_LANG_PROGRAM([], [__builtin_unwind_init ();])],
  2452. emacs_cv_func___builtin_unwind_init=yes,
  2453. emacs_cv_func___builtin_unwind_init=no)])
  2454. if test $emacs_cv_func___builtin_unwind_init = yes; then
  2455. AC_DEFINE(HAVE___BUILTIN_UNWIND_INIT, 1,
  2456. [Define to 1 if you have the `__builtin_unwind_init' function.])
  2457. fi
  2458. AC_CHECK_HEADERS(sys/un.h)
  2459. AC_FUNC_FSEEKO
  2460. AC_FUNC_GETPGRP
  2461. # UNIX98 PTYs.
  2462. AC_CHECK_FUNCS(grantpt)
  2463. # PTY-related GNU extensions.
  2464. AC_CHECK_FUNCS(getpt)
  2465. # Check this now, so that we will NOT find the above functions in ncurses.
  2466. # That is because we have not set up to link ncurses in lib-src.
  2467. # It's better to believe a function is not available
  2468. # than to expect to find it in ncurses.
  2469. # Also we need tputs and friends to be able to build at all.
  2470. AC_MSG_CHECKING([for library containing tputs])
  2471. # Run a test program that contains a call to tputs, a call that is
  2472. # never executed. This tests whether a pre-'main' dynamic linker
  2473. # works with the library. It's too much trouble to actually call
  2474. # tputs in the test program, due to portability hassles. When
  2475. # cross-compiling, assume the test program will run if it links.
  2476. AC_DEFUN([tputs_link_source], [
  2477. AC_LANG_SOURCE(
  2478. [[extern void tputs (const char *, int, int (*)(int));
  2479. int main (int argc, char **argv)
  2480. {
  2481. if (argc == 10000)
  2482. tputs (argv[0], 0, 0);
  2483. return 0;
  2484. }]])
  2485. ])
  2486. # Maybe curses should be tried earlier?
  2487. # See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9736#35
  2488. for tputs_library in '' ncurses terminfo termcap curses; do
  2489. OLIBS=$LIBS
  2490. if test -z "$tputs_library"; then
  2491. LIBS_TERMCAP=
  2492. msg='none required'
  2493. else
  2494. LIBS_TERMCAP=-l$tputs_library
  2495. msg=$LIBS_TERMCAP
  2496. LIBS="$LIBS_TERMCAP $LIBS"
  2497. fi
  2498. AC_RUN_IFELSE([tputs_link_source], [], [msg=no],
  2499. [AC_LINK_IFELSE([tputs_link_source], [], [msg=no])])
  2500. LIBS=$OLIBS
  2501. if test "X$msg" != Xno; then
  2502. break
  2503. fi
  2504. done
  2505. AC_MSG_RESULT([$msg])
  2506. if test "X$msg" = Xno; then
  2507. AC_MSG_ERROR([The required function `tputs' was not found in any library.
  2508. These libraries were tried: libncurses, libterminfo, libtermcap, libcurses.
  2509. Please try installing whichever of these libraries is most appropriate
  2510. for your system, together with its header files.
  2511. For example, a libncurses-dev(el) or similar package.])
  2512. fi
  2513. # Must define this when any termcap library is found.
  2514. AC_DEFINE(HAVE_LIBNCURSES, 1,
  2515. [Define to 1 if you have the `ncurses' library (-lncurses).])
  2516. ## FIXME This was the cpp logic, but I am not sure it is right.
  2517. ## The above test has not necessarily found libncurses.
  2518. HAVE_LIBNCURSES=yes
  2519. ## Use terminfo instead of termcap?
  2520. ## Note only system files NOT using terminfo are:
  2521. ## freebsd < 40000, ms-w32, msdos, netbsd < 599002500, and
  2522. ## darwin|gnu without ncurses.
  2523. TERMINFO=no
  2524. case "$opsys" in
  2525. ## cygwin: Fewer environment variables to go wrong, more terminal types.
  2526. ## hpux10-20: Use the system provided termcap(3) library.
  2527. ## openbsd: David Mazieres <dm@reeducation-labor.lcs.mit.edu> says this
  2528. ## is necessary. Otherwise Emacs dumps core when run -nw.
  2529. aix4-2|cygwin|hpux*|irix6-5|openbsd|sol2*|unixware) TERMINFO=yes ;;
  2530. ## darwin: Prevents crashes when running Emacs in Terminal.app under 10.2.
  2531. ## The ncurses library has been moved out of the System framework in
  2532. ## Mac OS X 10.2. So if configure detects it, set the command-line
  2533. ## option to use it.
  2534. darwin|gnu*)
  2535. ## (HAVE_LIBNCURSES was not always true, but is since 2010-03-18.)
  2536. if test "x$HAVE_LIBNCURSES" = "xyes"; then
  2537. TERMINFO=yes
  2538. LIBS_TERMCAP="-lncurses"
  2539. fi
  2540. ;;
  2541. freebsd)
  2542. AC_MSG_CHECKING([whether FreeBSD is new enough to use terminfo])
  2543. AC_CACHE_VAL(emacs_cv_freebsd_terminfo,
  2544. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <osreldate.h>]],
  2545. [[#if __FreeBSD_version < 400000
  2546. fail;
  2547. #endif
  2548. ]])], emacs_cv_freebsd_terminfo=yes, emacs_cv_freebsd_terminfo=no)])
  2549. AC_MSG_RESULT($emacs_cv_freebsd_terminfo)
  2550. if test $emacs_cv_freebsd_terminfo = yes; then
  2551. TERMINFO=yes
  2552. LIBS_TERMCAP="-lncurses"
  2553. else
  2554. LIBS_TERMCAP="-ltermcap"
  2555. fi
  2556. ;;
  2557. netbsd)
  2558. if test "x$LIBS_TERMCAP" = "x-lterminfo"; then
  2559. TERMINFO=yes
  2560. else
  2561. LIBS_TERMCAP="-ltermcap"
  2562. fi
  2563. ;;
  2564. esac
  2565. case "$opsys" in
  2566. ## hpux: Make sure we get select from libc rather than from libcurses
  2567. ## because libcurses on HPUX 10.10 has a broken version of select.
  2568. ## We used to use -lc -lcurses, but this may be cleaner.
  2569. hpux*) LIBS_TERMCAP="-ltermcap" ;;
  2570. openbsd) LIBS_TERMCAP="-lncurses" ;;
  2571. ## Must use system termcap, if we use any termcap. It does special things.
  2572. sol2*) test "$TERMINFO" != yes && LIBS_TERMCAP="-ltermcap" ;;
  2573. esac
  2574. TERMCAP_OBJ=tparam.o
  2575. if test $TERMINFO = yes; then
  2576. AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.])
  2577. TERMCAP_OBJ=terminfo.o
  2578. fi
  2579. AC_SUBST(LIBS_TERMCAP)
  2580. AC_SUBST(TERMCAP_OBJ)
  2581. # Do we have res_init, for detecting changes in /etc/resolv.conf?
  2582. resolv=no
  2583. AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>
  2584. #include <arpa/nameser.h>
  2585. #include <resolv.h>]],
  2586. [[return res_init();]])],
  2587. have_res_init=yes, have_res_init=no)
  2588. if test "$have_res_init" = no; then
  2589. OLIBS="$LIBS"
  2590. LIBS="$LIBS -lresolv"
  2591. AC_MSG_CHECKING(for res_init with -lresolv)
  2592. AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>
  2593. #include <arpa/nameser.h>
  2594. #include <resolv.h>]],
  2595. [[return res_init();]])],
  2596. have_res_init=yes, have_res_init=no)
  2597. AC_MSG_RESULT($have_res_init)
  2598. if test "$have_res_init" = yes ; then
  2599. resolv=yes
  2600. fi
  2601. LIBS="$OLIBS"
  2602. fi
  2603. if test "$have_res_init" = yes; then
  2604. AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
  2605. fi
  2606. # Do we need the Hesiod library to provide the support routines?
  2607. LIBHESIOD=
  2608. if test "$with_hesiod" != no ; then
  2609. # Don't set $LIBS here -- see comments above. FIXME which comments?
  2610. AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
  2611. [AC_CHECK_LIB(resolv, res_send, resolv=yes,
  2612. [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
  2613. if test "$resolv" = yes ; then
  2614. RESOLVLIB=-lresolv
  2615. else
  2616. RESOLVLIB=
  2617. fi
  2618. AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
  2619. hesiod=yes, :, $RESOLVLIB)])
  2620. if test x"$hesiod" = xyes; then
  2621. AC_DEFINE(HAVE_LIBHESIOD, 1,
  2622. [Define to 1 if you have the hesiod library (-lhesiod).])
  2623. LIBHESIOD=-lhesiod
  2624. fi
  2625. fi
  2626. AC_SUBST(LIBHESIOD)
  2627. # Do we need libresolv (due to res_init or Hesiod)?
  2628. if test "$resolv" = yes ; then
  2629. AC_DEFINE(HAVE_LIBRESOLV, 1,
  2630. [Define to 1 if you have the resolv library (-lresolv).])
  2631. LIBRESOLV=-lresolv
  2632. else
  2633. LIBRESOLV=
  2634. fi
  2635. AC_SUBST(LIBRESOLV)
  2636. # These tell us which Kerberos-related libraries to use.
  2637. COM_ERRLIB=
  2638. CRYPTOLIB=
  2639. KRB5LIB=
  2640. DESLIB=
  2641. KRB4LIB=
  2642. if test "${with_kerberos}" != no; then
  2643. AC_CHECK_LIB(com_err, com_err, have_com_err=yes, have_com_err=no)
  2644. if test $have_com_err = yes; then
  2645. COM_ERRLIB=-lcom_err
  2646. LIBS="$COM_ERRLIB $LIBS"
  2647. AC_DEFINE(HAVE_LIBCOM_ERR, 1, [Define to 1 if you have the `com_err' library (-lcom_err).])
  2648. fi
  2649. AC_CHECK_LIB(crypto, mit_des_cbc_encrypt, have_crypto=yes, have_crypto=no)
  2650. if test $have_crypto = yes; then
  2651. CRYPTOLIB=-lcrypto
  2652. LIBS="$CRYPTOLIB $LIBS"
  2653. AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the `crypto' library (-lcrypto).])
  2654. fi
  2655. AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt, have_k5crypto=yes, have_k5crypto=no)
  2656. if test $have_k5crypto = yes; then
  2657. CRYPTOLIB=-lk5crypto
  2658. LIBS="$CRYPTOLIB $LIBS"
  2659. AC_DEFINE(HAVE_LIBK5CRYPTO, 1, [Define to 1 if you have the `k5crypto' library (-lk5crypto).])
  2660. fi
  2661. AC_CHECK_LIB(krb5, krb5_init_context, have_krb5=yes, have_krb5=no)
  2662. if test $have_krb5=yes; then
  2663. KRB5LIB=-lkrb5
  2664. LIBS="$KRB5LIB $LIBS"
  2665. AC_DEFINE(HAVE_LIBKRB5, 1, [Define to 1 if you have the `krb5' library (-lkrb5).])
  2666. fi
  2667. dnl FIXME Simplify. Does not match 22 logic, thanks to default_off?
  2668. if test "${with_kerberos5}" = no; then
  2669. AC_CHECK_LIB(des425, des_cbc_encrypt, have_des425=yes, have_des425=no )
  2670. if test $have_des425 = yes; then
  2671. DESLIB=-ldes425
  2672. LIBS="$DESLIB $LIBS"
  2673. AC_DEFINE(HAVE_LIBDES425, 1, [Define to 1 if you have the `des425' library (-ldes425).])
  2674. else
  2675. AC_CHECK_LIB(des, des_cbc_encrypt, have_des=yes, have_des=no)
  2676. if test $have_des = yes; then
  2677. DESLIB=-ldes
  2678. LIBS="$DESLIB $LIBS"
  2679. AC_DEFINE(HAVE_LIBDES, 1, [Define to 1 if you have the `des' library (-ldes).])
  2680. fi
  2681. fi
  2682. AC_CHECK_LIB(krb4, krb_get_cred, have_krb4=yes, have_krb4=no)
  2683. if test $have_krb4 = yes; then
  2684. KRB4LIB=-lkrb4
  2685. LIBS="$KRB4LIB $LIBS"
  2686. AC_DEFINE(HAVE_LIBKRB4, 1, [Define to 1 if you have the `krb4' library (-lkrb4).])
  2687. else
  2688. AC_CHECK_LIB(krb, krb_get_cred, have_krb=yes, have_krb=no)
  2689. if test $have_krb = yes; then
  2690. KRB4LIB=-lkrb
  2691. LIBS="$KRB4LIB $LIBS"
  2692. AC_DEFINE(HAVE_LIBKRB, 1, [Define to 1 if you have the `krb' library (-lkrb).])
  2693. fi
  2694. fi
  2695. fi
  2696. if test "${with_kerberos5}" != no; then
  2697. AC_CHECK_HEADERS(krb5.h,
  2698. [AC_CHECK_MEMBERS([krb5_error.text, krb5_error.e_text],,,
  2699. [#include <krb5.h>])])
  2700. else
  2701. AC_CHECK_HEADERS(des.h,,
  2702. [AC_CHECK_HEADERS(kerberosIV/des.h,,
  2703. [AC_CHECK_HEADERS(kerberos/des.h)])])
  2704. AC_CHECK_HEADERS(krb.h,,
  2705. [AC_CHECK_HEADERS(kerberosIV/krb.h,,
  2706. [AC_CHECK_HEADERS(kerberos/krb.h)])])
  2707. fi
  2708. AC_CHECK_HEADERS(com_err.h)
  2709. fi
  2710. AC_SUBST(COM_ERRLIB)
  2711. AC_SUBST(CRYPTOLIB)
  2712. AC_SUBST(KRB5LIB)
  2713. AC_SUBST(DESLIB)
  2714. AC_SUBST(KRB4LIB)
  2715. AC_MSG_CHECKING(whether localtime caches TZ)
  2716. AC_CACHE_VAL(emacs_cv_localtime_cache,
  2717. [if test x$ac_cv_func_tzset = xyes; then
  2718. AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
  2719. char TZ_GMT0[] = "TZ=GMT0";
  2720. char TZ_PST8[] = "TZ=PST8";
  2721. main()
  2722. {
  2723. time_t now = time ((time_t *) 0);
  2724. int hour_GMT0, hour_unset;
  2725. if (putenv (TZ_GMT0) != 0)
  2726. exit (1);
  2727. hour_GMT0 = localtime (&now)->tm_hour;
  2728. unsetenv("TZ");
  2729. hour_unset = localtime (&now)->tm_hour;
  2730. if (putenv (TZ_PST8) != 0)
  2731. exit (1);
  2732. if (localtime (&now)->tm_hour == hour_GMT0)
  2733. exit (1);
  2734. unsetenv("TZ");
  2735. if (localtime (&now)->tm_hour != hour_unset)
  2736. exit (1);
  2737. exit (0);
  2738. }]])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
  2739. [# If we have tzset, assume the worst when cross-compiling.
  2740. emacs_cv_localtime_cache=yes])
  2741. else
  2742. # If we lack tzset, report that localtime does not cache TZ,
  2743. # since we can't invalidate the cache if we don't have tzset.
  2744. emacs_cv_localtime_cache=no
  2745. fi])dnl
  2746. AC_MSG_RESULT($emacs_cv_localtime_cache)
  2747. if test $emacs_cv_localtime_cache = yes; then
  2748. AC_DEFINE(LOCALTIME_CACHE, 1,
  2749. [Define to 1 if localtime caches TZ.])
  2750. fi
  2751. if test "x$HAVE_TIMEVAL" = xyes; then
  2752. AC_CHECK_FUNCS(gettimeofday)
  2753. if test $ac_cv_func_gettimeofday = yes; then
  2754. AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
  2755. emacs_cv_gettimeofday_two_arguments,
  2756. [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  2757. #ifdef TIME_WITH_SYS_TIME
  2758. #include <sys/time.h>
  2759. #include <time.h>
  2760. #else
  2761. #ifdef HAVE_SYS_TIME_H
  2762. #include <sys/time.h>
  2763. #else
  2764. #include <time.h>
  2765. #endif
  2766. #endif]],
  2767. [[struct timeval time;
  2768. gettimeofday (&time, 0);]])],
  2769. emacs_cv_gettimeofday_two_arguments=yes,
  2770. emacs_cv_gettimeofday_two_arguments=no)])
  2771. if test $emacs_cv_gettimeofday_two_arguments = no; then
  2772. AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT, 1,
  2773. [Define to 1 if gettimeofday accepts only one argument.])
  2774. fi
  2775. fi
  2776. fi
  2777. ok_so_far=yes
  2778. AC_CHECK_FUNC(socket, , ok_so_far=no)
  2779. if test $ok_so_far = yes; then
  2780. AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
  2781. fi
  2782. if test $ok_so_far = yes; then
  2783. AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
  2784. fi
  2785. if test $ok_so_far = yes; then
  2786. dnl Fixme: Not used. Should this be HAVE_SOCKETS?
  2787. AC_DEFINE(HAVE_INET_SOCKETS, 1,
  2788. [Define to 1 if you have inet sockets.])
  2789. fi
  2790. if test -f /usr/lpp/X11/bin/smt.exp; then
  2791. AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
  2792. [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
  2793. fi
  2794. AC_MSG_CHECKING(whether system supports dynamic ptys)
  2795. if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
  2796. AC_MSG_RESULT(yes)
  2797. AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
  2798. else
  2799. AC_MSG_RESULT(no)
  2800. fi
  2801. AC_FUNC_FORK
  2802. AC_CHECK_FUNCS(snprintf)
  2803. dnl Adapted from Haible's version.
  2804. AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
  2805. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
  2806. [[char* cs = nl_langinfo(CODESET);]])],
  2807. emacs_cv_langinfo_codeset=yes,
  2808. emacs_cv_langinfo_codeset=no)
  2809. ])
  2810. if test $emacs_cv_langinfo_codeset = yes; then
  2811. AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
  2812. [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
  2813. fi
  2814. AC_TYPE_MBSTATE_T
  2815. AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
  2816. [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void fred (int x[__restrict]);]], [[]])],
  2817. emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
  2818. if test "$emacs_cv_c_restrict_arr" = yes; then
  2819. AC_DEFINE(__restrict_arr, __restrict,
  2820. [Define to compiler's equivalent of C99 restrict keyword in array
  2821. declarations. Define as empty for no equivalent.])
  2822. fi
  2823. dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
  2824. dnl how the tty code is related to POSIX and/or other versions of termios.
  2825. dnl The following looks like a useful start.
  2826. dnl
  2827. dnl AC_SYS_POSIX_TERMIOS
  2828. dnl if test $ac_cv_sys_posix_termios = yes; then
  2829. dnl AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions
  2830. dnl and macros for terminal control.])
  2831. dnl AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
  2832. dnl fi
  2833. # Set up the CFLAGS for real compilation, so we can substitute it.
  2834. CFLAGS="$REAL_CFLAGS"
  2835. CPPFLAGS="$REAL_CPPFLAGS"
  2836. ## Hack to detect a buggy GCC version.
  2837. if test "x$GCC" = xyes \
  2838. && test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
  2839. && test x"`echo $CFLAGS | grep '\-O@<:@23@:>@'`" != x \
  2840. && test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
  2841. AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'.])
  2842. fi
  2843. version=$PACKAGE_VERSION
  2844. ### Specify what sort of things we'll be editing into Makefile and config.h.
  2845. ### Use configuration here uncanonicalized to avoid exceeding size limits.
  2846. AC_SUBST(version)
  2847. AC_SUBST(configuration)
  2848. ## Unused?
  2849. AC_SUBST(canonical)
  2850. AC_SUBST(srcdir)
  2851. AC_SUBST(prefix)
  2852. AC_SUBST(exec_prefix)
  2853. AC_SUBST(bindir)
  2854. AC_SUBST(datadir)
  2855. AC_SUBST(sharedstatedir)
  2856. AC_SUBST(libexecdir)
  2857. AC_SUBST(mandir)
  2858. AC_SUBST(infodir)
  2859. AC_SUBST(lispdir)
  2860. AC_SUBST(locallisppath)
  2861. AC_SUBST(lisppath)
  2862. AC_SUBST(x_default_search_path)
  2863. AC_SUBST(etcdir)
  2864. AC_SUBST(archlibdir)
  2865. AC_SUBST(docdir)
  2866. AC_SUBST(bitmapdir)
  2867. AC_SUBST(gamedir)
  2868. AC_SUBST(gameuser)
  2869. ## FIXME? Nothing uses @LD_SWITCH_X_SITE@.
  2870. ## src/Makefile.in did add LD_SWITCH_X_SITE (as a cpp define) to the
  2871. ## end of LIBX_BASE, but nothing ever set it.
  2872. AC_SUBST(LD_SWITCH_X_SITE)
  2873. AC_SUBST(C_SWITCH_X_SITE)
  2874. AC_SUBST(C_SWITCH_X_SYSTEM)
  2875. AC_SUBST(CFLAGS)
  2876. ## Used in lwlib/Makefile.in.
  2877. AC_SUBST(X_TOOLKIT_TYPE)
  2878. if test -n "${machfile}"; then
  2879. M_FILE="\$(srcdir)/${machfile}"
  2880. else
  2881. M_FILE=
  2882. fi
  2883. S_FILE="\$(srcdir)/${opsysfile}"
  2884. AC_SUBST(M_FILE)
  2885. AC_SUBST(S_FILE)
  2886. AC_SUBST(ns_appdir)
  2887. AC_SUBST(ns_appbindir)
  2888. AC_SUBST(ns_appresdir)
  2889. AC_SUBST(ns_appsrc)
  2890. AC_SUBST(GNU_OBJC_CFLAGS)
  2891. AC_SUBST(OTHER_FILES)
  2892. AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}",
  2893. [Define to the canonical Emacs configuration name.])
  2894. AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
  2895. [Define to the options passed to configure.])
  2896. if test -n "$machfile"; then
  2897. AC_DEFINE_UNQUOTED(config_machfile, "${machfile}",
  2898. [Define to the used machine dependent file.])
  2899. fi
  2900. AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
  2901. [Define to the used os dependent file.])
  2902. XMENU_OBJ=
  2903. XOBJ=
  2904. FONT_OBJ=
  2905. if test "${HAVE_X_WINDOWS}" = "yes" ; then
  2906. AC_DEFINE(HAVE_X_WINDOWS, 1,
  2907. [Define to 1 if you want to use the X window system.])
  2908. XMENU_OBJ=xmenu.o
  2909. XOBJ="xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o xsettings.o xgselect.o"
  2910. FONT_OBJ=xfont.o
  2911. if test "$HAVE_XFT" = "yes"; then
  2912. FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
  2913. elif test "$HAVE_FREETYPE" = "yes"; then
  2914. FONT_OBJ="$FONT_OBJ ftfont.o ftxfont.o"
  2915. fi
  2916. AC_SUBST(FONT_OBJ)
  2917. fi
  2918. AC_SUBST(XMENU_OBJ)
  2919. AC_SUBST(XOBJ)
  2920. AC_SUBST(FONT_OBJ)
  2921. WIDGET_OBJ=
  2922. MOTIF_LIBW=
  2923. if test "${USE_X_TOOLKIT}" != "none" ; then
  2924. WIDGET_OBJ=widget.o
  2925. AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
  2926. if test "${USE_X_TOOLKIT}" = "LUCID"; then
  2927. AC_DEFINE(USE_LUCID, 1, [Define to 1 if using the Lucid X toolkit.])
  2928. elif test "${USE_X_TOOLKIT}" = "MOTIF"; then
  2929. AC_DEFINE(USE_MOTIF, 1, [Define to 1 if using the Motif X toolkit.])
  2930. MOTIF_LIBW=-lXm
  2931. case "$opsys" in
  2932. gnu-linux)
  2933. ## Paul Abrahams <abrahams at equinox.shaysnet.com> says this is needed.
  2934. MOTIF_LIBW="$MOTIF_LIBW -lXpm"
  2935. ;;
  2936. unixware)
  2937. ## Richard Anthony Ryan <ryanr at ellingtn.ftc.nrcs.usda.gov>
  2938. ## says -lXimp is needed in UNIX_SV ... 4.2 1.1.2.
  2939. MOTIF_LIBW="MOTIF_LIBW -lXimp"
  2940. ;;
  2941. aix4-2)
  2942. ## olson@mcs.anl.gov says -li18n is needed by -lXm.
  2943. MOTIF_LIBW="$MOTIF_LIBW -li18n"
  2944. ;;
  2945. esac
  2946. MOTIF_LIBW="$MOTIF_LIBW $LIBXP"
  2947. fi
  2948. fi
  2949. AC_SUBST(WIDGET_OBJ)
  2950. TOOLKIT_LIBW=
  2951. case "$USE_X_TOOLKIT" in
  2952. MOTIF) TOOLKIT_LIBW="$MOTIF_LIBW" ;;
  2953. LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
  2954. none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
  2955. esac
  2956. AC_SUBST(TOOLKIT_LIBW)
  2957. if test "$USE_X_TOOLKIT" = "none"; then
  2958. LIBXT_OTHER="\$(LIBXSM)"
  2959. OLDXMENU_TARGET="really-oldXMenu"
  2960. else
  2961. LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
  2962. OLDXMENU_TARGET="really-lwlib"
  2963. fi
  2964. AC_SUBST(LIBXT_OTHER)
  2965. ## The X Menu stuff is present in the X10 distribution, but missing
  2966. ## from X11. If we have X10, just use the installed library;
  2967. ## otherwise, use our own copy.
  2968. if test "${HAVE_X11}" = "yes" ; then
  2969. AC_DEFINE(HAVE_X11, 1,
  2970. [Define to 1 if you want to use version 11 of X windows.
  2971. Otherwise, Emacs expects to use version 10.])
  2972. if test "$USE_X_TOOLKIT" = "none"; then
  2973. OLDXMENU="\${oldXMenudir}/libXMenu11.a"
  2974. else
  2975. OLDXMENU="\${lwlibdir}/liblw.a"
  2976. fi
  2977. LIBXMENU="\$(OLDXMENU)"
  2978. LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)"
  2979. OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}"
  2980. else
  2981. ## For a syntactically valid Makefile; not actually used for anything.
  2982. ## See comments in src/Makefile.in.
  2983. OLDXMENU=nothing
  2984. ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?).
  2985. if test "${HAVE_X_WINDOWS}" = "yes"; then
  2986. LIBXMENU="-lXMenu"
  2987. else
  2988. LIBXMENU=
  2989. fi
  2990. LIBX_OTHER=
  2991. OLDXMENU_DEPS=
  2992. fi
  2993. if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then
  2994. OLDXMENU_TARGET=
  2995. OLDXMENU=nothing
  2996. LIBXMENU=
  2997. OLDXMENU_DEPS=
  2998. fi
  2999. AC_SUBST(OLDXMENU_TARGET)
  3000. AC_SUBST(OLDXMENU)
  3001. AC_SUBST(LIBXMENU)
  3002. AC_SUBST(LIBX_OTHER)
  3003. AC_SUBST(OLDXMENU_DEPS)
  3004. if test "${HAVE_MENUS}" = "yes" ; then
  3005. AC_DEFINE(HAVE_MENUS, 1,
  3006. [Define to 1 if you have mouse menus.
  3007. (This is automatic if you use X, but the option to specify it remains.)
  3008. It is also defined with other window systems that support xmenu.c.])
  3009. fi
  3010. if test "${GNU_MALLOC}" = "yes" ; then
  3011. AC_DEFINE(GNU_MALLOC, 1,
  3012. [Define to 1 if you want to use the GNU memory allocator.])
  3013. fi
  3014. RALLOC_OBJ=
  3015. if test "${REL_ALLOC}" = "yes" ; then
  3016. AC_DEFINE(REL_ALLOC, 1,
  3017. [Define REL_ALLOC if you want to use the relocating allocator for
  3018. buffer space.])
  3019. test "$system_malloc" != "yes" && RALLOC_OBJ=ralloc.o
  3020. fi
  3021. AC_SUBST(RALLOC_OBJ)
  3022. if test "$opsys" = "cygwin"; then
  3023. CYGWIN_OBJ="sheap.o"
  3024. ## Cygwin differs because of its unexec().
  3025. PRE_ALLOC_OBJ=
  3026. POST_ALLOC_OBJ=lastfile.o
  3027. else
  3028. CYGWIN_OBJ=
  3029. PRE_ALLOC_OBJ=lastfile.o
  3030. POST_ALLOC_OBJ=
  3031. fi
  3032. AC_SUBST(CYGWIN_OBJ)
  3033. AC_SUBST(PRE_ALLOC_OBJ)
  3034. AC_SUBST(POST_ALLOC_OBJ)
  3035. # Configure gnulib here, now that we know LIBS.
  3036. gl_ASSERT_NO_GNULIB_POSIXCHECK
  3037. gl_ASSERT_NO_GNULIB_TESTS
  3038. gl_INIT
  3039. case "$opsys" in
  3040. aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
  3041. darwin)
  3042. ## The -headerpad option tells ld (see man page) to leave room at the
  3043. ## end of the header for adding load commands. Needed for dumping.
  3044. ## 0x690 is the total size of 30 segment load commands (at 56
  3045. ## each); under Cocoa 31 commands are required.
  3046. if test "$HAVE_NS" = "yes"; then
  3047. libs_nsgui="-framework AppKit"
  3048. headerpad_extra=6C8
  3049. else
  3050. libs_nsgui=
  3051. headerpad_extra=690
  3052. fi
  3053. LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
  3054. ## This is here because src/Makefile.in did some extra fiddling around
  3055. ## with LD_SWITCH_SYSTEM. The cpp logic was:
  3056. ## #ifndef LD_SWITCH_SYSTEM
  3057. ## #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
  3058. ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
  3059. ## not using gcc, darwin system not on an alpha (ie darwin, since
  3060. ## darwin + alpha does not occur).
  3061. ## Because this was done in src/Makefile.in, the resulting part of
  3062. ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link).
  3063. ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS,
  3064. ## rather than LD_SWITCH_SYSTEM.
  3065. test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
  3066. LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
  3067. ;;
  3068. ## LD_SWITCH_X_SITE_AUX is a -R option saying where to find X at run-time.
  3069. ## When handled by cpp, this was in LD_SWITCH_SYSTEM. However, at
  3070. ## the point where configure sourced the s/*.h file, LD_SWITCH_X_SITE_AUX
  3071. ## had not yet been defined and was expanded to null. Hence LD_SWITCH_SYSTEM
  3072. ## had different values in configure (in ac_link) and src/Makefile.in.
  3073. ## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
  3074. gnu*) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_AUX_RPATH)" ;;
  3075. *) LD_SWITCH_SYSTEM_TEMACS= ;;
  3076. esac
  3077. if test "$NS_IMPL_GNUSTEP" = "yes"; then
  3078. LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread"
  3079. fi
  3080. AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
  3081. LD_FIRSTFLAG=
  3082. ORDINARY_LINK=
  3083. case "$opsys" in
  3084. ## gnu: GNU needs its own crt0.
  3085. aix4-2|cygwin|darwin|gnu|hpux*|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
  3086. ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the
  3087. ## library search parth, i.e. it won't search /usr/lib for libc and
  3088. ## friends. Using -nostartfiles instead avoids this problem, and
  3089. ## will also work on earlier NetBSD releases.
  3090. netbsd|openbsd) LD_FIRSTFLAG="-nostartfiles" ;;
  3091. ## macpcc: NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says
  3092. ## MkLinux/LinuxPPC needs this.
  3093. ## ibms390x only supports opsys = gnu-linux so it can be added here.
  3094. gnu-*)
  3095. case "$machine" in
  3096. macppc|ibms390x) LD_FIRSTFLAG="-nostdlib" ;;
  3097. esac
  3098. ;;
  3099. esac
  3100. if test "x$ORDINARY_LINK" = "xyes"; then
  3101. LD_FIRSTFLAG=""
  3102. AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.])
  3103. ## The system files defining neither ORDINARY_LINK nor LD_FIRSTFLAG are:
  3104. ## freebsd, gnu-* not on macppc|ibms390x.
  3105. elif test "x$GCC" = "xyes" && test "x$LD_FIRSTFLAG" = "x"; then
  3106. ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
  3107. ## places that are difficult to figure out at make time. Fortunately,
  3108. ## these same versions allow you to pass arbitrary flags on to the
  3109. ## linker, so there is no reason not to use it as a linker.
  3110. ##
  3111. ## Well, it is not quite perfect. The "-nostdlib" keeps GCC from
  3112. ## searching for libraries in its internal directories, so we have to
  3113. ## ask GCC explicitly where to find libgcc.a (LIB_GCC below).
  3114. LD_FIRSTFLAG="-nostdlib"
  3115. fi
  3116. ## FIXME? What setting of EDIT_LDFLAGS should this have?
  3117. test "$NS_IMPL_GNUSTEP" = "yes" && LD_FIRSTFLAG="-rdynamic"
  3118. AC_SUBST(LD_FIRSTFLAG)
  3119. ## FIXME? The logic here is not precisely the same as that above.
  3120. ## There is no check here for a pre-defined LD_FIRSTFLAG.
  3121. ## Should we only be setting LIB_GCC if LD ~ -nostdlib?
  3122. LIB_GCC=
  3123. if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
  3124. case "$opsys" in
  3125. freebsd|netbsd|openbsd) LIB_GCC= ;;
  3126. gnu-*)
  3127. ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
  3128. ## build on ARM EABI under GNU/Linux. (Bug#5518)
  3129. case $host_cpu in
  3130. arm*)
  3131. LIB_GCC="-lgcc_s"
  3132. ;;
  3133. *)
  3134. ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
  3135. ## immediately undefine it again and redefine it to empty.
  3136. ## Was the C_SWITCH_X_SITE part really necessary?
  3137. ## LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name`
  3138. LIB_GCC=
  3139. ;;
  3140. esac
  3141. ;;
  3142. ## Ask GCC where to find libgcc.a.
  3143. *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;;
  3144. esac
  3145. fi dnl if $GCC
  3146. AC_SUBST(LIB_GCC)
  3147. ## If we're using X11/GNUstep, define some consequences.
  3148. if test "$HAVE_X_WINDOWS" = "yes" || test "$HAVE_NS" = "yes"; then
  3149. AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
  3150. AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
  3151. fi
  3152. AH_TOP([/* GNU Emacs site configuration template file.
  3153. Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2012
  3154. Free Software Foundation, Inc.
  3155. This file is part of GNU Emacs.
  3156. GNU Emacs is free software: you can redistribute it and/or modify
  3157. it under the terms of the GNU General Public License as published by
  3158. the Free Software Foundation, either version 3 of the License, or
  3159. (at your option) any later version.
  3160. GNU Emacs is distributed in the hope that it will be useful,
  3161. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3162. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  3163. GNU General Public License for more details.
  3164. You should have received a copy of the GNU General Public License
  3165. along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
  3166. /* No code in Emacs #includes config.h twice, but some bits of code
  3167. intended to work with other packages as well (like gmalloc.c)
  3168. think they can include it as many times as they like. */
  3169. #ifndef EMACS_CONFIG_H
  3170. #define EMACS_CONFIG_H
  3171. ])dnl
  3172. AH_BOTTOM([
  3173. /* On AIX 3 this must be included before any other include file. */
  3174. #include <alloca.h>
  3175. #if ! HAVE_ALLOCA
  3176. # error "alloca not available on this machine"
  3177. #endif
  3178. /* Define AMPERSAND_FULL_NAME if you use the convention
  3179. that & in the full name stands for the login id. */
  3180. /* Turned on June 1996 supposing nobody will mind it. */
  3181. #define AMPERSAND_FULL_NAME
  3182. /* `subprocesses' should be defined if you want to
  3183. have code for asynchronous subprocesses
  3184. (as used in M-x compile and M-x shell).
  3185. Only MSDOS does not support this (it overrides
  3186. this in its config_opsysfile below). */
  3187. #define subprocesses
  3188. /* Include the os and machine dependent files. */
  3189. #include config_opsysfile
  3190. #ifdef config_machfile
  3191. # include config_machfile
  3192. #endif
  3193. /* GNUstep needs a bit more pure memory. Of the existing knobs,
  3194. SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems.
  3195. (There is probably a better place to do this, but right now the
  3196. Cocoa side does this in s/darwin.h and we cannot parallel this
  3197. exactly since GNUstep is multi-OS. */
  3198. #if defined HAVE_NS && defined NS_IMPL_GNUSTEP
  3199. # define SYSTEM_PURESIZE_EXTRA 30000
  3200. #endif
  3201. #ifdef emacs /* Don't do this for lib-src. */
  3202. /* Tell regex.c to use a type compatible with Emacs. */
  3203. #define RE_TRANSLATE_TYPE Lisp_Object
  3204. #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
  3205. #ifdef make_number
  3206. /* If make_number is a macro, use it. */
  3207. #define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
  3208. #else
  3209. /* If make_number is a function, avoid it. */
  3210. #define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
  3211. #endif
  3212. #endif
  3213. /* These default definitions are good for almost all machines.
  3214. Any exceptions should override them in m/MACHINE.h.
  3215. They must be usable in preprocessor conditionals. */
  3216. #ifndef BITS_PER_CHAR
  3217. #define BITS_PER_CHAR 8
  3218. #endif
  3219. #ifndef BITS_PER_SHORT
  3220. #define BITS_PER_SHORT 16
  3221. #endif
  3222. #ifndef BITS_PER_INT
  3223. #define BITS_PER_INT 32
  3224. #endif
  3225. #ifndef BITS_PER_LONG
  3226. #ifdef _LP64
  3227. #define BITS_PER_LONG 64
  3228. #else
  3229. #define BITS_PER_LONG 32
  3230. #endif
  3231. #endif
  3232. #if !defined BITS_PER_LONG_LONG && HAVE_LONG_LONG_INT
  3233. #define BITS_PER_LONG_LONG 64
  3234. #endif
  3235. /* Define if the compiler supports function prototypes. It may do so but
  3236. not define __STDC__ (e.g. DEC C by default) or may define it as zero. */
  3237. #undef PROTOTYPES
  3238. #include <string.h>
  3239. #include <stdlib.h>
  3240. #if defined __GNUC__ && (__GNUC__ > 2 \
  3241. || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
  3242. #define NO_RETURN __attribute__ ((__noreturn__))
  3243. #else
  3244. #define NO_RETURN /* nothing */
  3245. #endif
  3246. #if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */
  3247. #define NO_INLINE __attribute__((noinline))
  3248. #else
  3249. #define NO_INLINE
  3250. #endif
  3251. #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))
  3252. #define EXTERNALLY_VISIBLE __attribute__((externally_visible))
  3253. #else
  3254. #define EXTERNALLY_VISIBLE
  3255. #endif
  3256. #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
  3257. # define ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
  3258. #else
  3259. # define ATTRIBUTE_FORMAT(spec) /* empty */
  3260. #endif
  3261. #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
  3262. # define ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
  3263. ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument))
  3264. #else
  3265. # define ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
  3266. ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
  3267. #endif
  3268. /* Some versions of GNU/Linux define noinline in their headers. */
  3269. #ifdef noinline
  3270. #undef noinline
  3271. #endif
  3272. /* These won't be used automatically yet. We also need to know, at least,
  3273. that the stack is continuous. */
  3274. #ifdef __GNUC__
  3275. # ifndef GC_SETJMP_WORKS
  3276. /* GC_SETJMP_WORKS is nearly always appropriate for GCC. */
  3277. # define GC_SETJMP_WORKS 1
  3278. # endif
  3279. #endif
  3280. #endif /* EMACS_CONFIG_H */
  3281. /*
  3282. Local Variables:
  3283. mode: c
  3284. End:
  3285. */
  3286. ])dnl
  3287. #### Report on what we decided to do.
  3288. #### Report GTK as a toolkit, even if it doesn't use Xt.
  3289. #### It makes printing result more understandable as using GTK sets
  3290. #### toolkit_scroll_bars to yes by default.
  3291. if test "${HAVE_GTK}" = "yes"; then
  3292. USE_X_TOOLKIT=GTK
  3293. fi
  3294. and_machfile=
  3295. if test -n "$machfile"; then
  3296. and_machfile=" and \`${machfile}'"
  3297. fi
  3298. echo "
  3299. Configured for \`${canonical}'.
  3300. Where should the build process find the source code? ${srcdir}
  3301. What operating system and machine description files should Emacs use?
  3302. \`${opsysfile}'${and_machfile}
  3303. What compiler should emacs be built with? ${CC} ${CFLAGS}
  3304. Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
  3305. Should Emacs use a relocating allocator for buffers? ${REL_ALLOC}
  3306. Should Emacs use mmap(2) for buffer allocation? $use_mmap_for_buffers
  3307. What window system should Emacs use? ${window_system}
  3308. What toolkit should Emacs use? ${USE_X_TOOLKIT}"
  3309. if test -n "${x_includes}"; then
  3310. echo " Where do we find X Windows header files? ${x_includes}"
  3311. else
  3312. echo " Where do we find X Windows header files? Standard dirs"
  3313. fi
  3314. if test -n "${x_libraries}"; then
  3315. echo " Where do we find X Windows libraries? ${x_libraries}"
  3316. else
  3317. echo " Where do we find X Windows libraries? Standard dirs"
  3318. fi
  3319. echo " Does Emacs use -lXaw3d? ${HAVE_XAW3D}"
  3320. echo " Does Emacs use -lXpm? ${HAVE_XPM}"
  3321. echo " Does Emacs use -ljpeg? ${HAVE_JPEG}"
  3322. echo " Does Emacs use -ltiff? ${HAVE_TIFF}"
  3323. echo " Does Emacs use a gif library? ${HAVE_GIF} $LIBGIF"
  3324. echo " Does Emacs use -lpng? ${HAVE_PNG}"
  3325. echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}"
  3326. echo " Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK}"
  3327. echo " Does Emacs use -lgpm? ${HAVE_GPM}"
  3328. echo " Does Emacs use -ldbus? ${HAVE_DBUS}"
  3329. echo " Does Emacs use -lgconf? ${HAVE_GCONF}"
  3330. echo " Does Emacs use GSettings? ${HAVE_GSETTINGS}"
  3331. echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}"
  3332. echo " Does Emacs use -lgnutls? ${HAVE_GNUTLS}"
  3333. echo " Does Emacs use -lxml2? ${HAVE_LIBXML2}"
  3334. echo " Does Emacs use -lfreetype? ${HAVE_FREETYPE}"
  3335. echo " Does Emacs use -lm17n-flt? ${HAVE_M17N_FLT}"
  3336. echo " Does Emacs use -lotf? ${HAVE_LIBOTF}"
  3337. echo " Does Emacs use -lxft? ${HAVE_XFT}"
  3338. echo " Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}"
  3339. echo
  3340. if test -n "${EMACSDATA}"; then
  3341. echo " Environment variable EMACSDATA set to: $EMACSDATA"
  3342. fi
  3343. if test -n "${EMACSDOC}"; then
  3344. echo " Environment variable EMACSDOC set to: $EMACSDOC"
  3345. fi
  3346. if test $USE_XASSERTS = yes; then
  3347. echo " Compiling with asserts turned on."
  3348. CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
  3349. fi
  3350. echo
  3351. if test "$HAVE_NS" = "yes"; then
  3352. echo
  3353. echo "You must run \"${MAKE-make} install\" in order to test the built application.
  3354. The installed application will go to nextstep/Emacs.app and can be
  3355. run or moved from there."
  3356. if test "$EN_NS_SELF_CONTAINED" = "yes"; then
  3357. echo "The application will be fully self-contained."
  3358. else
  3359. echo "The lisp resources for the application will be installed under ${prefix}.
  3360. You may need to run \"${MAKE-make} install\" with sudo. The application will fail
  3361. to run if these resources are not installed."
  3362. fi
  3363. echo
  3364. fi
  3365. # Remove any trailing slashes in these variables.
  3366. [test "${prefix}" != NONE &&
  3367. prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
  3368. test "${exec_prefix}" != NONE &&
  3369. exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
  3370. dnl Obviously there is duplication here wrt $SUBDIR_MAKEFILES.
  3371. dnl You _can_ use that variable in AC_CONFIG_FILES, so long as any directory
  3372. dnl using automake (ie lib/) is explicitly listed and not "hidden" in a variable
  3373. dnl (else you get "no `Makefile.am' found for any configure output").
  3374. dnl This will work, but you get a config.status that is not quite right
  3375. dnl (see http://lists.gnu.org/archive/html/bug-autoconf/2008-08/msg00028.html).
  3376. dnl That doesn't have any obvious consequences for Emacs, but on the whole
  3377. dnl it seems better to just live with the duplication.
  3378. SUBDIR_MAKEFILES="lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile"
  3379. AC_CONFIG_FILES([Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \
  3380. doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
  3381. doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile \
  3382. leim/Makefile])
  3383. dnl test/ is not present in release tarfiles.
  3384. opt_makefile=test/automated/Makefile
  3385. if test -f $srcdir/${opt_makefile}.in; then
  3386. SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
  3387. dnl Again, it's best not to use a variable. Though you can add
  3388. dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
  3389. AC_CONFIG_FILES([test/automated/Makefile])
  3390. fi
  3391. SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e 's|Makefile|Makefile.in|g'`
  3392. AC_SUBST(SUBDIR_MAKEFILES_IN)
  3393. dnl Make the necessary directories, if they don't exist.
  3394. AC_CONFIG_COMMANDS([mkdirs], [
  3395. for dir in etc lisp ; do
  3396. test -d ${dir} || mkdir ${dir}
  3397. done
  3398. ])
  3399. dnl You might wonder (I did) why epaths.h is generated by running make,
  3400. dnl rather than just letting configure generate it from epaths.in.
  3401. dnl One reason is that the various paths are not fully expanded (see above);
  3402. dnl eg gamedir=${prefix}/var/games/emacs.
  3403. dnl Secondly, the GNU Coding standards require that one should be able
  3404. dnl to run `make prefix=/some/where/else' and override the values set
  3405. dnl by configure. This also explains the `move-if-change' test and
  3406. dnl the use of force in the `epaths-force' rule in Makefile.in.
  3407. AC_CONFIG_COMMANDS([epaths], [
  3408. echo creating src/epaths.h
  3409. ${MAKE-make} epaths-force
  3410. ], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"])
  3411. AC_CONFIG_COMMANDS([gdbinit], [
  3412. if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
  3413. echo creating src/.gdbinit
  3414. echo source $srcdir/src/.gdbinit > src/.gdbinit
  3415. fi
  3416. ])
  3417. AC_OUTPUT
  3418. dnl configure.in ends here