123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370 |
- dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
- dnl vi: set tabstop=4 shiftwidth=4 expandtab syntax=m4:
- dnl This Source Code Form is subject to the terms of the Mozilla Public
- dnl License, v. 2.0. If a copy of the MPL was not distributed with this
- dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
- dnl Process this file with autoconf to produce a configure script.
- dnl ========================================================
- AC_PREREQ(2.13)
- AC_INIT(config/config.mk)
- AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
- AC_CANONICAL_SYSTEM
- dnl ========================================================
- dnl =
- dnl = Don't change the following two lines. Doing so breaks:
- dnl =
- dnl = CFLAGS="-foo" ./configure
- dnl =
- dnl ========================================================
- CFLAGS="${CFLAGS=}"
- CPPFLAGS="${CPPFLAGS=}"
- CXXFLAGS="${CXXFLAGS=}"
- LDFLAGS="${LDFLAGS=}"
- HOST_CFLAGS="${HOST_CFLAGS=}"
- HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
- HOST_LDFLAGS="${HOST_LDFLAGS=}"
- dnl ========================================================
- dnl = Preserve certain environment flags passed to configure
- dnl = We want sub projects to receive the same flags
- dnl = untainted by this configure script
- dnl ========================================================
- _SUBDIR_CC="$CC"
- _SUBDIR_CXX="$CXX"
- _SUBDIR_CFLAGS="$CFLAGS"
- _SUBDIR_CPPFLAGS="$CPPFLAGS"
- _SUBDIR_CXXFLAGS="$CXXFLAGS"
- _SUBDIR_LDFLAGS="$LDFLAGS"
- _SUBDIR_HOST_CC="$HOST_CC"
- _SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
- _SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
- _SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
- _SUBDIR_CONFIG_ARGS="$ac_configure_args"
- dnl Set the version number of the libs included with mozilla
- dnl ========================================================
- MOZJPEG=62
- MOZPNG=10625
- NSPR_VERSION=4
- NSPR_MINVER=4.20
- NSS_VERSION=3
- dnl Set the minimum version of toolkit libs used by mozilla
- dnl ========================================================
- GLIB_VERSION=2.22
- # 2_26 is the earliest version we can set GLIB_VERSION_MIN_REQUIRED.
- # The macro won't be used when compiling with earlier versions anyway.
- GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26
- GIO_VERSION=2.22
- CAIRO_VERSION=1.10
- GTK2_VERSION=2.18.0
- GTK3_VERSION=3.4.0
- GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4
- WINDRES_VERSION=2.14.90
- W32API_VERSION=3.14
- GNOMEUI_VERSION=2.2.0
- GCONF_VERSION=1.2.1
- STARTUP_NOTIFICATION_VERSION=0.8
- DBUS_VERSION=0.60
- SQLITE_VERSION=3.36.0
- dnl Set various checks
- dnl ========================================================
- MISSING_X=
- dnl Initialize the Pthread test variables early so they can be
- dnl overridden by each platform.
- dnl ========================================================
- MOZ_USE_PTHREADS=
- _PTHREAD_LDFLAGS=""
- dnl Do not allow objdir == srcdir builds.
- dnl ==============================================================
- _topsrcdir=`cd \`dirname $0\`; pwd -W 2>/dev/null || pwd -P`
- _objdir=`pwd -P`
- MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || pwd -P`
- DIST="$MOZ_BUILD_ROOT/dist"
- MOZ_DEFAULT_COMPILER
- case "$target" in
- *-linux*)
- AC_PATH_PROG(OBJCOPY,objcopy)
- ;;
- esac
- AC_SUBST(ANDROID_SOURCE)
- AC_SUBST(ANDROID_PACKAGE_NAME)
- AC_SUBST(OBJCOPY)
- dnl ========================================================
- dnl Checks for compilers.
- dnl ========================================================
- dnl AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269)
- AR_FLAGS='crs $@'
- if test "$COMPILE_ENVIRONMENT"; then
- if test "$target" != "$host"; then
- MOZ_CROSS_COMPILER
- else
- AC_PROG_CC
- case "$target" in
- *-mingw*)
- # Work around the conftest.exe access problem on Windows
- sleep 2
- esac
- AC_PROG_CXX
- AC_PROG_RANLIB
- MOZ_PATH_PROGS(AS, $AS as, $CC)
- AC_CHECK_PROGS(AR, ar, :)
- AC_CHECK_PROGS(LD, ld, :)
- AC_CHECK_PROGS(STRIP, strip, :)
- AC_CHECK_PROGS(WINDRES, windres, :)
- AC_CHECK_PROGS(OTOOL, otool, :)
- if test -z "$HOST_RANLIB"; then
- HOST_RANLIB="$RANLIB"
- fi
- if test -z "$HOST_AR"; then
- HOST_AR="$AR"
- fi
- if test -z "$HOST_AR_FLAGS"; then
- HOST_AR_FLAGS="$AR_FLAGS"
- fi
- fi
- if test -n "$MOZ_WINCONSOLE"; then
- AC_DEFINE(MOZ_WINCONSOLE)
- fi
- MOZ_TOOL_VARIABLES
- dnl ========================================================
- dnl Special win32 checks
- dnl ========================================================
- WINVER=601
- case "$target" in
- *-mingw*)
- if test "$GCC" != "yes"; then
- # Check to see if we are really running in a msvc environemnt
- _WIN32_MSVC=1
- AC_CHECK_PROGS(MIDL, midl)
- # Make sure compilers are valid
- CFLAGS="$CFLAGS -TC -nologo"
- CXXFLAGS="$CXXFLAGS -TP -nologo"
- AC_LANG_SAVE
- AC_LANG_C
- AC_TRY_COMPILE([#include <stdio.h>],
- [ printf("Hello World\n"); ],,
- AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <new.h>],
- [ unsigned *test = new unsigned(42); ],,
- AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
- AC_LANG_RESTORE
- changequote(,)
- _MSVC_VER_FILTER='s|.*[^!-~]([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p'
- changequote([,])
- _MSC_VER=`echo ${CC_VERSION} | cut -c 1-2,4-5`
- AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
- AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
- AC_DEFINE(_USE_MATH_DEFINES) # Otherwise MSVC's math.h doesn't #define M_PI.
- case "$CC_VERSION" in
- 19*)
- _CC_SUITE=14
- MSVS_VERSION=2015
- MSVC_C_RUNTIME_DLL=vcruntime140.dll
- MSVC_CXX_RUNTIME_DLL=msvcp140.dll
- MOZ_CHECK_HEADER(dia2.h, MSVC_HAS_DIA_SDK=1)
- if test -n "$MSVC_HAS_DIA_SDK"; then
- AC_DEFINE(MSVC_HAS_DIA_SDK)
- fi
- # C5026: move constructor was implicitly defined as deleted
- CXXFLAGS="$CXXFLAGS -wd5026"
- # C5027: move assignment operator was implicitly defined as deleted
- CXXFLAGS="$CXXFLAGS -wd5027"
- # -Zc:sizedDealloc- disables C++14 global sized deallocation (see bug 1160146)
- CXXFLAGS="$CXXFLAGS -Zc:sizedDealloc-"
-
- # C4752: We explicitly use AVX instructions in only some libs, not global
- # This is a pointless "helpful warning" to use /arch:AVX which we don't want.
- CFLAGS="$CFLAGS -wd4752"
- CXXFLAGS="$CXXFLAGS -wd4752"
-
- # https://connect.microsoft.com/VisualStudio/feedback/details/888527/warnings-on-dbghelp-h
- # for dbghelp.h, imagehlp.h, and shobj.h
- # C4091: 'typedef ': ignored on left of '' when no variable is declared
- CFLAGS="$CFLAGS -wd4091"
- CXXFLAGS="$CXXFLAGS -wd4091"
- # This is intended as a temporary hack to support building with VS2015.
- # 'noexcept' used with no exception handling mode specified;
- # termination on exception is not guaranteed. Specify /EHsc
- CXXFLAGS="$CXXFLAGS -wd4577"
- if test -n "$WIN_UCRT_REDIST_DIR"; then
- if test ! -d "$WIN_UCRT_REDIST_DIR"; then
- AC_MSG_ERROR([Invalid Windows UCRT Redist directory: ${WIN_UCRT_REDIST_DIR}])
- fi
- WIN_UCRT_REDIST_DIR=`cd "$WIN_UCRT_REDIST_DIR" && pwd -W`
- fi
- ;;
- esac
- AC_SUBST(MSVS_VERSION)
- AC_SUBST(MSVC_HAS_DIA_SDK)
- AC_SUBST(MSVC_C_RUNTIME_DLL)
- AC_SUBST(MSVC_CXX_RUNTIME_DLL)
- AC_DEFINE(HAVE_SEH_EXCEPTIONS)
- if test -n "$WIN32_REDIST_DIR"; then
- if test ! -d "$WIN32_REDIST_DIR"; then
- AC_MSG_ERROR([Invalid Win32 Redist directory: ${WIN32_REDIST_DIR}])
- fi
- WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd -W`
- fi
- # Check linker version
- _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
- _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
- if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then
- AC_MSG_ERROR([The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE.])
- fi
- INCREMENTAL_LINKER=1
- # Set midl environment
- case "$target" in
- i*86-*)
- MIDL_FLAGS="${MIDL_FLAGS} -env win32"
- ;;
- x86_64-*)
- MIDL_FLAGS="${MIDL_FLAGS} -env x64"
- ;;
- esac
- unset _MSVC_VER_FILTER
- AC_CACHE_CHECK(for overridable _RAISE,
- ac_cv_have__RAISE,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
- AC_TRY_COMPILE([#include <xstddef>
- #undef _RAISE
- #define _RAISE(x) externallyDefinedFunction((x).what())
- #include <vector>
- ],
- [std::vector<int> v; return v.at(1);],
- ac_cv_have__RAISE="no",
- ac_cv_have__RAISE="yes")
- CXXFLAGS="$_SAVE_CXXFLAGS"
- AC_LANG_RESTORE
- ])
- if test "$ac_cv_have__RAISE" = "yes"; then
- WRAP_STL_INCLUDES=1
- MOZ_MSVC_STL_WRAP_RAISE=1
- AC_DEFINE(MOZ_MSVC_STL_WRAP_RAISE)
- else
- AC_MSG_ERROR([Gecko exception wrapping doesn't understand your your MSVC/SDK. Please file a bug describing this error and your build configuration.])
- fi
- if test "$WRAP_STL_INCLUDES" = "1"; then
- STL_FLAGS="-I${DIST}/stl_wrappers"
- fi
- CFLAGS="$CFLAGS -D_HAS_EXCEPTIONS=0"
- CXXFLAGS="$CXXFLAGS -D_HAS_EXCEPTIONS=0"
- else
- # Check w32api version
- _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
- _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
- AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
- AC_TRY_COMPILE([#include <w32api.h>],
- #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
- (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
- __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
- #error "test failed."
- #endif
- , [ res=yes ], [ res=no ])
- AC_MSG_RESULT([$res])
- if test "$res" != "yes"; then
- AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
- fi
- # Check windres version
- AC_MSG_CHECKING([for windres version >= $WINDRES_VERSION])
- _WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'`
- AC_MSG_RESULT([$_WINDRES_VERSION])
- _WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
- _WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
- _WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
- WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
- WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
- WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
- if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \
- "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
- "$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \
- "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
- "$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \
- "$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION"
- then
- AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
- fi
- AC_CHECK_PROGS(MIDL, $target-widl widl)
- if test -n "$MIDL"; then
- case "$target" in
- i*86-*)
- MIDL_FLAGS="$MIDL_FLAGS --win32 -m32"
- ;;
- x86_64-*)
- MIDL_FLAGS="$MIDL_FLAGS --win64 -m64"
- ;;
- esac
- fi
- # strsafe.h on mingw uses macros for function deprecation that pollutes namespace
- # causing problems with local implementations with the same name.
- AC_DEFINE(STRSAFE_NO_DEPRECATE)
- fi # !GNU_CC
- AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
- AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
- # Require OS features provided by IE 6.0 SP2 (XP SP2)
- AC_DEFINE_UNQUOTED(_WIN32_IE,0x0603)
- ;;
- esac
- if test -n "$_WIN32_MSVC"; then
- SKIP_PATH_CHECKS=1
- SKIP_COMPILER_CHECKS=1
- SKIP_LIBRARY_CHECKS=1
- # Since we're skipping compiler and library checks, hard-code
- # some facts here.
- AC_DEFINE(HAVE_IO_H)
- AC_DEFINE(HAVE_ISATTY)
- fi
- fi # COMPILE_ENVIRONMENT
- AC_SUBST(MIDL_FLAGS)
- AC_SUBST(_MSC_VER)
- AC_SUBST(GNU_AS)
- AC_SUBST(GNU_LD)
- AC_SUBST(GNU_CC)
- AC_SUBST(GNU_CXX)
- AC_SUBST(STL_FLAGS)
- AC_SUBST(WRAP_STL_INCLUDES)
- AC_SUBST(MOZ_MSVC_STL_WRAP_RAISE)
- dnl ========================================================
- dnl Checks for programs.
- dnl ========================================================
- if test "$COMPILE_ENVIRONMENT"; then
- dnl ========================================================
- dnl = Mac OS X toolchain support
- dnl ========================================================
- dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk
- dnl that a universal binary is being produced.
- AC_SUBST(UNIVERSAL_BINARY)
- MOZ_ARG_WITH_STRING(unify-dist,
- [ --with-unify-dist=dir Location of the dist directory to unify with at packaging time (Mac OS X universal build only)],
- UNIFY_DIST=$withval)
- if test -n "$UNIVERSAL_BINARY"; then
- if test -z "$UNIFY_DIST"; then
- AC_MSG_ERROR([You need to provide the --with-unify-dist=dir argument when performing a universal build])
- fi
- case "$UNIFY_DIST" in
- /*)
- ;;
- *)
- UNIFY_DIST="${MOZ_BUILD_ROOT}/${UNIFY_DIST}"
- ;;
- esac
- fi
- AC_SUBST(UNIFY_DIST)
- dnl ========================================================
- dnl = Mac OS X SDK support
- dnl ========================================================
- MACOS_SDK_DIR=
- MOZ_ARG_WITH_STRING(macos-sdk,
- [ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
- MACOS_SDK_DIR=$withval)
- MACOS_PRIVATE_FRAMEWORKS_DIR_DEFAULTED=
- MOZ_ARG_WITH_STRING(macos-private-frameworks,
- [ --with-macos-private-frameworks=dir Location of private frameworks to use (Mac OS X only)],
- MACOS_PRIVATE_FRAMEWORKS_DIR=$withval,
- MACOS_PRIVATE_FRAMEWORKS_DIR=/System/Library/PrivateFrameworks
- MACOS_PRIVATE_FRAMEWORKS_DEFAULTED=1)
- if test -z "${MACOS_PRIVATE_FRAMEWORKS_DEFAULTED}"; then
- if test -z "$CROSS_COMPILE"; then
- AC_MSG_WARN([You should only be using --with-macos-private-frameworks when cross-compiling.])
- fi
- if test ! -d "$MACOS_PRIVATE_FRAMEWORKS_DIR"; then
- AC_MSG_ERROR([PrivateFrameworks directory not found.])
- fi
- fi
- dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use.
- AC_SUBST(MACOS_SDK_DIR)
- AC_SUBST(MACOS_PRIVATE_FRAMEWORKS_DIR)
- if test "$MACOS_SDK_DIR"; then
- dnl Sync this section with the ones in NSPR and NSS.
- dnl Changes to the cross environment here need to be accounted for in
- dnl the libIDL checks (below) and xpidl build.
- if test ! -d "$MACOS_SDK_DIR"; then
- AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
- specify a valid SDK. SDKs are installed when the optional cross-development
- tools are selected during the Xcode/Developer Tools installation.])
- fi
- CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
- CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}"
- dnl CPP/CXXCPP needs to be set for MOZ_CHECK_HEADER.
- CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
- CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}"
- AC_LANG_SAVE
- AC_MSG_CHECKING([for valid compiler/Mac OS X SDK combination])
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <new>],[],
- result=yes,
- result=no)
- AC_LANG_RESTORE
- AC_MSG_RESULT($result)
- if test "$result" = "no" ; then
- AC_MSG_ERROR([The selected compiler and Mac OS X SDK are incompatible.])
- fi
- fi
- AC_PATH_XTRA
- XCFLAGS="$X_CFLAGS"
- fi # COMPILE_ENVIRONMENT
- dnl ========================================================
- dnl set the defaults first
- dnl ========================================================
- AS_BIN=$AS
- AR_EXTRACT='$(AR) x'
- AS='$(CC)'
- AS_DASH_C_FLAG='-c'
- DLL_PREFIX=lib
- LIB_PREFIX=lib
- DLL_SUFFIX=.so
- OBJ_SUFFIX=o
- LIB_SUFFIX=a
- IMPORT_LIB_SUFFIX=
- DIRENT_INO=d_ino
- MOZ_USER_DIR=".mozilla"
- MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin -Wl,-rpath-link,${prefix}/lib"
- MOZ_FS_LAYOUT=unix
- dnl Configure platform-specific CPU architecture compiler options.
- dnl ==============================================================
- if test "$COMPILE_ENVIRONMENT"; then
- MOZ_ARCH_OPTS
- else
- if test "$OS_TARGET" = "Android"; then
- dnl Default Android builds to ARMv7.
- MOZ_ARCH=armv7-a
- fi
- fi # COMPILE_ENVIRONMENT
- dnl ========================================================
- dnl Suppress Clang Argument Warnings
- dnl ========================================================
- if test -n "${CLANG_CC}${CLANG_CL}"; then
- _WARNINGS_CFLAGS="-Qunused-arguments ${_WARNINGS_CFLAGS}"
- CPPFLAGS="-Qunused-arguments ${CPPFLAGS}"
- fi
- if test -n "${CLANG_CXX}${CLANG_CL}"; then
- _WARNINGS_CXXFLAGS="-Qunused-arguments ${_WARNINGS_CXXFLAGS}"
- fi
- if test -n "$COMPILE_ENVIRONMENT"; then
- MOZ_CONFIG_SANITIZE
- fi
- dnl ========================================================
- dnl GNU specific defaults
- dnl ========================================================
- if test "$GNU_CC"; then
- MMX_FLAGS="-mmmx"
- SSE_FLAGS="-msse"
- SSE2_FLAGS="-msse2"
- SSSE3_FLAGS="-mssse3"
- # FIXME: Let us build with strict aliasing. bug 414641.
- CFLAGS="$CFLAGS -fno-strict-aliasing"
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(DSO_SONAME) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(DSO_SONAME) -o $@'
- WARNINGS_AS_ERRORS='-Werror'
- DSO_CFLAGS=''
- DSO_PIC_CFLAGS='-fPIC'
- ASFLAGS="$ASFLAGS -fPIC"
- AC_MSG_CHECKING([for --noexecstack option to as])
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -Wa,--noexecstack"
- AC_TRY_COMPILE(,,AC_MSG_RESULT([yes])
- [ASFLAGS="$ASFLAGS -Wa,--noexecstack"],
- AC_MSG_RESULT([no]))
- CFLAGS=$_SAVE_CFLAGS
- AC_MSG_CHECKING([for -z noexecstack option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
- AC_MSG_RESULT([no])
- LDFLAGS=$_SAVE_LDFLAGS)
- AC_MSG_CHECKING([for -z text option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-z,text"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes])
- [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,-z,text"],
- AC_MSG_RESULT([no])
- LDFLAGS=$_SAVE_LDFLAGS)
- AC_MSG_CHECKING([for --build-id option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,--build-id"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes])
- [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,--build-id"],
- AC_MSG_RESULT([no])
- LDFLAGS=$_SAVE_LDFLAGS)
- AC_MSG_CHECKING([for --ignore-unresolved-symbol option to ld])
- HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED=
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,--ignore-unresolved-symbol,environ"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes])
- [HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED=1],
- AC_MSG_RESULT([no]))
- LDFLAGS=$_SAVE_LDFLAGS
- # Check for -mssse3 on $CC
- AC_MSG_CHECKING([if toolchain supports -mssse3 option])
- HAVE_TOOLCHAIN_SUPPORT_MSSSE3=
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -mssse3"
- AC_TRY_COMPILE([asm ("pmaddubsw %xmm2,%xmm3");],,AC_MSG_RESULT([yes])
- [HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1],
- AC_MSG_RESULT([no]))
- CFLAGS=$_SAVE_CFLAGS
- # Check for -msse4.1 on $CC
- AC_MSG_CHECKING([if toolchain supports -msse4.1 option])
- HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -msse4.1"
- AC_TRY_COMPILE([asm ("pmulld %xmm6,%xmm0");],,AC_MSG_RESULT([yes])
- [HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=1],
- AC_MSG_RESULT([no]))
- CFLAGS=$_SAVE_CFLAGS
- case "${CPU_ARCH}" in
- x86 | x86_64)
- AC_MSG_CHECKING(for x86 AVX2 asm support in compiler)
- AC_TRY_COMPILE([],
- [asm volatile ("vpermq \$0xd8,%ymm0,%ymm0 \n");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- HAVE_X86_AVX2=1
- fi
- ;;
- ppc*)
- AC_MSG_CHECKING([whether we can enable AltiVec support])
- HAVE_ALTIVEC=
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -maltivec"
- AC_TRY_COMPILE(,,AC_MSG_RESULT([yes])
- [HAVE_ALTIVEC=1],
- AC_MSG_RESULT([no]))
- CFLAGS=$_SAVE_CFLAGS
- ;;
- esac
- DSO_LDOPTS='-shared'
- if test "$GCC_USE_GNU_LD"; then
- # Some tools like ASan use a runtime library that is only
- # linked against executables, so we must allow undefined
- # symbols for shared objects in some cases.
- if test -z "$MOZ_NO_WLZDEFS"; then
- # Don't allow undefined symbols in libraries
- DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
- # BSDs need `environ' exposed for posix_spawn (bug 753046)
- case "$OS_TARGET" in
- DragonFly|FreeBSD|NetBSD|OpenBSD)
- if test -n "$HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED"; then
- DSO_LDOPTS="$DSO_LDOPTS -Wl,--ignore-unresolved-symbol,environ"
- else
- DSO_LDOPTS="$DSO_LDOPTS -Wl,--warn-unresolved-symbols"
- fi
- ;;
- esac
- fi
- fi
- _DEFINES_CFLAGS='-include $(topobjdir)/mozilla-config.h -DMOZILLA_CLIENT'
- _USE_CPP_INCLUDE_FLAG=1
- ASFLAGS="$ASFLAGS $_DEFINES_CFLAGS"
- else
- MKSHLIB='$(LD) $(DSO_LDOPTS) -h $(DSO_SONAME) -o $@'
- MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $(DSO_SONAME) -o $@'
- DSO_LDOPTS='-shared'
- if test "$GNU_LD"; then
- # Don't allow undefined symbols in libraries
- DSO_LDOPTS="$DSO_LDOPTS -z defs"
- fi
- DSO_CFLAGS=''
- DSO_PIC_CFLAGS='-KPIC'
- _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
- fi
- if test "$GNU_CXX"; then
- # FIXME: Let us build with strict aliasing. bug 414641.
- CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-strict-aliasing"
- _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(topobjdir)/mozilla-config.h'
- _USE_CPP_INCLUDE_FLAG=1
- else
- _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)'
- fi
- dnl ========================================================
- dnl = Use Valgrind
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(valgrind,
- [ --enable-valgrind Enable Valgrind integration hooks (default=no)],
- MOZ_VALGRIND=1,
- MOZ_VALGRIND= )
- if test -n "$MOZ_VALGRIND"; then
- MOZ_CHECK_HEADER([valgrind/valgrind.h], [],
- AC_MSG_ERROR(
- [--enable-valgrind specified but Valgrind is not installed]))
- AC_DEFINE(MOZ_VALGRIND)
- fi
- AC_SUBST(MOZ_VALGRIND)
- # For profiling builds keep the symbol information
- if test "$MOZ_PROFILING" -a -z "$STRIP_FLAGS"; then
- case "$OS_TARGET" in
- Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
- STRIP_FLAGS="--strip-debug"
- ;;
- esac
- fi
- dnl ========================================================
- dnl System overrides of the defaults for host
- dnl ========================================================
- case "$host" in
- *mingw*)
- if test -n "$_WIN32_MSVC"; then
- HOST_AR=lib
- HOST_AR_FLAGS='-NOLOGO -OUT:$@'
- HOST_CFLAGS="$HOST_CFLAGS -TC -nologo"
- HOST_RANLIB='echo ranlib'
- else
- HOST_CFLAGS="$HOST_CFLAGS -mwindows"
- fi
- HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -D_CRT_SECURE_NO_WARNINGS"
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
- HOST_BIN_SUFFIX=.exe
- case "${host_cpu}" in
- i*86)
- if test -n "$_WIN32_MSVC"; then
- HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86"
- fi
- ;;
- x86_64)
- if test -n "$_WIN32_MSVC"; then
- HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64"
- fi
- HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
- ;;
- esac
- ;;
- *-linux*|*-kfreebsd*-gnu|*-gnu*)
- HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
- ;;
-
- *)
- HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
- ;;
- esac
- dnl ==============================================================
- dnl Get mozilla version from central milestone file
- dnl ==============================================================
- MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir`
- MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion`
- MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion`
- if test -z "$MOZILLA_VERSION"; then
- AC_MSG_ERROR([failed to read version info from milestone file])
- fi
- AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
- AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
- AC_DEFINE_UNQUOTED(MOZILLA_UAVERSION,"$MOZILLA_UAVERSION")
- AC_DEFINE_UNQUOTED(MOZILLA_UAVERSION_U,$MOZILLA_UAVERSION)
- AC_SUBST(MOZILLA_SYMBOLVERSION)
- AC_SUBST(MOZILLA_UAVERSION)
- AC_SUBST(MOZILLA_UAVERSION_U)
- MOZ_DOING_LTO(lto_is_enabled)
- dnl ========================================================
- dnl System overrides of the defaults for target
- dnl ========================================================
- case "$target" in
- *-*linux*)
- if test "$GNU_CC" -o "$GNU_CXX"; then
- MOZ_PGO_OPTIMIZE_FLAGS="-O3"
- MOZ_OPTIMIZE_FLAGS="-O2"
- if test -z "$CLANG_CC"; then
- MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS"
- fi
- fi
- case "${target_cpu}" in
- alpha*)
- CFLAGS="$CFLAGS -mieee"
- CXXFLAGS="$CXXFLAGS -mieee"
- ;;
- esac
- ;;
- *-mingw*)
- DSO_CFLAGS=
- DSO_PIC_CFLAGS=
- DLL_SUFFIX=.dll
- RC=rc.exe
- # certain versions of cygwin's makedepend barf on the
- # #include <string> vs -I./dist/include/string issue so don't use it
- if test -n "$GNU_CC" -o -n "$CLANG_CC"; then
- CC="$CC -mwindows"
- CXX="$CXX -mwindows"
- CPP="$CPP -mwindows"
- CFLAGS="$CFLAGS -mms-bitfields"
- CXXFLAGS="$CXXFLAGS -mms-bitfields"
- DSO_LDOPTS='-shared'
- MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
- RC='$(WINDRES)'
- # Use static libgcc and libstdc++
- LDFLAGS="$LDFLAGS -static"
- NSPR_LDFLAGS="$NSPR_LDFLAGS -static-libgcc"
- # Use temp file for windres (bug 213281)
- RCFLAGS='-O coff --use-temp-file'
- # mingw doesn't require kernel32, user32, and advapi32 explicitly
- LIBS="$LIBS -luuid -lgdi32 -lwinmm -lwsock32 -luserenv -lsecur32"
- MOZ_FIX_LINK_PATHS=
- DLL_PREFIX=
- IMPORT_LIB_SUFFIX=a
- WIN32_CONSOLE_EXE_LDFLAGS=-mconsole
- WIN32_GUI_EXE_LDFLAGS=-mwindows
- # GCC/binutils can't link to a function if we try to include dllexport function
- # in the same library as dllimport caller. To work around it, we build NSPR
- # and NSS with -mnop-fun-dllimport flag. The drawback of this solution is that
- # function thunks need to be generated for cross-DLL calls.
- MOZ_FOLD_LIBS_FLAGS=-mnop-fun-dllimport
- else
- TARGET_COMPILER_ABI=msvc
- HOST_LD='$(LD)'
- if test "$AS_BIN"; then
- AS="$(basename "$AS_BIN")"
- fi
- AR='lib'
- AR_FLAGS='-NOLOGO -OUT:$@'
- AR_EXTRACT=
- RANLIB='echo not_ranlib'
- STRIP='echo not_strip'
- PKG_SKIP_STRIP=1
- OBJ_SUFFIX=obj
- LIB_SUFFIX=lib
- DLL_PREFIX=
- LIB_PREFIX=
- IMPORT_LIB_SUFFIX=lib
- MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
- MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
- WIN32_SUBSYSTEM_VERSION=6.01
- WIN32_CONSOLE_EXE_LDFLAGS=-SUBSYSTEM:CONSOLE,$WIN32_SUBSYSTEM_VERSION
- WIN32_GUI_EXE_LDFLAGS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
- DSO_LDOPTS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
- _USE_CPP_INCLUDE_FLAG=1
- _DEFINES_CFLAGS='-FI $(topobjdir)/mozilla-config.h -DMOZILLA_CLIENT'
- _DEFINES_CXXFLAGS='-FI $(topobjdir)/mozilla-config.h -DMOZILLA_CLIENT'
- CFLAGS="$CFLAGS -W3 -Gy -Zc:inline"
- CXXFLAGS="$CXXFLAGS -W3 -Gy -Zc:inline"
- if test -z "$CLANG_CL"; then
- CFLAGS="$CFLAGS -utf-8"
- CXXFLAGS="$CXXFLAGS -utf-8"
- fi
- if test "$CPU_ARCH" = "x86"; then
- changequote(,)
- dnl VS2012+ defaults to -arch:SSE2. We want to target nothing
- dnl more recent, so no need to set it explicitly in the default
- dnl case.
- changequote([,])
- SSE_FLAGS="-arch:SSE"
- SSE2_FLAGS="-arch:SSE2"
- dnl MSVC allows the use of intrinsics without any flags
- dnl and doesn't have a separate arch for SSSE3
- SSSE3_FLAGS="-arch:SSE2"
- fi
- dnl clang-cl requires appropriate flags to enable SSSE3 support
- dnl on all architectures.
- if test -n "$CLANG_CL"; then
- SSSE3_FLAGS="-mssse3"
- fi
- dnl VS2013+ requires -FS when parallel building by make -jN.
- dnl If nothing, compiler sometimes causes C1041 error.
- CFLAGS="$CFLAGS -FS"
- CXXFLAGS="$CXXFLAGS -FS"
- dnl VS2013+ supports -Gw for better linker optimizations.
- dnl http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx
- dnl Disabled on ASan because it causes false-positive ODR violations.
- if test -z "$MOZ_ASAN"; then
- CFLAGS="$CFLAGS -Gw"
- CXXFLAGS="$CXXFLAGS -Gw"
- fi
- # khuey says we can safely ignore MSVC warning C4251
- # MSVC warning C4244 (implicit type conversion may lose data) warns
- # and requires workarounds for perfectly valid code. Also, GCC/clang
- # don't warn about it by default. So for consistency/sanity, we turn
- # it off on MSVC, too.
- # MSVC warning C4267 warns for narrowing type conversions from size_t
- # to 32-bit integer types on 64-bit platforms. Since this is virtually
- # the same thing as C4244, we disable C4267, too.
- # MSVC warning C4345 warns of newly conformant behavior as of VS2003.
- # MSVC warning C4351 warns of newly conformant behavior as of VS2005.
- # MSVC warning C4800 warns when a value is implicitly cast to bool,
- # because this also forces narrowing to a single byte, which can be a
- # perf hit. But this matters so little in practice (and often we want
- # that behavior) that it's better to turn it off.
- # MSVC warning wd4595 warns non-member operator new or delete functions
- # may not be declared inline, as of VS2015 Update 2.
- CFLAGS="$CFLAGS -wd4244 -wd4267"
- CXXFLAGS="$CXXFLAGS -wd4251 -wd4244 -wd4267 -wd4345 -wd4351 -wd4800 -wd4595"
- if test -n "$CLANG_CL"; then
- # XXX We should combine some of these with our generic GCC-style
- # warning checks.
- #
- # Suppress the clang-cl warning for the inline 'new' and 'delete' in mozalloc
- CXXFLAGS="$CXXFLAGS -Wno-inline-new-delete"
- # We use offsetof on non-POD objects all the time.
- # We also suppress this warning on other platforms.
- CXXFLAGS="$CXXFLAGS -Wno-invalid-offsetof"
- # MFBT thinks clang-cl supports constexpr, which it does, but
- # not everything in Windows C++ headers supports constexpr
- # as we might expect until MSVC 2015, so turn off this warning
- # for now.
- CXXFLAGS="$CXXFLAGS -Wno-invalid-constexpr"
- # This warns for reasonable things like:
- # enum { X = 0xffffffffU };
- # which is annoying for IDL headers.
- CXXFLAGS="$CXXFLAGS -Wno-microsoft-enum-value"
- # This warns for cases that would be reached by the Microsoft
- # #include rules, but also currently warns on cases that would
- # *also* be reached by standard C++ include rules. That
- # behavior doesn't seem useful, so we turn it off.
- CXXFLAGS="$CXXFLAGS -Wno-microsoft-include"
- # We normally error out on unknown pragmas, but since clang-cl
- # claims to be MSVC, it would be difficult to add
- # #if defined(_MSC_VER) && !defined(__clang__) everywhere we
- # use such pragmas, so just ignore them.
- CFLAGS="$CFLAGS -Wno-unknown-pragmas"
- CXXFLAGS="$CXXFLAGS -Wno-unknown-pragmas"
- # We get errors about various #pragma intrinsic directives from
- # clang-cl, and we don't need to hear about those.
- CFLAGS="$CFLAGS -Wno-ignored-pragmas"
- CXXFLAGS="$CXXFLAGS -Wno-ignored-pragmas"
- # clang-cl's Intrin.h marks things like _ReadWriteBarrier
- # as __attribute((__deprecated__)). This is nice to know,
- # but since we don't get the equivalent warning from MSVC,
- # let's just ignore it.
- CFLAGS="$CFLAGS -Wno-deprecated-declarations"
- CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"
- # We use a function like:
- # __declspec(noreturn) __inline void f() {}
- # which -Winvalid-noreturn complains about. Again, MSVC seems
- # OK with it, so let's silence the warning.
- CFLAGS="$CFLAGS -Wno-invalid-noreturn"
- CXXFLAGS="$CXXFLAGS -Wno-invalid-noreturn"
- # Missing |override| on virtual function declarations isn't
- # something that MSVC currently warns about.
- CXXFLAGS="$CXXFLAGS -Wno-inconsistent-missing-override"
- # We use -DHAS_EXCEPTIONS=0, which removes the |throw()|
- # declaration on |operator delete(void*)|. However, clang-cl
- # must internally declare |operator delete(void*)| differently,
- # which causes this warning for virtually every file in the
- # tree. clang-cl doesn't support -fno-exceptions or equivalent,
- # so there doesn't seem to be any way to convince clang-cl to
- # declare |delete| differently. Therefore, suppress this
- # warning.
- CXXFLAGS="$CXXFLAGS -Wno-implicit-exception-spec-mismatch"
- # At least one MSVC header and several headers in-tree have
- # unused typedefs, so turn this on.
- CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedef"
- # Several JS engine header files use __declspec(dllimport) on
- # classes, and clang-cl helpfully warns about its non-support
- # for such cases. We're not particularly worried about that,
- # so ignore that warning.
- CXXFLAGS="$CXXFLAGS -Wno-ignored-attributes"
- fi
- # make 'foo == bar;' error out
- CFLAGS="$CFLAGS -we4553"
- CXXFLAGS="$CXXFLAGS -we4553"
- LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib secur32.lib"
- MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
- WARNINGS_AS_ERRORS='-WX'
- MOZ_OPTIMIZE_FLAGS='-O1 -Oi'
- MOZ_FIX_LINK_PATHS=
- num_cores=$($PYTHON -c 'import multiprocessing; print(min(8,multiprocessing.cpu_count()))')
- cgthreads="-CGTHREADS:${num_cores}"
- LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE -OPT:REF -OPT:ICF=${num_cores} $cgthreads"
- if test -z "$DEVELOPER_OPTIONS"; then
- LDFLAGS="$LDFLAGS -RELEASE"
- fi
- dnl For profile-guided optimization
- PROFILE_GEN_CFLAGS="-GL"
- PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
- dnl XXX: PGO builds can fail with warnings treated as errors,
- dnl specifically "no profile data available" appears to be
- dnl treated as an error sometimes. This might be a consequence
- dnl of using WARNINGS_AS_ERRORS in some modules, combined
- dnl with the linker doing most of the work in the whole-program
- dnl optimization/PGO case. I think it's probably a compiler bug,
- dnl but we work around it here.
- PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
- dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul.
- dnl Probably also a compiler bug, but what can you do?
- PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
- RCFLAGS="-nologo"
- dnl Minimum required VS version supports SSSE3, SSE4.1 and AVX2.
- HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1
- HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=1
- HAVE_X86_AVX2=1
- fi
- AC_DEFINE(WIN32_LEAN_AND_MEAN)
- dnl See http://support.microsoft.com/kb/143208 to use STL
- AC_DEFINE(NOMINMAX)
- BIN_SUFFIX='.exe'
- MOZ_USER_DIR="Mozilla"
- case "$host_os" in
- cygwin*|msvc*|mks*)
- AC_MSG_ERROR([Using a Cygwin build environment is unsupported. Configure cannot check for presence of necessary headers. Please upgrade to MozillaBuild; see https://developer.mozilla.org/en/Windows_Build_Prerequisites.])
- ;;
- esac
- case "$target" in
- i*86-*)
- if test -n "$GNU_CC"; then
- CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport"
- CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport"
- LDFLAGS="$LDFLAGS -Wl,--enable-stdcall-fixup -Wl,--large-address-aware"
- else
- DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
- LDFLAGS="$LDFLAGS -SAFESEH"
- fi
- AC_DEFINE(_X86_)
- ;;
- x86_64-*)
- if test -n "$_WIN32_MSVC"; then
- DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
- fi
- AC_DEFINE(_AMD64_)
- ;;
- *)
- AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
- ;;
- esac
- ;;
- *-netbsd*)
- DSO_CFLAGS=''
- CFLAGS="$CFLAGS -Dunix"
- CXXFLAGS="$CXXFLAGS -Dunix"
- if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
- DLL_SUFFIX=".so"
- DSO_PIC_CFLAGS='-fPIC -DPIC'
- DSO_LDOPTS='-shared'
- BIN_FLAGS='-Wl,--export-dynamic'
- else
- DSO_PIC_CFLAGS='-fPIC -DPIC'
- DLL_SUFFIX=".so.1.0"
- DSO_LDOPTS='-shared'
- fi
- # This will fail on a.out systems prior to 1.5.1_ALPHA.
- if test "$LIBRUNPATH"; then
- DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
- fi
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(DSO_SONAME) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(DSO_SONAME) -o $@'
- ;;
- *-openbsd*)
- if test "$SO_VERSION"; then
- DLL_SUFFIX=".so.$SO_VERSION"
- else
- DLL_SUFFIX=".so.1.0"
- fi
- if test -z "$X11BASE"; then
- X11BASE=/usr/X11R6
- fi
- MOZ_FIX_LINK_PATHS="$MOZ_FIX_LINK_PATHS -Wl,-rpath-link,${X11BASE}/lib"
- DSO_CFLAGS=''
- DSO_PIC_CFLAGS='-fPIC'
- DSO_LDOPTS='-shared -fPIC'
- if test "$LIBRUNPATH"; then
- DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
- fi
- ;;
- i*86-*-solaris*)
- MOZ_FIX_LINK_PATHS="-L${DIST}/bin -R'\$\$ORIGIN':/usr/gcc/7/lib"
- ;;
- x86_64-*-solaris*)
- MOZ_FIX_LINK_PATHS="-L${DIST}/bin -R'\$\$ORIGIN':/usr/gcc/7/lib/amd64"
- ;;
- esac
- AC_SUBST_LIST(MMX_FLAGS)
- AC_SUBST_LIST(SSE_FLAGS)
- AC_SUBST_LIST(SSE2_FLAGS)
- AC_SUBST_LIST(SSSE3_FLAGS)
- AC_SUBST(MOZ_LINKER)
- if test -n "$MOZ_LINKER"; then
- AC_DEFINE(MOZ_LINKER)
- MOZ_LINKER_EXTRACT=1
- AC_CHECK_PROGS(XZ, xz)
- fi
- dnl Only one oddball right now (QNX), but this gives us flexibility
- dnl if any other platforms need to override this in the future.
- AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
- dnl ========================================================
- dnl = Flags to strip unused symbols from .so components and
- dnl = to export jemalloc symbols when linking a program
- dnl ========================================================
- case "$target" in
- *-linux*|*-kfreebsd*-gnu|*-gnu*)
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
- ;;
- *-mingw*)
- if test -n "$GNU_CC"; then
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
- fi
- ;;
- esac
- if test -z "$COMPILE_ENVIRONMENT"; then
- SKIP_COMPILER_CHECKS=1
- SKIP_LIBRARY_CHECKS=1
- PKG_SKIP_STRIP=1
- MOZ_DEBUGGING_OPTS
- else
- MOZ_COMPILER_OPTS
- fi # COMPILE_ENVIRONMENT
- if test -z "$SKIP_COMPILER_CHECKS"; then
- dnl Checks for typedefs, structures, and compiler characteristics.
- dnl ========================================================
- AC_C_CONST
- AC_TYPE_MODE_T
- AC_TYPE_OFF_T
- AC_TYPE_PID_T
- AC_TYPE_SIZE_T
- AC_LANG_CPLUSPLUS
- AC_LANG_C
- AC_LANG_CPLUSPLUS
- MOZ_CXX11
- AC_LANG_C
- case "${OS_TARGET}" in
- *)
- STL_FLAGS="-I${DIST}/stl_wrappers"
- WRAP_STL_INCLUDES=1
- ;;
- esac
- dnl Checks for header files.
- dnl ========================================================
- AC_HEADER_DIRENT
- case "$target_os" in
- bitrig*|dragonfly*|freebsd*|openbsd*)
- # for stuff like -lXshm
- CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
- ;;
- esac
- dnl Check for sin_len and sin6_len - used by SCTP; only appears in Mac/*BSD generally
- AC_CACHE_CHECK(for sockaddr_in.sin_len,
- ac_cv_sockaddr_in_sin_len,
- [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #include <netinet/in.h>
- struct sockaddr_in x;
- void *foo = (void*) &x.sin_len;],
- [],
- [ac_cv_sockaddr_in_sin_len=true],
- [ac_cv_sockaddr_in_sin_len=false])])
- if test "$ac_cv_sockaddr_in_sin_len" = true ; then
- AC_DEFINE(HAVE_SIN_LEN)
- dnl HAVE_CONN_LEN must be the same as HAVE_SIN_LEN (and HAVE_SIN6_LEN too)
- AC_DEFINE(HAVE_SCONN_LEN)
- fi
- AC_CACHE_CHECK(for sockaddr_in6.sin6_len,
- ac_cv_sockaddr_in6_sin6_len,
- [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #include <netinet/in.h>
- struct sockaddr_in6 x;
- void *foo = (void*) &x.sin6_len;],
- [],
- [ac_cv_sockaddr_in6_sin6_len=true],
- [ac_cv_sockaddr_in6_sin6_len=false])])
- if test "$ac_cv_sockaddr_in6_sin6_len" = true ; then
- AC_DEFINE(HAVE_SIN6_LEN)
- fi
- AC_CACHE_CHECK(for sockaddr.sa_len,
- ac_cv_sockaddr_sa_len,
- [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #include <sys/socket.h>
- struct sockaddr x;
- void *foo = (void*) &x.sa_len;],
- [],
- [ac_cv_sockaddr_sa_len=true],
- [ac_cv_sockaddr_sa_len=false])])
- if test "$ac_cv_sockaddr_sa_len" = true ; then
- AC_DEFINE(HAVE_SA_LEN)
- fi
- MOZ_ARG_ENABLE_BOOL(dtrace,
- [ --enable-dtrace build with dtrace support if available (default=no)],
- [enable_dtrace="yes"],)
- if test "x$enable_dtrace" = "xyes"; then
- MOZ_CHECK_HEADER(sys/sdt.h, HAVE_DTRACE=1)
- if test -n "$HAVE_DTRACE"; then
- AC_DEFINE(INCLUDE_MOZILLA_DTRACE)
- else
- AC_MSG_ERROR([dtrace enabled but sys/sdt.h not found]);
- fi
- fi
- AC_SUBST(HAVE_DTRACE)
- dnl Checks for libraries.
- dnl ========================================================
- AC_CHECK_LIB(c_r, gethostbyname_r)
- case $target in
- *)
- AC_SEARCH_LIBS(dlopen, dl,
- MOZ_CHECK_HEADER(dlfcn.h,
- AC_DEFINE(HAVE_DLOPEN)))
- ;;
- esac
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -D_GNU_SOURCE"
- AC_CHECK_FUNCS(dladdr memmem)
- CFLAGS="$_SAVE_CFLAGS"
- if test ! "$GNU_CXX"; then
- AC_CHECK_LIB(C, demangle)
- fi
- AC_CHECK_LIB(socket, socket)
- XLDFLAGS="$X_LIBS"
- XLIBS="$X_EXTRA_LIBS"
- dnl ========================================================
- dnl Checks for X libraries.
- dnl Ordering is important.
- dnl Xt is dependent upon SM as of X11R6
- dnl ========================================================
- if test -n "$MOZ_X11"; then
- AC_DEFINE_UNQUOTED(FUNCPROTO,15)
- _SAVE_LDFLAGS="$LDFLAGS"
- _SAVE_LIBS="$LIBS"
- LDFLAGS="$XLDFLAGS $LDFLAGS"
- AC_CHECK_LIB(X11, XDrawLines, [XLIBS="-lX11 $XLIBS"],
- [MISSING_X="$MISSING_X -lX11"], $XLIBS)
- AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-lXext"],
- [MISSING_X="$MISSING_X -lXext"], $XLIBS)
- AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"], [
- unset ac_cv_lib_Xt_XtFree
- AC_CHECK_LIB(ICE, IceFlush, [XT_LIBS="-lICE $XT_LIBS"],, $XT_LIBS $XLIBS)
- AC_CHECK_LIB(SM, SmcCloseConnection, [XT_LIBS="-lSM $XT_LIBS"],, $XT_LIBS $XLIBS)
- AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt $XT_LIBS"],
- [MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XT_LIBS $XLIBS)
- ])
- dnl ========================================================
- dnl = Check for xcb
- dnl ========================================================
- AC_CHECK_LIB(xcb, xcb_connect, [XLIBS="-lxcb $XLIBS"],
- [MISSING_X="$MISSING_X -lxcb"], $XLIBS)
- AC_CHECK_LIB(xcb-shm, xcb_shm_query_version, [XLIBS="-lxcb-shm $XLIBS"],
- [MISSING_X="$MISSING_X -lxcb-shm"], $XLIBS)
- AC_CHECK_LIB(X11-xcb, XGetXCBConnection, [XLIBS="-lX11-xcb $XLIBS"],
- [MISSING_X="$MISSING_X -lX11-xcb"], $XLIBS)
- dnl ========================================================
- dnl = Check for Xss
- dnl ========================================================
- MOZ_CHECK_HEADER(X11/extensions/scrnsaver.h,
- AC_CHECK_LIB(Xss, XScreenSaverQueryInfo,
- [XSS_LIBS="-lXss $XEXT_LIBS $XLIBS"
- AC_DEFINE(HAVE_LIBXSS)],, $XEXT_LIBS $XLIBS))
- LDFLAGS="$_SAVE_LDFLAGS"
- LIBS="$_SAVE_LIBS"
- fi # $MOZ_X11
- AC_SUBST_LIST(XCFLAGS)
- AC_SUBST_LIST(XLDFLAGS)
- AC_SUBST_LIST(XLIBS)
- AC_SUBST_LIST(XEXT_LIBS)
- AC_SUBST_LIST(XT_LIBS)
- AC_SUBST_LIST(XSS_LIBS)
- dnl ========================================================
- dnl = pthread support
- dnl ========================================================
- AC_CHECK_LIB(pthreads, pthread_create,
- MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
- AC_CHECK_LIB(pthread, pthread_create,
- MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
- AC_CHECK_LIB(c_r, pthread_create,
- MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
- AC_CHECK_LIB(c, pthread_create,
- MOZ_USE_PTHREADS=1
- )
- )
- )
- )
- dnl ========================================================
- dnl Check the command line for --with-pthreads
- dnl ========================================================
- MOZ_ARG_WITH_BOOL(pthreads,
- [ --with-pthreads Force use of system pthread library with NSPR ],
- [ if test "$MOZ_USE_PTHREADS"x = x; then
- AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
- fi],
- MOZ_USE_PTHREADS=
- _PTHREAD_LDFLAGS=
- )
- dnl ========================================================
- dnl Do the platform specific pthread hackery
- dnl ========================================================
- if test "$MOZ_USE_PTHREADS"x != x
- then
- dnl
- dnl See if -pthread is supported.
- dnl
- rm -f conftest*
- ac_cv_have_dash_pthread=no
- AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
- echo 'int main() { return 0; }' | cat > conftest.c
- ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
- if test $? -eq 0; then
- if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
- ac_cv_have_dash_pthread=yes
- case "$target_os" in
- freebsd*)
- # Freebsd doesn't use -pthread for compiles, it uses them for linking
- ;;
- *)
- CFLAGS="$CFLAGS -pthread"
- CXXFLAGS="$CXXFLAGS -pthread"
- ;;
- esac
- fi
- fi
- rm -f conftest*
- AC_MSG_RESULT($ac_cv_have_dash_pthread)
- dnl
- dnl See if -pthreads is supported.
- dnl
- ac_cv_have_dash_pthreads=no
- if test "$ac_cv_have_dash_pthread" = "no"; then
- AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
- echo 'int main() { return 0; }' | cat > conftest.c
- ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
- if test $? -eq 0; then
- if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
- ac_cv_have_dash_pthreads=yes
- CFLAGS="$CFLAGS -pthreads"
- CXXFLAGS="$CXXFLAGS -pthreads"
- fi
- fi
- rm -f conftest*
- AC_MSG_RESULT($ac_cv_have_dash_pthreads)
- fi
- case "$target" in
- *-*-freebsd*)
- AC_DEFINE(_REENTRANT)
- AC_DEFINE(_THREAD_SAFE)
- dnl -pthread links in -lpthread, so don't specify it explicitly.
- if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS="-pthread"
- fi
- ;;
- *-*-openbsd*|*-*-bsdi*)
- AC_DEFINE(_REENTRANT)
- AC_DEFINE(_THREAD_SAFE)
- dnl -pthread links in -lc_r, so don't specify it explicitly.
- if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS="-pthread"
- fi
- ;;
- *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
- AC_DEFINE(_REENTRANT)
- ;;
- esac
- LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
- AC_SUBST(MOZ_USE_PTHREADS)
- MOZ_CHECK_HEADERS(pthread.h)
- fi
- dnl Checks for library functions.
- dnl ========================================================
- AC_PROG_GCC_TRADITIONAL
- AC_FUNC_MEMCMP
- AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize gmtime_r localtime_r arc4random arc4random_buf mallinfo gettid lchown setpriority strerror syscall)
- dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
- AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
- ac_cv_clock_monotonic,
- [for libs in "" -lrt; do
- _SAVE_LIBS="$LIBS"
- LIBS="$LIBS $libs"
- AC_TRY_LINK([#include <time.h>],
- [ struct timespec ts;
- clock_gettime(CLOCK_MONOTONIC, &ts); ],
- ac_cv_clock_monotonic=$libs
- LIBS="$_SAVE_LIBS"
- break,
- ac_cv_clock_monotonic=no)
- LIBS="$_SAVE_LIBS"
- done])
- if test "$ac_cv_clock_monotonic" != "no"; then
- HAVE_CLOCK_MONOTONIC=1
- REALTIME_LIBS=$ac_cv_clock_monotonic
- AC_DEFINE(HAVE_CLOCK_MONOTONIC)
- AC_SUBST(HAVE_CLOCK_MONOTONIC)
- AC_SUBST_LIST(REALTIME_LIBS)
- fi
- AC_CACHE_CHECK(for pthread_cond_timedwait_monotonic_np,
- ac_cv_pthread_cond_timedwait_monotonic_np,
- AC_TRY_LINK([#include <pthread.h>],
- [pthread_cond_timedwait_monotonic_np(0, 0, 0);],
- ac_cv_pthread_cond_timewait_monotonic_np=yes,
- ac_cv_pthread_cond_timewait_monotonic_np=no))
- if test "$ac_cv_pthread_cond_timewait_monotonic_np" != "no"; then
- AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC)
- fi
- dnl check for wcrtomb/mbrtowc
- dnl =======================================================================
- if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_CACHE_CHECK(for wcrtomb,
- ac_cv_have_wcrtomb,
- [AC_TRY_LINK([#include <wchar.h>],
- [mbstate_t ps={0};wcrtomb(0,'f',&ps);],
- ac_cv_have_wcrtomb="yes",
- ac_cv_have_wcrtomb="no")])
- if test "$ac_cv_have_wcrtomb" = "yes"; then
- AC_DEFINE(HAVE_WCRTOMB)
- fi
- AC_CACHE_CHECK(for mbrtowc,
- ac_cv_have_mbrtowc,
- [AC_TRY_LINK([#include <wchar.h>],
- [mbstate_t ps={0};mbrtowc(0,0,0,&ps);],
- ac_cv_have_mbrtowc="yes",
- ac_cv_have_mbrtowc="no")])
- if test "$ac_cv_have_mbrtowc" = "yes"; then
- AC_DEFINE(HAVE_MBRTOWC)
- fi
- AC_LANG_RESTORE
- fi
- AC_CACHE_CHECK(
- [for res_ninit()],
- ac_cv_func_res_ninit,
- [if test "$OS_TARGET" = NetBSD -o "$OS_TARGET" = OpenBSD; then
- dnl no need for res_ninit() on NetBSD and OpenBSD
- ac_cv_func_res_ninit=no
- else
- AC_TRY_LINK([
- #ifdef linux
- #define _BSD_SOURCE 1
- #endif
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <arpa/nameser.h>
- #include <resolv.h>
- ],
- [int foo = res_ninit(&_res);],
- [ac_cv_func_res_ninit=yes],
- [ac_cv_func_res_ninit=no])
- fi
- ])
- if test "$ac_cv_func_res_ninit" = "yes"; then
- AC_DEFINE(HAVE_RES_NINIT)
- dnl must add the link line we do something as foolish as this... dougt
- dnl else
- dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT),
- dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT)))
- fi
- AC_LANG_CPLUSPLUS
- ICONV_LIBS=
- AC_CHECK_LIB(c, iconv, [ICONV_LIBS=],
- AC_CHECK_LIB(iconv, iconv, [ICONV_LIBS="-liconv"],
- AC_CHECK_LIB(iconv, libiconv, [ICONV_LIBS="-liconv"])))
- _SAVE_LIBS=$LIBS
- LIBS="$LIBS $ICONV_LIBS"
- AC_CACHE_CHECK(
- [for iconv()],
- ac_cv_func_iconv,
- [AC_TRY_LINK([
- #include <stdlib.h>
- #include <iconv.h>
- ],
- [
- iconv_t h = iconv_open("", "");
- iconv(h, NULL, NULL, NULL, NULL);
- iconv_close(h);
- ],
- [ac_cv_func_iconv=yes],
- [ac_cv_func_iconv=no]
- )]
- )
- if test "$ac_cv_func_iconv" = "yes"; then
- AC_DEFINE(HAVE_ICONV)
- LIBICONV="$ICONV_LIBS"
- AC_CACHE_CHECK(
- [for iconv() with const input],
- ac_cv_func_const_iconv,
- [AC_TRY_COMPILE([
- #include <stdlib.h>
- #include <iconv.h>
- ],
- [
- const char *input = "testing";
- iconv_t h = iconv_open("", "");
- iconv(h, &input, NULL, NULL, NULL);
- iconv_close(h);
- ],
- [ac_cv_func_const_iconv=yes],
- [ac_cv_func_const_iconv=no]
- )]
- )
- if test "$ac_cv_func_const_iconv" = "yes"; then
- AC_DEFINE(HAVE_ICONV_WITH_CONST_INPUT)
- fi
- fi
- LIBS=$_SAVE_LIBS
- AC_SUBST_LIST(ICONV_LIBS)
- AM_LANGINFO_CODESET
- AC_LANG_C
- dnl **********************
- dnl *** va_copy checks ***
- AC_CACHE_CHECK([for an implementation of va_copy()],
- ac_cv_va_copy,
- [AC_TRY_COMPILE([#include <stdarg.h>
- #include <stdlib.h>
- void f (int i, ...) {
- va_list args1, args2;
- va_start (args1, i);
- va_copy (args2, args1);
- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
- exit (1);
- va_end (args1); va_end (args2);
- }],
- [f(0, 42); return 0],
- [ac_cv_va_copy=yes],
- [ac_cv_va_copy=no]
- )]
- )
- AC_CACHE_CHECK([whether va_list can be copied by value],
- ac_cv_va_val_copy,
- [AC_TRY_COMPILE([#include <stdarg.h>
- #include <stdlib.h>
- void f (int i, ...) {
- va_list args1, args2;
- va_start (args1, i);
- args2 = args1;
- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
- exit (1);
- va_end (args1); va_end (args2);
- }],
- [f(0, 42); return 0],
- [ac_cv_va_val_copy=yes],
- [ac_cv_va_val_copy=no],
- )]
- )
- if test "x$ac_cv_va_copy" = "xyes"; then
- AC_DEFINE(VA_COPY, va_copy)
- AC_DEFINE(HAVE_VA_COPY)
- fi
- if test "x$ac_cv_va_val_copy" = "xno"; then
- AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
- fi
- dnl ===================================================================
- dnl ========================================================
- dnl Put your C++ language/feature checks below
- dnl ========================================================
- AC_LANG_CPLUSPLUS
- ARM_ABI_PREFIX=
- if test "$GNU_CC"; then
- if test "$CPU_ARCH" = "arm" ; then
- AC_CACHE_CHECK(for ARM EABI,
- ac_cv_gcc_arm_eabi,
- [AC_TRY_COMPILE([],
- [
- #if defined(__ARM_EABI__)
- return 0;
- #else
- #error Not ARM EABI.
- #endif
- ],
- ac_cv_gcc_arm_eabi="yes",
- ac_cv_gcc_arm_eabi="no")])
- if test "$ac_cv_gcc_arm_eabi" = "yes"; then
- HAVE_ARM_EABI=1
- ARM_ABI_PREFIX=eabi-
- else
- ARM_ABI_PREFIX=oabi-
- fi
- fi
- TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}"
- fi
- dnl Check to see if we can resolve ambiguity with |using|.
- AC_CACHE_CHECK(whether the C++ \"using\" keyword resolves ambiguity,
- ac_cv_cpp_ambiguity_resolving_using,
- [AC_TRY_COMPILE(class X {
- public: int go(const X&) {return 3;}
- int jo(const X&) {return 3;}
- };
- class Y : public X {
- public: int go(int) {return 2;}
- int jo(int) {return 2;}
- using X::jo;
- private: using X::go;
- };,
- X x; Y y; y.jo(x);,
- ac_cv_cpp_ambiguity_resolving_using=yes,
- ac_cv_cpp_ambiguity_resolving_using=no)])
- if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then
- AC_DEFINE(HAVE_CPP_AMBIGUITY_RESOLVING_USING)
- fi
- dnl See if a dynamic_cast to void* gives the most derived object.
- AC_CACHE_CHECK(for C++ dynamic_cast to void*,
- ac_cv_cpp_dynamic_cast_void_ptr,
- [AC_TRY_RUN([class X { int i; public: virtual ~X() { } };
- class Y { int j; public: virtual ~Y() { } };
- class Z : public X, public Y { int k; };
- int main() {
- Z mdo;
- X *subx = (X*)&mdo;
- Y *suby = (Y*)&mdo;
- return !((((void*)&mdo != (void*)subx) &&
- ((void*)&mdo == dynamic_cast<void*>(subx))) ||
- (((void*)&mdo != (void*)suby) &&
- ((void*)&mdo == dynamic_cast<void*>(suby))));
- }],
- ac_cv_cpp_dynamic_cast_void_ptr=yes,
- ac_cv_cpp_dynamic_cast_void_ptr=no,
- ac_cv_cpp_dynamic_cast_void_ptr=no)])
- if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then
- AC_DEFINE(HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR)
- fi
- # try harder, when checking for __thread support, see bug 521750 comment #33 and below
- # We pass MOZ_OPTIMIZE_LDFLAGS to the linker because if dead_strip is
- # enabled, the linker in xcode 4.1 will crash. Without this it would crash when
- # linking XUL.
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS $MOZ_OPTIMIZE_LDFLAGS"
- AC_CACHE_CHECK(for __thread keyword for TLS variables,
- ac_cv_thread_keyword,
- [AC_TRY_LINK([__thread bool tlsIsMainThread = false;],
- [return tlsIsMainThread;],
- ac_cv_thread_keyword=yes,
- ac_cv_thread_keyword=no)])
- LDFLAGS=$_SAVE_LDFLAGS
- # The custom dynamic linker doesn't support TLS variables
- MOZ_TLS=
- if test "$ac_cv_thread_keyword" = yes -a "$MOZ_LINKER" != 1; then
- # mips builds fail with TLS variables because of a binutils bug.
- # See bug 528687
- # OpenBSD doesn't have TLS support, and the test succeeds with clang++
- case "${target}" in
- mips*-*)
- :
- ;;
- *-openbsd*)
- :
- ;;
- *)
- AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
- MOZ_TLS=1
- ;;
- esac
- fi
- dnl Using the custom linker on ARMv6 requires 16k alignment of ELF segments.
- if test -n "$MOZ_LINKER"; then
- if test "$CPU_ARCH" = arm; then
- dnl When building for < ARMv7, we need to ensure 16k alignment of ELF segments
- if test -n "$ARM_ARCH" && test "$ARM_ARCH" -lt 7; then
- LDFLAGS="$LDFLAGS -Wl,-z,max-page-size=0x4000 -Wl,-z,common-page-size=0x4000"
- _SUBDIR_LDFLAGS="$_SUBDIR_LDFLAGS -Wl,-z,max-page-size=0x4000 -Wl,-z,common-page-size=0x4000"
- fi
- fi
- dnl gold emits wrong sysv-style elf hash tables when building both sysv and
- dnl style tables. https://sourceware.org/bugzilla/show_bug.cgi?id=13597
- dnl Since the linker only understands the sysv ones, no need to build the
- dnl gnu style tables anyways.
- LDFLAGS="$LDFLAGS -Wl,--hash-style=sysv"
- fi
- dnl The custom linker doesn't support text relocations, but NDK >= r6b
- dnl creates some (http://code.google.com/p/android/issues/detail?id=23203)
- dnl We however want to avoid these text relocations, and this can be done
- dnl by making gcc not link crtbegin and crtend. In the broken NDKs, crtend
- dnl doesn't contain anything at all, beside placeholders for some sections,
- dnl and crtbegin only contains a finalizer function that calls
- dnl __cxa_finalize. The custom linker actually takes care of calling
- dnl __cxa_finalize when the library doesn't call it itself, which makes it
- dnl safe not to link crtbegin. Besides, previous versions of the NDK didn't
- dnl link crtbegin and crtend at all.
- if test -n "$MOZ_LINKER" -a "$OS_TARGET" = "Android"; then
- AC_CACHE_CHECK([whether the CRT objects have text relocations],
- ac_cv_crt_has_text_relocations,
- [echo 'int foo() { return 0; }' > conftest.cpp
- if AC_TRY_COMMAND(${CXX-g++} -o conftest${DLL_SUFFIX} $CXXFLAGS $DSO_LDOPTS $LDFLAGS conftest.cpp $LIBS 1>&5) &&
- test -s conftest${DLL_SUFFIX}; then
- if ${TOOLCHAIN_PREFIX}readelf -d conftest${DLL_SUFFIX} | grep TEXTREL > /dev/null; then
- ac_cv_crt_has_text_relocations=yes
- else
- ac_cv_crt_has_text_relocations=no
- fi
- else
- AC_ERROR([couldn't compile a simple C file])
- fi
- rm -rf conftest*])
- if test "$ac_cv_crt_has_text_relocations" = yes; then
- dnl While we want libraries to skip the CRT files, we don't want
- dnl executables to be treated the same way. We thus set the flag
- dnl in DSO_LDOPTS and not LDFLAGS. However, to pass it to nspr,
- dnl we need to use LDFLAGS because nspr doesn't inherit DSO_LDOPTS.
- dnl Using LDFLAGS in nspr is safe, since we only really build
- dnl libraries there.
- DSO_LDOPTS="$DSO_LDOPTS -nostartfiles"
- NSPR_LDFLAGS="$NSPR_LDFLAGS -nostartfiles"
- fi
- fi
- dnl See if compiler supports some gcc-style attributes
- AC_CACHE_CHECK(for __attribute__((always_inline)),
- ac_cv_attribute_always_inline,
- [AC_TRY_COMPILE([inline void f(void) __attribute__((always_inline));],
- [],
- ac_cv_attribute_always_inline=yes,
- ac_cv_attribute_always_inline=no)])
- dnl End of C++ language/feature checks
- AC_LANG_C
- dnl ========================================================
- dnl = Internationalization checks
- dnl ========================================================
- dnl
- dnl Internationalization and Locale support is different
- dnl on various UNIX platforms. Checks for specific i18n
- dnl features go here.
- dnl check for LC_MESSAGES
- AC_CACHE_CHECK(for LC_MESSAGES,
- ac_cv_i18n_lc_messages,
- [AC_TRY_COMPILE([#include <locale.h>],
- [int category = LC_MESSAGES;],
- ac_cv_i18n_lc_messages=yes,
- ac_cv_i18n_lc_messages=no)])
- if test "$ac_cv_i18n_lc_messages" = yes; then
- AC_DEFINE(HAVE_I18N_LC_MESSAGES)
- fi
- AC_HAVE_FUNCS(localeconv)
- fi # ! SKIP_COMPILER_CHECKS
- if test -n "${COMPILE_ENVIRONMENT}"; then
- MOZ_CHECK_ALLOCATOR
- fi
- TARGET_XPCOM_ABI=
- if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
- TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
- AC_DEFINE_UNQUOTED(TARGET_XPCOM_ABI, ["${TARGET_XPCOM_ABI}"])
- fi
- dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
- dnl features that Windows actually does support.
- if test -n "$SKIP_COMPILER_CHECKS"; then
- dnl Windows has malloc.h
- AC_DEFINE(MALLOC_H, [<malloc.h>])
- AC_DEFINE(HAVE_FORCEINLINE)
- AC_DEFINE(HAVE_LOCALECONV)
- fi # SKIP_COMPILER_CHECKS
- dnl Mozilla specific options
- dnl ========================================================
- dnl The macros used for command line options
- dnl are defined in build/autoconf/altoptions.m4.
- dnl ========================================================
- dnl =
- dnl = Check for external package dependencies
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(External Packages)
- case "$OS_TARGET" in
- WINNT)
- MOZ_FOLD_LIBS=1
- ;;
- *)
- MOZ_FOLD_LIBS=
- ;;
- esac
- MOZ_CONFIG_NSPR()
- # TODO: We need to find a better place to define this include
- NSS_CFLAGS="-I${DIST}/include/nss"
- AC_SUBST(NSS_CFLAGS)
- if test -z "$SKIP_LIBRARY_CHECKS"; then
- dnl system JPEG support
- dnl ========================================================
- MOZ_ARG_WITH_STRING(system-jpeg,
- [ --with-system-jpeg[=PFX]
- Use system libjpeg [installed at prefix PFX]],
- JPEG_DIR=$withval)
- _SAVE_CFLAGS=$CFLAGS
- _SAVE_LDFLAGS=$LDFLAGS
- _SAVE_LIBS=$LIBS
- if test -n "${JPEG_DIR}" -a "${JPEG_DIR}" != "yes"; then
- CFLAGS="-I${JPEG_DIR}/include $CFLAGS"
- LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS"
- fi
- if test -z "$JPEG_DIR" -o "$JPEG_DIR" = no; then
- MOZ_SYSTEM_JPEG=
- else
- AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [MOZ_SYSTEM_JPEG=1 MOZ_JPEG_LIBS="-ljpeg"], MOZ_SYSTEM_JPEG=)
- fi
- if test "$MOZ_SYSTEM_JPEG" = 1; then
- AC_TRY_COMPILE([ #include <stdio.h>
- #include <sys/types.h>
- #include <jpeglib.h> ],
- [ #if JPEG_LIB_VERSION < $MOZJPEG
- #error "Insufficient JPEG library version ($MOZJPEG required)."
- #endif
- #ifndef JCS_EXTENSIONS
- #error "libjpeg-turbo JCS_EXTENSIONS required"
- #endif
- ],
- MOZ_SYSTEM_JPEG=1,
- AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg]))
- fi
- CFLAGS=$_SAVE_CFLAGS
- LDFLAGS=$_SAVE_LDFLAGS
- LIBS=$_SAVE_LIBS
- if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$MOZ_SYSTEM_JPEG" = 1; then
- MOZ_JPEG_CFLAGS="-I${JPEG_DIR}/include"
- MOZ_JPEG_LIBS="-L${JPEG_DIR}/lib ${MOZ_JPEG_LIBS}"
- fi
- fi # SKIP_LIBRARY_CHECKS
- dnl system ZLIB support
- dnl ========================================================
- MOZ_ZLIB_CHECK([1.2.3])
- if test "$MOZ_LINKER" = 1 -a "$MOZ_SYSTEM_ZLIB" != 1; then
- AC_MSG_ERROR([Custom dynamic linker requires --with-system-zlib])
- fi
- if test -z "$SKIP_LIBRARY_CHECKS"; then
- dnl system BZIP2 Support
- dnl ========================================================
- MOZ_ARG_WITH_STRING(system-bz2,
- [ --with-system-bz2[=PFX]
- Use system libbz2 [installed at prefix PFX]],
- BZ2_DIR=$withval)
- _SAVE_CFLAGS=$CFLAGS
- _SAVE_LDFLAGS=$LDFLAGS
- _SAVE_LIBS=$LIBS
- if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then
- CFLAGS="-I${BZ2_DIR}/include $CFLAGS"
- LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS"
- fi
- if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then
- MOZ_SYSTEM_BZ2=
- else
- AC_CHECK_LIB(bz2, BZ2_bzread, [MOZ_SYSTEM_BZ2=1 MOZ_BZ2_LIBS="-lbz2"],
- [MOZ_SYSTEM_BZ2= MOZ_BZ2_CFLAGS= MOZ_BZ2_LIBS=])
- fi
- CFLAGS=$_SAVE_CFLAGS
- LDFLAGS=$_SAVE_LDFLAGS
- LIBS=$_SAVE_LIBS
- if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$MOZ_SYSTEM_BZ2" = 1; then
- MOZ_BZ2_CFLAGS="-I${BZ2_DIR}/include"
- MOZ_BZ2_LIBS="-L${BZ2_DIR}/lib ${MOZ_BZ2_LIBS}"
- fi
- fi # SKIP_LIBRARY_CHECKS
- dnl ========================================================
- dnl =
- dnl = Application
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Application)
- ENABLE_TESTS=
- ENABLE_SYSTEM_EXTENSION_DIRS=1
- MOZ_BRANDING_DIRECTORY=
- MOZ_OFFICIAL_BRANDING=
- MC_OFFICIAL=
- MOZ_FEEDS=1
- MOZ_AUTH_EXTENSION=1
- if test "$MOZ_IOS"; then
- MOZ_AUTH_EXTENSION=
- fi
- MOZ_RAW=
- MOZ_AV1=
- MOZ_VORBIS=
- MOZ_TREMOR=
- MOZ_SAMPLE_TYPE_FLOAT32=
- MOZ_SAMPLE_TYPE_S16=
- MOZ_WEBRTC=
- MOZ_PEERCONNECTION=
- MOZ_SRTP=
- MOZ_WEBRTC_SIGNALING=
- MOZ_WEBRTC_ASSERT_ALWAYS=1
- MOZ_WEBRTC_HARDWARE_AEC_NS=
- MOZ_SCTP=
- MOZ_VPX_ERROR_CONCEALMENT=
- VPX_USE_YASM=
- VPX_ASFLAGS=
- VPX_AS_CONVERSION=
- VPX_X86_ASM=
- VPX_ARM_ASM=
- LIBJPEG_TURBO_AS=
- LIBJPEG_TURBO_ASFLAGS=
- MOZ_GAMEPAD=
- MOZ_PREF_EXTENSIONS=1
- MOZ_REFLOW_PERF=
- MOZ_SAFE_BROWSING=
- MOZ_SPELLCHECK=1
- MOZ_TOOLKIT_SEARCH=1
- MOZ_UI_LOCALE=en-US
- MOZ_UNIVERSALCHARDET=1
- MOZ_URL_CLASSIFIER=
- MOZ_XUL=1
- MOZ_ZIPWRITER=1
- MOZ_NO_SMART_CARDS=
- MOZ_NECKO_WIFI=1
- NECKO_COOKIES=1
- MOZ_USE_NATIVE_POPUP_WINDOWS=
- MOZ_EXCLUDE_HYPHENATION_DICTIONARIES=
- ACCESSIBILITY=1
- MOZ_TIME_MANAGER=
- MOZ_AUDIO_CHANNEL_MANAGER=
- MOZ_JETPACK=1
- MOZ_DEVTOOLS_SERVER=1
- MOZ_DEVTOOLS=
- MOZ_PLACES=1
- MOZ_SECURITY_SQLSTORE=
- MOZ_SERVICES_HEALTHREPORT=1
- MOZ_SERVICES_SYNC=1
- MOZ_USERINFO=1
- NSS_DISABLE_DBM=
- MOZ_MAILNEWS=
- MOZ_MAILNEWS_OAUTH2=
- MOZ_LDAP_XPCOM=
- MOZ_MORK=
- MOZ_MAPI_SUPPORT=
- MOZ_INCOMPLETE_EXTERNAL_LINKAGE=
- MOZ_CAN_DRAW_IN_TITLEBAR=
- case "$target_os" in
- mingw*)
- NS_ENABLE_TSF=1
- AC_DEFINE(NS_ENABLE_TSF)
- ;;
- esac
- dnl ========================================================
- dnl = Vendor override
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(official-vendor,
- [ --enable-official-vendor This is an official release build.],
- MC_OFFICIAL=1,
- MC_OFFICIAL=)
- dnl ========================================================
- dnl = Trademarked Branding
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(official-branding,
- [ --enable-official-branding
- Enable Official Branding
- Do not distribute builds with
- --enable-official-branding unless you have
- permission to use our trademarks!],
- MOZ_OFFICIAL_BRANDING=1,
- MOZ_OFFICIAL_BRANDING=)
- # Allow the application to influence configure with a confvars.sh script.
- AC_MSG_CHECKING([if app-specific confvars.sh exists])
- if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
- AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
- . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
- else
- AC_MSG_RESULT([no])
- fi
- # Allow someone to change MOZ_APP_NAME and MOZ_APP_BASENAME in mozconfig
- MOZ_ARG_WITH_STRING(app-name,
- [--with-app-name=APPNAME sets MOZ_APP_NAME to APPNAME],
- WITH_APP_NAME=$withval,
- )
- if test -n "$WITH_APP_NAME" ; then
- MOZ_APP_NAME="$WITH_APP_NAME"
- fi
- MOZ_ARG_WITH_STRING(app-basename,
- [--with-app-basename=BASENAME sets MOZ_APP_BASENAME to BASENAME],
- WITH_APP_BASENAME=$withval,
- )
- if test -n "$WITH_APP_BASENAME" ; then
- MOZ_APP_BASENAME="$WITH_APP_BASENAME"
- fi
- dnl ========================================================
- dnl =
- dnl = Toolkit Options
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Toolkit Options)
- dnl ========================================================
- dnl = Enable the toolkit as needed =
- dnl ========================================================
- case "$MOZ_WIDGET_TOOLKIT" in
- cocoa)
- LDFLAGS="$LDFLAGS -framework Cocoa -lobjc"
- # Use -Wl as a trick to avoid -framework and framework names from
- # being separated by AC_SUBST_LIST.
- TK_LIBS='-Wl,-framework,CoreLocation -Wl,-framework,QuartzCore -Wl,-framework,Carbon -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit -Wl,-framework,AddressBook -Wl,-framework,OpenGL -Wl,-framework,Security -Wl,-framework,ServiceManagement'
- TK_CFLAGS=""
- CFLAGS="$CFLAGS $TK_CFLAGS"
- CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
- MOZ_USER_DIR="Mozilla"
- MOZ_FS_LAYOUT=bundle
- ;;
- uikit)
- LDFLAGS="$LDFLAGS -framework UIKit -lobjc"
- TK_CFLAGS=""
- TK_LIBS='-Wl,-framework,Foundation -Wl,-framework,CoreFoundation -Wl,-framework,CoreGraphics -Wl,-framework,CoreText -Wl,-framework,AVFoundation -Wl,-framework,AudioToolbox -Wl,-framework,CoreMedia -Wl,-framework,CoreVideo -Wl,-framework,OpenGLES -Wl,-framework,QuartzCore'
- CFLAGS="$CFLAGS $TK_CFLAGS"
- CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
- MOZ_USER_DIR="Mozilla"
- MOZ_FS_LAYOUT=bundle
- ;;
- esac
- dnl there are a lot of tests on MOZ_ENABLE_GTK below, that are more convenient
- dnl to keep that way than testing against MOZ_WIDGET_TOOLKIT
- case "$MOZ_WIDGET_TOOLKIT" in
- gtk*)
- MOZ_ENABLE_GTK=1
- ;;
- esac
- if test "$COMPILE_ENVIRONMENT"; then
- if test "$MOZ_WIDGET_TOOLKIT" = gtk3; then
- PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
- MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS"
- TK_CFLAGS=$MOZ_GTK3_CFLAGS
- TK_LIBS=$MOZ_GTK3_LIBS
- dnl GDK_VERSION_MIN_REQUIRED is not set here as GDK3 deprecated warnings
- dnl are suppressed by widget/gtk/compat-gtk3/gdk/gdkversionmacros.h.
- AC_DEFINE_UNQUOTED(GDK_VERSION_MAX_ALLOWED,$GDK_VERSION_MAX_ALLOWED)
- GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32
- fi
- if test "$MOZ_WIDGET_TOOLKIT" = gtk2; then
- GLIB_VERSION_MAX_ALLOWED=$GLIB_VERSION_MIN_REQUIRED
- fi
- if test "$MOZ_ENABLE_GTK"; then
- if test "$MOZ_X11"; then
- GDK_PACKAGES=gdk-x11-2.0
- fi
- AC_DEFINE_UNQUOTED(GLIB_VERSION_MIN_REQUIRED,$GLIB_VERSION_MIN_REQUIRED)
- AC_DEFINE_UNQUOTED(GLIB_VERSION_MAX_ALLOWED,$GLIB_VERSION_MAX_ALLOWED)
- PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 $GDK_PACKAGES)
- MOZ_GTK2_CFLAGS="-I${_topsrcdir}/widget/gtk/compat $MOZ_GTK2_CFLAGS"
- fi
- if test "$MOZ_WIDGET_TOOLKIT" = gtk2; then
- TK_CFLAGS=$MOZ_GTK2_CFLAGS
- TK_LIBS=$MOZ_GTK2_LIBS
- fi
- fi # COMPILE_ENVIRONMENT
- AC_SUBST(MOZ_FS_LAYOUT)
- dnl ========================================================
- dnl = startup-notification support module
- dnl ========================================================
- if test "$MOZ_ENABLE_GTK"
- then
- MOZ_ENABLE_STARTUP_NOTIFICATION=
- MOZ_ARG_ENABLE_BOOL(startup-notification,
- [ --enable-startup-notification
- Enable startup-notification support (default: disabled) ],
- MOZ_ENABLE_STARTUP_NOTIFICATION=force,
- MOZ_ENABLE_STARTUP_NOTIFICATION=)
- if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"
- then
- PKG_CHECK_MODULES(MOZ_STARTUP_NOTIFICATION,
- libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION,
- [MOZ_ENABLE_STARTUP_NOTIFICATION=1], [
- if test "$MOZ_ENABLE_STARTUP_NOTIFICATION" = "force"
- then
- AC_MSG_ERROR([* * * Could not find startup-notification >= $STARTUP_NOTIFICATION_VERSION])
- fi
- MOZ_ENABLE_STARTUP_NOTIFICATION=
- ])
- fi
- if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"; then
- AC_DEFINE(MOZ_ENABLE_STARTUP_NOTIFICATION)
- fi
- TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
- fi
- AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
- AC_SUBST_LIST(TK_CFLAGS)
- AC_SUBST_LIST(TK_LIBS)
- AC_SUBST(MOC)
- AC_SUBST(RCC)
- dnl ========================================================
- dnl =
- dnl = Components & Features
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Components and Features)
- dnl ========================================================
- dnl = Localization
- dnl ========================================================
- MOZ_ARG_ENABLE_STRING(ui-locale,
- [ --enable-ui-locale=ab-CD
- Select the user interface locale (default: en-US)],
- MOZ_UI_LOCALE=$enableval )
- AC_SUBST(MOZ_UI_LOCALE)
- AC_SUBST(MOZ_OFFICIAL_BRANDING)
- if test -n "$MOZ_OFFICIAL_BRANDING"; then
- if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then
- AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.])
- else
- MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY}
- AC_DEFINE(MOZ_OFFICIAL_BRANDING)
- dnl Using official branding implies an official release build.
- MC_OFFICIAL=1
- fi
- fi
- AC_SUBST(MC_OFFICIAL)
- if test -n "$MC_OFFICIAL"; then
- AC_DEFINE(MC_OFFICIAL)
- fi
- MOZ_ARG_WITH_STRING(branding,
- [ --with-branding=dir Use branding from the specified directory.],
- MOZ_BRANDING_DIRECTORY=$withval)
- REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
- if test -z "$REAL_BRANDING_DIRECTORY"; then
- REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
- fi
- if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
- . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"
- elif test -f "${EXTERNAL_SOURCE_DIR}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
- . "${EXTERNAL_SOURCE_DIR}/$REAL_BRANDING_DIRECTORY/configure.sh"
- fi
- AC_SUBST(MOZ_BRANDING_DIRECTORY)
- dnl ========================================================
- dnl = Private Build
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(private-build,
- [ --enable-private-build Enable private builds
- This allows you to build with official
- branding for personal use only using any
- build time configuration.],
- MC_PRIVATE_BUILD=1,
- MC_PRIVATE_BUILD=)
- AC_SUBST(MC_PRIVATE_BUILD)
- if test -n "$MC_PRIVATE_BUILD"; then
- AC_DEFINE(MC_PRIVATE_BUILD)
- fi
- dnl ========================================================
- dnl = Distribution ID
- dnl ========================================================
- MOZ_ARG_WITH_STRING(distribution-id,
- [ --with-distribution-id=ID
- Set distribution-specific id (default=org.mozilla)],
- [ val=`echo $withval`
- MOZ_DISTRIBUTION_ID="$val"])
- if test -z "$MOZ_DISTRIBUTION_ID"; then
- MOZ_DISTRIBUTION_ID="org.mozilla"
- fi
- AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID")
- AC_SUBST(MOZ_DISTRIBUTION_ID)
- dnl ========================================================
- dnl = GIO and GConf support module
- dnl ========================================================
- if test "$MOZ_X11"
- then
- dnl build the GIO extension by default only when the
- dnl GTK2 toolkit is in use.
- if test "$MOZ_ENABLE_GTK"
- then
- MOZ_ENABLE_GIO=1
- MOZ_ENABLE_GCONF=1
- fi
- dnl ========================================================
- dnl = GIO support module
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(gio,
- [ --disable-gio Disable GIO support],
- MOZ_ENABLE_GIO=,
- MOZ_ENABLE_GIO=force)
- if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK"
- then
- if test "$MOZ_WIDGET_TOOLKIT" = gtk2
- then
- PKG_CHECK_MODULES(_GTKCHECK, gtk+-2.0 >= 2.14, ,
- [AC_MSG_ERROR([* * * Could not find gtk+-2.0 > 2.14. Required for build with gio.])])
- fi
- PKG_CHECK_MODULES(MOZ_GIO, gio-2.0 >= $GIO_VERSION,[
- MOZ_GIO_LIBS=`echo $MOZ_GIO_LIBS | sed 's/-llinc\>//'`
- MOZ_ENABLE_GIO=1
- AC_DEFINE(MOZ_ENABLE_GIO)
- ],[
- if test "$MOZ_ENABLE_GIO" = "force"
- then
- AC_MSG_ERROR([* * * Could not find gio-2.0 >= $GIO_VERSION])
- fi
- MOZ_ENABLE_GIO=
- ])
- fi
- AC_SUBST(MOZ_ENABLE_GIO)
- dnl ========================================================
- dnl = GConf support module
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(gconf,
- [ --disable-gconf Disable Gconf support ],
- MOZ_ENABLE_GCONF=,
- MOZ_ENABLE_GCONF=1)
- if test "$MOZ_ENABLE_GCONF"
- then
- PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION gobject-2.0 ,[
- MOZ_GCONF_LIBS=`$PKG_CONFIG --libs gobject-2.0`
- MOZ_ENABLE_GCONF=1
- ],[
- if test -n "$MOZ_ENABLE_GCONF";
- then
- AC_MSG_ERROR([* * * Could not find gconf-2.0 ])
- else
- AC_MSG_WARN([Many automated tests will fail with --disable-gconf. See bug 1167201.])
- fi
- ])
- fi
- if test "$MOZ_ENABLE_GCONF"; then
- AC_DEFINE(MOZ_ENABLE_GCONF)
- fi
- AC_SUBST(MOZ_ENABLE_GCONF)
- fi
- dnl ========================================================
- dnl = libproxy support
- dnl ========================================================
- if test "$MOZ_ENABLE_GTK"
- then
- MOZ_ENABLE_LIBPROXY=
- MOZ_ARG_ENABLE_BOOL(libproxy,
- [ --enable-libproxy Enable libproxy support ],
- MOZ_ENABLE_LIBPROXY=1,
- MOZ_ENABLE_LIBPROXY=)
- if test "$MOZ_ENABLE_LIBPROXY"
- then
- PKG_CHECK_MODULES(MOZ_LIBPROXY, libproxy-1.0)
- AC_DEFINE(MOZ_ENABLE_LIBPROXY)
- fi
- fi
- AC_SUBST(MOZ_ENABLE_LIBPROXY)
- dnl ========================================================
- dnl = libgnomeui support module
- dnl ========================================================
- if test "$MOZ_ENABLE_GTK"
- then
- MOZ_ARG_ENABLE_BOOL(gnomeui,
- [ --enable-gnomeui Enable libgnomeui instead of GIO & GTK for icon theme support ],
- MOZ_ENABLE_GNOMEUI=force,
- MOZ_ENABLE_GNOMEUI=)
- if test "$MOZ_ENABLE_GNOMEUI"
- then
- PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION,
- [
- MOZ_ENABLE_GNOMEUI=1
- ],[
- if test "$MOZ_ENABLE_GNOMEUI" = "force"
- then
- AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION])
- fi
- MOZ_ENABLE_GNOMEUI=
- ])
- fi
- if test "$MOZ_ENABLE_GNOMEUI"; then
- AC_DEFINE(MOZ_ENABLE_GNOMEUI)
- fi
- fi
- AC_SUBST(MOZ_ENABLE_GNOMEUI)
- dnl ========================================================
- dnl = dbus support
- dnl ========================================================
- if test "$MOZ_ENABLE_GTK"
- then
- MOZ_ENABLE_DBUS=1
- MOZ_ARG_DISABLE_BOOL(dbus,
- [ --disable-dbus Disable dbus support ],
- MOZ_ENABLE_DBUS=,
- MOZ_ENABLE_DBUS=1)
- if test "$MOZ_ENABLE_DBUS"
- then
- PKG_CHECK_MODULES(MOZ_DBUS, dbus-1 >= $DBUS_VERSION)
- PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION)
- AC_DEFINE(MOZ_ENABLE_DBUS)
- fi
- fi
- AC_SUBST(MOZ_ENABLE_DBUS)
- dnl =========================================================
- dnl = Whether to exclude hyphenations files in the build
- dnl =========================================================
- if test -n "$MOZ_EXCLUDE_HYPHENATION_DICTIONARIES"; then
- AC_DEFINE(MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
- fi
- dnl ========================================================
- dnl accessibility support on by default on all platforms
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(accessibility,
- [ --disable-accessibility Disable accessibility support],
- ACCESSIBILITY=,
- ACCESSIBILITY=1 )
- if test "$ACCESSIBILITY"; then
- case "$target" in
- *-mingw*)
- if test -z "$MIDL"; then
- if test "$GCC" != "yes"; then
- AC_MSG_ERROR([MIDL could not be found. Building accessibility without MIDL is not supported.])
- else
- AC_MSG_ERROR([You have accessibility enabled, but widl could not be found. Add --disable-accessibility to your mozconfig or install widl. See https://developer.mozilla.org/en-US/docs/Cross_Compile_Mozilla_for_Mingw32 for details.])
- fi
- fi
- esac
- AC_DEFINE(ACCESSIBILITY)
- fi
- dnl ========================================================
- dnl Accessibility is required for the linuxgl widget
- dnl backend
- dnl ========================================================
- if test "${MOZ_WIDGET_TOOLKIT}" = "linuxgl" -a "$ACCESSIBILITY" != "1"; then
- AC_MSG_ERROR(["Accessibility is required for the linuxgl widget backend"])
- fi
- dnl Turn off webrtc for OS's we don't handle yet, but allow
- dnl --enable-webrtc to override. Can disable for everything in
- dnl the master list above.
- if test -n "$MOZ_WEBRTC"; then
- case "$target" in
- *-linux*|*-mingw*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*)
- dnl Leave enabled
- ;;
- *)
- dnl default to disabled for all others
- MOZ_WEBRTC=
- ;;
- esac
- fi
- AC_TRY_COMPILE([#include <linux/ethtool.h>],
- [ struct ethtool_cmd cmd; cmd.speed_hi = 0; ],
- MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI=1)
- AC_SUBST(MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI)
- # target_arch is from {ia32|x64|arm|ppc}
- case "$CPU_ARCH" in
- x86_64 | arm | aarch64 | x86 | ppc* | ia64)
- :
- ;;
- *)
- # unsupported arch for webrtc
- MOZ_WEBRTC=
- ;;
- esac
- dnl =========================================================
- dnl = NSS DBM (BerkeleyDB) Support
- dnl = NOTE: Because we don't expressly control the name of
- dnl = this var --disable-dbm means NSS_DISABLE_DBM=1
- dnl =========================================================
- MOZ_ARG_DISABLE_BOOL(dbm,
- [ --disable-dbm Disable DBM support in nss],
- NSS_DISABLE_DBM=1,
- NSS_DISABLE_DBM=)
- if test -n "$NSS_DISABLE_DBM"; then
- AC_DEFINE(NSS_DISABLE_DBM)
- fi
- AC_SUBST(NSS_DISABLE_DBM)
- dnl =========================================================
- dnl = NSS SQL storage format
- dnl =========================================================
- MOZ_ARG_ENABLE_BOOL(security-sqlstore,
- [ --enable-security-sqlstore Enable the use of SQL storage for NSS],
- MOZ_SECURITY_SQLSTORE=1,
- MOZ_SECURITY_SQLSTORE=)
- if test -n "$NSS_DISABLE_DBM" -a -z "$MOZ_SECURITY_SQLSTORE"; then
- AC_MSG_ERROR([DBM storage support is required if not using NSS SQL storage])
- fi
- if test -n "$MOZ_SECURITY_SQLSTORE"; then
- AC_DEFINE(MOZ_SECURITY_SQLSTORE)
- fi
- AC_SUBST(MOZ_SECURITY_SQLSTORE)
- dnl =========================================================
- dnl = Don't fold mailnews related comps into libXUL
- dnl =========================================================
- MOZ_ARG_ENABLE_BOOL(incomplete-external-linkage,
- [ --enable-incomplete-external-linkage Don't fold *comps into libXUL which is currently badly busted so don't even bother with it ],
- MOZ_INCOMPLETE_EXTERNAL_LINKAGE=1,
- MOZ_INCOMPLETE_EXTERNAL_LINKAGE= )
- AC_SUBST(MOZ_INCOMPLETE_EXTERNAL_LINKAGE)
- dnl ========================================================
- dnl = Enable MailNews
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(mailnews,
- [ --enable-mailnews Enable the mailnews core backend],
- MOZ_MAILNEWS=1,
- MOZ_MAILNEWS=)
- if test -n "$MOZ_MAILNEWS"; then
- MOZ_MORK=1
- MOZ_LDAP_XPCOM=1
- if test "$OS_ARCH" == "WINNT"; then
- MOZ_MAPI_SUPPORT=1
- else
- MOZ_MOVEMAIL=1
- HAVE_MOVEMAIL=1
- AC_DEFINE(HAVE_MOVEMAIL)
- fi
- AC_DEFINE(MOZ_MAILNEWS)
- AC_DEFINE(MOZ_MORK)
- fi
- AC_SUBST(MOZ_MAILNEWS)
- AC_SUBST(MOZ_MORK)
- AC_SUBST(MOZ_MOVEMAIL)
- dnl =========================================================
- dnl = Mailnews OAuth2 Support
- dnl =========================================================
- MOZ_ARG_DISABLE_BOOL(mailnews-oauth2,
- [ --disable-mailnews-oauth2 Disable oauth2 support in mailnews],
- MOZ_MAILNEWS_OAUTH2=,
- MOZ_MAILNEWS_OAUTH2=1)
- if test -n "$MOZ_MAILNEWS_OAUTH2"; then
- AC_DEFINE(MOZ_MAILNEWS_OAUTH2)
- fi
- AC_SUBST(MOZ_MAILNEWS_OAUTH2)
- dnl =========================================================
- dnl = LDAP
- dnl =========================================================
- MOZ_ARG_DISABLE_BOOL(ldap,
- [ --disable-ldap Disable LDAP support],
- MOZ_LDAP_XPCOM= )
- if test -n "$MOZ_LDAP_XPCOM"; then
- AC_DEFINE(MOZ_LDAP_XPCOM)
- fi
- AC_SUBST(MOZ_LDAP_XPCOM)
- dnl =========================================================
- dnl = MAPI support (Windows only)
- dnl =========================================================
- MOZ_ARG_DISABLE_BOOL(mapi,
- [ --disable-mapi Disable MAPI support],
- MOZ_MAPI_SUPPORT= )
- if test -n "$MOZ_MAPI_SUPPORT"; then
- AC_DEFINE(MOZ_MAPI_SUPPORT)
- fi
- AC_SUBST(MOZ_MAPI_SUPPORT)
- dnl ========================================================
- dnl = Client drawing in titlebar
- dnl ========================================================
- if test -n "$MOZ_CAN_DRAW_IN_TITLEBAR"; then
- case "$OS_TARGET" in
- WINNT)
- AC_DEFINE(MOZ_CAN_DRAW_IN_TITLEBAR)
- ;;
- *)
- AC_MSG_ERROR([Drawing in the titlebar is only supported on Windows targets])
- ;;
- esac
- fi
- AC_SUBST(MOZ_CAN_DRAW_IN_TITLEBAR)
- dnl ========================================================
- dnl = Enable WebRTC code
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(webrtc,
- [ --enable-webrtc Enable support for WebRTC],
- MOZ_WEBRTC=1,
- MOZ_WEBRTC=)
- if test -n "$MOZ_WEBRTC"; then
- AC_DEFINE(MOZ_WEBRTC)
- dnl MOZ_WEBRTC_ASSERT_ALWAYS turns on a number of safety asserts in
- dnl opt/production builds (via MOZ_CRASH())
- AC_DEFINE(MOZ_WEBRTC_ASSERT_ALWAYS)
- MOZ_RAW=1
- MOZ_VPX_ERROR_CONCEALMENT=1
- dnl enable once Signaling lands
- MOZ_WEBRTC_SIGNALING=1
- AC_DEFINE(MOZ_WEBRTC_SIGNALING)
- dnl enable once PeerConnection lands
- MOZ_PEERCONNECTION=1
- AC_DEFINE(MOZ_PEERCONNECTION)
- MOZ_SCTP=1
- MOZ_SRTP=1
- AC_DEFINE(MOZ_SCTP)
- AC_DEFINE(MOZ_SRTP)
- if test -n "$MOZ_X11"; then
- MOZ_WEBRTC_X11_LIBS="-lXext -lXdamage -lXfixes -lXcomposite"
- fi
- else
- MOZ_SYNTH_PICO=
- fi
- dnl ========================================================
- dnl = Force hardware AEC, disable webrtc.org AEC
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(hardware-aec-ns,
- [ --enable-hardware-aec-ns Enable support for hardware AEC and noise suppression],
- MOZ_WEBRTC_HARDWARE_AEC_NS=1,
- MOZ_WEBRTC_HARDWARE_AEC_NS=)
- if test -n "$MOZ_WEBRTC_HARDWARE_AEC_NS"; then
- AC_DEFINE(MOZ_WEBRTC_HARDWARE_AEC_NS)
- fi
- AC_SUBST(MOZ_WEBRTC)
- AC_SUBST(MOZ_WEBRTC_SIGNALING)
- AC_SUBST(MOZ_PEERCONNECTION)
- AC_SUBST(MOZ_WEBRTC_ASSERT_ALWAYS)
- AC_SUBST(MOZ_WEBRTC_HARDWARE_AEC_NS)
- AC_SUBST(MOZ_SCTP)
- AC_SUBST(MOZ_SRTP)
- AC_SUBST_LIST(MOZ_WEBRTC_X11_LIBS)
- dnl Use integers over floats for audio on Android
- dnl (regarless of the CPU architecture, because audio
- dnl backends for those platforms don't support floats. We also
- dnl use integers on ARM with other OS, because it's more efficient.
- if test "$OS_TARGET" = "Android" -o "$CPU_ARCH" = "arm"; then
- MOZ_SAMPLE_TYPE_S16=1
- AC_DEFINE(MOZ_SAMPLE_TYPE_S16)
- AC_SUBST(MOZ_SAMPLE_TYPE_S16)
- else
- MOZ_SAMPLE_TYPE_FLOAT32=1
- AC_DEFINE(MOZ_SAMPLE_TYPE_FLOAT32)
- AC_SUBST(MOZ_SAMPLE_TYPE_FLOAT32)
- fi
- dnl ========================================================
- dnl = Enable Raw Codecs
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(raw,
- [ --enable-raw Enable support for RAW media],
- MOZ_RAW=1,
- MOZ_RAW=)
- if test -n "$MOZ_RAW"; then
- AC_DEFINE(MOZ_RAW)
- fi
- AC_SUBST(MOZ_RAW)
- dnl ========================================================
- dnl = Enable Libaom AV1 Codec
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(av1,
- [ --enable-av1 Enable libaom for av1 video support],
- MOZ_AV1=1,
- MOZ_AV1=)
- if test -n "$MOZ_AV1"; then
- AC_DEFINE(MOZ_AV1)
- fi
- AC_SUBST(MOZ_AV1)
- dnl ========================================================
- dnl = Apple platform decoder support
- dnl ========================================================
- if test "$COMPILE_ENVIRONMENT"; then
- if test -n "$MOZ_APPLEMEDIA"; then
- # hack in frameworks for fmp4 - see bug 1029974
- # We load VideoToolbox and CoreMedia dynamically, so they don't appear here.
- LDFLAGS="$LDFLAGS -framework AudioToolbox"
- dnl Verify CoreMedia is available.
- AC_CHECK_HEADER([CoreMedia/CoreMedia.h], [],
- [AC_MSG_ERROR([MacOS X 10.7 SDK or later is required])])
- fi
- fi # COMPILE_ENVIRONMENT
- dnl ========================================================
- dnl = EME support
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(eme,
- [ --enable-eme Enable support for Encrypted Media Extensions ],
- MOZ_EME=1,
- MOZ_EME=)
- if test -n "$MOZ_EME"; then
- if test -z "$MOZ_FMP4"; then
- AC_MSG_ERROR([Encrypted Media Extension support requires Fragmented MP4 support])
- fi
- AC_DEFINE(MOZ_EME)
- fi
- AC_SUBST(MOZ_EME)
- MOZ_LIBVPX_CFLAGS=
- MOZ_LIBVPX_LIBS=
- if test -n "$MOZ_VPX_ERROR_CONCEALMENT" ; then
- AC_DEFINE(MOZ_VPX_ERROR_CONCEALMENT)
- fi
- AC_SUBST_LIST(MOZ_LIBVPX_CFLAGS)
- AC_SUBST_LIST(MOZ_LIBVPX_LIBS)
- if test "$MOZ_SAMPLE_TYPE_FLOAT32"; then
- MOZ_VORBIS=1
- else
- MOZ_TREMOR=1
- fi
- if test -z "$MOZ_SYSTEM_LIBVPX"; then
- dnl Detect if we can use an assembler to compile optimized assembly for libvpx.
- dnl We currently require yasm on all x86 platforms and require yasm 1.1.0 on Win32.
- dnl We currently require gcc on all arm platforms.
- dnl See if we have assembly on this platform.
- case "$OS_ARCH:$CPU_ARCH" in
- WINNT:x86_64)
- VPX_USE_YASM=1
- VPX_X86_ASM=1
- ;;
- WINNT:x86)
- dnl Check for yasm 1.1 or greater.
- if test -n "$COMPILE_ENVIRONMENT" -a -z "$YASM"; then
- AC_MSG_ERROR([yasm 1.1 or greater is required to build libvpx on Win32, but it appears not to be installed. Install it (included in MozillaBuild 1.5.1 and newer) or configure with --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
- elif test -n "$COMPILE_ENVIRONMENT" -a "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -lt "1" \) ; then
- AC_MSG_ERROR([yasm 1.1 or greater is required to build libvpx on Win32, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION. Upgrade to the newest version (included in MozillaBuild 1.5.1 and newer) or configure with --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
- else
- VPX_USE_YASM=1
- VPX_X86_ASM=1
- dnl The encoder needs obj_int_extract to get asm offsets.
- fi # COMPILE_ENVIRONMENT and others
- ;;
- *:arm*)
- if test -n "$GNU_AS" ; then
- dnl These flags are a lie; they're just used to enable the requisite
- dnl opcodes; actual arch detection is done at runtime.
- VPX_ASFLAGS="-march=armv7-a -mfpu=neon"
- VPX_AS_CONVERSION='$(PERL) $(topsrcdir)/media/libvpx/build/make/ads2gas.pl'
- VPX_ARM_ASM=1
- dnl Building with -mfpu=neon requires either the "softfp" or the
- dnl "hardfp" ABI. Depending on the compiler's default target, and the
- dnl CFLAGS, the default ABI might be neither, in which case it is the
- dnl "softfloat" ABI.
- dnl The "softfloat" ABI is binary-compatible with the "softfp" ABI, so
- dnl we can safely mix code built with both ABIs. So, if we detect
- dnl that compiling uses the "softfloat" ABI, force the use of the
- dnl "softfp" ABI instead.
- dnl Confusingly, the __SOFTFP__ preprocessor variable indicates the
- dnl "softfloat" ABI, not the "softfp" ABI.
- dnl Note: VPX_ASFLAGS is also used in CFLAGS.
- AC_TRY_COMPILE([],
- [#ifndef __SOFTFP__
- #error "compiler target supports -mfpu=neon, so we don't have to add extra flags"
- #endif],
- VPX_ASFLAGS="$VPX_ASFLAGS -mfloat-abi=softfp"
- )
- fi
- ;;
- *:x86)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- VPX_USE_YASM=1
- VPX_X86_ASM=1
- fi
- ;;
- *:x86_64)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- VPX_USE_YASM=1
- VPX_X86_ASM=1
- fi
- ;;
- esac
- if test -n "$COMPILE_ENVIRONMENT" -a -n "$VPX_USE_YASM" -a -z "$YASM"; then
- AC_MSG_ERROR([yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
- fi # COMPILE_ENVIRONMENT and others
- if test -n "$VPX_USE_YASM" && test "$OS_ARCH:$CPU_ARCH" != "WINNT:x86_64"; then
- VPX_ASFLAGS="-DPIC"
- fi
- if test -n "$VPX_X86_ASM"; then
- AC_DEFINE(VPX_X86_ASM)
- elif test -n "$VPX_ARM_ASM"; then
- AC_DEFINE(VPX_ARM_ASM)
- else
- AC_MSG_WARN([No assembler or assembly support for libvpx. Using unoptimized C routines.])
- fi
- dnl native libvpx no longer has vpx_mem_set_functions
- AC_DEFINE(MOZ_VPX_NO_MEM_REPORTING)
- fi
- dnl ========================================================
- dnl = Handle dependent MEDIA defines
- dnl ========================================================
- if test -n "$MOZ_VORBIS" -a -n "$MOZ_TREMOR"; then
- AC_MSG_ERROR([MOZ_VORBIS and MOZ_TREMOR are mutually exclusive! The build system should not allow them both to be set, but they are. Please file a bug at https://bugzilla.mozilla.org/])
- fi
- if test -n "$MOZ_VORBIS"; then
- AC_DEFINE(MOZ_VORBIS)
- fi
- if test -n "$MOZ_TREMOR"; then
- AC_DEFINE(MOZ_TREMOR)
- fi
- MOZ_WEBM_ENCODER=1
- AC_DEFINE(MOZ_WEBM_ENCODER)
- AC_SUBST(MOZ_WEBM_ENCODER)
- dnl ==================================
- dnl = Check alsa availability on Linux
- dnl ==================================
- dnl If using Linux, enable the alsa library by default
- if test "$OS_TARGET" = "Linux"; then
- MOZ_ALSA=1
- fi
- MOZ_ARG_ENABLE_BOOL(alsa,
- [ --enable-alsa Enable Alsa support (default on Linux)],
- MOZ_ALSA=1,
- MOZ_ALSA=)
- if test -n "$MOZ_ALSA"; then
- PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
- [echo "$MOZ_ALSA_PKG_ERRORS"
- AC_MSG_ERROR([You need ALSA for audio output on Linux.])])
- fi
- AC_SUBST(MOZ_ALSA)
- dnl ========================================================
- dnl = Disable PulseAudio
- dnl ========================================================
- dnl If using Desktop Linux, ensure that the PA library is available
- case "$OS_TARGET" in
- WINNT)
- ;;
- *)
- MOZ_PULSEAUDIO=1
- ;;
- esac
- MOZ_ARG_DISABLE_BOOL(pulseaudio,
- [ --disable-pulseaudio Disable PulseAudio support],
- MOZ_PULSEAUDIO=,
- MOZ_PULSEAUDIO=1)
- if test -n "$MOZ_PULSEAUDIO"; then
- AC_DEFINE(MOZ_PULSEAUDIO)
- PKG_CHECK_MODULES(MOZ_PULSEAUDIO, libpulse, ,
- [echo "$MOZ_PULSEAUDIO_PKG_ERRORS"
- AC_MSG_ERROR([Building pulseaudio audio backend requires libpulse development package])])
- fi
- AC_SUBST(MOZ_PULSEAUDIO)
- dnl ========================================================
- dnl = Enable sndio
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(sndio,
- [ --enable-sndio Enable sndio support],
- MOZ_SNDIO=1,
- MOZ_SNDIO= )
- if test -n "$MOZ_SNDIO"; then
- AC_DEFINE(MOZ_SNDIO)
- MOZ_CHECK_HEADER([sndio.h], [],
- AC_MSG_ERROR(
- [--enable-sndio specified but it requires sndio development headers]))
- AC_DEFINE(MOZ_SNDIO)
- fi
- AC_SUBST(MOZ_SNDIO)
- dnl ========================================================
- dnl NegotiateAuth
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(negotiateauth,
- [ --disable-negotiateauth Disable GSS-API negotiation ],
- MOZ_AUTH_EXTENSION=,
- MOZ_AUTH_EXTENSION=1 )
- if test -n "$MOZ_IOS" -a -n "$MOZ_AUTH_EXTENSION"; then
- AC_MSG_ERROR([negotiateauth is not supported on iOS.])
- fi
- dnl ========================================================
- dnl Pref extensions (autoconfig)
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(pref-extensions,
- [ --disable-pref-extensions
- Disable pref extensions such as autoconfig],
- MOZ_PREF_EXTENSIONS=,
- MOZ_PREF_EXTENSIONS=1 )
- dnl ========================================================
- dnl Searching of system directories for extensions.
- dnl Note: this switch is meant to be used for test builds
- dnl whose behavior should not depend on what happens to be
- dnl installed on the local machine.
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(system-extension-dirs,
- [ --disable-system-extension-dirs
- Disable searching system- and account-global
- directories for extensions of any kind; use
- only profile-specific extension directories],
- ENABLE_SYSTEM_EXTENSION_DIRS=,
- ENABLE_SYSTEM_EXTENSION_DIRS=1 )
- if test "$ENABLE_SYSTEM_EXTENSION_DIRS"; then
- AC_DEFINE(ENABLE_SYSTEM_EXTENSION_DIRS)
- fi
- dnl ========================================================
- dnl = Universalchardet
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(universalchardet,
- [ --disable-universalchardet
- Disable universal encoding detection],
- MOZ_UNIVERSALCHARDET=,
- MOZ_UNIVERSALCHARDET=1 )
- dnl ========================================================
- dnl = ANGLE OpenGL->D3D translator for WebGL
- dnl = * only applies to win32
- dnl ========================================================
- MOZ_ANGLE_RENDERER=
- MOZ_D3D_CPU_SUFFIX=
- MOZ_HAS_WINSDK_WITH_D3D=
- MOZ_D3DCOMPILER_VISTA_DLL=
- MOZ_D3DCOMPILER_VISTA_DLL_PATH=
- if test "$COMPILE_ENVIRONMENT" ; then
- case "$target_os" in
- *mingw*)
- MOZ_ANGLE_RENDERER=1
- ;;
- esac
- # The DirectX SDK libraries are split into x86 and x64 sub-directories
- case "${target_cpu}" in
- i*86)
- MOZ_D3D_CPU_SUFFIX=x86
- ;;
- x86_64)
- MOZ_D3D_CPU_SUFFIX=x64
- ;;
- esac
- # This is potentially set in external mozconfig files; if it's set,
- # then the build exposes the "webgl" context name, which is reserved
- # for conformant implementations.
- if test -n "$MOZ_WEBGL_CONFORMANT"; then
- AC_DEFINE(MOZ_WEBGL_CONFORMANT)
- fi
- dnl ========================================================
- dnl D3D compiler DLL
- dnl ========================================================
- MOZ_FOUND_D3D_COMPILERS=
- if test -n "$MOZ_ANGLE_RENDERER"; then
- if test -z "$MOZ_D3D_CPU_SUFFIX"; then
- AC_MSG_ERROR([Couldn't determine MOZ_D3D_CPU_SUFFIX.])
- fi
- ######################################
- # Find _46+ for use by Vista+.
- # Find a D3D compiler DLL in a Windows SDK.
- MOZ_D3DCOMPILER_VISTA_DLL=
- case "$MOZ_WINSDK_MAXVER" in
- 0x0603*|0x0A00*)
- MOZ_D3DCOMPILER_VISTA_DLL=d3dcompiler_47.dll
- AC_MSG_RESULT([Found D3D compiler in Windows SDK.])
- ;;
- esac
- if test -n "$MOZ_D3DCOMPILER_VISTA_DLL"; then
- # We have a name, now track down the path.
- if test -n "$WINDOWSSDKDIR"; then
- MOZ_D3DCOMPILER_VISTA_DLL_PATH="$WINDOWSSDKDIR/Redist/D3D/$MOZ_D3D_CPU_SUFFIX/$MOZ_D3DCOMPILER_VISTA_DLL"
- if test -f "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then
- AC_MSG_RESULT([Found MOZ_D3DCOMPILER_VISTA_DLL_PATH: $MOZ_D3DCOMPILER_VISTA_DLL_PATH])
- MOZ_HAS_WINSDK_WITH_D3D=1
- else
- AC_MSG_RESULT([MOZ_D3DCOMPILER_VISTA_DLL_PATH doesn't exist: $MOZ_D3DCOMPILER_VISTA_DLL_PATH])
- AC_MSG_ERROR([Windows SDK at "$WINDOWSSDKDIR" appears broken. Try updating to MozillaBuild 1.9 final or higher.])
- MOZ_D3DCOMPILER_VISTA_DLL_PATH=
- fi
- else
- AC_MSG_RESULT([Windows SDK not found.])
- fi
- else
- AC_MSG_ERROR([Couldn't find Windows SDK 8.1 or higher needed for ANGLE.])
- fi
- if test -z "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then
- MOZ_D3DCOMPILER_VISTA_DLL=
- fi
- # On mingw, check if headers are provided by toolchain.
- if test -n "$GNU_CC"; then
- MOZ_CHECK_HEADER(d3d10.h, MOZ_HAS_WINSDK_WITH_D3D=1)
- fi
- ######################################
- # Check that we found what we needed.
- MOZ_FOUND_A_D3D_COMPILER=
- if test -n "$MOZ_D3DCOMPILER_VISTA_DLL"; then
- MOZ_FOUND_A_D3D_COMPILER=1
- AC_MSG_RESULT([Found d3dcompiler DLL for Vista+: $MOZ_D3DCOMPILER_VISTA_DLL])
- fi
- if test -z "$CROSS_COMPILE"; then
- if test -z "MOZ_FOUND_A_D3D_COMPILER"; then
- AC_MSG_ERROR([Couldn't find an acceptable D3D compiler DLL.])
- fi
- fi
- fi # MOZ_ANGLE_RENDERER
- fi # COMPILE_ENVIRONMENT
- dnl ========================================================
- dnl Gamepad support
- dnl ========================================================
- MOZ_GAMEPAD_BACKEND=stub
- MOZ_ARG_ENABLE_BOOL(gamepad,
- [ --enable-gamepad Enable gamepad support],
- MOZ_GAMEPAD=1,
- MOZ_GAMEPAD=)
- if test "$MOZ_GAMEPAD"; then
- case "$OS_TARGET" in
- WINNT)
- MOZ_GAMEPAD_BACKEND=windows
- ;;
- Linux)
- MOZ_CHECK_HEADER([linux/joystick.h])
- if test "$ac_cv_header_linux_joystick_h" != "yes"; then
- AC_MSG_ERROR([Can't find header linux/joystick.h, needed for gamepad support. Please install Linux kernel headers or reconfigure with --disable-gamepad to disable gamepad support.])
- fi
- MOZ_GAMEPAD_BACKEND=linux
- ;;
- Android)
- MOZ_GAMEPAD_BACKEND=android
- ;;
- *)
- ;;
- esac
- AC_DEFINE(MOZ_GAMEPAD)
- fi
- AC_SUBST(MOZ_GAMEPAD)
- AC_SUBST(MOZ_GAMEPAD_BACKEND)
- dnl ========================================================
- dnl = libjpeg-turbo configuration
- dnl ========================================================
- MOZ_LIBJPEG_TURBO=
- LIBJPEG_TURBO_USE_YASM=
- if test -z "$MOZ_SYSTEM_JPEG"; then
- MOZ_LIBJPEG_TURBO=1
- fi
- MOZ_ARG_DISABLE_BOOL(libjpeg_turbo,
- [ --disable-libjpeg-turbo Disable optimized jpeg decoding routines],
- MOZ_LIBJPEG_TURBO=,
- MOZ_LIBJPEG_TURBO=1)
- if test "$MOZ_SYSTEM_JPEG" = 1 -a "$MOZ_LIBJPEG_TURBO" = 1; then
- AC_MSG_ERROR([cannot use --with-system-jpeg with --enable-libjpeg-turbo.])
- fi
- dnl Detect if we can use yasm to compile libjpeg-turbo's optimized assembly
- dnl files.
- if test -n "$MOZ_LIBJPEG_TURBO" -a -n "$COMPILE_ENVIRONMENT"; then
- dnl Do we support libjpeg-turbo on this platform?
- case "$OS_ARCH:$CPU_ARCH" in
- WINNT:x86)
- LIBJPEG_TURBO_ASFLAGS="-DPIC -DWIN32"
- ;;
- WINNT:x86_64)
- LIBJPEG_TURBO_ASFLAGS="-D__x86_64__ -DPIC -DWIN64 -DMSVC"
- ;;
- *:arm)
- LIBJPEG_TURBO_ASFLAGS="-march=armv7-a -mfpu=neon"
- ;;
- *:aarch64)
- LIBJPEG_TURBO_ASFLAGS="-march=armv8-a"
- ;;
- *:mips32)
- LIBJPEG_TURBO_ASFLAGS="-mdspr2"
- ;;
- *:x86)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- LIBJPEG_TURBO_ASFLAGS="-DPIC -DELF"
- fi
- ;;
- *:x86_64)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- LIBJPEG_TURBO_ASFLAGS="-D__x86_64__ -DPIC -DELF"
- fi
- ;;
- esac
- fi
- if test -n "$LIBJPEG_TURBO_ASFLAGS"; then
- case "$CPU_ARCH" in
- dnl If we're on an x86 or x64 system which supports libjpeg-turbo's asm routines
- dnl and --disable-libjpeg-turbo wasn't passed, check for Yasm, and error out if
- dnl it doesn't exist or we have too old of a version.
- x86_64|x86)
- LIBJPEG_TURBO_USE_YASM=1
- if test -z "$YASM" ; then
- AC_MSG_ERROR([Yasm is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you do not appear to have Yasm installed. Either install it or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
- fi
- dnl Check that we have the right yasm version. We require 1.0.1 or newer
- dnl on Linux and 1.1 or newer everywhere else.
- if test "$OS_ARCH" = "Linux" ; then
- if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -eq "0" -a "$_YASM_RELEASE" -lt "1" \) ; then
- AC_MSG_ERROR([Yasm 1.0.1 or greater is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION.$_YASM_RELEASE. Upgrade to the newest version or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
- fi
- else
- if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -lt "1" \) ; then
- AC_MSG_ERROR([Yasm 1.1 or greater is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION. Upgrade to the newest version or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
- fi
- fi
- ;;
- esac
- fi
- dnl ========================================================
- dnl = libav-fft configuration
- dnl ========================================================
- MOZ_LIBAV_FFT=
- dnl Turn on libav-fft for 32-bit windows, and all 64-bit supported platforms.
- dnl 32-bit linux/os x have text relocation issues.
- case "$OS_ARCH:$CPU_ARCH" in
- WINNT:x86)
- MOZ_LIBAV_FFT=1
- ;;
- *:x86_64)
- MOZ_LIBAV_FFT=1
- ;;
- esac
- dnl Detect if we can use yasm to compile libav's assembly
- if test -n "$MOZ_LIBAV_FFT" -a -n "$COMPILE_ENVIRONMENT"; then
- AC_DEFINE(MOZ_LIBAV_FFT)
- dnl Do we support libav-fft on this platform?
- case "$OS_ARCH:$CPU_ARCH" in
- WINNT:x86)
- LIBAV_FFT_ASFLAGS="-DPIC -DWIN32"
- ;;
- WINNT:x86_64)
- LIBAV_FFT_ASFLAGS="-D__x86_64__ -DPIC -DWIN64 -DMSVC"
- ;;
- *:x86_64)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- LIBAV_FFT_ASFLAGS="-D__x86_64__ -DPIC -DELF"
- fi
- ;;
- *)
- AC_MSG_ERROR([libav's FFT routines are only available for 32-bit windows or 64-bit x86 based platforms.])
- ;;
- esac
- fi
- if test -n "$LIBAV_FFT_ASFLAGS"; then
- dnl If we're on an x86 or x64 system which supports libav-fft's asm routines
- dnl check for Yasm, and error out if it doesn't exist or we have too old of a
- dnl version.
- if test -z "$YASM" ; then
- AC_MSG_ERROR([Yasm is required to build with libav's optimized FFT routines, but you do not appear to have Yasm installed. See https://developer.mozilla.org/en/YASM for more details.])
- fi
- dnl Check that we have the right yasm version. We require 1.0.1 or newer
- dnl on Linux and 1.1 or newer everywhere else.
- if test "$OS_ARCH" = "Linux" ; then
- if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -eq "0" -a "$_YASM_RELEASE" -lt "1" \) ; then
- AC_MSG_ERROR([Yasm 1.0.1 or greater is required to build with libav's optimized FFT routines, but you do not appear to have Yasm installed. See https://developer.mozilla.org/en/YASM for more details.])
- fi
- else
- if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -lt "1" \) ; then
- AC_MSG_ERROR([Yasm 1.1 or greater is required to build with libav's optimized FFT routines, but you do not appear to have Yasm installed. See https://developer.mozilla.org/en/YASM for more details.])
- fi
- fi
- elif test -n "$MOZ_LIBAV_FFT" -a "${CPU_ARCH}" != "arm"; then
- dnl Warn if we're not building either libav or opendl-max optimized routines.
- AC_MSG_WARN([No assembler or assembly support for libav-fft. Using unoptimized C routines.])
- fi
- dnl ========================================================
- dnl = FFmpeg's ffvpx configuration
- dnl ========================================================
- MOZ_FFVPX=
- dnl Build ffvpx on 32-bit Windows and all supported 64-bit platforms.
- dnl 32-bit *nix has performance issues due to not supporting assembly decoder.
- case "$OS_ARCH:$CPU_ARCH" in
- WINNT:x86)
- MOZ_FFVPX=1
- ;;
- *:x86_64)
- MOZ_FFVPX=1
- ;;
- esac
- dnl Use same conditional as MOZ_LIBAV_FFT to enable FFmpeg's ffvpx assembly decoder.
- if test -n "$MOZ_LIBAV_FFT"; then
- FFVPX_ASFLAGS=$LIBAV_FFT_ASFLAGS
- fi
- if test -n "$MOZ_FFVPX"; then
- AC_DEFINE(MOZ_FFVPX)
- fi
- dnl ========================================================
- dnl = Enable compilation of specific extension modules
- dnl ========================================================
- MOZ_ARG_ENABLE_STRING(extensions,
- [ --enable-extensions Enable extensions],
- [ for option in `echo $enableval | sed 's/,/ /g'`; do
- if test "$option" = "yes" -o "$option" = "all"; then
- AC_MSG_ERROR([--enable-extensions=$option is no longer supported.])
- elif test "$option" = "no" -o "$option" = "none"; then
- MOZ_EXTENSIONS=""
- elif test "$option" = "default"; then
- MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_DEFAULT"
- elif test `echo "$option" | grep -c \^-` != 0; then
- option=`echo $option | sed 's/^-//'`
- MOZ_EXTENSIONS=`echo "$MOZ_EXTENSIONS" | sed "s/ ${option}//"`
- else
- MOZ_EXTENSIONS="$MOZ_EXTENSIONS $option"
- fi
- done],
- MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
- if test -z "$MOZ_ENABLE_GIO" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
- # Suppress warning on non-X11 platforms
- if test -n "$MOZ_X11"; then
- AC_MSG_WARN([Removing gio from MOZ_EXTENSIONS due to --disable-gio.])
- fi
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
- fi
- if test `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
- MOZ_GIO_COMPONENT=1
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
- fi
- AC_SUBST(MOZ_GIO_COMPONENT)
- dnl Ensure every extension exists, to avoid mostly-inscrutable error messages
- dnl when trying to build a nonexistent extension.
- for extension in $MOZ_EXTENSIONS; do
- if test ! -d "${srcdir}/extensions/${extension}"; then
- AC_MSG_ERROR([Unrecognized extension provided to --enable-extensions: ${extension}.])
- fi
- done
- if test -n "$MOZ_USE_NATIVE_POPUP_WINDOWS"; then
- AC_DEFINE(MOZ_USE_NATIVE_POPUP_WINDOWS)
- fi
- if test -n "$MOZ_TREE_FREETYPE"; then
- MOZ_ENABLE_CAIRO_FT=1
- FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
- CAIRO_FT_CFLAGS="-I$_topsrcdir/modules/freetype2/include"
- AC_SUBST_LIST(CAIRO_FT_CFLAGS)
- fi
- AC_CHECK_PROGS(WGET, wget, "")
- AC_SUBST(WGET)
- dnl ========================================================
- dnl Bundled fonts on desktop platforms
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(bundled-fonts,
- [ --enable-bundled-fonts Enable support for bundled fonts on desktop platforms],
- MOZ_BUNDLED_FONTS=1,
- MOZ_BUNDLED_FONTS=)
- if test -n "$MOZ_BUNDLED_FONTS"; then
- AC_DEFINE(MOZ_BUNDLED_FONTS)
- fi
- AC_SUBST(MOZ_BUNDLED_FONTS)
- dnl ========================================================
- dnl Verify MAR signatures
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(verify-mar,
- [ --enable-verify-mar Enable verifying MAR signatures],
- MOZ_VERIFY_MAR_SIGNATURE=1,
- MOZ_VERIFY_MAR_SIGNATURE= )
- if test -n "$MOZ_VERIFY_MAR_SIGNATURE"; then
- AC_DEFINE(MOZ_VERIFY_MAR_SIGNATURE)
- fi
- dnl ========================================================
- dnl Enable building the signmar program.
- dnl This option is much different than the --enable-verify-mar option.
- dnl --enable-verify-mar is for enabling the verification check on MAR
- dnl files in the updater. The --enable-signmar option is for building
- dnl the signmar program.
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(signmar,
- [ --enable-signmar Enable building the signmar program],
- MOZ_ENABLE_SIGNMAR=1,
- MOZ_ENABLE_SIGNMAR= )
- if test -n "$MOZ_ENABLE_SIGNMAR"; then
- if test -z "$COMPILE_ENVIRONMENT" ; then
- AC_MSG_WARN([Cannot --enable-signmar with --disable-compile-environment])
- MOZ_ENABLE_SIGNMAR=
- else
- AC_DEFINE(MOZ_ENABLE_SIGNMAR)
- fi
- fi
- dnl ========================================================
- dnl Updater
- dnl ========================================================
- if test "$MOZ_IOS"; then
- MOZ_UPDATER=
- fi
- MOZ_ARG_ENABLE_BOOL(updater,
- [ --enable-updater Enable building of internal updater],
- MOZ_UPDATER=1,
- MOZ_UPDATER= )
- if test -n "$MOZ_UPDATER"; then
- AC_DEFINE(MOZ_UPDATER)
- fi
- dnl ========================================================
- dnl Build the tests?
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(tests,
- [ --enable-tests Build test libraries & programs],
- ENABLE_TESTS=1,
- ENABLE_TESTS= )
- if test -n "$ENABLE_TESTS"; then
- GTEST_HAS_RTTI=0
- AC_DEFINE(ENABLE_TESTS)
- AC_DEFINE_UNQUOTED(GTEST_HAS_RTTI, 0)
- AC_SUBST(GTEST_HAS_RTTI)
- if test -n "$_WIN32_MSVC"; then
- AC_DEFINE_UNQUOTED(_VARIADIC_MAX, 10)
- fi
- if test "${OS_TARGET}" = "Android"; then
- AC_DEFINE(GTEST_OS_LINUX_ANDROID)
- AC_DEFINE(GTEST_USE_OWN_TR1_TUPLE)
- AC_DEFINE_UNQUOTED(GTEST_HAS_CLONE, 0)
- AC_SUBST(GTEST_OS_LINUX_ANDROID)
- AC_SUBST(GTEST_USE_OWN_TR1_TUPLE)
- AC_SUBST(GTEST_HAS_CLONE)
- fi
- fi
- dnl ========================================================
- dnl parental controls (for Windows Vista)
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(parental-controls,
- [ --disable-parental-controls
- Do not build parental controls],
- MOZ_DISABLE_PARENTAL_CONTROLS=1,
- MOZ_DISABLE_PARENTAL_CONTROLS=)
- if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
- AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
- fi
- AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
- dnl ========================================================
- dnl = Disable smartcard support
- dnl ========================================================
- if test -n "$MOZ_NO_SMART_CARDS"; then
- AC_DEFINE(MOZ_NO_SMART_CARDS)
- fi
- AC_SUBST(MOZ_NO_SMART_CARDS)
- dnl ========================================================
- dnl =
- dnl = Module specific options
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Individual module options)
- dnl ========================================================
- dnl = Disable feed handling components
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(feeds,
- [ --disable-feeds Disable feed handling and processing components],
- MOZ_FEEDS=,
- MOZ_FEEDS=1 )
- if test -n "$MOZ_FEEDS"; then
- AC_DEFINE(MOZ_FEEDS)
- else
- if test "$MOZ_BUILD_APP" = "browser"; then
- AC_MSG_ERROR([Cannot build Firefox with --disable-feeds.])
- fi
- fi
- dnl ========================================================
- dnl = Enable Google safe browsing (anti-phishing)
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(safe-browsing,
- [ --enable-safe-browsing Enable safe browsing (anti-phishing) implementation],
- MOZ_SAFE_BROWSING=1,
- MOZ_SAFE_BROWSING= )
- if test -n "$MOZ_SAFE_BROWSING"; then
- AC_DEFINE(MOZ_SAFE_BROWSING)
- fi
- AC_SUBST(MOZ_SAFE_BROWSING)
- dnl ========================================================
- dnl = Enable url-classifier
- dnl ========================================================
- dnl Implicitly enabled by default if building with safe-browsing
- if test -n "$MOZ_SAFE_BROWSING"; then
- MOZ_URL_CLASSIFIER=1
- fi
- MOZ_ARG_ENABLE_BOOL(url-classifier,
- [ --enable-url-classifier Enable url classifier module],
- MOZ_URL_CLASSIFIER=1,
- MOZ_URL_CLASSIFIER= )
- if test -n "$MOZ_URL_CLASSIFIER"; then
- AC_DEFINE(MOZ_URL_CLASSIFIER)
- fi
- AC_SUBST(MOZ_URL_CLASSIFIER)
- dnl ========================================================
- dnl = Disable zipwriter
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(zipwriter,
- [ --disable-zipwriter Disable zipwriter component],
- MOZ_ZIPWRITER=,
- MOZ_ZIPWRITER=1 )
- AC_SUBST(MOZ_ZIPWRITER)
- dnl ========================================================
- dnl = faststripe theme
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(faststripe,
- [ --enable-faststripe Use faststripe theme],
- MOZ_THEME_FASTSTRIPE=1,
- MOZ_THEME_FASTSTRIPE= )
- AC_SUBST(MOZ_THEME_FASTSTRIPE)
- dnl ========================================================
- dnl =
- dnl = Feature options that require extra sources to be pulled
- dnl =
- dnl ========================================================
- dnl MOZ_ARG_HEADER(Features that require extra sources)
- dnl ========================================================
- dnl =
- dnl = Runtime debugging and Optimization Options
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Runtime debugging and Optimizations)
- dnl ========================================================
- dnl = Enable code optimization. ON by default.
- dnl ========================================================
- if test -z "$MOZ_OPTIMIZE_FLAGS"; then
- MOZ_OPTIMIZE_FLAGS="-O"
- fi
- MOZ_ARG_ENABLE_STRING(optimize,
- [ --disable-optimize Disable compiler optimization
- --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]],
- [ if test "$enableval" != "no"; then
- MOZ_OPTIMIZE=1
- if test -n "$enableval" -a "$enableval" != "yes"; then
- MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'`
- MOZ_OPTIMIZE=2
- fi
- else
- MOZ_OPTIMIZE=
- fi ], MOZ_OPTIMIZE=1)
- MOZ_SET_FRAMEPTR_FLAGS
- if test "$COMPILE_ENVIRONMENT"; then
- if test -n "$MOZ_OPTIMIZE"; then
- AC_MSG_CHECKING([for valid C compiler optimization flags])
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
- AC_TRY_COMPILE([#include <stdio.h>],
- [printf("Hello World\n");],
- _results=yes,
- _results=no)
- AC_MSG_RESULT([$_results])
- if test "$_results" = "no"; then
- AC_MSG_ERROR([These compiler flags for C are invalid: $MOZ_OPTIMIZE_FLAGS])
- fi
- CFLAGS=$_SAVE_CFLAGS
- fi
- fi # COMPILE_ENVIRONMENT
- AC_SUBST(MOZ_OPTIMIZE)
- AC_SUBST(MOZ_FRAMEPTR_FLAGS)
- AC_SUBST(MOZ_OPTIMIZE_FLAGS)
- AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
- AC_SUBST_LIST(MOZ_ALLOW_HEAP_EXECUTE_FLAGS)
- AC_SUBST(MOZ_PGO_OPTIMIZE_FLAGS)
- dnl ========================================================
- dnl = Disable treating compiler warnings as errors
- dnl ========================================================
- if test -z "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then
- WARNINGS_AS_ERRORS=''
- fi
- dnl ========================================================
- dnl = Enable runtime logging
- dnl ========================================================
- AC_DEFINE(MOZ_LOGGING)
- AC_DEFINE(FORCE_PR_LOG)
- dnl ========================================================
- dnl = This will enable logging of addref, release, ctor, dtor.
- dnl ========================================================
- _ENABLE_LOGREFCNT=42
- MOZ_ARG_ENABLE_BOOL(logrefcnt,
- [ --enable-logrefcnt Enable logging of refcounts (default=debug) ],
- _ENABLE_LOGREFCNT=1,
- _ENABLE_LOGREFCNT= )
- if test "$_ENABLE_LOGREFCNT" = "1"; then
- AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING)
- elif test -z "$_ENABLE_LOGREFCNT"; then
- AC_DEFINE(NO_BUILD_REFCNT_LOGGING)
- fi
- dnl ========================================================
- dnl moz_dump_painting
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(dump-painting,
- [ --enable-dump-painting Enable paint debugging.],
- MOZ_DUMP_PAINTING=1,
- MOZ_DUMP_PAINTING= )
- if test -n "$MOZ_DUMP_PAINTING"; then
- AC_DEFINE(MOZ_DUMP_PAINTING)
- AC_DEFINE(MOZ_LAYERS_HAVE_LOG)
- fi
- if test -n "$MOZ_DEBUG"; then
- AC_DEFINE(MOZ_DUMP_PAINTING)
- fi
- case "${OS_TARGET}" in
- WINNT)
- MOZ_GLUE_IN_PROGRAM=
- ;;
- *)
- dnl On !Windows, we only want to link executables against mozglue
- MOZ_GLUE_IN_PROGRAM=1
- AC_DEFINE(MOZ_GLUE_IN_PROGRAM)
- ;;
- esac
- if test -n "$MOZ_REPLACE_MALLOC"; then
- dnl Replace-malloc Mac linkage quirks
- if test -n "$MACOSX_DEPLOYMENT_TARGET"; then
- AC_CACHE_CHECK([how to do weak dynamic linking],
- ac_cv_weak_dynamic_linking,
- [echo 'extern void foo() __attribute__((weak_import));int bar() { if (foo) foo(); return 0; }' > conftest.c
- if AC_TRY_COMMAND([${CC-cc} -o conftest${DLL_SUFFIX} $CFLAGS -dynamiclib $LDFLAGS -Wl,-U,_foo conftest.c $LIBS 1>&5]) &&
- test -s conftest${DLL_SUFFIX}; then
- dnl There are several ways the linker can put link edit rules in a binary:
- dnl - classic info only (for OSX < 10.6)
- dnl - dyld info only
- dnl - both
- if "$OTOOL" -l conftest${DLL_SUFFIX} 2> /dev/null | grep "LC_DYLD_INFO_ONLY" > /dev/null; then
- _CLASSIC_INFO=
- else
- _CLASSIC_INFO=1
- fi
- if "$OTOOL" -l conftest${DLL_SUFFIX} 2> /dev/null | grep "LC_DYLD_INFO" > /dev/null; then
- _DYLD_INFO=1
- else
- _DYLD_INFO=
- fi
- dnl With classic info, we need to build with -flat_namespace.
- dnl With dyld info, Xcode 4.5 does the right thing without additional flags,
- dnl but Xcode < 4.5 requires a dummy library and -flat_namespace because it
- dnl forgets to set the weak flag in the dyld info.
- dnl See http://glandium.org/blog/?p=2764 for more details.
- dnl
- dnl Values for ac_cv_weak_dynamic_linking, and subsequently
- dnl MOZ_REPLACE_MALLOC_LINKAGE are thus:
- dnl - "flat namespace" when -flat_namespace alone is needed
- dnl - "dummy library" when a dummy library and -flat_namespace are needed
- dnl - "compiler support" when nothing is needed
- if test -n "$_DYLD_INFO" && dyldinfo -bind conftest${DLL_SUFFIX} 2> /dev/null | grep "_foo (weak import)" > /dev/null; then
- if test -n "$_CLASSIC_INFO"; then
- ac_cv_weak_dynamic_linking="flat namespace"
- else
- ac_cv_weak_dynamic_linking="compiler support"
- fi
- else
- if test -n "$_DYLD_INFO"; then
- ac_cv_weak_dynamic_linking="dummy library"
- else
- ac_cv_weak_dynamic_linking="flat namespace"
- fi
- fi
- else
- AC_ERROR([couldn't compile a simple C file])
- fi
- rm -rf conftest*])
- MOZ_REPLACE_MALLOC_LINKAGE="$ac_cv_weak_dynamic_linking"
- fi
- fi
- AC_SUBST(MOZ_REPLACE_MALLOC_LINKAGE)
- dnl ========================================================
- dnl = Jemalloc build setup
- dnl ========================================================
- if test -z "$MOZ_MEMORY"; then
- case "${target}" in
- *-mingw*)
- if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then
- AC_MSG_WARN([When not building jemalloc, you need to set WIN32_REDIST_DIR to the path to the Visual C++ Redist (usually VCINSTALLDIR\redist\x86\Microsoft.VC80.CRT, for VC++ v8) if you intend to distribute your build.])
- fi
- ;;
- esac
- else
- if test "x$MOZ_DEBUG" = "x1"; then
- AC_DEFINE(MOZ_MEMORY_DEBUG)
- fi
- dnl The generic feature tests that determine how to compute ncpus are long and
- dnl complicated. Therefore, simply define special cpp variables for the
- dnl platforms we have special knowledge of.
- case "${target}" in
- *-mingw*)
- export MOZ_NO_DEBUG_RTL=1
- ;;
- esac
- fi # MOZ_MEMORY
- AC_SUBST(MOZ_GLUE_IN_PROGRAM)
- # Allow the application to provide a subconfigure script.
- # This should be after 'export MOZ_NO_DEBUG_RTL=1' since
- # ldap/c-sdk/configure refers to the enviroment value.
- if test -f "${srcdir}/${MOZ_BUILD_APP}/configure.in" ; then
- do_output_subdirs() {
- if test -n "$_subconfigure_subdirs"; then
- AC_MSG_ERROR([Cannot specify more than one sub-sub-configure])
- fi
- _subconfigure_subdir="$1"
- _subconfigure_config_args="$ac_configure_args"
- }
- tmpscript=`$PYTHON -c 'import os, tempfile; print tempfile.mktemp(prefix="subscript.").replace(os.sep, "/")'` || exit 1
- ${TOOLCHAIN_PREFIX}m4 "${srcdir}/build/autoconf/subconfigure.m4" \
- "${srcdir}/build/autoconf/altoptions.m4" \
- "${srcdir}/${MOZ_BUILD_APP}/configure.in" > $tmpscript
- . $tmpscript
- rm -f $tmpscript
- fi
- AC_SUBST_LIST(MOZ_GLUE_WRAP_LDFLAGS)
- export MOZ_GLUE_WRAP_LDFLAGS
- dnl ========================================================
- dnl = Enable using the clang plugin to build
- dnl ========================================================
- MOZ_CONFIG_CLANG_PLUGIN
- dnl ========================================================
- dnl = Enable stripping of libs & executables
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(strip,
- [ --enable-strip Enable stripping of libs & executables ],
- ENABLE_STRIP=1,
- ENABLE_STRIP= )
- dnl ========================================================
- dnl = Enable stripping of libs & executables when packaging
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(install-strip,
- [ --enable-install-strip Enable stripping of libs & executables when packaging ],
- PKG_SKIP_STRIP= ,
- PKG_SKIP_STRIP=1)
- dnl ========================================================
- dnl = --disable-elf-hack
- dnl ========================================================
- USE_ELF_HACK=1
- MOZ_ARG_DISABLE_BOOL(elf-hack,
- [ --disable-elf-hack Disable elf hacks],
- [USE_ELF_HACK=],
- [USE_ELF_HACK=1])
- # Only enable elfhack where supported
- if test "$USE_ELF_HACK" = 1; then
- case "${HOST_OS_ARCH},${OS_ARCH}" in
- Linux,Linux)
- case "${CPU_ARCH}" in
- arm | x86 | x86_64)
- USE_ELF_HACK=1
- ;;
- *)
- USE_ELF_HACK=
- ;;
- esac
- ;;
- *)
- USE_ELF_HACK=
- ;;
- esac
- fi
- if test -n "$COMPILE_ENVIRONMENT" -a -n "$USE_ELF_HACK"; then
- dnl PT_GNU_RELRO segment makes the dynamic linker set a read-only flag on
- dnl memory addresses it maps to. The result is that by the time elfhack
- dnl kicks in, it is not possible to apply relocations because of that,
- dnl thus elfhack effectively skips relocations inside the PT_GNU_RELRO
- dnl segment. It makes elfhack mostly useless, so considering the problems
- dnl we have we PT_GNU_RELRO (e.g. bug 664366), and until elfhack can deal
- dnl with PT_GNU_RELRO segments, it's just simpler to disable elfhack when
- dnl the linker creates PT_GNU_RELRO segments. However, when we do want
- dnl elfhack enabled, disable PT_GNU_RELRO instead.
- AC_CACHE_CHECK([whether linker creates PT_GNU_RELRO segments],
- LINK_WITH_PT_GNU_RELRO,
- [echo "int main() {return 0;}" > conftest.${ac_ext}
- if AC_TRY_COMMAND(${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.${ac_ext} $LIBS 1>&2) &&
- test -s conftest${ac_exeext}; then
- if ${TOOLCHAIN_PREFIX}readelf -l conftest${ac_exeext} | grep GNU_RELRO > /dev/null; then
- LINK_WITH_PT_GNU_RELRO=yes
- else
- LINK_WITH_PT_GNU_RELRO=no
- fi
- else
- dnl We really don't expect to get here, but just in case
- AC_ERROR([couldn't compile a simple C file])
- fi
- rm -rf conftest*])
- if test "$LINK_WITH_PT_GNU_RELRO" = yes; then
- if test "$USE_ELF_HACK" = F; then
- AC_MSG_CHECKING([for -z norelro option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-z,norelro"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes])
- [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,-z,norelro"],
- AC_ERROR([--enable-elf-hack is not compatible with a linker creating a PT_GNU_RELRO segment and that doesn't support the "-z norelro" option.]))
- USE_ELF_HACK=1
- else
- AC_MSG_WARN([Disabling elfhack])
- USE_ELF_HACK=
- fi
- fi
- fi # COMPILE_ENVIRONMENT and others.
- dnl ========================================================
- dnl = libstdc++ compatibility hacks
- dnl ========================================================
- STDCXX_COMPAT=
- MOZ_ARG_ENABLE_BOOL(stdcxx-compat,
- [ --enable-stdcxx-compat Enable compatibility with older libstdc++],
- STDCXX_COMPAT=1)
- if test -n "$STDCXX_COMPAT"; then
- eval $(CXX="$CXX" HOST_CXX="$HOST_CXX" $PYTHON -m mozbuild.configure.libstdcxx)
- AC_SUBST(MOZ_LIBSTDCXX_TARGET_VERSION)
- AC_SUBST(MOZ_LIBSTDCXX_HOST_VERSION)
- CXXFLAGS="$CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
- HOST_CXXFLAGS="$HOST_CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
- fi
- dnl ========================================================
- dnl = frontend JS debug mode
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(debug-js-modules,
- [ --enable-debug-js-modules Enable debug mode for frontend JS libraries],
- DEBUG_JS_MODULES=1,
- DEBUG_JS_MODULES=)
- AC_SUBST(DEBUG_JS_MODULES)
- dnl ========================================================
- dnl = Don't precompile the startup cache
- dnl ========================================================
- MOZ_DISABLE_PRECOMPILED_STARTUPCACHE=
- MOZ_ARG_DISABLE_BOOL(precompiled-startupcache,
- [ --disable-precompiled-startupcache Don't precompile the startup cache ],
- MOZ_DISABLE_PRECOMPILED_STARTUPCACHE=1,
- MOZ_DISABLE_PRECOMPILED_STARTUPCACHE= )
- if test -n "$MOZ_DISABLE_PRECOMPILED_STARTUPCACHE"; then
- AC_DEFINE(MOZ_DISABLE_PRECOMPILED_STARTUPCACHE)
- fi
- AC_SUBST(MOZ_DISABLE_PRECOMPILED_STARTUPCACHE)
- dnl ========================================================
- dnl =
- dnl = Profiling and Instrumenting
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Profiling and Instrumenting)
- dnl ========================================================
- dnl = Enable TaskTracer
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(tasktracer,
- [ --enable-tasktracer Set compile flags necessary for using TaskTracer],
- MOZ_TASK_TRACER=1,
- MOZ_TASK_TRACER= )
- if test -n "$MOZ_TASK_TRACER"; then
- AC_DEFINE(MOZ_TASK_TRACER)
- AC_SUBST(MOZ_TASK_TRACER)
- fi
- dnl ========================================================
- dnl Turn on reflow counting
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(reflow-perf,
- [ --enable-reflow-perf Enable reflow performance tracing],
- MOZ_REFLOW_PERF=1,
- MOZ_REFLOW_PERF= )
- if test -n "$MOZ_REFLOW_PERF"; then
- AC_DEFINE(MOZ_REFLOW_PERF)
- fi
- dnl ========================================================
- dnl = Horizon build options - set default preferences for
- dnl the horizon project. Horizon is a browser built on
- dnl top of the graphene runtime.
- dnl ========================================================
- if test -n "$MOZ_HORIZON"; then
- AC_DEFINE(MOZ_HORIZON)
- fi
- AC_SUBST(MOZ_HORIZON)
- dnl ========================================================
- dnl = Offer a way to disable the startup cache
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(startupcache,
- [ --disable-startupcache Disable startup cache ],
- MOZ_DISABLE_STARTUPCACHE=1,
- MOZ_DISABLE_STARTUPCACHE=)
- if test -n "$MOZ_DISABLE_STARTUPCACHE"; then
- AC_DEFINE(MOZ_DISABLE_STARTUPCACHE)
- fi
- AC_SUBST(MOZ_DISABLE_STARTUPCACHE)
- dnl =========================================
- dnl = Enable packaging Gaia with B2G desktop
- dnl =========================================
- if test -n "$GAIADIR" -a ! -d "$GAIADIR" ; then
- AC_MSG_ERROR([GAIADIR '$GAIADIR' isn't a valid directory])
- fi
- AC_SUBST(GAIADIR)
- if test -n "$GAIADIR" ; then
- AC_DEFINE(PACKAGE_GAIA)
- fi
- if test -n "$FXOS_SIMULATOR" -a -z "$GAIADIR" ; then
- AC_MSG_ERROR([FXOS_SIMULATOR=1 requires GAIADIR to be defined])
- fi
- if test -n "$FXOS_SIMULATOR" ; then
- AC_DEFINE(FXOS_SIMULATOR)
- AC_SUBST(FXOS_SIMULATOR)
- fi
- dnl ========================================================
- dnl = Enable Pico Speech Synthesis
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(synth-pico,
- [ --enable-synth-pico Set compile flags necessary for compiling Pico Web Speech API ],
- MOZ_SYNTH_PICO=1,
- MOZ_SYNTH_PICO= )
- if test -n "$MOZ_SYNTH_PICO"; then
- AC_DEFINE(MOZ_SYNTH_PICO)
- fi
- AC_SUBST(MOZ_SYNTH_PICO)
- dnl ========================================================
- dnl = Enable Support for Time Manager API
- dnl ========================================================
- if test -n "$MOZ_TIME_MANAGER"; then
- AC_DEFINE(MOZ_TIME_MANAGER)
- fi
- AC_SUBST(MOZ_TIME_MANAGER)
- dnl ========================================================
- dnl = Enable Support for AudioChannelManager API
- dnl ========================================================
- if test -n "$MOZ_AUDIO_CHANNEL_MANAGER"; then
- AC_DEFINE(MOZ_AUDIO_CHANNEL_MANAGER)
- fi
- AC_SUBST(MOZ_AUDIO_CHANNEL_MANAGER)
- dnl ========================================================
- dnl = Enable Support for Secure Element API
- dnl ========================================================
- MOZ_SECUREELEMENT=1,
- if test -n "$MOZ_SECUREELEMENT"; then
- AC_DEFINE(MOZ_SECUREELEMENT)
- fi
- AC_SUBST(MOZ_SECUREELEMENT)
- dnl ========================================================
- dnl = Support for demangling undefined symbols
- dnl ========================================================
- if test -z "$SKIP_LIBRARY_CHECKS"; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_CHECK_FUNCS(__cxa_demangle, HAVE_DEMANGLE=1, HAVE_DEMANGLE=)
- AC_LANG_RESTORE
- fi
- # Demangle only for debug or DMD builds
- MOZ_DEMANGLE_SYMBOLS=
- if test "$HAVE_DEMANGLE" && test "$MOZ_DEBUG"; then
- MOZ_DEMANGLE_SYMBOLS=1
- AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
- fi
- AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
- dnl ========================================================
- dnl = Support for gcc stack unwinding (from gcc 3.3)
- dnl ========================================================
- if test -z "$SKIP_LIBRARY_CHECKS"; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- MOZ_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
- AC_LANG_RESTORE
- fi
- dnl ========================================================
- dnl JIT observers
- dnl ========================================================
- MOZ_ARG_WITH_STRING(jitreport-granularity,
- [ --jitreport-granularity=N
- Default granularity at which to report JIT code
- to external tools
- 0 - no info
- 1 - code ranges for whole functions only
- 2 - per-line information
- 3 - per-op information],
- JITREPORT_GRANULARITY=$withval,
- JITREPORT_GRANULARITY=3)
- AC_DEFINE_UNQUOTED(JS_DEFAULT_JITREPORT_GRANULARITY, $JITREPORT_GRANULARITY)
- dnl ========================================================
- dnl = Disable Mozilla's versions of RIL and Geolocation
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(mozril-geoloc,
- [ --disable-mozril-geoloc Disable Mozilla's RIL and geolocation],
- DISABLE_MOZ_RIL_GEOLOC=1,
- DISABLE_MOZ_RIL_GEOLOC= )
- if test -n "$DISABLE_MOZ_RIL_GEOLOC"; then
- AC_DEFINE(DISABLE_MOZ_RIL_GEOLOC)
- fi
- AC_SUBST(DISABLE_MOZ_RIL_GEOLOC)
- dnl ========================================================
- dnl =
- dnl = Misc. Options
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Misc. Options)
- dnl =========================================================
- dnl = Chrome format
- dnl =========================================================
- MOZ_ARG_ENABLE_STRING([chrome-format],
- [ --enable-chrome-format=jar|flat|omni
- Select FORMAT of chrome files during packaging],
- MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
- if test -z "$MOZ_CHROME_FILE_FORMAT"; then
- MOZ_CHROME_FILE_FORMAT=omni
- fi
- if test "$MOZ_CHROME_FILE_FORMAT" = "symlink"; then
- AC_MSG_ERROR([--enable-chrome-format=symlink has been deprecated. It is now used by default in $DIST/bin on platforms that support it])
- fi
- if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
- test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
- test "$MOZ_CHROME_FILE_FORMAT" != "omni"; then
- AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, or omni])
- fi
- dnl =========================================================
- dnl = Chrome compression
- dnl =========================================================
- MOZ_ARG_ENABLE_STRING([chrome-compression],
- [ --enable-chrome-compression=none|deflate|brotli
- Select COMPRESSION type of chrome files during packaging],
- JAR_COMPRESSION=`echo $enableval | tr A-Z a-z`)
- if test -z "$JAR_COMPRESSION"; then
- JAR_COMPRESSION=deflate
- fi
- if test "$JAR_COMPRESSION" != "none" &&
- test "$JAR_COMPRESSION" != "deflate" &&
- test "$JAR_COMPRESSION" != "brotli"; then
- AC_MSG_ERROR([--enable-chrome-compression must be set to either none, deflate, or brotli])
- fi
- dnl =========================================================
- dnl Omnijar packaging (bug 552121)
- dnl =========================================================
- dnl Omnijar packaging is compatible with flat packaging.
- dnl In unpackaged builds, omnijar looks for files as if
- dnl things were flat packaged. After packaging, all files
- dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT
- dnl is set to flat since putting files into jars is only
- dnl done during packaging with omnijar.
- if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then
- MOZ_OMNIJAR=1
- AC_DEFINE(MOZ_OMNIJAR)
- fi
- # Allow someone to change OMNIJAR_NAME in mozconfig
- MOZ_ARG_WITH_STRING(chrome-name,
- [ --with-chrome-name=CHROMENAME
- Set chrome jar name (default=omni.ja)],
- [ val=`echo $withval`
- OMNIJAR_NAME="$val"])
- # Default Omni Jar Name
- if test -z "$OMNIJAR_NAME" ; then
- OMNIJAR_NAME=omni.ja
- fi
- MOZ_PACKAGER_FORMAT="$MOZ_CHROME_FILE_FORMAT"
- if test "$OS_ARCH" = "WINNT"; then
- MOZ_CHROME_FILE_FORMAT=flat
- else
- MOZ_CHROME_FILE_FORMAT=symlink
- fi
- AC_SUBST(JAR_COMPRESSION)
- AC_SUBST(OMNIJAR_NAME)
- AC_SUBST(MOZ_OMNIJAR)
- AC_SUBST(MOZ_PACKAGER_FORMAT)
- AC_SUBST(MOZ_CHROME_FILE_FORMAT)
- dnl ========================================================
- dnl = Disable Jetpack
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(jetpack,
- [ --disable-jetpack Disable Jetpack Support Code],
- MOZ_JETPACK=,
- MOZ_JETPACK=1)
- if test -n "$MOZ_JETPACK"; then
- AC_DEFINE(MOZ_JETPACK)
- fi
- AC_SUBST(MOZ_JETPACK)
- dnl ========================================================
- dnl = Disable Mozilla Developer Tools (server)
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(devtools-server,
- [ --disable-devtools-server Disable Mozilla Developer Tools (server)],
- MOZ_DEVTOOLS_SERVER=,
- MOZ_DEVTOOLS_SERVER=1)
- if test -n "$MOZ_DEVTOOLS_SERVER"; then
- if test ! -n "$MOZ_JETPACK"; then
- AC_MSG_ERROR("Jetpack is required to include the Developer Tools Server")
- fi
- AC_DEFINE(MOZ_DEVTOOLS_SERVER)
- fi
- AC_SUBST(MOZ_DEVTOOLS_SERVER)
- dnl ========================================================
- dnl = Disable Mozilla Developer Tools (client)
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(devtools,
- [ --enable-devtools Enable Mozilla Developer Tools (client)],
- MOZ_DEVTOOLS=1,
- MOZ_DEVTOOLS=)
- if test -n "$MOZ_DEVTOOLS"; then
- if test ! -n "$MOZ_DEVTOOLS_SERVER"; then
- AC_MSG_ERROR("The Developer Tools Server is required to include the client")
- fi
- AC_DEFINE(MOZ_DEVTOOLS)
- fi
- AC_SUBST(MOZ_DEVTOOLS)
- dnl ========================================================
- dnl = Disable nsUserInfo
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(userinfo,
- [ --disable-userinfo Disable nsUserInfo (default=enabled)],
- MOZ_USERINFO=,
- MOZ_USERINFO=1)
- if test -n "$MOZ_USERINFO"; then
- AC_DEFINE(MOZ_USERINFO)
- fi
- AC_SUBST(MOZ_USERINFO)
- dnl ========================================================
- dnl = Define default location for MOZILLA_FIVE_HOME
- dnl ========================================================
- MOZ_ARG_WITH_STRING(default-mozilla-five-home,
- [ --with-default-mozilla-five-home
- Set the default value for MOZILLA_FIVE_HOME],
- [ val=`echo $withval`
- AC_DEFINE_UNQUOTED(MOZ_DEFAULT_MOZILLA_FIVE_HOME,"$val") ])
- dnl ========================================================
- dnl = Location of the mozilla user directory (default is ~/.mozilla).],
- dnl ========================================================
- MOZ_ARG_WITH_STRING(user-appdir,
- [ --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)],
- [ val=`echo $withval`
- if echo "$val" | grep "\/" >/dev/null; then
- AC_MSG_ERROR("Homedir must be single relative path.")
- else
- MOZ_USER_DIR="$val"
- fi])
- AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$MOZ_USER_DIR")
- dnl ========================================================
- dnl = Doxygen configuration
- dnl ========================================================
- dnl Use commas to specify multiple dirs to this arg
- MOZ_DOC_INPUT_DIRS='./dist/include ./dist/idl'
- MOZ_ARG_WITH_STRING(doc-input-dirs,
- [ --with-doc-input-dirs=DIRS
- Header/idl dirs to create docs from],
- [ MOZ_DOC_INPUT_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
- AC_SUBST(MOZ_DOC_INPUT_DIRS)
- dnl Use commas to specify multiple dirs to this arg
- MOZ_DOC_INCLUDE_DIRS='./dist/include ./dist/include/nspr'
- MOZ_ARG_WITH_STRING(doc-include-dirs,
- [ --with-doc-include-dirs=DIRS
- Include dirs to preprocess doc headers],
- [ MOZ_DOC_INCLUDE_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
- AC_SUBST(MOZ_DOC_INCLUDE_DIRS)
- MOZ_DOC_OUTPUT_DIR='./dist/docs'
- MOZ_ARG_WITH_STRING(doc-output-dir,
- [ --with-doc-output-dir=DIR
- Dir to generate docs into],
- [ MOZ_DOC_OUTPUT_DIR=$withval ] )
- AC_SUBST(MOZ_DOC_OUTPUT_DIR)
- if test -z "$SKIP_COMPILER_CHECKS"; then
- dnl ========================================================
- dnl =
- dnl = Compiler Options
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Compiler Options)
- dnl ========================================================
- dnl Check for gcc -pipe support
- dnl ========================================================
- AC_MSG_CHECKING([for -pipe support])
- if test -n "$GNU_CC" -a -n "$GNU_CXX"; then
- dnl Any gcc that supports firefox supports -pipe.
- CFLAGS="$CFLAGS -pipe"
- CXXFLAGS="$CXXFLAGS -pipe"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- dnl ========================================================
- dnl Profile guided optimization (gcc checks)
- dnl ========================================================
- dnl Test for profiling options
- dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
- AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
- AC_TRY_COMPILE([], [return 0;],
- [ PROFILE_GEN_CFLAGS="-fprofile-generate"
- result="yes" ], result="no")
- AC_MSG_RESULT([$result])
- if test $result = "yes"; then
- PROFILE_GEN_LDFLAGS="-fprofile-generate"
- PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch"
- PROFILE_USE_LDFLAGS="-fprofile-use"
- fi
- CFLAGS="$_SAVE_CFLAGS"
- AC_SUBST(PROFILE_GEN_CFLAGS)
- AC_SUBST(PROFILE_GEN_LDFLAGS)
- AC_SUBST(PROFILE_USE_CFLAGS)
- AC_SUBST(PROFILE_USE_LDFLAGS)
- fi # ! SKIP_COMPILER_CHECKS
- AC_DEFINE(CPP_THROW_NEW, [throw()])
- AC_LANG_C
- if test "$COMPILE_ENVIRONMENT"; then
- MOZ_EXPAND_LIBS
- fi # COMPILE_ENVIRONMENT
- dnl ========================================================
- dnl =
- dnl = Build depencency options
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Build dependencies)
- if test "$GNU_CC" -a "$GNU_CXX"; then
- _DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
- else
- dnl Don't override this for MSVC
- if test -z "$_WIN32_MSVC"; then
- _USE_CPP_INCLUDE_FLAG=
- _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
- _DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
- else
- echo '#include <stdio.h>' > dummy-hello.c
- changequote(,)
- dnl This output is localized, split at the first double space or colon and space.
- _CL_PREFIX_REGEX="^\([^:]*:.*[ :] \)\(.*\\\stdio.h\)$"
- CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\1/p'`
- _CL_STDIO_PATH=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\2/p'`
- changequote([,])
- if ! test -e "$_CL_STDIO_PATH"; then
- AC_MSG_ERROR([Unable to parse cl -showIncludes prefix. This compiler's locale has an unsupported formatting.])
- fi
- if test -z "$CL_INCLUDES_PREFIX"; then
- AC_MSG_ERROR([Cannot find cl -showIncludes prefix.])
- fi
- AC_SUBST(CL_INCLUDES_PREFIX)
- rm -f dummy-hello.c
- dnl Make sure that the build system can handle non-ASCII characters
- dnl in environment variables to prevent it from breaking silently on
- dnl non-English systems.
- NONASCII=$'\241\241'
- AC_SUBST(NONASCII)
- fi
- fi
- dnl ========================================================
- dnl =
- dnl = Static Build Options
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Static build options)
- # Option to enable shared gkmedias on other target operating systems.
- # This is overriden for Windows regardless if it is set or not.
- MOZ_ARG_ENABLE_BOOL(shared-media,
- [ --enable-shared-media Build GKMedias as a shared lib],
- GKMEDIAS_SHARED_LIBRARY=1,
- GKMEDIAS_SHARED_LIBRARY=)
- # We want gkmedias always be enabled on Windows regardless of the enable bool.
- if test "$OS_ARCH" = "WINNT"; then
- GKMEDIAS_SHARED_LIBRARY=1
- fi
- if test -n "$GKMEDIAS_SHARED_LIBRARY"; then
- AC_DEFINE(GKMEDIAS_SHARED_LIBRARY)
- fi
- AC_SUBST(GKMEDIAS_SHARED_LIBRARY)
- # Shared JS or gkmedias needs zlib in mozglue
- if test -z "$MOZ_SYSTEM_ZLIB"; then
- # XXX: Currently JS_SHARED_LIBRARY lives in mozconfigure
- if test -n "$JS_SHARED_LIBRARY" -o "$GKMEDIAS_SHARED_LIBRARY"; then
- ZLIB_IN_MOZGLUE=1
- AC_DEFINE(ZLIB_IN_MOZGLUE)
- fi
- fi
- AC_SUBST(ZLIB_IN_MOZGLUE)
- dnl ========================================================
- dnl =
- dnl = Standalone module options
- dnl =
- dnl ========================================================
- MOZ_ARG_HEADER(Standalone module options (Not for building Mozilla))
- dnl Check for GLib.
- dnl ========================================================
- if test -z "$SKIP_PATH_CHECKS"; then
- if test -z "${GLIB_CFLAGS}" -o -z "${GLIB_LIBS}" ; then
- if test "$MOZ_ENABLE_GTK" ; then
- PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
- fi
- fi
- fi
- if test -z "${GLIB_GMODULE_LIBS}" \
- -a -n "${GLIB_CONFIG}"\
- -a "${GLIB_CONFIG}" != no\
- ; then
- GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
- fi
- AC_SUBST_LIST(GLIB_GMODULE_LIBS)
- if test "$USE_FC_FREETYPE"; then
- if test "$COMPILE_ENVIRONMENT"; then
- dnl ========================================================
- dnl = Check for freetype2 functionality
- dnl ========================================================
- if test "$_HAVE_FREETYPE2" -a -z "$MOZ_TREE_FREETYPE"; then
- _SAVE_LIBS="$LIBS"
- _SAVE_CFLAGS="$CFLAGS"
- LIBS="$LIBS $FT2_LIBS"
- CFLAGS="$CFLAGS $FT2_CFLAGS"
- AC_CACHE_CHECK(for FT_Bitmap_Size.y_ppem,
- ac_cv_member_FT_Bitmap_Size_y_ppem,
- [AC_TRY_COMPILE([#include <ft2build.h>
- #include FT_FREETYPE_H],
- [FT_Bitmap_Size s;
- if (sizeof s.y_ppem) return 0;
- return 1],
- ac_cv_member_FT_Bitmap_Size_y_ppem=yes,
- ac_cv_member_FT_Bitmap_Size_y_ppem=no)])
- if test "$ac_cv_member_FT_Bitmap_Size_y_ppem" = yes; then
- HAVE_FT_BITMAP_SIZE_Y_PPEM=1
- else
- HAVE_FT_BITMAP_SIZE_Y_PPEM=0
- fi
- AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,
- $HAVE_FT_BITMAP_SIZE_Y_PPEM,
- [FT_Bitmap_Size structure includes y_ppem field])
- AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table)
- LIBS="$_SAVE_LIBS"
- CFLAGS="$_SAVE_CFLAGS"
- fi
- _SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $FT2_CFLAGS $XCFLAGS"
- MOZ_CHECK_HEADERS([fontconfig/fcfreetype.h], ,
- [AC_MSG_ERROR(Can't find header fontconfig/fcfreetype.h.)], [#include <fontconfig/fontconfig.h>])
- CPPFLAGS="$_SAVE_CPPFLAGS"
- fi
- fi
- dnl ========================================================
- dnl Check for pixman and cairo
- dnl ========================================================
- MOZ_TREE_CAIRO=1
- MOZ_ARG_ENABLE_BOOL(system-cairo,
- [ --enable-system-cairo Use system cairo (located with pkgconfig)],
- MOZ_TREE_CAIRO=,
- MOZ_TREE_CAIRO=1 )
- MOZ_TREE_PIXMAN=1
- MOZ_ARG_ENABLE_BOOL(system-pixman,
- [ --enable-system-pixman Use system pixman (located with pkgconfig)],
- MOZ_TREE_PIXMAN=,
- MOZ_TREE_PIXMAN=force,
- MOZ_TREE_PIXMAN=1 )
- # System cairo depends on system pixman
- if test "$MOZ_TREE_PIXMAN" = "force"; then
- if test -z "$MOZ_TREE_CAIRO"; then
- AC_MSG_ERROR([--disable-system-pixman is incompatible with --enable-system-cairo.])
- else
- MOZ_TREE_PIXMAN=1
- fi
- elif test -z "$MOZ_TREE_CAIRO"; then
- MOZ_TREE_PIXMAN=
- fi
- if test "$MOZ_TREE_PIXMAN"; then
- AC_DEFINE(MOZ_TREE_PIXMAN)
- else
- PKG_CHECK_MODULES(MOZ_PIXMAN, pixman-1 >= 0.19.2)
- fi
- if test "$MOZ_TREE_CAIRO"; then
- MOZ_CAIRO_CFLAGS="-I${DIST}/include/cairo"
- AC_DEFINE(MOZ_TREE_CAIRO)
- if test "$OS_ARCH" = "WINNT"; then
- # For now we assume that we will have a uint64_t available through
- # one of the above headers or mozstdint.h.
- AC_DEFINE(HAVE_UINT64_T)
- fi
- # Define macros for cairo-features.h
- TEE_SURFACE_FEATURE="#define CAIRO_HAS_TEE_SURFACE 1"
- if test "$MOZ_X11"; then
- XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
- XLIB_XRENDER_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1"
- PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
- fi
- if test "$_HAVE_FREETYPE2"; then
- FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
- MOZ_ENABLE_CAIRO_FT=1
- CAIRO_FT_CFLAGS="$FT2_CFLAGS"
- fi
- case "$MOZ_WIDGET_TOOLKIT" in
- cocoa | uikit)
- QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
- QUARTZ_IMAGE_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1"
- QUARTZ_FONT_FEATURE="#define CAIRO_HAS_QUARTZ_FONT 1"
- ;;
- windows)
- WIN32_D2D_SURFACE_FEATURE="#define CAIRO_HAS_D2D_SURFACE 1"
- WIN32_DWRITE_FONT_FEATURE="#define CAIRO_HAS_DWRITE_FONT 1"
- WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
- WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
- MOZ_ENABLE_D2D_SURFACE=1
- MOZ_ENABLE_DWRITE_FONT=1
- if test "$COMPILE_ENVIRONMENT"; then
- MOZ_CHECK_HEADER(d3d9.h, MOZ_ENABLE_D3D9_LAYER=1)
- dnl D3D10 Layers depend on D2D Surfaces.
- if test -n "$WIN32_D2D_SURFACE_FEATURE"; then
- MOZ_CHECK_HEADER(d3d10.h, MOZ_ENABLE_D3D10_LAYER=1)
- fi
- fi
- ;;
- esac
- if test "$USE_FC_FREETYPE"; then
- FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
- fi
- AC_SUBST(MOZ_ENABLE_CAIRO_FT)
- AC_SUBST(MOZ_ENABLE_DWRITE_FONT)
- AC_SUBST(MOZ_ENABLE_D2D_SURFACE)
- AC_SUBST(MOZ_ENABLE_D3D9_LAYER)
- AC_SUBST(MOZ_ENABLE_D3D10_LAYER)
- AC_SUBST(PS_SURFACE_FEATURE)
- AC_SUBST(SVG_SURFACE_FEATURE)
- AC_SUBST(XLIB_SURFACE_FEATURE)
- AC_SUBST(XLIB_XRENDER_SURFACE_FEATURE)
- AC_SUBST(QUARTZ_SURFACE_FEATURE)
- AC_SUBST(QUARTZ_IMAGE_SURFACE_FEATURE)
- AC_SUBST(WIN32_SURFACE_FEATURE)
- AC_SUBST(OS2_SURFACE_FEATURE)
- AC_SUBST(DIRECTFB_SURFACE_FEATURE)
- AC_SUBST(FT_FONT_FEATURE)
- AC_SUBST(FC_FONT_FEATURE)
- AC_SUBST(WIN32_FONT_FEATURE)
- AC_SUBST(WIN32_DWRITE_FONT_FEATURE)
- AC_SUBST(WIN32_D2D_SURFACE_FEATURE)
- AC_SUBST(QUARTZ_FONT_FEATURE)
- AC_SUBST(PNG_FUNCTIONS_FEATURE)
- AC_SUBST(QT_SURFACE_FEATURE)
- AC_SUBST(TEE_SURFACE_FEATURE)
- if test "$MOZ_X11"; then
- MOZ_CAIRO_OSLIBS="$MOZ_CAIRO_OSLIBS $XLDFLAGS -lXrender"
- fi
- CAIRO_FEATURES_H=gfx/cairo/cairo/src/cairo-features.h
- else
- PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION)
- MOZ_CAIRO_CFLAGS="$CAIRO_CFLAGS"
- MOZ_CAIRO_LIBS="$CAIRO_LIBS"
- PKG_CHECK_MODULES(CAIRO_TEE, cairo-tee >= $CAIRO_VERSION)
- if test "$MOZ_X11"; then
- PKG_CHECK_MODULES(CAIRO_XRENDER, cairo-xlib-xrender >= $CAIRO_VERSION)
- MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS $CAIRO_XRENDER_LIBS"
- MOZ_CAIRO_OSLIBS="$MOZ_CAIRO_LIBS"
- MOZ_CAIRO_CFLAGS="$MOZ_CAIRO_CFLAGS $CAIRO_XRENDER_CFLAGS"
- fi
- fi
- case "$MOZ_WIDGET_TOOLKIT" in
- android)
- TK_CFLAGS="$MOZ_CAIRO_CFLAGS $MOZ_PIXMAN_CFLAGS"
- TK_LIBS="$MOZ_CAIRO_LIBS $MOZ_PIXMAN_LIBS"
- ;;
- esac
- AC_SUBST(MOZ_TREE_CAIRO)
- AC_SUBST_LIST(MOZ_CAIRO_CFLAGS)
- AC_SUBST_LIST(MOZ_CAIRO_LIBS)
- AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
- AC_SUBST(MOZ_TREE_PIXMAN)
- dnl ========================================================
- dnl disable xul
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(xul,
- [ --disable-xul Disable XUL],
- MOZ_XUL= )
- if test "$MOZ_XUL"; then
- AC_DEFINE(MOZ_XUL)
- else
- dnl remove extensions that require XUL
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's/inspector//' -e 's/irc//' -e 's/tasks//'`
- fi
- AC_SUBST(MOZ_XUL)
- dnl ========================================================
- dnl necko configuration options
- dnl ========================================================
- dnl
- dnl option to disable necko's wifi scanner
- dnl
- MOZ_ARG_DISABLE_BOOL(necko-wifi,
- [ --disable-necko-wifi Disable necko wifi scanner],
- MOZ_NECKO_WIFI=,
- MOZ_NECKO_WIFI=1)
- if test "$MOZ_NECKO_WIFI"; then
- case "$OS_TARGET" in
- DragonFly|FreeBSD|WINNT)
- NECKO_WIFI=1
- ;;
- Linux)
- NECKO_WIFI=1
- NECKO_WIFI_DBUS=1
- ;;
- esac
- fi
- if test "$NECKO_WIFI"; then
- if test -z "$MOZ_ENABLE_DBUS" -a -n "$NECKO_WIFI_DBUS"; then
- AC_MSG_ERROR([Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi])
- fi
- AC_DEFINE(NECKO_WIFI)
- _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_WIFI"
- fi
- AC_SUBST(NECKO_WIFI)
- AC_SUBST(NECKO_WIFI_DBUS)
- dnl
- dnl option to disable cookies
- dnl
- MOZ_ARG_DISABLE_BOOL(cookies,
- [ --disable-cookies Disable cookie support],
- NECKO_COOKIES=,
- NECKO_COOKIES=1)
- AC_SUBST(NECKO_COOKIES)
- if test "$NECKO_COOKIES"; then
- AC_DEFINE(NECKO_COOKIES)
- _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_COOKIES"
- fi
- dnl
- dnl Always build Marionette if not Android or B2G
- dnl
- if test "$OS_TARGET" != "Android"; then
- AC_DEFINE(ENABLE_MARIONETTE)
- fi
- AC_SUBST(ENABLE_MARIONETTE)
- if test "$ENABLE_MARIONETTE"; then
- AC_DEFINE(ENABLE_MARIONETTE)
- fi
- dnl ========================================================
- dnl =
- dnl = Miscellaneous (former toolkit/moz.configure)
- dnl =
- dnl ========================================================
- dnl Build Places if required
- AC_SUBST(MOZ_PLACES)
- if test "$MOZ_PLACES"; then
- AC_DEFINE(MOZ_PLACES)
- fi
- dnl Build Firefox Health Reporter Service
- AC_SUBST(MOZ_SERVICES_HEALTHREPORT)
- if test -n "$MOZ_SERVICES_HEALTHREPORT"; then
- AC_DEFINE(MOZ_SERVICES_HEALTHREPORT)
- fi
- dnl Build Sync Services if required
- AC_SUBST(MOZ_SERVICES_SYNC)
- if test -n "$MOZ_SERVICES_SYNC"; then
- AC_DEFINE(MOZ_SERVICES_SYNC)
- fi
- dnl ========================================================
- if test "$MOZ_DEBUG"; then
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
- fi
- dnl ========================================================
- dnl =
- dnl = Maintainer debug option (no --enable equivalent)
- dnl =
- dnl ========================================================
- AC_SUBST(AR)
- AC_SUBST(AR_FLAGS)
- AC_SUBST(AR_EXTRACT)
- AC_SUBST(AS)
- AC_SUBST(ASFLAGS)
- AC_SUBST(AS_DASH_C_FLAG)
- AC_SUBST(LD)
- AC_SUBST(RC)
- AC_SUBST(RCFLAGS)
- AC_SUBST(WINDRES)
- AC_SUBST(IMPLIB)
- AC_SUBST(FILTER)
- AC_SUBST(BIN_FLAGS)
- AC_SUBST(MOZ_AUTH_EXTENSION)
- AC_SUBST(MOZ_PREF_EXTENSIONS)
- AC_SUBST(MOZ_DEBUG)
- AC_SUBST(MOZ_DEBUG_LDFLAGS)
- AC_SUBST(WARNINGS_AS_ERRORS)
- AC_SUBST_SET(MOZ_EXTENSIONS)
- AC_SUBST(LIBICONV)
- AC_SUBST(MOZ_TOOLKIT_SEARCH)
- AC_SUBST(MOZ_FEEDS)
- AC_SUBST(ENABLE_TESTS)
- AC_SUBST(MOZ_UNIVERSALCHARDET)
- AC_SUBST(ACCESSIBILITY)
- AC_SUBST(MOZ_SPELLCHECK)
- AC_SUBST(MOZ_VERIFY_MAR_SIGNATURE)
- AC_SUBST(MOZ_ENABLE_SIGNMAR)
- AC_SUBST(MOZ_UPDATER)
- AC_SUBST(MOZ_ANGLE_RENDERER)
- AC_SUBST(MOZ_D3D_CPU_SUFFIX)
- AC_SUBST(MOZ_HAS_WINSDK_WITH_D3D)
- AC_SUBST(MOZ_D3DCOMPILER_VISTA_DLL)
- AC_SUBST(MOZ_D3DCOMPILER_VISTA_DLL_PATH)
- AC_SUBST(MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
- AC_SUBST(ENABLE_STRIP)
- AC_SUBST(PKG_SKIP_STRIP)
- AC_SUBST(STRIP_FLAGS)
- AC_SUBST(USE_ELF_HACK)
- AC_SUBST(INCREMENTAL_LINKER)
- AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
- AC_SUBST(MOZ_FIX_LINK_PATHS)
- AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
- AC_SUBST(MOZ_LINKER_EXTRACT)
- AC_SUBST(MOZ_JSDOWNLOADS)
- if test -n "$MOZ_JSDOWNLOADS"; then
- AC_DEFINE(MOZ_JSDOWNLOADS)
- fi
- dnl ========================================================
- dnl = Mac bundle name prefix
- dnl ========================================================
- MOZ_ARG_WITH_STRING(macbundlename-prefix,
- [ --with-macbundlename-prefix=prefix
- Prefix for MOZ_MACBUNDLE_NAME],
- [ MOZ_MACBUNDLE_NAME_PREFIX="$withval"])
- MOZ_MACBUNDLE_NAME=$MOZ_APP_DISPLAYNAME
- if test "$MOZ_MACBUNDLE_NAME_PREFIX"; then
- MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME_PREFIX} ${MOZ_MACBUNDLE_NAME}"
- fi
- if test "$MOZ_DEBUG"; then
- MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME}Debug.app"
- else
- MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}.app
- fi
- AC_SUBST(MOZ_MACBUNDLE_NAME)
- dnl Mac bundle identifier (based on MOZ_APP_DISPLAYNAME)
- MOZ_MACBUNDLE_ID=`echo $MOZ_APP_DISPLAYNAME | tr '[A-Z]' '[a-z]'`
- MOZ_MACBUNDLE_ID=${MOZ_DISTRIBUTION_ID}.${MOZ_MACBUNDLE_ID}
- if test "$MOZ_DEBUG"; then
- MOZ_MACBUNDLE_ID=${MOZ_MACBUNDLE_ID}debug
- fi
- AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
- AC_SUBST(MOZ_MACBUNDLE_ID)
- dnl ========================================================
- dnl = Child Process Name for IPC
- dnl ========================================================
- if test "$MOZ_WIDGET_TOOLKIT" != "android"; then
- MOZ_CHILD_PROCESS_NAME="plugin-container${BIN_SUFFIX}"
- else
- # We want to let Android unpack the file at install time, but it only does
- # so if the file is named libsomething.so. The lib/ path is also required
- # because the unpacked file will be under the lib/ subdirectory and will
- # need to be executed from that path.
- MOZ_CHILD_PROCESS_NAME="libplugin-container.so"
- MOZ_CHILD_PROCESS_NAME_PIE="libplugin-container-pie.so"
- AC_SUBST(MOZ_CHILD_PROCESS_NAME_PIE)
- fi
- MOZ_CHILD_PROCESS_BUNDLE="plugin-container.app/Contents/MacOS/"
- AC_SUBST(MOZ_CHILD_PROCESS_NAME)
- AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE)
- # The following variables are available to branding and application
- # configuration ($BRANDING/configure.sh and $APPLICATION/confvars.sh):
- # - MOZ_APP_VENDOR: Used for application.ini's "Vendor" field, which also
- # impacts profile location and user-visible fields.
- # - MOZ_APP_BASENAME: Typically stays consistent for multiple branded
- # versions of a given application (e.g. Aurora and Firefox both use
- # "Firefox"), but may vary for full rebrandings (e.g. Iceweasel). Used
- # for application.ini's "Name" field, which controls profile location in
- # the absence of a "Profile" field (see below), and various system
- # integration hooks (Unix remoting, Windows MessageWindow name, etc.)
- # - MOZ_APP_DISPLAYNAME: Used in user-visible fields (DLL properties,
- # Mac Bundle name, Updater, Installer), it is typically used for nightly
- # builds (e.g. Aurora for Firefox).
- # - MOZ_APP_VERSION: Defines the application version number.
- # - MOZ_APP_VERSION_DISPLAY: Defines the application version number. Used
- # in the "About" window. If not set, defaults to MOZ_APP_VERSION.
- # - MOZ_APP_NAME: Used for e.g. the binary program file name. If not set,
- # defaults to a lowercase form of MOZ_APP_BASENAME.
- # - MOZ_APP_REMOTINGNAME: Used for the internal program name, which affects
- # profile name and remoting. If not set, defaults to MOZ_APP_NAME.
- # - MOZ_APP_PROFILE: When set, used for application.ini's
- # "Profile" field, which controls profile location.
- # - MOZ_APP_ID: When set, used for application.ini's "ID" field, and
- # crash reporter server url.
- # - MOZ_APP_ANDROID_VERSION_CODE: On Android, "android:versionCode" for
- # the main application is set to the value of this variable. If not
- # set, it falls back to a Mozilla-specific value derived from the
- # build ID.
- # - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator.
- if test -z "$MOZ_APP_NAME"; then
- MOZ_APP_NAME=`echo $MOZ_APP_BASENAME | tr A-Z a-z`
- fi
- if test -z "$MOZ_APP_REMOTINGNAME"; then
- MOZ_APP_REMOTINGNAME=$MOZ_APP_NAME
- fi
- if test -z "$MOZ_APP_VERSION_DISPLAY"; then
- MOZ_APP_VERSION_DISPLAY=$MOZ_APP_VERSION
- fi
- if test -z "$ANDROID_PACKAGE_NAME" ; then
- ANDROID_PACKAGE_NAME="org.mozilla.$MOZ_APP_NAME"
- fi
- # For extensions and langpacks, we require a max version that is compatible
- # across security releases. MOZ_APP_MAXVERSION is our method for doing that.
- # 24.0a1 and 24.0a2 aren't affected
- # 24.0 becomes 24.*
- # 24.1.1 becomes 24.*
- IS_ALPHA=`echo $MOZ_APP_VERSION | grep a`
- if test -z "$IS_ALPHA"; then
- changequote(,)
- if test "$(basename $MOZ_BUILD_APP)" = "suite"; then
- MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\.[0-9]*\).*|\1|"`.*
- else
- MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\).*|\1|"`.*
- fi
- changequote([,])
- else
- MOZ_APP_MAXVERSION=$MOZ_APP_VERSION
- fi
- AC_SUBST(MOZ_APP_NAME)
- AC_SUBST(MOZ_APP_REMOTINGNAME)
- AC_SUBST(MOZ_APP_DISPLAYNAME)
- AC_SUBST(MOZ_APP_BASENAME)
- AC_SUBST(MOZ_APP_VENDOR)
- AC_SUBST(MOZ_APP_PROFILE)
- AC_SUBST(MOZ_APP_ID)
- AC_SUBST(MOZ_APP_ANDROID_VERSION_CODE)
- AC_SUBST(MAR_CHANNEL_ID)
- AC_SUBST(ACCEPTED_MAR_CHANNEL_IDS)
- AC_SUBST(MOZ_PROFILE_MIGRATOR)
- AC_DEFINE_UNQUOTED(MOZ_APP_UA_NAME, "$MOZ_APP_UA_NAME")
- AC_SUBST(MOZ_APP_UA_NAME)
- AC_DEFINE_UNQUOTED(MOZ_APP_UA_VERSION, "$MOZ_APP_VERSION")
- AC_SUBST(MOZ_APP_VERSION)
- AC_SUBST(MOZ_APP_VERSION_DISPLAY)
- AC_SUBST(MOZ_APP_MAXVERSION)
- AC_SUBST(MOZ_UA_OS_AGNOSTIC)
- if test -n "$MOZ_UA_OS_AGNOSTIC"; then
- AC_DEFINE(MOZ_UA_OS_AGNOSTIC)
- fi
- AC_SUBST(MOZ_APP_STATIC_INI)
- AC_DEFINE_UNQUOTED(MOZ_UA_BUILDID, "$MOZ_UA_BUILDID")
- AC_SUBST(MOZ_UA_BUILDID)
- AC_SUBST(MOZ_PKG_SPECIAL)
- AC_SUBST(MOZ_SIMPLE_PACKAGE_NAME)
- AC_SUBST(MOZILLA_OFFICIAL)
- if test "$MOZILLA_OFFICIAL"; then
- AC_DEFINE(MOZILLA_OFFICIAL)
- # Build revisions should always be present in official Mozilla builds
- MOZ_INCLUDE_SOURCE_INFO=1
- fi
- # External builds (specifically Ubuntu) may drop the hg repo information, so we allow to
- # explicitly set the repository and changeset information in.
- AC_SUBST(MOZ_SOURCE_REPO)
- AC_SUBST(MOZ_SOURCE_CHANGESET)
- AC_SUBST(MOZ_INCLUDE_SOURCE_INFO)
- if test "$MOZ_TELEMETRY_REPORTING"; then
- AC_DEFINE(MOZ_TELEMETRY_REPORTING)
- # Enable Telemetry by default for nightly and aurora channels
- if test -z "$RELEASE_OR_BETA"; then
- AC_DEFINE(MOZ_TELEMETRY_ON_BY_DEFAULT)
- fi
- fi
- dnl If we have any service that uploads data (and requires data submission
- dnl policy alert), set MOZ_DATA_REPORTING.
- dnl We need SUBST for build system and DEFINE for xul preprocessor.
- if test -n "$MOZ_TELEMETRY_REPORTING" || test -n "$MOZ_SERVICES_HEALTHREPORT"; then
- MOZ_DATA_REPORTING=1
- AC_DEFINE(MOZ_DATA_REPORTING)
- AC_SUBST(MOZ_DATA_REPORTING)
- fi
- dnl win32 options
- AC_SUBST(WIN32_REDIST_DIR)
- AC_SUBST(WIN_UCRT_REDIST_DIR)
- dnl ========================================================
- dnl ICU Support
- dnl ========================================================
- if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
- USE_ICU=1
- fi
- MOZ_CONFIG_ICU()
- dnl Echo the CFLAGS to remove extra whitespace.
- CFLAGS=`echo \
- $_WARNINGS_CFLAGS \
- $CFLAGS`
- CXXFLAGS=`echo \
- $_WARNINGS_CXXFLAGS \
- $CXXFLAGS`
- COMPILE_CFLAGS=`echo \
- $_DEFINES_CFLAGS \
- $COMPILE_CFLAGS`
- COMPILE_CXXFLAGS=`echo \
- $_DEFINES_CXXFLAGS \
- $COMPILE_CXXFLAGS`
- HOST_CFLAGS=`echo \
- $HOST_CFLAGS`
- HOST_CXXFLAGS=`echo \
- $HOST_CXXFLAGS`
- AC_SUBST(_DEPEND_CFLAGS)
- AC_SUBST(MOZ_SYSTEM_JPEG)
- AC_SUBST(MOZ_SYSTEM_PNG)
- AC_SUBST(MOZ_SYSTEM_BZ2)
- AC_SUBST_LIST(MOZ_JPEG_CFLAGS)
- AC_SUBST_LIST(MOZ_JPEG_LIBS)
- AC_SUBST_LIST(MOZ_BZ2_CFLAGS)
- AC_SUBST_LIST(MOZ_BZ2_LIBS)
- AC_SUBST_LIST(MOZ_PNG_CFLAGS)
- AC_SUBST_LIST(MOZ_PNG_LIBS)
- HOST_CMFLAGS=-fobjc-exceptions
- HOST_CMMFLAGS=-fobjc-exceptions
- OS_COMPILE_CMFLAGS=-fobjc-exceptions
- OS_COMPILE_CMMFLAGS=-fobjc-exceptions
- if test "$MOZ_WIDGET_TOOLKIT" = uikit; then
- OS_COMPILE_CMFLAGS="$OS_COMPILE_CMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch"
- OS_COMPILE_CMMFLAGS="$OS_COMPILE_CMMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch"
- fi
- AC_SUBST(HOST_CMFLAGS)
- AC_SUBST(HOST_CMMFLAGS)
- AC_SUBST(OS_COMPILE_CMFLAGS)
- AC_SUBST(OS_COMPILE_CMMFLAGS)
- OS_CFLAGS="$CFLAGS"
- OS_CXXFLAGS="$CXXFLAGS"
- OS_CPPFLAGS="$CPPFLAGS"
- OS_COMPILE_CFLAGS="$COMPILE_CFLAGS"
- OS_COMPILE_CXXFLAGS="$COMPILE_CXXFLAGS"
- OS_LDFLAGS="$LDFLAGS"
- OS_LIBS="$LIBS"
- AC_SUBST(OS_CFLAGS)
- AC_SUBST(OS_CXXFLAGS)
- AC_SUBST(OS_CPPFLAGS)
- AC_SUBST(OS_COMPILE_CFLAGS)
- AC_SUBST(OS_COMPILE_CXXFLAGS)
- AC_SUBST(OS_LDFLAGS)
- AC_SUBST(OS_LIBS)
- AC_SUBST(HOST_CC)
- AC_SUBST(HOST_CXX)
- AC_SUBST(HOST_CFLAGS)
- AC_SUBST(HOST_CPPFLAGS)
- AC_SUBST(HOST_CXXFLAGS)
- AC_SUBST(HOST_LDFLAGS)
- AC_SUBST(HOST_OPTIMIZE_FLAGS)
- AC_SUBST(HOST_AR)
- AC_SUBST(HOST_AR_FLAGS)
- AC_SUBST(HOST_LD)
- AC_SUBST(HOST_RANLIB)
- AC_SUBST(HOST_BIN_SUFFIX)
- AC_SUBST(TARGET_XPCOM_ABI)
- AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
- AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1)
- AC_SUBST(HAVE_X86_AVX2)
- AC_SUBST(HAVE_ALTIVEC)
- AC_SUBST(GCC_USE_GNU_LD)
- AC_SUBST(WRAP_LDFLAGS)
- AC_SUBST(MKSHLIB)
- AC_SUBST(MKCSHLIB)
- AC_SUBST(DSO_CFLAGS)
- AC_SUBST(DSO_PIC_CFLAGS)
- AC_SUBST(DSO_LDOPTS)
- AC_SUBST(LIB_PREFIX)
- AC_SUBST(DLL_PREFIX)
- AC_SUBST(DLL_SUFFIX)
- AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, "$DLL_SUFFIX")
- AC_SUBST(LIB_SUFFIX)
- AC_SUBST(OBJ_SUFFIX)
- AC_SUBST(BIN_SUFFIX)
- AC_SUBST(IMPORT_LIB_SUFFIX)
- AC_SUBST(USE_N32)
- AC_SUBST(CC_VERSION)
- AC_SUBST(NS_ENABLE_TSF)
- AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS)
- AC_SUBST(WIN32_GUI_EXE_LDFLAGS)
- AC_SUBST(MOZ_VORBIS)
- AC_SUBST(MOZ_TREMOR)
- AC_SUBST(MOZ_FFVPX)
- AC_SUBST_LIST(FFVPX_ASFLAGS)
- AC_SUBST(MOZ_VPX_ERROR_CONCEALMENT)
- AC_SUBST(VPX_USE_YASM)
- AC_SUBST_LIST(VPX_ASFLAGS)
- AC_SUBST(VPX_AS_CONVERSION)
- AC_SUBST(VPX_X86_ASM)
- AC_SUBST(VPX_ARM_ASM)
- AC_SUBST(MOZ_CODE_COVERAGE)
- AC_SUBST(LIBJPEG_TURBO_USE_YASM)
- AC_SUBST_LIST(LIBJPEG_TURBO_ASFLAGS)
- AC_SUBST(MOZ_LIBAV_FFT)
- AC_SUBST_LIST(LIBAV_FFT_ASFLAGS)
- AC_SUBST(MOZ_PACKAGE_JSSHELL)
- AC_SUBST(MOZ_FOLD_LIBS)
- AC_SUBST(MOZ_FOLD_LIBS_FLAGS)
- AC_SUBST(SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE)
- AC_SUBST(DMG_TOOL)
- dnl Host JavaScript runtime, if any, to use during cross compiles.
- AC_SUBST(JS_BINARY)
- AC_SUBST(NSS_EXTRA_SYMBOLS_FILE)
- if test -n "$COMPILE_ENVIRONMENT"; then
- AC_CHECK_FUNCS(posix_fadvise posix_fallocate)
- dnl Check for missing components
- if test "$MOZ_X11"; then
- dnl ====================================================
- dnl = Check if X headers exist
- dnl ====================================================
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $XCFLAGS"
- AC_TRY_COMPILE([
- #include <stdio.h>
- #include <stdlib.h>
- #include <X11/Xlib.h>
- #include <X11/Intrinsic.h>
- #include <X11/extensions/XShm.h>
- ],
- [
- Display *dpy = 0;
- if ((dpy = XOpenDisplay(NULL)) == NULL) {
- fprintf(stderr, ": can't open %s\n", XDisplayName(NULL));
- exit(1);
- }
- ], [],
- [ AC_MSG_ERROR([Can't find X headers (install libxt-dev (Debian/Ubuntu), libXt-devel (Fedora), or xorg-x11-libXt-devel (SuSE)).]) ])
- CFLAGS="$_SAVE_CFLAGS"
- if test -n "$MISSING_X"; then
- AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
- fi
- fi # MOZ_X11
- fi # COMPILE_ENVIRONMENT
- dnl Set various defines and substitutions
- dnl ========================================================
- if test "$MOZ_DEBUG"; then
- AC_DEFINE(MOZ_REFLOW_PERF)
- AC_DEFINE(MOZ_REFLOW_PERF_DSP)
- fi
- if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK" ; then
- AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
- ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
- ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
- ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
- ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
- AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
- AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
- AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
- fi
- if test "$MOZ_DEBUG"; then
- A11Y_LOG=1
- fi
- case "$MOZ_UPDATE_CHANNEL" in
- aurora|beta|release|esr)
- ;;
- *)
- A11Y_LOG=1
- ;;
- esac
- AC_SUBST(A11Y_LOG)
- if test -n "$A11Y_LOG"; then
- AC_DEFINE(A11Y_LOG)
- fi
- AC_SUBST(MOZILLA_VERSION)
- dnl ========================================================
- dnl Directive 4
- dnl ========================================================
- DIRECTIVE4_LIST="
- MOZ_OFFICIAL_BRANDING=$MOZ_OFFICIAL_BRANDING
- MOZ_BRANDING_DIRECTORY=$MOZ_BRANDING_DIRECTORY
- MC_BASILISK=$MC_BASILISK
- MC_PALEMOON=$MC_PALEMOON
- MOZ_EME=$MOZ_EME
- MOZ_WEBRTC=$MOZ_WEBRTC
- MOZ_SYSTEM_JPEG=$MOZ_SYSTEM_JPEG
- MOZ_SYSTEM_ZLIB=$MOZ_SYSTEM_ZLIB
- MOZ_SYSTEM_BZ2=$MOZ_SYSTEM_BZ2
- MOZ_SYSTEM_PNG=$MOZ_SYSTEM_PNG
- MOZ_SYSTEM_LIBVPX=$MOZ_SYSTEM_LIBVPX
- MOZ_SYSTEM_SQLITE=$MOZ_SYSTEM_SQLITE
- MOZ_SYSTEM_JEMALLOC=$MOZ_SYSTEM_JEMALLOC"
- DIRECTIVE4=`$PYTHON $_topsrcdir/build/directive4.py $DIRECTIVE4_LIST`
- if test -n "$DIRECTIVE4"; then
- if test -n "$MC_PRIVATE_BUILD"; then
- AC_MSG_WARN([Private Build - The configuration you have chosen to use with official branding deviates from official build configuration. Your build is thus for personal and private use only and must not be (re)distributed - Please see: http://www.palemoon.org/redist.shtml])
- else
- AC_MSG_ERROR([Branding Violation - Please see: http://www.palemoon.org/redist.shtml])
- fi
- fi
- AC_SUBST(DIRECTIVE4)
- dnl Spit out some output
- dnl ========================================================
- dnl The following defines are used by xpcom
- _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES
- CPP_THROW_NEW
- HAVE_CPP_AMBIGUITY_RESOLVING_USING
- HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR
- HAVE_CPP_PARTIAL_SPECIALIZATION
- HAVE_GETPAGESIZE
- HAVE_ICONV
- HAVE_ICONV_WITH_CONST_INPUT
- HAVE_MBRTOWC
- HAVE_WCRTOMB
- HAVE_STATVFS64
- HAVE_STATVFS
- HAVE_STATFS64
- HAVE_STATFS
- HAVE_SYS_STATVFS_H
- HAVE_SYS_STATFS_H
- HAVE_SYS_VFS_H
- HAVE_SYS_MOUNT_H
- "
- dnl ========================================================
- dnl Determine options to use for running the preprocessor.
- dnl ========================================================
- if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT"; then
- PREPROCESS_OPTION="-P -Fi"
- else
- PREPROCESS_OPTION="-E -o "
- fi
- AC_SUBST(PREPROCESS_OPTION)
- # Avoid using obsolete NSPR features
- AC_DEFINE(NO_NSPR_10_SUPPORT)
- # Don't build NSS libpkix
- NSS_DISABLE_LIBPKIX=1
- AC_SUBST(NSS_DISABLE_LIBPKIX)
- MOZ_CREATE_CONFIG_STATUS()
- # Run freetype configure script
- if test "$MOZ_TREE_FREETYPE"; then
- export CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS -std=c99"
- export CPPFLAGS="$CPPFLAGS $MOZ_DEBUG_FLAGS"
- export CXXFLAGS="$CXXFLAGS $MOZ_DEBUG_FLAGS"
- export LDFLAGS="$LDFLAGS $MOZ_DEBUG_LDFLAGS"
- # Spaces in the *_CFLAGS and *_LIBS variables are intentionally placed
- # to force freetype to use our settings rather than autodetecting
- if test -n "$MOZ_SYSTEM_PNG"; then
- export LIBPNG_CFLAGS="$MOZ_PNG_CFLAGS "
- else
- export LIBPNG_CFLAGS="-I$_objdir/dist/include"
- fi
- export LIBPNG_LIBS="$MOZ_PNG_LIBS "
- export ZLIB_CFLAGS="$MOZ_ZLIB_CFLAGS "
- export ZLIB_LIBS="$MOZ_ZLIB_LIBS "
- export CONFIG_FILES="unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in freetype-config freetype2.pc:freetype2.in"
- ac_configure_args="$ac_configure_args --host=$target --disable-shared --with-pic=yes --with-zlib=yes --without-bzip2 --with-png=yes --without-harfbuzz"
- if ! test -e modules; then
- mkdir modules
- fi
- # Only export CC, CXX and RANLIB for the subconfigure, and avoid spilling
- # that further down the road.
- (export CC CXX RANLIB;
- AC_OUTPUT_SUBDIRS(modules/freetype2)
- ) || exit 1
- fi
- if test -z "$direct_nspr_config"; then
- dnl ========================================================
- dnl = Setup a nice relatively clean build environment for
- dnl = sub-configures.
- dnl ========================================================
- CC="$_SUBDIR_CC"
- CXX="$_SUBDIR_CXX"
- CFLAGS="$_SUBDIR_CFLAGS"
- CPPFLAGS="$_SUBDIR_CPPFLAGS"
- CXXFLAGS="$_SUBDIR_CXXFLAGS"
- LDFLAGS="$_SUBDIR_LDFLAGS"
- HOST_CC="$_SUBDIR_HOST_CC"
- HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
- HOST_CXXFLAGS="$_SUBDIR_HOST_CXXFLAGS"
- HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
- RC=
- fi
- unset MAKEFILES
- unset CONFIG_FILES
- # Run all configure scripts specified by a subconfigure
- if test -n "$_subconfigure_subdir"; then
- _save_srcdir="$srcdir"
- srcdir="$srcdir/.."
- _save_ac_configure_args="$ac_configure_args"
- ac_configure_args="$_subconfigure_config_args"
- AC_OUTPUT_SUBDIRS_NOW("$_subconfigure_subdir",$cache_file)
- ac_configure_args="$_save_ac_configure_args"
- srcdir="$_save_srcdir"
- fi
- if test "$COMPILE_ENVIRONMENT"; then
- export WRAP_LDFLAGS
- dnl ========================================================
- dnl = Setup a nice relatively clean build environment for
- dnl = sub-configures.
- dnl ========================================================
- CC="$_SUBDIR_CC"
- CXX="$_SUBDIR_CXX"
- CFLAGS="$_SUBDIR_CFLAGS"
- CPPFLAGS="$_SUBDIR_CPPFLAGS"
- CXXFLAGS="$_SUBDIR_CXXFLAGS"
- LDFLAGS="$_SUBDIR_LDFLAGS"
- HOST_CC="$_SUBDIR_HOST_CC"
- HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
- HOST_CXXFLAGS="$_SUBDIR_HOST_CXXFLAGS"
- HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
- RC=
- # Run the SpiderMonkey 'configure' script.
- dist=$MOZ_BUILD_ROOT/dist
- ac_configure_args="$_SUBDIR_CONFIG_ARGS"
- # --with-system-nspr will have been converted into the relevant $NSPR_CFLAGS
- # and $NSPR_LIBS.
- ac_configure_args="`echo $ac_configure_args | sed -e 's/--with-system-nspr\S* *//'`"
- if test "$_INTL_API" = no; then
- ac_configure_args="$ac_configure_args --without-intl-api"
- fi
- if test -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then
- ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
- ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
- fi
- ac_configure_args="$ac_configure_args --prefix=$dist"
- if test -n "$ZLIB_IN_MOZGLUE"; then
- MOZ_ZLIB_LIBS=
- fi
- export MOZ_SYSTEM_ZLIB
- export MOZ_ZLIB_CFLAGS
- export MOZ_ZLIB_LIBS
- export MOZ_APP_NAME
- export MOZ_APP_REMOTINGNAME
- export MOZILLA_CENTRAL_PATH=$_topsrcdir
- export STLPORT_CPPFLAGS
- export STLPORT_LIBS
- unset MOZ_BUILD_APP
- export DIST
- export MOZ_LINKER
- export ZLIB_IN_MOZGLUE
- export AR
- export RANLIB
- export CPP
- export CC
- export CXX
- export LD
- export ARFLAGS
- export CPPFLAGS
- export CFLAGS
- export CXXFLAGS
- export LDFLAGS
- export HOST_CC
- export HOST_CXX
- export HOST_CFLAGS
- export HOST_CPPFLAGS
- export HOST_CXXFLAGS
- export HOST_LDFLAGS
- if ! test -e js; then
- mkdir js
- fi
- ac_configure_args="$ac_configure_args JS_STANDALONE="
- AC_OUTPUT_SUBDIRS(js/src,$cache_file)
- ac_configure_args="$_SUBDIR_CONFIG_ARGS"
- fi # COMPILE_ENVIRONMENT
- dnl we need to run config.status after js/src subconfigure because we're
- dnl traversing its moz.build and we need its config.status for that.
- dnl However, writing our own config.status needs to happen before
- dnl subconfigures because the setup surrounding subconfigures alters
- dnl many AC_SUBSTed variables.
- MOZ_RUN_ALL_SUBCONFIGURES()
- rm -fr confdefs* $ac_clean_files
|