Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Difference From 1e09846d988d5057 To 9a64f4383b0357b3
2015-06-05
| ||
11:03 | updating to automake 1.15 check-in: a999b9fc92 user: sandro tags: trunk | |
2015-05-20
| ||
08:25 | enabling lcov 1.10 branch coverage output check-in: 9a64f4383b user: sandro tags: trunk | |
2014-12-16
| ||
12:07 | updating automake 1.14.1 and switching to 1.0.0d check-in: 791ffbce4c user: sandro tags: trunk | |
2012-04-20
| ||
17:38 | initial repository set-up check-in: 6022cc2518 user: sandro tags: trunk | |
17:25 | initial empty check-in check-in: 1e09846d98 user: sandro tags: trunk | |
Added AUTHORS.
1 +Original Author: 2 +Alessandro Furieri <a.furieri@lqt.it> 3 + 4 +Contributors:
Added COPYING.
1 + MOZILLA PUBLIC LICENSE 2 + Version 1.1 3 + 4 + --------------- 5 + 6 +1. Definitions. 7 + 8 + 1.0.1. "Commercial Use" means distribution or otherwise making the 9 + Covered Code available to a third party. 10 + 11 + 1.1. "Contributor" means each entity that creates or contributes to 12 + the creation of Modifications. 13 + 14 + 1.2. "Contributor Version" means the combination of the Original 15 + Code, prior Modifications used by a Contributor, and the Modifications 16 + made by that particular Contributor. 17 + 18 + 1.3. "Covered Code" means the Original Code or Modifications or the 19 + combination of the Original Code and Modifications, in each case 20 + including portions thereof. 21 + 22 + 1.4. "Electronic Distribution Mechanism" means a mechanism generally 23 + accepted in the software development community for the electronic 24 + transfer of data. 25 + 26 + 1.5. "Executable" means Covered Code in any form other than Source 27 + Code. 28 + 29 + 1.6. "Initial Developer" means the individual or entity identified 30 + as the Initial Developer in the Source Code notice required by Exhibit 31 + A. 32 + 33 + 1.7. "Larger Work" means a work which combines Covered Code or 34 + portions thereof with code not governed by the terms of this License. 35 + 36 + 1.8. "License" means this document. 37 + 38 + 1.8.1. "Licensable" means having the right to grant, to the maximum 39 + extent possible, whether at the time of the initial grant or 40 + subsequently acquired, any and all of the rights conveyed herein. 41 + 42 + 1.9. "Modifications" means any addition to or deletion from the 43 + substance or structure of either the Original Code or any previous 44 + Modifications. When Covered Code is released as a series of files, a 45 + Modification is: 46 + A. Any addition to or deletion from the contents of a file 47 + containing Original Code or previous Modifications. 48 + 49 + B. Any new file that contains any part of the Original Code or 50 + previous Modifications. 51 + 52 + 1.10. "Original Code" means Source Code of computer software code 53 + which is described in the Source Code notice required by Exhibit A as 54 + Original Code, and which, at the time of its release under this 55 + License is not already Covered Code governed by this License. 56 + 57 + 1.10.1. "Patent Claims" means any patent claim(s), now owned or 58 + hereafter acquired, including without limitation, method, process, 59 + and apparatus claims, in any patent Licensable by grantor. 60 + 61 + 1.11. "Source Code" means the preferred form of the Covered Code for 62 + making modifications to it, including all modules it contains, plus 63 + any associated interface definition files, scripts used to control 64 + compilation and installation of an Executable, or source code 65 + differential comparisons against either the Original Code or another 66 + well known, available Covered Code of the Contributor's choice. The 67 + Source Code can be in a compressed or archival form, provided the 68 + appropriate decompression or de-archiving software is widely available 69 + for no charge. 70 + 71 + 1.12. "You" (or "Your") means an individual or a legal entity 72 + exercising rights under, and complying with all of the terms of, this 73 + License or a future version of this License issued under Section 6.1. 74 + For legal entities, "You" includes any entity which controls, is 75 + controlled by, or is under common control with You. For purposes of 76 + this definition, "control" means (a) the power, direct or indirect, 77 + to cause the direction or management of such entity, whether by 78 + contract or otherwise, or (b) ownership of more than fifty percent 79 + (50%) of the outstanding shares or beneficial ownership of such 80 + entity. 81 + 82 +2. Source Code License. 83 + 84 + 2.1. The Initial Developer Grant. 85 + The Initial Developer hereby grants You a world-wide, royalty-free, 86 + non-exclusive license, subject to third party intellectual property 87 + claims: 88 + (a) under intellectual property rights (other than patent or 89 + trademark) Licensable by Initial Developer to use, reproduce, 90 + modify, display, perform, sublicense and distribute the Original 91 + Code (or portions thereof) with or without Modifications, and/or 92 + as part of a Larger Work; and 93 + 94 + (b) under Patents Claims infringed by the making, using or 95 + selling of Original Code, to make, have made, use, practice, 96 + sell, and offer for sale, and/or otherwise dispose of the 97 + Original Code (or portions thereof). 98 + 99 + (c) the licenses granted in this Section 2.1(a) and (b) are 100 + effective on the date Initial Developer first distributes 101 + Original Code under the terms of this License. 102 + 103 + (d) Notwithstanding Section 2.1(b) above, no patent license is 104 + granted: 1) for code that You delete from the Original Code; 2) 105 + separate from the Original Code; or 3) for infringements caused 106 + by: i) the modification of the Original Code or ii) the 107 + combination of the Original Code with other software or devices. 108 + 109 + 2.2. Contributor Grant. 110 + Subject to third party intellectual property claims, each Contributor 111 + hereby grants You a world-wide, royalty-free, non-exclusive license 112 + 113 + (a) under intellectual property rights (other than patent or 114 + trademark) Licensable by Contributor, to use, reproduce, modify, 115 + display, perform, sublicense and distribute the Modifications 116 + created by such Contributor (or portions thereof) either on an 117 + unmodified basis, with other Modifications, as Covered Code 118 + and/or as part of a Larger Work; and 119 + 120 + (b) under Patent Claims infringed by the making, using, or 121 + selling of Modifications made by that Contributor either alone 122 + and/or in combination with its Contributor Version (or portions 123 + of such combination), to make, use, sell, offer for sale, have 124 + made, and/or otherwise dispose of: 1) Modifications made by that 125 + Contributor (or portions thereof); and 2) the combination of 126 + Modifications made by that Contributor with its Contributor 127 + Version (or portions of such combination). 128 + 129 + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are 130 + effective on the date Contributor first makes Commercial Use of 131 + the Covered Code. 132 + 133 + (d) Notwithstanding Section 2.2(b) above, no patent license is 134 + granted: 1) for any code that Contributor has deleted from the 135 + Contributor Version; 2) separate from the Contributor Version; 136 + 3) for infringements caused by: i) third party modifications of 137 + Contributor Version or ii) the combination of Modifications made 138 + by that Contributor with other software (except as part of the 139 + Contributor Version) or other devices; or 4) under Patent Claims 140 + infringed by Covered Code in the absence of Modifications made by 141 + that Contributor. 142 + 143 +3. Distribution Obligations. 144 + 145 + 3.1. Application of License. 146 + The Modifications which You create or to which You contribute are 147 + governed by the terms of this License, including without limitation 148 + Section 2.2. The Source Code version of Covered Code may be 149 + distributed only under the terms of this License or a future version 150 + of this License released under Section 6.1, and You must include a 151 + copy of this License with every copy of the Source Code You 152 + distribute. You may not offer or impose any terms on any Source Code 153 + version that alters or restricts the applicable version of this 154 + License or the recipients' rights hereunder. However, You may include 155 + an additional document offering the additional rights described in 156 + Section 3.5. 157 + 158 + 3.2. Availability of Source Code. 159 + Any Modification which You create or to which You contribute must be 160 + made available in Source Code form under the terms of this License 161 + either on the same media as an Executable version or via an accepted 162 + Electronic Distribution Mechanism to anyone to whom you made an 163 + Executable version available; and if made available via Electronic 164 + Distribution Mechanism, must remain available for at least twelve (12) 165 + months after the date it initially became available, or at least six 166 + (6) months after a subsequent version of that particular Modification 167 + has been made available to such recipients. You are responsible for 168 + ensuring that the Source Code version remains available even if the 169 + Electronic Distribution Mechanism is maintained by a third party. 170 + 171 + 3.3. Description of Modifications. 172 + You must cause all Covered Code to which You contribute to contain a 173 + file documenting the changes You made to create that Covered Code and 174 + the date of any change. You must include a prominent statement that 175 + the Modification is derived, directly or indirectly, from Original 176 + Code provided by the Initial Developer and including the name of the 177 + Initial Developer in (a) the Source Code, and (b) in any notice in an 178 + Executable version or related documentation in which You describe the 179 + origin or ownership of the Covered Code. 180 + 181 + 3.4. Intellectual Property Matters 182 + (a) Third Party Claims. 183 + If Contributor has knowledge that a license under a third party's 184 + intellectual property rights is required to exercise the rights 185 + granted by such Contributor under Sections 2.1 or 2.2, 186 + Contributor must include a text file with the Source Code 187 + distribution titled "LEGAL" which describes the claim and the 188 + party making the claim in sufficient detail that a recipient will 189 + know whom to contact. If Contributor obtains such knowledge after 190 + the Modification is made available as described in Section 3.2, 191 + Contributor shall promptly modify the LEGAL file in all copies 192 + Contributor makes available thereafter and shall take other steps 193 + (such as notifying appropriate mailing lists or newsgroups) 194 + reasonably calculated to inform those who received the Covered 195 + Code that new knowledge has been obtained. 196 + 197 + (b) Contributor APIs. 198 + If Contributor's Modifications include an application programming 199 + interface and Contributor has knowledge of patent licenses which 200 + are reasonably necessary to implement that API, Contributor must 201 + also include this information in the LEGAL file. 202 + 203 + (c) Representations. 204 + Contributor represents that, except as disclosed pursuant to 205 + Section 3.4(a) above, Contributor believes that Contributor's 206 + Modifications are Contributor's original creation(s) and/or 207 + Contributor has sufficient rights to grant the rights conveyed by 208 + this License. 209 + 210 + 3.5. Required Notices. 211 + You must duplicate the notice in Exhibit A in each file of the Source 212 + Code. If it is not possible to put such notice in a particular Source 213 + Code file due to its structure, then You must include such notice in a 214 + location (such as a relevant directory) where a user would be likely 215 + to look for such a notice. If You created one or more Modification(s) 216 + You may add your name as a Contributor to the notice described in 217 + Exhibit A. You must also duplicate this License in any documentation 218 + for the Source Code where You describe recipients' rights or ownership 219 + rights relating to Covered Code. You may choose to offer, and to 220 + charge a fee for, warranty, support, indemnity or liability 221 + obligations to one or more recipients of Covered Code. However, You 222 + may do so only on Your own behalf, and not on behalf of the Initial 223 + Developer or any Contributor. You must make it absolutely clear than 224 + any such warranty, support, indemnity or liability obligation is 225 + offered by You alone, and You hereby agree to indemnify the Initial 226 + Developer and every Contributor for any liability incurred by the 227 + Initial Developer or such Contributor as a result of warranty, 228 + support, indemnity or liability terms You offer. 229 + 230 + 3.6. Distribution of Executable Versions. 231 + You may distribute Covered Code in Executable form only if the 232 + requirements of Section 3.1-3.5 have been met for that Covered Code, 233 + and if You include a notice stating that the Source Code version of 234 + the Covered Code is available under the terms of this License, 235 + including a description of how and where You have fulfilled the 236 + obligations of Section 3.2. The notice must be conspicuously included 237 + in any notice in an Executable version, related documentation or 238 + collateral in which You describe recipients' rights relating to the 239 + Covered Code. You may distribute the Executable version of Covered 240 + Code or ownership rights under a license of Your choice, which may 241 + contain terms different from this License, provided that You are in 242 + compliance with the terms of this License and that the license for the 243 + Executable version does not attempt to limit or alter the recipient's 244 + rights in the Source Code version from the rights set forth in this 245 + License. If You distribute the Executable version under a different 246 + license You must make it absolutely clear that any terms which differ 247 + from this License are offered by You alone, not by the Initial 248 + Developer or any Contributor. You hereby agree to indemnify the 249 + Initial Developer and every Contributor for any liability incurred by 250 + the Initial Developer or such Contributor as a result of any such 251 + terms You offer. 252 + 253 + 3.7. Larger Works. 254 + You may create a Larger Work by combining Covered Code with other code 255 + not governed by the terms of this License and distribute the Larger 256 + Work as a single product. In such a case, You must make sure the 257 + requirements of this License are fulfilled for the Covered Code. 258 + 259 +4. Inability to Comply Due to Statute or Regulation. 260 + 261 + If it is impossible for You to comply with any of the terms of this 262 + License with respect to some or all of the Covered Code due to 263 + statute, judicial order, or regulation then You must: (a) comply with 264 + the terms of this License to the maximum extent possible; and (b) 265 + describe the limitations and the code they affect. Such description 266 + must be included in the LEGAL file described in Section 3.4 and must 267 + be included with all distributions of the Source Code. Except to the 268 + extent prohibited by statute or regulation, such description must be 269 + sufficiently detailed for a recipient of ordinary skill to be able to 270 + understand it. 271 + 272 +5. Application of this License. 273 + 274 + This License applies to code to which the Initial Developer has 275 + attached the notice in Exhibit A and to related Covered Code. 276 + 277 +6. Versions of the License. 278 + 279 + 6.1. New Versions. 280 + Netscape Communications Corporation ("Netscape") may publish revised 281 + and/or new versions of the License from time to time. Each version 282 + will be given a distinguishing version number. 283 + 284 + 6.2. Effect of New Versions. 285 + Once Covered Code has been published under a particular version of the 286 + License, You may always continue to use it under the terms of that 287 + version. You may also choose to use such Covered Code under the terms 288 + of any subsequent version of the License published by Netscape. No one 289 + other than Netscape has the right to modify the terms applicable to 290 + Covered Code created under this License. 291 + 292 + 6.3. Derivative Works. 293 + If You create or use a modified version of this License (which you may 294 + only do in order to apply it to code which is not already Covered Code 295 + governed by this License), You must (a) rename Your license so that 296 + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", 297 + "MPL", "NPL" or any confusingly similar phrase do not appear in your 298 + license (except to note that your license differs from this License) 299 + and (b) otherwise make it clear that Your version of the license 300 + contains terms which differ from the Mozilla Public License and 301 + Netscape Public License. (Filling in the name of the Initial 302 + Developer, Original Code or Contributor in the notice described in 303 + Exhibit A shall not of themselves be deemed to be modifications of 304 + this License.) 305 + 306 +7. DISCLAIMER OF WARRANTY. 307 + 308 + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, 309 + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, 310 + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF 311 + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. 312 + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE 313 + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, 314 + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE 315 + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER 316 + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF 317 + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 318 + 319 +8. TERMINATION. 320 + 321 + 8.1. This License and the rights granted hereunder will terminate 322 + automatically if You fail to comply with terms herein and fail to cure 323 + such breach within 30 days of becoming aware of the breach. All 324 + sublicenses to the Covered Code which are properly granted shall 325 + survive any termination of this License. Provisions which, by their 326 + nature, must remain in effect beyond the termination of this License 327 + shall survive. 328 + 329 + 8.2. If You initiate litigation by asserting a patent infringement 330 + claim (excluding declatory judgment actions) against Initial Developer 331 + or a Contributor (the Initial Developer or Contributor against whom 332 + You file such action is referred to as "Participant") alleging that: 333 + 334 + (a) such Participant's Contributor Version directly or indirectly 335 + infringes any patent, then any and all rights granted by such 336 + Participant to You under Sections 2.1 and/or 2.2 of this License 337 + shall, upon 60 days notice from Participant terminate prospectively, 338 + unless if within 60 days after receipt of notice You either: (i) 339 + agree in writing to pay Participant a mutually agreeable reasonable 340 + royalty for Your past and future use of Modifications made by such 341 + Participant, or (ii) withdraw Your litigation claim with respect to 342 + the Contributor Version against such Participant. If within 60 days 343 + of notice, a reasonable royalty and payment arrangement are not 344 + mutually agreed upon in writing by the parties or the litigation claim 345 + is not withdrawn, the rights granted by Participant to You under 346 + Sections 2.1 and/or 2.2 automatically terminate at the expiration of 347 + the 60 day notice period specified above. 348 + 349 + (b) any software, hardware, or device, other than such Participant's 350 + Contributor Version, directly or indirectly infringes any patent, then 351 + any rights granted to You by such Participant under Sections 2.1(b) 352 + and 2.2(b) are revoked effective as of the date You first made, used, 353 + sold, distributed, or had made, Modifications made by that 354 + Participant. 355 + 356 + 8.3. If You assert a patent infringement claim against Participant 357 + alleging that such Participant's Contributor Version directly or 358 + indirectly infringes any patent where such claim is resolved (such as 359 + by license or settlement) prior to the initiation of patent 360 + infringement litigation, then the reasonable value of the licenses 361 + granted by such Participant under Sections 2.1 or 2.2 shall be taken 362 + into account in determining the amount or value of any payment or 363 + license. 364 + 365 + 8.4. In the event of termination under Sections 8.1 or 8.2 above, 366 + all end user license agreements (excluding distributors and resellers) 367 + which have been validly granted by You or any distributor hereunder 368 + prior to termination shall survive termination. 369 + 370 +9. LIMITATION OF LIABILITY. 371 + 372 + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT 373 + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL 374 + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, 375 + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR 376 + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY 377 + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, 378 + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER 379 + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN 380 + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF 381 + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY 382 + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW 383 + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE 384 + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO 385 + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 386 + 387 +10. U.S. GOVERNMENT END USERS. 388 + 389 + The Covered Code is a "commercial item," as that term is defined in 390 + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer 391 + software" and "commercial computer software documentation," as such 392 + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 393 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), 394 + all U.S. Government End Users acquire Covered Code with only those 395 + rights set forth herein. 396 + 397 +11. MISCELLANEOUS. 398 + 399 + This License represents the complete agreement concerning subject 400 + matter hereof. If any provision of this License is held to be 401 + unenforceable, such provision shall be reformed only to the extent 402 + necessary to make it enforceable. This License shall be governed by 403 + California law provisions (except to the extent applicable law, if 404 + any, provides otherwise), excluding its conflict-of-law provisions. 405 + With respect to disputes in which at least one party is a citizen of, 406 + or an entity chartered or registered to do business in the United 407 + States of America, any litigation relating to this License shall be 408 + subject to the jurisdiction of the Federal Courts of the Northern 409 + District of California, with venue lying in Santa Clara County, 410 + California, with the losing party responsible for costs, including 411 + without limitation, court costs and reasonable attorneys' fees and 412 + expenses. The application of the United Nations Convention on 413 + Contracts for the International Sale of Goods is expressly excluded. 414 + Any law or regulation which provides that the language of a contract 415 + shall be construed against the drafter shall not apply to this 416 + License. 417 + 418 +12. RESPONSIBILITY FOR CLAIMS. 419 + 420 + As between Initial Developer and the Contributors, each party is 421 + responsible for claims and damages arising, directly or indirectly, 422 + out of its utilization of rights under this License and You agree to 423 + work with Initial Developer and Contributors to distribute such 424 + responsibility on an equitable basis. Nothing herein is intended or 425 + shall be deemed to constitute any admission of liability. 426 + 427 +13. MULTIPLE-LICENSED CODE. 428 + 429 + Initial Developer may designate portions of the Covered Code as 430 + "Multiple-Licensed". "Multiple-Licensed" means that the Initial 431 + Developer permits you to utilize portions of the Covered Code under 432 + Your choice of the NPL or the alternative licenses, if any, specified 433 + by the Initial Developer in the file described in Exhibit A. 434 + 435 +EXHIBIT A -Mozilla Public License. 436 + 437 + ``The contents of this file are subject to the Mozilla Public License 438 + Version 1.1 (the "License"); you may not use this file except in 439 + compliance with the License. You may obtain a copy of the License at 440 + http://www.mozilla.org/MPL/ 441 + 442 + Software distributed under the License is distributed on an "AS IS" 443 + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 444 + License for the specific language governing rights and limitations 445 + under the License. 446 + 447 + The Original Code is the ReadOSM library. 448 + 449 + The Initial Developer of the Original Code is Alessandro Furieri. 450 + Portions created by the Initial Developer are Copyright (C) 2012 451 + the Initial Developer. All Rights Reserved. 452 + 453 + Contributor(s): 454 + 455 + Alternatively, the contents of this file may be used under the terms of 456 + either the GNU General Public License Version 2 or later (the "GPL"), or 457 + the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 458 + in which case the provisions of the GPL or the LGPL are applicable instead 459 + of those above. If you wish to allow use of your version of this file only 460 + under the terms of either the GPL or the LGPL, and not to allow others to 461 + use your version of this file under the terms of the MPL, indicate your 462 + decision by deleting the provisions above and replace them with the notice 463 + and other provisions required by the GPL or the LGPL. If you do not delete 464 + the provisions above, a recipient may use your version of this file under 465 + the terms of any one of the MPL, the GPL or the LGPL. 466 + 467 + [NOTE: The text of this Exhibit A may differ slightly from the text of 468 + the notices in the Source Code files of the Original Code. You should 469 + use the text of this Exhibit A rather than the text found in the 470 + Original Code Source Code for Your Modifications.] 471 +
Added ChangeLog.
Added Doxyfile.in.
1 +# Doxyfile 1.7.3 2 + 3 +# This file describes the settings to be used by the documentation system 4 +# doxygen (www.doxygen.org) for a project. 5 +# 6 +# All text after a hash (#) is considered a comment and will be ignored. 7 +# The format is: 8 +# TAG = value [value, ...] 9 +# For lists items can also be appended using: 10 +# TAG += value [value, ...] 11 +# Values that contain spaces should be placed between quotes (" "). 12 + 13 +#--------------------------------------------------------------------------- 14 +# Project related configuration options 15 +#--------------------------------------------------------------------------- 16 + 17 +# This tag specifies the encoding used for all characters in the config file 18 +# that follow. The default is UTF-8 which is also the encoding used for all 19 +# text before the first occurrence of this tag. Doxygen uses libiconv (or the 20 +# iconv built into libc) for the transcoding. See 21 +# http://www.gnu.org/software/libiconv for the list of possible encodings. 22 + 23 +DOXYFILE_ENCODING = UTF-8 24 + 25 +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 26 +# by quotes) that should identify the project. 27 + 28 +PROJECT_NAME = readosm 29 + 30 +# The PROJECT_NUMBER tag can be used to enter a project or revision number. 31 +# This could be handy for archiving the generated documentation or 32 +# if some version control system is used. 33 + 34 +PROJECT_NUMBER = @VERSION@ 35 + 36 +# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. 37 + 38 +PROJECT_BRIEF = 39 + 40 +# With the PROJECT_LOGO tag one can specify an logo or icon that is 41 +# included in the documentation. The maximum height of the logo should not 42 +# exceed 55 pixels and the maximum width should not exceed 200 pixels. 43 +# Doxygen will copy the logo to the output directory. 44 + 45 +PROJECT_LOGO = 46 + 47 +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 48 +# base path where the generated documentation will be put. 49 +# If a relative path is entered, it will be relative to the location 50 +# where doxygen was started. If left blank the current directory will be used. 51 + 52 +OUTPUT_DIRECTORY = 53 + 54 +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 55 +# 4096 sub-directories (in 2 levels) under the output directory of each output 56 +# format and will distribute the generated files over these directories. 57 +# Enabling this option can be useful when feeding doxygen a huge amount of 58 +# source files, where putting all generated files in the same directory would 59 +# otherwise cause performance problems for the file system. 60 + 61 +CREATE_SUBDIRS = NO 62 + 63 +# The OUTPUT_LANGUAGE tag is used to specify the language in which all 64 +# documentation generated by doxygen is written. Doxygen will use this 65 +# information to generate all constant output in the proper language. 66 +# The default language is English, other supported languages are: 67 +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 68 +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, 69 +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English 70 +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, 71 +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, 72 +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. 73 + 74 +OUTPUT_LANGUAGE = English 75 + 76 +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 77 +# include brief member descriptions after the members that are listed in 78 +# the file and class documentation (similar to JavaDoc). 79 +# Set to NO to disable this. 80 + 81 +BRIEF_MEMBER_DESC = YES 82 + 83 +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 84 +# the brief description of a member or function before the detailed description. 85 +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 86 +# brief descriptions will be completely suppressed. 87 + 88 +REPEAT_BRIEF = YES 89 + 90 +# This tag implements a quasi-intelligent brief description abbreviator 91 +# that is used to form the text in various listings. Each string 92 +# in this list, if found as the leading text of the brief description, will be 93 +# stripped from the text and the result after processing the whole list, is 94 +# used as the annotated text. Otherwise, the brief description is used as-is. 95 +# If left blank, the following values are used ("$name" is automatically 96 +# replaced with the name of the entity): "The $name class" "The $name widget" 97 +# "The $name file" "is" "provides" "specifies" "contains" 98 +# "represents" "a" "an" "the" 99 + 100 +ABBREVIATE_BRIEF = 101 + 102 +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 103 +# Doxygen will generate a detailed section even if there is only a brief 104 +# description. 105 + 106 +ALWAYS_DETAILED_SEC = NO 107 + 108 +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 109 +# inherited members of a class in the documentation of that class as if those 110 +# members were ordinary class members. Constructors, destructors and assignment 111 +# operators of the base classes will not be shown. 112 + 113 +INLINE_INHERITED_MEMB = NO 114 + 115 +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 116 +# path before files name in the file list and in the header files. If set 117 +# to NO the shortest path that makes the file name unique will be used. 118 + 119 +FULL_PATH_NAMES = YES 120 + 121 +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 122 +# can be used to strip a user-defined part of the path. Stripping is 123 +# only done if one of the specified strings matches the left-hand part of 124 +# the path. The tag can be used to show relative paths in the file list. 125 +# If left blank the directory from which doxygen is run is used as the 126 +# path to strip. 127 + 128 +STRIP_FROM_PATH = 129 + 130 +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 131 +# the path mentioned in the documentation of a class, which tells 132 +# the reader which header file to include in order to use a class. 133 +# If left blank only the name of the header file containing the class 134 +# definition is used. Otherwise one should specify the include paths that 135 +# are normally passed to the compiler using the -I flag. 136 + 137 +STRIP_FROM_INC_PATH = 138 + 139 +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 140 +# (but less readable) file names. This can be useful if your file system 141 +# doesn't support long names like on DOS, Mac, or CD-ROM. 142 + 143 +SHORT_NAMES = NO 144 + 145 +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 146 +# will interpret the first line (until the first dot) of a JavaDoc-style 147 +# comment as the brief description. If set to NO, the JavaDoc 148 +# comments will behave just like regular Qt-style comments 149 +# (thus requiring an explicit @brief command for a brief description.) 150 + 151 +JAVADOC_AUTOBRIEF = YES 152 + 153 +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 154 +# interpret the first line (until the first dot) of a Qt-style 155 +# comment as the brief description. If set to NO, the comments 156 +# will behave just like regular Qt-style comments (thus requiring 157 +# an explicit \brief command for a brief description.) 158 + 159 +QT_AUTOBRIEF = NO 160 + 161 +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 162 +# treat a multi-line C++ special comment block (i.e. a block of //! or /// 163 +# comments) as a brief description. This used to be the default behaviour. 164 +# The new default is to treat a multi-line C++ comment block as a detailed 165 +# description. Set this tag to YES if you prefer the old behaviour instead. 166 + 167 +MULTILINE_CPP_IS_BRIEF = NO 168 + 169 +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 170 +# member inherits the documentation from any documented member that it 171 +# re-implements. 172 + 173 +INHERIT_DOCS = YES 174 + 175 +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 176 +# a new page for each member. If set to NO, the documentation of a member will 177 +# be part of the file/class/namespace that contains it. 178 + 179 +SEPARATE_MEMBER_PAGES = NO 180 + 181 +# The TAB_SIZE tag can be used to set the number of spaces in a tab. 182 +# Doxygen uses this value to replace tabs by spaces in code fragments. 183 + 184 +TAB_SIZE = 8 185 + 186 +# This tag can be used to specify a number of aliases that acts 187 +# as commands in the documentation. An alias has the form "name=value". 188 +# For example adding "sideeffect=\par Side Effects:\n" will allow you to 189 +# put the command \sideeffect (or @sideeffect) in the documentation, which 190 +# will result in a user-defined paragraph with heading "Side Effects:". 191 +# You can put \n's in the value part of an alias to insert newlines. 192 + 193 +ALIASES = 194 + 195 +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 196 +# sources only. Doxygen will then generate output that is more tailored for C. 197 +# For instance, some of the names that are used will be different. The list 198 +# of all members will be omitted, etc. 199 + 200 +OPTIMIZE_OUTPUT_FOR_C = YES 201 + 202 +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 203 +# sources only. Doxygen will then generate output that is more tailored for 204 +# Java. For instance, namespaces will be presented as packages, qualified 205 +# scopes will look different, etc. 206 + 207 +OPTIMIZE_OUTPUT_JAVA = NO 208 + 209 +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 210 +# sources only. Doxygen will then generate output that is more tailored for 211 +# Fortran. 212 + 213 +OPTIMIZE_FOR_FORTRAN = NO 214 + 215 +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 216 +# sources. Doxygen will then generate output that is tailored for 217 +# VHDL. 218 + 219 +OPTIMIZE_OUTPUT_VHDL = NO 220 + 221 +# Doxygen selects the parser to use depending on the extension of the files it 222 +# parses. With this tag you can assign which parser to use for a given extension. 223 +# Doxygen has a built-in mapping, but you can override or extend it using this 224 +# tag. The format is ext=language, where ext is a file extension, and language 225 +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, 226 +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make 227 +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C 228 +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions 229 +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. 230 + 231 +EXTENSION_MAPPING = 232 + 233 +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 234 +# to include (a tag file for) the STL sources as input, then you should 235 +# set this tag to YES in order to let doxygen match functions declarations and 236 +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 237 +# func(std::string) {}). This also makes the inheritance and collaboration 238 +# diagrams that involve STL classes more complete and accurate. 239 + 240 +BUILTIN_STL_SUPPORT = NO 241 + 242 +# If you use Microsoft's C++/CLI language, you should set this option to YES to 243 +# enable parsing support. 244 + 245 +CPP_CLI_SUPPORT = NO 246 + 247 +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 248 +# Doxygen will parse them like normal C++ but will assume all classes use public 249 +# instead of private inheritance when no explicit protection keyword is present. 250 + 251 +SIP_SUPPORT = NO 252 + 253 +# For Microsoft's IDL there are propget and propput attributes to indicate getter 254 +# and setter methods for a property. Setting this option to YES (the default) 255 +# will make doxygen replace the get and set methods by a property in the 256 +# documentation. This will only work if the methods are indeed getting or 257 +# setting a simple type. If this is not the case, or you want to show the 258 +# methods anyway, you should set this option to NO. 259 + 260 +IDL_PROPERTY_SUPPORT = YES 261 + 262 +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 263 +# tag is set to YES, then doxygen will reuse the documentation of the first 264 +# member in the group (if any) for the other members of the group. By default 265 +# all members of a group must be documented explicitly. 266 + 267 +DISTRIBUTE_GROUP_DOC = NO 268 + 269 +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 270 +# the same type (for instance a group of public functions) to be put as a 271 +# subgroup of that type (e.g. under the Public Functions section). Set it to 272 +# NO to prevent subgrouping. Alternatively, this can be done per class using 273 +# the \nosubgrouping command. 274 + 275 +SUBGROUPING = YES 276 + 277 +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 278 +# is documented as struct, union, or enum with the name of the typedef. So 279 +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 280 +# with name TypeT. When disabled the typedef will appear as a member of a file, 281 +# namespace, or class. And the struct will be named TypeS. This can typically 282 +# be useful for C code in case the coding convention dictates that all compound 283 +# types are typedef'ed and only the typedef is referenced, never the tag name. 284 + 285 +TYPEDEF_HIDES_STRUCT = NO 286 + 287 +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to 288 +# determine which symbols to keep in memory and which to flush to disk. 289 +# When the cache is full, less often used symbols will be written to disk. 290 +# For small to medium size projects (<1000 input files) the default value is 291 +# probably good enough. For larger projects a too small cache size can cause 292 +# doxygen to be busy swapping symbols to and from disk most of the time 293 +# causing a significant performance penalty. 294 +# If the system has enough physical memory increasing the cache will improve the 295 +# performance by keeping more symbols in memory. Note that the value works on 296 +# a logarithmic scale so increasing the size by one will roughly double the 297 +# memory usage. The cache size is given by this formula: 298 +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, 299 +# corresponding to a cache size of 2^16 = 65536 symbols 300 + 301 +SYMBOL_CACHE_SIZE = 0 302 + 303 +#--------------------------------------------------------------------------- 304 +# Build related configuration options 305 +#--------------------------------------------------------------------------- 306 + 307 +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 308 +# documentation are documented, even if no documentation was available. 309 +# Private class members and static file members will be hidden unless 310 +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 311 + 312 +EXTRACT_ALL = NO 313 + 314 +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 315 +# will be included in the documentation. 316 + 317 +EXTRACT_PRIVATE = NO 318 + 319 +# If the EXTRACT_STATIC tag is set to YES all static members of a file 320 +# will be included in the documentation. 321 + 322 +EXTRACT_STATIC = NO 323 + 324 +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 325 +# defined locally in source files will be included in the documentation. 326 +# If set to NO only classes defined in header files are included. 327 + 328 +EXTRACT_LOCAL_CLASSES = YES 329 + 330 +# This flag is only useful for Objective-C code. When set to YES local 331 +# methods, which are defined in the implementation section but not in 332 +# the interface are included in the documentation. 333 +# If set to NO (the default) only methods in the interface are included. 334 + 335 +EXTRACT_LOCAL_METHODS = NO 336 + 337 +# If this flag is set to YES, the members of anonymous namespaces will be 338 +# extracted and appear in the documentation as a namespace called 339 +# 'anonymous_namespace{file}', where file will be replaced with the base 340 +# name of the file that contains the anonymous namespace. By default 341 +# anonymous namespaces are hidden. 342 + 343 +EXTRACT_ANON_NSPACES = NO 344 + 345 +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 346 +# undocumented members of documented classes, files or namespaces. 347 +# If set to NO (the default) these members will be included in the 348 +# various overviews, but no documentation section is generated. 349 +# This option has no effect if EXTRACT_ALL is enabled. 350 + 351 +HIDE_UNDOC_MEMBERS = NO 352 + 353 +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 354 +# undocumented classes that are normally visible in the class hierarchy. 355 +# If set to NO (the default) these classes will be included in the various 356 +# overviews. This option has no effect if EXTRACT_ALL is enabled. 357 + 358 +HIDE_UNDOC_CLASSES = NO 359 + 360 +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 361 +# friend (class|struct|union) declarations. 362 +# If set to NO (the default) these declarations will be included in the 363 +# documentation. 364 + 365 +HIDE_FRIEND_COMPOUNDS = NO 366 + 367 +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 368 +# documentation blocks found inside the body of a function. 369 +# If set to NO (the default) these blocks will be appended to the 370 +# function's detailed documentation block. 371 + 372 +HIDE_IN_BODY_DOCS = NO 373 + 374 +# The INTERNAL_DOCS tag determines if documentation 375 +# that is typed after a \internal command is included. If the tag is set 376 +# to NO (the default) then the documentation will be excluded. 377 +# Set it to YES to include the internal documentation. 378 + 379 +INTERNAL_DOCS = NO 380 + 381 +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 382 +# file names in lower-case letters. If set to YES upper-case letters are also 383 +# allowed. This is useful if you have classes or files whose names only differ 384 +# in case and if your file system supports case sensitive file names. Windows 385 +# and Mac users are advised to set this option to NO. 386 + 387 +CASE_SENSE_NAMES = YES 388 + 389 +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 390 +# will show members with their full class and namespace scopes in the 391 +# documentation. If set to YES the scope will be hidden. 392 + 393 +HIDE_SCOPE_NAMES = NO 394 + 395 +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 396 +# will put a list of the files that are included by a file in the documentation 397 +# of that file. 398 + 399 +SHOW_INCLUDE_FILES = YES 400 + 401 +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen 402 +# will list include files with double quotes in the documentation 403 +# rather than with sharp brackets. 404 + 405 +FORCE_LOCAL_INCLUDES = NO 406 + 407 +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 408 +# is inserted in the documentation for inline members. 409 + 410 +INLINE_INFO = YES 411 + 412 +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 413 +# will sort the (detailed) documentation of file and class members 414 +# alphabetically by member name. If set to NO the members will appear in 415 +# declaration order. 416 + 417 +SORT_MEMBER_DOCS = YES 418 + 419 +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 420 +# brief documentation of file, namespace and class members alphabetically 421 +# by member name. If set to NO (the default) the members will appear in 422 +# declaration order. 423 + 424 +SORT_BRIEF_DOCS = NO 425 + 426 +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen 427 +# will sort the (brief and detailed) documentation of class members so that 428 +# constructors and destructors are listed first. If set to NO (the default) 429 +# the constructors will appear in the respective orders defined by 430 +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. 431 +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO 432 +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. 433 + 434 +SORT_MEMBERS_CTORS_1ST = NO 435 + 436 +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 437 +# hierarchy of group names into alphabetical order. If set to NO (the default) 438 +# the group names will appear in their defined order. 439 + 440 +SORT_GROUP_NAMES = NO 441 + 442 +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 443 +# sorted by fully-qualified names, including namespaces. If set to 444 +# NO (the default), the class list will be sorted only by class name, 445 +# not including the namespace part. 446 +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 447 +# Note: This option applies only to the class list, not to the 448 +# alphabetical list. 449 + 450 +SORT_BY_SCOPE_NAME = NO 451 + 452 +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a 453 +# match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen 454 +# will still accept a match between prototype and implementation in such cases. 455 + 456 +STRICT_PROTO_MATCHING = NO 457 + 458 +# The GENERATE_TODOLIST tag can be used to enable (YES) or 459 +# disable (NO) the todo list. This list is created by putting \todo 460 +# commands in the documentation. 461 + 462 +GENERATE_TODOLIST = YES 463 + 464 +# The GENERATE_TESTLIST tag can be used to enable (YES) or 465 +# disable (NO) the test list. This list is created by putting \test 466 +# commands in the documentation. 467 + 468 +GENERATE_TESTLIST = YES 469 + 470 +# The GENERATE_BUGLIST tag can be used to enable (YES) or 471 +# disable (NO) the bug list. This list is created by putting \bug 472 +# commands in the documentation. 473 + 474 +GENERATE_BUGLIST = YES 475 + 476 +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 477 +# disable (NO) the deprecated list. This list is created by putting 478 +# \deprecated commands in the documentation. 479 + 480 +GENERATE_DEPRECATEDLIST= YES 481 + 482 +# The ENABLED_SECTIONS tag can be used to enable conditional 483 +# documentation sections, marked by \if sectionname ... \endif. 484 + 485 +ENABLED_SECTIONS = 486 + 487 +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 488 +# the initial value of a variable or macro consists of for it to appear in 489 +# the documentation. If the initializer consists of more lines than specified 490 +# here it will be hidden. Use a value of 0 to hide initializers completely. 491 +# The appearance of the initializer of individual variables and macros in the 492 +# documentation can be controlled using \showinitializer or \hideinitializer 493 +# command in the documentation regardless of this setting. 494 + 495 +MAX_INITIALIZER_LINES = 30 496 + 497 +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 498 +# at the bottom of the documentation of classes and structs. If set to YES the 499 +# list will mention the files that were used to generate the documentation. 500 + 501 +SHOW_USED_FILES = YES 502 + 503 +# If the sources in your project are distributed over multiple directories 504 +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 505 +# in the documentation. The default is NO. 506 + 507 +SHOW_DIRECTORIES = NO 508 + 509 +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. 510 +# This will remove the Files entry from the Quick Index and from the 511 +# Folder Tree View (if specified). The default is YES. 512 + 513 +SHOW_FILES = YES 514 + 515 +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the 516 +# Namespaces page. 517 +# This will remove the Namespaces entry from the Quick Index 518 +# and from the Folder Tree View (if specified). The default is YES. 519 + 520 +SHOW_NAMESPACES = YES 521 + 522 +# The FILE_VERSION_FILTER tag can be used to specify a program or script that 523 +# doxygen should invoke to get the current version for each file (typically from 524 +# the version control system). Doxygen will invoke the program by executing (via 525 +# popen()) the command <command> <input-file>, where <command> is the value of 526 +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 527 +# provided by doxygen. Whatever the program writes to standard output 528 +# is used as the file version. See the manual for examples. 529 + 530 +FILE_VERSION_FILTER = 531 + 532 +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed 533 +# by doxygen. The layout file controls the global structure of the generated 534 +# output files in an output format independent way. The create the layout file 535 +# that represents doxygen's defaults, run doxygen with the -l option. 536 +# You can optionally specify a file name after the option, if omitted 537 +# DoxygenLayout.xml will be used as the name of the layout file. 538 + 539 +LAYOUT_FILE = 540 + 541 +#--------------------------------------------------------------------------- 542 +# configuration options related to warning and progress messages 543 +#--------------------------------------------------------------------------- 544 + 545 +# The QUIET tag can be used to turn on/off the messages that are generated 546 +# by doxygen. Possible values are YES and NO. If left blank NO is used. 547 + 548 +QUIET = NO 549 + 550 +# The WARNINGS tag can be used to turn on/off the warning messages that are 551 +# generated by doxygen. Possible values are YES and NO. If left blank 552 +# NO is used. 553 + 554 +WARNINGS = YES 555 + 556 +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 557 +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 558 +# automatically be disabled. 559 + 560 +WARN_IF_UNDOCUMENTED = YES 561 + 562 +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 563 +# potential errors in the documentation, such as not documenting some 564 +# parameters in a documented function, or documenting parameters that 565 +# don't exist or using markup commands wrongly. 566 + 567 +WARN_IF_DOC_ERROR = YES 568 + 569 +# The WARN_NO_PARAMDOC option can be enabled to get warnings for 570 +# functions that are documented, but have no documentation for their parameters 571 +# or return value. If set to NO (the default) doxygen will only warn about 572 +# wrong or incomplete parameter documentation, but not about the absence of 573 +# documentation. 574 + 575 +WARN_NO_PARAMDOC = NO 576 + 577 +# The WARN_FORMAT tag determines the format of the warning messages that 578 +# doxygen can produce. The string should contain the $file, $line, and $text 579 +# tags, which will be replaced by the file and line number from which the 580 +# warning originated and the warning text. Optionally the format may contain 581 +# $version, which will be replaced by the version of the file (if it could 582 +# be obtained via FILE_VERSION_FILTER) 583 + 584 +WARN_FORMAT = "$file:$line: $text" 585 + 586 +# The WARN_LOGFILE tag can be used to specify a file to which warning 587 +# and error messages should be written. If left blank the output is written 588 +# to stderr. 589 + 590 +WARN_LOGFILE = 591 + 592 +#--------------------------------------------------------------------------- 593 +# configuration options related to the input files 594 +#--------------------------------------------------------------------------- 595 + 596 +# The INPUT tag can be used to specify the files and/or directories that contain 597 +# documented source files. You may enter file names like "myfile.cpp" or 598 +# directories like "/usr/src/myproject". Separate the files or directories 599 +# with spaces. 600 + 601 +INPUT = headers/readosm.h \ 602 + examples/examples.doxy \ 603 + mainpage.doxy 604 + 605 +# This tag can be used to specify the character encoding of the source files 606 +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 607 +# also the default input encoding. Doxygen uses libiconv (or the iconv built 608 +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 609 +# the list of possible encodings. 610 + 611 +INPUT_ENCODING = UTF-8 612 + 613 +# If the value of the INPUT tag contains directories, you can use the 614 +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 615 +# and *.h) to filter out the source-files in the directories. If left 616 +# blank the following patterns are tested: 617 +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh 618 +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py 619 +# *.f90 *.f *.for *.vhd *.vhdl 620 + 621 +FILE_PATTERNS = 622 + 623 +# The RECURSIVE tag can be used to turn specify whether or not subdirectories 624 +# should be searched for input files as well. Possible values are YES and NO. 625 +# If left blank NO is used. 626 + 627 +RECURSIVE = NO 628 + 629 +# The EXCLUDE tag can be used to specify files and/or directories that should 630 +# excluded from the INPUT source files. This way you can easily exclude a 631 +# subdirectory from a directory tree whose root is specified with the INPUT tag. 632 + 633 +EXCLUDE = 634 + 635 +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 636 +# directories that are symbolic links (a Unix file system feature) are excluded 637 +# from the input. 638 + 639 +EXCLUDE_SYMLINKS = NO 640 + 641 +# If the value of the INPUT tag contains directories, you can use the 642 +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 643 +# certain files from those directories. Note that the wildcards are matched 644 +# against the file with absolute path, so to exclude all test directories 645 +# for example use the pattern */test/* 646 + 647 +EXCLUDE_PATTERNS = 648 + 649 +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 650 +# (namespaces, classes, functions, etc.) that should be excluded from the 651 +# output. The symbol name can be a fully qualified name, a word, or if the 652 +# wildcard * is used, a substring. Examples: ANamespace, AClass, 653 +# AClass::ANamespace, ANamespace::*Test 654 + 655 +EXCLUDE_SYMBOLS = 656 + 657 +# The EXAMPLE_PATH tag can be used to specify one or more files or 658 +# directories that contain example code fragments that are included (see 659 +# the \include command). 660 + 661 +EXAMPLE_PATH = examples 662 + 663 +# If the value of the EXAMPLE_PATH tag contains directories, you can use the 664 +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 665 +# and *.h) to filter out the source-files in the directories. If left 666 +# blank all files are included. 667 + 668 +EXAMPLE_PATTERNS = 669 + 670 +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 671 +# searched for input files to be used with the \include or \dontinclude 672 +# commands irrespective of the value of the RECURSIVE tag. 673 +# Possible values are YES and NO. If left blank NO is used. 674 + 675 +EXAMPLE_RECURSIVE = NO 676 + 677 +# The IMAGE_PATH tag can be used to specify one or more files or 678 +# directories that contain image that are included in the documentation (see 679 +# the \image command). 680 + 681 +IMAGE_PATH = images 682 + 683 +# The INPUT_FILTER tag can be used to specify a program that doxygen should 684 +# invoke to filter for each input file. Doxygen will invoke the filter program 685 +# by executing (via popen()) the command <filter> <input-file>, where <filter> 686 +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 687 +# input file. Doxygen will then use the output that the filter program writes 688 +# to standard output. 689 +# If FILTER_PATTERNS is specified, this tag will be 690 +# ignored. 691 + 692 +INPUT_FILTER = 693 + 694 +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 695 +# basis. 696 +# Doxygen will compare the file name with each pattern and apply the 697 +# filter if there is a match. 698 +# The filters are a list of the form: 699 +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 700 +# info on how filters are used. If FILTER_PATTERNS is empty or if 701 +# non of the patterns match the file name, INPUT_FILTER is applied. 702 + 703 +FILTER_PATTERNS = 704 + 705 +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 706 +# INPUT_FILTER) will be used to filter the input files when producing source 707 +# files to browse (i.e. when SOURCE_BROWSER is set to YES). 708 + 709 +FILTER_SOURCE_FILES = NO 710 + 711 +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file 712 +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) 713 +# and it is also possible to disable source filtering for a specific pattern 714 +# using *.ext= (so without naming a filter). This option only has effect when 715 +# FILTER_SOURCE_FILES is enabled. 716 + 717 +FILTER_SOURCE_PATTERNS = 718 + 719 +#--------------------------------------------------------------------------- 720 +# configuration options related to source browsing 721 +#--------------------------------------------------------------------------- 722 + 723 +# If the SOURCE_BROWSER tag is set to YES then a list of source files will 724 +# be generated. Documented entities will be cross-referenced with these sources. 725 +# Note: To get rid of all source code in the generated output, make sure also 726 +# VERBATIM_HEADERS is set to NO. 727 + 728 +SOURCE_BROWSER = NO 729 + 730 +# Setting the INLINE_SOURCES tag to YES will include the body 731 +# of functions and classes directly in the documentation. 732 + 733 +INLINE_SOURCES = NO 734 + 735 +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 736 +# doxygen to hide any special comment blocks from generated source code 737 +# fragments. Normal C and C++ comments will always remain visible. 738 + 739 +STRIP_CODE_COMMENTS = YES 740 + 741 +# If the REFERENCED_BY_RELATION tag is set to YES 742 +# then for each documented function all documented 743 +# functions referencing it will be listed. 744 + 745 +REFERENCED_BY_RELATION = NO 746 + 747 +# If the REFERENCES_RELATION tag is set to YES 748 +# then for each documented function all documented entities 749 +# called/used by that function will be listed. 750 + 751 +REFERENCES_RELATION = NO 752 + 753 +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 754 +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 755 +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 756 +# link to the source code. 757 +# Otherwise they will link to the documentation. 758 + 759 +REFERENCES_LINK_SOURCE = YES 760 + 761 +# If the USE_HTAGS tag is set to YES then the references to source code 762 +# will point to the HTML generated by the htags(1) tool instead of doxygen 763 +# built-in source browser. The htags tool is part of GNU's global source 764 +# tagging system (see http://www.gnu.org/software/global/global.html). You 765 +# will need version 4.8.6 or higher. 766 + 767 +USE_HTAGS = NO 768 + 769 +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 770 +# will generate a verbatim copy of the header file for each class for 771 +# which an include is specified. Set to NO to disable this. 772 + 773 +VERBATIM_HEADERS = YES 774 + 775 +#--------------------------------------------------------------------------- 776 +# configuration options related to the alphabetical class index 777 +#--------------------------------------------------------------------------- 778 + 779 +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 780 +# of all compounds will be generated. Enable this if the project 781 +# contains a lot of classes, structs, unions or interfaces. 782 + 783 +ALPHABETICAL_INDEX = YES 784 + 785 +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 786 +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 787 +# in which this list will be split (can be a number in the range [1..20]) 788 + 789 +COLS_IN_ALPHA_INDEX = 5 790 + 791 +# In case all classes in a project start with a common prefix, all 792 +# classes will be put under the same header in the alphabetical index. 793 +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 794 +# should be ignored while generating the index headers. 795 + 796 +IGNORE_PREFIX = 797 + 798 +#--------------------------------------------------------------------------- 799 +# configuration options related to the HTML output 800 +#--------------------------------------------------------------------------- 801 + 802 +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 803 +# generate HTML output. 804 + 805 +GENERATE_HTML = YES 806 + 807 +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 808 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 809 +# put in front of it. If left blank `html' will be used as the default path. 810 + 811 +HTML_OUTPUT = html 812 + 813 +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 814 +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 815 +# doxygen will generate files with .html extension. 816 + 817 +HTML_FILE_EXTENSION = .html 818 + 819 +# The HTML_HEADER tag can be used to specify a personal HTML header for 820 +# each generated HTML page. If it is left blank doxygen will generate a 821 +# standard header. 822 + 823 +HTML_HEADER = 824 + 825 +# The HTML_FOOTER tag can be used to specify a personal HTML footer for 826 +# each generated HTML page. If it is left blank doxygen will generate a 827 +# standard footer. 828 + 829 +HTML_FOOTER = 830 + 831 +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 832 +# style sheet that is used by each HTML page. It can be used to 833 +# fine-tune the look of the HTML output. If the tag is left blank doxygen 834 +# will generate a default style sheet. Note that doxygen will try to copy 835 +# the style sheet file to the HTML output directory, so don't put your own 836 +# stylesheet in the HTML output directory as well, or it will be erased! 837 + 838 +HTML_STYLESHEET = 839 + 840 +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. 841 +# Doxygen will adjust the colors in the stylesheet and background images 842 +# according to this color. Hue is specified as an angle on a colorwheel, 843 +# see http://en.wikipedia.org/wiki/Hue for more information. 844 +# For instance the value 0 represents red, 60 is yellow, 120 is green, 845 +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. 846 +# The allowed range is 0 to 359. 847 + 848 +HTML_COLORSTYLE_HUE = 220 849 + 850 +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of 851 +# the colors in the HTML output. For a value of 0 the output will use 852 +# grayscales only. A value of 255 will produce the most vivid colors. 853 + 854 +HTML_COLORSTYLE_SAT = 100 855 + 856 +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to 857 +# the luminance component of the colors in the HTML output. Values below 858 +# 100 gradually make the output lighter, whereas values above 100 make 859 +# the output darker. The value divided by 100 is the actual gamma applied, 860 +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, 861 +# and 100 does not change the gamma. 862 + 863 +HTML_COLORSTYLE_GAMMA = 80 864 + 865 +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML 866 +# page will contain the date and time when the page was generated. Setting 867 +# this to NO can help when comparing the output of multiple runs. 868 + 869 +HTML_TIMESTAMP = YES 870 + 871 +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 872 +# files or namespaces will be aligned in HTML using tables. If set to 873 +# NO a bullet list will be used. 874 + 875 +HTML_ALIGN_MEMBERS = YES 876 + 877 +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 878 +# documentation will contain sections that can be hidden and shown after the 879 +# page has loaded. For this to work a browser that supports 880 +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 881 +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). 882 + 883 +HTML_DYNAMIC_SECTIONS = NO 884 + 885 +# If the GENERATE_DOCSET tag is set to YES, additional index files 886 +# will be generated that can be used as input for Apple's Xcode 3 887 +# integrated development environment, introduced with OSX 10.5 (Leopard). 888 +# To create a documentation set, doxygen will generate a Makefile in the 889 +# HTML output directory. Running make will produce the docset in that 890 +# directory and running "make install" will install the docset in 891 +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 892 +# it at startup. 893 +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html 894 +# for more information. 895 + 896 +GENERATE_DOCSET = NO 897 + 898 +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 899 +# feed. A documentation feed provides an umbrella under which multiple 900 +# documentation sets from a single provider (such as a company or product suite) 901 +# can be grouped. 902 + 903 +DOCSET_FEEDNAME = "Doxygen generated docs" 904 + 905 +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 906 +# should uniquely identify the documentation set bundle. This should be a 907 +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 908 +# will append .docset to the name. 909 + 910 +DOCSET_BUNDLE_ID = org.doxygen.Project 911 + 912 +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify 913 +# the documentation publisher. This should be a reverse domain-name style 914 +# string, e.g. com.mycompany.MyDocSet.documentation. 915 + 916 +DOCSET_PUBLISHER_ID = org.doxygen.Publisher 917 + 918 +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. 919 + 920 +DOCSET_PUBLISHER_NAME = Publisher 921 + 922 +# If the GENERATE_HTMLHELP tag is set to YES, additional index files 923 +# will be generated that can be used as input for tools like the 924 +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 925 +# of the generated HTML documentation. 926 + 927 +GENERATE_HTMLHELP = NO 928 + 929 +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 930 +# be used to specify the file name of the resulting .chm file. You 931 +# can add a path in front of the file if the result should not be 932 +# written to the html output directory. 933 + 934 +CHM_FILE = 935 + 936 +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 937 +# be used to specify the location (absolute path including file name) of 938 +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 939 +# the HTML help compiler on the generated index.hhp. 940 + 941 +HHC_LOCATION = 942 + 943 +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 944 +# controls if a separate .chi index file is generated (YES) or that 945 +# it should be included in the master .chm file (NO). 946 + 947 +GENERATE_CHI = NO 948 + 949 +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 950 +# is used to encode HtmlHelp index (hhk), content (hhc) and project file 951 +# content. 952 + 953 +CHM_INDEX_ENCODING = 954 + 955 +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 956 +# controls whether a binary table of contents is generated (YES) or a 957 +# normal table of contents (NO) in the .chm file. 958 + 959 +BINARY_TOC = NO 960 + 961 +# The TOC_EXPAND flag can be set to YES to add extra items for group members 962 +# to the contents of the HTML help documentation and to the tree view. 963 + 964 +TOC_EXPAND = NO 965 + 966 +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and 967 +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated 968 +# that can be used as input for Qt's qhelpgenerator to generate a 969 +# Qt Compressed Help (.qch) of the generated HTML documentation. 970 + 971 +GENERATE_QHP = NO 972 + 973 +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can 974 +# be used to specify the file name of the resulting .qch file. 975 +# The path specified is relative to the HTML output folder. 976 + 977 +QCH_FILE = 978 + 979 +# The QHP_NAMESPACE tag specifies the namespace to use when generating 980 +# Qt Help Project output. For more information please see 981 +# http://doc.trolltech.com/qthelpproject.html#namespace 982 + 983 +QHP_NAMESPACE = org.doxygen.Project 984 + 985 +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 986 +# Qt Help Project output. For more information please see 987 +# http://doc.trolltech.com/qthelpproject.html#virtual-folders 988 + 989 +QHP_VIRTUAL_FOLDER = doc 990 + 991 +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to 992 +# add. For more information please see 993 +# http://doc.trolltech.com/qthelpproject.html#custom-filters 994 + 995 +QHP_CUST_FILTER_NAME = 996 + 997 +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the 998 +# custom filter to add. For more information please see 999 +# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> 1000 +# Qt Help Project / Custom Filters</a>. 1001 + 1002 +QHP_CUST_FILTER_ATTRS = 1003 + 1004 +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this 1005 +# project's 1006 +# filter section matches. 1007 +# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> 1008 +# Qt Help Project / Filter Attributes</a>. 1009 + 1010 +QHP_SECT_FILTER_ATTRS = 1011 + 1012 +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 1013 +# be used to specify the location of Qt's qhelpgenerator. 1014 +# If non-empty doxygen will try to run qhelpgenerator on the generated 1015 +# .qhp file. 1016 + 1017 +QHG_LOCATION = 1018 + 1019 +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files 1020 +# will be generated, which together with the HTML files, form an Eclipse help 1021 +# plugin. To install this plugin and make it available under the help contents 1022 +# menu in Eclipse, the contents of the directory containing the HTML and XML 1023 +# files needs to be copied into the plugins directory of eclipse. The name of 1024 +# the directory within the plugins directory should be the same as 1025 +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before 1026 +# the help appears. 1027 + 1028 +GENERATE_ECLIPSEHELP = NO 1029 + 1030 +# A unique identifier for the eclipse help plugin. When installing the plugin 1031 +# the directory name containing the HTML and XML files should also have 1032 +# this name. 1033 + 1034 +ECLIPSE_DOC_ID = org.doxygen.Project 1035 + 1036 +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 1037 +# top of each HTML page. The value NO (the default) enables the index and 1038 +# the value YES disables it. 1039 + 1040 +DISABLE_INDEX = NO 1041 + 1042 +# This tag can be used to set the number of enum values (range [0,1..20]) 1043 +# that doxygen will group on one line in the generated HTML documentation. 1044 +# Note that a value of 0 will completely suppress the enum values from appearing in the overview section. 1045 + 1046 +ENUM_VALUES_PER_LINE = 4 1047 + 1048 +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 1049 +# structure should be generated to display hierarchical information. 1050 +# If the tag value is set to YES, a side panel will be generated 1051 +# containing a tree-like index structure (just like the one that 1052 +# is generated for HTML Help). For this to work a browser that supports 1053 +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). 1054 +# Windows users are probably better off using the HTML help feature. 1055 + 1056 +GENERATE_TREEVIEW = NO 1057 + 1058 +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, 1059 +# and Class Hierarchy pages using a tree view instead of an ordered list. 1060 + 1061 +USE_INLINE_TREES = NO 1062 + 1063 +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 1064 +# used to set the initial width (in pixels) of the frame in which the tree 1065 +# is shown. 1066 + 1067 +TREEVIEW_WIDTH = 250 1068 + 1069 +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open 1070 +# links to external symbols imported via tag files in a separate window. 1071 + 1072 +EXT_LINKS_IN_WINDOW = NO 1073 + 1074 +# Use this tag to change the font size of Latex formulas included 1075 +# as images in the HTML documentation. The default is 10. Note that 1076 +# when you change the font size after a successful doxygen run you need 1077 +# to manually remove any form_*.png images from the HTML output directory 1078 +# to force them to be regenerated. 1079 + 1080 +FORMULA_FONTSIZE = 10 1081 + 1082 +# Use the FORMULA_TRANPARENT tag to determine whether or not the images 1083 +# generated for formulas are transparent PNGs. Transparent PNGs are 1084 +# not supported properly for IE 6.0, but are supported on all modern browsers. 1085 +# Note that when changing this option you need to delete any form_*.png files 1086 +# in the HTML output before the changes have effect. 1087 + 1088 +FORMULA_TRANSPARENT = YES 1089 + 1090 +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax 1091 +# (see http://www.mathjax.org) which uses client side Javascript for the 1092 +# rendering instead of using prerendered bitmaps. Use this if you do not 1093 +# have LaTeX installed or if you want to formulas look prettier in the HTML 1094 +# output. When enabled you also need to install MathJax separately and 1095 +# configure the path to it using the MATHJAX_RELPATH option. 1096 + 1097 +USE_MATHJAX = NO 1098 + 1099 +# When MathJax is enabled you need to specify the location relative to the 1100 +# HTML output directory using the MATHJAX_RELPATH option. The destination 1101 +# directory should contain the MathJax.js script. For instance, if the mathjax 1102 +# directory is located at the same level as the HTML output directory, then 1103 +# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing 1104 +# MathJax, but it is strongly recommended to install a local copy of MathJax 1105 +# before deployment. 1106 + 1107 +MATHJAX_RELPATH = http://www.mathjax.org/mathjax 1108 + 1109 +# When the SEARCHENGINE tag is enabled doxygen will generate a search box 1110 +# for the HTML output. The underlying search engine uses javascript 1111 +# and DHTML and should work on any modern browser. Note that when using 1112 +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets 1113 +# (GENERATE_DOCSET) there is already a search function so this one should 1114 +# typically be disabled. For large projects the javascript based search engine 1115 +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. 1116 + 1117 +SEARCHENGINE = YES 1118 + 1119 +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be 1120 +# implemented using a PHP enabled web server instead of at the web client 1121 +# using Javascript. Doxygen will generate the search PHP script and index 1122 +# file to put on the web server. The advantage of the server 1123 +# based approach is that it scales better to large projects and allows 1124 +# full text search. The disadvantages are that it is more difficult to setup 1125 +# and does not have live searching capabilities. 1126 + 1127 +SERVER_BASED_SEARCH = NO 1128 + 1129 +#--------------------------------------------------------------------------- 1130 +# configuration options related to the LaTeX output 1131 +#--------------------------------------------------------------------------- 1132 + 1133 +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 1134 +# generate Latex output. 1135 + 1136 +GENERATE_LATEX = YES 1137 + 1138 +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 1139 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 1140 +# put in front of it. If left blank `latex' will be used as the default path. 1141 + 1142 +LATEX_OUTPUT = latex 1143 + 1144 +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 1145 +# invoked. If left blank `latex' will be used as the default command name. 1146 +# Note that when enabling USE_PDFLATEX this option is only used for 1147 +# generating bitmaps for formulas in the HTML output, but not in the 1148 +# Makefile that is written to the output directory. 1149 + 1150 +LATEX_CMD_NAME = latex 1151 + 1152 +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 1153 +# generate index for LaTeX. If left blank `makeindex' will be used as the 1154 +# default command name. 1155 + 1156 +MAKEINDEX_CMD_NAME = makeindex 1157 + 1158 +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 1159 +# LaTeX documents. This may be useful for small projects and may help to 1160 +# save some trees in general. 1161 + 1162 +COMPACT_LATEX = NO 1163 + 1164 +# The PAPER_TYPE tag can be used to set the paper type that is used 1165 +# by the printer. Possible values are: a4, letter, legal and 1166 +# executive. If left blank a4wide will be used. 1167 + 1168 +PAPER_TYPE = a4 1169 + 1170 +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 1171 +# packages that should be included in the LaTeX output. 1172 + 1173 +EXTRA_PACKAGES = 1174 + 1175 +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 1176 +# the generated latex document. The header should contain everything until 1177 +# the first chapter. If it is left blank doxygen will generate a 1178 +# standard header. Notice: only use this tag if you know what you are doing! 1179 + 1180 +LATEX_HEADER = 1181 + 1182 +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 1183 +# is prepared for conversion to pdf (using ps2pdf). The pdf file will 1184 +# contain links (just like the HTML output) instead of page references 1185 +# This makes the output suitable for online browsing using a pdf viewer. 1186 + 1187 +PDF_HYPERLINKS = YES 1188 + 1189 +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 1190 +# plain latex in the generated Makefile. Set this option to YES to get a 1191 +# higher quality PDF documentation. 1192 + 1193 +USE_PDFLATEX = YES 1194 + 1195 +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 1196 +# command to the generated LaTeX files. This will instruct LaTeX to keep 1197 +# running if errors occur, instead of asking the user for help. 1198 +# This option is also used when generating formulas in HTML. 1199 + 1200 +LATEX_BATCHMODE = NO 1201 + 1202 +# If LATEX_HIDE_INDICES is set to YES then doxygen will not 1203 +# include the index chapters (such as File Index, Compound Index, etc.) 1204 +# in the output. 1205 + 1206 +LATEX_HIDE_INDICES = NO 1207 + 1208 +# If LATEX_SOURCE_CODE is set to YES then doxygen will include 1209 +# source code with syntax highlighting in the LaTeX output. 1210 +# Note that which sources are shown also depends on other settings 1211 +# such as SOURCE_BROWSER. 1212 + 1213 +LATEX_SOURCE_CODE = NO 1214 + 1215 +#--------------------------------------------------------------------------- 1216 +# configuration options related to the RTF output 1217 +#--------------------------------------------------------------------------- 1218 + 1219 +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 1220 +# The RTF output is optimized for Word 97 and may not look very pretty with 1221 +# other RTF readers or editors. 1222 + 1223 +GENERATE_RTF = NO 1224 + 1225 +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 1226 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 1227 +# put in front of it. If left blank `rtf' will be used as the default path. 1228 + 1229 +RTF_OUTPUT = rtf 1230 + 1231 +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 1232 +# RTF documents. This may be useful for small projects and may help to 1233 +# save some trees in general. 1234 + 1235 +COMPACT_RTF = NO 1236 + 1237 +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 1238 +# will contain hyperlink fields. The RTF file will 1239 +# contain links (just like the HTML output) instead of page references. 1240 +# This makes the output suitable for online browsing using WORD or other 1241 +# programs which support those fields. 1242 +# Note: wordpad (write) and others do not support links. 1243 + 1244 +RTF_HYPERLINKS = NO 1245 + 1246 +# Load stylesheet definitions from file. Syntax is similar to doxygen's 1247 +# config file, i.e. a series of assignments. You only have to provide 1248 +# replacements, missing definitions are set to their default value. 1249 + 1250 +RTF_STYLESHEET_FILE = 1251 + 1252 +# Set optional variables used in the generation of an rtf document. 1253 +# Syntax is similar to doxygen's config file. 1254 + 1255 +RTF_EXTENSIONS_FILE = 1256 + 1257 +#--------------------------------------------------------------------------- 1258 +# configuration options related to the man page output 1259 +#--------------------------------------------------------------------------- 1260 + 1261 +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 1262 +# generate man pages 1263 + 1264 +GENERATE_MAN = NO 1265 + 1266 +# The MAN_OUTPUT tag is used to specify where the man pages will be put. 1267 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 1268 +# put in front of it. If left blank `man' will be used as the default path. 1269 + 1270 +MAN_OUTPUT = man 1271 + 1272 +# The MAN_EXTENSION tag determines the extension that is added to 1273 +# the generated man pages (default is the subroutine's section .3) 1274 + 1275 +MAN_EXTENSION = .3 1276 + 1277 +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 1278 +# then it will generate one additional man file for each entity 1279 +# documented in the real man page(s). These additional files 1280 +# only source the real man page, but without them the man command 1281 +# would be unable to find the correct page. The default is NO. 1282 + 1283 +MAN_LINKS = NO 1284 + 1285 +#--------------------------------------------------------------------------- 1286 +# configuration options related to the XML output 1287 +#--------------------------------------------------------------------------- 1288 + 1289 +# If the GENERATE_XML tag is set to YES Doxygen will 1290 +# generate an XML file that captures the structure of 1291 +# the code including all documentation. 1292 + 1293 +GENERATE_XML = NO 1294 + 1295 +# The XML_OUTPUT tag is used to specify where the XML pages will be put. 1296 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 1297 +# put in front of it. If left blank `xml' will be used as the default path. 1298 + 1299 +XML_OUTPUT = xml 1300 + 1301 +# The XML_SCHEMA tag can be used to specify an XML schema, 1302 +# which can be used by a validating XML parser to check the 1303 +# syntax of the XML files. 1304 + 1305 +XML_SCHEMA = 1306 + 1307 +# The XML_DTD tag can be used to specify an XML DTD, 1308 +# which can be used by a validating XML parser to check the 1309 +# syntax of the XML files. 1310 + 1311 +XML_DTD = 1312 + 1313 +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 1314 +# dump the program listings (including syntax highlighting 1315 +# and cross-referencing information) to the XML output. Note that 1316 +# enabling this will significantly increase the size of the XML output. 1317 + 1318 +XML_PROGRAMLISTING = YES 1319 + 1320 +#--------------------------------------------------------------------------- 1321 +# configuration options for the AutoGen Definitions output 1322 +#--------------------------------------------------------------------------- 1323 + 1324 +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 1325 +# generate an AutoGen Definitions (see autogen.sf.net) file 1326 +# that captures the structure of the code including all 1327 +# documentation. Note that this feature is still experimental 1328 +# and incomplete at the moment. 1329 + 1330 +GENERATE_AUTOGEN_DEF = NO 1331 + 1332 +#--------------------------------------------------------------------------- 1333 +# configuration options related to the Perl module output 1334 +#--------------------------------------------------------------------------- 1335 + 1336 +# If the GENERATE_PERLMOD tag is set to YES Doxygen will 1337 +# generate a Perl module file that captures the structure of 1338 +# the code including all documentation. Note that this 1339 +# feature is still experimental and incomplete at the 1340 +# moment. 1341 + 1342 +GENERATE_PERLMOD = NO 1343 + 1344 +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 1345 +# the necessary Makefile rules, Perl scripts and LaTeX code to be able 1346 +# to generate PDF and DVI output from the Perl module output. 1347 + 1348 +PERLMOD_LATEX = NO 1349 + 1350 +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 1351 +# nicely formatted so it can be parsed by a human reader. 1352 +# This is useful 1353 +# if you want to understand what is going on. 1354 +# On the other hand, if this 1355 +# tag is set to NO the size of the Perl module output will be much smaller 1356 +# and Perl will parse it just the same. 1357 + 1358 +PERLMOD_PRETTY = YES 1359 + 1360 +# The names of the make variables in the generated doxyrules.make file 1361 +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 1362 +# This is useful so different doxyrules.make files included by the same 1363 +# Makefile don't overwrite each other's variables. 1364 + 1365 +PERLMOD_MAKEVAR_PREFIX = 1366 + 1367 +#--------------------------------------------------------------------------- 1368 +# Configuration options related to the preprocessor 1369 +#--------------------------------------------------------------------------- 1370 + 1371 +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 1372 +# evaluate all C-preprocessor directives found in the sources and include 1373 +# files. 1374 + 1375 +ENABLE_PREPROCESSING = YES 1376 + 1377 +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 1378 +# names in the source code. If set to NO (the default) only conditional 1379 +# compilation will be performed. Macro expansion can be done in a controlled 1380 +# way by setting EXPAND_ONLY_PREDEF to YES. 1381 + 1382 +MACRO_EXPANSION = NO 1383 + 1384 +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 1385 +# then the macro expansion is limited to the macros specified with the 1386 +# PREDEFINED and EXPAND_AS_DEFINED tags. 1387 + 1388 +EXPAND_ONLY_PREDEF = NO 1389 + 1390 +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 1391 +# in the INCLUDE_PATH (see below) will be search if a #include is found. 1392 + 1393 +SEARCH_INCLUDES = YES 1394 + 1395 +# The INCLUDE_PATH tag can be used to specify one or more directories that 1396 +# contain include files that are not input files but should be processed by 1397 +# the preprocessor. 1398 + 1399 +INCLUDE_PATH = 1400 + 1401 +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 1402 +# patterns (like *.h and *.hpp) to filter out the header-files in the 1403 +# directories. If left blank, the patterns specified with FILE_PATTERNS will 1404 +# be used. 1405 + 1406 +INCLUDE_FILE_PATTERNS = 1407 + 1408 +# The PREDEFINED tag can be used to specify one or more macro names that 1409 +# are defined before the preprocessor is started (similar to the -D option of 1410 +# gcc). The argument of the tag is a list of macros of the form: name 1411 +# or name=definition (no spaces). If the definition and the = are 1412 +# omitted =1 is assumed. To prevent a macro definition from being 1413 +# undefined via #undef or recursively expanded use the := operator 1414 +# instead of the = operator. 1415 + 1416 +PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS 1417 + 1418 +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 1419 +# this tag can be used to specify a list of macro names that should be expanded. 1420 +# The macro definition that is found in the sources will be used. 1421 +# Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code. 1422 + 1423 +EXPAND_AS_DEFINED = 1424 + 1425 +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 1426 +# doxygen's preprocessor will remove all references to function-like macros 1427 +# that are alone on a line, have an all uppercase name, and do not end with a 1428 +# semicolon, because these will confuse the parser if not removed. 1429 + 1430 +SKIP_FUNCTION_MACROS = YES 1431 + 1432 +#--------------------------------------------------------------------------- 1433 +# Configuration::additions related to external references 1434 +#--------------------------------------------------------------------------- 1435 + 1436 +# The TAGFILES option can be used to specify one or more tagfiles. 1437 +# Optionally an initial location of the external documentation 1438 +# can be added for each tagfile. The format of a tag file without 1439 +# this location is as follows: 1440 +# 1441 +# TAGFILES = file1 file2 ... 1442 +# Adding location for the tag files is done as follows: 1443 +# 1444 +# TAGFILES = file1=loc1 "file2 = loc2" ... 1445 +# where "loc1" and "loc2" can be relative or absolute paths or 1446 +# URLs. If a location is present for each tag, the installdox tool 1447 +# does not have to be run to correct the links. 1448 +# Note that each tag file must have a unique name 1449 +# (where the name does NOT include the path) 1450 +# If a tag file is not located in the directory in which doxygen 1451 +# is run, you must also specify the path to the tagfile here. 1452 + 1453 +TAGFILES = 1454 + 1455 +# When a file name is specified after GENERATE_TAGFILE, doxygen will create 1456 +# a tag file that is based on the input files it reads. 1457 + 1458 +GENERATE_TAGFILE = 1459 + 1460 +# If the ALLEXTERNALS tag is set to YES all external classes will be listed 1461 +# in the class index. If set to NO only the inherited external classes 1462 +# will be listed. 1463 + 1464 +ALLEXTERNALS = NO 1465 + 1466 +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 1467 +# in the modules index. If set to NO, only the current project's groups will 1468 +# be listed. 1469 + 1470 +EXTERNAL_GROUPS = YES 1471 + 1472 +# The PERL_PATH should be the absolute path and name of the perl script 1473 +# interpreter (i.e. the result of `which perl'). 1474 + 1475 +PERL_PATH = /usr/bin/perl 1476 + 1477 +#--------------------------------------------------------------------------- 1478 +# Configuration options related to the dot tool 1479 +#--------------------------------------------------------------------------- 1480 + 1481 +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 1482 +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 1483 +# or super classes. Setting the tag to NO turns the diagrams off. Note that 1484 +# this option also works with HAVE_DOT disabled, but it is recommended to 1485 +# install and use dot, since it yields more powerful graphs. 1486 + 1487 +CLASS_DIAGRAMS = YES 1488 + 1489 +# You can define message sequence charts within doxygen comments using the \msc 1490 +# command. Doxygen will then run the mscgen tool (see 1491 +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 1492 +# documentation. The MSCGEN_PATH tag allows you to specify the directory where 1493 +# the mscgen tool resides. If left empty the tool is assumed to be found in the 1494 +# default search path. 1495 + 1496 +MSCGEN_PATH = 1497 + 1498 +# If set to YES, the inheritance and collaboration graphs will hide 1499 +# inheritance and usage relations if the target is undocumented 1500 +# or is not a class. 1501 + 1502 +HIDE_UNDOC_RELATIONS = YES 1503 + 1504 +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 1505 +# available from the path. This tool is part of Graphviz, a graph visualization 1506 +# toolkit from AT&T and Lucent Bell Labs. The other options in this section 1507 +# have no effect if this option is set to NO (the default) 1508 + 1509 +HAVE_DOT = YES 1510 + 1511 +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is 1512 +# allowed to run in parallel. When set to 0 (the default) doxygen will 1513 +# base this on the number of processors available in the system. You can set it 1514 +# explicitly to a value larger than 0 to get control over the balance 1515 +# between CPU load and processing speed. 1516 + 1517 +DOT_NUM_THREADS = 0 1518 + 1519 +# By default doxygen will write a font called Helvetica to the output 1520 +# directory and reference it in all dot files that doxygen generates. 1521 +# When you want a differently looking font you can specify the font name 1522 +# using DOT_FONTNAME. You need to make sure dot is able to find the font, 1523 +# which can be done by putting it in a standard location or by setting the 1524 +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory 1525 +# containing the font. 1526 + 1527 +DOT_FONTNAME = Helvetica 1528 + 1529 +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. 1530 +# The default size is 10pt. 1531 + 1532 +DOT_FONTSIZE = 10 1533 + 1534 +# By default doxygen will tell dot to use the output directory to look for the 1535 +# FreeSans.ttf font (which doxygen will put there itself). If you specify a 1536 +# different font using DOT_FONTNAME you can set the path where dot 1537 +# can find it using this tag. 1538 + 1539 +DOT_FONTPATH = 1540 + 1541 +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 1542 +# will generate a graph for each documented class showing the direct and 1543 +# indirect inheritance relations. Setting this tag to YES will force the 1544 +# the CLASS_DIAGRAMS tag to NO. 1545 + 1546 +CLASS_GRAPH = YES 1547 + 1548 +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 1549 +# will generate a graph for each documented class showing the direct and 1550 +# indirect implementation dependencies (inheritance, containment, and 1551 +# class references variables) of the class with other documented classes. 1552 + 1553 +COLLABORATION_GRAPH = YES 1554 + 1555 +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 1556 +# will generate a graph for groups, showing the direct groups dependencies 1557 + 1558 +GROUP_GRAPHS = YES 1559 + 1560 +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 1561 +# collaboration diagrams in a style similar to the OMG's Unified Modeling 1562 +# Language. 1563 + 1564 +UML_LOOK = NO 1565 + 1566 +# If set to YES, the inheritance and collaboration graphs will show the 1567 +# relations between templates and their instances. 1568 + 1569 +TEMPLATE_RELATIONS = NO 1570 + 1571 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 1572 +# tags are set to YES then doxygen will generate a graph for each documented 1573 +# file showing the direct and indirect include dependencies of the file with 1574 +# other documented files. 1575 + 1576 +INCLUDE_GRAPH = YES 1577 + 1578 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 1579 +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 1580 +# documented header file showing the documented files that directly or 1581 +# indirectly include this file. 1582 + 1583 +INCLUDED_BY_GRAPH = YES 1584 + 1585 +# If the CALL_GRAPH and HAVE_DOT options are set to YES then 1586 +# doxygen will generate a call dependency graph for every global function 1587 +# or class method. Note that enabling this option will significantly increase 1588 +# the time of a run. So in most cases it will be better to enable call graphs 1589 +# for selected functions only using the \callgraph command. 1590 + 1591 +CALL_GRAPH = NO 1592 + 1593 +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 1594 +# doxygen will generate a caller dependency graph for every global function 1595 +# or class method. Note that enabling this option will significantly increase 1596 +# the time of a run. So in most cases it will be better to enable caller 1597 +# graphs for selected functions only using the \callergraph command. 1598 + 1599 +CALLER_GRAPH = NO 1600 + 1601 +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 1602 +# will generate a graphical hierarchy of all classes instead of a textual one. 1603 + 1604 +GRAPHICAL_HIERARCHY = YES 1605 + 1606 +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 1607 +# then doxygen will show the dependencies a directory has on other directories 1608 +# in a graphical way. The dependency relations are determined by the #include 1609 +# relations between the files in the directories. 1610 + 1611 +DIRECTORY_GRAPH = YES 1612 + 1613 +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 1614 +# generated by dot. Possible values are png, svg, gif or svg. 1615 +# If left blank png will be used. 1616 + 1617 +DOT_IMAGE_FORMAT = png 1618 + 1619 +# The tag DOT_PATH can be used to specify the path where the dot tool can be 1620 +# found. If left blank, it is assumed the dot tool can be found in the path. 1621 + 1622 +DOT_PATH = 1623 + 1624 +# The DOTFILE_DIRS tag can be used to specify one or more directories that 1625 +# contain dot files that are included in the documentation (see the 1626 +# \dotfile command). 1627 + 1628 +DOTFILE_DIRS = 1629 + 1630 +# The MSCFILE_DIRS tag can be used to specify one or more directories that 1631 +# contain msc files that are included in the documentation (see the 1632 +# \mscfile command). 1633 + 1634 +MSCFILE_DIRS = 1635 + 1636 +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 1637 +# nodes that will be shown in the graph. If the number of nodes in a graph 1638 +# becomes larger than this value, doxygen will truncate the graph, which is 1639 +# visualized by representing a node as a red box. Note that doxygen if the 1640 +# number of direct children of the root node in a graph is already larger than 1641 +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 1642 +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. 1643 + 1644 +DOT_GRAPH_MAX_NODES = 50 1645 + 1646 +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 1647 +# graphs generated by dot. A depth value of 3 means that only nodes reachable 1648 +# from the root by following a path via at most 3 edges will be shown. Nodes 1649 +# that lay further from the root node will be omitted. Note that setting this 1650 +# option to 1 or 2 may greatly reduce the computation time needed for large 1651 +# code bases. Also note that the size of a graph can be further restricted by 1652 +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. 1653 + 1654 +MAX_DOT_GRAPH_DEPTH = 0 1655 + 1656 +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 1657 +# background. This is disabled by default, because dot on Windows does not 1658 +# seem to support this out of the box. Warning: Depending on the platform used, 1659 +# enabling this option may lead to badly anti-aliased labels on the edges of 1660 +# a graph (i.e. they become hard to read). 1661 + 1662 +DOT_TRANSPARENT = NO 1663 + 1664 +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 1665 +# files in one run (i.e. multiple -o and -T options on the command line). This 1666 +# makes dot run faster, but since only newer versions of dot (>1.8.10) 1667 +# support this, this feature is disabled by default. 1668 + 1669 +DOT_MULTI_TARGETS = YES 1670 + 1671 +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 1672 +# generate a legend page explaining the meaning of the various boxes and 1673 +# arrows in the dot generated graphs. 1674 + 1675 +GENERATE_LEGEND = YES 1676 + 1677 +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 1678 +# remove the intermediate dot files that are used to generate 1679 +# the various graphs. 1680 + 1681 +DOT_CLEANUP = YES
Added INSTALL.
1 +Basic Installation 2 +================== 3 + 4 + These are generic installation instructions. 5 + 6 + The `configure' shell script attempts to guess correct values for 7 +various system-dependent variables used during compilation. It uses 8 +those values to create a `Makefile' in each directory of the package. 9 +It may also create one or more `.h' files containing system-dependent 10 +definitions. Finally, it creates a shell script `config.status' that 11 +you can run in the future to recreate the current configuration, a file 12 +`config.cache' that saves the results of its tests to speed up 13 +reconfiguring, and a file `config.log' containing compiler output 14 +(useful mainly for debugging `configure'). 15 + 16 + If you need to do unusual things to compile the package, please try 17 +to figure out how `configure' could check whether to do them, and mail 18 +diffs or instructions to the address given in the `README' so they can 19 +be considered for the next release. If at some point `config.cache' 20 +contains results you don't want to keep, you may remove or edit it. 21 + 22 + The file `configure.in' is used to create `configure' by a program 23 +called `autoconf'. You only need `configure.in' if you want to change 24 +it or regenerate `configure' using a newer version of `autoconf'. 25 + 26 +The simplest way to compile this package is: 27 + 28 + 1. `cd' to the directory containing the package's source code and type 29 + `./configure' to configure the package for your system. If you're 30 + using `csh' on an old version of System V, you might need to type 31 + `sh ./configure' instead to prevent `csh' from trying to execute 32 + `configure' itself. 33 + 34 + Running `configure' takes awhile. While running, it prints some 35 + messages telling which features it is checking for. 36 + 37 + 2. Type `make' to compile the package. 38 + 39 + 3. Optionally, type `make check' to run any self-tests that come with 40 + the package. 41 + 42 + 4. Type `make install' to install the programs and any data files and 43 + documentation. 44 + 45 + 5. You can remove the program binaries and object files from the 46 + source code directory by typing `make clean'. To also remove the 47 + files that `configure' created (so you can compile the package for 48 + a different kind of computer), type `make distclean'. There is 49 + also a `make maintainer-clean' target, but that is intended mainly 50 + for the package's developers. If you use it, you may have to get 51 + all sorts of other programs in order to regenerate files that came 52 + with the distribution. 53 + 54 +Compilers and Options 55 +===================== 56 + 57 + Some systems require unusual options for compilation or linking that 58 +the `configure' script does not know about. You can give `configure' 59 +initial values for variables by setting them in the environment. Using 60 +a Bourne-compatible shell, you can do that on the command line like 61 +this: 62 + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure 63 + 64 +Or on systems that have the `env' program, you can do it like this: 65 + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure 66 + 67 +Compiling For Multiple Architectures 68 +==================================== 69 + 70 + You can compile the package for more than one kind of computer at the 71 +same time, by placing the object files for each architecture in their 72 +own directory. To do this, you must use a version of `make' that 73 +supports the `VPATH' variable, such as GNU `make'. `cd' to the 74 +directory where you want the object files and executables to go and run 75 +the `configure' script. `configure' automatically checks for the 76 +source code in the directory that `configure' is in and in `..'. 77 + 78 + If you have to use a `make' that does not supports the `VPATH' 79 +variable, you have to compile the package for one architecture at a time 80 +in the source code directory. After you have installed the package for 81 +one architecture, use `make distclean' before reconfiguring for another 82 +architecture. 83 + 84 +Installation Names 85 +================== 86 + 87 + By default, `make install' will install the package's files in 88 +`/usr/local/bin', `/usr/local/man', etc. You can specify an 89 +installation prefix other than `/usr/local' by giving `configure' the 90 +option `--prefix=PATH'. 91 + 92 + You can specify separate installation prefixes for 93 +architecture-specific files and architecture-independent files. If you 94 +give `configure' the option `--exec-prefix=PATH', the package will use 95 +PATH as the prefix for installing programs and libraries. 96 +Documentation and other data files will still use the regular prefix. 97 + 98 + In addition, if you use an unusual directory layout you can give 99 +options like `--bindir=PATH' to specify different values for particular 100 +kinds of files. Run `configure --help' for a list of the directories 101 +you can set and what kinds of files go in them. 102 + 103 + If the package supports it, you can cause programs to be installed 104 +with an extra prefix or suffix on their names by giving `configure' the 105 +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 106 + 107 +Optional Features 108 +================= 109 + 110 + Some packages pay attention to `--enable-FEATURE' options to 111 +`configure', where FEATURE indicates an optional part of the package. 112 +They may also pay attention to `--with-PACKAGE' options, where PACKAGE 113 +is something like `gnu-as' or `x' (for the X Window System). The 114 +`README' should mention any `--enable-' and `--with-' options that the 115 +package recognizes. 116 + 117 + For packages that use the X Window System, `configure' can usually 118 +find the X include and library files automatically, but if it doesn't, 119 +you can use the `configure' options `--x-includes=DIR' and 120 +`--x-libraries=DIR' to specify their locations. 121 + 122 +Specifying the System Type 123 +========================== 124 + 125 + There may be some features `configure' can not figure out 126 +automatically, but needs to determine by the type of host the package 127 +will run on. Usually `configure' can figure that out, but if it prints 128 +a message saying it can not guess the host type, give it the 129 +`--host=TYPE' option. TYPE can either be a short name for the system 130 +type, such as `sun4', or a canonical name with three fields: 131 + CPU-COMPANY-SYSTEM 132 + 133 +See the file `config.sub' for the possible values of each field. If 134 +`config.sub' isn't included in this package, then this package doesn't 135 +need to know the host type. 136 + 137 + If you are building compiler tools for cross-compiling, you can also 138 +use the `--target=TYPE' option to select the type of system they will 139 +produce code for and the `--build=TYPE' option to select the type of 140 +system on which you are compiling the package. 141 + 142 +Sharing Defaults 143 +================ 144 + 145 + If you want to set default values for `configure' scripts to share, 146 +you can create a site shell script called `config.site' that gives 147 +default values for variables like `CC', `cache_file', and `prefix'. 148 +`configure' looks for `PREFIX/share/config.site' if it exists, then 149 +`PREFIX/etc/config.site' if it exists. Or, you can set the 150 +`CONFIG_SITE' environment variable to the location of the site script. 151 +A warning: not all `configure' scripts look for a site script. 152 + 153 +Operation Controls 154 +================== 155 + 156 + `configure' recognizes the following options to control how it 157 +operates. 158 + 159 +`--cache-file=FILE' 160 + Use and save the results of the tests in FILE instead of 161 + `./config.cache'. Set FILE to `/dev/null' to disable caching, for 162 + debugging `configure'. 163 + 164 +`--help' 165 + Print a summary of the options to `configure', and exit. 166 + 167 +`--quiet' 168 +`--silent' 169 +`-q' 170 + Do not print messages saying which checks are being made. To 171 + suppress all normal output, redirect it to `/dev/null' (any error 172 + messages will still be shown). 173 + 174 +`--srcdir=DIR' 175 + Look for the package's source code in directory DIR. Usually 176 + `configure' can determine that directory automatically. 177 + 178 +`--version' 179 + Print the version of Autoconf used to generate the `configure' 180 + script, and exit. 181 + 182 +`configure' also accepts some other, not widely useful, options. 183 +
Added Makefile.am.
1 +ACLOCAL_AMFLAGS = -I m4 2 + 3 +SUBDIRS = headers src tests examples 4 + 5 +EXTRA_DIST = makefile.vc nmake.opt mainpage.doxy 6 + 7 +AUTOMAKE_OPTIONS = dist-zip 8 + 9 +pkgconfigdir = $(libdir)/pkgconfig 10 +pkgconfig_DATA = readosm.pc 11 + 12 +coverage-init: 13 + lcov --directory src --capture --initial --output-file readosm_cov.info 14 + 15 +coverage:: 16 + lcov --rc lcov_branch_coverage=1 --directory src --output-file readosm_cov.info --capture 17 + genhtml --rc lcov_branch_coverage=1 -o covresults readosm_cov.info 18 + 19 +MOSTLYCLEANFILES = readosm_cov.info
Added Makefile.in.
1 +# Makefile.in generated by automake 1.14.1 from Makefile.am. 2 +# @configure_input@ 3 + 4 +# Copyright (C) 1994-2013 Free Software Foundation, Inc. 5 + 6 +# This Makefile.in is free software; the Free Software Foundation 7 +# gives unlimited permission to copy and/or distribute it, 8 +# with or without modifications, as long as this notice is preserved. 9 + 10 +# This program is distributed in the hope that it will be useful, 11 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 +# PARTICULAR PURPOSE. 14 + 15 +@SET_MAKE@ 16 + 17 +VPATH = @srcdir@ 18 +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 19 +am__make_running_with_option = \ 20 + case $${target_option-} in \ 21 + ?) ;; \ 22 + *) echo "am__make_running_with_option: internal error: invalid" \ 23 + "target option '$${target_option-}' specified" >&2; \ 24 + exit 1;; \ 25 + esac; \ 26 + has_opt=no; \ 27 + sane_makeflags=$$MAKEFLAGS; \ 28 + if $(am__is_gnu_make); then \ 29 + sane_makeflags=$$MFLAGS; \ 30 + else \ 31 + case $$MAKEFLAGS in \ 32 + *\\[\ \ ]*) \ 33 + bs=\\; \ 34 + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ 35 + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ 36 + esac; \ 37 + fi; \ 38 + skip_next=no; \ 39 + strip_trailopt () \ 40 + { \ 41 + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ 42 + }; \ 43 + for flg in $$sane_makeflags; do \ 44 + test $$skip_next = yes && { skip_next=no; continue; }; \ 45 + case $$flg in \ 46 + *=*|--*) continue;; \ 47 + -*I) strip_trailopt 'I'; skip_next=yes;; \ 48 + -*I?*) strip_trailopt 'I';; \ 49 + -*O) strip_trailopt 'O'; skip_next=yes;; \ 50 + -*O?*) strip_trailopt 'O';; \ 51 + -*l) strip_trailopt 'l'; skip_next=yes;; \ 52 + -*l?*) strip_trailopt 'l';; \ 53 + -[dEDm]) skip_next=yes;; \ 54 + -[JT]) skip_next=yes;; \ 55 + esac; \ 56 + case $$flg in \ 57 + *$$target_option*) has_opt=yes; break;; \ 58 + esac; \ 59 + done; \ 60 + test $$has_opt = yes 61 +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) 62 +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 63 +pkgdatadir = $(datadir)/@PACKAGE@ 64 +pkgincludedir = $(includedir)/@PACKAGE@ 65 +pkglibdir = $(libdir)/@PACKAGE@ 66 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 67 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 68 +install_sh_DATA = $(install_sh) -c -m 644 69 +install_sh_PROGRAM = $(install_sh) -c 70 +install_sh_SCRIPT = $(install_sh) -c 71 +INSTALL_HEADER = $(INSTALL_DATA) 72 +transform = $(program_transform_name) 73 +NORMAL_INSTALL = : 74 +PRE_INSTALL = : 75 +POST_INSTALL = : 76 +NORMAL_UNINSTALL = : 77 +PRE_UNINSTALL = : 78 +POST_UNINSTALL = : 79 +build_triplet = @build@ 80 +host_triplet = @host@ 81 +subdir = . 82 +DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ 83 + $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ 84 + $(top_srcdir)/configure $(am__configure_deps) \ 85 + $(srcdir)/config.h.in $(srcdir)/Doxyfile.in \ 86 + $(srcdir)/readosm.pc.in COPYING compile config.guess \ 87 + config.sub depcomp install-sh missing ltmain.sh 88 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 89 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ 90 + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 91 + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 92 + $(top_srcdir)/configure.ac 93 +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 94 + $(ACLOCAL_M4) 95 +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ 96 + configure.lineno config.status.lineno 97 +mkinstalldirs = $(install_sh) -d 98 +CONFIG_HEADER = config.h 99 +CONFIG_CLEAN_FILES = Doxyfile readosm.pc 100 +CONFIG_CLEAN_VPATH_FILES = 101 +AM_V_P = $(am__v_P_@AM_V@) 102 +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) 103 +am__v_P_0 = false 104 +am__v_P_1 = : 105 +AM_V_GEN = $(am__v_GEN_@AM_V@) 106 +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 107 +am__v_GEN_0 = @echo " GEN " $@; 108 +am__v_GEN_1 = 109 +AM_V_at = $(am__v_at_@AM_V@) 110 +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 111 +am__v_at_0 = @ 112 +am__v_at_1 = 113 +SOURCES = 114 +DIST_SOURCES = 115 +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ 116 + ctags-recursive dvi-recursive html-recursive info-recursive \ 117 + install-data-recursive install-dvi-recursive \ 118 + install-exec-recursive install-html-recursive \ 119 + install-info-recursive install-pdf-recursive \ 120 + install-ps-recursive install-recursive installcheck-recursive \ 121 + installdirs-recursive pdf-recursive ps-recursive \ 122 + tags-recursive uninstall-recursive 123 +am__can_run_installinfo = \ 124 + case $$AM_UPDATE_INFO_DIR in \ 125 + n|no|NO) false;; \ 126 + *) (install-info --version) >/dev/null 2>&1;; \ 127 + esac 128 +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 129 +am__vpath_adj = case $$p in \ 130 + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 131 + *) f=$$p;; \ 132 + esac; 133 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; 134 +am__install_max = 40 135 +am__nobase_strip_setup = \ 136 + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` 137 +am__nobase_strip = \ 138 + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" 139 +am__nobase_list = $(am__nobase_strip_setup); \ 140 + for p in $$list; do echo "$$p $$p"; done | \ 141 + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ 142 + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ 143 + if (++n[$$2] == $(am__install_max)) \ 144 + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ 145 + END { for (dir in files) print dir, files[dir] }' 146 +am__base_list = \ 147 + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ 148 + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' 149 +am__uninstall_files_from_dir = { \ 150 + test -z "$$files" \ 151 + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ 152 + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ 153 + $(am__cd) "$$dir" && rm -f $$files; }; \ 154 + } 155 +am__installdirs = "$(DESTDIR)$(pkgconfigdir)" 156 +DATA = $(pkgconfig_DATA) 157 +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ 158 + distclean-recursive maintainer-clean-recursive 159 +am__recursive_targets = \ 160 + $(RECURSIVE_TARGETS) \ 161 + $(RECURSIVE_CLEAN_TARGETS) \ 162 + $(am__extra_recursive_targets) 163 +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ 164 + cscope distdir dist dist-all distcheck 165 +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ 166 + $(LISP)config.h.in 167 +# Read a list of newline-separated strings from the standard input, 168 +# and print each of them once, without duplicates. Input order is 169 +# *not* preserved. 170 +am__uniquify_input = $(AWK) '\ 171 + BEGIN { nonempty = 0; } \ 172 + { items[$$0] = 1; nonempty = 1; } \ 173 + END { if (nonempty) { for (i in items) print i; }; } \ 174 +' 175 +# Make sure the list of sources is unique. This is necessary because, 176 +# e.g., the same source file might be shared among _SOURCES variables 177 +# for different programs/libraries. 178 +am__define_uniq_tagged_files = \ 179 + list='$(am__tagged_files)'; \ 180 + unique=`for i in $$list; do \ 181 + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 182 + done | $(am__uniquify_input)` 183 +ETAGS = etags 184 +CTAGS = ctags 185 +CSCOPE = cscope 186 +DIST_SUBDIRS = $(SUBDIRS) 187 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 188 +distdir = $(PACKAGE)-$(VERSION) 189 +top_distdir = $(distdir) 190 +am__remove_distdir = \ 191 + if test -d "$(distdir)"; then \ 192 + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ 193 + && rm -rf "$(distdir)" \ 194 + || { sleep 5 && rm -rf "$(distdir)"; }; \ 195 + else :; fi 196 +am__post_remove_distdir = $(am__remove_distdir) 197 +am__relativize = \ 198 + dir0=`pwd`; \ 199 + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ 200 + sed_rest='s,^[^/]*/*,,'; \ 201 + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ 202 + sed_butlast='s,/*[^/]*$$,,'; \ 203 + while test -n "$$dir1"; do \ 204 + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ 205 + if test "$$first" != "."; then \ 206 + if test "$$first" = ".."; then \ 207 + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ 208 + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ 209 + else \ 210 + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ 211 + if test "$$first2" = "$$first"; then \ 212 + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ 213 + else \ 214 + dir2="../$$dir2"; \ 215 + fi; \ 216 + dir0="$$dir0"/"$$first"; \ 217 + fi; \ 218 + fi; \ 219 + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ 220 + done; \ 221 + reldir="$$dir2" 222 +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip 223 +GZIP_ENV = --best 224 +DIST_TARGETS = dist-gzip dist-zip 225 +distuninstallcheck_listfiles = find . -type f -print 226 +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ 227 + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' 228 +distcleancheck_listfiles = find . -type f -print 229 +ACLOCAL = @ACLOCAL@ 230 +AMTAR = @AMTAR@ 231 +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 232 +AR = @AR@ 233 +AS = @AS@ 234 +AUTOCONF = @AUTOCONF@ 235 +AUTOHEADER = @AUTOHEADER@ 236 +AUTOMAKE = @AUTOMAKE@ 237 +AWK = @AWK@ 238 +CC = @CC@ 239 +CCDEPMODE = @CCDEPMODE@ 240 +CFLAGS = @CFLAGS@ 241 +CPP = @CPP@ 242 +CPPFLAGS = @CPPFLAGS@ 243 +CXX = @CXX@ 244 +CXXCPP = @CXXCPP@ 245 +CXXDEPMODE = @CXXDEPMODE@ 246 +CXXFLAGS = @CXXFLAGS@ 247 +CYGPATH_W = @CYGPATH_W@ 248 +DEFS = @DEFS@ 249 +DEPDIR = @DEPDIR@ 250 +DLLTOOL = @DLLTOOL@ 251 +DSYMUTIL = @DSYMUTIL@ 252 +DUMPBIN = @DUMPBIN@ 253 +ECHO_C = @ECHO_C@ 254 +ECHO_N = @ECHO_N@ 255 +ECHO_T = @ECHO_T@ 256 +EGREP = @EGREP@ 257 +EXEEXT = @EXEEXT@ 258 +FGREP = @FGREP@ 259 +GREP = @GREP@ 260 +INSTALL = @INSTALL@ 261 +INSTALL_DATA = @INSTALL_DATA@ 262 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ 263 +INSTALL_SCRIPT = @INSTALL_SCRIPT@ 264 +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 265 +LD = @LD@ 266 +LDFLAGS = @LDFLAGS@ 267 +LIBOBJS = @LIBOBJS@ 268 +LIBS = @LIBS@ 269 +LIBTOOL = @LIBTOOL@ 270 +LIPO = @LIPO@ 271 +LN_S = @LN_S@ 272 +LTLIBOBJS = @LTLIBOBJS@ 273 +MAINT = @MAINT@ 274 +MAKEINFO = @MAKEINFO@ 275 +MANIFEST_TOOL = @MANIFEST_TOOL@ 276 +MKDIR_P = @MKDIR_P@ 277 +NM = @NM@ 278 +NMEDIT = @NMEDIT@ 279 +OBJDUMP = @OBJDUMP@ 280 +OBJEXT = @OBJEXT@ 281 +OTOOL = @OTOOL@ 282 +OTOOL64 = @OTOOL64@ 283 +PACKAGE = @PACKAGE@ 284 +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 285 +PACKAGE_NAME = @PACKAGE_NAME@ 286 +PACKAGE_STRING = @PACKAGE_STRING@ 287 +PACKAGE_TARNAME = @PACKAGE_TARNAME@ 288 +PACKAGE_URL = @PACKAGE_URL@ 289 +PACKAGE_VERSION = @PACKAGE_VERSION@ 290 +PATH_SEPARATOR = @PATH_SEPARATOR@ 291 +RANLIB = @RANLIB@ 292 +SED = @SED@ 293 +SET_MAKE = @SET_MAKE@ 294 +SHELL = @SHELL@ 295 +STRIP = @STRIP@ 296 +VERSION = @VERSION@ 297 +abs_builddir = @abs_builddir@ 298 +abs_srcdir = @abs_srcdir@ 299 +abs_top_builddir = @abs_top_builddir@ 300 +abs_top_srcdir = @abs_top_srcdir@ 301 +ac_ct_AR = @ac_ct_AR@ 302 +ac_ct_CC = @ac_ct_CC@ 303 +ac_ct_CXX = @ac_ct_CXX@ 304 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 305 +am__include = @am__include@ 306 +am__leading_dot = @am__leading_dot@ 307 +am__quote = @am__quote@ 308 +am__tar = @am__tar@ 309 +am__untar = @am__untar@ 310 +bindir = @bindir@ 311 +build = @build@ 312 +build_alias = @build_alias@ 313 +build_cpu = @build_cpu@ 314 +build_os = @build_os@ 315 +build_vendor = @build_vendor@ 316 +builddir = @builddir@ 317 +datadir = @datadir@ 318 +datarootdir = @datarootdir@ 319 +docdir = @docdir@ 320 +dvidir = @dvidir@ 321 +exec_prefix = @exec_prefix@ 322 +host = @host@ 323 +host_alias = @host_alias@ 324 +host_cpu = @host_cpu@ 325 +host_os = @host_os@ 326 +host_vendor = @host_vendor@ 327 +htmldir = @htmldir@ 328 +includedir = @includedir@ 329 +infodir = @infodir@ 330 +install_sh = @install_sh@ 331 +libdir = @libdir@ 332 +libexecdir = @libexecdir@ 333 +localedir = @localedir@ 334 +localstatedir = @localstatedir@ 335 +mandir = @mandir@ 336 +mkdir_p = @mkdir_p@ 337 +oldincludedir = @oldincludedir@ 338 +pdfdir = @pdfdir@ 339 +prefix = @prefix@ 340 +program_transform_name = @program_transform_name@ 341 +psdir = @psdir@ 342 +sbindir = @sbindir@ 343 +sharedstatedir = @sharedstatedir@ 344 +srcdir = @srcdir@ 345 +sysconfdir = @sysconfdir@ 346 +target_alias = @target_alias@ 347 +top_build_prefix = @top_build_prefix@ 348 +top_builddir = @top_builddir@ 349 +top_srcdir = @top_srcdir@ 350 +ACLOCAL_AMFLAGS = -I m4 351 +SUBDIRS = headers src tests examples 352 +EXTRA_DIST = makefile.vc nmake.opt mainpage.doxy 353 +AUTOMAKE_OPTIONS = dist-zip 354 +pkgconfigdir = $(libdir)/pkgconfig 355 +pkgconfig_DATA = readosm.pc 356 +MOSTLYCLEANFILES = readosm_cov.info 357 +all: config.h 358 + $(MAKE) $(AM_MAKEFLAGS) all-recursive 359 + 360 +.SUFFIXES: 361 +am--refresh: Makefile 362 + @: 363 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 364 + @for dep in $?; do \ 365 + case '$(am__configure_deps)' in \ 366 + *$$dep*) \ 367 + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ 368 + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ 369 + && exit 0; \ 370 + exit 1;; \ 371 + esac; \ 372 + done; \ 373 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ 374 + $(am__cd) $(top_srcdir) && \ 375 + $(AUTOMAKE) --gnu Makefile 376 +.PRECIOUS: Makefile 377 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 378 + @case '$?' in \ 379 + *config.status*) \ 380 + echo ' $(SHELL) ./config.status'; \ 381 + $(SHELL) ./config.status;; \ 382 + *) \ 383 + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ 384 + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ 385 + esac; 386 + 387 +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 388 + $(SHELL) ./config.status --recheck 389 + 390 +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 391 + $(am__cd) $(srcdir) && $(AUTOCONF) 392 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 393 + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) 394 +$(am__aclocal_m4_deps): 395 + 396 +config.h: stamp-h1 397 + @test -f $@ || rm -f stamp-h1 398 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 399 + 400 +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status 401 + @rm -f stamp-h1 402 + cd $(top_builddir) && $(SHELL) ./config.status config.h 403 +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 404 + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) 405 + rm -f stamp-h1 406 + touch $@ 407 + 408 +distclean-hdr: 409 + -rm -f config.h stamp-h1 410 +Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in 411 + cd $(top_builddir) && $(SHELL) ./config.status $@ 412 +readosm.pc: $(top_builddir)/config.status $(srcdir)/readosm.pc.in 413 + cd $(top_builddir) && $(SHELL) ./config.status $@ 414 + 415 +mostlyclean-libtool: 416 + -rm -f *.lo 417 + 418 +clean-libtool: 419 + -rm -rf .libs _libs 420 + 421 +distclean-libtool: 422 + -rm -f libtool config.lt 423 +install-pkgconfigDATA: $(pkgconfig_DATA) 424 + @$(NORMAL_INSTALL) 425 + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ 426 + if test -n "$$list"; then \ 427 + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ 428 + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ 429 + fi; \ 430 + for p in $$list; do \ 431 + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 432 + echo "$$d$$p"; \ 433 + done | $(am__base_list) | \ 434 + while read files; do \ 435 + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ 436 + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ 437 + done 438 + 439 +uninstall-pkgconfigDATA: 440 + @$(NORMAL_UNINSTALL) 441 + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ 442 + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ 443 + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) 444 + 445 +# This directory's subdirectories are mostly independent; you can cd 446 +# into them and run 'make' without going through this Makefile. 447 +# To change the values of 'make' variables: instead of editing Makefiles, 448 +# (1) if the variable is set in 'config.status', edit 'config.status' 449 +# (which will cause the Makefiles to be regenerated when you run 'make'); 450 +# (2) otherwise, pass the desired values on the 'make' command line. 451 +$(am__recursive_targets): 452 + @fail=; \ 453 + if $(am__make_keepgoing); then \ 454 + failcom='fail=yes'; \ 455 + else \ 456 + failcom='exit 1'; \ 457 + fi; \ 458 + dot_seen=no; \ 459 + target=`echo $@ | sed s/-recursive//`; \ 460 + case "$@" in \ 461 + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ 462 + *) list='$(SUBDIRS)' ;; \ 463 + esac; \ 464 + for subdir in $$list; do \ 465 + echo "Making $$target in $$subdir"; \ 466 + if test "$$subdir" = "."; then \ 467 + dot_seen=yes; \ 468 + local_target="$$target-am"; \ 469 + else \ 470 + local_target="$$target"; \ 471 + fi; \ 472 + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 473 + || eval $$failcom; \ 474 + done; \ 475 + if test "$$dot_seen" = "no"; then \ 476 + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ 477 + fi; test -z "$$fail" 478 + 479 +ID: $(am__tagged_files) 480 + $(am__define_uniq_tagged_files); mkid -fID $$unique 481 +tags: tags-recursive 482 +TAGS: tags 483 + 484 +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 485 + set x; \ 486 + here=`pwd`; \ 487 + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ 488 + include_option=--etags-include; \ 489 + empty_fix=.; \ 490 + else \ 491 + include_option=--include; \ 492 + empty_fix=; \ 493 + fi; \ 494 + list='$(SUBDIRS)'; for subdir in $$list; do \ 495 + if test "$$subdir" = .; then :; else \ 496 + test ! -f $$subdir/TAGS || \ 497 + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ 498 + fi; \ 499 + done; \ 500 + $(am__define_uniq_tagged_files); \ 501 + shift; \ 502 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 503 + test -n "$$unique" || unique=$$empty_fix; \ 504 + if test $$# -gt 0; then \ 505 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 506 + "$$@" $$unique; \ 507 + else \ 508 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 509 + $$unique; \ 510 + fi; \ 511 + fi 512 +ctags: ctags-recursive 513 + 514 +CTAGS: ctags 515 +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 516 + $(am__define_uniq_tagged_files); \ 517 + test -z "$(CTAGS_ARGS)$$unique" \ 518 + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 519 + $$unique 520 + 521 +GTAGS: 522 + here=`$(am__cd) $(top_builddir) && pwd` \ 523 + && $(am__cd) $(top_srcdir) \ 524 + && gtags -i $(GTAGS_ARGS) "$$here" 525 +cscope: cscope.files 526 + test ! -s cscope.files \ 527 + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) 528 +clean-cscope: 529 + -rm -f cscope.files 530 +cscope.files: clean-cscope cscopelist 531 +cscopelist: cscopelist-recursive 532 + 533 +cscopelist-am: $(am__tagged_files) 534 + list='$(am__tagged_files)'; \ 535 + case "$(srcdir)" in \ 536 + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ 537 + *) sdir=$(subdir)/$(srcdir) ;; \ 538 + esac; \ 539 + for i in $$list; do \ 540 + if test -f "$$i"; then \ 541 + echo "$(subdir)/$$i"; \ 542 + else \ 543 + echo "$$sdir/$$i"; \ 544 + fi; \ 545 + done >> $(top_builddir)/cscope.files 546 + 547 +distclean-tags: 548 + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 549 + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files 550 + 551 +distdir: $(DISTFILES) 552 + $(am__remove_distdir) 553 + test -d "$(distdir)" || mkdir "$(distdir)" 554 + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 555 + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 556 + list='$(DISTFILES)'; \ 557 + dist_files=`for file in $$list; do echo $$file; done | \ 558 + sed -e "s|^$$srcdirstrip/||;t" \ 559 + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 560 + case $$dist_files in \ 561 + */*) $(MKDIR_P) `echo "$$dist_files" | \ 562 + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 563 + sort -u` ;; \ 564 + esac; \ 565 + for file in $$dist_files; do \ 566 + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 567 + if test -d $$d/$$file; then \ 568 + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 569 + if test -d "$(distdir)/$$file"; then \ 570 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 571 + fi; \ 572 + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 573 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 574 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 575 + fi; \ 576 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 577 + else \ 578 + test -f "$(distdir)/$$file" \ 579 + || cp -p $$d/$$file "$(distdir)/$$file" \ 580 + || exit 1; \ 581 + fi; \ 582 + done 583 + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ 584 + if test "$$subdir" = .; then :; else \ 585 + $(am__make_dryrun) \ 586 + || test -d "$(distdir)/$$subdir" \ 587 + || $(MKDIR_P) "$(distdir)/$$subdir" \ 588 + || exit 1; \ 589 + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ 590 + $(am__relativize); \ 591 + new_distdir=$$reldir; \ 592 + dir1=$$subdir; dir2="$(top_distdir)"; \ 593 + $(am__relativize); \ 594 + new_top_distdir=$$reldir; \ 595 + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ 596 + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ 597 + ($(am__cd) $$subdir && \ 598 + $(MAKE) $(AM_MAKEFLAGS) \ 599 + top_distdir="$$new_top_distdir" \ 600 + distdir="$$new_distdir" \ 601 + am__remove_distdir=: \ 602 + am__skip_length_check=: \ 603 + am__skip_mode_fix=: \ 604 + distdir) \ 605 + || exit 1; \ 606 + fi; \ 607 + done 608 + -test -n "$(am__skip_mode_fix)" \ 609 + || find "$(distdir)" -type d ! -perm -755 \ 610 + -exec chmod u+rwx,go+rx {} \; -o \ 611 + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ 612 + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ 613 + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ 614 + || chmod -R a+r "$(distdir)" 615 +dist-gzip: distdir 616 + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz 617 + $(am__post_remove_distdir) 618 + 619 +dist-bzip2: distdir 620 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 621 + $(am__post_remove_distdir) 622 + 623 +dist-lzip: distdir 624 + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz 625 + $(am__post_remove_distdir) 626 + 627 +dist-xz: distdir 628 + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz 629 + $(am__post_remove_distdir) 630 + 631 +dist-tarZ: distdir 632 + @echo WARNING: "Support for shar distribution archives is" \ 633 + "deprecated." >&2 634 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 635 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z 636 + $(am__post_remove_distdir) 637 + 638 +dist-shar: distdir 639 + @echo WARNING: "Support for distribution archives compressed with" \ 640 + "legacy program 'compress' is deprecated." >&2 641 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 642 + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz 643 + $(am__post_remove_distdir) 644 +dist-zip: distdir 645 + -rm -f $(distdir).zip 646 + zip -rq $(distdir).zip $(distdir) 647 + $(am__post_remove_distdir) 648 + 649 +dist dist-all: 650 + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' 651 + $(am__post_remove_distdir) 652 + 653 +# This target untars the dist file and tries a VPATH configuration. Then 654 +# it guarantees that the distribution is self-contained by making another 655 +# tarfile. 656 +distcheck: dist 657 + case '$(DIST_ARCHIVES)' in \ 658 + *.tar.gz*) \ 659 + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ 660 + *.tar.bz2*) \ 661 + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ 662 + *.tar.lz*) \ 663 + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ 664 + *.tar.xz*) \ 665 + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ 666 + *.tar.Z*) \ 667 + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ 668 + *.shar.gz*) \ 669 + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ 670 + *.zip*) \ 671 + unzip $(distdir).zip ;;\ 672 + esac 673 + chmod -R a-w $(distdir) 674 + chmod u+w $(distdir) 675 + mkdir $(distdir)/_build $(distdir)/_inst 676 + chmod a-w $(distdir) 677 + test -d $(distdir)/_build || exit 0; \ 678 + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ 679 + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ 680 + && am__cwd=`pwd` \ 681 + && $(am__cd) $(distdir)/_build \ 682 + && ../configure \ 683 + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ 684 + $(DISTCHECK_CONFIGURE_FLAGS) \ 685 + --srcdir=.. --prefix="$$dc_install_base" \ 686 + && $(MAKE) $(AM_MAKEFLAGS) \ 687 + && $(MAKE) $(AM_MAKEFLAGS) dvi \ 688 + && $(MAKE) $(AM_MAKEFLAGS) check \ 689 + && $(MAKE) $(AM_MAKEFLAGS) install \ 690 + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ 691 + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ 692 + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ 693 + distuninstallcheck \ 694 + && chmod -R a-w "$$dc_install_base" \ 695 + && ({ \ 696 + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ 697 + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ 698 + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ 699 + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ 700 + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ 701 + } || { rm -rf "$$dc_destdir"; exit 1; }) \ 702 + && rm -rf "$$dc_destdir" \ 703 + && $(MAKE) $(AM_MAKEFLAGS) dist \ 704 + && rm -rf $(DIST_ARCHIVES) \ 705 + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ 706 + && cd "$$am__cwd" \ 707 + || exit 1 708 + $(am__post_remove_distdir) 709 + @(echo "$(distdir) archives ready for distribution: "; \ 710 + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ 711 + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' 712 +distuninstallcheck: 713 + @test -n '$(distuninstallcheck_dir)' || { \ 714 + echo 'ERROR: trying to run $@ with an empty' \ 715 + '$$(distuninstallcheck_dir)' >&2; \ 716 + exit 1; \ 717 + }; \ 718 + $(am__cd) '$(distuninstallcheck_dir)' || { \ 719 + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ 720 + exit 1; \ 721 + }; \ 722 + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ 723 + || { echo "ERROR: files left after uninstall:" ; \ 724 + if test -n "$(DESTDIR)"; then \ 725 + echo " (check DESTDIR support)"; \ 726 + fi ; \ 727 + $(distuninstallcheck_listfiles) ; \ 728 + exit 1; } >&2 729 +distcleancheck: distclean 730 + @if test '$(srcdir)' = . ; then \ 731 + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ 732 + exit 1 ; \ 733 + fi 734 + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ 735 + || { echo "ERROR: files left in build directory after distclean:" ; \ 736 + $(distcleancheck_listfiles) ; \ 737 + exit 1; } >&2 738 +check-am: all-am 739 +check: check-recursive 740 +all-am: Makefile $(DATA) config.h 741 +installdirs: installdirs-recursive 742 +installdirs-am: 743 + for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ 744 + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 745 + done 746 +install: install-recursive 747 +install-exec: install-exec-recursive 748 +install-data: install-data-recursive 749 +uninstall: uninstall-recursive 750 + 751 +install-am: all-am 752 + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 753 + 754 +installcheck: installcheck-recursive 755 +install-strip: 756 + if test -z '$(STRIP)'; then \ 757 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 758 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 759 + install; \ 760 + else \ 761 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 762 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 763 + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ 764 + fi 765 +mostlyclean-generic: 766 + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) 767 + 768 +clean-generic: 769 + 770 +distclean-generic: 771 + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 772 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 773 + 774 +maintainer-clean-generic: 775 + @echo "This command is intended for maintainers to use" 776 + @echo "it deletes files that may require special tools to rebuild." 777 +clean: clean-recursive 778 + 779 +clean-am: clean-generic clean-libtool mostlyclean-am 780 + 781 +distclean: distclean-recursive 782 + -rm -f $(am__CONFIG_DISTCLEAN_FILES) 783 + -rm -f Makefile 784 +distclean-am: clean-am distclean-generic distclean-hdr \ 785 + distclean-libtool distclean-tags 786 + 787 +dvi: dvi-recursive 788 + 789 +dvi-am: 790 + 791 +html: html-recursive 792 + 793 +html-am: 794 + 795 +info: info-recursive 796 + 797 +info-am: 798 + 799 +install-data-am: install-pkgconfigDATA 800 + 801 +install-dvi: install-dvi-recursive 802 + 803 +install-dvi-am: 804 + 805 +install-exec-am: 806 + 807 +install-html: install-html-recursive 808 + 809 +install-html-am: 810 + 811 +install-info: install-info-recursive 812 + 813 +install-info-am: 814 + 815 +install-man: 816 + 817 +install-pdf: install-pdf-recursive 818 + 819 +install-pdf-am: 820 + 821 +install-ps: install-ps-recursive 822 + 823 +install-ps-am: 824 + 825 +installcheck-am: 826 + 827 +maintainer-clean: maintainer-clean-recursive 828 + -rm -f $(am__CONFIG_DISTCLEAN_FILES) 829 + -rm -rf $(top_srcdir)/autom4te.cache 830 + -rm -f Makefile 831 +maintainer-clean-am: distclean-am maintainer-clean-generic 832 + 833 +mostlyclean: mostlyclean-recursive 834 + 835 +mostlyclean-am: mostlyclean-generic mostlyclean-libtool 836 + 837 +pdf: pdf-recursive 838 + 839 +pdf-am: 840 + 841 +ps: ps-recursive 842 + 843 +ps-am: 844 + 845 +uninstall-am: uninstall-pkgconfigDATA 846 + 847 +.MAKE: $(am__recursive_targets) all install-am install-strip 848 + 849 +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ 850 + am--refresh check check-am clean clean-cscope clean-generic \ 851 + clean-libtool cscope cscopelist-am ctags ctags-am dist \ 852 + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ 853 + dist-xz dist-zip distcheck distclean distclean-generic \ 854 + distclean-hdr distclean-libtool distclean-tags distcleancheck \ 855 + distdir distuninstallcheck dvi dvi-am html html-am info \ 856 + info-am install install-am install-data install-data-am \ 857 + install-dvi install-dvi-am install-exec install-exec-am \ 858 + install-html install-html-am install-info install-info-am \ 859 + install-man install-pdf install-pdf-am install-pkgconfigDATA \ 860 + install-ps install-ps-am install-strip installcheck \ 861 + installcheck-am installdirs installdirs-am maintainer-clean \ 862 + maintainer-clean-generic mostlyclean mostlyclean-generic \ 863 + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ 864 + uninstall-am uninstall-pkgconfigDATA 865 + 866 + 867 +coverage-init: 868 + lcov --directory src --capture --initial --output-file readosm_cov.info 869 + 870 +coverage:: 871 + lcov --rc lcov_branch_coverage=1 --directory src --output-file readosm_cov.info --capture 872 + genhtml --rc lcov_branch_coverage=1 -o covresults readosm_cov.info 873 + 874 +# Tell versions [3.59,3.63) of GNU make to not export all variables. 875 +# Otherwise a system limit (for SysV at least) may be exceeded. 876 +.NOEXPORT:
Added NEWS.
Added README.
1 +ReadOSM is a simple library intended for extracting the contents from 2 +Open Street Map files: both input formats (.osm XML based and .osm.pbf 3 +based on Google's Protocol Buffer serialization) are indifferently 4 +supported. 5 + 6 + 7 +Documentation 8 +------------- 9 +Documentation is generated using Doxygen. You can run "doxygen" in the top level 10 +directory to generate HTML and LaTeX documentation (in the html/ and latex/ 11 +directories respectively). You can generate a PDF format manual if you go into 12 +the latex/ directory and type "make". The output should be a file called 13 +refman.pdf. The HTML documentation is normally more useful. 14 + 15 + 16 +Coverage testing 17 +---------------- 18 +ReadOSM has coverage testing support. You need to have gcov and lcov installed. 19 + 20 +Process: 21 +1. Use --enable-gcov=yes with configure script 22 +2. Clean and rebuild. 23 +3. make coverage-init 24 +4. make check (or whatever other tests you want to check coverage for) 25 +5. make coverage 26 +6. check summary on command line output. 27 +7. review detailed coverage results in covresults/index.html
Added aclocal.m4.
1 +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- 2 + 3 +# Copyright (C) 1996-2013 Free Software Foundation, Inc. 4 + 5 +# This file is free software; the Free Software Foundation 6 +# gives unlimited permission to copy and/or distribute it, 7 +# with or without modifications, as long as this notice is preserved. 8 + 9 +# This program is distributed in the hope that it will be useful, 10 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 11 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 12 +# PARTICULAR PURPOSE. 13 + 14 +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) 15 +m4_ifndef([AC_AUTOCONF_VERSION], 16 + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 17 +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, 18 +[m4_warning([this file was generated for autoconf 2.69. 19 +You have another version of autoconf. It may work, but is not guaranteed to. 20 +If you have problems, you may need to regenerate the build system entirely. 21 +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) 22 + 23 +# Copyright (C) 2002-2013 Free Software Foundation, Inc. 24 +# 25 +# This file is free software; the Free Software Foundation 26 +# gives unlimited permission to copy and/or distribute it, 27 +# with or without modifications, as long as this notice is preserved. 28 + 29 +# AM_AUTOMAKE_VERSION(VERSION) 30 +# ---------------------------- 31 +# Automake X.Y traces this macro to ensure aclocal.m4 has been 32 +# generated from the m4 files accompanying Automake X.Y. 33 +# (This private macro should not be called outside this file.) 34 +AC_DEFUN([AM_AUTOMAKE_VERSION], 35 +[am__api_version='1.14' 36 +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to 37 +dnl require some minimum version. Point them to the right macro. 38 +m4_if([$1], [1.14.1], [], 39 + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl 40 +]) 41 + 42 +# _AM_AUTOCONF_VERSION(VERSION) 43 +# ----------------------------- 44 +# aclocal traces this macro to find the Autoconf version. 45 +# This is a private macro too. Using m4_define simplifies 46 +# the logic in aclocal, which can simply ignore this definition. 47 +m4_define([_AM_AUTOCONF_VERSION], []) 48 + 49 +# AM_SET_CURRENT_AUTOMAKE_VERSION 50 +# ------------------------------- 51 +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. 52 +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. 53 +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], 54 +[AM_AUTOMAKE_VERSION([1.14.1])dnl 55 +m4_ifndef([AC_AUTOCONF_VERSION], 56 + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 57 +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) 58 + 59 +# AM_AUX_DIR_EXPAND -*- Autoconf -*- 60 + 61 +# Copyright (C) 2001-2013 Free Software Foundation, Inc. 62 +# 63 +# This file is free software; the Free Software Foundation 64 +# gives unlimited permission to copy and/or distribute it, 65 +# with or without modifications, as long as this notice is preserved. 66 + 67 +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets 68 +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to 69 +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. 70 +# 71 +# Of course, Automake must honor this variable whenever it calls a 72 +# tool from the auxiliary directory. The problem is that $srcdir (and 73 +# therefore $ac_aux_dir as well) can be either absolute or relative, 74 +# depending on how configure is run. This is pretty annoying, since 75 +# it makes $ac_aux_dir quite unusable in subdirectories: in the top 76 +# source directory, any form will work fine, but in subdirectories a 77 +# relative path needs to be adjusted first. 78 +# 79 +# $ac_aux_dir/missing 80 +# fails when called from a subdirectory if $ac_aux_dir is relative 81 +# $top_srcdir/$ac_aux_dir/missing 82 +# fails if $ac_aux_dir is absolute, 83 +# fails when called from a subdirectory in a VPATH build with 84 +# a relative $ac_aux_dir 85 +# 86 +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir 87 +# are both prefixed by $srcdir. In an in-source build this is usually 88 +# harmless because $srcdir is '.', but things will broke when you 89 +# start a VPATH build or use an absolute $srcdir. 90 +# 91 +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, 92 +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: 93 +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` 94 +# and then we would define $MISSING as 95 +# MISSING="\${SHELL} $am_aux_dir/missing" 96 +# This will work as long as MISSING is not called from configure, because 97 +# unfortunately $(top_srcdir) has no meaning in configure. 98 +# However there are other variables, like CC, which are often used in 99 +# configure, and could therefore not use this "fixed" $ac_aux_dir. 100 +# 101 +# Another solution, used here, is to always expand $ac_aux_dir to an 102 +# absolute PATH. The drawback is that using absolute paths prevent a 103 +# configured tree to be moved without reconfiguration. 104 + 105 +AC_DEFUN([AM_AUX_DIR_EXPAND], 106 +[dnl Rely on autoconf to set up CDPATH properly. 107 +AC_PREREQ([2.50])dnl 108 +# expand $ac_aux_dir to an absolute path 109 +am_aux_dir=`cd $ac_aux_dir && pwd` 110 +]) 111 + 112 +# AM_CONDITIONAL -*- Autoconf -*- 113 + 114 +# Copyright (C) 1997-2013 Free Software Foundation, Inc. 115 +# 116 +# This file is free software; the Free Software Foundation 117 +# gives unlimited permission to copy and/or distribute it, 118 +# with or without modifications, as long as this notice is preserved. 119 + 120 +# AM_CONDITIONAL(NAME, SHELL-CONDITION) 121 +# ------------------------------------- 122 +# Define a conditional. 123 +AC_DEFUN([AM_CONDITIONAL], 124 +[AC_PREREQ([2.52])dnl 125 + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], 126 + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl 127 +AC_SUBST([$1_TRUE])dnl 128 +AC_SUBST([$1_FALSE])dnl 129 +_AM_SUBST_NOTMAKE([$1_TRUE])dnl 130 +_AM_SUBST_NOTMAKE([$1_FALSE])dnl 131 +m4_define([_AM_COND_VALUE_$1], [$2])dnl 132 +if $2; then 133 + $1_TRUE= 134 + $1_FALSE='#' 135 +else 136 + $1_TRUE='#' 137 + $1_FALSE= 138 +fi 139 +AC_CONFIG_COMMANDS_PRE( 140 +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then 141 + AC_MSG_ERROR([[conditional "$1" was never defined. 142 +Usually this means the macro was only invoked conditionally.]]) 143 +fi])]) 144 + 145 +# Copyright (C) 1999-2013 Free Software Foundation, Inc. 146 +# 147 +# This file is free software; the Free Software Foundation 148 +# gives unlimited permission to copy and/or distribute it, 149 +# with or without modifications, as long as this notice is preserved. 150 + 151 + 152 +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be 153 +# written in clear, in which case automake, when reading aclocal.m4, 154 +# will think it sees a *use*, and therefore will trigger all it's 155 +# C support machinery. Also note that it means that autoscan, seeing 156 +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... 157 + 158 + 159 +# _AM_DEPENDENCIES(NAME) 160 +# ---------------------- 161 +# See how the compiler implements dependency checking. 162 +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". 163 +# We try a few techniques and use that to set a single cache variable. 164 +# 165 +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was 166 +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular 167 +# dependency, and given that the user is not expected to run this macro, 168 +# just rely on AC_PROG_CC. 169 +AC_DEFUN([_AM_DEPENDENCIES], 170 +[AC_REQUIRE([AM_SET_DEPDIR])dnl 171 +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl 172 +AC_REQUIRE([AM_MAKE_INCLUDE])dnl 173 +AC_REQUIRE([AM_DEP_TRACK])dnl 174 + 175 +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], 176 + [$1], [CXX], [depcc="$CXX" am_compiler_list=], 177 + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], 178 + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], 179 + [$1], [UPC], [depcc="$UPC" am_compiler_list=], 180 + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], 181 + [depcc="$$1" am_compiler_list=]) 182 + 183 +AC_CACHE_CHECK([dependency style of $depcc], 184 + [am_cv_$1_dependencies_compiler_type], 185 +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then 186 + # We make a subdir and do the tests there. Otherwise we can end up 187 + # making bogus files that we don't know about and never remove. For 188 + # instance it was reported that on HP-UX the gcc test will end up 189 + # making a dummy file named 'D' -- because '-MD' means "put the output 190 + # in D". 191 + rm -rf conftest.dir 192 + mkdir conftest.dir 193 + # Copy depcomp to subdir because otherwise we won't find it if we're 194 + # using a relative directory. 195 + cp "$am_depcomp" conftest.dir 196 + cd conftest.dir 197 + # We will build objects and dependencies in a subdirectory because 198 + # it helps to detect inapplicable dependency modes. For instance 199 + # both Tru64's cc and ICC support -MD to output dependencies as a 200 + # side effect of compilation, but ICC will put the dependencies in 201 + # the current directory while Tru64 will put them in the object 202 + # directory. 203 + mkdir sub 204 + 205 + am_cv_$1_dependencies_compiler_type=none 206 + if test "$am_compiler_list" = ""; then 207 + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` 208 + fi 209 + am__universal=false 210 + m4_case([$1], [CC], 211 + [case " $depcc " in #( 212 + *\ -arch\ *\ -arch\ *) am__universal=true ;; 213 + esac], 214 + [CXX], 215 + [case " $depcc " in #( 216 + *\ -arch\ *\ -arch\ *) am__universal=true ;; 217 + esac]) 218 + 219 + for depmode in $am_compiler_list; do 220 + # Setup a source with many dependencies, because some compilers 221 + # like to wrap large dependency lists on column 80 (with \), and 222 + # we should not choose a depcomp mode which is confused by this. 223 + # 224 + # We need to recreate these files for each test, as the compiler may 225 + # overwrite some of them when testing with obscure command lines. 226 + # This happens at least with the AIX C compiler. 227 + : > sub/conftest.c 228 + for i in 1 2 3 4 5 6; do 229 + echo '#include "conftst'$i'.h"' >> sub/conftest.c 230 + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with 231 + # Solaris 10 /bin/sh. 232 + echo '/* dummy */' > sub/conftst$i.h 233 + done 234 + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf 235 + 236 + # We check with '-c' and '-o' for the sake of the "dashmstdout" 237 + # mode. It turns out that the SunPro C++ compiler does not properly 238 + # handle '-M -o', and we need to detect this. Also, some Intel 239 + # versions had trouble with output in subdirs. 240 + am__obj=sub/conftest.${OBJEXT-o} 241 + am__minus_obj="-o $am__obj" 242 + case $depmode in 243 + gcc) 244 + # This depmode causes a compiler race in universal mode. 245 + test "$am__universal" = false || continue 246 + ;; 247 + nosideeffect) 248 + # After this tag, mechanisms are not by side-effect, so they'll 249 + # only be used when explicitly requested. 250 + if test "x$enable_dependency_tracking" = xyes; then 251 + continue 252 + else 253 + break 254 + fi 255 + ;; 256 + msvc7 | msvc7msys | msvisualcpp | msvcmsys) 257 + # This compiler won't grok '-c -o', but also, the minuso test has 258 + # not run yet. These depmodes are late enough in the game, and 259 + # so weak that their functioning should not be impacted. 260 + am__obj=conftest.${OBJEXT-o} 261 + am__minus_obj= 262 + ;; 263 + none) break ;; 264 + esac 265 + if depmode=$depmode \ 266 + source=sub/conftest.c object=$am__obj \ 267 + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ 268 + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ 269 + >/dev/null 2>conftest.err && 270 + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && 271 + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && 272 + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && 273 + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then 274 + # icc doesn't choke on unknown options, it will just issue warnings 275 + # or remarks (even with -Werror). So we grep stderr for any message 276 + # that says an option was ignored or not supported. 277 + # When given -MP, icc 7.0 and 7.1 complain thusly: 278 + # icc: Command line warning: ignoring option '-M'; no argument required 279 + # The diagnosis changed in icc 8.0: 280 + # icc: Command line remark: option '-MP' not supported 281 + if (grep 'ignoring option' conftest.err || 282 + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else 283 + am_cv_$1_dependencies_compiler_type=$depmode 284 + break 285 + fi 286 + fi 287 + done 288 + 289 + cd .. 290 + rm -rf conftest.dir 291 +else 292 + am_cv_$1_dependencies_compiler_type=none 293 +fi 294 +]) 295 +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) 296 +AM_CONDITIONAL([am__fastdep$1], [ 297 + test "x$enable_dependency_tracking" != xno \ 298 + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) 299 +]) 300 + 301 + 302 +# AM_SET_DEPDIR 303 +# ------------- 304 +# Choose a directory name for dependency files. 305 +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. 306 +AC_DEFUN([AM_SET_DEPDIR], 307 +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl 308 +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl 309 +]) 310 + 311 + 312 +# AM_DEP_TRACK 313 +# ------------ 314 +AC_DEFUN([AM_DEP_TRACK], 315 +[AC_ARG_ENABLE([dependency-tracking], [dnl 316 +AS_HELP_STRING( 317 + [--enable-dependency-tracking], 318 + [do not reject slow dependency extractors]) 319 +AS_HELP_STRING( 320 + [--disable-dependency-tracking], 321 + [speeds up one-time build])]) 322 +if test "x$enable_dependency_tracking" != xno; then 323 + am_depcomp="$ac_aux_dir/depcomp" 324 + AMDEPBACKSLASH='\' 325 + am__nodep='_no' 326 +fi 327 +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) 328 +AC_SUBST([AMDEPBACKSLASH])dnl 329 +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl 330 +AC_SUBST([am__nodep])dnl 331 +_AM_SUBST_NOTMAKE([am__nodep])dnl 332 +]) 333 + 334 +# Generate code to set up dependency tracking. -*- Autoconf -*- 335 + 336 +# Copyright (C) 1999-2013 Free Software Foundation, Inc. 337 +# 338 +# This file is free software; the Free Software Foundation 339 +# gives unlimited permission to copy and/or distribute it, 340 +# with or without modifications, as long as this notice is preserved. 341 + 342 + 343 +# _AM_OUTPUT_DEPENDENCY_COMMANDS 344 +# ------------------------------ 345 +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], 346 +[{ 347 + # Older Autoconf quotes --file arguments for eval, but not when files 348 + # are listed without --file. Let's play safe and only enable the eval 349 + # if we detect the quoting. 350 + case $CONFIG_FILES in 351 + *\'*) eval set x "$CONFIG_FILES" ;; 352 + *) set x $CONFIG_FILES ;; 353 + esac 354 + shift 355 + for mf 356 + do 357 + # Strip MF so we end up with the name of the file. 358 + mf=`echo "$mf" | sed -e 's/:.*$//'` 359 + # Check whether this is an Automake generated Makefile or not. 360 + # We used to match only the files named 'Makefile.in', but 361 + # some people rename them; so instead we look at the file content. 362 + # Grep'ing the first line is not enough: some people post-process 363 + # each Makefile.in and add a new line on top of each file to say so. 364 + # Grep'ing the whole file is not good either: AIX grep has a line 365 + # limit of 2048, but all sed's we know have understand at least 4000. 366 + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then 367 + dirpart=`AS_DIRNAME("$mf")` 368 + else 369 + continue 370 + fi 371 + # Extract the definition of DEPDIR, am__include, and am__quote 372 + # from the Makefile without running 'make'. 373 + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` 374 + test -z "$DEPDIR" && continue 375 + am__include=`sed -n 's/^am__include = //p' < "$mf"` 376 + test -z "$am__include" && continue 377 + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` 378 + # Find all dependency output files, they are included files with 379 + # $(DEPDIR) in their names. We invoke sed twice because it is the 380 + # simplest approach to changing $(DEPDIR) to its actual value in the 381 + # expansion. 382 + for file in `sed -n " 383 + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ 384 + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do 385 + # Make sure the directory exists. 386 + test -f "$dirpart/$file" && continue 387 + fdir=`AS_DIRNAME(["$file"])` 388 + AS_MKDIR_P([$dirpart/$fdir]) 389 + # echo "creating $dirpart/$file" 390 + echo '# dummy' > "$dirpart/$file" 391 + done 392 + done 393 +} 394 +])# _AM_OUTPUT_DEPENDENCY_COMMANDS 395 + 396 + 397 +# AM_OUTPUT_DEPENDENCY_COMMANDS 398 +# ----------------------------- 399 +# This macro should only be invoked once -- use via AC_REQUIRE. 400 +# 401 +# This code is only required when automatic dependency tracking 402 +# is enabled. FIXME. This creates each '.P' file that we will 403 +# need in order to bootstrap the dependency handling code. 404 +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], 405 +[AC_CONFIG_COMMANDS([depfiles], 406 + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], 407 + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) 408 +]) 409 + 410 +# Do all the work for Automake. -*- Autoconf -*- 411 + 412 +# Copyright (C) 1996-2013 Free Software Foundation, Inc. 413 +# 414 +# This file is free software; the Free Software Foundation 415 +# gives unlimited permission to copy and/or distribute it, 416 +# with or without modifications, as long as this notice is preserved. 417 + 418 +# This macro actually does too much. Some checks are only needed if 419 +# your package does certain things. But this isn't really a big deal. 420 + 421 +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. 422 +m4_define([AC_PROG_CC], 423 +m4_defn([AC_PROG_CC]) 424 +[_AM_PROG_CC_C_O 425 +]) 426 + 427 +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) 428 +# AM_INIT_AUTOMAKE([OPTIONS]) 429 +# ----------------------------------------------- 430 +# The call with PACKAGE and VERSION arguments is the old style 431 +# call (pre autoconf-2.50), which is being phased out. PACKAGE 432 +# and VERSION should now be passed to AC_INIT and removed from 433 +# the call to AM_INIT_AUTOMAKE. 434 +# We support both call styles for the transition. After 435 +# the next Automake release, Autoconf can make the AC_INIT 436 +# arguments mandatory, and then we can depend on a new Autoconf 437 +# release and drop the old call support. 438 +AC_DEFUN([AM_INIT_AUTOMAKE], 439 +[AC_PREREQ([2.65])dnl 440 +dnl Autoconf wants to disallow AM_ names. We explicitly allow 441 +dnl the ones we care about. 442 +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl 443 +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl 444 +AC_REQUIRE([AC_PROG_INSTALL])dnl 445 +if test "`cd $srcdir && pwd`" != "`pwd`"; then 446 + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output 447 + # is not polluted with repeated "-I." 448 + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl 449 + # test to see if srcdir already configured 450 + if test -f $srcdir/config.status; then 451 + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) 452 + fi 453 +fi 454 + 455 +# test whether we have cygpath 456 +if test -z "$CYGPATH_W"; then 457 + if (cygpath --version) >/dev/null 2>/dev/null; then 458 + CYGPATH_W='cygpath -w' 459 + else 460 + CYGPATH_W=echo 461 + fi 462 +fi 463 +AC_SUBST([CYGPATH_W]) 464 + 465 +# Define the identity of the package. 466 +dnl Distinguish between old-style and new-style calls. 467 +m4_ifval([$2], 468 +[AC_DIAGNOSE([obsolete], 469 + [$0: two- and three-arguments forms are deprecated.]) 470 +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl 471 + AC_SUBST([PACKAGE], [$1])dnl 472 + AC_SUBST([VERSION], [$2])], 473 +[_AM_SET_OPTIONS([$1])dnl 474 +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. 475 +m4_if( 476 + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), 477 + [ok:ok],, 478 + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl 479 + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl 480 + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl 481 + 482 +_AM_IF_OPTION([no-define],, 483 +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) 484 + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl 485 + 486 +# Some tools Automake needs. 487 +AC_REQUIRE([AM_SANITY_CHECK])dnl 488 +AC_REQUIRE([AC_ARG_PROGRAM])dnl 489 +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) 490 +AM_MISSING_PROG([AUTOCONF], [autoconf]) 491 +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) 492 +AM_MISSING_PROG([AUTOHEADER], [autoheader]) 493 +AM_MISSING_PROG([MAKEINFO], [makeinfo]) 494 +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl 495 +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl 496 +AC_REQUIRE([AC_PROG_MKDIR_P])dnl 497 +# For better backward compatibility. To be removed once Automake 1.9.x 498 +# dies out for good. For more background, see: 499 +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> 500 +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> 501 +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) 502 +# We need awk for the "check" target. The system "awk" is bad on 503 +# some platforms. 504 +AC_REQUIRE([AC_PROG_AWK])dnl 505 +AC_REQUIRE([AC_PROG_MAKE_SET])dnl 506 +AC_REQUIRE([AM_SET_LEADING_DOT])dnl 507 +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], 508 + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], 509 + [_AM_PROG_TAR([v7])])]) 510 +_AM_IF_OPTION([no-dependencies],, 511 +[AC_PROVIDE_IFELSE([AC_PROG_CC], 512 + [_AM_DEPENDENCIES([CC])], 513 + [m4_define([AC_PROG_CC], 514 + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl 515 +AC_PROVIDE_IFELSE([AC_PROG_CXX], 516 + [_AM_DEPENDENCIES([CXX])], 517 + [m4_define([AC_PROG_CXX], 518 + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl 519 +AC_PROVIDE_IFELSE([AC_PROG_OBJC], 520 + [_AM_DEPENDENCIES([OBJC])], 521 + [m4_define([AC_PROG_OBJC], 522 + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl 523 +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], 524 + [_AM_DEPENDENCIES([OBJCXX])], 525 + [m4_define([AC_PROG_OBJCXX], 526 + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl 527 +]) 528 +AC_REQUIRE([AM_SILENT_RULES])dnl 529 +dnl The testsuite driver may need to know about EXEEXT, so add the 530 +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This 531 +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. 532 +AC_CONFIG_COMMANDS_PRE(dnl 533 +[m4_provide_if([_AM_COMPILER_EXEEXT], 534 + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl 535 + 536 +# POSIX will say in a future version that running "rm -f" with no argument 537 +# is OK; and we want to be able to make that assumption in our Makefile 538 +# recipes. So use an aggressive probe to check that the usage we want is 539 +# actually supported "in the wild" to an acceptable degree. 540 +# See automake bug#10828. 541 +# To make any issue more visible, cause the running configure to be aborted 542 +# by default if the 'rm' program in use doesn't match our expectations; the 543 +# user can still override this though. 544 +if rm -f && rm -fr && rm -rf; then : OK; else 545 + cat >&2 <<'END' 546 +Oops! 547 + 548 +Your 'rm' program seems unable to run without file operands specified 549 +on the command line, even when the '-f' option is present. This is contrary 550 +to the behaviour of most rm programs out there, and not conforming with 551 +the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> 552 + 553 +Please tell bug-automake@gnu.org about your system, including the value 554 +of your $PATH and any error possibly output before this message. This 555 +can help us improve future automake versions. 556 + 557 +END 558 + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then 559 + echo 'Configuration will proceed anyway, since you have set the' >&2 560 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 561 + echo >&2 562 + else 563 + cat >&2 <<'END' 564 +Aborting the configuration process, to ensure you take notice of the issue. 565 + 566 +You can download and install GNU coreutils to get an 'rm' implementation 567 +that behaves properly: <http://www.gnu.org/software/coreutils/>. 568 + 569 +If you want to complete the configuration process using your problematic 570 +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM 571 +to "yes", and re-run configure. 572 + 573 +END 574 + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) 575 + fi 576 +fi]) 577 + 578 +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not 579 +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further 580 +dnl mangled by Autoconf and run in a shell conditional statement. 581 +m4_define([_AC_COMPILER_EXEEXT], 582 +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) 583 + 584 +# When config.status generates a header, we must update the stamp-h file. 585 +# This file resides in the same directory as the config header 586 +# that is generated. The stamp files are numbered to have different names. 587 + 588 +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the 589 +# loop where config.status creates the headers, so we can generate 590 +# our stamp files there. 591 +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], 592 +[# Compute $1's index in $config_headers. 593 +_am_arg=$1 594 +_am_stamp_count=1 595 +for _am_header in $config_headers :; do 596 + case $_am_header in 597 + $_am_arg | $_am_arg:* ) 598 + break ;; 599 + * ) 600 + _am_stamp_count=`expr $_am_stamp_count + 1` ;; 601 + esac 602 +done 603 +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) 604 + 605 +# Copyright (C) 2001-2013 Free Software Foundation, Inc. 606 +# 607 +# This file is free software; the Free Software Foundation 608 +# gives unlimited permission to copy and/or distribute it, 609 +# with or without modifications, as long as this notice is preserved. 610 + 611 +# AM_PROG_INSTALL_SH 612 +# ------------------ 613 +# Define $install_sh. 614 +AC_DEFUN([AM_PROG_INSTALL_SH], 615 +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl 616 +if test x"${install_sh}" != xset; then 617 + case $am_aux_dir in 618 + *\ * | *\ *) 619 + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; 620 + *) 621 + install_sh="\${SHELL} $am_aux_dir/install-sh" 622 + esac 623 +fi 624 +AC_SUBST([install_sh])]) 625 + 626 +# Copyright (C) 2003-2013 Free Software Foundation, Inc. 627 +# 628 +# This file is free software; the Free Software Foundation 629 +# gives unlimited permission to copy and/or distribute it, 630 +# with or without modifications, as long as this notice is preserved. 631 + 632 +# Check whether the underlying file-system supports filenames 633 +# with a leading dot. For instance MS-DOS doesn't. 634 +AC_DEFUN([AM_SET_LEADING_DOT], 635 +[rm -rf .tst 2>/dev/null 636 +mkdir .tst 2>/dev/null 637 +if test -d .tst; then 638 + am__leading_dot=. 639 +else 640 + am__leading_dot=_ 641 +fi 642 +rmdir .tst 2>/dev/null 643 +AC_SUBST([am__leading_dot])]) 644 + 645 +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- 646 +# From Jim Meyering 647 + 648 +# Copyright (C) 1996-2013 Free Software Foundation, Inc. 649 +# 650 +# This file is free software; the Free Software Foundation 651 +# gives unlimited permission to copy and/or distribute it, 652 +# with or without modifications, as long as this notice is preserved. 653 + 654 +# AM_MAINTAINER_MODE([DEFAULT-MODE]) 655 +# ---------------------------------- 656 +# Control maintainer-specific portions of Makefiles. 657 +# Default is to disable them, unless 'enable' is passed literally. 658 +# For symmetry, 'disable' may be passed as well. Anyway, the user 659 +# can override the default with the --enable/--disable switch. 660 +AC_DEFUN([AM_MAINTAINER_MODE], 661 +[m4_case(m4_default([$1], [disable]), 662 + [enable], [m4_define([am_maintainer_other], [disable])], 663 + [disable], [m4_define([am_maintainer_other], [enable])], 664 + [m4_define([am_maintainer_other], [enable]) 665 + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) 666 +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) 667 + dnl maintainer-mode's default is 'disable' unless 'enable' is passed 668 + AC_ARG_ENABLE([maintainer-mode], 669 + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], 670 + am_maintainer_other[ make rules and dependencies not useful 671 + (and sometimes confusing) to the casual installer])], 672 + [USE_MAINTAINER_MODE=$enableval], 673 + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) 674 + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) 675 + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) 676 + MAINT=$MAINTAINER_MODE_TRUE 677 + AC_SUBST([MAINT])dnl 678 +] 679 +) 680 + 681 +# Check to see how 'make' treats includes. -*- Autoconf -*- 682 + 683 +# Copyright (C) 2001-2013 Free Software Foundation, Inc. 684 +# 685 +# This file is free software; the Free Software Foundation 686 +# gives unlimited permission to copy and/or distribute it, 687 +# with or without modifications, as long as this notice is preserved. 688 + 689 +# AM_MAKE_INCLUDE() 690 +# ----------------- 691 +# Check to see how make treats includes. 692 +AC_DEFUN([AM_MAKE_INCLUDE], 693 +[am_make=${MAKE-make} 694 +cat > confinc << 'END' 695 +am__doit: 696 + @echo this is the am__doit target 697 +.PHONY: am__doit 698 +END 699 +# If we don't find an include directive, just comment out the code. 700 +AC_MSG_CHECKING([for style of include used by $am_make]) 701 +am__include="#" 702 +am__quote= 703 +_am_result=none 704 +# First try GNU make style include. 705 +echo "include confinc" > confmf 706 +# Ignore all kinds of additional output from 'make'. 707 +case `$am_make -s -f confmf 2> /dev/null` in #( 708 +*the\ am__doit\ target*) 709 + am__include=include 710 + am__quote= 711 + _am_result=GNU 712 + ;; 713 +esac 714 +# Now try BSD make style include. 715 +if test "$am__include" = "#"; then 716 + echo '.include "confinc"' > confmf 717 + case `$am_make -s -f confmf 2> /dev/null` in #( 718 + *the\ am__doit\ target*) 719 + am__include=.include 720 + am__quote="\"" 721 + _am_result=BSD 722 + ;; 723 + esac 724 +fi 725 +AC_SUBST([am__include]) 726 +AC_SUBST([am__quote]) 727 +AC_MSG_RESULT([$_am_result]) 728 +rm -f confinc confmf 729 +]) 730 + 731 +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- 732 + 733 +# Copyright (C) 1997-2013 Free Software Foundation, Inc. 734 +# 735 +# This file is free software; the Free Software Foundation 736 +# gives unlimited permission to copy and/or distribute it, 737 +# with or without modifications, as long as this notice is preserved. 738 + 739 +# AM_MISSING_PROG(NAME, PROGRAM) 740 +# ------------------------------ 741 +AC_DEFUN([AM_MISSING_PROG], 742 +[AC_REQUIRE([AM_MISSING_HAS_RUN]) 743 +$1=${$1-"${am_missing_run}$2"} 744 +AC_SUBST($1)]) 745 + 746 +# AM_MISSING_HAS_RUN 747 +# ------------------ 748 +# Define MISSING if not defined so far and test if it is modern enough. 749 +# If it is, set am_missing_run to use it, otherwise, to nothing. 750 +AC_DEFUN([AM_MISSING_HAS_RUN], 751 +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl 752 +AC_REQUIRE_AUX_FILE([missing])dnl 753 +if test x"${MISSING+set}" != xset; then 754 + case $am_aux_dir in 755 + *\ * | *\ *) 756 + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; 757 + *) 758 + MISSING="\${SHELL} $am_aux_dir/missing" ;; 759 + esac 760 +fi 761 +# Use eval to expand $SHELL 762 +if eval "$MISSING --is-lightweight"; then 763 + am_missing_run="$MISSING " 764 +else 765 + am_missing_run= 766 + AC_MSG_WARN(['missing' script is too old or missing]) 767 +fi 768 +]) 769 + 770 +# -*- Autoconf -*- 771 +# Obsolete and "removed" macros, that must however still report explicit 772 +# error messages when used, to smooth transition. 773 +# 774 +# Copyright (C) 1996-2013 Free Software Foundation, Inc. 775 +# 776 +# This file is free software; the Free Software Foundation 777 +# gives unlimited permission to copy and/or distribute it, 778 +# with or without modifications, as long as this notice is preserved. 779 + 780 +AC_DEFUN([AM_CONFIG_HEADER], 781 +[AC_DIAGNOSE([obsolete], 782 +['$0': this macro is obsolete. 783 +You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl 784 +AC_CONFIG_HEADERS($@)]) 785 + 786 +AC_DEFUN([AM_PROG_CC_STDC], 787 +[AC_PROG_CC 788 +am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc 789 +AC_DIAGNOSE([obsolete], 790 +['$0': this macro is obsolete. 791 +You should simply use the 'AC][_PROG_CC' macro instead. 792 +Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', 793 +but upon 'ac_cv_prog_cc_stdc'.])]) 794 + 795 +AC_DEFUN([AM_C_PROTOTYPES], 796 + [AC_FATAL([automatic de-ANSI-fication support has been removed])]) 797 +AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) 798 + 799 +# Helper functions for option handling. -*- Autoconf -*- 800 + 801 +# Copyright (C) 2001-2013 Free Software Foundation, Inc. 802 +# 803 +# This file is free software; the Free Software Foundation 804 +# gives unlimited permission to copy and/or distribute it, 805 +# with or without modifications, as long as this notice is preserved. 806 + 807 +# _AM_MANGLE_OPTION(NAME) 808 +# ----------------------- 809 +AC_DEFUN([_AM_MANGLE_OPTION], 810 +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) 811 + 812 +# _AM_SET_OPTION(NAME) 813 +# -------------------- 814 +# Set option NAME. Presently that only means defining a flag for this option. 815 +AC_DEFUN([_AM_SET_OPTION], 816 +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) 817 + 818 +# _AM_SET_OPTIONS(OPTIONS) 819 +# ------------------------ 820 +# OPTIONS is a space-separated list of Automake options. 821 +AC_DEFUN([_AM_SET_OPTIONS], 822 +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) 823 + 824 +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) 825 +# ------------------------------------------- 826 +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. 827 +AC_DEFUN([_AM_IF_OPTION], 828 +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) 829 + 830 +# Copyright (C) 1999-2013 Free Software Foundation, Inc. 831 +# 832 +# This file is free software; the Free Software Foundation 833 +# gives unlimited permission to copy and/or distribute it, 834 +# with or without modifications, as long as this notice is preserved. 835 + 836 +# _AM_PROG_CC_C_O 837 +# --------------- 838 +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC 839 +# to automatically call this. 840 +AC_DEFUN([_AM_PROG_CC_C_O], 841 +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl 842 +AC_REQUIRE_AUX_FILE([compile])dnl 843 +AC_LANG_PUSH([C])dnl 844 +AC_CACHE_CHECK( 845 + [whether $CC understands -c and -o together], 846 + [am_cv_prog_cc_c_o], 847 + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) 848 + # Make sure it works both with $CC and with simple cc. 849 + # Following AC_PROG_CC_C_O, we do the test twice because some 850 + # compilers refuse to overwrite an existing .o file with -o, 851 + # though they will create one. 852 + am_cv_prog_cc_c_o=yes 853 + for am_i in 1 2; do 854 + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ 855 + && test -f conftest2.$ac_objext; then 856 + : OK 857 + else 858 + am_cv_prog_cc_c_o=no 859 + break 860 + fi 861 + done 862 + rm -f core conftest* 863 + unset am_i]) 864 +if test "$am_cv_prog_cc_c_o" != yes; then 865 + # Losing compiler, so override with the script. 866 + # FIXME: It is wrong to rewrite CC. 867 + # But if we don't then we get into trouble of one sort or another. 868 + # A longer-term fix would be to have automake use am__CC in this case, 869 + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" 870 + CC="$am_aux_dir/compile $CC" 871 +fi 872 +AC_LANG_POP([C])]) 873 + 874 +# For backward compatibility. 875 +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) 876 + 877 +# Copyright (C) 2001-2013 Free Software Foundation, Inc. 878 +# 879 +# This file is free software; the Free Software Foundation 880 +# gives unlimited permission to copy and/or distribute it, 881 +# with or without modifications, as long as this notice is preserved. 882 + 883 +# AM_RUN_LOG(COMMAND) 884 +# ------------------- 885 +# Run COMMAND, save the exit status in ac_status, and log it. 886 +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) 887 +AC_DEFUN([AM_RUN_LOG], 888 +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD 889 + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD 890 + ac_status=$? 891 + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD 892 + (exit $ac_status); }]) 893 + 894 +# Check to make sure that the build environment is sane. -*- Autoconf -*- 895 + 896 +# Copyright (C) 1996-2013 Free Software Foundation, Inc. 897 +# 898 +# This file is free software; the Free Software Foundation 899 +# gives unlimited permission to copy and/or distribute it, 900 +# with or without modifications, as long as this notice is preserved. 901 + 902 +# AM_SANITY_CHECK 903 +# --------------- 904 +AC_DEFUN([AM_SANITY_CHECK], 905 +[AC_MSG_CHECKING([whether build environment is sane]) 906 +# Reject unsafe characters in $srcdir or the absolute working directory 907 +# name. Accept space and tab only in the latter. 908 +am_lf=' 909 +' 910 +case `pwd` in 911 + *[[\\\"\#\$\&\'\`$am_lf]]*) 912 + AC_MSG_ERROR([unsafe absolute working directory name]);; 913 +esac 914 +case $srcdir in 915 + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) 916 + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; 917 +esac 918 + 919 +# Do 'set' in a subshell so we don't clobber the current shell's 920 +# arguments. Must try -L first in case configure is actually a 921 +# symlink; some systems play weird games with the mod time of symlinks 922 +# (eg FreeBSD returns the mod time of the symlink's containing 923 +# directory). 924 +if ( 925 + am_has_slept=no 926 + for am_try in 1 2; do 927 + echo "timestamp, slept: $am_has_slept" > conftest.file 928 + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` 929 + if test "$[*]" = "X"; then 930 + # -L didn't work. 931 + set X `ls -t "$srcdir/configure" conftest.file` 932 + fi 933 + if test "$[*]" != "X $srcdir/configure conftest.file" \ 934 + && test "$[*]" != "X conftest.file $srcdir/configure"; then 935 + 936 + # If neither matched, then we have a broken ls. This can happen 937 + # if, for instance, CONFIG_SHELL is bash and it inherits a 938 + # broken ls alias from the environment. This has actually 939 + # happened. Such a system could not be considered "sane". 940 + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken 941 + alias in your environment]) 942 + fi 943 + if test "$[2]" = conftest.file || test $am_try -eq 2; then 944 + break 945 + fi 946 + # Just in case. 947 + sleep 1 948 + am_has_slept=yes 949 + done 950 + test "$[2]" = conftest.file 951 + ) 952 +then 953 + # Ok. 954 + : 955 +else 956 + AC_MSG_ERROR([newly created file is older than distributed files! 957 +Check your system clock]) 958 +fi 959 +AC_MSG_RESULT([yes]) 960 +# If we didn't sleep, we still need to ensure time stamps of config.status and 961 +# generated files are strictly newer. 962 +am_sleep_pid= 963 +if grep 'slept: no' conftest.file >/dev/null 2>&1; then 964 + ( sleep 1 ) & 965 + am_sleep_pid=$! 966 +fi 967 +AC_CONFIG_COMMANDS_PRE( 968 + [AC_MSG_CHECKING([that generated files are newer than configure]) 969 + if test -n "$am_sleep_pid"; then 970 + # Hide warnings about reused PIDs. 971 + wait $am_sleep_pid 2>/dev/null 972 + fi 973 + AC_MSG_RESULT([done])]) 974 +rm -f conftest.file 975 +]) 976 + 977 +# Copyright (C) 2009-2013 Free Software Foundation, Inc. 978 +# 979 +# This file is free software; the Free Software Foundation 980 +# gives unlimited permission to copy and/or distribute it, 981 +# with or without modifications, as long as this notice is preserved. 982 + 983 +# AM_SILENT_RULES([DEFAULT]) 984 +# -------------------------- 985 +# Enable less verbose build rules; with the default set to DEFAULT 986 +# ("yes" being less verbose, "no" or empty being verbose). 987 +AC_DEFUN([AM_SILENT_RULES], 988 +[AC_ARG_ENABLE([silent-rules], [dnl 989 +AS_HELP_STRING( 990 + [--enable-silent-rules], 991 + [less verbose build output (undo: "make V=1")]) 992 +AS_HELP_STRING( 993 + [--disable-silent-rules], 994 + [verbose build output (undo: "make V=0")])dnl 995 +]) 996 +case $enable_silent_rules in @%:@ ((( 997 + yes) AM_DEFAULT_VERBOSITY=0;; 998 + no) AM_DEFAULT_VERBOSITY=1;; 999 + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; 1000 +esac 1001 +dnl 1002 +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) 1003 +dnl do not support nested variable expansions. 1004 +dnl See automake bug#9928 and bug#10237. 1005 +am_make=${MAKE-make} 1006 +AC_CACHE_CHECK([whether $am_make supports nested variables], 1007 + [am_cv_make_support_nested_variables], 1008 + [if AS_ECHO([['TRUE=$(BAR$(V)) 1009 +BAR0=false 1010 +BAR1=true 1011 +V=1 1012 +am__doit: 1013 + @$(TRUE) 1014 +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then 1015 + am_cv_make_support_nested_variables=yes 1016 +else 1017 + am_cv_make_support_nested_variables=no 1018 +fi]) 1019 +if test $am_cv_make_support_nested_variables = yes; then 1020 + dnl Using '$V' instead of '$(V)' breaks IRIX make. 1021 + AM_V='$(V)' 1022 + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' 1023 +else 1024 + AM_V=$AM_DEFAULT_VERBOSITY 1025 + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY 1026 +fi 1027 +AC_SUBST([AM_V])dnl 1028 +AM_SUBST_NOTMAKE([AM_V])dnl 1029 +AC_SUBST([AM_DEFAULT_V])dnl 1030 +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl 1031 +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl 1032 +AM_BACKSLASH='\' 1033 +AC_SUBST([AM_BACKSLASH])dnl 1034 +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl 1035 +]) 1036 + 1037 +# Copyright (C) 2001-2013 Free Software Foundation, Inc. 1038 +# 1039 +# This file is free software; the Free Software Foundation 1040 +# gives unlimited permission to copy and/or distribute it, 1041 +# with or without modifications, as long as this notice is preserved. 1042 + 1043 +# AM_PROG_INSTALL_STRIP 1044 +# --------------------- 1045 +# One issue with vendor 'install' (even GNU) is that you can't 1046 +# specify the program used to strip binaries. This is especially 1047 +# annoying in cross-compiling environments, where the build's strip 1048 +# is unlikely to handle the host's binaries. 1049 +# Fortunately install-sh will honor a STRIPPROG variable, so we 1050 +# always use install-sh in "make install-strip", and initialize 1051 +# STRIPPROG with the value of the STRIP variable (set by the user). 1052 +AC_DEFUN([AM_PROG_INSTALL_STRIP], 1053 +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl 1054 +# Installed binaries are usually stripped using 'strip' when the user 1055 +# run "make install-strip". However 'strip' might not be the right 1056 +# tool to use in cross-compilation environments, therefore Automake 1057 +# will honor the 'STRIP' environment variable to overrule this program. 1058 +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. 1059 +if test "$cross_compiling" != no; then 1060 + AC_CHECK_TOOL([STRIP], [strip], :) 1061 +fi 1062 +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" 1063 +AC_SUBST([INSTALL_STRIP_PROGRAM])]) 1064 + 1065 +# Copyright (C) 2006-2013 Free Software Foundation, Inc. 1066 +# 1067 +# This file is free software; the Free Software Foundation 1068 +# gives unlimited permission to copy and/or distribute it, 1069 +# with or without modifications, as long as this notice is preserved. 1070 + 1071 +# _AM_SUBST_NOTMAKE(VARIABLE) 1072 +# --------------------------- 1073 +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. 1074 +# This macro is traced by Automake. 1075 +AC_DEFUN([_AM_SUBST_NOTMAKE]) 1076 + 1077 +# AM_SUBST_NOTMAKE(VARIABLE) 1078 +# -------------------------- 1079 +# Public sister of _AM_SUBST_NOTMAKE. 1080 +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) 1081 + 1082 +# Check how to create a tarball. -*- Autoconf -*- 1083 + 1084 +# Copyright (C) 2004-2013 Free Software Foundation, Inc. 1085 +# 1086 +# This file is free software; the Free Software Foundation 1087 +# gives unlimited permission to copy and/or distribute it, 1088 +# with or without modifications, as long as this notice is preserved. 1089 + 1090 +# _AM_PROG_TAR(FORMAT) 1091 +# -------------------- 1092 +# Check how to create a tarball in format FORMAT. 1093 +# FORMAT should be one of 'v7', 'ustar', or 'pax'. 1094 +# 1095 +# Substitute a variable $(am__tar) that is a command 1096 +# writing to stdout a FORMAT-tarball containing the directory 1097 +# $tardir. 1098 +# tardir=directory && $(am__tar) > result.tar 1099 +# 1100 +# Substitute a variable $(am__untar) that extract such 1101 +# a tarball read from stdin. 1102 +# $(am__untar) < result.tar 1103 +# 1104 +AC_DEFUN([_AM_PROG_TAR], 1105 +[# Always define AMTAR for backward compatibility. Yes, it's still used 1106 +# in the wild :-( We should find a proper way to deprecate it ... 1107 +AC_SUBST([AMTAR], ['$${TAR-tar}']) 1108 + 1109 +# We'll loop over all known methods to create a tar archive until one works. 1110 +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' 1111 + 1112 +m4_if([$1], [v7], 1113 + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], 1114 + 1115 + [m4_case([$1], 1116 + [ustar], 1117 + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. 1118 + # There is notably a 21 bits limit for the UID and the GID. In fact, 1119 + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 1120 + # and bug#13588). 1121 + am_max_uid=2097151 # 2^21 - 1 1122 + am_max_gid=$am_max_uid 1123 + # The $UID and $GID variables are not portable, so we need to resort 1124 + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls 1125 + # below are definitely unexpected, so allow the users to see them 1126 + # (that is, avoid stderr redirection). 1127 + am_uid=`id -u || echo unknown` 1128 + am_gid=`id -g || echo unknown` 1129 + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) 1130 + if test $am_uid -le $am_max_uid; then 1131 + AC_MSG_RESULT([yes]) 1132 + else 1133 + AC_MSG_RESULT([no]) 1134 + _am_tools=none 1135 + fi 1136 + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) 1137 + if test $am_gid -le $am_max_gid; then 1138 + AC_MSG_RESULT([yes]) 1139 + else 1140 + AC_MSG_RESULT([no]) 1141 + _am_tools=none 1142 + fi], 1143 + 1144 + [pax], 1145 + [], 1146 + 1147 + [m4_fatal([Unknown tar format])]) 1148 + 1149 + AC_MSG_CHECKING([how to create a $1 tar archive]) 1150 + 1151 + # Go ahead even if we have the value already cached. We do so because we 1152 + # need to set the values for the 'am__tar' and 'am__untar' variables. 1153 + _am_tools=${am_cv_prog_tar_$1-$_am_tools} 1154 + 1155 + for _am_tool in $_am_tools; do 1156 + case $_am_tool in 1157 + gnutar) 1158 + for _am_tar in tar gnutar gtar; do 1159 + AM_RUN_LOG([$_am_tar --version]) && break 1160 + done 1161 + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' 1162 + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' 1163 + am__untar="$_am_tar -xf -" 1164 + ;; 1165 + plaintar) 1166 + # Must skip GNU tar: if it does not support --format= it doesn't create 1167 + # ustar tarball either. 1168 + (tar --version) >/dev/null 2>&1 && continue 1169 + am__tar='tar chf - "$$tardir"' 1170 + am__tar_='tar chf - "$tardir"' 1171 + am__untar='tar xf -' 1172 + ;; 1173 + pax) 1174 + am__tar='pax -L -x $1 -w "$$tardir"' 1175 + am__tar_='pax -L -x $1 -w "$tardir"' 1176 + am__untar='pax -r' 1177 + ;; 1178 + cpio) 1179 + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' 1180 + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' 1181 + am__untar='cpio -i -H $1 -d' 1182 + ;; 1183 + none) 1184 + am__tar=false 1185 + am__tar_=false 1186 + am__untar=false 1187 + ;; 1188 + esac 1189 + 1190 + # If the value was cached, stop now. We just wanted to have am__tar 1191 + # and am__untar set. 1192 + test -n "${am_cv_prog_tar_$1}" && break 1193 + 1194 + # tar/untar a dummy directory, and stop if the command works. 1195 + rm -rf conftest.dir 1196 + mkdir conftest.dir 1197 + echo GrepMe > conftest.dir/file 1198 + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) 1199 + rm -rf conftest.dir 1200 + if test -s conftest.tar; then 1201 + AM_RUN_LOG([$am__untar <conftest.tar]) 1202 + AM_RUN_LOG([cat conftest.dir/file]) 1203 + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break 1204 + fi 1205 + done 1206 + rm -rf conftest.dir 1207 + 1208 + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) 1209 + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) 1210 + 1211 +AC_SUBST([am__tar]) 1212 +AC_SUBST([am__untar]) 1213 +]) # _AM_PROG_TAR 1214 + 1215 +m4_include([m4/libtool.m4]) 1216 +m4_include([m4/ltoptions.m4]) 1217 +m4_include([m4/ltsugar.m4]) 1218 +m4_include([m4/ltversion.m4]) 1219 +m4_include([m4/lt~obsolete.m4])
Added compile.
1 +#! /bin/sh 2 +# Wrapper for compilers which do not understand '-c -o'. 3 + 4 +scriptversion=2012-10-14.11; # UTC 5 + 6 +# Copyright (C) 1999-2013 Free Software Foundation, Inc. 7 +# Written by Tom Tromey <tromey@cygnus.com>. 8 +# 9 +# This program is free software; you can redistribute it and/or modify 10 +# it under the terms of the GNU General Public License as published by 11 +# the Free Software Foundation; either version 2, or (at your option) 12 +# any later version. 13 +# 14 +# This program is distributed in the hope that it will be useful, 15 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 16 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 +# GNU General Public License for more details. 18 +# 19 +# You should have received a copy of the GNU General Public License 20 +# along with this program. If not, see <http://www.gnu.org/licenses/>. 21 + 22 +# As a special exception to the GNU General Public License, if you 23 +# distribute this file as part of a program that contains a 24 +# configuration script generated by Autoconf, you may include it under 25 +# the same distribution terms that you use for the rest of that program. 26 + 27 +# This file is maintained in Automake, please report 28 +# bugs to <bug-automake@gnu.org> or send patches to 29 +# <automake-patches@gnu.org>. 30 + 31 +nl=' 32 +' 33 + 34 +# We need space, tab and new line, in precisely that order. Quoting is 35 +# there to prevent tools from complaining about whitespace usage. 36 +IFS=" "" $nl" 37 + 38 +file_conv= 39 + 40 +# func_file_conv build_file lazy 41 +# Convert a $build file to $host form and store it in $file 42 +# Currently only supports Windows hosts. If the determined conversion 43 +# type is listed in (the comma separated) LAZY, no conversion will 44 +# take place. 45 +func_file_conv () 46 +{ 47 + file=$1 48 + case $file in 49 + / | /[!/]*) # absolute file, and not a UNC file 50 + if test -z "$file_conv"; then 51 + # lazily determine how to convert abs files 52 + case `uname -s` in 53 + MINGW*) 54 + file_conv=mingw 55 + ;; 56 + CYGWIN*) 57 + file_conv=cygwin 58 + ;; 59 + *) 60 + file_conv=wine 61 + ;; 62 + esac 63 + fi 64 + case $file_conv/,$2, in 65 + *,$file_conv,*) 66 + ;; 67 + mingw/*) 68 + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` 69 + ;; 70 + cygwin/*) 71 + file=`cygpath -m "$file" || echo "$file"` 72 + ;; 73 + wine/*) 74 + file=`winepath -w "$file" || echo "$file"` 75 + ;; 76 + esac 77 + ;; 78 + esac 79 +} 80 + 81 +# func_cl_dashL linkdir 82 +# Make cl look for libraries in LINKDIR 83 +func_cl_dashL () 84 +{ 85 + func_file_conv "$1" 86 + if test -z "$lib_path"; then 87 + lib_path=$file 88 + else 89 + lib_path="$lib_path;$file" 90 + fi 91 + linker_opts="$linker_opts -LIBPATH:$file" 92 +} 93 + 94 +# func_cl_dashl library 95 +# Do a library search-path lookup for cl 96 +func_cl_dashl () 97 +{ 98 + lib=$1 99 + found=no 100 + save_IFS=$IFS 101 + IFS=';' 102 + for dir in $lib_path $LIB 103 + do 104 + IFS=$save_IFS 105 + if $shared && test -f "$dir/$lib.dll.lib"; then 106 + found=yes 107 + lib=$dir/$lib.dll.lib 108 + break 109 + fi 110 + if test -f "$dir/$lib.lib"; then 111 + found=yes 112 + lib=$dir/$lib.lib 113 + break 114 + fi 115 + if test -f "$dir/lib$lib.a"; then 116 + found=yes 117 + lib=$dir/lib$lib.a 118 + break 119 + fi 120 + done 121 + IFS=$save_IFS 122 + 123 + if test "$found" != yes; then 124 + lib=$lib.lib 125 + fi 126 +} 127 + 128 +# func_cl_wrapper cl arg... 129 +# Adjust compile command to suit cl 130 +func_cl_wrapper () 131 +{ 132 + # Assume a capable shell 133 + lib_path= 134 + shared=: 135 + linker_opts= 136 + for arg 137 + do 138 + if test -n "$eat"; then 139 + eat= 140 + else 141 + case $1 in 142 + -o) 143 + # configure might choose to run compile as 'compile cc -o foo foo.c'. 144 + eat=1 145 + case $2 in 146 + *.o | *.[oO][bB][jJ]) 147 + func_file_conv "$2" 148 + set x "$@" -Fo"$file" 149 + shift 150 + ;; 151 + *) 152 + func_file_conv "$2" 153 + set x "$@" -Fe"$file" 154 + shift 155 + ;; 156 + esac 157 + ;; 158 + -I) 159 + eat=1 160 + func_file_conv "$2" mingw 161 + set x "$@" -I"$file" 162 + shift 163 + ;; 164 + -I*) 165 + func_file_conv "${1#-I}" mingw 166 + set x "$@" -I"$file" 167 + shift 168 + ;; 169 + -l) 170 + eat=1 171 + func_cl_dashl "$2" 172 + set x "$@" "$lib" 173 + shift 174 + ;; 175 + -l*) 176 + func_cl_dashl "${1#-l}" 177 + set x "$@" "$lib" 178 + shift 179 + ;; 180 + -L) 181 + eat=1 182 + func_cl_dashL "$2" 183 + ;; 184 + -L*) 185 + func_cl_dashL "${1#-L}" 186 + ;; 187 + -static) 188 + shared=false 189 + ;; 190 + -Wl,*) 191 + arg=${1#-Wl,} 192 + save_ifs="$IFS"; IFS=',' 193 + for flag in $arg; do 194 + IFS="$save_ifs" 195 + linker_opts="$linker_opts $flag" 196 + done 197 + IFS="$save_ifs" 198 + ;; 199 + -Xlinker) 200 + eat=1 201 + linker_opts="$linker_opts $2" 202 + ;; 203 + -*) 204 + set x "$@" "$1" 205 + shift 206 + ;; 207 + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) 208 + func_file_conv "$1" 209 + set x "$@" -Tp"$file" 210 + shift 211 + ;; 212 + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) 213 + func_file_conv "$1" mingw 214 + set x "$@" "$file" 215 + shift 216 + ;; 217 + *) 218 + set x "$@" "$1" 219 + shift 220 + ;; 221 + esac 222 + fi 223 + shift 224 + done 225 + if test -n "$linker_opts"; then 226 + linker_opts="-link$linker_opts" 227 + fi 228 + exec "$@" $linker_opts 229 + exit 1 230 +} 231 + 232 +eat= 233 + 234 +case $1 in 235 + '') 236 + echo "$0: No command. Try '$0 --help' for more information." 1>&2 237 + exit 1; 238 + ;; 239 + -h | --h*) 240 + cat <<\EOF 241 +Usage: compile [--help] [--version] PROGRAM [ARGS] 242 + 243 +Wrapper for compilers which do not understand '-c -o'. 244 +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining 245 +arguments, and rename the output as expected. 246 + 247 +If you are trying to build a whole package this is not the 248 +right script to run: please start by reading the file 'INSTALL'. 249 + 250 +Report bugs to <bug-automake@gnu.org>. 251 +EOF 252 + exit $? 253 + ;; 254 + -v | --v*) 255 + echo "compile $scriptversion" 256 + exit $? 257 + ;; 258 + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) 259 + func_cl_wrapper "$@" # Doesn't return... 260 + ;; 261 +esac 262 + 263 +ofile= 264 +cfile= 265 + 266 +for arg 267 +do 268 + if test -n "$eat"; then 269 + eat= 270 + else 271 + case $1 in 272 + -o) 273 + # configure might choose to run compile as 'compile cc -o foo foo.c'. 274 + # So we strip '-o arg' only if arg is an object. 275 + eat=1 276 + case $2 in 277 + *.o | *.obj) 278 + ofile=$2 279 + ;; 280 + *) 281 + set x "$@" -o "$2" 282 + shift 283 + ;; 284 + esac 285 + ;; 286 + *.c) 287 + cfile=$1 288 + set x "$@" "$1" 289 + shift 290 + ;; 291 + *) 292 + set x "$@" "$1" 293 + shift 294 + ;; 295 + esac 296 + fi 297 + shift 298 +done 299 + 300 +if test -z "$ofile" || test -z "$cfile"; then 301 + # If no '-o' option was seen then we might have been invoked from a 302 + # pattern rule where we don't need one. That is ok -- this is a 303 + # normal compilation that the losing compiler can handle. If no 304 + # '.c' file was seen then we are probably linking. That is also 305 + # ok. 306 + exec "$@" 307 +fi 308 + 309 +# Name of file we expect compiler to create. 310 +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` 311 + 312 +# Create the lock directory. 313 +# Note: use '[/\\:.-]' here to ensure that we don't use the same name 314 +# that we are using for the .o file. Also, base the name on the expected 315 +# object file name, since that is what matters with a parallel build. 316 +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d 317 +while true; do 318 + if mkdir "$lockdir" >/dev/null 2>&1; then 319 + break 320 + fi 321 + sleep 1 322 +done 323 +# FIXME: race condition here if user kills between mkdir and trap. 324 +trap "rmdir '$lockdir'; exit 1" 1 2 15 325 + 326 +# Run the compile. 327 +"$@" 328 +ret=$? 329 + 330 +if test -f "$cofile"; then 331 + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" 332 +elif test -f "${cofile}bj"; then 333 + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" 334 +fi 335 + 336 +rmdir "$lockdir" 337 +exit $ret 338 + 339 +# Local Variables: 340 +# mode: shell-script 341 +# sh-indentation: 2 342 +# eval: (add-hook 'write-file-hooks 'time-stamp) 343 +# time-stamp-start: "scriptversion=" 344 +# time-stamp-format: "%:y-%02m-%02d.%02H" 345 +# time-stamp-time-zone: "UTC" 346 +# time-stamp-end: "; # UTC" 347 +# End:
Added config.guess.
1 +#! /bin/sh 2 +# Attempt to guess a canonical system name. 3 +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 5 +# Free Software Foundation, Inc. 6 + 7 +timestamp='2009-11-20' 8 + 9 +# This file is free software; you can redistribute it and/or modify it 10 +# under the terms of the GNU General Public License as published by 11 +# the Free Software Foundation; either version 2 of the License, or 12 +# (at your option) any later version. 13 +# 14 +# This program is distributed in the hope that it will be useful, but 15 +# WITHOUT ANY WARRANTY; without even the implied warranty of 16 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 +# General Public License for more details. 18 +# 19 +# You should have received a copy of the GNU General Public License 20 +# along with this program; if not, write to the Free Software 21 +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 22 +# 02110-1301, USA. 23 +# 24 +# As a special exception to the GNU General Public License, if you 25 +# distribute this file as part of a program that contains a 26 +# configuration script generated by Autoconf, you may include it under 27 +# the same distribution terms that you use for the rest of that program. 28 + 29 + 30 +# Originally written by Per Bothner. Please send patches (context 31 +# diff format) to <config-patches@gnu.org> and include a ChangeLog 32 +# entry. 33 +# 34 +# This script attempts to guess a canonical system name similar to 35 +# config.sub. If it succeeds, it prints the system name on stdout, and 36 +# exits with 0. Otherwise, it exits with 1. 37 +# 38 +# You can get the latest version of this script from: 39 +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 40 + 41 +me=`echo "$0" | sed -e 's,.*/,,'` 42 + 43 +usage="\ 44 +Usage: $0 [OPTION] 45 + 46 +Output the configuration name of the system \`$me' is run on. 47 + 48 +Operation modes: 49 + -h, --help print this help, then exit 50 + -t, --time-stamp print date of last modification, then exit 51 + -v, --version print version number, then exit 52 + 53 +Report bugs and patches to <config-patches@gnu.org>." 54 + 55 +version="\ 56 +GNU config.guess ($timestamp) 57 + 58 +Originally written by Per Bothner. 59 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 60 +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 61 + 62 +This is free software; see the source for copying conditions. There is NO 63 +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 64 + 65 +help=" 66 +Try \`$me --help' for more information." 67 + 68 +# Parse command line 69 +while test $# -gt 0 ; do 70 + case $1 in 71 + --time-stamp | --time* | -t ) 72 + echo "$timestamp" ; exit ;; 73 + --version | -v ) 74 + echo "$version" ; exit ;; 75 + --help | --h* | -h ) 76 + echo "$usage"; exit ;; 77 + -- ) # Stop option processing 78 + shift; break ;; 79 + - ) # Use stdin as input. 80 + break ;; 81 + -* ) 82 + echo "$me: invalid option $1$help" >&2 83 + exit 1 ;; 84 + * ) 85 + break ;; 86 + esac 87 +done 88 + 89 +if test $# != 0; then 90 + echo "$me: too many arguments$help" >&2 91 + exit 1 92 +fi 93 + 94 +trap 'exit 1' 1 2 15 95 + 96 +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a 97 +# compiler to aid in system detection is discouraged as it requires 98 +# temporary files to be created and, as you can see below, it is a 99 +# headache to deal with in a portable fashion. 100 + 101 +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still 102 +# use `HOST_CC' if defined, but it is deprecated. 103 + 104 +# Portable tmp directory creation inspired by the Autoconf team. 105 + 106 +set_cc_for_build=' 107 +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; 108 +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; 109 +: ${TMPDIR=/tmp} ; 110 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || 111 + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || 112 + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || 113 + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; 114 +dummy=$tmp/dummy ; 115 +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; 116 +case $CC_FOR_BUILD,$HOST_CC,$CC in 117 + ,,) echo "int x;" > $dummy.c ; 118 + for c in cc gcc c89 c99 ; do 119 + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then 120 + CC_FOR_BUILD="$c"; break ; 121 + fi ; 122 + done ; 123 + if test x"$CC_FOR_BUILD" = x ; then 124 + CC_FOR_BUILD=no_compiler_found ; 125 + fi 126 + ;; 127 + ,,*) CC_FOR_BUILD=$CC ;; 128 + ,*,*) CC_FOR_BUILD=$HOST_CC ;; 129 +esac ; set_cc_for_build= ;' 130 + 131 +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. 132 +# (ghazi@noc.rutgers.edu 1994-08-24) 133 +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then 134 + PATH=$PATH:/.attbin ; export PATH 135 +fi 136 + 137 +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown 138 +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown 139 +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown 140 +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown 141 + 142 +# Note: order is significant - the case branches are not exclusive. 143 + 144 +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 145 + *:NetBSD:*:*) 146 + # NetBSD (nbsd) targets should (where applicable) match one or 147 + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, 148 + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently 149 + # switched to ELF, *-*-netbsd* would select the old 150 + # object file format. This provides both forward 151 + # compatibility and a consistent mechanism for selecting the 152 + # object file format. 153 + # 154 + # Note: NetBSD doesn't particularly care about the vendor 155 + # portion of the name. We always set it to "unknown". 156 + sysctl="sysctl -n hw.machine_arch" 157 + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ 158 + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` 159 + case "${UNAME_MACHINE_ARCH}" in 160 + armeb) machine=armeb-unknown ;; 161 + arm*) machine=arm-unknown ;; 162 + sh3el) machine=shl-unknown ;; 163 + sh3eb) machine=sh-unknown ;; 164 + sh5el) machine=sh5le-unknown ;; 165 + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; 166 + esac 167 + # The Operating System including object format, if it has switched 168 + # to ELF recently, or will in the future. 169 + case "${UNAME_MACHINE_ARCH}" in 170 + arm*|i386|m68k|ns32k|sh3*|sparc|vax) 171 + eval $set_cc_for_build 172 + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ 173 + | grep -q __ELF__ 174 + then 175 + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). 176 + # Return netbsd for either. FIX? 177 + os=netbsd 178 + else 179 + os=netbsdelf 180 + fi 181 + ;; 182 + *) 183 + os=netbsd 184 + ;; 185 + esac 186 + # The OS release 187 + # Debian GNU/NetBSD machines have a different userland, and 188 + # thus, need a distinct triplet. However, they do not need 189 + # kernel version information, so it can be replaced with a 190 + # suitable tag, in the style of linux-gnu. 191 + case "${UNAME_VERSION}" in 192 + Debian*) 193 + release='-gnu' 194 + ;; 195 + *) 196 + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` 197 + ;; 198 + esac 199 + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: 200 + # contains redundant information, the shorter form: 201 + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. 202 + echo "${machine}-${os}${release}" 203 + exit ;; 204 + *:OpenBSD:*:*) 205 + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` 206 + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} 207 + exit ;; 208 + *:ekkoBSD:*:*) 209 + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} 210 + exit ;; 211 + *:SolidBSD:*:*) 212 + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} 213 + exit ;; 214 + macppc:MirBSD:*:*) 215 + echo powerpc-unknown-mirbsd${UNAME_RELEASE} 216 + exit ;; 217 + *:MirBSD:*:*) 218 + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} 219 + exit ;; 220 + alpha:OSF1:*:*) 221 + case $UNAME_RELEASE in 222 + *4.0) 223 + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` 224 + ;; 225 + *5.*) 226 + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` 227 + ;; 228 + esac 229 + # According to Compaq, /usr/sbin/psrinfo has been available on 230 + # OSF/1 and Tru64 systems produced since 1995. I hope that 231 + # covers most systems running today. This code pipes the CPU 232 + # types through head -n 1, so we only detect the type of CPU 0. 233 + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` 234 + case "$ALPHA_CPU_TYPE" in 235 + "EV4 (21064)") 236 + UNAME_MACHINE="alpha" ;; 237 + "EV4.5 (21064)") 238 + UNAME_MACHINE="alpha" ;; 239 + "LCA4 (21066/21068)") 240 + UNAME_MACHINE="alpha" ;; 241 + "EV5 (21164)") 242 + UNAME_MACHINE="alphaev5" ;; 243 + "EV5.6 (21164A)") 244 + UNAME_MACHINE="alphaev56" ;; 245 + "EV5.6 (21164PC)") 246 + UNAME_MACHINE="alphapca56" ;; 247 + "EV5.7 (21164PC)") 248 + UNAME_MACHINE="alphapca57" ;; 249 + "EV6 (21264)") 250 + UNAME_MACHINE="alphaev6" ;; 251 + "EV6.7 (21264A)") 252 + UNAME_MACHINE="alphaev67" ;; 253 + "EV6.8CB (21264C)") 254 + UNAME_MACHINE="alphaev68" ;; 255 + "EV6.8AL (21264B)") 256 + UNAME_MACHINE="alphaev68" ;; 257 + "EV6.8CX (21264D)") 258 + UNAME_MACHINE="alphaev68" ;; 259 + "EV6.9A (21264/EV69A)") 260 + UNAME_MACHINE="alphaev69" ;; 261 + "EV7 (21364)") 262 + UNAME_MACHINE="alphaev7" ;; 263 + "EV7.9 (21364A)") 264 + UNAME_MACHINE="alphaev79" ;; 265 + esac 266 + # A Pn.n version is a patched version. 267 + # A Vn.n version is a released version. 268 + # A Tn.n version is a released field test version. 269 + # A Xn.n version is an unreleased experimental baselevel. 270 + # 1.2 uses "1.2" for uname -r. 271 + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 272 + exit ;; 273 + Alpha\ *:Windows_NT*:*) 274 + # How do we know it's Interix rather than the generic POSIX subsystem? 275 + # Should we change UNAME_MACHINE based on the output of uname instead 276 + # of the specific Alpha model? 277 + echo alpha-pc-interix 278 + exit ;; 279 + 21064:Windows_NT:50:3) 280 + echo alpha-dec-winnt3.5 281 + exit ;; 282 + Amiga*:UNIX_System_V:4.0:*) 283 + echo m68k-unknown-sysv4 284 + exit ;; 285 + *:[Aa]miga[Oo][Ss]:*:*) 286 + echo ${UNAME_MACHINE}-unknown-amigaos 287 + exit ;; 288 + *:[Mm]orph[Oo][Ss]:*:*) 289 + echo ${UNAME_MACHINE}-unknown-morphos 290 + exit ;; 291 + *:OS/390:*:*) 292 + echo i370-ibm-openedition 293 + exit ;; 294 + *:z/VM:*:*) 295 + echo s390-ibm-zvmoe 296 + exit ;; 297 + *:OS400:*:*) 298 + echo powerpc-ibm-os400 299 + exit ;; 300 + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) 301 + echo arm-acorn-riscix${UNAME_RELEASE} 302 + exit ;; 303 + arm:riscos:*:*|arm:RISCOS:*:*) 304 + echo arm-unknown-riscos 305 + exit ;; 306 + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) 307 + echo hppa1.1-hitachi-hiuxmpp 308 + exit ;; 309 + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) 310 + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. 311 + if test "`(/bin/universe) 2>/dev/null`" = att ; then 312 + echo pyramid-pyramid-sysv3 313 + else 314 + echo pyramid-pyramid-bsd 315 + fi 316 + exit ;; 317 + NILE*:*:*:dcosx) 318 + echo pyramid-pyramid-svr4 319 + exit ;; 320 + DRS?6000:unix:4.0:6*) 321 + echo sparc-icl-nx6 322 + exit ;; 323 + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) 324 + case `/usr/bin/uname -p` in 325 + sparc) echo sparc-icl-nx7; exit ;; 326 + esac ;; 327 + s390x:SunOS:*:*) 328 + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 329 + exit ;; 330 + sun4H:SunOS:5.*:*) 331 + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 332 + exit ;; 333 + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 334 + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 335 + exit ;; 336 + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) 337 + echo i386-pc-auroraux${UNAME_RELEASE} 338 + exit ;; 339 + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 340 + eval $set_cc_for_build 341 + SUN_ARCH="i386" 342 + # If there is a compiler, see if it is configured for 64-bit objects. 343 + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. 344 + # This test works for both compilers. 345 + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then 346 + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ 347 + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ 348 + grep IS_64BIT_ARCH >/dev/null 349 + then 350 + SUN_ARCH="x86_64" 351 + fi 352 + fi 353 + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 354 + exit ;; 355 + sun4*:SunOS:6*:*) 356 + # According to config.sub, this is the proper way to canonicalize 357 + # SunOS6. Hard to guess exactly what SunOS6 will be like, but 358 + # it's likely to be more like Solaris than SunOS4. 359 + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 360 + exit ;; 361 + sun4*:SunOS:*:*) 362 + case "`/usr/bin/arch -k`" in 363 + Series*|S4*) 364 + UNAME_RELEASE=`uname -v` 365 + ;; 366 + esac 367 + # Japanese Language versions have a version number like `4.1.3-JL'. 368 + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` 369 + exit ;; 370 + sun3*:SunOS:*:*) 371 + echo m68k-sun-sunos${UNAME_RELEASE} 372 + exit ;; 373 + sun*:*:4.2BSD:*) 374 + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` 375 + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 376 + case "`/bin/arch`" in 377 + sun3) 378 + echo m68k-sun-sunos${UNAME_RELEASE} 379 + ;; 380 + sun4) 381 + echo sparc-sun-sunos${UNAME_RELEASE} 382 + ;; 383 + esac 384 + exit ;; 385 + aushp:SunOS:*:*) 386 + echo sparc-auspex-sunos${UNAME_RELEASE} 387 + exit ;; 388 + # The situation for MiNT is a little confusing. The machine name 389 + # can be virtually everything (everything which is not 390 + # "atarist" or "atariste" at least should have a processor 391 + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" 392 + # to the lowercase version "mint" (or "freemint"). Finally 393 + # the system name "TOS" denotes a system which is actually not 394 + # MiNT. But MiNT is downward compatible to TOS, so this should 395 + # be no problem. 396 + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) 397 + echo m68k-atari-mint${UNAME_RELEASE} 398 + exit ;; 399 + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) 400 + echo m68k-atari-mint${UNAME_RELEASE} 401 + exit ;; 402 + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) 403 + echo m68k-atari-mint${UNAME_RELEASE} 404 + exit ;; 405 + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) 406 + echo m68k-milan-mint${UNAME_RELEASE} 407 + exit ;; 408 + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) 409 + echo m68k-hades-mint${UNAME_RELEASE} 410 + exit ;; 411 + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) 412 + echo m68k-unknown-mint${UNAME_RELEASE} 413 + exit ;; 414 + m68k:machten:*:*) 415 + echo m68k-apple-machten${UNAME_RELEASE} 416 + exit ;; 417 + powerpc:machten:*:*) 418 + echo powerpc-apple-machten${UNAME_RELEASE} 419 + exit ;; 420 + RISC*:Mach:*:*) 421 + echo mips-dec-mach_bsd4.3 422 + exit ;; 423 + RISC*:ULTRIX:*:*) 424 + echo mips-dec-ultrix${UNAME_RELEASE} 425 + exit ;; 426 + VAX*:ULTRIX*:*:*) 427 + echo vax-dec-ultrix${UNAME_RELEASE} 428 + exit ;; 429 + 2020:CLIX:*:* | 2430:CLIX:*:*) 430 + echo clipper-intergraph-clix${UNAME_RELEASE} 431 + exit ;; 432 + mips:*:*:UMIPS | mips:*:*:RISCos) 433 + eval $set_cc_for_build 434 + sed 's/^ //' << EOF >$dummy.c 435 +#ifdef __cplusplus 436 +#include <stdio.h> /* for printf() prototype */ 437 + int main (int argc, char *argv[]) { 438 +#else 439 + int main (argc, argv) int argc; char *argv[]; { 440 +#endif 441 + #if defined (host_mips) && defined (MIPSEB) 442 + #if defined (SYSTYPE_SYSV) 443 + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); 444 + #endif 445 + #if defined (SYSTYPE_SVR4) 446 + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); 447 + #endif 448 + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) 449 + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); 450 + #endif 451 + #endif 452 + exit (-1); 453 + } 454 +EOF 455 + $CC_FOR_BUILD -o $dummy $dummy.c && 456 + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && 457 + SYSTEM_NAME=`$dummy $dummyarg` && 458 + { echo "$SYSTEM_NAME"; exit; } 459 + echo mips-mips-riscos${UNAME_RELEASE} 460 + exit ;; 461 + Motorola:PowerMAX_OS:*:*) 462 + echo powerpc-motorola-powermax 463 + exit ;; 464 + Motorola:*:4.3:PL8-*) 465 + echo powerpc-harris-powermax 466 + exit ;; 467 + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) 468 + echo powerpc-harris-powermax 469 + exit ;; 470 + Night_Hawk:Power_UNIX:*:*) 471 + echo powerpc-harris-powerunix 472 + exit ;; 473 + m88k:CX/UX:7*:*) 474 + echo m88k-harris-cxux7 475 + exit ;; 476 + m88k:*:4*:R4*) 477 + echo m88k-motorola-sysv4 478 + exit ;; 479 + m88k:*:3*:R3*) 480 + echo m88k-motorola-sysv3 481 + exit ;; 482 + AViiON:dgux:*:*) 483 + # DG/UX returns AViiON for all architectures 484 + UNAME_PROCESSOR=`/usr/bin/uname -p` 485 + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] 486 + then 487 + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ 488 + [ ${TARGET_BINARY_INTERFACE}x = x ] 489 + then 490 + echo m88k-dg-dgux${UNAME_RELEASE} 491 + else 492 + echo m88k-dg-dguxbcs${UNAME_RELEASE} 493 + fi 494 + else 495 + echo i586-dg-dgux${UNAME_RELEASE} 496 + fi 497 + exit ;; 498 + M88*:DolphinOS:*:*) # DolphinOS (SVR3) 499 + echo m88k-dolphin-sysv3 500 + exit ;; 501 + M88*:*:R3*:*) 502 + # Delta 88k system running SVR3 503 + echo m88k-motorola-sysv3 504 + exit ;; 505 + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) 506 + echo m88k-tektronix-sysv3 507 + exit ;; 508 + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) 509 + echo m68k-tektronix-bsd 510 + exit ;; 511 + *:IRIX*:*:*) 512 + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` 513 + exit ;; 514 + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. 515 + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id 516 + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' 517 + i*86:AIX:*:*) 518 + echo i386-ibm-aix 519 + exit ;; 520 + ia64:AIX:*:*) 521 + if [ -x /usr/bin/oslevel ] ; then 522 + IBM_REV=`/usr/bin/oslevel` 523 + else 524 + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} 525 + fi 526 + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} 527 + exit ;; 528 + *:AIX:2:3) 529 + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then 530 + eval $set_cc_for_build 531 + sed 's/^ //' << EOF >$dummy.c 532 + #include <sys/systemcfg.h> 533 + 534 + main() 535 + { 536 + if (!__power_pc()) 537 + exit(1); 538 + puts("powerpc-ibm-aix3.2.5"); 539 + exit(0); 540 + } 541 +EOF 542 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` 543 + then 544 + echo "$SYSTEM_NAME" 545 + else 546 + echo rs6000-ibm-aix3.2.5 547 + fi 548 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then 549 + echo rs6000-ibm-aix3.2.4 550 + else 551 + echo rs6000-ibm-aix3.2 552 + fi 553 + exit ;; 554 + *:AIX:*:[456]) 555 + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 556 + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then 557 + IBM_ARCH=rs6000 558 + else 559 + IBM_ARCH=powerpc 560 + fi 561 + if [ -x /usr/bin/oslevel ] ; then 562 + IBM_REV=`/usr/bin/oslevel` 563 + else 564 + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} 565 + fi 566 + echo ${IBM_ARCH}-ibm-aix${IBM_REV} 567 + exit ;; 568 + *:AIX:*:*) 569 + echo rs6000-ibm-aix 570 + exit ;; 571 + ibmrt:4.4BSD:*|romp-ibm:BSD:*) 572 + echo romp-ibm-bsd4.4 573 + exit ;; 574 + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and 575 + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to 576 + exit ;; # report: romp-ibm BSD 4.3 577 + *:BOSX:*:*) 578 + echo rs6000-bull-bosx 579 + exit ;; 580 + DPX/2?00:B.O.S.:*:*) 581 + echo m68k-bull-sysv3 582 + exit ;; 583 + 9000/[34]??:4.3bsd:1.*:*) 584 + echo m68k-hp-bsd 585 + exit ;; 586 + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) 587 + echo m68k-hp-bsd4.4 588 + exit ;; 589 + 9000/[34678]??:HP-UX:*:*) 590 + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 591 + case "${UNAME_MACHINE}" in 592 + 9000/31? ) HP_ARCH=m68000 ;; 593 + 9000/[34]?? ) HP_ARCH=m68k ;; 594 + 9000/[678][0-9][0-9]) 595 + if [ -x /usr/bin/getconf ]; then 596 + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` 597 + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` 598 + case "${sc_cpu_version}" in 599 + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 600 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 601 + 532) # CPU_PA_RISC2_0 602 + case "${sc_kernel_bits}" in 603 + 32) HP_ARCH="hppa2.0n" ;; 604 + 64) HP_ARCH="hppa2.0w" ;; 605 + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 606 + esac ;; 607 + esac 608 + fi 609 + if [ "${HP_ARCH}" = "" ]; then 610 + eval $set_cc_for_build 611 + sed 's/^ //' << EOF >$dummy.c 612 + 613 + #define _HPUX_SOURCE 614 + #include <stdlib.h> 615 + #include <unistd.h> 616 + 617 + int main () 618 + { 619 + #if defined(_SC_KERNEL_BITS) 620 + long bits = sysconf(_SC_KERNEL_BITS); 621 + #endif 622 + long cpu = sysconf (_SC_CPU_VERSION); 623 + 624 + switch (cpu) 625 + { 626 + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; 627 + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; 628 + case CPU_PA_RISC2_0: 629 + #if defined(_SC_KERNEL_BITS) 630 + switch (bits) 631 + { 632 + case 64: puts ("hppa2.0w"); break; 633 + case 32: puts ("hppa2.0n"); break; 634 + default: puts ("hppa2.0"); break; 635 + } break; 636 + #else /* !defined(_SC_KERNEL_BITS) */ 637 + puts ("hppa2.0"); break; 638 + #endif 639 + default: puts ("hppa1.0"); break; 640 + } 641 + exit (0); 642 + } 643 +EOF 644 + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` 645 + test -z "$HP_ARCH" && HP_ARCH=hppa 646 + fi ;; 647 + esac 648 + if [ ${HP_ARCH} = "hppa2.0w" ] 649 + then 650 + eval $set_cc_for_build 651 + 652 + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating 653 + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler 654 + # generating 64-bit code. GNU and HP use different nomenclature: 655 + # 656 + # $ CC_FOR_BUILD=cc ./config.guess 657 + # => hppa2.0w-hp-hpux11.23 658 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess 659 + # => hppa64-hp-hpux11.23 660 + 661 + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | 662 + grep -q __LP64__ 663 + then 664 + HP_ARCH="hppa2.0w" 665 + else 666 + HP_ARCH="hppa64" 667 + fi 668 + fi 669 + echo ${HP_ARCH}-hp-hpux${HPUX_REV} 670 + exit ;; 671 + ia64:HP-UX:*:*) 672 + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 673 + echo ia64-hp-hpux${HPUX_REV} 674 + exit ;; 675 + 3050*:HI-UX:*:*) 676 + eval $set_cc_for_build 677 + sed 's/^ //' << EOF >$dummy.c 678 + #include <unistd.h> 679 + int 680 + main () 681 + { 682 + long cpu = sysconf (_SC_CPU_VERSION); 683 + /* The order matters, because CPU_IS_HP_MC68K erroneously returns 684 + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct 685 + results, however. */ 686 + if (CPU_IS_PA_RISC (cpu)) 687 + { 688 + switch (cpu) 689 + { 690 + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; 691 + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; 692 + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; 693 + default: puts ("hppa-hitachi-hiuxwe2"); break; 694 + } 695 + } 696 + else if (CPU_IS_HP_MC68K (cpu)) 697 + puts ("m68k-hitachi-hiuxwe2"); 698 + else puts ("unknown-hitachi-hiuxwe2"); 699 + exit (0); 700 + } 701 +EOF 702 + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && 703 + { echo "$SYSTEM_NAME"; exit; } 704 + echo unknown-hitachi-hiuxwe2 705 + exit ;; 706 + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) 707 + echo hppa1.1-hp-bsd 708 + exit ;; 709 + 9000/8??:4.3bsd:*:*) 710 + echo hppa1.0-hp-bsd 711 + exit ;; 712 + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) 713 + echo hppa1.0-hp-mpeix 714 + exit ;; 715 + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) 716 + echo hppa1.1-hp-osf 717 + exit ;; 718 + hp8??:OSF1:*:*) 719 + echo hppa1.0-hp-osf 720 + exit ;; 721 + i*86:OSF1:*:*) 722 + if [ -x /usr/sbin/sysversion ] ; then 723 + echo ${UNAME_MACHINE}-unknown-osf1mk 724 + else 725 + echo ${UNAME_MACHINE}-unknown-osf1 726 + fi 727 + exit ;; 728 + parisc*:Lites*:*:*) 729 + echo hppa1.1-hp-lites 730 + exit ;; 731 + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) 732 + echo c1-convex-bsd 733 + exit ;; 734 + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) 735 + if getsysinfo -f scalar_acc 736 + then echo c32-convex-bsd 737 + else echo c2-convex-bsd 738 + fi 739 + exit ;; 740 + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) 741 + echo c34-convex-bsd 742 + exit ;; 743 + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) 744 + echo c38-convex-bsd 745 + exit ;; 746 + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) 747 + echo c4-convex-bsd 748 + exit ;; 749 + CRAY*Y-MP:*:*:*) 750 + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 751 + exit ;; 752 + CRAY*[A-Z]90:*:*:*) 753 + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ 754 + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ 755 + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ 756 + -e 's/\.[^.]*$/.X/' 757 + exit ;; 758 + CRAY*TS:*:*:*) 759 + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 760 + exit ;; 761 + CRAY*T3E:*:*:*) 762 + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 763 + exit ;; 764 + CRAY*SV1:*:*:*) 765 + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 766 + exit ;; 767 + *:UNICOS/mp:*:*) 768 + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 769 + exit ;; 770 + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) 771 + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 772 + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 773 + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` 774 + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 775 + exit ;; 776 + 5000:UNIX_System_V:4.*:*) 777 + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 778 + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` 779 + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 780 + exit ;; 781 + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) 782 + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} 783 + exit ;; 784 + sparc*:BSD/OS:*:*) 785 + echo sparc-unknown-bsdi${UNAME_RELEASE} 786 + exit ;; 787 + *:BSD/OS:*:*) 788 + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} 789 + exit ;; 790 + *:FreeBSD:*:*) 791 + case ${UNAME_MACHINE} in 792 + pc98) 793 + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 794 + amd64) 795 + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 796 + *) 797 + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 798 + esac 799 + exit ;; 800 + i*:CYGWIN*:*) 801 + echo ${UNAME_MACHINE}-pc-cygwin 802 + exit ;; 803 + *:MINGW*:*) 804 + echo ${UNAME_MACHINE}-pc-mingw32 805 + exit ;; 806 + i*:windows32*:*) 807 + # uname -m includes "-pc" on this system. 808 + echo ${UNAME_MACHINE}-mingw32 809 + exit ;; 810 + i*:PW*:*) 811 + echo ${UNAME_MACHINE}-pc-pw32 812 + exit ;; 813 + *:Interix*:*) 814 + case ${UNAME_MACHINE} in 815 + x86) 816 + echo i586-pc-interix${UNAME_RELEASE} 817 + exit ;; 818 + authenticamd | genuineintel | EM64T) 819 + echo x86_64-unknown-interix${UNAME_RELEASE} 820 + exit ;; 821 + IA64) 822 + echo ia64-unknown-interix${UNAME_RELEASE} 823 + exit ;; 824 + esac ;; 825 + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) 826 + echo i${UNAME_MACHINE}-pc-mks 827 + exit ;; 828 + 8664:Windows_NT:*) 829 + echo x86_64-pc-mks 830 + exit ;; 831 + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) 832 + # How do we know it's Interix rather than the generic POSIX subsystem? 833 + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we 834 + # UNAME_MACHINE based on the output of uname instead of i386? 835 + echo i586-pc-interix 836 + exit ;; 837 + i*:UWIN*:*) 838 + echo ${UNAME_MACHINE}-pc-uwin 839 + exit ;; 840 + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) 841 + echo x86_64-unknown-cygwin 842 + exit ;; 843 + p*:CYGWIN*:*) 844 + echo powerpcle-unknown-cygwin 845 + exit ;; 846 + prep*:SunOS:5.*:*) 847 + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 848 + exit ;; 849 + *:GNU:*:*) 850 + # the GNU system 851 + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` 852 + exit ;; 853 + *:GNU/*:*:*) 854 + # other systems with GNU libc and userland 855 + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu 856 + exit ;; 857 + i*86:Minix:*:*) 858 + echo ${UNAME_MACHINE}-pc-minix 859 + exit ;; 860 + alpha:Linux:*:*) 861 + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in 862 + EV5) UNAME_MACHINE=alphaev5 ;; 863 + EV56) UNAME_MACHINE=alphaev56 ;; 864 + PCA56) UNAME_MACHINE=alphapca56 ;; 865 + PCA57) UNAME_MACHINE=alphapca56 ;; 866 + EV6) UNAME_MACHINE=alphaev6 ;; 867 + EV67) UNAME_MACHINE=alphaev67 ;; 868 + EV68*) UNAME_MACHINE=alphaev68 ;; 869 + esac 870 + objdump --private-headers /bin/sh | grep -q ld.so.1 871 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi 872 + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} 873 + exit ;; 874 + arm*:Linux:*:*) 875 + eval $set_cc_for_build 876 + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ 877 + | grep -q __ARM_EABI__ 878 + then 879 + echo ${UNAME_MACHINE}-unknown-linux-gnu 880 + else 881 + echo ${UNAME_MACHINE}-unknown-linux-gnueabi 882 + fi 883 + exit ;; 884 + avr32*:Linux:*:*) 885 + echo ${UNAME_MACHINE}-unknown-linux-gnu 886 + exit ;; 887 + cris:Linux:*:*) 888 + echo cris-axis-linux-gnu 889 + exit ;; 890 + crisv32:Linux:*:*) 891 + echo crisv32-axis-linux-gnu 892 + exit ;; 893 + frv:Linux:*:*) 894 + echo frv-unknown-linux-gnu 895 + exit ;; 896 + i*86:Linux:*:*) 897 + LIBC=gnu 898 + eval $set_cc_for_build 899 + sed 's/^ //' << EOF >$dummy.c 900 + #ifdef __dietlibc__ 901 + LIBC=dietlibc 902 + #endif 903 +EOF 904 + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` 905 + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" 906 + exit ;; 907 + ia64:Linux:*:*) 908 + echo ${UNAME_MACHINE}-unknown-linux-gnu 909 + exit ;; 910 + m32r*:Linux:*:*) 911 + echo ${UNAME_MACHINE}-unknown-linux-gnu 912 + exit ;; 913 + m68*:Linux:*:*) 914 + echo ${UNAME_MACHINE}-unknown-linux-gnu 915 + exit ;; 916 + mips:Linux:*:* | mips64:Linux:*:*) 917 + eval $set_cc_for_build 918 + sed 's/^ //' << EOF >$dummy.c 919 + #undef CPU 920 + #undef ${UNAME_MACHINE} 921 + #undef ${UNAME_MACHINE}el 922 + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) 923 + CPU=${UNAME_MACHINE}el 924 + #else 925 + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) 926 + CPU=${UNAME_MACHINE} 927 + #else 928 + CPU= 929 + #endif 930 + #endif 931 +EOF 932 + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` 933 + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 934 + ;; 935 + or32:Linux:*:*) 936 + echo or32-unknown-linux-gnu 937 + exit ;; 938 + padre:Linux:*:*) 939 + echo sparc-unknown-linux-gnu 940 + exit ;; 941 + parisc64:Linux:*:* | hppa64:Linux:*:*) 942 + echo hppa64-unknown-linux-gnu 943 + exit ;; 944 + parisc:Linux:*:* | hppa:Linux:*:*) 945 + # Look for CPU level 946 + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in 947 + PA7*) echo hppa1.1-unknown-linux-gnu ;; 948 + PA8*) echo hppa2.0-unknown-linux-gnu ;; 949 + *) echo hppa-unknown-linux-gnu ;; 950 + esac 951 + exit ;; 952 + ppc64:Linux:*:*) 953 + echo powerpc64-unknown-linux-gnu 954 + exit ;; 955 + ppc:Linux:*:*) 956 + echo powerpc-unknown-linux-gnu 957 + exit ;; 958 + s390:Linux:*:* | s390x:Linux:*:*) 959 + echo ${UNAME_MACHINE}-ibm-linux 960 + exit ;; 961 + sh64*:Linux:*:*) 962 + echo ${UNAME_MACHINE}-unknown-linux-gnu 963 + exit ;; 964 + sh*:Linux:*:*) 965 + echo ${UNAME_MACHINE}-unknown-linux-gnu 966 + exit ;; 967 + sparc:Linux:*:* | sparc64:Linux:*:*) 968 + echo ${UNAME_MACHINE}-unknown-linux-gnu 969 + exit ;; 970 + vax:Linux:*:*) 971 + echo ${UNAME_MACHINE}-dec-linux-gnu 972 + exit ;; 973 + x86_64:Linux:*:*) 974 + echo x86_64-unknown-linux-gnu 975 + exit ;; 976 + xtensa*:Linux:*:*) 977 + echo ${UNAME_MACHINE}-unknown-linux-gnu 978 + exit ;; 979 + i*86:DYNIX/ptx:4*:*) 980 + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. 981 + # earlier versions are messed up and put the nodename in both 982 + # sysname and nodename. 983 + echo i386-sequent-sysv4 984 + exit ;; 985 + i*86:UNIX_SV:4.2MP:2.*) 986 + # Unixware is an offshoot of SVR4, but it has its own version 987 + # number series starting with 2... 988 + # I am not positive that other SVR4 systems won't match this, 989 + # I just have to hope. -- rms. 990 + # Use sysv4.2uw... so that sysv4* matches it. 991 + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} 992 + exit ;; 993 + i*86:OS/2:*:*) 994 + # If we were able to find `uname', then EMX Unix compatibility 995 + # is probably installed. 996 + echo ${UNAME_MACHINE}-pc-os2-emx 997 + exit ;; 998 + i*86:XTS-300:*:STOP) 999 + echo ${UNAME_MACHINE}-unknown-stop 1000 + exit ;; 1001 + i*86:atheos:*:*) 1002 + echo ${UNAME_MACHINE}-unknown-atheos 1003 + exit ;; 1004 + i*86:syllable:*:*) 1005 + echo ${UNAME_MACHINE}-pc-syllable 1006 + exit ;; 1007 + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) 1008 + echo i386-unknown-lynxos${UNAME_RELEASE} 1009 + exit ;; 1010 + i*86:*DOS:*:*) 1011 + echo ${UNAME_MACHINE}-pc-msdosdjgpp 1012 + exit ;; 1013 + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) 1014 + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` 1015 + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then 1016 + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} 1017 + else 1018 + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} 1019 + fi 1020 + exit ;; 1021 + i*86:*:5:[678]*) 1022 + # UnixWare 7.x, OpenUNIX and OpenServer 6. 1023 + case `/bin/uname -X | grep "^Machine"` in 1024 + *486*) UNAME_MACHINE=i486 ;; 1025 + *Pentium) UNAME_MACHINE=i586 ;; 1026 + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; 1027 + esac 1028 + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} 1029 + exit ;; 1030 + i*86:*:3.2:*) 1031 + if test -f /usr/options/cb.name; then 1032 + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` 1033 + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL 1034 + elif /bin/uname -X 2>/dev/null >/dev/null ; then 1035 + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` 1036 + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 1037 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ 1038 + && UNAME_MACHINE=i586 1039 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ 1040 + && UNAME_MACHINE=i686 1041 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ 1042 + && UNAME_MACHINE=i686 1043 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL 1044 + else 1045 + echo ${UNAME_MACHINE}-pc-sysv32 1046 + fi 1047 + exit ;; 1048 + pc:*:*:*) 1049 + # Left here for compatibility: 1050 + # uname -m prints for DJGPP always 'pc', but it prints nothing about 1051 + # the processor, so we play safe by assuming i586. 1052 + # Note: whatever this is, it MUST be the same as what config.sub 1053 + # prints for the "djgpp" host, or else GDB configury will decide that 1054 + # this is a cross-build. 1055 + echo i586-pc-msdosdjgpp 1056 + exit ;; 1057 + Intel:Mach:3*:*) 1058 + echo i386-pc-mach3 1059 + exit ;; 1060 + paragon:*:*:*) 1061 + echo i860-intel-osf1 1062 + exit ;; 1063 + i860:*:4.*:*) # i860-SVR4 1064 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then 1065 + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 1066 + else # Add other i860-SVR4 vendors below as they are discovered. 1067 + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 1068 + fi 1069 + exit ;; 1070 + mini*:CTIX:SYS*5:*) 1071 + # "miniframe" 1072 + echo m68010-convergent-sysv 1073 + exit ;; 1074 + mc68k:UNIX:SYSTEM5:3.51m) 1075 + echo m68k-convergent-sysv 1076 + exit ;; 1077 + M680?0:D-NIX:5.3:*) 1078 + echo m68k-diab-dnix 1079 + exit ;; 1080 + M68*:*:R3V[5678]*:*) 1081 + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 1082 + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) 1083 + OS_REL='' 1084 + test -r /etc/.relid \ 1085 + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` 1086 + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1087 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } 1088 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ 1089 + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 1090 + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) 1091 + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1092 + && { echo i486-ncr-sysv4; exit; } ;; 1093 + NCR*:*:4.2:* | MPRAS*:*:4.2:*) 1094 + OS_REL='.3' 1095 + test -r /etc/.relid \ 1096 + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` 1097 + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1098 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } 1099 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ 1100 + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } 1101 + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ 1102 + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 1103 + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) 1104 + echo m68k-unknown-lynxos${UNAME_RELEASE} 1105 + exit ;; 1106 + mc68030:UNIX_System_V:4.*:*) 1107 + echo m68k-atari-sysv4 1108 + exit ;; 1109 + TSUNAMI:LynxOS:2.*:*) 1110 + echo sparc-unknown-lynxos${UNAME_RELEASE} 1111 + exit ;; 1112 + rs6000:LynxOS:2.*:*) 1113 + echo rs6000-unknown-lynxos${UNAME_RELEASE} 1114 + exit ;; 1115 + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) 1116 + echo powerpc-unknown-lynxos${UNAME_RELEASE} 1117 + exit ;; 1118 + SM[BE]S:UNIX_SV:*:*) 1119 + echo mips-dde-sysv${UNAME_RELEASE} 1120 + exit ;; 1121 + RM*:ReliantUNIX-*:*:*) 1122 + echo mips-sni-sysv4 1123 + exit ;; 1124 + RM*:SINIX-*:*:*) 1125 + echo mips-sni-sysv4 1126 + exit ;; 1127 + *:SINIX-*:*:*) 1128 + if uname -p 2>/dev/null >/dev/null ; then 1129 + UNAME_MACHINE=`(uname -p) 2>/dev/null` 1130 + echo ${UNAME_MACHINE}-sni-sysv4 1131 + else 1132 + echo ns32k-sni-sysv 1133 + fi 1134 + exit ;; 1135 + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort 1136 + # says <Richard.M.Bartel@ccMail.Census.GOV> 1137 + echo i586-unisys-sysv4 1138 + exit ;; 1139 + *:UNIX_System_V:4*:FTX*) 1140 + # From Gerald Hewes <hewes@openmarket.com>. 1141 + # How about differentiating between stratus architectures? -djm 1142 + echo hppa1.1-stratus-sysv4 1143 + exit ;; 1144 + *:*:*:FTX*) 1145 + # From seanf@swdc.stratus.com. 1146 + echo i860-stratus-sysv4 1147 + exit ;; 1148 + i*86:VOS:*:*) 1149 + # From Paul.Green@stratus.com. 1150 + echo ${UNAME_MACHINE}-stratus-vos 1151 + exit ;; 1152 + *:VOS:*:*) 1153 + # From Paul.Green@stratus.com. 1154 + echo hppa1.1-stratus-vos 1155 + exit ;; 1156 + mc68*:A/UX:*:*) 1157 + echo m68k-apple-aux${UNAME_RELEASE} 1158 + exit ;; 1159 + news*:NEWS-OS:6*:*) 1160 + echo mips-sony-newsos6 1161 + exit ;; 1162 + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) 1163 + if [ -d /usr/nec ]; then 1164 + echo mips-nec-sysv${UNAME_RELEASE} 1165 + else 1166 + echo mips-unknown-sysv${UNAME_RELEASE} 1167 + fi 1168 + exit ;; 1169 + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. 1170 + echo powerpc-be-beos 1171 + exit ;; 1172 + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. 1173 + echo powerpc-apple-beos 1174 + exit ;; 1175 + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. 1176 + echo i586-pc-beos 1177 + exit ;; 1178 + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. 1179 + echo i586-pc-haiku 1180 + exit ;; 1181 + SX-4:SUPER-UX:*:*) 1182 + echo sx4-nec-superux${UNAME_RELEASE} 1183 + exit ;; 1184 + SX-5:SUPER-UX:*:*) 1185 + echo sx5-nec-superux${UNAME_RELEASE} 1186 + exit ;; 1187 + SX-6:SUPER-UX:*:*) 1188 + echo sx6-nec-superux${UNAME_RELEASE} 1189 + exit ;; 1190 + SX-7:SUPER-UX:*:*) 1191 + echo sx7-nec-superux${UNAME_RELEASE} 1192 + exit ;; 1193 + SX-8:SUPER-UX:*:*) 1194 + echo sx8-nec-superux${UNAME_RELEASE} 1195 + exit ;; 1196 + SX-8R:SUPER-UX:*:*) 1197 + echo sx8r-nec-superux${UNAME_RELEASE} 1198 + exit ;; 1199 + Power*:Rhapsody:*:*) 1200 + echo powerpc-apple-rhapsody${UNAME_RELEASE} 1201 + exit ;; 1202 + *:Rhapsody:*:*) 1203 + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} 1204 + exit ;; 1205 + *:Darwin:*:*) 1206 + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown 1207 + case $UNAME_PROCESSOR in 1208 + i386) 1209 + eval $set_cc_for_build 1210 + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then 1211 + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ 1212 + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ 1213 + grep IS_64BIT_ARCH >/dev/null 1214 + then 1215 + UNAME_PROCESSOR="x86_64" 1216 + fi 1217 + fi ;; 1218 + unknown) UNAME_PROCESSOR=powerpc ;; 1219 + esac 1220 + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} 1221 + exit ;; 1222 + *:procnto*:*:* | *:QNX:[0123456789]*:*) 1223 + UNAME_PROCESSOR=`uname -p` 1224 + if test "$UNAME_PROCESSOR" = "x86"; then 1225 + UNAME_PROCESSOR=i386 1226 + UNAME_MACHINE=pc 1227 + fi 1228 + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} 1229 + exit ;; 1230 + *:QNX:*:4*) 1231 + echo i386-pc-qnx 1232 + exit ;; 1233 + NSE-?:NONSTOP_KERNEL:*:*) 1234 + echo nse-tandem-nsk${UNAME_RELEASE} 1235 + exit ;; 1236 + NSR-?:NONSTOP_KERNEL:*:*) 1237 + echo nsr-tandem-nsk${UNAME_RELEASE} 1238 + exit ;; 1239 + *:NonStop-UX:*:*) 1240 + echo mips-compaq-nonstopux 1241 + exit ;; 1242 + BS2000:POSIX*:*:*) 1243 + echo bs2000-siemens-sysv 1244 + exit ;; 1245 + DS/*:UNIX_System_V:*:*) 1246 + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} 1247 + exit ;; 1248 + *:Plan9:*:*) 1249 + # "uname -m" is not consistent, so use $cputype instead. 386 1250 + # is converted to i386 for consistency with other x86 1251 + # operating systems. 1252 + if test "$cputype" = "386"; then 1253 + UNAME_MACHINE=i386 1254 + else 1255 + UNAME_MACHINE="$cputype" 1256 + fi 1257 + echo ${UNAME_MACHINE}-unknown-plan9 1258 + exit ;; 1259 + *:TOPS-10:*:*) 1260 + echo pdp10-unknown-tops10 1261 + exit ;; 1262 + *:TENEX:*:*) 1263 + echo pdp10-unknown-tenex 1264 + exit ;; 1265 + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) 1266 + echo pdp10-dec-tops20 1267 + exit ;; 1268 + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) 1269 + echo pdp10-xkl-tops20 1270 + exit ;; 1271 + *:TOPS-20:*:*) 1272 + echo pdp10-unknown-tops20 1273 + exit ;; 1274 + *:ITS:*:*) 1275 + echo pdp10-unknown-its 1276 + exit ;; 1277 + SEI:*:*:SEIUX) 1278 + echo mips-sei-seiux${UNAME_RELEASE} 1279 + exit ;; 1280 + *:DragonFly:*:*) 1281 + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` 1282 + exit ;; 1283 + *:*VMS:*:*) 1284 + UNAME_MACHINE=`(uname -p) 2>/dev/null` 1285 + case "${UNAME_MACHINE}" in 1286 + A*) echo alpha-dec-vms ; exit ;; 1287 + I*) echo ia64-dec-vms ; exit ;; 1288 + V*) echo vax-dec-vms ; exit ;; 1289 + esac ;; 1290 + *:XENIX:*:SysV) 1291 + echo i386-pc-xenix 1292 + exit ;; 1293 + i*86:skyos:*:*) 1294 + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' 1295 + exit ;; 1296 + i*86:rdos:*:*) 1297 + echo ${UNAME_MACHINE}-pc-rdos 1298 + exit ;; 1299 + i*86:AROS:*:*) 1300 + echo ${UNAME_MACHINE}-pc-aros 1301 + exit ;; 1302 +esac 1303 + 1304 +#echo '(No uname command or uname output not recognized.)' 1>&2 1305 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 1306 + 1307 +eval $set_cc_for_build 1308 +cat >$dummy.c <<EOF 1309 +#ifdef _SEQUENT_ 1310 +# include <sys/types.h> 1311 +# include <sys/utsname.h> 1312 +#endif 1313 +main () 1314 +{ 1315 +#if defined (sony) 1316 +#if defined (MIPSEB) 1317 + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, 1318 + I don't know.... */ 1319 + printf ("mips-sony-bsd\n"); exit (0); 1320 +#else 1321 +#include <sys/param.h> 1322 + printf ("m68k-sony-newsos%s\n", 1323 +#ifdef NEWSOS4 1324 + "4" 1325 +#else 1326 + "" 1327 +#endif 1328 + ); exit (0); 1329 +#endif 1330 +#endif 1331 + 1332 +#if defined (__arm) && defined (__acorn) && defined (__unix) 1333 + printf ("arm-acorn-riscix\n"); exit (0); 1334 +#endif 1335 + 1336 +#if defined (hp300) && !defined (hpux) 1337 + printf ("m68k-hp-bsd\n"); exit (0); 1338 +#endif 1339 + 1340 +#if defined (NeXT) 1341 +#if !defined (__ARCHITECTURE__) 1342 +#define __ARCHITECTURE__ "m68k" 1343 +#endif 1344 + int version; 1345 + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; 1346 + if (version < 4) 1347 + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); 1348 + else 1349 + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); 1350 + exit (0); 1351 +#endif 1352 + 1353 +#if defined (MULTIMAX) || defined (n16) 1354 +#if defined (UMAXV) 1355 + printf ("ns32k-encore-sysv\n"); exit (0); 1356 +#else 1357 +#if defined (CMU) 1358 + printf ("ns32k-encore-mach\n"); exit (0); 1359 +#else 1360 + printf ("ns32k-encore-bsd\n"); exit (0); 1361 +#endif 1362 +#endif 1363 +#endif 1364 + 1365 +#if defined (__386BSD__) 1366 + printf ("i386-pc-bsd\n"); exit (0); 1367 +#endif 1368 + 1369 +#if defined (sequent) 1370 +#if defined (i386) 1371 + printf ("i386-sequent-dynix\n"); exit (0); 1372 +#endif 1373 +#if defined (ns32000) 1374 + printf ("ns32k-sequent-dynix\n"); exit (0); 1375 +#endif 1376 +#endif 1377 + 1378 +#if defined (_SEQUENT_) 1379 + struct utsname un; 1380 + 1381 + uname(&un); 1382 + 1383 + if (strncmp(un.version, "V2", 2) == 0) { 1384 + printf ("i386-sequent-ptx2\n"); exit (0); 1385 + } 1386 + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ 1387 + printf ("i386-sequent-ptx1\n"); exit (0); 1388 + } 1389 + printf ("i386-sequent-ptx\n"); exit (0); 1390 + 1391 +#endif 1392 + 1393 +#if defined (vax) 1394 +# if !defined (ultrix) 1395 +# include <sys/param.h> 1396 +# if defined (BSD) 1397 +# if BSD == 43 1398 + printf ("vax-dec-bsd4.3\n"); exit (0); 1399 +# else 1400 +# if BSD == 199006 1401 + printf ("vax-dec-bsd4.3reno\n"); exit (0); 1402 +# else 1403 + printf ("vax-dec-bsd\n"); exit (0); 1404 +# endif 1405 +# endif 1406 +# else 1407 + printf ("vax-dec-bsd\n"); exit (0); 1408 +# endif 1409 +# else 1410 + printf ("vax-dec-ultrix\n"); exit (0); 1411 +# endif 1412 +#endif 1413 + 1414 +#if defined (alliant) && defined (i860) 1415 + printf ("i860-alliant-bsd\n"); exit (0); 1416 +#endif 1417 + 1418 + exit (1); 1419 +} 1420 +EOF 1421 + 1422 +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && 1423 + { echo "$SYSTEM_NAME"; exit; } 1424 + 1425 +# Apollos put the system type in the environment. 1426 + 1427 +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } 1428 + 1429 +# Convex versions that predate uname can use getsysinfo(1) 1430 + 1431 +if [ -x /usr/convex/getsysinfo ] 1432 +then 1433 + case `getsysinfo -f cpu_type` in 1434 + c1*) 1435 + echo c1-convex-bsd 1436 + exit ;; 1437 + c2*) 1438 + if getsysinfo -f scalar_acc 1439 + then echo c32-convex-bsd 1440 + else echo c2-convex-bsd 1441 + fi 1442 + exit ;; 1443 + c34*) 1444 + echo c34-convex-bsd 1445 + exit ;; 1446 + c38*) 1447 + echo c38-convex-bsd 1448 + exit ;; 1449 + c4*) 1450 + echo c4-convex-bsd 1451 + exit ;; 1452 + esac 1453 +fi 1454 + 1455 +cat >&2 <<EOF 1456 +$0: unable to guess system type 1457 + 1458 +This script, last modified $timestamp, has failed to recognize 1459 +the operating system you are using. It is advised that you 1460 +download the most up to date version of the config scripts from 1461 + 1462 + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 1463 +and 1464 + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD 1465 + 1466 +If the version you run ($0) is already up to date, please 1467 +send the following data and any information you think might be 1468 +pertinent to <config-patches@gnu.org> in order to provide the needed 1469 +information to handle your system. 1470 + 1471 +config.guess timestamp = $timestamp 1472 + 1473 +uname -m = `(uname -m) 2>/dev/null || echo unknown` 1474 +uname -r = `(uname -r) 2>/dev/null || echo unknown` 1475 +uname -s = `(uname -s) 2>/dev/null || echo unknown` 1476 +uname -v = `(uname -v) 2>/dev/null || echo unknown` 1477 + 1478 +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` 1479 +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` 1480 + 1481 +hostinfo = `(hostinfo) 2>/dev/null` 1482 +/bin/universe = `(/bin/universe) 2>/dev/null` 1483 +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` 1484 +/bin/arch = `(/bin/arch) 2>/dev/null` 1485 +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` 1486 +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` 1487 + 1488 +UNAME_MACHINE = ${UNAME_MACHINE} 1489 +UNAME_RELEASE = ${UNAME_RELEASE} 1490 +UNAME_SYSTEM = ${UNAME_SYSTEM} 1491 +UNAME_VERSION = ${UNAME_VERSION} 1492 +EOF 1493 + 1494 +exit 1 1495 + 1496 +# Local variables: 1497 +# eval: (add-hook 'write-file-hooks 'time-stamp) 1498 +# time-stamp-start: "timestamp='" 1499 +# time-stamp-format: "%:y-%02m-%02d" 1500 +# time-stamp-end: "'" 1501 +# End:
Added config.h.in.
1 +/* config.h.in. Generated from configure.ac by autoheader. */ 2 + 3 +/* Define to 1 if you have the <dlfcn.h> header file. */ 4 +#undef HAVE_DLFCN_H 5 + 6 +/* Define to 1 if you have the <expat.h> header file. */ 7 +#undef HAVE_EXPAT_H 8 + 9 +/* Define to 1 if you have the <inttypes.h> header file. */ 10 +#undef HAVE_INTTYPES_H 11 + 12 +/* Define to 1 if you have the `expat' library (-lexpat). */ 13 +#undef HAVE_LIBEXPAT 14 + 15 +/* Define to 1 if you have the `z' library (-lz). */ 16 +#undef HAVE_LIBZ 17 + 18 +/* Define to 1 if `lstat' has the bug that it succeeds when given the 19 + zero-length file name argument. */ 20 +#undef HAVE_LSTAT_EMPTY_STRING_BUG 21 + 22 +/* Define to 1 if you have the <memory.h> header file. */ 23 +#undef HAVE_MEMORY_H 24 + 25 +/* Define to 1 if you have the `sqrt' function. */ 26 +#undef HAVE_SQRT 27 + 28 +/* Define to 1 if `stat' has the bug that it succeeds when given the 29 + zero-length file name argument. */ 30 +#undef HAVE_STAT_EMPTY_STRING_BUG 31 + 32 +/* Define to 1 if you have the <stdint.h> header file. */ 33 +#undef HAVE_STDINT_H 34 + 35 +/* Define to 1 if you have the <stdio.h> header file. */ 36 +#undef HAVE_STDIO_H 37 + 38 +/* Define to 1 if you have the <stdlib.h> header file. */ 39 +#undef HAVE_STDLIB_H 40 + 41 +/* Define to 1 if you have the `strcasecmp' function. */ 42 +#undef HAVE_STRCASECMP 43 + 44 +/* Define to 1 if you have the `strerror' function. */ 45 +#undef HAVE_STRERROR 46 + 47 +/* Define to 1 if you have the `strftime' function. */ 48 +#undef HAVE_STRFTIME 49 + 50 +/* Define to 1 if you have the <strings.h> header file. */ 51 +#undef HAVE_STRINGS_H 52 + 53 +/* Define to 1 if you have the <string.h> header file. */ 54 +#undef HAVE_STRING_H 55 + 56 +/* Define to 1 if you have the `strncasecmp' function. */ 57 +#undef HAVE_STRNCASECMP 58 + 59 +/* Define to 1 if you have the `strstr' function. */ 60 +#undef HAVE_STRSTR 61 + 62 +/* Define to 1 if you have the <sys/stat.h> header file. */ 63 +#undef HAVE_SYS_STAT_H 64 + 65 +/* Define to 1 if you have the <sys/types.h> header file. */ 66 +#undef HAVE_SYS_TYPES_H 67 + 68 +/* Define to 1 if you have the <unistd.h> header file. */ 69 +#undef HAVE_UNISTD_H 70 + 71 +/* Define to 1 if you have the <zlib.h> header file. */ 72 +#undef HAVE_ZLIB_H 73 + 74 +/* Define to 1 if `lstat' dereferences a symlink specified with a trailing 75 + slash. */ 76 +#undef LSTAT_FOLLOWS_SLASHED_SYMLINK 77 + 78 +/* Define to the sub-directory in which libtool stores uninstalled libraries. 79 + */ 80 +#undef LT_OBJDIR 81 + 82 +/* Name of package */ 83 +#undef PACKAGE 84 + 85 +/* Define to the address where bug reports for this package should be sent. */ 86 +#undef PACKAGE_BUGREPORT 87 + 88 +/* Define to the full name of this package. */ 89 +#undef PACKAGE_NAME 90 + 91 +/* Define to the full name and version of this package. */ 92 +#undef PACKAGE_STRING 93 + 94 +/* Define to the one symbol short name of this package. */ 95 +#undef PACKAGE_TARNAME 96 + 97 +/* Define to the home page for this package. */ 98 +#undef PACKAGE_URL 99 + 100 +/* Define to the version of this package. */ 101 +#undef PACKAGE_VERSION 102 + 103 +/* Define to 1 if you have the ANSI C header files. */ 104 +#undef STDC_HEADERS 105 + 106 +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ 107 +#undef TIME_WITH_SYS_TIME 108 + 109 +/* Define to 1 if your <sys/time.h> declares `struct tm'. */ 110 +#undef TM_IN_SYS_TIME 111 + 112 +/* Version number of package */ 113 +#undef VERSION 114 + 115 +/* Define to empty if `const' does not conform to ANSI C. */ 116 +#undef const 117 + 118 +/* Define to `long int' if <sys/types.h> does not define. */ 119 +#undef off_t 120 + 121 +/* Define to `unsigned int' if <sys/types.h> does not define. */ 122 +#undef size_t 123 + 124 +/* Define to empty if the keyword `volatile' does not work. Warning: valid 125 + code using `volatile' can become incorrect without. Disable with care. */ 126 +#undef volatile
Added config.sub.
1 +#! /bin/sh 2 +# Configuration validation subroutine script. 3 +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 5 +# Free Software Foundation, Inc. 6 + 7 +timestamp='2009-11-20' 8 + 9 +# This file is (in principle) common to ALL GNU software. 10 +# The presence of a machine in this file suggests that SOME GNU software 11 +# can handle that machine. It does not imply ALL GNU software can. 12 +# 13 +# This file is free software; you can redistribute it and/or modify 14 +# it under the terms of the GNU General Public License as published by 15 +# the Free Software Foundation; either version 2 of the License, or 16 +# (at your option) any later version. 17 +# 18 +# This program is distributed in the hope that it will be useful, 19 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 20 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 +# GNU General Public License for more details. 22 +# 23 +# You should have received a copy of the GNU General Public License 24 +# along with this program; if not, write to the Free Software 25 +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 26 +# 02110-1301, USA. 27 +# 28 +# As a special exception to the GNU General Public License, if you 29 +# distribute this file as part of a program that contains a 30 +# configuration script generated by Autoconf, you may include it under 31 +# the same distribution terms that you use for the rest of that program. 32 + 33 + 34 +# Please send patches to <config-patches@gnu.org>. Submit a context 35 +# diff and a properly formatted GNU ChangeLog entry. 36 +# 37 +# Configuration subroutine to validate and canonicalize a configuration type. 38 +# Supply the specified configuration type as an argument. 39 +# If it is invalid, we print an error message on stderr and exit with code 1. 40 +# Otherwise, we print the canonical config type on stdout and succeed. 41 + 42 +# You can get the latest version of this script from: 43 +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD 44 + 45 +# This file is supposed to be the same for all GNU packages 46 +# and recognize all the CPU types, system types and aliases 47 +# that are meaningful with *any* GNU software. 48 +# Each package is responsible for reporting which valid configurations 49 +# it does not support. The user should be able to distinguish 50 +# a failure to support a valid configuration from a meaningless 51 +# configuration. 52 + 53 +# The goal of this file is to map all the various variations of a given 54 +# machine specification into a single specification in the form: 55 +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 56 +# or in some cases, the newer four-part form: 57 +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 58 +# It is wrong to echo any other type of specification. 59 + 60 +me=`echo "$0" | sed -e 's,.*/,,'` 61 + 62 +usage="\ 63 +Usage: $0 [OPTION] CPU-MFR-OPSYS 64 + $0 [OPTION] ALIAS 65 + 66 +Canonicalize a configuration name. 67 + 68 +Operation modes: 69 + -h, --help print this help, then exit 70 + -t, --time-stamp print date of last modification, then exit 71 + -v, --version print version number, then exit 72 + 73 +Report bugs and patches to <config-patches@gnu.org>." 74 + 75 +version="\ 76 +GNU config.sub ($timestamp) 77 + 78 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 79 +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 80 + 81 +This is free software; see the source for copying conditions. There is NO 82 +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 83 + 84 +help=" 85 +Try \`$me --help' for more information." 86 + 87 +# Parse command line 88 +while test $# -gt 0 ; do 89 + case $1 in 90 + --time-stamp | --time* | -t ) 91 + echo "$timestamp" ; exit ;; 92 + --version | -v ) 93 + echo "$version" ; exit ;; 94 + --help | --h* | -h ) 95 + echo "$usage"; exit ;; 96 + -- ) # Stop option processing 97 + shift; break ;; 98 + - ) # Use stdin as input. 99 + break ;; 100 + -* ) 101 + echo "$me: invalid option $1$help" 102 + exit 1 ;; 103 + 104 + *local*) 105 + # First pass through any local machine types. 106 + echo $1 107 + exit ;; 108 + 109 + * ) 110 + break ;; 111 + esac 112 +done 113 + 114 +case $# in 115 + 0) echo "$me: missing argument$help" >&2 116 + exit 1;; 117 + 1) ;; 118 + *) echo "$me: too many arguments$help" >&2 119 + exit 1;; 120 +esac 121 + 122 +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). 123 +# Here we must recognize all the valid KERNEL-OS combinations. 124 +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 125 +case $maybe_os in 126 + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ 127 + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ 128 + kopensolaris*-gnu* | \ 129 + storm-chaos* | os2-emx* | rtmk-nova*) 130 + os=-$maybe_os 131 + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` 132 + ;; 133 + *) 134 + basic_machine=`echo $1 | sed 's/-[^-]*$//'` 135 + if [ $basic_machine != $1 ] 136 + then os=`echo $1 | sed 's/.*-/-/'` 137 + else os=; fi 138 + ;; 139 +esac 140 + 141 +### Let's recognize common machines as not being operating systems so 142 +### that things like config.sub decstation-3100 work. We also 143 +### recognize some manufacturers as not being operating systems, so we 144 +### can provide default operating systems below. 145 +case $os in 146 + -sun*os*) 147 + # Prevent following clause from handling this invalid input. 148 + ;; 149 + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ 150 + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ 151 + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ 152 + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 153 + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 154 + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 155 + -apple | -axis | -knuth | -cray | -microblaze) 156 + os= 157 + basic_machine=$1 158 + ;; 159 + -bluegene*) 160 + os=-cnk 161 + ;; 162 + -sim | -cisco | -oki | -wec | -winbond) 163 + os= 164 + basic_machine=$1 165 + ;; 166 + -scout) 167 + ;; 168 + -wrs) 169 + os=-vxworks 170 + basic_machine=$1 171 + ;; 172 + -chorusos*) 173 + os=-chorusos 174 + basic_machine=$1 175 + ;; 176 + -chorusrdb) 177 + os=-chorusrdb 178 + basic_machine=$1 179 + ;; 180 + -hiux*) 181 + os=-hiuxwe2 182 + ;; 183 + -sco6) 184 + os=-sco5v6 185 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 186 + ;; 187 + -sco5) 188 + os=-sco3.2v5 189 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 190 + ;; 191 + -sco4) 192 + os=-sco3.2v4 193 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 194 + ;; 195 + -sco3.2.[4-9]*) 196 + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 197 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 198 + ;; 199 + -sco3.2v[4-9]*) 200 + # Don't forget version if it is 3.2v4 or newer. 201 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 202 + ;; 203 + -sco5v6*) 204 + # Don't forget version if it is 3.2v4 or newer. 205 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 206 + ;; 207 + -sco*) 208 + os=-sco3.2v2 209 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 210 + ;; 211 + -udk*) 212 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 213 + ;; 214 + -isc) 215 + os=-isc2.2 216 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 217 + ;; 218 + -clix*) 219 + basic_machine=clipper-intergraph 220 + ;; 221 + -isc*) 222 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 223 + ;; 224 + -lynx*) 225 + os=-lynxos 226 + ;; 227 + -ptx*) 228 + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` 229 + ;; 230 + -windowsnt*) 231 + os=`echo $os | sed -e 's/windowsnt/winnt/'` 232 + ;; 233 + -psos*) 234 + os=-psos 235 + ;; 236 + -mint | -mint[0-9]*) 237 + basic_machine=m68k-atari 238 + os=-mint 239 + ;; 240 +esac 241 + 242 +# Decode aliases for certain CPU-COMPANY combinations. 243 +case $basic_machine in 244 + # Recognize the basic CPU types without company name. 245 + # Some are omitted here because they have special meanings below. 246 + 1750a | 580 \ 247 + | a29k \ 248 + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ 249 + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ 250 + | am33_2.0 \ 251 + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ 252 + | bfin \ 253 + | c4x | clipper \ 254 + | d10v | d30v | dlx | dsp16xx \ 255 + | fido | fr30 | frv \ 256 + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 257 + | i370 | i860 | i960 | ia64 \ 258 + | ip2k | iq2000 \ 259 + | lm32 \ 260 + | m32c | m32r | m32rle | m68000 | m68k | m88k \ 261 + | maxq | mb | microblaze | mcore | mep | metag \ 262 + | mips | mipsbe | mipseb | mipsel | mipsle \ 263 + | mips16 \ 264 + | mips64 | mips64el \ 265 + | mips64octeon | mips64octeonel \ 266 + | mips64orion | mips64orionel \ 267 + | mips64r5900 | mips64r5900el \ 268 + | mips64vr | mips64vrel \ 269 + | mips64vr4100 | mips64vr4100el \ 270 + | mips64vr4300 | mips64vr4300el \ 271 + | mips64vr5000 | mips64vr5000el \ 272 + | mips64vr5900 | mips64vr5900el \ 273 + | mipsisa32 | mipsisa32el \ 274 + | mipsisa32r2 | mipsisa32r2el \ 275 + | mipsisa64 | mipsisa64el \ 276 + | mipsisa64r2 | mipsisa64r2el \ 277 + | mipsisa64sb1 | mipsisa64sb1el \ 278 + | mipsisa64sr71k | mipsisa64sr71kel \ 279 + | mipstx39 | mipstx39el \ 280 + | mn10200 | mn10300 \ 281 + | moxie \ 282 + | mt \ 283 + | msp430 \ 284 + | nios | nios2 \ 285 + | ns16k | ns32k \ 286 + | or32 \ 287 + | pdp10 | pdp11 | pj | pjl \ 288 + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ 289 + | pyramid \ 290 + | rx \ 291 + | score \ 292 + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 293 + | sh64 | sh64le \ 294 + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ 295 + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 296 + | spu | strongarm \ 297 + | tahoe | thumb | tic4x | tic80 | tron \ 298 + | ubicom32 \ 299 + | v850 | v850e \ 300 + | we32k \ 301 + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ 302 + | z8k | z80) 303 + basic_machine=$basic_machine-unknown 304 + ;; 305 + m6811 | m68hc11 | m6812 | m68hc12 | picochip) 306 + # Motorola 68HC11/12. 307 + basic_machine=$basic_machine-unknown 308 + os=-none 309 + ;; 310 + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) 311 + ;; 312 + ms1) 313 + basic_machine=mt-unknown 314 + ;; 315 + 316 + # We use `pc' rather than `unknown' 317 + # because (1) that's what they normally are, and 318 + # (2) the word "unknown" tends to confuse beginning users. 319 + i*86 | x86_64) 320 + basic_machine=$basic_machine-pc 321 + ;; 322 + # Object if more than one company name word. 323 + *-*-*) 324 + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 325 + exit 1 326 + ;; 327 + # Recognize the basic CPU types with company name. 328 + 580-* \ 329 + | a29k-* \ 330 + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ 331 + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ 332 + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ 333 + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 334 + | avr-* | avr32-* \ 335 + | bfin-* | bs2000-* \ 336 + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ 337 + | clipper-* | craynv-* | cydra-* \ 338 + | d10v-* | d30v-* | dlx-* \ 339 + | elxsi-* \ 340 + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ 341 + | h8300-* | h8500-* \ 342 + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 343 + | i*86-* | i860-* | i960-* | ia64-* \ 344 + | ip2k-* | iq2000-* \ 345 + | lm32-* \ 346 + | m32c-* | m32r-* | m32rle-* \ 347 + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 348 + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ 349 + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 350 + | mips16-* \ 351 + | mips64-* | mips64el-* \ 352 + | mips64octeon-* | mips64octeonel-* \ 353 + | mips64orion-* | mips64orionel-* \ 354 + | mips64r5900-* | mips64r5900el-* \ 355 + | mips64vr-* | mips64vrel-* \ 356 + | mips64vr4100-* | mips64vr4100el-* \ 357 + | mips64vr4300-* | mips64vr4300el-* \ 358 + | mips64vr5000-* | mips64vr5000el-* \ 359 + | mips64vr5900-* | mips64vr5900el-* \ 360 + | mipsisa32-* | mipsisa32el-* \ 361 + | mipsisa32r2-* | mipsisa32r2el-* \ 362 + | mipsisa64-* | mipsisa64el-* \ 363 + | mipsisa64r2-* | mipsisa64r2el-* \ 364 + | mipsisa64sb1-* | mipsisa64sb1el-* \ 365 + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ 366 + | mipstx39-* | mipstx39el-* \ 367 + | mmix-* \ 368 + | mt-* \ 369 + | msp430-* \ 370 + | nios-* | nios2-* \ 371 + | none-* | np1-* | ns16k-* | ns32k-* \ 372 + | orion-* \ 373 + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 374 + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ 375 + | pyramid-* \ 376 + | romp-* | rs6000-* | rx-* \ 377 + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 378 + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 379 + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 380 + | sparclite-* \ 381 + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ 382 + | tahoe-* | thumb-* \ 383 + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ 384 + | tron-* \ 385 + | ubicom32-* \ 386 + | v850-* | v850e-* | vax-* \ 387 + | we32k-* \ 388 + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ 389 + | xstormy16-* | xtensa*-* \ 390 + | ymp-* \ 391 + | z8k-* | z80-*) 392 + ;; 393 + # Recognize the basic CPU types without company name, with glob match. 394 + xtensa*) 395 + basic_machine=$basic_machine-unknown 396 + ;; 397 + # Recognize the various machine names and aliases which stand 398 + # for a CPU type and a company and sometimes even an OS. 399 + 386bsd) 400 + basic_machine=i386-unknown 401 + os=-bsd 402 + ;; 403 + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 404 + basic_machine=m68000-att 405 + ;; 406 + 3b*) 407 + basic_machine=we32k-att 408 + ;; 409 + a29khif) 410 + basic_machine=a29k-amd 411 + os=-udi 412 + ;; 413 + abacus) 414 + basic_machine=abacus-unknown 415 + ;; 416 + adobe68k) 417 + basic_machine=m68010-adobe 418 + os=-scout 419 + ;; 420 + alliant | fx80) 421 + basic_machine=fx80-alliant 422 + ;; 423 + altos | altos3068) 424 + basic_machine=m68k-altos 425 + ;; 426 + am29k) 427 + basic_machine=a29k-none 428 + os=-bsd 429 + ;; 430 + amd64) 431 + basic_machine=x86_64-pc 432 + ;; 433 + amd64-*) 434 + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` 435 + ;; 436 + amdahl) 437 + basic_machine=580-amdahl 438 + os=-sysv 439 + ;; 440 + amiga | amiga-*) 441 + basic_machine=m68k-unknown 442 + ;; 443 + amigaos | amigados) 444 + basic_machine=m68k-unknown 445 + os=-amigaos 446 + ;; 447 + amigaunix | amix) 448 + basic_machine=m68k-unknown 449 + os=-sysv4 450 + ;; 451 + apollo68) 452 + basic_machine=m68k-apollo 453 + os=-sysv 454 + ;; 455 + apollo68bsd) 456 + basic_machine=m68k-apollo 457 + os=-bsd 458 + ;; 459 + aros) 460 + basic_machine=i386-pc 461 + os=-aros 462 + ;; 463 + aux) 464 + basic_machine=m68k-apple 465 + os=-aux 466 + ;; 467 + balance) 468 + basic_machine=ns32k-sequent 469 + os=-dynix 470 + ;; 471 + blackfin) 472 + basic_machine=bfin-unknown 473 + os=-linux 474 + ;; 475 + blackfin-*) 476 + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` 477 + os=-linux 478 + ;; 479 + bluegene*) 480 + basic_machine=powerpc-ibm 481 + os=-cnk 482 + ;; 483 + c90) 484 + basic_machine=c90-cray 485 + os=-unicos 486 + ;; 487 + cegcc) 488 + basic_machine=arm-unknown 489 + os=-cegcc 490 + ;; 491 + convex-c1) 492 + basic_machine=c1-convex 493 + os=-bsd 494 + ;; 495 + convex-c2) 496 + basic_machine=c2-convex 497 + os=-bsd 498 + ;; 499 + convex-c32) 500 + basic_machine=c32-convex 501 + os=-bsd 502 + ;; 503 + convex-c34) 504 + basic_machine=c34-convex 505 + os=-bsd 506 + ;; 507 + convex-c38) 508 + basic_machine=c38-convex 509 + os=-bsd 510 + ;; 511 + cray | j90) 512 + basic_machine=j90-cray 513 + os=-unicos 514 + ;; 515 + craynv) 516 + basic_machine=craynv-cray 517 + os=-unicosmp 518 + ;; 519 + cr16) 520 + basic_machine=cr16-unknown 521 + os=-elf 522 + ;; 523 + crds | unos) 524 + basic_machine=m68k-crds 525 + ;; 526 + crisv32 | crisv32-* | etraxfs*) 527 + basic_machine=crisv32-axis 528 + ;; 529 + cris | cris-* | etrax*) 530 + basic_machine=cris-axis 531 + ;; 532 + crx) 533 + basic_machine=crx-unknown 534 + os=-elf 535 + ;; 536 + da30 | da30-*) 537 + basic_machine=m68k-da30 538 + ;; 539 + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) 540 + basic_machine=mips-dec 541 + ;; 542 + decsystem10* | dec10*) 543 + basic_machine=pdp10-dec 544 + os=-tops10 545 + ;; 546 + decsystem20* | dec20*) 547 + basic_machine=pdp10-dec 548 + os=-tops20 549 + ;; 550 + delta | 3300 | motorola-3300 | motorola-delta \ 551 + | 3300-motorola | delta-motorola) 552 + basic_machine=m68k-motorola 553 + ;; 554 + delta88) 555 + basic_machine=m88k-motorola 556 + os=-sysv3 557 + ;; 558 + dicos) 559 + basic_machine=i686-pc 560 + os=-dicos 561 + ;; 562 + djgpp) 563 + basic_machine=i586-pc 564 + os=-msdosdjgpp 565 + ;; 566 + dpx20 | dpx20-*) 567 + basic_machine=rs6000-bull 568 + os=-bosx 569 + ;; 570 + dpx2* | dpx2*-bull) 571 + basic_machine=m68k-bull 572 + os=-sysv3 573 + ;; 574 + ebmon29k) 575 + basic_machine=a29k-amd 576 + os=-ebmon 577 + ;; 578 + elxsi) 579 + basic_machine=elxsi-elxsi 580 + os=-bsd 581 + ;; 582 + encore | umax | mmax) 583 + basic_machine=ns32k-encore 584 + ;; 585 + es1800 | OSE68k | ose68k | ose | OSE) 586 + basic_machine=m68k-ericsson 587 + os=-ose 588 + ;; 589 + fx2800) 590 + basic_machine=i860-alliant 591 + ;; 592 + genix) 593 + basic_machine=ns32k-ns 594 + ;; 595 + gmicro) 596 + basic_machine=tron-gmicro 597 + os=-sysv 598 + ;; 599 + go32) 600 + basic_machine=i386-pc 601 + os=-go32 602 + ;; 603 + h3050r* | hiux*) 604 + basic_machine=hppa1.1-hitachi 605 + os=-hiuxwe2 606 + ;; 607 + h8300hms) 608 + basic_machine=h8300-hitachi 609 + os=-hms 610 + ;; 611 + h8300xray) 612 + basic_machine=h8300-hitachi 613 + os=-xray 614 + ;; 615 + h8500hms) 616 + basic_machine=h8500-hitachi 617 + os=-hms 618 + ;; 619 + harris) 620 + basic_machine=m88k-harris 621 + os=-sysv3 622 + ;; 623 + hp300-*) 624 + basic_machine=m68k-hp 625 + ;; 626 + hp300bsd) 627 + basic_machine=m68k-hp 628 + os=-bsd 629 + ;; 630 + hp300hpux) 631 + basic_machine=m68k-hp 632 + os=-hpux 633 + ;; 634 + hp3k9[0-9][0-9] | hp9[0-9][0-9]) 635 + basic_machine=hppa1.0-hp 636 + ;; 637 + hp9k2[0-9][0-9] | hp9k31[0-9]) 638 + basic_machine=m68000-hp 639 + ;; 640 + hp9k3[2-9][0-9]) 641 + basic_machine=m68k-hp 642 + ;; 643 + hp9k6[0-9][0-9] | hp6[0-9][0-9]) 644 + basic_machine=hppa1.0-hp 645 + ;; 646 + hp9k7[0-79][0-9] | hp7[0-79][0-9]) 647 + basic_machine=hppa1.1-hp 648 + ;; 649 + hp9k78[0-9] | hp78[0-9]) 650 + # FIXME: really hppa2.0-hp 651 + basic_machine=hppa1.1-hp 652 + ;; 653 + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 654 + # FIXME: really hppa2.0-hp 655 + basic_machine=hppa1.1-hp 656 + ;; 657 + hp9k8[0-9][13679] | hp8[0-9][13679]) 658 + basic_machine=hppa1.1-hp 659 + ;; 660 + hp9k8[0-9][0-9] | hp8[0-9][0-9]) 661 + basic_machine=hppa1.0-hp 662 + ;; 663 + hppa-next) 664 + os=-nextstep3 665 + ;; 666 + hppaosf) 667 + basic_machine=hppa1.1-hp 668 + os=-osf 669 + ;; 670 + hppro) 671 + basic_machine=hppa1.1-hp 672 + os=-proelf 673 + ;; 674 + i370-ibm* | ibm*) 675 + basic_machine=i370-ibm 676 + ;; 677 +# I'm not sure what "Sysv32" means. Should this be sysv3.2? 678 + i*86v32) 679 + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 680 + os=-sysv32 681 + ;; 682 + i*86v4*) 683 + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 684 + os=-sysv4 685 + ;; 686 + i*86v) 687 + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 688 + os=-sysv 689 + ;; 690 + i*86sol2) 691 + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 692 + os=-solaris2 693 + ;; 694 + i386mach) 695 + basic_machine=i386-mach 696 + os=-mach 697 + ;; 698 + i386-vsta | vsta) 699 + basic_machine=i386-unknown 700 + os=-vsta 701 + ;; 702 + iris | iris4d) 703 + basic_machine=mips-sgi 704 + case $os in 705 + -irix*) 706 + ;; 707 + *) 708 + os=-irix4 709 + ;; 710 + esac 711 + ;; 712 + isi68 | isi) 713 + basic_machine=m68k-isi 714 + os=-sysv 715 + ;; 716 + m68knommu) 717 + basic_machine=m68k-unknown 718 + os=-linux 719 + ;; 720 + m68knommu-*) 721 + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` 722 + os=-linux 723 + ;; 724 + m88k-omron*) 725 + basic_machine=m88k-omron 726 + ;; 727 + magnum | m3230) 728 + basic_machine=mips-mips 729 + os=-sysv 730 + ;; 731 + merlin) 732 + basic_machine=ns32k-utek 733 + os=-sysv 734 + ;; 735 + microblaze) 736 + basic_machine=microblaze-xilinx 737 + ;; 738 + mingw32) 739 + basic_machine=i386-pc 740 + os=-mingw32 741 + ;; 742 + mingw32ce) 743 + basic_machine=arm-unknown 744 + os=-mingw32ce 745 + ;; 746 + miniframe) 747 + basic_machine=m68000-convergent 748 + ;; 749 + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) 750 + basic_machine=m68k-atari 751 + os=-mint 752 + ;; 753 + mips3*-*) 754 + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` 755 + ;; 756 + mips3*) 757 + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown 758 + ;; 759 + monitor) 760 + basic_machine=m68k-rom68k 761 + os=-coff 762 + ;; 763 + morphos) 764 + basic_machine=powerpc-unknown 765 + os=-morphos 766 + ;; 767 + msdos) 768 + basic_machine=i386-pc 769 + os=-msdos 770 + ;; 771 + ms1-*) 772 + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` 773 + ;; 774 + mvs) 775 + basic_machine=i370-ibm 776 + os=-mvs 777 + ;; 778 + ncr3000) 779 + basic_machine=i486-ncr 780 + os=-sysv4 781 + ;; 782 + netbsd386) 783 + basic_machine=i386-unknown 784 + os=-netbsd 785 + ;; 786 + netwinder) 787 + basic_machine=armv4l-rebel 788 + os=-linux 789 + ;; 790 + news | news700 | news800 | news900) 791 + basic_machine=m68k-sony 792 + os=-newsos 793 + ;; 794 + news1000) 795 + basic_machine=m68030-sony 796 + os=-newsos 797 + ;; 798 + news-3600 | risc-news) 799 + basic_machine=mips-sony 800 + os=-newsos 801 + ;; 802 + necv70) 803 + basic_machine=v70-nec 804 + os=-sysv 805 + ;; 806 + next | m*-next ) 807 + basic_machine=m68k-next 808 + case $os in 809 + -nextstep* ) 810 + ;; 811 + -ns2*) 812 + os=-nextstep2 813 + ;; 814 + *) 815 + os=-nextstep3 816 + ;; 817 + esac 818 + ;; 819 + nh3000) 820 + basic_machine=m68k-harris 821 + os=-cxux 822 + ;; 823 + nh[45]000) 824 + basic_machine=m88k-harris 825 + os=-cxux 826 + ;; 827 + nindy960) 828 + basic_machine=i960-intel 829 + os=-nindy 830 + ;; 831 + mon960) 832 + basic_machine=i960-intel 833 + os=-mon960 834 + ;; 835 + nonstopux) 836 + basic_machine=mips-compaq 837 + os=-nonstopux 838 + ;; 839 + np1) 840 + basic_machine=np1-gould 841 + ;; 842 + nsr-tandem) 843 + basic_machine=nsr-tandem 844 + ;; 845 + op50n-* | op60c-*) 846 + basic_machine=hppa1.1-oki 847 + os=-proelf 848 + ;; 849 + openrisc | openrisc-*) 850 + basic_machine=or32-unknown 851 + ;; 852 + os400) 853 + basic_machine=powerpc-ibm 854 + os=-os400 855 + ;; 856 + OSE68000 | ose68000) 857 + basic_machine=m68000-ericsson 858 + os=-ose 859 + ;; 860 + os68k) 861 + basic_machine=m68k-none 862 + os=-os68k 863 + ;; 864 + pa-hitachi) 865 + basic_machine=hppa1.1-hitachi 866 + os=-hiuxwe2 867 + ;; 868 + paragon) 869 + basic_machine=i860-intel 870 + os=-osf 871 + ;; 872 + parisc) 873 + basic_machine=hppa-unknown 874 + os=-linux 875 + ;; 876 + parisc-*) 877 + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` 878 + os=-linux 879 + ;; 880 + pbd) 881 + basic_machine=sparc-tti 882 + ;; 883 + pbb) 884 + basic_machine=m68k-tti 885 + ;; 886 + pc532 | pc532-*) 887 + basic_machine=ns32k-pc532 888 + ;; 889 + pc98) 890 + basic_machine=i386-pc 891 + ;; 892 + pc98-*) 893 + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` 894 + ;; 895 + pentium | p5 | k5 | k6 | nexgen | viac3) 896 + basic_machine=i586-pc 897 + ;; 898 + pentiumpro | p6 | 6x86 | athlon | athlon_*) 899 + basic_machine=i686-pc 900 + ;; 901 + pentiumii | pentium2 | pentiumiii | pentium3) 902 + basic_machine=i686-pc 903 + ;; 904 + pentium4) 905 + basic_machine=i786-pc 906 + ;; 907 + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 908 + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` 909 + ;; 910 + pentiumpro-* | p6-* | 6x86-* | athlon-*) 911 + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 912 + ;; 913 + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 914 + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 915 + ;; 916 + pentium4-*) 917 + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` 918 + ;; 919 + pn) 920 + basic_machine=pn-gould 921 + ;; 922 + power) basic_machine=power-ibm 923 + ;; 924 + ppc) basic_machine=powerpc-unknown 925 + ;; 926 + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 927 + ;; 928 + ppcle | powerpclittle | ppc-le | powerpc-little) 929 + basic_machine=powerpcle-unknown 930 + ;; 931 + ppcle-* | powerpclittle-*) 932 + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` 933 + ;; 934 + ppc64) basic_machine=powerpc64-unknown 935 + ;; 936 + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` 937 + ;; 938 + ppc64le | powerpc64little | ppc64-le | powerpc64-little) 939 + basic_machine=powerpc64le-unknown 940 + ;; 941 + ppc64le-* | powerpc64little-*) 942 + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` 943 + ;; 944 + ps2) 945 + basic_machine=i386-ibm 946 + ;; 947 + pw32) 948 + basic_machine=i586-unknown 949 + os=-pw32 950 + ;; 951 + rdos) 952 + basic_machine=i386-pc 953 + os=-rdos 954 + ;; 955 + rom68k) 956 + basic_machine=m68k-rom68k 957 + os=-coff 958 + ;; 959 + rm[46]00) 960 + basic_machine=mips-siemens 961 + ;; 962 + rtpc | rtpc-*) 963 + basic_machine=romp-ibm 964 + ;; 965 + s390 | s390-*) 966 + basic_machine=s390-ibm 967 + ;; 968 + s390x | s390x-*) 969 + basic_machine=s390x-ibm 970 + ;; 971 + sa29200) 972 + basic_machine=a29k-amd 973 + os=-udi 974 + ;; 975 + sb1) 976 + basic_machine=mipsisa64sb1-unknown 977 + ;; 978 + sb1el) 979 + basic_machine=mipsisa64sb1el-unknown 980 + ;; 981 + sde) 982 + basic_machine=mipsisa32-sde 983 + os=-elf 984 + ;; 985 + sei) 986 + basic_machine=mips-sei 987 + os=-seiux 988 + ;; 989 + sequent) 990 + basic_machine=i386-sequent 991 + ;; 992 + sh) 993 + basic_machine=sh-hitachi 994 + os=-hms 995 + ;; 996 + sh5el) 997 + basic_machine=sh5le-unknown 998 + ;; 999 + sh64) 1000 + basic_machine=sh64-unknown 1001 + ;; 1002 + sparclite-wrs | simso-wrs) 1003 + basic_machine=sparclite-wrs 1004 + os=-vxworks 1005 + ;; 1006 + sps7) 1007 + basic_machine=m68k-bull 1008 + os=-sysv2 1009 + ;; 1010 + spur) 1011 + basic_machine=spur-unknown 1012 + ;; 1013 + st2000) 1014 + basic_machine=m68k-tandem 1015 + ;; 1016 + stratus) 1017 + basic_machine=i860-stratus 1018 + os=-sysv4 1019 + ;; 1020 + sun2) 1021 + basic_machine=m68000-sun 1022 + ;; 1023 + sun2os3) 1024 + basic_machine=m68000-sun 1025 + os=-sunos3 1026 + ;; 1027 + sun2os4) 1028 + basic_machine=m68000-sun 1029 + os=-sunos4 1030 + ;; 1031 + sun3os3) 1032 + basic_machine=m68k-sun 1033 + os=-sunos3 1034 + ;; 1035 + sun3os4) 1036 + basic_machine=m68k-sun 1037 + os=-sunos4 1038 + ;; 1039 + sun4os3) 1040 + basic_machine=sparc-sun 1041 + os=-sunos3 1042 + ;; 1043 + sun4os4) 1044 + basic_machine=sparc-sun 1045 + os=-sunos4 1046 + ;; 1047 + sun4sol2) 1048 + basic_machine=sparc-sun 1049 + os=-solaris2 1050 + ;; 1051 + sun3 | sun3-*) 1052 + basic_machine=m68k-sun 1053 + ;; 1054 + sun4) 1055 + basic_machine=sparc-sun 1056 + ;; 1057 + sun386 | sun386i | roadrunner) 1058 + basic_machine=i386-sun 1059 + ;; 1060 + sv1) 1061 + basic_machine=sv1-cray 1062 + os=-unicos 1063 + ;; 1064 + symmetry) 1065 + basic_machine=i386-sequent 1066 + os=-dynix 1067 + ;; 1068 + t3e) 1069 + basic_machine=alphaev5-cray 1070 + os=-unicos 1071 + ;; 1072 + t90) 1073 + basic_machine=t90-cray 1074 + os=-unicos 1075 + ;; 1076 + tic54x | c54x*) 1077 + basic_machine=tic54x-unknown 1078 + os=-coff 1079 + ;; 1080 + tic55x | c55x*) 1081 + basic_machine=tic55x-unknown 1082 + os=-coff 1083 + ;; 1084 + tic6x | c6x*) 1085 + basic_machine=tic6x-unknown 1086 + os=-coff 1087 + ;; 1088 + tile*) 1089 + basic_machine=tile-unknown 1090 + os=-linux-gnu 1091 + ;; 1092 + tx39) 1093 + basic_machine=mipstx39-unknown 1094 + ;; 1095 + tx39el) 1096 + basic_machine=mipstx39el-unknown 1097 + ;; 1098 + toad1) 1099 + basic_machine=pdp10-xkl 1100 + os=-tops20 1101 + ;; 1102 + tower | tower-32) 1103 + basic_machine=m68k-ncr 1104 + ;; 1105 + tpf) 1106 + basic_machine=s390x-ibm 1107 + os=-tpf 1108 + ;; 1109 + udi29k) 1110 + basic_machine=a29k-amd 1111 + os=-udi 1112 + ;; 1113 + ultra3) 1114 + basic_machine=a29k-nyu 1115 + os=-sym1 1116 + ;; 1117 + v810 | necv810) 1118 + basic_machine=v810-nec 1119 + os=-none 1120 + ;; 1121 + vaxv) 1122 + basic_machine=vax-dec 1123 + os=-sysv 1124 + ;; 1125 + vms) 1126 + basic_machine=vax-dec 1127 + os=-vms 1128 + ;; 1129 + vpp*|vx|vx-*) 1130 + basic_machine=f301-fujitsu 1131 + ;; 1132 + vxworks960) 1133 + basic_machine=i960-wrs 1134 + os=-vxworks 1135 + ;; 1136 + vxworks68) 1137 + basic_machine=m68k-wrs 1138 + os=-vxworks 1139 + ;; 1140 + vxworks29k) 1141 + basic_machine=a29k-wrs 1142 + os=-vxworks 1143 + ;; 1144 + w65*) 1145 + basic_machine=w65-wdc 1146 + os=-none 1147 + ;; 1148 + w89k-*) 1149 + basic_machine=hppa1.1-winbond 1150 + os=-proelf 1151 + ;; 1152 + xbox) 1153 + basic_machine=i686-pc 1154 + os=-mingw32 1155 + ;; 1156 + xps | xps100) 1157 + basic_machine=xps100-honeywell 1158 + ;; 1159 + ymp) 1160 + basic_machine=ymp-cray 1161 + os=-unicos 1162 + ;; 1163 + z8k-*-coff) 1164 + basic_machine=z8k-unknown 1165 + os=-sim 1166 + ;; 1167 + z80-*-coff) 1168 + basic_machine=z80-unknown 1169 + os=-sim 1170 + ;; 1171 + none) 1172 + basic_machine=none-none 1173 + os=-none 1174 + ;; 1175 + 1176 +# Here we handle the default manufacturer of certain CPU types. It is in 1177 +# some cases the only manufacturer, in others, it is the most popular. 1178 + w89k) 1179 + basic_machine=hppa1.1-winbond 1180 + ;; 1181 + op50n) 1182 + basic_machine=hppa1.1-oki 1183 + ;; 1184 + op60c) 1185 + basic_machine=hppa1.1-oki 1186 + ;; 1187 + romp) 1188 + basic_machine=romp-ibm 1189 + ;; 1190 + mmix) 1191 + basic_machine=mmix-knuth 1192 + ;; 1193 + rs6000) 1194 + basic_machine=rs6000-ibm 1195 + ;; 1196 + vax) 1197 + basic_machine=vax-dec 1198 + ;; 1199 + pdp10) 1200 + # there are many clones, so DEC is not a safe bet 1201 + basic_machine=pdp10-unknown 1202 + ;; 1203 + pdp11) 1204 + basic_machine=pdp11-dec 1205 + ;; 1206 + we32k) 1207 + basic_machine=we32k-att 1208 + ;; 1209 + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) 1210 + basic_machine=sh-unknown 1211 + ;; 1212 + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) 1213 + basic_machine=sparc-sun 1214 + ;; 1215 + cydra) 1216 + basic_machine=cydra-cydrome 1217 + ;; 1218 + orion) 1219 + basic_machine=orion-highlevel 1220 + ;; 1221 + orion105) 1222 + basic_machine=clipper-highlevel 1223 + ;; 1224 + mac | mpw | mac-mpw) 1225 + basic_machine=m68k-apple 1226 + ;; 1227 + pmac | pmac-mpw) 1228 + basic_machine=powerpc-apple 1229 + ;; 1230 + *-unknown) 1231 + # Make sure to match an already-canonicalized machine name. 1232 + ;; 1233 + *) 1234 + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 1235 + exit 1 1236 + ;; 1237 +esac 1238 + 1239 +# Here we canonicalize certain aliases for manufacturers. 1240 +case $basic_machine in 1241 + *-digital*) 1242 + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` 1243 + ;; 1244 + *-commodore*) 1245 + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` 1246 + ;; 1247 + *) 1248 + ;; 1249 +esac 1250 + 1251 +# Decode manufacturer-specific aliases for certain operating systems. 1252 + 1253 +if [ x"$os" != x"" ] 1254 +then 1255 +case $os in 1256 + # First match some system type aliases 1257 + # that might get confused with valid system types. 1258 + # -solaris* is a basic system type, with this one exception. 1259 + -auroraux) 1260 + os=-auroraux 1261 + ;; 1262 + -solaris1 | -solaris1.*) 1263 + os=`echo $os | sed -e 's|solaris1|sunos4|'` 1264 + ;; 1265 + -solaris) 1266 + os=-solaris2 1267 + ;; 1268 + -svr4*) 1269 + os=-sysv4 1270 + ;; 1271 + -unixware*) 1272 + os=-sysv4.2uw 1273 + ;; 1274 + -gnu/linux*) 1275 + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 1276 + ;; 1277 + # First accept the basic system types. 1278 + # The portable systems comes first. 1279 + # Each alternative MUST END IN A *, to match a version number. 1280 + # -sysv* is not here because it comes later, after sysvr4. 1281 + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1282 + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1283 + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ 1284 + | -sym* | -kopensolaris* \ 1285 + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1286 + | -aos* | -aros* \ 1287 + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1288 + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ 1289 + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ 1290 + | -openbsd* | -solidbsd* \ 1291 + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ 1292 + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ 1293 + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ 1294 + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1295 + | -chorusos* | -chorusrdb* | -cegcc* \ 1296 + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1297 + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ 1298 + | -uxpv* | -beos* | -mpeix* | -udk* \ 1299 + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ 1300 + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ 1301 + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ 1302 + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1303 + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1304 + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1305 + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) 1306 + # Remember, each alternative MUST END IN *, to match a version number. 1307 + ;; 1308 + -qnx*) 1309 + case $basic_machine in 1310 + x86-* | i*86-*) 1311 + ;; 1312 + *) 1313 + os=-nto$os 1314 + ;; 1315 + esac 1316 + ;; 1317 + -nto-qnx*) 1318 + ;; 1319 + -nto*) 1320 + os=`echo $os | sed -e 's|nto|nto-qnx|'` 1321 + ;; 1322 + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ 1323 + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ 1324 + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) 1325 + ;; 1326 + -mac*) 1327 + os=`echo $os | sed -e 's|mac|macos|'` 1328 + ;; 1329 + -linux-dietlibc) 1330 + os=-linux-dietlibc 1331 + ;; 1332 + -linux*) 1333 + os=`echo $os | sed -e 's|linux|linux-gnu|'` 1334 + ;; 1335 + -sunos5*) 1336 + os=`echo $os | sed -e 's|sunos5|solaris2|'` 1337 + ;; 1338 + -sunos6*) 1339 + os=`echo $os | sed -e 's|sunos6|solaris3|'` 1340 + ;; 1341 + -opened*) 1342 + os=-openedition 1343 + ;; 1344 + -os400*) 1345 + os=-os400 1346 + ;; 1347 + -wince*) 1348 + os=-wince 1349 + ;; 1350 + -osfrose*) 1351 + os=-osfrose 1352 + ;; 1353 + -osf*) 1354 + os=-osf 1355 + ;; 1356 + -utek*) 1357 + os=-bsd 1358 + ;; 1359 + -dynix*) 1360 + os=-bsd 1361 + ;; 1362 + -acis*) 1363 + os=-aos 1364 + ;; 1365 + -atheos*) 1366 + os=-atheos 1367 + ;; 1368 + -syllable*) 1369 + os=-syllable 1370 + ;; 1371 + -386bsd) 1372 + os=-bsd 1373 + ;; 1374 + -ctix* | -uts*) 1375 + os=-sysv 1376 + ;; 1377 + -nova*) 1378 + os=-rtmk-nova 1379 + ;; 1380 + -ns2 ) 1381 + os=-nextstep2 1382 + ;; 1383 + -nsk*) 1384 + os=-nsk 1385 + ;; 1386 + # Preserve the version number of sinix5. 1387 + -sinix5.*) 1388 + os=`echo $os | sed -e 's|sinix|sysv|'` 1389 + ;; 1390 + -sinix*) 1391 + os=-sysv4 1392 + ;; 1393 + -tpf*) 1394 + os=-tpf 1395 + ;; 1396 + -triton*) 1397 + os=-sysv3 1398 + ;; 1399 + -oss*) 1400 + os=-sysv3 1401 + ;; 1402 + -svr4) 1403 + os=-sysv4 1404 + ;; 1405 + -svr3) 1406 + os=-sysv3 1407 + ;; 1408 + -sysvr4) 1409 + os=-sysv4 1410 + ;; 1411 + # This must come after -sysvr4. 1412 + -sysv*) 1413 + ;; 1414 + -ose*) 1415 + os=-ose 1416 + ;; 1417 + -es1800*) 1418 + os=-ose 1419 + ;; 1420 + -xenix) 1421 + os=-xenix 1422 + ;; 1423 + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 1424 + os=-mint 1425 + ;; 1426 + -aros*) 1427 + os=-aros 1428 + ;; 1429 + -kaos*) 1430 + os=-kaos 1431 + ;; 1432 + -zvmoe) 1433 + os=-zvmoe 1434 + ;; 1435 + -dicos*) 1436 + os=-dicos 1437 + ;; 1438 + -none) 1439 + ;; 1440 + *) 1441 + # Get rid of the `-' at the beginning of $os. 1442 + os=`echo $os | sed 's/[^-]*-//'` 1443 + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 1444 + exit 1 1445 + ;; 1446 +esac 1447 +else 1448 + 1449 +# Here we handle the default operating systems that come with various machines. 1450 +# The value should be what the vendor currently ships out the door with their 1451 +# machine or put another way, the most popular os provided with the machine. 1452 + 1453 +# Note that if you're going to try to match "-MANUFACTURER" here (say, 1454 +# "-sun"), then you have to tell the case statement up towards the top 1455 +# that MANUFACTURER isn't an operating system. Otherwise, code above 1456 +# will signal an error saying that MANUFACTURER isn't an operating 1457 +# system, and we'll never get to this point. 1458 + 1459 +case $basic_machine in 1460 + score-*) 1461 + os=-elf 1462 + ;; 1463 + spu-*) 1464 + os=-elf 1465 + ;; 1466 + *-acorn) 1467 + os=-riscix1.2 1468 + ;; 1469 + arm*-rebel) 1470 + os=-linux 1471 + ;; 1472 + arm*-semi) 1473 + os=-aout 1474 + ;; 1475 + c4x-* | tic4x-*) 1476 + os=-coff 1477 + ;; 1478 + # This must come before the *-dec entry. 1479 + pdp10-*) 1480 + os=-tops20 1481 + ;; 1482 + pdp11-*) 1483 + os=-none 1484 + ;; 1485 + *-dec | vax-*) 1486 + os=-ultrix4.2 1487 + ;; 1488 + m68*-apollo) 1489 + os=-domain 1490 + ;; 1491 + i386-sun) 1492 + os=-sunos4.0.2 1493 + ;; 1494 + m68000-sun) 1495 + os=-sunos3 1496 + # This also exists in the configure program, but was not the 1497 + # default. 1498 + # os=-sunos4 1499 + ;; 1500 + m68*-cisco) 1501 + os=-aout 1502 + ;; 1503 + mep-*) 1504 + os=-elf 1505 + ;; 1506 + mips*-cisco) 1507 + os=-elf 1508 + ;; 1509 + mips*-*) 1510 + os=-elf 1511 + ;; 1512 + or32-*) 1513 + os=-coff 1514 + ;; 1515 + *-tti) # must be before sparc entry or we get the wrong os. 1516 + os=-sysv3 1517 + ;; 1518 + sparc-* | *-sun) 1519 + os=-sunos4.1.1 1520 + ;; 1521 + *-be) 1522 + os=-beos 1523 + ;; 1524 + *-haiku) 1525 + os=-haiku 1526 + ;; 1527 + *-ibm) 1528 + os=-aix 1529 + ;; 1530 + *-knuth) 1531 + os=-mmixware 1532 + ;; 1533 + *-wec) 1534 + os=-proelf 1535 + ;; 1536 + *-winbond) 1537 + os=-proelf 1538 + ;; 1539 + *-oki) 1540 + os=-proelf 1541 + ;; 1542 + *-hp) 1543 + os=-hpux 1544 + ;; 1545 + *-hitachi) 1546 + os=-hiux 1547 + ;; 1548 + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1549 + os=-sysv 1550 + ;; 1551 + *-cbm) 1552 + os=-amigaos 1553 + ;; 1554 + *-dg) 1555 + os=-dgux 1556 + ;; 1557 + *-dolphin) 1558 + os=-sysv3 1559 + ;; 1560 + m68k-ccur) 1561 + os=-rtu 1562 + ;; 1563 + m88k-omron*) 1564 + os=-luna 1565 + ;; 1566 + *-next ) 1567 + os=-nextstep 1568 + ;; 1569 + *-sequent) 1570 + os=-ptx 1571 + ;; 1572 + *-crds) 1573 + os=-unos 1574 + ;; 1575 + *-ns) 1576 + os=-genix 1577 + ;; 1578 + i370-*) 1579 + os=-mvs 1580 + ;; 1581 + *-next) 1582 + os=-nextstep3 1583 + ;; 1584 + *-gould) 1585 + os=-sysv 1586 + ;; 1587 + *-highlevel) 1588 + os=-bsd 1589 + ;; 1590 + *-encore) 1591 + os=-bsd 1592 + ;; 1593 + *-sgi) 1594 + os=-irix 1595 + ;; 1596 + *-siemens) 1597 + os=-sysv4 1598 + ;; 1599 + *-masscomp) 1600 + os=-rtu 1601 + ;; 1602 + f30[01]-fujitsu | f700-fujitsu) 1603 + os=-uxpv 1604 + ;; 1605 + *-rom68k) 1606 + os=-coff 1607 + ;; 1608 + *-*bug) 1609 + os=-coff 1610 + ;; 1611 + *-apple) 1612 + os=-macos 1613 + ;; 1614 + *-atari*) 1615 + os=-mint 1616 + ;; 1617 + *) 1618 + os=-none 1619 + ;; 1620 +esac 1621 +fi 1622 + 1623 +# Here we handle the case where we know the os, and the CPU type, but not the 1624 +# manufacturer. We pick the logical manufacturer. 1625 +vendor=unknown 1626 +case $basic_machine in 1627 + *-unknown) 1628 + case $os in 1629 + -riscix*) 1630 + vendor=acorn 1631 + ;; 1632 + -sunos*) 1633 + vendor=sun 1634 + ;; 1635 + -cnk*|-aix*) 1636 + vendor=ibm 1637 + ;; 1638 + -beos*) 1639 + vendor=be 1640 + ;; 1641 + -hpux*) 1642 + vendor=hp 1643 + ;; 1644 + -mpeix*) 1645 + vendor=hp 1646 + ;; 1647 + -hiux*) 1648 + vendor=hitachi 1649 + ;; 1650 + -unos*) 1651 + vendor=crds 1652 + ;; 1653 + -dgux*) 1654 + vendor=dg 1655 + ;; 1656 + -luna*) 1657 + vendor=omron 1658 + ;; 1659 + -genix*) 1660 + vendor=ns 1661 + ;; 1662 + -mvs* | -opened*) 1663 + vendor=ibm 1664 + ;; 1665 + -os400*) 1666 + vendor=ibm 1667 + ;; 1668 + -ptx*) 1669 + vendor=sequent 1670 + ;; 1671 + -tpf*) 1672 + vendor=ibm 1673 + ;; 1674 + -vxsim* | -vxworks* | -windiss*) 1675 + vendor=wrs 1676 + ;; 1677 + -aux*) 1678 + vendor=apple 1679 + ;; 1680 + -hms*) 1681 + vendor=hitachi 1682 + ;; 1683 + -mpw* | -macos*) 1684 + vendor=apple 1685 + ;; 1686 + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 1687 + vendor=atari 1688 + ;; 1689 + -vos*) 1690 + vendor=stratus 1691 + ;; 1692 + esac 1693 + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` 1694 + ;; 1695 +esac 1696 + 1697 +echo $basic_machine$os 1698 +exit 1699 + 1700 +# Local variables: 1701 +# eval: (add-hook 'write-file-hooks 'time-stamp) 1702 +# time-stamp-start: "timestamp='" 1703 +# time-stamp-format: "%:y-%02m-%02d" 1704 +# time-stamp-end: "'" 1705 +# End:
Added configure.
more than 10,000 changes
Added configure.ac.
1 +# -*- Autoconf -*- 2 +# Process this file with autoconf to produce a configure script. 3 + 4 +AC_PREREQ(2.61) 5 +AC_INIT(readosm, 1.0.0d, a.furieri@lqt.it) 6 +AC_LANG(C) 7 +AC_CONFIG_AUX_DIR([.]) 8 +AC_CONFIG_MACRO_DIR([m4]) 9 + 10 +AM_INIT_AUTOMAKE 11 +AM_MAINTAINER_MODE 12 +AM_CONFIG_HEADER(config.h) 13 + 14 + 15 +# Checks for header files. 16 +AC_CHECK_HEADERS(stdlib.h,, [AC_MSG_ERROR([cannot find stdlib.h, bailing out])]) 17 +AC_CHECK_HEADERS(stdio.h,, [AC_MSG_ERROR([cannot find stdio.h, bailing out])]) 18 +AC_CHECK_HEADERS(memory.h,, [AC_MSG_ERROR([cannot find memory.h, bailing out])]) 19 + 20 + 21 +# Checks for programs. 22 +AC_PROG_CXX 23 +AC_PROG_CC 24 +AC_PROG_CPP 25 +AC_PROG_INSTALL 26 +AC_PROG_LN_S 27 +AC_PROG_MAKE_SET 28 +AC_LIBTOOL_WIN32_DLL 29 +AC_PROG_LIBTOOL 30 + 31 +# Checks for typedefs, structures, and compiler characteristics. 32 +AC_C_CONST 33 +AC_TYPE_OFF_T 34 +AC_TYPE_SIZE_T 35 +AC_HEADER_TIME 36 +AC_STRUCT_TM 37 +AC_C_VOLATILE 38 + 39 +# Checks for library functions. 40 +AC_FUNC_LSTAT 41 +AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK 42 +AC_FUNC_MEMCMP 43 +AC_FUNC_STAT 44 +AC_FUNC_STRFTIME 45 +AC_CHECK_FUNCS([sqrt strcasecmp strerror strncasecmp strstr strerror]) 46 + 47 +# gcov support 48 +AC_ARG_ENABLE(gcov, AC_HELP_STRING([--enable-gcov],[turn on code coverage analysis tools])) 49 +if test "x$enable_gcov" = "xyes"; then 50 + dnl Check for -fprofile-arcs and -ftest-coverage option 51 + CFLAGS=$CFLAGS" -fprofile-arcs -ftest-coverage -g" 52 + GCOV_FLAGS="-lgcov" 53 +fi 54 + 55 +AC_CONFIG_FILES([Makefile \ 56 + headers/Makefile \ 57 + src/Makefile \ 58 + tests/Makefile \ 59 + examples/Makefile \ 60 + Doxyfile \ 61 + readosm.pc]) 62 + 63 + 64 +AC_CHECK_HEADERS(expat.h,, [AC_MSG_ERROR([cannot find expat.h, bailing out])]) 65 +AC_CHECK_LIB(expat,XML_ParserCreate,,AC_MSG_ERROR(['expat' is required but it doesn't seem to be installed on this system.])) 66 +AC_CHECK_HEADERS(zlib.h,, [AC_MSG_ERROR([cannot find libz.h, bailing out])]) 67 +AC_CHECK_LIB(z,uncompress,,AC_MSG_ERROR(['libz' is required but it doesn't seem to be installed on this system.])) 68 + 69 +AC_OUTPUT
Added depcomp.
1 +#! /bin/sh 2 +# depcomp - compile a program generating dependencies as side-effects 3 + 4 +scriptversion=2009-04-28.21; # UTC 5 + 6 +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free 7 +# Software Foundation, Inc. 8 + 9 +# This program is free software; you can redistribute it and/or modify 10 +# it under the terms of the GNU General Public License as published by 11 +# the Free Software Foundation; either version 2, or (at your option) 12 +# any later version. 13 + 14 +# This program is distributed in the hope that it will be useful, 15 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 16 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 +# GNU General Public License for more details. 18 + 19 +# You should have received a copy of the GNU General Public License 20 +# along with this program. If not, see <http://www.gnu.org/licenses/>. 21 + 22 +# As a special exception to the GNU General Public License, if you 23 +# distribute this file as part of a program that contains a 24 +# configuration script generated by Autoconf, you may include it under 25 +# the same distribution terms that you use for the rest of that program. 26 + 27 +# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. 28 + 29 +case $1 in 30 + '') 31 + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 32 + exit 1; 33 + ;; 34 + -h | --h*) 35 + cat <<\EOF 36 +Usage: depcomp [--help] [--version] PROGRAM [ARGS] 37 + 38 +Run PROGRAMS ARGS to compile a file, generating dependencies 39 +as side-effects. 40 + 41 +Environment variables: 42 + depmode Dependency tracking mode. 43 + source Source file read by `PROGRAMS ARGS'. 44 + object Object file output by `PROGRAMS ARGS'. 45 + DEPDIR directory where to store dependencies. 46 + depfile Dependency file to output. 47 + tmpdepfile Temporary file to use when outputing dependencies. 48 + libtool Whether libtool is used (yes/no). 49 + 50 +Report bugs to <bug-automake@gnu.org>. 51 +EOF 52 + exit $? 53 + ;; 54 + -v | --v*) 55 + echo "depcomp $scriptversion" 56 + exit $? 57 + ;; 58 +esac 59 + 60 +if test -z "$depmode" || test -z "$source" || test -z "$object"; then 61 + echo "depcomp: Variables source, object and depmode must be set" 1>&2 62 + exit 1 63 +fi 64 + 65 +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. 66 +depfile=${depfile-`echo "$object" | 67 + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} 68 +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} 69 + 70 +rm -f "$tmpdepfile" 71 + 72 +# Some modes work just like other modes, but use different flags. We 73 +# parameterize here, but still list the modes in the big case below, 74 +# to make depend.m4 easier to write. Note that we *cannot* use a case 75 +# here, because this file can only contain one case statement. 76 +if test "$depmode" = hp; then 77 + # HP compiler uses -M and no extra arg. 78 + gccflag=-M 79 + depmode=gcc 80 +fi 81 + 82 +if test "$depmode" = dashXmstdout; then 83 + # This is just like dashmstdout with a different argument. 84 + dashmflag=-xM 85 + depmode=dashmstdout 86 +fi 87 + 88 +cygpath_u="cygpath -u -f -" 89 +if test "$depmode" = msvcmsys; then 90 + # This is just like msvisualcpp but w/o cygpath translation. 91 + # Just convert the backslash-escaped backslashes to single forward 92 + # slashes to satisfy depend.m4 93 + cygpath_u="sed s,\\\\\\\\,/,g" 94 + depmode=msvisualcpp 95 +fi 96 + 97 +case "$depmode" in 98 +gcc3) 99 +## gcc 3 implements dependency tracking that does exactly what 100 +## we want. Yay! Note: for some reason libtool 1.4 doesn't like 101 +## it if -MD -MP comes after the -MF stuff. Hmm. 102 +## Unfortunately, FreeBSD c89 acceptance of flags depends upon 103 +## the command line argument order; so add the flags where they 104 +## appear in depend2.am. Note that the slowdown incurred here 105 +## affects only configure: in makefiles, %FASTDEP% shortcuts this. 106 + for arg 107 + do 108 + case $arg in 109 + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; 110 + *) set fnord "$@" "$arg" ;; 111 + esac 112 + shift # fnord 113 + shift # $arg 114 + done 115 + "$@" 116 + stat=$? 117 + if test $stat -eq 0; then : 118 + else 119 + rm -f "$tmpdepfile" 120 + exit $stat 121 + fi 122 + mv "$tmpdepfile" "$depfile" 123 + ;; 124 + 125 +gcc) 126 +## There are various ways to get dependency output from gcc. Here's 127 +## why we pick this rather obscure method: 128 +## - Don't want to use -MD because we'd like the dependencies to end 129 +## up in a subdir. Having to rename by hand is ugly. 130 +## (We might end up doing this anyway to support other compilers.) 131 +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like 132 +## -MM, not -M (despite what the docs say). 133 +## - Using -M directly means running the compiler twice (even worse 134 +## than renaming). 135 + if test -z "$gccflag"; then 136 + gccflag=-MD, 137 + fi 138 + "$@" -Wp,"$gccflag$tmpdepfile" 139 + stat=$? 140 + if test $stat -eq 0; then : 141 + else 142 + rm -f "$tmpdepfile" 143 + exit $stat 144 + fi 145 + rm -f "$depfile" 146 + echo "$object : \\" > "$depfile" 147 + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 148 +## The second -e expression handles DOS-style file names with drive letters. 149 + sed -e 's/^[^:]*: / /' \ 150 + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" 151 +## This next piece of magic avoids the `deleted header file' problem. 152 +## The problem is that when a header file which appears in a .P file 153 +## is deleted, the dependency causes make to die (because there is 154 +## typically no way to rebuild the header). We avoid this by adding 155 +## dummy dependencies for each header file. Too bad gcc doesn't do 156 +## this for us directly. 157 + tr ' ' ' 158 +' < "$tmpdepfile" | 159 +## Some versions of gcc put a space before the `:'. On the theory 160 +## that the space means something, we add a space to the output as 161 +## well. 162 +## Some versions of the HPUX 10.20 sed can't process this invocation 163 +## correctly. Breaking it into two sed invocations is a workaround. 164 + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 165 + rm -f "$tmpdepfile" 166 + ;; 167 + 168 +hp) 169 + # This case exists only to let depend.m4 do its work. It works by 170 + # looking at the text of this script. This case will never be run, 171 + # since it is checked for above. 172 + exit 1 173 + ;; 174 + 175 +sgi) 176 + if test "$libtool" = yes; then 177 + "$@" "-Wp,-MDupdate,$tmpdepfile" 178 + else 179 + "$@" -MDupdate "$tmpdepfile" 180 + fi 181 + stat=$? 182 + if test $stat -eq 0; then : 183 + else 184 + rm -f "$tmpdepfile" 185 + exit $stat 186 + fi 187 + rm -f "$depfile" 188 + 189 + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files 190 + echo "$object : \\" > "$depfile" 191 + 192 + # Clip off the initial element (the dependent). Don't try to be 193 + # clever and replace this with sed code, as IRIX sed won't handle 194 + # lines with more than a fixed number of characters (4096 in 195 + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; 196 + # the IRIX cc adds comments like `#:fec' to the end of the 197 + # dependency line. 198 + tr ' ' ' 199 +' < "$tmpdepfile" \ 200 + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ 201 + tr ' 202 +' ' ' >> "$depfile" 203 + echo >> "$depfile" 204 + 205 + # The second pass generates a dummy entry for each header file. 206 + tr ' ' ' 207 +' < "$tmpdepfile" \ 208 + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ 209 + >> "$depfile" 210 + else 211 + # The sourcefile does not contain any dependencies, so just 212 + # store a dummy comment line, to avoid errors with the Makefile 213 + # "include basename.Plo" scheme. 214 + echo "#dummy" > "$depfile" 215 + fi 216 + rm -f "$tmpdepfile" 217 + ;; 218 + 219 +aix) 220 + # The C for AIX Compiler uses -M and outputs the dependencies 221 + # in a .u file. In older versions, this file always lives in the 222 + # current directory. Also, the AIX compiler puts `$object:' at the 223 + # start of each line; $object doesn't have directory information. 224 + # Version 6 uses the directory in both cases. 225 + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 226 + test "x$dir" = "x$object" && dir= 227 + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 228 + if test "$libtool" = yes; then 229 + tmpdepfile1=$dir$base.u 230 + tmpdepfile2=$base.u 231 + tmpdepfile3=$dir.libs/$base.u 232 + "$@" -Wc,-M 233 + else 234 + tmpdepfile1=$dir$base.u 235 + tmpdepfile2=$dir$base.u 236 + tmpdepfile3=$dir$base.u 237 + "$@" -M 238 + fi 239 + stat=$? 240 + 241 + if test $stat -eq 0; then : 242 + else 243 + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" 244 + exit $stat 245 + fi 246 + 247 + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" 248 + do 249 + test -f "$tmpdepfile" && break 250 + done 251 + if test -f "$tmpdepfile"; then 252 + # Each line is of the form `foo.o: dependent.h'. 253 + # Do two passes, one to just change these to 254 + # `$object: dependent.h' and one to simply `dependent.h:'. 255 + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 256 + # That's a tab and a space in the []. 257 + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 258 + else 259 + # The sourcefile does not contain any dependencies, so just 260 + # store a dummy comment line, to avoid errors with the Makefile 261 + # "include basename.Plo" scheme. 262 + echo "#dummy" > "$depfile" 263 + fi 264 + rm -f "$tmpdepfile" 265 + ;; 266 + 267 +icc) 268 + # Intel's C compiler understands `-MD -MF file'. However on 269 + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c 270 + # ICC 7.0 will fill foo.d with something like 271 + # foo.o: sub/foo.c 272 + # foo.o: sub/foo.h 273 + # which is wrong. We want: 274 + # sub/foo.o: sub/foo.c 275 + # sub/foo.o: sub/foo.h 276 + # sub/foo.c: 277 + # sub/foo.h: 278 + # ICC 7.1 will output 279 + # foo.o: sub/foo.c sub/foo.h 280 + # and will wrap long lines using \ : 281 + # foo.o: sub/foo.c ... \ 282 + # sub/foo.h ... \ 283 + # ... 284 + 285 + "$@" -MD -MF "$tmpdepfile" 286 + stat=$? 287 + if test $stat -eq 0; then : 288 + else 289 + rm -f "$tmpdepfile" 290 + exit $stat 291 + fi 292 + rm -f "$depfile" 293 + # Each line is of the form `foo.o: dependent.h', 294 + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. 295 + # Do two passes, one to just change these to 296 + # `$object: dependent.h' and one to simply `dependent.h:'. 297 + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" 298 + # Some versions of the HPUX 10.20 sed can't process this invocation 299 + # correctly. Breaking it into two sed invocations is a workaround. 300 + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | 301 + sed -e 's/$/ :/' >> "$depfile" 302 + rm -f "$tmpdepfile" 303 + ;; 304 + 305 +hp2) 306 + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 307 + # compilers, which have integrated preprocessors. The correct option 308 + # to use with these is +Maked; it writes dependencies to a file named 309 + # 'foo.d', which lands next to the object file, wherever that 310 + # happens to be. 311 + # Much of this is similar to the tru64 case; see comments there. 312 + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 313 + test "x$dir" = "x$object" && dir= 314 + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 315 + if test "$libtool" = yes; then 316 + tmpdepfile1=$dir$base.d 317 + tmpdepfile2=$dir.libs/$base.d 318 + "$@" -Wc,+Maked 319 + else 320 + tmpdepfile1=$dir$base.d 321 + tmpdepfile2=$dir$base.d 322 + "$@" +Maked 323 + fi 324 + stat=$? 325 + if test $stat -eq 0; then : 326 + else 327 + rm -f "$tmpdepfile1" "$tmpdepfile2" 328 + exit $stat 329 + fi 330 + 331 + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" 332 + do 333 + test -f "$tmpdepfile" && break 334 + done 335 + if test -f "$tmpdepfile"; then 336 + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" 337 + # Add `dependent.h:' lines. 338 + sed -ne '2,${ 339 + s/^ *// 340 + s/ \\*$// 341 + s/$/:/ 342 + p 343 + }' "$tmpdepfile" >> "$depfile" 344 + else 345 + echo "#dummy" > "$depfile" 346 + fi 347 + rm -f "$tmpdepfile" "$tmpdepfile2" 348 + ;; 349 + 350 +tru64) 351 + # The Tru64 compiler uses -MD to generate dependencies as a side 352 + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. 353 + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 354 + # dependencies in `foo.d' instead, so we check for that too. 355 + # Subdirectories are respected. 356 + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 357 + test "x$dir" = "x$object" && dir= 358 + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 359 + 360 + if test "$libtool" = yes; then 361 + # With Tru64 cc, shared objects can also be used to make a 362 + # static library. This mechanism is used in libtool 1.4 series to 363 + # handle both shared and static libraries in a single compilation. 364 + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. 365 + # 366 + # With libtool 1.5 this exception was removed, and libtool now 367 + # generates 2 separate objects for the 2 libraries. These two 368 + # compilations output dependencies in $dir.libs/$base.o.d and 369 + # in $dir$base.o.d. We have to check for both files, because 370 + # one of the two compilations can be disabled. We should prefer 371 + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is 372 + # automatically cleaned when .libs/ is deleted, while ignoring 373 + # the former would cause a distcleancheck panic. 374 + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 375 + tmpdepfile2=$dir$base.o.d # libtool 1.5 376 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 377 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 378 + "$@" -Wc,-MD 379 + else 380 + tmpdepfile1=$dir$base.o.d 381 + tmpdepfile2=$dir$base.d 382 + tmpdepfile3=$dir$base.d 383 + tmpdepfile4=$dir$base.d 384 + "$@" -MD 385 + fi 386 + 387 + stat=$? 388 + if test $stat -eq 0; then : 389 + else 390 + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 391 + exit $stat 392 + fi 393 + 394 + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 395 + do 396 + test -f "$tmpdepfile" && break 397 + done 398 + if test -f "$tmpdepfile"; then 399 + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 400 + # That's a tab and a space in the []. 401 + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 402 + else 403 + echo "#dummy" > "$depfile" 404 + fi 405 + rm -f "$tmpdepfile" 406 + ;; 407 + 408 +#nosideeffect) 409 + # This comment above is used by automake to tell side-effect 410 + # dependency tracking mechanisms from slower ones. 411 + 412 +dashmstdout) 413 + # Important note: in order to support this mode, a compiler *must* 414 + # always write the preprocessed file to stdout, regardless of -o. 415 + "$@" || exit $? 416 + 417 + # Remove the call to Libtool. 418 + if test "$libtool" = yes; then 419 + while test "X$1" != 'X--mode=compile'; do 420 + shift 421 + done 422 + shift 423 + fi 424 + 425 + # Remove `-o $object'. 426 + IFS=" " 427 + for arg 428 + do 429 + case $arg in 430 + -o) 431 + shift 432 + ;; 433 + $object) 434 + shift 435 + ;; 436 + *) 437 + set fnord "$@" "$arg" 438 + shift # fnord 439 + shift # $arg 440 + ;; 441 + esac 442 + done 443 + 444 + test -z "$dashmflag" && dashmflag=-M 445 + # Require at least two characters before searching for `:' 446 + # in the target name. This is to cope with DOS-style filenames: 447 + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. 448 + "$@" $dashmflag | 449 + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 450 + rm -f "$depfile" 451 + cat < "$tmpdepfile" > "$depfile" 452 + tr ' ' ' 453 +' < "$tmpdepfile" | \ 454 +## Some versions of the HPUX 10.20 sed can't process this invocation 455 +## correctly. Breaking it into two sed invocations is a workaround. 456 + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 457 + rm -f "$tmpdepfile" 458 + ;; 459 + 460 +dashXmstdout) 461 + # This case only exists to satisfy depend.m4. It is never actually 462 + # run, as this mode is specially recognized in the preamble. 463 + exit 1 464 + ;; 465 + 466 +makedepend) 467 + "$@" || exit $? 468 + # Remove any Libtool call 469 + if test "$libtool" = yes; then 470 + while test "X$1" != 'X--mode=compile'; do 471 + shift 472 + done 473 + shift 474 + fi 475 + # X makedepend 476 + shift 477 + cleared=no eat=no 478 + for arg 479 + do 480 + case $cleared in 481 + no) 482 + set ""; shift 483 + cleared=yes ;; 484 + esac 485 + if test $eat = yes; then 486 + eat=no 487 + continue 488 + fi 489 + case "$arg" in 490 + -D*|-I*) 491 + set fnord "$@" "$arg"; shift ;; 492 + # Strip any option that makedepend may not understand. Remove 493 + # the object too, otherwise makedepend will parse it as a source file. 494 + -arch) 495 + eat=yes ;; 496 + -*|$object) 497 + ;; 498 + *) 499 + set fnord "$@" "$arg"; shift ;; 500 + esac 501 + done 502 + obj_suffix=`echo "$object" | sed 's/^.*\././'` 503 + touch "$tmpdepfile" 504 + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" 505 + rm -f "$depfile" 506 + cat < "$tmpdepfile" > "$depfile" 507 + sed '1,2d' "$tmpdepfile" | tr ' ' ' 508 +' | \ 509 +## Some versions of the HPUX 10.20 sed can't process this invocation 510 +## correctly. Breaking it into two sed invocations is a workaround. 511 + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 512 + rm -f "$tmpdepfile" "$tmpdepfile".bak 513 + ;; 514 + 515 +cpp) 516 + # Important note: in order to support this mode, a compiler *must* 517 + # always write the preprocessed file to stdout. 518 + "$@" || exit $? 519 + 520 + # Remove the call to Libtool. 521 + if test "$libtool" = yes; then 522 + while test "X$1" != 'X--mode=compile'; do 523 + shift 524 + done 525 + shift 526 + fi 527 + 528 + # Remove `-o $object'. 529 + IFS=" " 530 + for arg 531 + do 532 + case $arg in 533 + -o) 534 + shift 535 + ;; 536 + $object) 537 + shift 538 + ;; 539 + *) 540 + set fnord "$@" "$arg" 541 + shift # fnord 542 + shift # $arg 543 + ;; 544 + esac 545 + done 546 + 547 + "$@" -E | 548 + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ 549 + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | 550 + sed '$ s: \\$::' > "$tmpdepfile" 551 + rm -f "$depfile" 552 + echo "$object : \\" > "$depfile" 553 + cat < "$tmpdepfile" >> "$depfile" 554 + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" 555 + rm -f "$tmpdepfile" 556 + ;; 557 + 558 +msvisualcpp) 559 + # Important note: in order to support this mode, a compiler *must* 560 + # always write the preprocessed file to stdout. 561 + "$@" || exit $? 562 + 563 + # Remove the call to Libtool. 564 + if test "$libtool" = yes; then 565 + while test "X$1" != 'X--mode=compile'; do 566 + shift 567 + done 568 + shift 569 + fi 570 + 571 + IFS=" " 572 + for arg 573 + do 574 + case "$arg" in 575 + -o) 576 + shift 577 + ;; 578 + $object) 579 + shift 580 + ;; 581 + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") 582 + set fnord "$@" 583 + shift 584 + shift 585 + ;; 586 + *) 587 + set fnord "$@" "$arg" 588 + shift 589 + shift 590 + ;; 591 + esac 592 + done 593 + "$@" -E 2>/dev/null | 594 + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" 595 + rm -f "$depfile" 596 + echo "$object : \\" > "$depfile" 597 + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" 598 + echo " " >> "$depfile" 599 + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" 600 + rm -f "$tmpdepfile" 601 + ;; 602 + 603 +msvcmsys) 604 + # This case exists only to let depend.m4 do its work. It works by 605 + # looking at the text of this script. This case will never be run, 606 + # since it is checked for above. 607 + exit 1 608 + ;; 609 + 610 +none) 611 + exec "$@" 612 + ;; 613 + 614 +*) 615 + echo "Unknown depmode $depmode" 1>&2 616 + exit 1 617 + ;; 618 +esac 619 + 620 +exit 0 621 + 622 +# Local Variables: 623 +# mode: shell-script 624 +# sh-indentation: 2 625 +# eval: (add-hook 'write-file-hooks 'time-stamp) 626 +# time-stamp-start: "scriptversion=" 627 +# time-stamp-format: "%:y-%02m-%02d.%02H" 628 +# time-stamp-time-zone: "UTC" 629 +# time-stamp-end: "; # UTC" 630 +# End:
Added examples/Makefile.am.
1 +noinst_PROGRAMS = test_osm1 test_osm2 test_osm3 2 + 3 +AM_CFLAGS = -I@srcdir@/../headers 4 +AM_LDFLAGS = -L../src -lreadosm -lz $(GCOV_FLAGS) 5 + 6 +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda 7 + 8 +EXTRA_DIST = examples.doxy
Added examples/Makefile.in.
1 +# Makefile.in generated by automake 1.14.1 from Makefile.am. 2 +# @configure_input@ 3 + 4 +# Copyright (C) 1994-2013 Free Software Foundation, Inc. 5 + 6 +# This Makefile.in is free software; the Free Software Foundation 7 +# gives unlimited permission to copy and/or distribute it, 8 +# with or without modifications, as long as this notice is preserved. 9 + 10 +# This program is distributed in the hope that it will be useful, 11 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 +# PARTICULAR PURPOSE. 14 + 15 +@SET_MAKE@ 16 + 17 +VPATH = @srcdir@ 18 +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 19 +am__make_running_with_option = \ 20 + case $${target_option-} in \ 21 + ?) ;; \ 22 + *) echo "am__make_running_with_option: internal error: invalid" \ 23 + "target option '$${target_option-}' specified" >&2; \ 24 + exit 1;; \ 25 + esac; \ 26 + has_opt=no; \ 27 + sane_makeflags=$$MAKEFLAGS; \ 28 + if $(am__is_gnu_make); then \ 29 + sane_makeflags=$$MFLAGS; \ 30 + else \ 31 + case $$MAKEFLAGS in \ 32 + *\\[\ \ ]*) \ 33 + bs=\\; \ 34 + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ 35 + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ 36 + esac; \ 37 + fi; \ 38 + skip_next=no; \ 39 + strip_trailopt () \ 40 + { \ 41 + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ 42 + }; \ 43 + for flg in $$sane_makeflags; do \ 44 + test $$skip_next = yes && { skip_next=no; continue; }; \ 45 + case $$flg in \ 46 + *=*|--*) continue;; \ 47 + -*I) strip_trailopt 'I'; skip_next=yes;; \ 48 + -*I?*) strip_trailopt 'I';; \ 49 + -*O) strip_trailopt 'O'; skip_next=yes;; \ 50 + -*O?*) strip_trailopt 'O';; \ 51 + -*l) strip_trailopt 'l'; skip_next=yes;; \ 52 + -*l?*) strip_trailopt 'l';; \ 53 + -[dEDm]) skip_next=yes;; \ 54 + -[JT]) skip_next=yes;; \ 55 + esac; \ 56 + case $$flg in \ 57 + *$$target_option*) has_opt=yes; break;; \ 58 + esac; \ 59 + done; \ 60 + test $$has_opt = yes 61 +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) 62 +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 63 +pkgdatadir = $(datadir)/@PACKAGE@ 64 +pkgincludedir = $(includedir)/@PACKAGE@ 65 +pkglibdir = $(libdir)/@PACKAGE@ 66 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 67 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 68 +install_sh_DATA = $(install_sh) -c -m 644 69 +install_sh_PROGRAM = $(install_sh) -c 70 +install_sh_SCRIPT = $(install_sh) -c 71 +INSTALL_HEADER = $(INSTALL_DATA) 72 +transform = $(program_transform_name) 73 +NORMAL_INSTALL = : 74 +PRE_INSTALL = : 75 +POST_INSTALL = : 76 +NORMAL_UNINSTALL = : 77 +PRE_UNINSTALL = : 78 +POST_UNINSTALL = : 79 +build_triplet = @build@ 80 +host_triplet = @host@ 81 +noinst_PROGRAMS = test_osm1$(EXEEXT) test_osm2$(EXEEXT) \ 82 + test_osm3$(EXEEXT) 83 +subdir = examples 84 +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ 85 + $(top_srcdir)/depcomp 86 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 87 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ 88 + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 89 + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 90 + $(top_srcdir)/configure.ac 91 +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 92 + $(ACLOCAL_M4) 93 +mkinstalldirs = $(install_sh) -d 94 +CONFIG_HEADER = $(top_builddir)/config.h 95 +CONFIG_CLEAN_FILES = 96 +CONFIG_CLEAN_VPATH_FILES = 97 +PROGRAMS = $(noinst_PROGRAMS) 98 +test_osm1_SOURCES = test_osm1.c 99 +test_osm1_OBJECTS = test_osm1.$(OBJEXT) 100 +test_osm1_LDADD = $(LDADD) 101 +AM_V_lt = $(am__v_lt_@AM_V@) 102 +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) 103 +am__v_lt_0 = --silent 104 +am__v_lt_1 = 105 +test_osm2_SOURCES = test_osm2.c 106 +test_osm2_OBJECTS = test_osm2.$(OBJEXT) 107 +test_osm2_LDADD = $(LDADD) 108 +test_osm3_SOURCES = test_osm3.c 109 +test_osm3_OBJECTS = test_osm3.$(OBJEXT) 110 +test_osm3_LDADD = $(LDADD) 111 +AM_V_P = $(am__v_P_@AM_V@) 112 +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) 113 +am__v_P_0 = false 114 +am__v_P_1 = : 115 +AM_V_GEN = $(am__v_GEN_@AM_V@) 116 +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 117 +am__v_GEN_0 = @echo " GEN " $@; 118 +am__v_GEN_1 = 119 +AM_V_at = $(am__v_at_@AM_V@) 120 +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 121 +am__v_at_0 = @ 122 +am__v_at_1 = 123 +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) 124 +depcomp = $(SHELL) $(top_srcdir)/depcomp 125 +am__depfiles_maybe = depfiles 126 +am__mv = mv -f 127 +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 128 + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 129 +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ 130 + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ 131 + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ 132 + $(AM_CFLAGS) $(CFLAGS) 133 +AM_V_CC = $(am__v_CC_@AM_V@) 134 +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 135 +am__v_CC_0 = @echo " CC " $@; 136 +am__v_CC_1 = 137 +CCLD = $(CC) 138 +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ 139 + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ 140 + $(AM_LDFLAGS) $(LDFLAGS) -o $@ 141 +AM_V_CCLD = $(am__v_CCLD_@AM_V@) 142 +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 143 +am__v_CCLD_0 = @echo " CCLD " $@; 144 +am__v_CCLD_1 = 145 +SOURCES = test_osm1.c test_osm2.c test_osm3.c 146 +DIST_SOURCES = test_osm1.c test_osm2.c test_osm3.c 147 +am__can_run_installinfo = \ 148 + case $$AM_UPDATE_INFO_DIR in \ 149 + n|no|NO) false;; \ 150 + *) (install-info --version) >/dev/null 2>&1;; \ 151 + esac 152 +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) 153 +# Read a list of newline-separated strings from the standard input, 154 +# and print each of them once, without duplicates. Input order is 155 +# *not* preserved. 156 +am__uniquify_input = $(AWK) '\ 157 + BEGIN { nonempty = 0; } \ 158 + { items[$$0] = 1; nonempty = 1; } \ 159 + END { if (nonempty) { for (i in items) print i; }; } \ 160 +' 161 +# Make sure the list of sources is unique. This is necessary because, 162 +# e.g., the same source file might be shared among _SOURCES variables 163 +# for different programs/libraries. 164 +am__define_uniq_tagged_files = \ 165 + list='$(am__tagged_files)'; \ 166 + unique=`for i in $$list; do \ 167 + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 168 + done | $(am__uniquify_input)` 169 +ETAGS = etags 170 +CTAGS = ctags 171 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 172 +ACLOCAL = @ACLOCAL@ 173 +AMTAR = @AMTAR@ 174 +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 175 +AR = @AR@ 176 +AS = @AS@ 177 +AUTOCONF = @AUTOCONF@ 178 +AUTOHEADER = @AUTOHEADER@ 179 +AUTOMAKE = @AUTOMAKE@ 180 +AWK = @AWK@ 181 +CC = @CC@ 182 +CCDEPMODE = @CCDEPMODE@ 183 +CFLAGS = @CFLAGS@ 184 +CPP = @CPP@ 185 +CPPFLAGS = @CPPFLAGS@ 186 +CXX = @CXX@ 187 +CXXCPP = @CXXCPP@ 188 +CXXDEPMODE = @CXXDEPMODE@ 189 +CXXFLAGS = @CXXFLAGS@ 190 +CYGPATH_W = @CYGPATH_W@ 191 +DEFS = @DEFS@ 192 +DEPDIR = @DEPDIR@ 193 +DLLTOOL = @DLLTOOL@ 194 +DSYMUTIL = @DSYMUTIL@ 195 +DUMPBIN = @DUMPBIN@ 196 +ECHO_C = @ECHO_C@ 197 +ECHO_N = @ECHO_N@ 198 +ECHO_T = @ECHO_T@ 199 +EGREP = @EGREP@ 200 +EXEEXT = @EXEEXT@ 201 +FGREP = @FGREP@ 202 +GREP = @GREP@ 203 +INSTALL = @INSTALL@ 204 +INSTALL_DATA = @INSTALL_DATA@ 205 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ 206 +INSTALL_SCRIPT = @INSTALL_SCRIPT@ 207 +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 208 +LD = @LD@ 209 +LDFLAGS = @LDFLAGS@ 210 +LIBOBJS = @LIBOBJS@ 211 +LIBS = @LIBS@ 212 +LIBTOOL = @LIBTOOL@ 213 +LIPO = @LIPO@ 214 +LN_S = @LN_S@ 215 +LTLIBOBJS = @LTLIBOBJS@ 216 +MAINT = @MAINT@ 217 +MAKEINFO = @MAKEINFO@ 218 +MANIFEST_TOOL = @MANIFEST_TOOL@ 219 +MKDIR_P = @MKDIR_P@ 220 +NM = @NM@ 221 +NMEDIT = @NMEDIT@ 222 +OBJDUMP = @OBJDUMP@ 223 +OBJEXT = @OBJEXT@ 224 +OTOOL = @OTOOL@ 225 +OTOOL64 = @OTOOL64@ 226 +PACKAGE = @PACKAGE@ 227 +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 228 +PACKAGE_NAME = @PACKAGE_NAME@ 229 +PACKAGE_STRING = @PACKAGE_STRING@ 230 +PACKAGE_TARNAME = @PACKAGE_TARNAME@ 231 +PACKAGE_URL = @PACKAGE_URL@ 232 +PACKAGE_VERSION = @PACKAGE_VERSION@ 233 +PATH_SEPARATOR = @PATH_SEPARATOR@ 234 +RANLIB = @RANLIB@ 235 +SED = @SED@ 236 +SET_MAKE = @SET_MAKE@ 237 +SHELL = @SHELL@ 238 +STRIP = @STRIP@ 239 +VERSION = @VERSION@ 240 +abs_builddir = @abs_builddir@ 241 +abs_srcdir = @abs_srcdir@ 242 +abs_top_builddir = @abs_top_builddir@ 243 +abs_top_srcdir = @abs_top_srcdir@ 244 +ac_ct_AR = @ac_ct_AR@ 245 +ac_ct_CC = @ac_ct_CC@ 246 +ac_ct_CXX = @ac_ct_CXX@ 247 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 248 +am__include = @am__include@ 249 +am__leading_dot = @am__leading_dot@ 250 +am__quote = @am__quote@ 251 +am__tar = @am__tar@ 252 +am__untar = @am__untar@ 253 +bindir = @bindir@ 254 +build = @build@ 255 +build_alias = @build_alias@ 256 +build_cpu = @build_cpu@ 257 +build_os = @build_os@ 258 +build_vendor = @build_vendor@ 259 +builddir = @builddir@ 260 +datadir = @datadir@ 261 +datarootdir = @datarootdir@ 262 +docdir = @docdir@ 263 +dvidir = @dvidir@ 264 +exec_prefix = @exec_prefix@ 265 +host = @host@ 266 +host_alias = @host_alias@ 267 +host_cpu = @host_cpu@ 268 +host_os = @host_os@ 269 +host_vendor = @host_vendor@ 270 +htmldir = @htmldir@ 271 +includedir = @includedir@ 272 +infodir = @infodir@ 273 +install_sh = @install_sh@ 274 +libdir = @libdir@ 275 +libexecdir = @libexecdir@ 276 +localedir = @localedir@ 277 +localstatedir = @localstatedir@ 278 +mandir = @mandir@ 279 +mkdir_p = @mkdir_p@ 280 +oldincludedir = @oldincludedir@ 281 +pdfdir = @pdfdir@ 282 +prefix = @prefix@ 283 +program_transform_name = @program_transform_name@ 284 +psdir = @psdir@ 285 +sbindir = @sbindir@ 286 +sharedstatedir = @sharedstatedir@ 287 +srcdir = @srcdir@ 288 +sysconfdir = @sysconfdir@ 289 +target_alias = @target_alias@ 290 +top_build_prefix = @top_build_prefix@ 291 +top_builddir = @top_builddir@ 292 +top_srcdir = @top_srcdir@ 293 +AM_CFLAGS = -I@srcdir@/../headers 294 +AM_LDFLAGS = -L../src -lreadosm -lz $(GCOV_FLAGS) 295 +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda 296 +EXTRA_DIST = examples.doxy 297 +all: all-am 298 + 299 +.SUFFIXES: 300 +.SUFFIXES: .c .lo .o .obj 301 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 302 + @for dep in $?; do \ 303 + case '$(am__configure_deps)' in \ 304 + *$$dep*) \ 305 + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ 306 + && { if test -f $@; then exit 0; else break; fi; }; \ 307 + exit 1;; \ 308 + esac; \ 309 + done; \ 310 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ 311 + $(am__cd) $(top_srcdir) && \ 312 + $(AUTOMAKE) --gnu examples/Makefile 313 +.PRECIOUS: Makefile 314 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 315 + @case '$?' in \ 316 + *config.status*) \ 317 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 318 + *) \ 319 + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ 320 + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 321 + esac; 322 + 323 +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 324 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 325 + 326 +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 327 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 328 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 329 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 330 +$(am__aclocal_m4_deps): 331 + 332 +clean-noinstPROGRAMS: 333 + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ 334 + echo " rm -f" $$list; \ 335 + rm -f $$list || exit $$?; \ 336 + test -n "$(EXEEXT)" || exit 0; \ 337 + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ 338 + echo " rm -f" $$list; \ 339 + rm -f $$list 340 + 341 +test_osm1$(EXEEXT): $(test_osm1_OBJECTS) $(test_osm1_DEPENDENCIES) $(EXTRA_test_osm1_DEPENDENCIES) 342 + @rm -f test_osm1$(EXEEXT) 343 + $(AM_V_CCLD)$(LINK) $(test_osm1_OBJECTS) $(test_osm1_LDADD) $(LIBS) 344 + 345 +test_osm2$(EXEEXT): $(test_osm2_OBJECTS) $(test_osm2_DEPENDENCIES) $(EXTRA_test_osm2_DEPENDENCIES) 346 + @rm -f test_osm2$(EXEEXT) 347 + $(AM_V_CCLD)$(LINK) $(test_osm2_OBJECTS) $(test_osm2_LDADD) $(LIBS) 348 + 349 +test_osm3$(EXEEXT): $(test_osm3_OBJECTS) $(test_osm3_DEPENDENCIES) $(EXTRA_test_osm3_DEPENDENCIES) 350 + @rm -f test_osm3$(EXEEXT) 351 + $(AM_V_CCLD)$(LINK) $(test_osm3_OBJECTS) $(test_osm3_LDADD) $(LIBS) 352 + 353 +mostlyclean-compile: 354 + -rm -f *.$(OBJEXT) 355 + 356 +distclean-compile: 357 + -rm -f *.tab.c 358 + 359 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_osm1.Po@am__quote@ 360 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_osm2.Po@am__quote@ 361 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_osm3.Po@am__quote@ 362 + 363 +.c.o: 364 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 365 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 366 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 367 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 368 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< 369 + 370 +.c.obj: 371 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 372 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 373 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 374 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 375 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 376 + 377 +.c.lo: 378 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 379 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo 380 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ 381 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 382 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< 383 + 384 +mostlyclean-libtool: 385 + -rm -f *.lo 386 + 387 +clean-libtool: 388 + -rm -rf .libs _libs 389 + 390 +ID: $(am__tagged_files) 391 + $(am__define_uniq_tagged_files); mkid -fID $$unique 392 +tags: tags-am 393 +TAGS: tags 394 + 395 +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 396 + set x; \ 397 + here=`pwd`; \ 398 + $(am__define_uniq_tagged_files); \ 399 + shift; \ 400 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 401 + test -n "$$unique" || unique=$$empty_fix; \ 402 + if test $$# -gt 0; then \ 403 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 404 + "$$@" $$unique; \ 405 + else \ 406 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 407 + $$unique; \ 408 + fi; \ 409 + fi 410 +ctags: ctags-am 411 + 412 +CTAGS: ctags 413 +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 414 + $(am__define_uniq_tagged_files); \ 415 + test -z "$(CTAGS_ARGS)$$unique" \ 416 + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 417 + $$unique 418 + 419 +GTAGS: 420 + here=`$(am__cd) $(top_builddir) && pwd` \ 421 + && $(am__cd) $(top_srcdir) \ 422 + && gtags -i $(GTAGS_ARGS) "$$here" 423 +cscopelist: cscopelist-am 424 + 425 +cscopelist-am: $(am__tagged_files) 426 + list='$(am__tagged_files)'; \ 427 + case "$(srcdir)" in \ 428 + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ 429 + *) sdir=$(subdir)/$(srcdir) ;; \ 430 + esac; \ 431 + for i in $$list; do \ 432 + if test -f "$$i"; then \ 433 + echo "$(subdir)/$$i"; \ 434 + else \ 435 + echo "$$sdir/$$i"; \ 436 + fi; \ 437 + done >> $(top_builddir)/cscope.files 438 + 439 +distclean-tags: 440 + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 441 + 442 +distdir: $(DISTFILES) 443 + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 444 + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 445 + list='$(DISTFILES)'; \ 446 + dist_files=`for file in $$list; do echo $$file; done | \ 447 + sed -e "s|^$$srcdirstrip/||;t" \ 448 + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 449 + case $$dist_files in \ 450 + */*) $(MKDIR_P) `echo "$$dist_files" | \ 451 + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 452 + sort -u` ;; \ 453 + esac; \ 454 + for file in $$dist_files; do \ 455 + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 456 + if test -d $$d/$$file; then \ 457 + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 458 + if test -d "$(distdir)/$$file"; then \ 459 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 460 + fi; \ 461 + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 462 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 463 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 464 + fi; \ 465 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 466 + else \ 467 + test -f "$(distdir)/$$file" \ 468 + || cp -p $$d/$$file "$(distdir)/$$file" \ 469 + || exit 1; \ 470 + fi; \ 471 + done 472 +check-am: all-am 473 +check: check-am 474 +all-am: Makefile $(PROGRAMS) 475 +installdirs: 476 +install: install-am 477 +install-exec: install-exec-am 478 +install-data: install-data-am 479 +uninstall: uninstall-am 480 + 481 +install-am: all-am 482 + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 483 + 484 +installcheck: installcheck-am 485 +install-strip: 486 + if test -z '$(STRIP)'; then \ 487 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 488 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 489 + install; \ 490 + else \ 491 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 492 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 493 + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ 494 + fi 495 +mostlyclean-generic: 496 + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) 497 + 498 +clean-generic: 499 + 500 +distclean-generic: 501 + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 502 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 503 + 504 +maintainer-clean-generic: 505 + @echo "This command is intended for maintainers to use" 506 + @echo "it deletes files that may require special tools to rebuild." 507 +clean: clean-am 508 + 509 +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ 510 + mostlyclean-am 511 + 512 +distclean: distclean-am 513 + -rm -rf ./$(DEPDIR) 514 + -rm -f Makefile 515 +distclean-am: clean-am distclean-compile distclean-generic \ 516 + distclean-tags 517 + 518 +dvi: dvi-am 519 + 520 +dvi-am: 521 + 522 +html: html-am 523 + 524 +html-am: 525 + 526 +info: info-am 527 + 528 +info-am: 529 + 530 +install-data-am: 531 + 532 +install-dvi: install-dvi-am 533 + 534 +install-dvi-am: 535 + 536 +install-exec-am: 537 + 538 +install-html: install-html-am 539 + 540 +install-html-am: 541 + 542 +install-info: install-info-am 543 + 544 +install-info-am: 545 + 546 +install-man: 547 + 548 +install-pdf: install-pdf-am 549 + 550 +install-pdf-am: 551 + 552 +install-ps: install-ps-am 553 + 554 +install-ps-am: 555 + 556 +installcheck-am: 557 + 558 +maintainer-clean: maintainer-clean-am 559 + -rm -rf ./$(DEPDIR) 560 + -rm -f Makefile 561 +maintainer-clean-am: distclean-am maintainer-clean-generic 562 + 563 +mostlyclean: mostlyclean-am 564 + 565 +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ 566 + mostlyclean-libtool 567 + 568 +pdf: pdf-am 569 + 570 +pdf-am: 571 + 572 +ps: ps-am 573 + 574 +ps-am: 575 + 576 +uninstall-am: 577 + 578 +.MAKE: install-am install-strip 579 + 580 +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ 581 + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ 582 + ctags-am distclean distclean-compile distclean-generic \ 583 + distclean-libtool distclean-tags distdir dvi dvi-am html \ 584 + html-am info info-am install install-am install-data \ 585 + install-data-am install-dvi install-dvi-am install-exec \ 586 + install-exec-am install-html install-html-am install-info \ 587 + install-info-am install-man install-pdf install-pdf-am \ 588 + install-ps install-ps-am install-strip installcheck \ 589 + installcheck-am installdirs maintainer-clean \ 590 + maintainer-clean-generic mostlyclean mostlyclean-compile \ 591 + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 592 + tags tags-am uninstall uninstall-am 593 + 594 + 595 +# Tell versions [3.59,3.63) of GNU make to not export all variables. 596 +# Otherwise a system limit (for SysV at least) may be exceeded. 597 +.NOEXPORT:
Added examples/examples.doxy.
1 +/** \example test_osm1.c 2 + 3 +test_osm1.c is a simple demonstration tool for OSM file formats. 4 + 5 +This sample code provides an example of: 6 + - opening the OSM file 7 + - parsing the OSM file, then printing an XML-like notation on the standard output. 8 + - closing the OSM file when no further operations are required 9 + 10 +Here is an example of a typical run: 11 +\verbatim 12 +./test_osm1 italy.osm >italy-from-xml 13 +or 14 +./test_osm1 italy.osm.pbf >italy-from-pbf 15 +\endverbatim 16 + 17 +Please note: the output produced by test_osm1 is usually verbose, 18 +so redirecting the standard output to a disk file is strongly recommended. 19 +*/ 20 + 21 +/** \example test_osm2.c 22 + 23 +test_osm2.c is another simple demonstration tool for OSM file formats. 24 + 25 +This sample code provides an example of: 26 + - opening the OSM file 27 + - parsing the OSM file, thus collecting and printing simple statistics about NODEs, WAYs and RELATIONs 28 + - error handling 29 + - closing the OSM file when no further operations are required 30 + 31 +Here is a typical usage example, parsing an OSM XML file (.osm): 32 +\verbatim 33 +./test_osm2 test.osm 34 +Longitude range: 8.7889611 / 9.4145124 35 +Latitude range: 41.3870658 / 42.8070090 36 + 37 +Nodes : 1060 38 + tags: 1052 39 + 40 +Ways : 112 41 + ndref: 785 42 + tags: 241 43 + 44 +Relations : 13 45 + member.nodes : 16 46 + member.ways : 44 47 + member.relations: 6 48 + tags: 199 49 +\endverbatim 50 + 51 +Here is another example, this time parsing a .pbf (Protocol Buffer) OSM file: 52 +\verbatim 53 +./test_osm2 test.osm 54 +Longitude range: 8.5856726 / 10.2898441 55 +Latitude range: 41.3332843 / 43.5406952 56 + 57 +Nodes : 8000 58 + tags: 3162 59 + 60 +Ways : 12336 61 + ndref: 221627 62 + tags: 24904 63 + 64 +Relations : 1520 65 + member.nodes : 2952 66 + member.ways : 2741 67 + member.relations: 30 68 + tags: 10081 69 +\endverbatim 70 + 71 +*/ 72 + 73 +/** \example test_osm3.c 74 + 75 +test_osm3.c shows how to intentionally abort the parser. 76 + 77 +Here is a typical usage example, parsing an OSM XML file (.osm): 78 +\verbatim 79 +./test_osm3 test.osm 10 80 +node#1 81 +node#2 82 +node#3 83 +node#4 84 +node#5 85 +node#6 86 +node#7 87 +node#8 88 +node#9 89 +node#10 90 +PARSING ABORTED 91 +\endverbatim 92 + 93 +Here is another example, this time parsing a .pbf (Protocol Buffer) OSM file: 94 +\verbatim 95 +./test_osm3 test.osm 5 96 +node#1 97 +node#2 98 +node#3 99 +node#4 100 +node#5 101 +PARSING ABORTED 102 +\endverbatim 103 + 104 +*/
Added examples/test_osm1.c.
1 +/* 2 +/ test_osm1.c 3 +/ 4 +/ libreadosm Sample code 5 +/ 6 +/ Author: Sandro Furieri a.furieri@lqt.it 7 +/ 8 +/ ------------------------------------------------------------------------------ 9 +/ 10 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 11 +/ 12 +/ The contents of this file are subject to the Mozilla Public License Version 13 +/ 1.1 (the "License"); you may not use this file except in compliance with 14 +/ the License. You may obtain a copy of the License at 15 +/ http://www.mozilla.org/MPL/ 16 +/ 17 +/ Software distributed under the License is distributed on an "AS IS" basis, 18 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 19 +/ for the specific language governing rights and limitations under the 20 +/ License. 21 +/ 22 +/ The Original Code is the ReadOSM library 23 +/ 24 +/ The Initial Developer of the Original Code is Alessandro Furieri 25 +/ 26 +/ Portions created by the Initial Developer are Copyright (C) 2012 27 +/ the Initial Developer. All Rights Reserved. 28 +/ 29 +/ Contributor(s): 30 +/ 31 +/ Alternatively, the contents of this file may be used under the terms of 32 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 33 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 34 +/ in which case the provisions of the GPL or the LGPL are applicable instead 35 +/ of those above. If you wish to allow use of your version of this file only 36 +/ under the terms of either the GPL or the LGPL, and not to allow others to 37 +/ use your version of this file under the terms of the MPL, indicate your 38 +/ decision by deleting the provisions above and replace them with the notice 39 +/ and other provisions required by the GPL or the LGPL. If you do not delete 40 +/ the provisions above, a recipient may use your version of this file under 41 +/ the terms of any one of the MPL, the GPL or the LGPL. 42 +/ 43 +*/ 44 + 45 +#include <stdio.h> 46 + 47 +#include "readosm.h" 48 + 49 +static int 50 +print_node (const void *user_data, const readosm_node * node) 51 +{ 52 +/* 53 +* printing an OSM Node (callback function) 54 +* 55 +* this function is called by the OSM parser for each 56 +* NODE object found 57 +* 58 +* please note well: the passed pointer corresponds to 59 +* a READ-ONLY object; you can can query any node-related 60 +* value, but you cannot alter them. 61 +* 62 +************************************************ 63 +* 64 +* this didactic sample will simply print the node object 65 +* on the standard output adopting the appropriate OSM XML 66 +* notation 67 +*/ 68 + char buf[128]; 69 + int i; 70 + const readosm_tag *tag; 71 + 72 +#if defined(_WIN32) || defined(__MINGW32__) 73 + /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ 74 + sprintf (buf, "%I64d", node->id); 75 +#else 76 + sprintf (buf, "%lld", node->id); 77 +#endif 78 + printf ("\t<node id=\"%s\"", buf); 79 + 80 +/* 81 +* some individual values may be set, or may be not 82 +* unset values are identified by the READOSM_UNDEFINED 83 +* conventional value, and must be consequently ignored 84 +*/ 85 + if (node->latitude != READOSM_UNDEFINED) 86 + printf (" lat=\"%1.7f\"", node->latitude); 87 + if (node->longitude != READOSM_UNDEFINED) 88 + printf (" lon=\"%1.7f\"", node->longitude); 89 + if (node->version != READOSM_UNDEFINED) 90 + printf (" version=\"%d\"", node->version); 91 + if (node->changeset != READOSM_UNDEFINED) 92 + { 93 + 94 +#if defined(_WIN32) || defined(__MINGW32__) 95 + /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ 96 + sprintf (buf, "%I64d", node->changeset); 97 +#else 98 + sprintf (buf, "%lld", node->changeset); 99 +#endif 100 + printf (" changeset=\"%s\"", buf); 101 + } 102 + 103 +/* 104 +* unset string values are identified by a NULL pointer 105 +* and must be consequently ignored 106 +*/ 107 + if (node->user != NULL) 108 + printf (" user=\"%s\"", node->user); 109 + if (node->uid != READOSM_UNDEFINED) 110 + printf (" uid=\"%d\"", node->uid); 111 + if (node->timestamp != NULL) 112 + printf (" timestamp=\"%s\"", node->timestamp); 113 + 114 +/* 115 +* the Node object may have its own tag list 116 +* please note: this one is a variable-length list, 117 +* and may be empty: in this case tag_count will be ZERO 118 +*/ 119 + if (node->tag_count == 0) 120 + printf (" />\n"); 121 + else 122 + { 123 + printf (">\n"); 124 + for (i = 0; i < node->tag_count; i++) 125 + { 126 + /* we'll now print each <tag> for this node */ 127 + tag = node->tags + i; 128 + printf ("\t\t<tag k=\"%s\" v=\"%s\" />\n", tag->key, 129 + tag->value); 130 + } 131 + printf ("\t</node>\n"); 132 + } 133 + return READOSM_OK; 134 +} 135 + 136 +static int 137 +print_way (const void *user_data, const readosm_way * way) 138 +{ 139 +/* 140 +* printing an OSM Way (callback function) 141 +* 142 +* this function is called by the OSM parser for each 143 +* WAY object found 144 +* 145 +* please note well: the passed pointer corresponds to 146 +* a READ-ONLY object; you can can query any way-related 147 +* value, but you cannot alter them. 148 +* 149 +************************************************ 150 +* 151 +* this didactic sample will simply print the way object 152 +* on the standard output adopting the appropriate OSM XML 153 +* notation 154 +*/ 155 + char buf[128]; 156 + int i; 157 + const readosm_tag *tag; 158 + 159 +#if defined(_WIN32) || defined(__MINGW32__) 160 + /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ 161 + sprintf (buf, "%I64d", way->id); 162 +#else 163 + sprintf (buf, "%lld", way->id); 164 +#endif 165 + printf ("\t<way id=\"%s\"", buf); 166 + 167 +/* 168 +* some individual values may be set, or may be not 169 +* unset values are identified by the READOSM_UNDEFINED 170 +* conventional value, and must be consequently ignored 171 +*/ 172 + if (way->version != READOSM_UNDEFINED) 173 + printf (" version=\"%d\"", way->version); 174 + if (way->changeset != READOSM_UNDEFINED) 175 + { 176 +#if defined(_WIN32) || defined(__MINGW32__) 177 + /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ 178 + sprintf (buf, "%I64d", way->changeset); 179 +#else 180 + sprintf (buf, "%lld", way->changeset); 181 +#endif 182 + printf (" changeset=\"%s\"", buf); 183 + } 184 + 185 +/* 186 +* unset string values are identified by a NULL pointer 187 +* and must be consequently ignored 188 +*/ 189 + if (way->user != NULL) 190 + printf (" user=\"%s\"", way->user); 191 + if (way->uid != READOSM_UNDEFINED) 192 + printf (" uid=\"%d\"", way->uid); 193 + if (way->timestamp != NULL) 194 + printf (" timestamp=\"%s\"", way->timestamp); 195 + 196 +/* 197 +* the Way object may have a noderefs-list and a tag-list 198 +* please note: these are variable-length lists, and may 199 +* be empty: in this case the corresponding item count 200 +* will be ZERO 201 +*/ 202 + if (way->tag_count == 0 && way->node_ref_count == 0) 203 + printf (" />\n"); 204 + else 205 + { 206 + printf (">\n"); 207 + for (i = 0; i < way->node_ref_count; i++) 208 + { 209 + /* we'll now print each <nd ref> for this way */ 210 +#if defined(_WIN32) || defined(__MINGW32__) 211 + /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ 212 + sprintf (buf, "%I64d", *(way->node_refs + i)); 213 +#else 214 + sprintf (buf, "%lld", *(way->node_refs + i)); 215 +#endif 216 + printf ("\t\t<nd ref=\"%s\" />\n", buf); 217 + } 218 + for (i = 0; i < way->tag_count; i++) 219 + { 220 + /* we'll now print each <tag> for this way */ 221 + tag = way->tags + i; 222 + printf ("\t\t<tag k=\"%s\" v=\"%s\" />\n", tag->key, 223 + tag->value); 224 + } 225 + printf ("\t</way>\n"); 226 + } 227 + return READOSM_OK; 228 +} 229 + 230 +static int 231 +print_relation (const void *user_data, const readosm_relation * relation) 232 +{ 233 +/* 234 +* printing an OSM Relation (callback function) 235 +* 236 +* this function is called by the OSM parser for each 237 +* RELATION object found 238 +* 239 +* please note well: the passed pointer corresponds to 240 +* a READ-ONLY object; you can can query any relation-related 241 +* value, but you cannot alter them. 242 +* 243 +************************************************ 244 +* 245 +* this didactic sample will simply print the relation object 246 +* on the standard output adopting the appropriate OSM XML 247 +* notation 248 +*/ 249 + char buf[128]; 250 + int i; 251 + const readosm_member *member; 252 + const readosm_tag *tag; 253 + 254 +#if defined(_WIN32) || defined(__MINGW32__) 255 + /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ 256 + sprintf (buf, "%I64d", relation->id); 257 +#else 258 + sprintf (buf, "%lld", relation->id); 259 +#endif 260 + printf ("\t<relation id=\"%s\"", buf); 261 + 262 +/* 263 +* some individual values may be set, or may be not 264 +* unset values are identified by the READOSM_UNDEFINED 265 +* conventional value, and must be consequently ignored 266 +*/ 267 + if (relation->version != READOSM_UNDEFINED) 268 + printf (" version=\"%d\"", relation->version); 269 + if (relation->changeset != READOSM_UNDEFINED) 270 + { 271 +#if defined(_WIN32) || defined(__MINGW32__) 272 + /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ 273 + sprintf (buf, "%I64d", relation->changeset); 274 +#else 275 + sprintf (buf, "%lld", relation->changeset); 276 +#endif 277 + printf (" changeset=\"%s\"", buf); 278 + } 279 + 280 +/* 281 +* unset string values are identified by a NULL pointer 282 +* and must be consequently ignored 283 +*/ 284 + if (relation->user != NULL) 285 + printf (" user=\"%s\"", relation->user); 286 + if (relation->uid != READOSM_UNDEFINED) 287 + printf (" uid=\"%d\"", relation->uid); 288 + if (relation->timestamp != NULL) 289 + printf (" timestamp=\"%s\"", relation->timestamp); 290 + 291 +/* 292 +* the Relation object may have a member-list and a tag-list 293 +* please note: these are variable-length lists, and may 294 +* be empty: in this case the corresponding item count 295 +* will be ZERO 296 +*/ 297 + if (relation->tag_count == 0 && relation->member_count == 0) 298 + printf (" />\n"); 299 + else 300 + { 301 + printf (">\n"); 302 + for (i = 0; i < relation->member_count; i++) 303 + { 304 + /* we'll now print each <member> for this way */ 305 + member = relation->members + i; 306 +#if defined(_WIN32) || defined(__MINGW32__) 307 + /* CAVEAT - M$ runtime doesn't supports %lld for 64 bits */ 308 + sprintf (buf, "%I64d", member->id); 309 +#else 310 + sprintf (buf, "%lld", member->id); 311 +#endif 312 + /* any <member> may be of "node", "way" or "relation" type */ 313 + switch (member->member_type) 314 + { 315 + case READOSM_MEMBER_NODE: 316 + printf ("\t\t<member type=\"node\" ref=\"%s\"", buf); 317 + break; 318 + case READOSM_MEMBER_WAY: 319 + printf ("\t\t<member type=\"way\" ref=\"%s\"", buf); 320 + break; 321 + case READOSM_MEMBER_RELATION: 322 + printf ("\t\t<member type=\"relation\" ref=\"%s\"", buf); 323 + break; 324 + default: 325 + printf ("\t\t<member ref=\"%s\"", buf); 326 + break; 327 + }; 328 + if (member->role != NULL) 329 + printf (" role=\"%s\" />\n", member->role); 330 + else 331 + printf (" />\n"); 332 + } 333 + for (i = 0; i < relation->tag_count; i++) 334 + { 335 + /* we'll now print each <tag> for this way */ 336 + tag = relation->tags + i; 337 + printf ("\t\t<tag k=\"%s\" v=\"%s\" />\n", tag->key, 338 + tag->value); 339 + } 340 + printf ("\t</relation>\n"); 341 + } 342 + return READOSM_OK; 343 +} 344 + 345 +int 346 +main (int argc, char *argv[]) 347 +{ 348 + const void *osm_handle; 349 + int ret; 350 + 351 + if (argc != 2) 352 + { 353 + fprintf (stderr, "usage: test_osm1 path-to-OSM-file\n"); 354 + return -1; 355 + } 356 + 357 +/* 358 +* STEP #1: opening the OSM file 359 +* this can indifferently be an OSM XML encoded file (.osm) 360 +* or an OSM Protocol Buffer encoded file (.pbf) 361 +* the library will transparently perform any required 362 +* action in both cases. 363 +*/ 364 + ret = readosm_open (argv[1], &osm_handle); 365 + if (ret != READOSM_OK) 366 + { 367 + fprintf (stderr, "OPEN error: %d\n", ret); 368 + goto stop; 369 + } 370 + 371 +/* 372 +* STEP #2: parsing the OSM file 373 +* this task is unbelievably simple 374 +* 375 +* you are simply required to pass the appropriate 376 +* pointers for callback funtions respectively intended 377 +* to process Node-objects, Way-objects and Relation-objects 378 +* 379 +* the library will then parse the whole input file, calling 380 +* the appropriate callback handling function for each OSM object 381 +* found: please see the callback functions implementing code 382 +* to better understand how it works 383 +* 384 +* important notice: in this first example we'll not use at 385 +* all the USER_DATA pointer. so the second arg will simply 386 +* be (const void *)0 [i.e. NULL] 387 +*/ 388 + ret = 389 + readosm_parse (osm_handle, (const void *) 0, print_node, print_way, 390 + print_relation); 391 + if (ret != READOSM_OK) 392 + { 393 + fprintf (stderr, "PARSE error: %d\n", ret); 394 + goto stop; 395 + } 396 + 397 + fprintf (stderr, "Ok, OSM input file successfully parsed\n"); 398 + 399 + stop: 400 +/* 401 +* STEP #3: closing the OSM file 402 +* this will release any internal memory allocation 403 +*/ 404 + readosm_close (osm_handle); 405 + return 0; 406 +}
Added examples/test_osm2.c.
1 +/* 2 +/ test_osm2.c 3 +/ 4 +/ libreadosm Sample code 5 +/ 6 +/ Author: Sandro Furieri a.furieri@lqt.it 7 +/ 8 +/ ------------------------------------------------------------------------------ 9 +/ 10 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 11 +/ 12 +/ The contents of this file are subject to the Mozilla Public License Version 13 +/ 1.1 (the "License"); you may not use this file except in compliance with 14 +/ the License. You may obtain a copy of the License at 15 +/ http://www.mozilla.org/MPL/ 16 +/ 17 +/ Software distributed under the License is distributed on an "AS IS" basis, 18 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 19 +/ for the specific language governing rights and limitations under the 20 +/ License. 21 +/ 22 +/ The Original Code is the ReadOSM library 23 +/ 24 +/ The Initial Developer of the Original Code is Alessandro Furieri 25 +/ 26 +/ Portions created by the Initial Developer are Copyright (C) 2012 27 +/ the Initial Developer. All Rights Reserved. 28 +/ 29 +/ Contributor(s): 30 +/ 31 +/ Alternatively, the contents of this file may be used under the terms of 32 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 33 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 34 +/ in which case the provisions of the GPL or the LGPL are applicable instead 35 +/ of those above. If you wish to allow use of your version of this file only 36 +/ under the terms of either the GPL or the LGPL, and not to allow others to 37 +/ use your version of this file under the terms of the MPL, indicate your 38 +/ decision by deleting the provisions above and replace them with the notice 39 +/ and other provisions required by the GPL or the LGPL. If you do not delete 40 +/ the provisions above, a recipient may use your version of this file under 41 +/ the terms of any one of the MPL, the GPL or the LGPL. 42 +/ 43 +*/ 44 + 45 +#include <stdio.h> 46 + 47 +#include "readosm.h" 48 + 49 +struct osm_statistics 50 +{ 51 +/* a struct intended to collect general OSM statistics */ 52 + int node_count; 53 + int node_tag_count; 54 + int way_count; 55 + int way_ndref_count; 56 + int way_tag_count; 57 + int relation_count; 58 + int relation_member_node_count; 59 + int relation_member_way_count; 60 + int relation_member_relation_count; 61 + int relation_tag_count; 62 + double min_longitude; 63 + double max_longitude; 64 + double min_latitude; 65 + double max_latitude; 66 +}; 67 + 68 +static int 69 +node_stats (const void *user_data, const readosm_node * node) 70 +{ 71 +/* updating OSM Node stats (callback function)*/ 72 + 73 + /* casting the USER_DATA pointer to osm_statistics */ 74 + struct osm_statistics *stats = (struct osm_statistics *) user_data; 75 + 76 + stats->node_count++; 77 + stats->node_tag_count += node->tag_count; 78 + if (node->latitude != READOSM_UNDEFINED) 79 + { 80 + if (node->latitude > stats->max_latitude) 81 + stats->max_latitude = node->latitude; 82 + if (node->latitude < stats->min_latitude) 83 + stats->min_latitude = node->latitude; 84 + } 85 + if (node->longitude != READOSM_UNDEFINED) 86 + { 87 + if (node->longitude > stats->max_longitude) 88 + stats->max_longitude = node->longitude; 89 + if (node->longitude < stats->min_longitude) 90 + stats->min_longitude = node->longitude; 91 + } 92 + return READOSM_OK; 93 +} 94 + 95 +static int 96 +way_stats (const void *user_data, const readosm_way * way) 97 +{ 98 +/* updating OSM Way stats (callback function)*/ 99 + 100 + /* casting the USER_DATA pointer to osm_statistics */ 101 + struct osm_statistics *stats = (struct osm_statistics *) user_data; 102 + 103 + stats->way_count++; 104 + stats->way_ndref_count += way->node_ref_count; 105 + stats->way_tag_count += way->tag_count; 106 + return READOSM_OK; 107 +} 108 + 109 +static int 110 +relation_stats (const void *user_data, const readosm_relation * relation) 111 +{ 112 +/* updating OSM Relation stats (callback function)*/ 113 + int i; 114 + const readosm_member *member; 115 + 116 + /* casting the USER_DATA pointer to osm_statistics */ 117 + struct osm_statistics *stats = (struct osm_statistics *) user_data; 118 + 119 + stats->relation_count++; 120 + for (i = 0; i < relation->member_count; i++) 121 + { 122 + member = relation->members + i; 123 + switch (member->member_type) 124 + { 125 + case READOSM_MEMBER_NODE: 126 + stats->relation_member_node_count++; 127 + break; 128 + case READOSM_MEMBER_WAY: 129 + stats->relation_member_way_count++; 130 + break; 131 + case READOSM_MEMBER_RELATION: 132 + stats->relation_member_relation_count++; 133 + break; 134 + }; 135 + } 136 + stats->relation_tag_count += relation->tag_count; 137 + return READOSM_OK; 138 +} 139 + 140 +int 141 +main (int argc, char *argv[]) 142 +{ 143 + const void *osm_handle; 144 + int ret; 145 + struct osm_statistics infos; 146 + 147 +/* initializing the statistics struct */ 148 + infos.node_count = 0; 149 + infos.node_tag_count = 0; 150 + infos.way_count = 0; 151 + infos.way_ndref_count = 0; 152 + infos.way_tag_count = 0; 153 + infos.relation_count = 0; 154 + infos.relation_member_node_count = 0; 155 + infos.relation_member_way_count = 0; 156 + infos.relation_member_relation_count = 0; 157 + infos.relation_tag_count = 0; 158 + infos.min_longitude = 180.0; 159 + infos.max_longitude = -180.0; 160 + infos.min_latitude = 90.0; 161 + infos.max_latitude = -90.0; 162 + 163 + if (argc != 2) 164 + { 165 + fprintf (stderr, "usage: test_osm2 path-to-OSM-file\n"); 166 + return -1; 167 + } 168 + 169 +/* 170 +* STEP #1: opening the OSM file 171 +* this can indifferently be an OSM XML encoded file (.osm) 172 +* or an OSM Protocol Buffer encoded file (.pbf) 173 +* the library will transparently perform any required 174 +* action in both cases. 175 +*/ 176 + ret = readosm_open (argv[1], &osm_handle); 177 + if (ret != READOSM_OK) 178 + { 179 + fprintf (stderr, "OPEN error: %d\n", ret); 180 + goto stop; 181 + } 182 + 183 +/* 184 +* STEP #2: parsing the OSM file 185 +* this task is unbelievebly simple 186 +* 187 +* you are simply required to pass the appropriate 188 +* pointers for callback funtions respectively intended 189 +* to process Node-objects, Way-objects and Relation-objects 190 +* 191 +* the library will then parse the whole input file, calling 192 +* the appropriate callback handling function for each OSM object 193 +* found: please see the callback functions implementing code 194 +* to better understand how it works 195 +* 196 +* important notice: this second example is mainly focused on 197 +* using the USER_DATA pointer. in this example we'll pass the 198 +* address of the osm_statistics struct so to gather some 199 +* general infos. 200 +*/ 201 + ret = 202 + readosm_parse (osm_handle, &infos, node_stats, way_stats, 203 + relation_stats); 204 + if (ret != READOSM_OK) 205 + { 206 + fprintf (stderr, "PARSE error: %d\n", ret); 207 + goto stop; 208 + } 209 + 210 +/* printing OSM statistics */ 211 + printf ("Longitude range: %1.7f / %1.7f\n", infos.min_longitude, 212 + infos.max_longitude); 213 + printf ("Latitude range: %1.7f / %1.7f\n\n", infos.min_latitude, 214 + infos.max_latitude); 215 + printf ("Nodes : %d\n", infos.node_count); 216 + printf (" tags: %d\n\n", infos.node_tag_count); 217 + printf ("Ways : %d\n", infos.way_count); 218 + printf (" ndref: %d\n", infos.way_ndref_count); 219 + printf (" tags: %d\n\n", infos.way_tag_count); 220 + printf ("Relations : %d\n", infos.relation_count); 221 + printf (" member.nodes : %d\n", infos.relation_member_node_count); 222 + printf (" member.ways : %d\n", infos.relation_member_way_count); 223 + printf (" member.relations: %d\n", infos.relation_member_relation_count); 224 + printf (" tags: %d\n", infos.relation_tag_count); 225 + 226 + stop: 227 +/* 228 +* STEP #3: closing the OSM file 229 +* this will release any internal memory allocation 230 +*/ 231 + readosm_close (osm_handle); 232 + return 0; 233 +}
Added examples/test_osm3.c.
1 +/* 2 +/ test_osm3.c 3 +/ 4 +/ libreadosm Sample code 5 +/ 6 +/ Author: Sandro Furieri a.furieri@lqt.it 7 +/ 8 +/ ------------------------------------------------------------------------------ 9 +/ 10 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 11 +/ 12 +/ The contents of this file are subject to the Mozilla Public License Version 13 +/ 1.1 (the "License"); you may not use this file except in compliance with 14 +/ the License. You may obtain a copy of the License at 15 +/ http://www.mozilla.org/MPL/ 16 +/ 17 +/ Software distributed under the License is distributed on an "AS IS" basis, 18 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 19 +/ for the specific language governing rights and limitations under the 20 +/ License. 21 +/ 22 +/ The Original Code is the ReadOSM library 23 +/ 24 +/ The Initial Developer of the Original Code is Alessandro Furieri 25 +/ 26 +/ Portions created by the Initial Developer are Copyright (C) 2012 27 +/ the Initial Developer. All Rights Reserved. 28 +/ 29 +/ Contributor(s): 30 +/ 31 +/ Alternatively, the contents of this file may be used under the terms of 32 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 33 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 34 +/ in which case the provisions of the GPL or the LGPL are applicable instead 35 +/ of those above. If you wish to allow use of your version of this file only 36 +/ under the terms of either the GPL or the LGPL, and not to allow others to 37 +/ use your version of this file under the terms of the MPL, indicate your 38 +/ decision by deleting the provisions above and replace them with the notice 39 +/ and other provisions required by the GPL or the LGPL. If you do not delete 40 +/ the provisions above, a recipient may use your version of this file under 41 +/ the terms of any one of the MPL, the GPL or the LGPL. 42 +/ 43 +*/ 44 + 45 +#include <stdio.h> 46 +#include <stdlib.h> 47 + 48 +#include "readosm.h" 49 + 50 +struct osm_helper 51 +{ 52 +/* an user defined struct */ 53 + int read_count; 54 + int stop_limit; 55 +}; 56 + 57 +static int 58 +eval_abort (struct osm_helper *helper) 59 +{ 60 +/* testing the stop limit */ 61 + if (helper->read_count > helper->stop_limit) 62 + return 1; 63 + return 0; 64 +} 65 + 66 +static int 67 +parse_node (const void *user_data, const readosm_node * node) 68 +{ 69 +/* parsing a Node (callback function)*/ 70 + 71 + /* casting the USER_DATA pointer to osm_helper */ 72 + struct osm_helper *helper = (struct osm_helper *) user_data; 73 + 74 + helper->read_count++; 75 + if (eval_abort (helper)) 76 + return READOSM_ABORT; 77 + printf ("Node#%d\n", helper->read_count); 78 + return READOSM_OK; 79 +} 80 + 81 +static int 82 +parse_way (const void *user_data, const readosm_way * way) 83 +{ 84 +/* parsing a Way (callback function)*/ 85 + 86 + /* casting the USER_DATA pointer to osm_helper */ 87 + struct osm_helper *helper = (struct osm_helper *) user_data; 88 + 89 + helper->read_count++; 90 + if (eval_abort (helper)) 91 + return READOSM_ABORT; 92 + printf ("Way#%d\n", helper->read_count); 93 + return READOSM_OK; 94 +} 95 + 96 +static int 97 +parse_relation (const void *user_data, const readosm_relation * relation) 98 +{ 99 +/* parsing a Relation stats (callback function)*/ 100 + 101 + /* casting the USER_DATA pointer to osm_helper */ 102 + struct osm_helper *helper = (struct osm_helper *) user_data; 103 + 104 + helper->read_count++; 105 + if (eval_abort (helper)) 106 + return READOSM_ABORT; 107 + printf ("Relation#%d\n", helper->read_count); 108 + return READOSM_OK; 109 +} 110 + 111 +int 112 +main (int argc, char *argv[]) 113 +{ 114 + const void *osm_handle; 115 + int ret; 116 + struct osm_helper helper; 117 + 118 +/* initializing the helper struct */ 119 + helper.read_count = 0; 120 + helper.stop_limit = 0; 121 + 122 + if (argc != 3) 123 + { 124 + fprintf (stderr, "usage: test_osm3 path-to-OSM limit\n"); 125 + return -1; 126 + } 127 + 128 +/* setting the stop limit */ 129 + helper.stop_limit = atoi (argv[2]); 130 + 131 +/* 132 +* STEP #1: opening the OSM file 133 +* this can indifferently be an OSM XML encoded file (.osm) 134 +* or an OSM Protocol Buffer encoded file (.pbf) 135 +* the library will transparently perform any required 136 +* action in both cases. 137 +*/ 138 + ret = readosm_open (argv[1], &osm_handle); 139 + if (ret != READOSM_OK) 140 + { 141 + fprintf (stderr, "OPEN error: %d\n", ret); 142 + goto stop; 143 + } 144 + 145 +/* 146 +* STEP #2: parsing the OSM file 147 +* this task is unbelievably simple 148 +* 149 +* you are simply required to pass the appropriate 150 +* pointers for callback funtions respectively intended 151 +* to process Node-objects, Way-objects and Relation-objects 152 +* 153 +* the library will then parse the whole input file, calling 154 +* the appropriate callback handling function for each OSM object 155 +* found: please see the callback functions implementing code 156 +* to better understand how it works 157 +* 158 +* important notice: this second example is mainly focused on 159 +* using the USER_DATA pointer. in this example we'll pass the 160 +* address of the osm_statistics struct so to gather some 161 +* general infos. 162 +*/ 163 + ret = 164 + readosm_parse (osm_handle, &helper, parse_node, parse_way, 165 + parse_relation); 166 + if (ret != READOSM_OK) 167 + { 168 + fprintf (stderr, "PARSE error: %d\n", ret); 169 + goto stop; 170 + } 171 + 172 + stop: 173 +/* 174 +* STEP #3: closing the OSM file 175 +* this will release any internal memory allocation 176 +*/ 177 + readosm_close (osm_handle); 178 + return 0; 179 +}
Added headers/Makefile.am.
1 + 2 +noinst_HEADERS = readosm_internals.h readosm_protobuf.h 3 +include_HEADERS = readosm.h 4 +
Added headers/Makefile.in.
1 +# Makefile.in generated by automake 1.14.1 from Makefile.am. 2 +# @configure_input@ 3 + 4 +# Copyright (C) 1994-2013 Free Software Foundation, Inc. 5 + 6 +# This Makefile.in is free software; the Free Software Foundation 7 +# gives unlimited permission to copy and/or distribute it, 8 +# with or without modifications, as long as this notice is preserved. 9 + 10 +# This program is distributed in the hope that it will be useful, 11 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 +# PARTICULAR PURPOSE. 14 + 15 +@SET_MAKE@ 16 + 17 +VPATH = @srcdir@ 18 +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 19 +am__make_running_with_option = \ 20 + case $${target_option-} in \ 21 + ?) ;; \ 22 + *) echo "am__make_running_with_option: internal error: invalid" \ 23 + "target option '$${target_option-}' specified" >&2; \ 24 + exit 1;; \ 25 + esac; \ 26 + has_opt=no; \ 27 + sane_makeflags=$$MAKEFLAGS; \ 28 + if $(am__is_gnu_make); then \ 29 + sane_makeflags=$$MFLAGS; \ 30 + else \ 31 + case $$MAKEFLAGS in \ 32 + *\\[\ \ ]*) \ 33 + bs=\\; \ 34 + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ 35 + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ 36 + esac; \ 37 + fi; \ 38 + skip_next=no; \ 39 + strip_trailopt () \ 40 + { \ 41 + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ 42 + }; \ 43 + for flg in $$sane_makeflags; do \ 44 + test $$skip_next = yes && { skip_next=no; continue; }; \ 45 + case $$flg in \ 46 + *=*|--*) continue;; \ 47 + -*I) strip_trailopt 'I'; skip_next=yes;; \ 48 + -*I?*) strip_trailopt 'I';; \ 49 + -*O) strip_trailopt 'O'; skip_next=yes;; \ 50 + -*O?*) strip_trailopt 'O';; \ 51 + -*l) strip_trailopt 'l'; skip_next=yes;; \ 52 + -*l?*) strip_trailopt 'l';; \ 53 + -[dEDm]) skip_next=yes;; \ 54 + -[JT]) skip_next=yes;; \ 55 + esac; \ 56 + case $$flg in \ 57 + *$$target_option*) has_opt=yes; break;; \ 58 + esac; \ 59 + done; \ 60 + test $$has_opt = yes 61 +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) 62 +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 63 +pkgdatadir = $(datadir)/@PACKAGE@ 64 +pkgincludedir = $(includedir)/@PACKAGE@ 65 +pkglibdir = $(libdir)/@PACKAGE@ 66 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 67 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 68 +install_sh_DATA = $(install_sh) -c -m 644 69 +install_sh_PROGRAM = $(install_sh) -c 70 +install_sh_SCRIPT = $(install_sh) -c 71 +INSTALL_HEADER = $(INSTALL_DATA) 72 +transform = $(program_transform_name) 73 +NORMAL_INSTALL = : 74 +PRE_INSTALL = : 75 +POST_INSTALL = : 76 +NORMAL_UNINSTALL = : 77 +PRE_UNINSTALL = : 78 +POST_UNINSTALL = : 79 +build_triplet = @build@ 80 +host_triplet = @host@ 81 +subdir = headers 82 +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ 83 + $(include_HEADERS) $(noinst_HEADERS) 84 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 85 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ 86 + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 87 + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 88 + $(top_srcdir)/configure.ac 89 +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 90 + $(ACLOCAL_M4) 91 +mkinstalldirs = $(install_sh) -d 92 +CONFIG_HEADER = $(top_builddir)/config.h 93 +CONFIG_CLEAN_FILES = 94 +CONFIG_CLEAN_VPATH_FILES = 95 +AM_V_P = $(am__v_P_@AM_V@) 96 +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) 97 +am__v_P_0 = false 98 +am__v_P_1 = : 99 +AM_V_GEN = $(am__v_GEN_@AM_V@) 100 +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 101 +am__v_GEN_0 = @echo " GEN " $@; 102 +am__v_GEN_1 = 103 +AM_V_at = $(am__v_at_@AM_V@) 104 +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 105 +am__v_at_0 = @ 106 +am__v_at_1 = 107 +SOURCES = 108 +DIST_SOURCES = 109 +am__can_run_installinfo = \ 110 + case $$AM_UPDATE_INFO_DIR in \ 111 + n|no|NO) false;; \ 112 + *) (install-info --version) >/dev/null 2>&1;; \ 113 + esac 114 +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 115 +am__vpath_adj = case $$p in \ 116 + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 117 + *) f=$$p;; \ 118 + esac; 119 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; 120 +am__install_max = 40 121 +am__nobase_strip_setup = \ 122 + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` 123 +am__nobase_strip = \ 124 + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" 125 +am__nobase_list = $(am__nobase_strip_setup); \ 126 + for p in $$list; do echo "$$p $$p"; done | \ 127 + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ 128 + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ 129 + if (++n[$$2] == $(am__install_max)) \ 130 + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ 131 + END { for (dir in files) print dir, files[dir] }' 132 +am__base_list = \ 133 + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ 134 + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' 135 +am__uninstall_files_from_dir = { \ 136 + test -z "$$files" \ 137 + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ 138 + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ 139 + $(am__cd) "$$dir" && rm -f $$files; }; \ 140 + } 141 +am__installdirs = "$(DESTDIR)$(includedir)" 142 +HEADERS = $(include_HEADERS) $(noinst_HEADERS) 143 +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) 144 +# Read a list of newline-separated strings from the standard input, 145 +# and print each of them once, without duplicates. Input order is 146 +# *not* preserved. 147 +am__uniquify_input = $(AWK) '\ 148 + BEGIN { nonempty = 0; } \ 149 + { items[$$0] = 1; nonempty = 1; } \ 150 + END { if (nonempty) { for (i in items) print i; }; } \ 151 +' 152 +# Make sure the list of sources is unique. This is necessary because, 153 +# e.g., the same source file might be shared among _SOURCES variables 154 +# for different programs/libraries. 155 +am__define_uniq_tagged_files = \ 156 + list='$(am__tagged_files)'; \ 157 + unique=`for i in $$list; do \ 158 + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 159 + done | $(am__uniquify_input)` 160 +ETAGS = etags 161 +CTAGS = ctags 162 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 163 +ACLOCAL = @ACLOCAL@ 164 +AMTAR = @AMTAR@ 165 +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 166 +AR = @AR@ 167 +AS = @AS@ 168 +AUTOCONF = @AUTOCONF@ 169 +AUTOHEADER = @AUTOHEADER@ 170 +AUTOMAKE = @AUTOMAKE@ 171 +AWK = @AWK@ 172 +CC = @CC@ 173 +CCDEPMODE = @CCDEPMODE@ 174 +CFLAGS = @CFLAGS@ 175 +CPP = @CPP@ 176 +CPPFLAGS = @CPPFLAGS@ 177 +CXX = @CXX@ 178 +CXXCPP = @CXXCPP@ 179 +CXXDEPMODE = @CXXDEPMODE@ 180 +CXXFLAGS = @CXXFLAGS@ 181 +CYGPATH_W = @CYGPATH_W@ 182 +DEFS = @DEFS@ 183 +DEPDIR = @DEPDIR@ 184 +DLLTOOL = @DLLTOOL@ 185 +DSYMUTIL = @DSYMUTIL@ 186 +DUMPBIN = @DUMPBIN@ 187 +ECHO_C = @ECHO_C@ 188 +ECHO_N = @ECHO_N@ 189 +ECHO_T = @ECHO_T@ 190 +EGREP = @EGREP@ 191 +EXEEXT = @EXEEXT@ 192 +FGREP = @FGREP@ 193 +GREP = @GREP@ 194 +INSTALL = @INSTALL@ 195 +INSTALL_DATA = @INSTALL_DATA@ 196 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ 197 +INSTALL_SCRIPT = @INSTALL_SCRIPT@ 198 +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 199 +LD = @LD@ 200 +LDFLAGS = @LDFLAGS@ 201 +LIBOBJS = @LIBOBJS@ 202 +LIBS = @LIBS@ 203 +LIBTOOL = @LIBTOOL@ 204 +LIPO = @LIPO@ 205 +LN_S = @LN_S@ 206 +LTLIBOBJS = @LTLIBOBJS@ 207 +MAINT = @MAINT@ 208 +MAKEINFO = @MAKEINFO@ 209 +MANIFEST_TOOL = @MANIFEST_TOOL@ 210 +MKDIR_P = @MKDIR_P@ 211 +NM = @NM@ 212 +NMEDIT = @NMEDIT@ 213 +OBJDUMP = @OBJDUMP@ 214 +OBJEXT = @OBJEXT@ 215 +OTOOL = @OTOOL@ 216 +OTOOL64 = @OTOOL64@ 217 +PACKAGE = @PACKAGE@ 218 +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 219 +PACKAGE_NAME = @PACKAGE_NAME@ 220 +PACKAGE_STRING = @PACKAGE_STRING@ 221 +PACKAGE_TARNAME = @PACKAGE_TARNAME@ 222 +PACKAGE_URL = @PACKAGE_URL@ 223 +PACKAGE_VERSION = @PACKAGE_VERSION@ 224 +PATH_SEPARATOR = @PATH_SEPARATOR@ 225 +RANLIB = @RANLIB@ 226 +SED = @SED@ 227 +SET_MAKE = @SET_MAKE@ 228 +SHELL = @SHELL@ 229 +STRIP = @STRIP@ 230 +VERSION = @VERSION@ 231 +abs_builddir = @abs_builddir@ 232 +abs_srcdir = @abs_srcdir@ 233 +abs_top_builddir = @abs_top_builddir@ 234 +abs_top_srcdir = @abs_top_srcdir@ 235 +ac_ct_AR = @ac_ct_AR@ 236 +ac_ct_CC = @ac_ct_CC@ 237 +ac_ct_CXX = @ac_ct_CXX@ 238 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 239 +am__include = @am__include@ 240 +am__leading_dot = @am__leading_dot@ 241 +am__quote = @am__quote@ 242 +am__tar = @am__tar@ 243 +am__untar = @am__untar@ 244 +bindir = @bindir@ 245 +build = @build@ 246 +build_alias = @build_alias@ 247 +build_cpu = @build_cpu@ 248 +build_os = @build_os@ 249 +build_vendor = @build_vendor@ 250 +builddir = @builddir@ 251 +datadir = @datadir@ 252 +datarootdir = @datarootdir@ 253 +docdir = @docdir@ 254 +dvidir = @dvidir@ 255 +exec_prefix = @exec_prefix@ 256 +host = @host@ 257 +host_alias = @host_alias@ 258 +host_cpu = @host_cpu@ 259 +host_os = @host_os@ 260 +host_vendor = @host_vendor@ 261 +htmldir = @htmldir@ 262 +includedir = @includedir@ 263 +infodir = @infodir@ 264 +install_sh = @install_sh@ 265 +libdir = @libdir@ 266 +libexecdir = @libexecdir@ 267 +localedir = @localedir@ 268 +localstatedir = @localstatedir@ 269 +mandir = @mandir@ 270 +mkdir_p = @mkdir_p@ 271 +oldincludedir = @oldincludedir@ 272 +pdfdir = @pdfdir@ 273 +prefix = @prefix@ 274 +program_transform_name = @program_transform_name@ 275 +psdir = @psdir@ 276 +sbindir = @sbindir@ 277 +sharedstatedir = @sharedstatedir@ 278 +srcdir = @srcdir@ 279 +sysconfdir = @sysconfdir@ 280 +target_alias = @target_alias@ 281 +top_build_prefix = @top_build_prefix@ 282 +top_builddir = @top_builddir@ 283 +top_srcdir = @top_srcdir@ 284 +noinst_HEADERS = readosm_internals.h readosm_protobuf.h 285 +include_HEADERS = readosm.h 286 +all: all-am 287 + 288 +.SUFFIXES: 289 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 290 + @for dep in $?; do \ 291 + case '$(am__configure_deps)' in \ 292 + *$$dep*) \ 293 + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ 294 + && { if test -f $@; then exit 0; else break; fi; }; \ 295 + exit 1;; \ 296 + esac; \ 297 + done; \ 298 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu headers/Makefile'; \ 299 + $(am__cd) $(top_srcdir) && \ 300 + $(AUTOMAKE) --gnu headers/Makefile 301 +.PRECIOUS: Makefile 302 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 303 + @case '$?' in \ 304 + *config.status*) \ 305 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 306 + *) \ 307 + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ 308 + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 309 + esac; 310 + 311 +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 312 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 313 + 314 +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 315 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 316 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 317 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 318 +$(am__aclocal_m4_deps): 319 + 320 +mostlyclean-libtool: 321 + -rm -f *.lo 322 + 323 +clean-libtool: 324 + -rm -rf .libs _libs 325 +install-includeHEADERS: $(include_HEADERS) 326 + @$(NORMAL_INSTALL) 327 + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ 328 + if test -n "$$list"; then \ 329 + echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ 330 + $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ 331 + fi; \ 332 + for p in $$list; do \ 333 + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 334 + echo "$$d$$p"; \ 335 + done | $(am__base_list) | \ 336 + while read files; do \ 337 + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ 338 + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ 339 + done 340 + 341 +uninstall-includeHEADERS: 342 + @$(NORMAL_UNINSTALL) 343 + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ 344 + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ 345 + dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) 346 + 347 +ID: $(am__tagged_files) 348 + $(am__define_uniq_tagged_files); mkid -fID $$unique 349 +tags: tags-am 350 +TAGS: tags 351 + 352 +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 353 + set x; \ 354 + here=`pwd`; \ 355 + $(am__define_uniq_tagged_files); \ 356 + shift; \ 357 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 358 + test -n "$$unique" || unique=$$empty_fix; \ 359 + if test $$# -gt 0; then \ 360 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 361 + "$$@" $$unique; \ 362 + else \ 363 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 364 + $$unique; \ 365 + fi; \ 366 + fi 367 +ctags: ctags-am 368 + 369 +CTAGS: ctags 370 +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 371 + $(am__define_uniq_tagged_files); \ 372 + test -z "$(CTAGS_ARGS)$$unique" \ 373 + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 374 + $$unique 375 + 376 +GTAGS: 377 + here=`$(am__cd) $(top_builddir) && pwd` \ 378 + && $(am__cd) $(top_srcdir) \ 379 + && gtags -i $(GTAGS_ARGS) "$$here" 380 +cscopelist: cscopelist-am 381 + 382 +cscopelist-am: $(am__tagged_files) 383 + list='$(am__tagged_files)'; \ 384 + case "$(srcdir)" in \ 385 + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ 386 + *) sdir=$(subdir)/$(srcdir) ;; \ 387 + esac; \ 388 + for i in $$list; do \ 389 + if test -f "$$i"; then \ 390 + echo "$(subdir)/$$i"; \ 391 + else \ 392 + echo "$$sdir/$$i"; \ 393 + fi; \ 394 + done >> $(top_builddir)/cscope.files 395 + 396 +distclean-tags: 397 + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 398 + 399 +distdir: $(DISTFILES) 400 + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 401 + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 402 + list='$(DISTFILES)'; \ 403 + dist_files=`for file in $$list; do echo $$file; done | \ 404 + sed -e "s|^$$srcdirstrip/||;t" \ 405 + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 406 + case $$dist_files in \ 407 + */*) $(MKDIR_P) `echo "$$dist_files" | \ 408 + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 409 + sort -u` ;; \ 410 + esac; \ 411 + for file in $$dist_files; do \ 412 + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 413 + if test -d $$d/$$file; then \ 414 + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 415 + if test -d "$(distdir)/$$file"; then \ 416 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 417 + fi; \ 418 + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 419 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 420 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 421 + fi; \ 422 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 423 + else \ 424 + test -f "$(distdir)/$$file" \ 425 + || cp -p $$d/$$file "$(distdir)/$$file" \ 426 + || exit 1; \ 427 + fi; \ 428 + done 429 +check-am: all-am 430 +check: check-am 431 +all-am: Makefile $(HEADERS) 432 +installdirs: 433 + for dir in "$(DESTDIR)$(includedir)"; do \ 434 + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 435 + done 436 +install: install-am 437 +install-exec: install-exec-am 438 +install-data: install-data-am 439 +uninstall: uninstall-am 440 + 441 +install-am: all-am 442 + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 443 + 444 +installcheck: installcheck-am 445 +install-strip: 446 + if test -z '$(STRIP)'; then \ 447 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 448 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 449 + install; \ 450 + else \ 451 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 452 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 453 + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ 454 + fi 455 +mostlyclean-generic: 456 + 457 +clean-generic: 458 + 459 +distclean-generic: 460 + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 461 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 462 + 463 +maintainer-clean-generic: 464 + @echo "This command is intended for maintainers to use" 465 + @echo "it deletes files that may require special tools to rebuild." 466 +clean: clean-am 467 + 468 +clean-am: clean-generic clean-libtool mostlyclean-am 469 + 470 +distclean: distclean-am 471 + -rm -f Makefile 472 +distclean-am: clean-am distclean-generic distclean-tags 473 + 474 +dvi: dvi-am 475 + 476 +dvi-am: 477 + 478 +html: html-am 479 + 480 +html-am: 481 + 482 +info: info-am 483 + 484 +info-am: 485 + 486 +install-data-am: install-includeHEADERS 487 + 488 +install-dvi: install-dvi-am 489 + 490 +install-dvi-am: 491 + 492 +install-exec-am: 493 + 494 +install-html: install-html-am 495 + 496 +install-html-am: 497 + 498 +install-info: install-info-am 499 + 500 +install-info-am: 501 + 502 +install-man: 503 + 504 +install-pdf: install-pdf-am 505 + 506 +install-pdf-am: 507 + 508 +install-ps: install-ps-am 509 + 510 +install-ps-am: 511 + 512 +installcheck-am: 513 + 514 +maintainer-clean: maintainer-clean-am 515 + -rm -f Makefile 516 +maintainer-clean-am: distclean-am maintainer-clean-generic 517 + 518 +mostlyclean: mostlyclean-am 519 + 520 +mostlyclean-am: mostlyclean-generic mostlyclean-libtool 521 + 522 +pdf: pdf-am 523 + 524 +pdf-am: 525 + 526 +ps: ps-am 527 + 528 +ps-am: 529 + 530 +uninstall-am: uninstall-includeHEADERS 531 + 532 +.MAKE: install-am install-strip 533 + 534 +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ 535 + clean-libtool cscopelist-am ctags ctags-am distclean \ 536 + distclean-generic distclean-libtool distclean-tags distdir dvi \ 537 + dvi-am html html-am info info-am install install-am \ 538 + install-data install-data-am install-dvi install-dvi-am \ 539 + install-exec install-exec-am install-html install-html-am \ 540 + install-includeHEADERS install-info install-info-am \ 541 + install-man install-pdf install-pdf-am install-ps \ 542 + install-ps-am install-strip installcheck installcheck-am \ 543 + installdirs maintainer-clean maintainer-clean-generic \ 544 + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ 545 + ps ps-am tags tags-am uninstall uninstall-am \ 546 + uninstall-includeHEADERS 547 + 548 + 549 +# Tell versions [3.59,3.63) of GNU make to not export all variables. 550 +# Otherwise a system limit (for SysV at least) may be exceeded. 551 +.NOEXPORT:
Added headers/readosm.h.
1 +/* 2 +/ readosm.h 3 +/ 4 +/ public declarations 5 +/ 6 +/ version 1.0, 2012 April 10 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ ------------------------------------------------------------------------------ 11 +/ 12 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 13 +/ 14 +/ The contents of this file are subject to the Mozilla Public License Version 15 +/ 1.1 (the "License"); you may not use this file except in compliance with 16 +/ the License. You may obtain a copy of the License at 17 +/ http://www.mozilla.org/MPL/ 18 +/ 19 +/ Software distributed under the License is distributed on an "AS IS" basis, 20 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 21 +/ for the specific language governing rights and limitations under the 22 +/ License. 23 +/ 24 +/ The Original Code is the ReadOSM library 25 +/ 26 +/ The Initial Developer of the Original Code is Alessandro Furieri 27 +/ 28 +/ Portions created by the Initial Developer are Copyright (C) 2012 29 +/ the Initial Developer. All Rights Reserved. 30 +/ 31 +/ Contributor(s): 32 +/ 33 +/ Alternatively, the contents of this file may be used under the terms of 34 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 35 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 36 +/ in which case the provisions of the GPL or the LGPL are applicable instead 37 +/ of those above. If you wish to allow use of your version of this file only 38 +/ under the terms of either the GPL or the LGPL, and not to allow others to 39 +/ use your version of this file under the terms of the MPL, indicate your 40 +/ decision by deleting the provisions above and replace them with the notice 41 +/ and other provisions required by the GPL or the LGPL. If you do not delete 42 +/ the provisions above, a recipient may use your version of this file under 43 +/ the terms of any one of the MPL, the GPL or the LGPL. 44 +/ 45 +*/ 46 + 47 +/** 48 + \file readosm.h 49 + 50 + Function declarations and constants for ReadOSM library 51 + */ 52 +#ifndef DOXYGEN_SHOULD_SKIP_THIS 53 +#ifdef _WIN32 54 +#ifdef DLL_EXPORT 55 +#define READOSM_DECLARE __declspec(dllexport) 56 +#define READOSM_PRIVATE 57 +#else 58 +#define READOSM_DECLARE extern 59 +#define READOSM_PRIVATE 60 +#endif 61 +#else 62 +#define READOSM_DECLARE __attribute__ ((visibility("default"))) 63 +#define READOSM_PRIVATE __attribute__ ((visibility("hidden"))) 64 +#endif 65 +#endif 66 + 67 +#ifndef _READOSM_H 68 +#ifndef DOXYGEN_SHOULD_SKIP_THIS 69 +#define _READOSM_H 70 +#endif 71 + 72 +#ifdef __cplusplus 73 +extern "C" 74 +{ 75 +#endif 76 + 77 +/* constants */ 78 +/** information is not available */ 79 +#define READOSM_UNDEFINED -1234567890 80 +/** MemberType: NODE */ 81 +#define READOSM_MEMBER_NODE 7361 82 +/** MemberType: WAY */ 83 +#define READOSM_MEMBER_WAY 6731 84 +/** MemberType: RELATION */ 85 +#define READOSM_MEMBER_RELATION 3671 86 + 87 +/* Error codes */ 88 +#define READOSM_OK 0 /**< No error, success */ 89 +#define READOSM_INVALID_SUFFIX -1 /**< not .osm or .pbf suffix */ 90 +#define READOSM_FILE_NOT_FOUND -2 /**< .osm or .pbf file does not exist or is 91 + not accessible for reading */ 92 +#define READOSM_NULL_HANDLE -3 /**< Null OSM_handle argument */ 93 +#define READOSM_INVALID_HANDLE -4 /**< Invalid OSM_handle argument */ 94 +#define READOSM_INSUFFICIENT_MEMORY -5 /**< some kind of memory allocation 95 + failure */ 96 +#define READOSM_CREATE_XML_PARSER_ERROR -6 /**< cannot create the XML Parser */ 97 +#define READOSM_READ_ERROR -7 /**< read error */ 98 +#define READOSM_XML_ERROR -8 /**< XML parser error */ 99 +#define READOSM_INVALID_PBF_HEADER -9 /**< invalid PBF header */ 100 +#define READOSM_UNZIP_ERROR -10 /**< unZip error */ 101 +#define READOSM_ABORT -11 /**< user-required parser abort */ 102 + 103 + /** 104 + a struct representing a <b>key:value</b> pair, and wrapping an XML fragment like the following: 105 + \verbatim 106 +<tag key="key-value" value="some-value" /> 107 + \endverbatim 108 + */ 109 + struct readosm_tag_struct 110 + { 111 + 112 + const char *key; /**< the KEY */ 113 + const char *value; /**< the VALUE */ 114 + }; 115 + 116 + /** 117 + Typedef for TAG structure. 118 + 119 + \sa readosm_tag_struct 120 + */ 121 + typedef struct readosm_tag_struct readosm_tag; 122 + 123 + /** 124 + a struct representing a NODE object, and wrapping a complex XML fragment like the following: 125 + \verbatim 126 +<node id="12345" lat="6.66666" lon="7.77777" version="1" changeset="54321" user="some-user" uid="66" timestamp="2005-02-28T17:45:15Z"> 127 + <tag key="created_by" value="JOSM" /> 128 + <tag key="tourism" value="camp_site" /> 129 +</node> 130 + \endverbatim 131 + */ 132 + struct readosm_node_struct 133 + { 134 + const long long id; /**< NODE-ID (expected to be a unique value) */ 135 + const double latitude; /**< geographic latitude */ 136 + const double longitude; /**< geographic longitude */ 137 + const int version; /**< object version */ 138 + const long long changeset; /**< ChangeSet ID */ 139 + const char *user; /**< name of the User defining this NODE */ 140 + const int uid; /**< corresponding numeric UserID */ 141 + const char *timestamp; /**< when this NODE was defined */ 142 + const int tag_count; /**< number of associated TAGs (may be zero) */ 143 + const readosm_tag *tags; /**< array of TAG objects (may be NULL) */ 144 + }; 145 + 146 + /** 147 + Typedef for NODE structure. 148 + 149 + \sa readosm_node_struct 150 + */ 151 + typedef struct readosm_node_struct readosm_node; 152 + 153 + /** 154 + a struct representing a WAY object, and wrapping a complex XML fragment like the following: 155 + \verbatim 156 +<way id="12345" version="1" changeset="54321" user="some-user" uid="66" timestamp="2005-02-28T17:45:15Z"> 157 + <nd ref="12345" /> 158 + <nd ref="12346" /> 159 + <nd ref="12347" /> 160 + <tag key="created_by" value="JOSM" /> 161 + <tag key="tourism" value="camp_site" /> 162 +</way> 163 + \endverbatim 164 + */ 165 + struct readosm_way_struct 166 + { 167 + const long long id; /**< WAY-ID (expected to be a unique value) */ 168 + const int version; /**< object version */ 169 + const long long changeset; /**< ChangeSet ID */ 170 + const char *user; /**< name of the User defining this WAY */ 171 + const int uid; /**< corresponding numeric UserID */ 172 + const char *timestamp; /**< when this WAY was defined */ 173 + const int node_ref_count; /**< number of referenced NODE-IDs (may be zero) */ 174 + const long long *node_refs; /**< array of NODE-IDs (may be NULL) */ 175 + const int tag_count; /**< number of associated TAGs (may be zero) */ 176 + const readosm_tag *tags; /**< array of TAG objects (may be NULL) */ 177 + }; 178 + 179 + /** 180 + Typedef for WAY structure. 181 + 182 + \sa readosm_way_struct 183 + */ 184 + typedef struct readosm_way_struct readosm_way; 185 + 186 + /** 187 + a struct representing a RELATION-MEMBER, and wrapping an XML fragment like the following: 188 + \verbatim 189 +<member type="some-type" ref="12345" role="some-role" /> 190 + \endverbatim 191 + */ 192 + struct readosm_member_struct 193 + { 194 + 195 + const int member_type; /**< can be one of: READOSM_MEMBER_NODE, READOSM_MEMBER_WAY or READOSM_MEMBER_RELATION */ 196 + const long long id; /**< ID-value identifying the referenced object */ 197 + const char *role; /**< intended role for this reference */ 198 + }; 199 + 200 + /** 201 + Typedef for MEMBER structure. 202 + 203 + \sa readosm_member_struct 204 + */ 205 + typedef struct readosm_member_struct readosm_member; 206 + 207 + 208 + /** 209 + a struct representing a RELATION object, and wrapping a complex XML fragment like the following: 210 + \verbatim 211 +<relation id="12345" version="1" changeset="54321" user="some-user" uid="66" timestamp="2005-02-28T17:45:15Z"> 212 + <member type="way" ref="12345" role="outer" /> 213 + <member type="way" ref="12346" role="inner" /> 214 + <tag key="created_by" value="JOSM" /> 215 + <tag key="tourism" value="camp_site" /> 216 +</relation> 217 + \endverbatim 218 + */ 219 + struct readosm_relation_struct 220 + { 221 + const long long id; /**< RELATION-ID (expected to be a unique value) */ 222 + const int version; /**< object version */ 223 + const long long changeset; /**< ChangeSet ID */ 224 + const char *user; /**< name of the User defining this RELATION */ 225 + const int uid; /**< corresponding numeric UserID */ 226 + const char *timestamp; /**< when this RELATION was defined */ 227 + const int member_count; /**< number of associated MEMBERs (may be zero) */ 228 + const readosm_member *members; /**< array of MEMBER objects (may be NULL) */ 229 + const int tag_count; /**< number of associated TAGs (may be zero) */ 230 + const readosm_tag *tags; /**< array of TAG objects (may be NULL) */ 231 + }; 232 + 233 + /** 234 + Typedef for RELATION structure. 235 + 236 + \sa readosm_relation_struct 237 + */ 238 + typedef struct readosm_relation_struct readosm_relation; 239 + 240 +/** callback function handling NODE objects */ 241 + typedef int (*readosm_node_callback) (const void *user_data, 242 + const readosm_node * node); 243 + 244 +/** callback function handling WAY objects */ 245 + typedef int (*readosm_way_callback) (const void *user_data, 246 + const readosm_way * way); 247 + 248 +/** callback function handling RELATION objects */ 249 + typedef int (*readosm_relation_callback) (const void *user_data, 250 + const readosm_relation * 251 + relation); 252 + 253 + /** 254 + Open the .osm or .pbf file, preparing for future functions 255 + 256 + \param path full or relative pathname of the input file. 257 + \param osm_handle an opaque reference (handle) to be used in each 258 + subsequent function (return value). 259 + 260 + \return READOSM_OK will be returned on success, otherwise any appropriate 261 + error code on failure. 262 + 263 + \note You are expected to readosm_close() even on failure, so as to 264 + correctly release any dynamic memory allocation. 265 + */ 266 + READOSM_DECLARE int readosm_open (const char *path, 267 + const void **osm_handle); 268 + 269 + /** 270 + Close the .osm or .pbf file and release any allocated resource 271 + 272 + \param osm_handle the handle previously returned by readosm_open() 273 + 274 + \return READOSM_OK will be returned on success, otherwise any appropriate 275 + error code on failure. 276 + 277 + \note After calling readosm_close() any related resource will be released, 278 + and the handle will no longer be valid. 279 + */ 280 + READOSM_DECLARE int readosm_close (const void *osm_handle); 281 + 282 + /** 283 + Close the .osm or .pbf file and release any allocated resource 284 + 285 + \param osm_handle the handle previously returned by readosm_open() 286 +\param user_data pointer to some user-supplied data struct 287 + \param node_fnct pointer to callback function intended to consume NODE objects 288 + (may be NULL if processing NODEs is not an interesting option) 289 + \param way_fnct pointer to callback function intended to consume WAY objects 290 + (may be NULL if processing WAYs is not an interesting option) 291 + \param relation_fnct pointer to callback function intended to consume RELATION objects 292 + (may be NULL if processing RELATIONs is not an interesting option) 293 + 294 + \return READOSM_OK will be returned on success, otherwise any appropriate 295 + error code on failure. 296 + 297 + \note After calling readosm_close() any related resource will be released, 298 + and the handle will no longer be valid. 299 + */ 300 + READOSM_DECLARE int readosm_parse (const void *osm_handle, 301 + const void *user_data, 302 + readosm_node_callback node_fnct, 303 + readosm_way_callback way_fnct, 304 + readosm_relation_callback relation_fnct); 305 + 306 +#ifdef __cplusplus 307 +} 308 +#endif 309 + 310 +#endif /* _READOSM_H */
Added headers/readosm_internals.h.
1 +/* 2 +/ readosm_internals.h 3 +/ 4 +/ internal declarations 5 +/ 6 +/ version 1.0, 2012 April 10 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ ------------------------------------------------------------------------------ 11 +/ 12 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 13 +/ 14 +/ The contents of this file are subject to the Mozilla Public License Version 15 +/ 1.1 (the "License"); you may not use this file except in compliance with 16 +/ the License. You may obtain a copy of the License at 17 +/ http://www.mozilla.org/MPL/ 18 +/ 19 +/ Software distributed under the License is distributed on an "AS IS" basis, 20 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 21 +/ for the specific language governing rights and limitations under theskip: 22 +/ License. 23 +/ 24 +/ The Original Code is the ReadOSM library 25 +/ 26 +/ The Initial Developer of the Original Code is Alessandro Furieri 27 +/ 28 +/ Portions created by the Initial Developer are Copyright (C) 2012 29 +/ the Initial Developer. All Rights Reserved. 30 +/ 31 +/ Contributor(s): 32 +/ 33 +/ Alternatively, the contents of this file may be used under the terms of 34 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 35 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 36 +/ in which case the provisions of the GPL or the LGPL are applicable instead 37 +/ of those above. If you wish to allow use of your version of this file only 38 +/ under the terms of either the GPL or the LGPL, and not to allow others to 39 +/ use your version of this file under the terms of the MPL, indicate your 40 +/ decision by deleting the provisions above and replace them with the notice 41 +/ and other provisions required by the GPL or the LGPL. If you do not delete 42 +/ the provisions above, a recipient may use your version of this file under 43 +/ the terms of any one of the MPL, the GPL or the LGPL. 44 +/ 45 +*/ 46 + 47 +/* endianness */ 48 +#define READOSM_BIG_ENDIAN 0 49 +#define READOSM_LITTLE_ENDIAN 1 50 + 51 +/* magic signatures */ 52 +#define READOSM_MAGIC_START 945371767 53 +#define READOSM_MAGIC_END 1472954381 54 + 55 +/* file formats */ 56 +#define READOSM_OSM_FORMAT 4589 57 +#define READOSM_PBF_FORMAT 7491 58 + 59 +/* XML tags */ 60 +#define READOSM_CURRENT_TAG_UNKNOWN 0 61 +#define READOSM_CURRENT_TAG_IS_NODE 101 62 +#define READOSM_CURRENT_TAG_IS_WAY 102 63 +#define READOSM_CURRENT_TAG_IS_RELATION 103 64 + 65 +/* block size */ 66 +#define READOSM_BLOCK_SZ 128 67 + 68 +typedef struct readosm_internal_tag_struct 69 +{ 70 +/* a struct wrapping TAG items */ 71 + char *key; /* pointer to KEY value (NULL terminated string) */ 72 + char *value; /* pointer to VALUE (NULL terminated string) */ 73 +} readosm_internal_tag; 74 + 75 +typedef struct readosm_internal_tag_block_struct 76 +{ 77 +/* a struct wrapping a block of TAG items */ 78 + readosm_internal_tag tags[READOSM_BLOCK_SZ]; /* array of Tags */ 79 + int next_item; /* index to next free (unused) item */ 80 + struct readosm_internal_tag_block_struct *next; /* supporting linked list */ 81 +} readosm_internal_tag_block; 82 + 83 +typedef struct readosm_export_tag_struct 84 +{ 85 +/* a struct intended to export TAG items */ 86 + char *key; /* pointer to KEY value (NULL terminated string) */ 87 + char *value; /* pointer to VALUE (NULL terminated string) */ 88 +} readosm_export_tag; 89 + 90 +typedef struct readosm_internal_node_struct 91 +{ 92 +/* a struct wrapping NODE items */ 93 + long long id; /* NODE-ID (unique value) */ 94 + double latitude; /* geographic latitude */ 95 + double longitude; /* geographic longitude */ 96 + int version; /* version id */ 97 + long long changeset; /* changeset id */ 98 + char *user; /* pointer to user name (NULL terminated string) */ 99 + int uid; /* uid identifying the user */ 100 + char *timestamp; /* last modified timestamp */ 101 + int tag_count; /* how many TAG items are there */ 102 + readosm_internal_tag_block first_tag; /* pointers supporting a linked list */ 103 + readosm_internal_tag_block *last_tag; /* of TAG blocks (first block is static) */ 104 +} readosm_internal_node; 105 + 106 +typedef struct readosm_export_node_struct 107 +{ 108 +/* a struct intended to export NODE items */ 109 + long long id; /* NODE-ID (unique value) */ 110 + double latitude; /* geographic latitude */ 111 + double longitude; /* geographic longitude */ 112 + int version; /* version id */ 113 + long long changeset; /* changeset id */ 114 + char *user; /* pointer to user name (NULL terminated string) */ 115 + int uid; /* uid identifying the user */ 116 + char *timestamp; /* last modified timestamp */ 117 + int tag_count; /* how many TAG items are there */ 118 + readosm_export_tag *tags; /* array of TAG items */ 119 +} readosm_export_node; 120 + 121 +typedef struct readosm_internal_ref_struct 122 +{ 123 +/* a block of WAY-ND items */ 124 + long long node_refs[READOSM_BLOCK_SZ]; /* referenced NODE-ID array */ 125 + int next_item; /* index to next free (unused) item */ 126 + struct readosm_internal_ref_struct *next; /* supporting linked list */ 127 +} readosm_internal_ref; 128 + 129 +typedef struct readosm_internal_way_struct 130 +{ 131 +/* a struct wrapping WAY items */ 132 + long long id; /* WAY-ID (unique value) */ 133 + int version; /* version id */ 134 + long long changeset; /* changeset id */ 135 + char *user; /* pointer to user name (NULL terminated string) */ 136 + int uid; /* uid identifying the user */ 137 + char *timestamp; /* last modified timestamp */ 138 + int ref_count; /* how many WAY-ND items are there */ 139 + readosm_internal_ref first_ref; /* pointers supporting a linked list */ 140 + readosm_internal_ref *last_ref; /* of WAY-ND items (first block is static) */ 141 + int tag_count; /* how many TAG items are there */ 142 + readosm_internal_tag_block first_tag; /* pointers supporting a linked list */ 143 + readosm_internal_tag_block *last_tag; /* of TAG blocks (first block is static) */ 144 +} readosm_internal_way; 145 + 146 +typedef struct readosm_export_way_struct 147 +{ 148 +/* a struct intended to export WAY items */ 149 + long long id; /* WAY-ID (unique value) */ 150 + int version; /* version id */ 151 + long long changeset; /* changeset id */ 152 + char *user; /* pointer to user name (NULL terminated string) */ 153 + int uid; /* uid identifying the user */ 154 + char *timestamp; /* last modified timestamp */ 155 + int node_ref_count; /* how many WAY-ND items are there */ 156 + long long *node_refs; /* array of WAY-ND items */ 157 + int tag_count; /* how many TAG items are there */ 158 + readosm_export_tag *tags; /* array of TAG items */ 159 +} readosm_export_way; 160 + 161 +typedef struct readosm_internal_member_struct 162 +{ 163 +/* a struct wrapping RELATION-MEMBER items */ 164 + int member_type; /* member type [some READOSM_MEMBER_xx constant] */ 165 + long long id; /* ID of the referenced object */ 166 + char *role; /* pointer to role value (NULL terminated string) */ 167 +} readosm_internal_member; 168 + 169 +typedef struct readosm_internal_member_block_struct 170 +{ 171 +/* a block of RELATION-MEMBER items */ 172 + readosm_internal_member members[READOSM_BLOCK_SZ]; /* array of MEMBERs */ 173 + int next_item; /* index to next free (unused) item */ 174 + struct readosm_internal_member_block_struct *next; /* supporting linked list */ 175 +} readosm_internal_member_block; 176 + 177 +typedef struct readosm_export_member_struct 178 +{ 179 +/* a struct intended to export RELATION-MEMBER items */ 180 + int member_type; /* member type [some READOSM_MEMBER_xx constant] */ 181 + long long id; /* ID of the referenced object */ 182 + char *role; /* pointer to role value (NULL terminated string) */ 183 +} readosm_export_member; 184 + 185 +typedef struct readosm_internal_relation_struct 186 +{ 187 +/* a struct wrapping RELATION items */ 188 + long long id; /* RELATION-ID (unique value) */ 189 + int version; /* version id */ 190 + long long changeset; /* changeset id */ 191 + char *user; /* pointer to user name (NULL terminated string) */ 192 + int uid; /* uid identifying the user */ 193 + char *timestamp; /* last modified timestamp */ 194 + int member_count; /* how many RELATION-MEMBER items are there */ 195 + readosm_internal_member_block first_member; /* pointers supporting a linked list */ 196 + readosm_internal_member_block *last_member; /* of RELATION-MEMBER items (first block is static) */ 197 + int tag_count; /* how many TAG items are there */ 198 + readosm_internal_tag_block first_tag; /* pointers supporting a linked list */ 199 + readosm_internal_tag_block *last_tag; /* of TAG-blocks (first block is static) */ 200 +} readosm_internal_relation; 201 + 202 +typedef struct readosm_export_relation_struct 203 +{ 204 +/* a struct intended to export RELATION objects */ 205 + long long id; /* RELATION-ID (unique value) */ 206 + int version; /* version id */ 207 + long long changeset; /* changeset id */ 208 + char *user; /* pointer to user name (NULL terminated string) */ 209 + int uid; /* uid identifying the user */ 210 + char *timestamp; /* last modified timestamp */ 211 + int member_count; /* how many RELATION-MEMBER items are there */ 212 + readosm_export_member *members; /* array of RELATION-MEMBER items */ 213 + int tag_count; /* how many TAG items are there */ 214 + readosm_export_tag *tags; /* array of TAG items */ 215 +} readosm_export_relation; 216 + 217 +typedef union readosm_endian4_union 218 +{ 219 +/* a union used for 32 bit ints [cross-endian] */ 220 + unsigned char bytes[4]; /* raw byte buffer */ 221 + int int32_value; /* signed int32 */ 222 + unsigned int uint32_value; /* unsigned int32 */ 223 + float float_value; /* floating point, single precision */ 224 +} readosm_endian4; 225 + 226 +typedef union readosm_endian8_union 227 +{ 228 +/* a union used for 64 bit ints [cross-endian] */ 229 + unsigned char bytes[8]; /* raw byte buffer */ 230 + long long int64_value; /* signed int64 */ 231 + unsigned long long uint64_value; /* unsigned int64 */ 232 + double double_value; /* floating point, double precision */ 233 +} readosm_endian8; 234 + 235 + 236 +typedef struct readosm_file_struct 237 +{ 238 +/* a struct representing an OSM input file */ 239 + int magic1; /* magic signature #1 */ 240 + FILE *in; /* file handle */ 241 + int file_format; /* the actual file format */ 242 + char little_endian_cpu; /* actual CPU endianness */ 243 + int magic2; /* magic signature #2 */ 244 +} readosm_file; 245 + 246 +/* functions handling common OSM objects */ 247 +READOSM_PRIVATE void release_internal_tag_block (readosm_internal_tag_block * 248 + tag_block, int destroy); 249 +READOSM_PRIVATE void 250 +release_internal_member_block (readosm_internal_member_block * member_block, 251 + int destroy); 252 +READOSM_PRIVATE void init_internal_node (readosm_internal_node * node); 253 +READOSM_PRIVATE void append_tag_to_node (readosm_internal_node * node, 254 + const char *key, const char *value); 255 +READOSM_PRIVATE void destroy_internal_node (readosm_internal_node * node); 256 +READOSM_PRIVATE readosm_internal_way *alloc_internal_way (void); 257 +READOSM_PRIVATE void append_reference_to_way (readosm_internal_way * way, 258 + long long node_ref); 259 +READOSM_PRIVATE void append_tag_to_way (readosm_internal_way * way, 260 + const char *key, const char *value); 261 +READOSM_PRIVATE void destroy_internal_way (readosm_internal_way * way); 262 +READOSM_PRIVATE readosm_internal_relation *alloc_internal_relation (void); 263 +READOSM_PRIVATE void append_member_to_relation (readosm_internal_relation * 264 + relation, int type, 265 + long long id, const char *role); 266 +READOSM_PRIVATE void append_tag_to_relation (readosm_internal_relation * 267 + relation, const char *key, 268 + const char *value); 269 +READOSM_PRIVATE void destroy_internal_relation (readosm_internal_relation * 270 + relation); 271 + 272 +/* XML and ProtoBuf parsers */ 273 +READOSM_PRIVATE int parse_osm_pbf (readosm_file * input, const void *user_data, 274 + readosm_node_callback node_fnct, 275 + readosm_way_callback way_fnct, 276 + readosm_relation_callback relation_fnct); 277 +READOSM_PRIVATE int parse_osm_xml (readosm_file * input, const void *user_data, 278 + readosm_node_callback node_fnct, 279 + readosm_way_callback way_fnct, 280 + readosm_relation_callback relation_fnct); 281 + 282 +/* callback handlers */ 283 +READOSM_PRIVATE int call_node_callback (readosm_node_callback node_callback, 284 + const void *user_data, 285 + readosm_internal_node * node); 286 +READOSM_PRIVATE int call_way_callback (readosm_way_callback way_callback, 287 + const void *user_data, 288 + readosm_internal_way * way); 289 +READOSM_PRIVATE int call_relation_callback (readosm_relation_callback 290 + relation_callback, 291 + const void *user_data, 292 + readosm_internal_relation * 293 + relation);
Added headers/readosm_protobuf.h.
1 +/* 2 +/ readosm_protobuf.h 3 +/ 4 +/ internal declarations (Protocol Buffer specific) 5 +/ 6 +/ version 1.0, 2012 April 21 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ ------------------------------------------------------------------------------ 11 +/ 12 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 13 +/ 14 +/ The contents of this file are subject to the Mozilla Public License Version 15 +/ 1.1 (the "License"); you may not use this file except in compliance with 16 +/ the License. You may obtain a copy of the License at 17 +/ http://www.mozilla.org/MPL/ 18 +/ 19 +/ Software distributed under the License is distributed on an "AS IS" basis, 20 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 21 +/ for the specific language governing rights and limitations under the 22 +/ License. 23 +/ 24 +/ The Original Code is the ReadOSM library 25 +/ 26 +/ The Initial Developer of the Original Code is Alessandro Furieri 27 +/ 28 +/ Portions created by the Initial Developer are Copyright (C) 2012 29 +/ the Initial Developer. All Rights Reserved. 30 +/ 31 +/ Contributor(s): 32 +/ 33 +/ Alternatively, the contents of this file may be used under the terms of 34 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 35 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 36 +/ in which case the provisions of the GPL or the LGPL are applicable instead 37 +/ of those above. If you wish to allow use of your version of this file only 38 +/ under the terms of either the GPL or the LGPL, and not to allow others to 39 +/ use your version of this file under the terms of the MPL, indicate your 40 +/ decision by deleting the provisions above and replace them with the notice 41 +/ and other provisions required by the GPL or the LGPL. If you do not delete 42 +/ the provisions above, a recipient may use your version of this file under 43 +/ the terms of any one of the MPL, the GPL or the LGPL. 44 +/ 45 +*/ 46 + 47 +/* 48 + * PBF stands for: Protocol Buffer Format 49 + * a serialization notation documented here: 50 + * http://wiki.openstreetmap.org/wiki/PBF_Format 51 + * and here too: 52 + * https://developers.google.com/protocol-buffers/docs/encoding 53 + */ 54 + 55 +/* PBF variant validity */ 56 +#define READOSM_VAR_INVALID 0 57 +#define READOSM_VAR_VALID 1 58 + 59 +/* PBF variant types */ 60 +#define READOSM_VAR_UNDEFINED 0 61 +#define READOSM_VAR_INT32 1 62 +#define READOSM_VAR_INT64 2 63 +#define READOSM_VAR_UINT32 3 64 +#define READOSM_VAR_UINT64 4 65 +#define READOSM_VAR_SINT32 5 66 +#define READOSM_VAR_SINT64 6 67 +#define READOSM_VAR_BOOL 7 68 +#define READOSM_VAR_ENUM 8 69 +#define READOSM_LEN_BYTES 9 70 + 71 +/* PBF bitmasks used for 32 bit VarInts */ 72 +#define READOSM_MASK32_1 0x0000007f 73 +#define READOSM_MASK32_2 0x00003f80 74 +#define READOSM_MASK32_3 0x001fc000 75 +#define READOSM_MASK32_4 0x0fe00000 76 +#define READOSM_MASK32_5 0xf0000000 77 + 78 +/* PBF bitmasks used for 64 bit VarInts */ 79 +#define READOSM_MASK64_1 0x000000000000007f 80 +#define READOSM_MASK64_2 0x0000000000003f80 81 +#define READOSM_MASK64_3 0x00000000001fc000 82 +#define READOSM_MASK64_4 0x000000000fe00000 83 +#define READOSM_MASK64_5 0x00000007f0000000 84 +#define READOSM_MASK64_6 0x000003f800000000 85 +#define READOSM_MASK64_7 0x0001fc0000000000 86 +#define READOSM_MASK64_8 0x00fe000000000000 87 +#define READOSM_MASK64_9 0x7f00000000000000 88 +#define READOSM_MASK64_A 0x8000000000000000 89 + 90 +typedef struct readosm_packed_infos_struct 91 +{ 92 +/* a struct supporting DenseInfos parsing */ 93 + int ver_count; /* how many Version values are there */ 94 + int *versions; /* Version values array */ 95 + int tim_count; /* how many Timestamp values are there */ 96 + int *timestamps; /* Timestamp values array */ 97 + int cng_count; /* how many Changeset values are there */ 98 + long long *changesets; /* Changeset values array */ 99 + int uid_count; /* how many UID values are there */ 100 + int *uids; /* UID values array */ 101 + int usr_count; /* how many User values are there */ 102 + int *users; /* indexes to access corresponding Strings in StringTable */ 103 +} readosm_packed_infos; 104 + 105 +typedef struct readosm_variant_hint_struct 106 +{ 107 +/* VariantHints for PBF parsing */ 108 + unsigned char field_id; /* field ID */ 109 + unsigned char type; /* expected type */ 110 + struct readosm_variant_hint_struct *next; /* supporting linked list */ 111 +} readosm_variant_hint; 112 + 113 +typedef struct readosm_variant_struct 114 +{ 115 +/* a PBF Variant type wrapper */ 116 + char little_endian_cpu; /* actual CPU endianness */ 117 + unsigned char type; /* current type */ 118 + unsigned char field_id; /* field ID */ 119 + union variant_value 120 + { 121 + int int32_value; /* signed int32 */ 122 + unsigned int uint32_value; /* unsigned int32 */ 123 + long long int64_value; /* signed int64 */ 124 + unsigned long long uint64_value; /* unsigned int64 */ 125 + float float_value; /* floating point, single precision */ 126 + double double_value; /* floating point, double precision */ 127 + } value; /* numeric variant value */ 128 + size_t length; /* length in bytes [for strings] */ 129 + unsigned char *pointer; /* pointer to String value */ 130 + char valid; /* valid value */ 131 + readosm_variant_hint *first; /* pointers supporting a linked list */ 132 + readosm_variant_hint *last; /* of VariantHints items */ 133 +} readosm_variant; 134 + 135 +typedef struct readosm_string_struct 136 +{ 137 +/* a String into a PBF StringTable */ 138 + char *string; /* pointer to string value (NULL terminated string) */ 139 + struct readosm_string_struct *next; /* supporting linked list */ 140 +} readosm_string; 141 + 142 +typedef struct readosm_string_table_struct 143 +{ 144 +/* a PBF StringTable 145 + / 146 + / Remark: each PBF compressed block includes a StringTable 147 + / i.e. a centralized table where any string value used within 148 + / the compressed block itself appears only one time. 149 + / This is obviously intended so to minimize storage requirements. 150 + / 151 + / Individual objects within the PBF file will never directly 152 + / encode string values; they'll use instead the corresponding 153 + / index referencing the appropriate string within the StringTable. 154 +*/ 155 + readosm_string *first; /* pointers supporting a linked list */ 156 + readosm_string *last; /* of PBF string objects */ 157 + int count; /* how many TAG items are there */ 158 + readosm_string **strings; /* array of PBF string objects */ 159 +} readosm_string_table; 160 + 161 +typedef struct readosm_uint32_struct 162 +{ 163 +/* a uint32 value into the PBF packed object */ 164 + unsigned int value; 165 + struct readosm_uint32_struct *next; 166 +} readosm_uint32; 167 + 168 +typedef struct readosm_uint32_packed_struct 169 +{ 170 +/* a PBF uint32 packed object */ 171 + readosm_uint32 *first; 172 + readosm_uint32 *last; 173 + int count; 174 + unsigned int *values; 175 +} readosm_uint32_packed; 176 + 177 +typedef struct readosm_int32_struct 178 +{ 179 +/* an int32 value into the PBF packed object */ 180 + int value; 181 + struct readosm_int32_struct *next; 182 +} readosm_int32; 183 + 184 +typedef struct readosm_int32_packed_struct 185 +{ 186 +/* a PBF int32 packed object */ 187 + readosm_int32 *first; 188 + readosm_int32 *last; 189 + int count; 190 + int *values; 191 +} readosm_int32_packed; 192 + 193 +typedef struct readosm_int64_struct 194 +{ 195 +/* an int64 value into the PBF packed object */ 196 + long long value; 197 + struct readosm_int64_struct *next; 198 +} readosm_int64; 199 + 200 +typedef struct readosm_int64_packed_struct 201 +{ 202 +/* a PBF int64 packed object */ 203 + readosm_int64 *first; 204 + readosm_int64 *last; 205 + int count; 206 + long long *values; 207 +} readosm_int64_packed;
Added install-sh.
1 +#!/bin/sh 2 +# install - install a program, script, or datafile 3 + 4 +scriptversion=2009-04-28.21; # UTC 5 + 6 +# This originates from X11R5 (mit/util/scripts/install.sh), which was 7 +# later released in X11R6 (xc/config/util/install.sh) with the 8 +# following copyright and license. 9 +# 10 +# Copyright (C) 1994 X Consortium 11 +# 12 +# Permission is hereby granted, free of charge, to any person obtaining a copy 13 +# of this software and associated documentation files (the "Software"), to 14 +# deal in the Software without restriction, including without limitation the 15 +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 16 +# sell copies of the Software, and to permit persons to whom the Software is 17 +# furnished to do so, subject to the following conditions: 18 +# 19 +# The above copyright notice and this permission notice shall be included in 20 +# all copies or substantial portions of the Software. 21 +# 22 +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 25 +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- 27 +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 +# 29 +# Except as contained in this notice, the name of the X Consortium shall not 30 +# be used in advertising or otherwise to promote the sale, use or other deal- 31 +# ings in this Software without prior written authorization from the X Consor- 32 +# tium. 33 +# 34 +# 35 +# FSF changes to this file are in the public domain. 36 +# 37 +# Calling this script install-sh is preferred over install.sh, to prevent 38 +# `make' implicit rules from creating a file called install from it 39 +# when there is no Makefile. 40 +# 41 +# This script is compatible with the BSD install script, but was written 42 +# from scratch. 43 + 44 +nl=' 45 +' 46 +IFS=" "" $nl" 47 + 48 +# set DOITPROG to echo to test this script 49 + 50 +# Don't use :- since 4.3BSD and earlier shells don't like it. 51 +doit=${DOITPROG-} 52 +if test -z "$doit"; then 53 + doit_exec=exec 54 +else 55 + doit_exec=$doit 56 +fi 57 + 58 +# Put in absolute file names if you don't have them in your path; 59 +# or use environment vars. 60 + 61 +chgrpprog=${CHGRPPROG-chgrp} 62 +chmodprog=${CHMODPROG-chmod} 63 +chownprog=${CHOWNPROG-chown} 64 +cmpprog=${CMPPROG-cmp} 65 +cpprog=${CPPROG-cp} 66 +mkdirprog=${MKDIRPROG-mkdir} 67 +mvprog=${MVPROG-mv} 68 +rmprog=${RMPROG-rm} 69 +stripprog=${STRIPPROG-strip} 70 + 71 +posix_glob='?' 72 +initialize_posix_glob=' 73 + test "$posix_glob" != "?" || { 74 + if (set -f) 2>/dev/null; then 75 + posix_glob= 76 + else 77 + posix_glob=: 78 + fi 79 + } 80 +' 81 + 82 +posix_mkdir= 83 + 84 +# Desired mode of installed file. 85 +mode=0755 86 + 87 +chgrpcmd= 88 +chmodcmd=$chmodprog 89 +chowncmd= 90 +mvcmd=$mvprog 91 +rmcmd="$rmprog -f" 92 +stripcmd= 93 + 94 +src= 95 +dst= 96 +dir_arg= 97 +dst_arg= 98 + 99 +copy_on_change=false 100 +no_target_directory= 101 + 102 +usage="\ 103 +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE 104 + or: $0 [OPTION]... SRCFILES... DIRECTORY 105 + or: $0 [OPTION]... -t DIRECTORY SRCFILES... 106 + or: $0 [OPTION]... -d DIRECTORIES... 107 + 108 +In the 1st form, copy SRCFILE to DSTFILE. 109 +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. 110 +In the 4th, create DIRECTORIES. 111 + 112 +Options: 113 + --help display this help and exit. 114 + --version display version info and exit. 115 + 116 + -c (ignored) 117 + -C install only if different (preserve the last data modification time) 118 + -d create directories instead of installing files. 119 + -g GROUP $chgrpprog installed files to GROUP. 120 + -m MODE $chmodprog installed files to MODE. 121 + -o USER $chownprog installed files to USER. 122 + -s $stripprog installed files. 123 + -t DIRECTORY install into DIRECTORY. 124 + -T report an error if DSTFILE is a directory. 125 + 126 +Environment variables override the default commands: 127 + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG 128 + RMPROG STRIPPROG 129 +" 130 + 131 +while test $# -ne 0; do 132 + case $1 in 133 + -c) ;; 134 + 135 + -C) copy_on_change=true;; 136 + 137 + -d) dir_arg=true;; 138 + 139 + -g) chgrpcmd="$chgrpprog $2" 140 + shift;; 141 + 142 + --help) echo "$usage"; exit $?;; 143 + 144 + -m) mode=$2 145 + case $mode in 146 + *' '* | *' '* | *' 147 +'* | *'*'* | *'?'* | *'['*) 148 + echo "$0: invalid mode: $mode" >&2 149 + exit 1;; 150 + esac 151 + shift;; 152 + 153 + -o) chowncmd="$chownprog $2" 154 + shift;; 155 + 156 + -s) stripcmd=$stripprog;; 157 + 158 + -t) dst_arg=$2 159 + shift;; 160 + 161 + -T) no_target_directory=true;; 162 + 163 + --version) echo "$0 $scriptversion"; exit $?;; 164 + 165 + --) shift 166 + break;; 167 + 168 + -*) echo "$0: invalid option: $1" >&2 169 + exit 1;; 170 + 171 + *) break;; 172 + esac 173 + shift 174 +done 175 + 176 +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then 177 + # When -d is used, all remaining arguments are directories to create. 178 + # When -t is used, the destination is already specified. 179 + # Otherwise, the last argument is the destination. Remove it from $@. 180 + for arg 181 + do 182 + if test -n "$dst_arg"; then 183 + # $@ is not empty: it contains at least $arg. 184 + set fnord "$@" "$dst_arg" 185 + shift # fnord 186 + fi 187 + shift # arg 188 + dst_arg=$arg 189 + done 190 +fi 191 + 192 +if test $# -eq 0; then 193 + if test -z "$dir_arg"; then 194 + echo "$0: no input file specified." >&2 195 + exit 1 196 + fi 197 + # It's OK to call `install-sh -d' without argument. 198 + # This can happen when creating conditional directories. 199 + exit 0 200 +fi 201 + 202 +if test -z "$dir_arg"; then 203 + trap '(exit $?); exit' 1 2 13 15 204 + 205 + # Set umask so as not to create temps with too-generous modes. 206 + # However, 'strip' requires both read and write access to temps. 207 + case $mode in 208 + # Optimize common cases. 209 + *644) cp_umask=133;; 210 + *755) cp_umask=22;; 211 + 212 + *[0-7]) 213 + if test -z "$stripcmd"; then 214 + u_plus_rw= 215 + else 216 + u_plus_rw='% 200' 217 + fi 218 + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; 219 + *) 220 + if test -z "$stripcmd"; then 221 + u_plus_rw= 222 + else 223 + u_plus_rw=,u+rw 224 + fi 225 + cp_umask=$mode$u_plus_rw;; 226 + esac 227 +fi 228 + 229 +for src 230 +do 231 + # Protect names starting with `-'. 232 + case $src in 233 + -*) src=./$src;; 234 + esac 235 + 236 + if test -n "$dir_arg"; then 237 + dst=$src 238 + dstdir=$dst 239 + test -d "$dstdir" 240 + dstdir_status=$? 241 + else 242 + 243 + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command 244 + # might cause directories to be created, which would be especially bad 245 + # if $src (and thus $dsttmp) contains '*'. 246 + if test ! -f "$src" && test ! -d "$src"; then 247 + echo "$0: $src does not exist." >&2 248 + exit 1 249 + fi 250 + 251 + if test -z "$dst_arg"; then 252 + echo "$0: no destination specified." >&2 253 + exit 1 254 + fi 255 + 256 + dst=$dst_arg 257 + # Protect names starting with `-'. 258 + case $dst in 259 + -*) dst=./$dst;; 260 + esac 261 + 262 + # If destination is a directory, append the input filename; won't work 263 + # if double slashes aren't ignored. 264 + if test -d "$dst"; then 265 + if test -n "$no_target_directory"; then 266 + echo "$0: $dst_arg: Is a directory" >&2 267 + exit 1 268 + fi 269 + dstdir=$dst 270 + dst=$dstdir/`basename "$src"` 271 + dstdir_status=0 272 + else 273 + # Prefer dirname, but fall back on a substitute if dirname fails. 274 + dstdir=` 275 + (dirname "$dst") 2>/dev/null || 276 + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ 277 + X"$dst" : 'X\(//\)[^/]' \| \ 278 + X"$dst" : 'X\(//\)$' \| \ 279 + X"$dst" : 'X\(/\)' \| . 2>/dev/null || 280 + echo X"$dst" | 281 + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ 282 + s//\1/ 283 + q 284 + } 285 + /^X\(\/\/\)[^/].*/{ 286 + s//\1/ 287 + q 288 + } 289 + /^X\(\/\/\)$/{ 290 + s//\1/ 291 + q 292 + } 293 + /^X\(\/\).*/{ 294 + s//\1/ 295 + q 296 + } 297 + s/.*/./; q' 298 + ` 299 + 300 + test -d "$dstdir" 301 + dstdir_status=$? 302 + fi 303 + fi 304 + 305 + obsolete_mkdir_used=false 306 + 307 + if test $dstdir_status != 0; then 308 + case $posix_mkdir in 309 + '') 310 + # Create intermediate dirs using mode 755 as modified by the umask. 311 + # This is like FreeBSD 'install' as of 1997-10-28. 312 + umask=`umask` 313 + case $stripcmd.$umask in 314 + # Optimize common cases. 315 + *[2367][2367]) mkdir_umask=$umask;; 316 + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; 317 + 318 + *[0-7]) 319 + mkdir_umask=`expr $umask + 22 \ 320 + - $umask % 100 % 40 + $umask % 20 \ 321 + - $umask % 10 % 4 + $umask % 2 322 + `;; 323 + *) mkdir_umask=$umask,go-w;; 324 + esac 325 + 326 + # With -d, create the new directory with the user-specified mode. 327 + # Otherwise, rely on $mkdir_umask. 328 + if test -n "$dir_arg"; then 329 + mkdir_mode=-m$mode 330 + else 331 + mkdir_mode= 332 + fi 333 + 334 + posix_mkdir=false 335 + case $umask in 336 + *[123567][0-7][0-7]) 337 + # POSIX mkdir -p sets u+wx bits regardless of umask, which 338 + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. 339 + ;; 340 + *) 341 + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ 342 + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 343 + 344 + if (umask $mkdir_umask && 345 + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 346 + then 347 + if test -z "$dir_arg" || { 348 + # Check for POSIX incompatibilities with -m. 349 + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or 350 + # other-writeable bit of parent directory when it shouldn't. 351 + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. 352 + ls_ld_tmpdir=`ls -ld "$tmpdir"` 353 + case $ls_ld_tmpdir in 354 + d????-?r-*) different_mode=700;; 355 + d????-?--*) different_mode=755;; 356 + *) false;; 357 + esac && 358 + $mkdirprog -m$different_mode -p -- "$tmpdir" && { 359 + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` 360 + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" 361 + } 362 + } 363 + then posix_mkdir=: 364 + fi 365 + rmdir "$tmpdir/d" "$tmpdir" 366 + else 367 + # Remove any dirs left behind by ancient mkdir implementations. 368 + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null 369 + fi 370 + trap '' 0;; 371 + esac;; 372 + esac 373 + 374 + if 375 + $posix_mkdir && ( 376 + umask $mkdir_umask && 377 + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" 378 + ) 379 + then : 380 + else 381 + 382 + # The umask is ridiculous, or mkdir does not conform to POSIX, 383 + # or it failed possibly due to a race condition. Create the 384 + # directory the slow way, step by step, checking for races as we go. 385 + 386 + case $dstdir in 387 + /*) prefix='/';; 388 + -*) prefix='./';; 389 + *) prefix='';; 390 + esac 391 + 392 + eval "$initialize_posix_glob" 393 + 394 + oIFS=$IFS 395 + IFS=/ 396 + $posix_glob set -f 397 + set fnord $dstdir 398 + shift 399 + $posix_glob set +f 400 + IFS=$oIFS 401 + 402 + prefixes= 403 + 404 + for d 405 + do 406 + test -z "$d" && continue 407 + 408 + prefix=$prefix$d 409 + if test -d "$prefix"; then 410 + prefixes= 411 + else 412 + if $posix_mkdir; then 413 + (umask=$mkdir_umask && 414 + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break 415 + # Don't fail if two instances are running concurrently. 416 + test -d "$prefix" || exit 1 417 + else 418 + case $prefix in 419 + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; 420 + *) qprefix=$prefix;; 421 + esac 422 + prefixes="$prefixes '$qprefix'" 423 + fi 424 + fi 425 + prefix=$prefix/ 426 + done 427 + 428 + if test -n "$prefixes"; then 429 + # Don't fail if two instances are running concurrently. 430 + (umask $mkdir_umask && 431 + eval "\$doit_exec \$mkdirprog $prefixes") || 432 + test -d "$dstdir" || exit 1 433 + obsolete_mkdir_used=true 434 + fi 435 + fi 436 + fi 437 + 438 + if test -n "$dir_arg"; then 439 + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && 440 + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && 441 + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || 442 + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 443 + else 444 + 445 + # Make a couple of temp file names in the proper directory. 446 + dsttmp=$dstdir/_inst.$$_ 447 + rmtmp=$dstdir/_rm.$$_ 448 + 449 + # Trap to clean up those temp files at exit. 450 + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 451 + 452 + # Copy the file name to the temp name. 453 + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && 454 + 455 + # and set any options; do chmod last to preserve setuid bits. 456 + # 457 + # If any of these fail, we abort the whole thing. If we want to 458 + # ignore errors from any of these, just make sure not to ignore 459 + # errors from the above "$doit $cpprog $src $dsttmp" command. 460 + # 461 + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && 462 + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && 463 + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && 464 + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && 465 + 466 + # If -C, don't bother to copy if it wouldn't change the file. 467 + if $copy_on_change && 468 + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && 469 + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && 470 + 471 + eval "$initialize_posix_glob" && 472 + $posix_glob set -f && 473 + set X $old && old=:$2:$4:$5:$6 && 474 + set X $new && new=:$2:$4:$5:$6 && 475 + $posix_glob set +f && 476 + 477 + test "$old" = "$new" && 478 + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 479 + then 480 + rm -f "$dsttmp" 481 + else 482 + # Rename the file to the real destination. 483 + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || 484 + 485 + # The rename failed, perhaps because mv can't rename something else 486 + # to itself, or perhaps because mv is so ancient that it does not 487 + # support -f. 488 + { 489 + # Now remove or move aside any old file at destination location. 490 + # We try this two ways since rm can't unlink itself on some 491 + # systems and the destination file might be busy for other 492 + # reasons. In this case, the final cleanup might fail but the new 493 + # file should still install successfully. 494 + { 495 + test ! -f "$dst" || 496 + $doit $rmcmd -f "$dst" 2>/dev/null || 497 + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && 498 + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } 499 + } || 500 + { echo "$0: cannot unlink or rename $dst" >&2 501 + (exit 1); exit 1 502 + } 503 + } && 504 + 505 + # Now rename the file to the real destination. 506 + $doit $mvcmd "$dsttmp" "$dst" 507 + } 508 + fi || exit 1 509 + 510 + trap '' 0 511 + fi 512 +done 513 + 514 +# Local variables: 515 +# eval: (add-hook 'write-file-hooks 'time-stamp) 516 +# time-stamp-start: "scriptversion=" 517 +# time-stamp-format: "%:y-%02m-%02d.%02H" 518 +# time-stamp-time-zone: "UTC" 519 +# time-stamp-end: "; # UTC" 520 +# End:
Added ltmain.sh.
1 + 2 +# libtool (GNU libtool) 2.4 3 +# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 4 + 5 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 6 +# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 7 +# This is free software; see the source for copying conditions. There is NO 8 +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9 + 10 +# GNU Libtool is free software; you can redistribute it and/or modify 11 +# it under the terms of the GNU General Public License as published by 12 +# the Free Software Foundation; either version 2 of the License, or 13 +# (at your option) any later version. 14 +# 15 +# As a special exception to the GNU General Public License, 16 +# if you distribute this file as part of a program or library that 17 +# is built using GNU Libtool, you may include this file under the 18 +# same distribution terms that you use for the rest of that program. 19 +# 20 +# GNU Libtool is distributed in the hope that it will be useful, but 21 +# WITHOUT ANY WARRANTY; without even the implied warranty of 22 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 23 +# General Public License for more details. 24 +# 25 +# You should have received a copy of the GNU General Public License 26 +# along with GNU Libtool; see the file COPYING. If not, a copy 27 +# can be downloaded from http://www.gnu.org/licenses/gpl.html, 28 +# or obtained by writing to the Free Software Foundation, Inc., 29 +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 30 + 31 +# Usage: $progname [OPTION]... [MODE-ARG]... 32 +# 33 +# Provide generalized library-building support services. 34 +# 35 +# --config show all configuration variables 36 +# --debug enable verbose shell tracing 37 +# -n, --dry-run display commands without modifying any files 38 +# --features display basic configuration information and exit 39 +# --mode=MODE use operation mode MODE 40 +# --preserve-dup-deps don't remove duplicate dependency libraries 41 +# --quiet, --silent don't print informational messages 42 +# --no-quiet, --no-silent 43 +# print informational messages (default) 44 +# --tag=TAG use configuration variables from tag TAG 45 +# -v, --verbose print more informational messages than default 46 +# --no-verbose don't print the extra informational messages 47 +# --version print version information 48 +# -h, --help, --help-all print short, long, or detailed help message 49 +# 50 +# MODE must be one of the following: 51 +# 52 +# clean remove files from the build directory 53 +# compile compile a source file into a libtool object 54 +# execute automatically set library path, then run a program 55 +# finish complete the installation of libtool libraries 56 +# install install libraries or executables 57 +# link create a library or an executable 58 +# uninstall remove libraries from an installed directory 59 +# 60 +# MODE-ARGS vary depending on the MODE. When passed as first option, 61 +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. 62 +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. 63 +# 64 +# When reporting a bug, please describe a test case to reproduce it and 65 +# include the following information: 66 +# 67 +# host-triplet: $host 68 +# shell: $SHELL 69 +# compiler: $LTCC 70 +# compiler flags: $LTCFLAGS 71 +# linker: $LD (gnu? $with_gnu_ld) 72 +# $progname: (GNU libtool) 2.4 73 +# automake: $automake_version 74 +# autoconf: $autoconf_version 75 +# 76 +# Report bugs to <bug-libtool@gnu.org>. 77 +# GNU libtool home page: <http://www.gnu.org/software/libtool/>. 78 +# General help using GNU software: <http://www.gnu.org/gethelp/>. 79 + 80 +PROGRAM=libtool 81 +PACKAGE=libtool 82 +VERSION=2.4 83 +TIMESTAMP="" 84 +package_revision=1.3293 85 + 86 +# Be Bourne compatible 87 +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 88 + emulate sh 89 + NULLCMD=: 90 + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which 91 + # is contrary to our usage. Disable this feature. 92 + alias -g '${1+"$@"}'='"$@"' 93 + setopt NO_GLOB_SUBST 94 +else 95 + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac 96 +fi 97 +BIN_SH=xpg4; export BIN_SH # for Tru64 98 +DUALCASE=1; export DUALCASE # for MKS sh 99 + 100 +# A function that is used when there is no print builtin or printf. 101 +func_fallback_echo () 102 +{ 103 + eval 'cat <<_LTECHO_EOF 104 +$1 105 +_LTECHO_EOF' 106 +} 107 + 108 +# NLS nuisances: We save the old values to restore during execute mode. 109 +lt_user_locale= 110 +lt_safe_locale= 111 +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 112 +do 113 + eval "if test \"\${$lt_var+set}\" = set; then 114 + save_$lt_var=\$$lt_var 115 + $lt_var=C 116 + export $lt_var 117 + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" 118 + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" 119 + fi" 120 +done 121 +LC_ALL=C 122 +LANGUAGE=C 123 +export LANGUAGE LC_ALL 124 + 125 +$lt_unset CDPATH 126 + 127 + 128 +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 129 +# is ksh but when the shell is invoked as "sh" and the current value of 130 +# the _XPG environment variable is not equal to 1 (one), the special 131 +# positional parameter $0, within a function call, is the name of the 132 +# function. 133 +progpath="$0" 134 + 135 + 136 + 137 +: ${CP="cp -f"} 138 +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} 139 +: ${EGREP="/bin/grep -E"} 140 +: ${FGREP="/bin/grep -F"} 141 +: ${GREP="/bin/grep"} 142 +: ${LN_S="ln -s"} 143 +: ${MAKE="make"} 144 +: ${MKDIR="mkdir"} 145 +: ${MV="mv -f"} 146 +: ${RM="rm -f"} 147 +: ${SED="/bin/sed"} 148 +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} 149 +: ${Xsed="$SED -e 1s/^X//"} 150 + 151 +# Global variables: 152 +EXIT_SUCCESS=0 153 +EXIT_FAILURE=1 154 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. 155 +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. 156 + 157 +exit_status=$EXIT_SUCCESS 158 + 159 +# Make sure IFS has a sensible default 160 +lt_nl=' 161 +' 162 +IFS=" $lt_nl" 163 + 164 +dirname="s,/[^/]*$,," 165 +basename="s,^.*/,," 166 + 167 +# func_dirname file append nondir_replacement 168 +# Compute the dirname of FILE. If nonempty, add APPEND to the result, 169 +# otherwise set result to NONDIR_REPLACEMENT. 170 +func_dirname () 171 +{ 172 + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` 173 + if test "X$func_dirname_result" = "X${1}"; then 174 + func_dirname_result="${3}" 175 + else 176 + func_dirname_result="$func_dirname_result${2}" 177 + fi 178 +} # func_dirname may be replaced by extended shell implementation 179 + 180 + 181 +# func_basename file 182 +func_basename () 183 +{ 184 + func_basename_result=`$ECHO "${1}" | $SED "$basename"` 185 +} # func_basename may be replaced by extended shell implementation 186 + 187 + 188 +# func_dirname_and_basename file append nondir_replacement 189 +# perform func_basename and func_dirname in a single function 190 +# call: 191 +# dirname: Compute the dirname of FILE. If nonempty, 192 +# add APPEND to the result, otherwise set result 193 +# to NONDIR_REPLACEMENT. 194 +# value returned in "$func_dirname_result" 195 +# basename: Compute filename of FILE. 196 +# value retuned in "$func_basename_result" 197 +# Implementation must be kept synchronized with func_dirname 198 +# and func_basename. For efficiency, we do not delegate to 199 +# those functions but instead duplicate the functionality here. 200 +func_dirname_and_basename () 201 +{ 202 + # Extract subdirectory from the argument. 203 + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` 204 + if test "X$func_dirname_result" = "X${1}"; then 205 + func_dirname_result="${3}" 206 + else 207 + func_dirname_result="$func_dirname_result${2}" 208 + fi 209 + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` 210 +} # func_dirname_and_basename may be replaced by extended shell implementation 211 + 212 + 213 +# func_stripname prefix suffix name 214 +# strip PREFIX and SUFFIX off of NAME. 215 +# PREFIX and SUFFIX must not contain globbing or regex special 216 +# characters, hashes, percent signs, but SUFFIX may contain a leading 217 +# dot (in which case that matches only a dot). 218 +# func_strip_suffix prefix name 219 +func_stripname () 220 +{ 221 + case ${2} in 222 + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; 223 + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; 224 + esac 225 +} # func_stripname may be replaced by extended shell implementation 226 + 227 + 228 +# These SED scripts presuppose an absolute path with a trailing slash. 229 +pathcar='s,^/\([^/]*\).*$,\1,' 230 +pathcdr='s,^/[^/]*,,' 231 +removedotparts=':dotsl 232 + s@/\./@/@g 233 + t dotsl 234 + s,/\.$,/,' 235 +collapseslashes='s@/\{1,\}@/@g' 236 +finalslash='s,/*$,/,' 237 + 238 +# func_normal_abspath PATH 239 +# Remove doubled-up and trailing slashes, "." path components, 240 +# and cancel out any ".." path components in PATH after making 241 +# it an absolute path. 242 +# value returned in "$func_normal_abspath_result" 243 +func_normal_abspath () 244 +{ 245 + # Start from root dir and reassemble the path. 246 + func_normal_abspath_result= 247 + func_normal_abspath_tpath=$1 248 + func_normal_abspath_altnamespace= 249 + case $func_normal_abspath_tpath in 250 + "") 251 + # Empty path, that just means $cwd. 252 + func_stripname '' '/' "`pwd`" 253 + func_normal_abspath_result=$func_stripname_result 254 + return 255 + ;; 256 + # The next three entries are used to spot a run of precisely 257 + # two leading slashes without using negated character classes; 258 + # we take advantage of case's first-match behaviour. 259 + ///*) 260 + # Unusual form of absolute path, do nothing. 261 + ;; 262 + //*) 263 + # Not necessarily an ordinary path; POSIX reserves leading '//' 264 + # and for example Cygwin uses it to access remote file shares 265 + # over CIFS/SMB, so we conserve a leading double slash if found. 266 + func_normal_abspath_altnamespace=/ 267 + ;; 268 + /*) 269 + # Absolute path, do nothing. 270 + ;; 271 + *) 272 + # Relative path, prepend $cwd. 273 + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath 274 + ;; 275 + esac 276 + # Cancel out all the simple stuff to save iterations. We also want 277 + # the path to end with a slash for ease of parsing, so make sure 278 + # there is one (and only one) here. 279 + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ 280 + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` 281 + while :; do 282 + # Processed it all yet? 283 + if test "$func_normal_abspath_tpath" = / ; then 284 + # If we ascended to the root using ".." the result may be empty now. 285 + if test -z "$func_normal_abspath_result" ; then 286 + func_normal_abspath_result=/ 287 + fi 288 + break 289 + fi 290 + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ 291 + -e "$pathcar"` 292 + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ 293 + -e "$pathcdr"` 294 + # Figure out what to do with it 295 + case $func_normal_abspath_tcomponent in 296 + "") 297 + # Trailing empty path component, ignore it. 298 + ;; 299 + ..) 300 + # Parent dir; strip last assembled component from result. 301 + func_dirname "$func_normal_abspath_result" 302 + func_normal_abspath_result=$func_dirname_result 303 + ;; 304 + *) 305 + # Actual path component, append it. 306 + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent 307 + ;; 308 + esac 309 + done 310 + # Restore leading double-slash if one was found on entry. 311 + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result 312 +} 313 + 314 +# func_relative_path SRCDIR DSTDIR 315 +# generates a relative path from SRCDIR to DSTDIR, with a trailing 316 +# slash if non-empty, suitable for immediately appending a filename 317 +# without needing to append a separator. 318 +# value returned in "$func_relative_path_result" 319 +func_relative_path () 320 +{ 321 + func_relative_path_result= 322 + func_normal_abspath "$1" 323 + func_relative_path_tlibdir=$func_normal_abspath_result 324 + func_normal_abspath "$2" 325 + func_relative_path_tbindir=$func_normal_abspath_result 326 + 327 + # Ascend the tree starting from libdir 328 + while :; do 329 + # check if we have found a prefix of bindir 330 + case $func_relative_path_tbindir in 331 + $func_relative_path_tlibdir) 332 + # found an exact match 333 + func_relative_path_tcancelled= 334 + break 335 + ;; 336 + $func_relative_path_tlibdir*) 337 + # found a matching prefix 338 + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" 339 + func_relative_path_tcancelled=$func_stripname_result 340 + if test -z "$func_relative_path_result"; then 341 + func_relative_path_result=. 342 + fi 343 + break 344 + ;; 345 + *) 346 + func_dirname $func_relative_path_tlibdir 347 + func_relative_path_tlibdir=${func_dirname_result} 348 + if test "x$func_relative_path_tlibdir" = x ; then 349 + # Have to descend all the way to the root! 350 + func_relative_path_result=../$func_relative_path_result 351 + func_relative_path_tcancelled=$func_relative_path_tbindir 352 + break 353 + fi 354 + func_relative_path_result=../$func_relative_path_result 355 + ;; 356 + esac 357 + done 358 + 359 + # Now calculate path; take care to avoid doubling-up slashes. 360 + func_stripname '' '/' "$func_relative_path_result" 361 + func_relative_path_result=$func_stripname_result 362 + func_stripname '/' '/' "$func_relative_path_tcancelled" 363 + if test "x$func_stripname_result" != x ; then 364 + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} 365 + fi 366 + 367 + # Normalisation. If bindir is libdir, return empty string, 368 + # else relative path ending with a slash; either way, target 369 + # file name can be directly appended. 370 + if test ! -z "$func_relative_path_result"; then 371 + func_stripname './' '' "$func_relative_path_result/" 372 + func_relative_path_result=$func_stripname_result 373 + fi 374 +} 375 + 376 +# The name of this program: 377 +func_dirname_and_basename "$progpath" 378 +progname=$func_basename_result 379 + 380 +# Make sure we have an absolute path for reexecution: 381 +case $progpath in 382 + [\\/]*|[A-Za-z]:\\*) ;; 383 + *[\\/]*) 384 + progdir=$func_dirname_result 385 + progdir=`cd "$progdir" && pwd` 386 + progpath="$progdir/$progname" 387 + ;; 388 + *) 389 + save_IFS="$IFS" 390 + IFS=: 391 + for progdir in $PATH; do 392 + IFS="$save_IFS" 393 + test -x "$progdir/$progname" && break 394 + done 395 + IFS="$save_IFS" 396 + test -n "$progdir" || progdir=`pwd` 397 + progpath="$progdir/$progname" 398 + ;; 399 +esac 400 + 401 +# Sed substitution that helps us do robust quoting. It backslashifies 402 +# metacharacters that are still active within double-quoted strings. 403 +Xsed="${SED}"' -e 1s/^X//' 404 +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' 405 + 406 +# Same as above, but do not quote variable references. 407 +double_quote_subst='s/\(["`\\]\)/\\\1/g' 408 + 409 +# Sed substitution that turns a string into a regex matching for the 410 +# string literally. 411 +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' 412 + 413 +# Sed substitution that converts a w32 file name or path 414 +# which contains forward slashes, into one that contains 415 +# (escaped) backslashes. A very naive implementation. 416 +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' 417 + 418 +# Re-`\' parameter expansions in output of double_quote_subst that were 419 +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' 420 +# in input to double_quote_subst, that '$' was protected from expansion. 421 +# Since each input `\' is now two `\'s, look for any number of runs of 422 +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. 423 +bs='\\' 424 +bs2='\\\\' 425 +bs4='\\\\\\\\' 426 +dollar='\$' 427 +sed_double_backslash="\ 428 + s/$bs4/&\\ 429 +/g 430 + s/^$bs2$dollar/$bs&/ 431 + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g 432 + s/\n//g" 433 + 434 +# Standard options: 435 +opt_dry_run=false 436 +opt_help=false 437 +opt_quiet=false 438 +opt_verbose=false 439 +opt_warning=: 440 + 441 +# func_echo arg... 442 +# Echo program name prefixed message, along with the current mode 443 +# name if it has been set yet. 444 +func_echo () 445 +{ 446 + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" 447 +} 448 + 449 +# func_verbose arg... 450 +# Echo program name prefixed message in verbose mode only. 451 +func_verbose () 452 +{ 453 + $opt_verbose && func_echo ${1+"$@"} 454 + 455 + # A bug in bash halts the script if the last line of a function 456 + # fails when set -e is in force, so we need another command to 457 + # work around that: 458 + : 459 +} 460 + 461 +# func_echo_all arg... 462 +# Invoke $ECHO with all args, space-separated. 463 +func_echo_all () 464 +{ 465 + $ECHO "$*" 466 +} 467 + 468 +# func_error arg... 469 +# Echo program name prefixed message to standard error. 470 +func_error () 471 +{ 472 + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 473 +} 474 + 475 +# func_warning arg... 476 +# Echo program name prefixed warning message to standard error. 477 +func_warning () 478 +{ 479 + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 480 + 481 + # bash bug again: 482 + : 483 +} 484 + 485 +# func_fatal_error arg... 486 +# Echo program name prefixed message to standard error, and exit. 487 +func_fatal_error () 488 +{ 489 + func_error ${1+"$@"} 490 + exit $EXIT_FAILURE 491 +} 492 + 493 +# func_fatal_help arg... 494 +# Echo program name prefixed message to standard error, followed by 495 +# a help hint, and exit. 496 +func_fatal_help () 497 +{ 498 + func_error ${1+"$@"} 499 + func_fatal_error "$help" 500 +} 501 +help="Try \`$progname --help' for more information." ## default 502 + 503 + 504 +# func_grep expression filename 505 +# Check whether EXPRESSION matches any line of FILENAME, without output. 506 +func_grep () 507 +{ 508 + $GREP "$1" "$2" >/dev/null 2>&1 509 +} 510 + 511 + 512 +# func_mkdir_p directory-path 513 +# Make sure the entire path to DIRECTORY-PATH is available. 514 +func_mkdir_p () 515 +{ 516 + my_directory_path="$1" 517 + my_dir_list= 518 + 519 + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then 520 + 521 + # Protect directory names starting with `-' 522 + case $my_directory_path in 523 + -*) my_directory_path="./$my_directory_path" ;; 524 + esac 525 + 526 + # While some portion of DIR does not yet exist... 527 + while test ! -d "$my_directory_path"; do 528 + # ...make a list in topmost first order. Use a colon delimited 529 + # list incase some portion of path contains whitespace. 530 + my_dir_list="$my_directory_path:$my_dir_list" 531 + 532 + # If the last portion added has no slash in it, the list is done 533 + case $my_directory_path in */*) ;; *) break ;; esac 534 + 535 + # ...otherwise throw away the child directory and loop 536 + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` 537 + done 538 + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` 539 + 540 + save_mkdir_p_IFS="$IFS"; IFS=':' 541 + for my_dir in $my_dir_list; do 542 + IFS="$save_mkdir_p_IFS" 543 + # mkdir can fail with a `File exist' error if two processes 544 + # try to create one of the directories concurrently. Don't 545 + # stop in that case! 546 + $MKDIR "$my_dir" 2>/dev/null || : 547 + done 548 + IFS="$save_mkdir_p_IFS" 549 + 550 + # Bail out if we (or some other process) failed to create a directory. 551 + test -d "$my_directory_path" || \ 552 + func_fatal_error "Failed to create \`$1'" 553 + fi 554 +} 555 + 556 + 557 +# func_mktempdir [string] 558 +# Make a temporary directory that won't clash with other running 559 +# libtool processes, and avoids race conditions if possible. If 560 +# given, STRING is the basename for that directory. 561 +func_mktempdir () 562 +{ 563 + my_template="${TMPDIR-/tmp}/${1-$progname}" 564 + 565 + if test "$opt_dry_run" = ":"; then 566 + # Return a directory name, but don't create it in dry-run mode 567 + my_tmpdir="${my_template}-$$" 568 + else 569 + 570 + # If mktemp works, use that first and foremost 571 + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 572 + 573 + if test ! -d "$my_tmpdir"; then 574 + # Failing that, at least try and use $RANDOM to avoid a race 575 + my_tmpdir="${my_template}-${RANDOM-0}$$" 576 + 577 + save_mktempdir_umask=`umask` 578 + umask 0077 579 + $MKDIR "$my_tmpdir" 580 + umask $save_mktempdir_umask 581 + fi 582 + 583 + # If we're not in dry-run mode, bomb out on failure 584 + test -d "$my_tmpdir" || \ 585 + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" 586 + fi 587 + 588 + $ECHO "$my_tmpdir" 589 +} 590 + 591 + 592 +# func_quote_for_eval arg 593 +# Aesthetically quote ARG to be evaled later. 594 +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT 595 +# is double-quoted, suitable for a subsequent eval, whereas 596 +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters 597 +# which are still active within double quotes backslashified. 598 +func_quote_for_eval () 599 +{ 600 + case $1 in 601 + *[\\\`\"\$]*) 602 + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; 603 + *) 604 + func_quote_for_eval_unquoted_result="$1" ;; 605 + esac 606 + 607 + case $func_quote_for_eval_unquoted_result in 608 + # Double-quote args containing shell metacharacters to delay 609 + # word splitting, command substitution and and variable 610 + # expansion for a subsequent eval. 611 + # Many Bourne shells cannot handle close brackets correctly 612 + # in scan sets, so we specify it separately. 613 + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 614 + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" 615 + ;; 616 + *) 617 + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" 618 + esac 619 +} 620 + 621 + 622 +# func_quote_for_expand arg 623 +# Aesthetically quote ARG to be evaled later; same as above, 624 +# but do not quote variable references. 625 +func_quote_for_expand () 626 +{ 627 + case $1 in 628 + *[\\\`\"]*) 629 + my_arg=`$ECHO "$1" | $SED \ 630 + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; 631 + *) 632 + my_arg="$1" ;; 633 + esac 634 + 635 + case $my_arg in 636 + # Double-quote args containing shell metacharacters to delay 637 + # word splitting and command substitution for a subsequent eval. 638 + # Many Bourne shells cannot handle close brackets correctly 639 + # in scan sets, so we specify it separately. 640 + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 641 + my_arg="\"$my_arg\"" 642 + ;; 643 + esac 644 + 645 + func_quote_for_expand_result="$my_arg" 646 +} 647 + 648 + 649 +# func_show_eval cmd [fail_exp] 650 +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is 651 +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP 652 +# is given, then evaluate it. 653 +func_show_eval () 654 +{ 655 + my_cmd="$1" 656 + my_fail_exp="${2-:}" 657 + 658 + ${opt_silent-false} || { 659 + func_quote_for_expand "$my_cmd" 660 + eval "func_echo $func_quote_for_expand_result" 661 + } 662 + 663 + if ${opt_dry_run-false}; then :; else 664 + eval "$my_cmd" 665 + my_status=$? 666 + if test "$my_status" -eq 0; then :; else 667 + eval "(exit $my_status); $my_fail_exp" 668 + fi 669 + fi 670 +} 671 + 672 + 673 +# func_show_eval_locale cmd [fail_exp] 674 +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is 675 +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP 676 +# is given, then evaluate it. Use the saved locale for evaluation. 677 +func_show_eval_locale () 678 +{ 679 + my_cmd="$1" 680 + my_fail_exp="${2-:}" 681 + 682 + ${opt_silent-false} || { 683 + func_quote_for_expand "$my_cmd" 684 + eval "func_echo $func_quote_for_expand_result" 685 + } 686 + 687 + if ${opt_dry_run-false}; then :; else 688 + eval "$lt_user_locale 689 + $my_cmd" 690 + my_status=$? 691 + eval "$lt_safe_locale" 692 + if test "$my_status" -eq 0; then :; else 693 + eval "(exit $my_status); $my_fail_exp" 694 + fi 695 + fi 696 +} 697 + 698 +# func_tr_sh 699 +# Turn $1 into a string suitable for a shell variable name. 700 +# Result is stored in $func_tr_sh_result. All characters 701 +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, 702 +# if $1 begins with a digit, a '_' is prepended as well. 703 +func_tr_sh () 704 +{ 705 + case $1 in 706 + [0-9]* | *[!a-zA-Z0-9_]*) 707 + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` 708 + ;; 709 + * ) 710 + func_tr_sh_result=$1 711 + ;; 712 + esac 713 +} 714 + 715 + 716 +# func_version 717 +# Echo version message to standard output and exit. 718 +func_version () 719 +{ 720 + $opt_debug 721 + 722 + $SED -n '/(C)/!b go 723 + :more 724 + /\./!{ 725 + N 726 + s/\n# / / 727 + b more 728 + } 729 + :go 730 + /^# '$PROGRAM' (GNU /,/# warranty; / { 731 + s/^# // 732 + s/^# *$// 733 + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ 734 + p 735 + }' < "$progpath" 736 + exit $? 737 +} 738 + 739 +# func_usage 740 +# Echo short help message to standard output and exit. 741 +func_usage () 742 +{ 743 + $opt_debug 744 + 745 + $SED -n '/^# Usage:/,/^# *.*--help/ { 746 + s/^# // 747 + s/^# *$// 748 + s/\$progname/'$progname'/ 749 + p 750 + }' < "$progpath" 751 + echo 752 + $ECHO "run \`$progname --help | more' for full usage" 753 + exit $? 754 +} 755 + 756 +# func_help [NOEXIT] 757 +# Echo long help message to standard output and exit, 758 +# unless 'noexit' is passed as argument. 759 +func_help () 760 +{ 761 + $opt_debug 762 + 763 + $SED -n '/^# Usage:/,/# Report bugs to/ { 764 + :print 765 + s/^# // 766 + s/^# *$// 767 + s*\$progname*'$progname'* 768 + s*\$host*'"$host"'* 769 + s*\$SHELL*'"$SHELL"'* 770 + s*\$LTCC*'"$LTCC"'* 771 + s*\$LTCFLAGS*'"$LTCFLAGS"'* 772 + s*\$LD*'"$LD"'* 773 + s/\$with_gnu_ld/'"$with_gnu_ld"'/ 774 + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ 775 + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ 776 + p 777 + d 778 + } 779 + /^# .* home page:/b print 780 + /^# General help using/b print 781 + ' < "$progpath" 782 + ret=$? 783 + if test -z "$1"; then 784 + exit $ret 785 + fi 786 +} 787 + 788 +# func_missing_arg argname 789 +# Echo program name prefixed message to standard error and set global 790 +# exit_cmd. 791 +func_missing_arg () 792 +{ 793 + $opt_debug 794 + 795 + func_error "missing argument for $1." 796 + exit_cmd=exit 797 +} 798 + 799 + 800 +# func_split_short_opt shortopt 801 +# Set func_split_short_opt_name and func_split_short_opt_arg shell 802 +# variables after splitting SHORTOPT after the 2nd character. 803 +func_split_short_opt () 804 +{ 805 + my_sed_short_opt='1s/^\(..\).*$/\1/;q' 806 + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' 807 + 808 + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` 809 + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` 810 +} # func_split_short_opt may be replaced by extended shell implementation 811 + 812 + 813 +# func_split_long_opt longopt 814 +# Set func_split_long_opt_name and func_split_long_opt_arg shell 815 +# variables after splitting LONGOPT at the `=' sign. 816 +func_split_long_opt () 817 +{ 818 + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' 819 + my_sed_long_arg='1s/^--[^=]*=//' 820 + 821 + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` 822 + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` 823 +} # func_split_long_opt may be replaced by extended shell implementation 824 + 825 +exit_cmd=: 826 + 827 + 828 + 829 + 830 + 831 +magic="%%%MAGIC variable%%%" 832 +magic_exe="%%%MAGIC EXE variable%%%" 833 + 834 +# Global variables. 835 +nonopt= 836 +preserve_args= 837 +lo2o="s/\\.lo\$/.${objext}/" 838 +o2lo="s/\\.${objext}\$/.lo/" 839 +extracted_archives= 840 +extracted_serial=0 841 + 842 +# If this variable is set in any of the actions, the command in it 843 +# will be execed at the end. This prevents here-documents from being 844 +# left over by shells. 845 +exec_cmd= 846 + 847 +# func_append var value 848 +# Append VALUE to the end of shell variable VAR. 849 +func_append () 850 +{ 851 + eval "${1}=\$${1}\${2}" 852 +} # func_append may be replaced by extended shell implementation 853 + 854 +# func_append_quoted var value 855 +# Quote VALUE and append to the end of shell variable VAR, separated 856 +# by a space. 857 +func_append_quoted () 858 +{ 859 + func_quote_for_eval "${2}" 860 + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" 861 +} # func_append_quoted may be replaced by extended shell implementation 862 + 863 + 864 +# func_arith arithmetic-term... 865 +func_arith () 866 +{ 867 + func_arith_result=`expr "${@}"` 868 +} # func_arith may be replaced by extended shell implementation 869 + 870 + 871 +# func_len string 872 +# STRING may not start with a hyphen. 873 +func_len () 874 +{ 875 + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` 876 +} # func_len may be replaced by extended shell implementation 877 + 878 + 879 +# func_lo2o object 880 +func_lo2o () 881 +{ 882 + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` 883 +} # func_lo2o may be replaced by extended shell implementation 884 + 885 + 886 +# func_xform libobj-or-source 887 +func_xform () 888 +{ 889 + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` 890 +} # func_xform may be replaced by extended shell implementation 891 + 892 + 893 +# func_fatal_configuration arg... 894 +# Echo program name prefixed message to standard error, followed by 895 +# a configuration failure hint, and exit. 896 +func_fatal_configuration () 897 +{ 898 + func_error ${1+"$@"} 899 + func_error "See the $PACKAGE documentation for more information." 900 + func_fatal_error "Fatal configuration error." 901 +} 902 + 903 + 904 +# func_config 905 +# Display the configuration for all the tags in this script. 906 +func_config () 907 +{ 908 + re_begincf='^# ### BEGIN LIBTOOL' 909 + re_endcf='^# ### END LIBTOOL' 910 + 911 + # Default configuration. 912 + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" 913 + 914 + # Now print the configurations for the tags. 915 + for tagname in $taglist; do 916 + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" 917 + done 918 + 919 + exit $? 920 +} 921 + 922 +# func_features 923 +# Display the features supported by this script. 924 +func_features () 925 +{ 926 + echo "host: $host" 927 + if test "$build_libtool_libs" = yes; then 928 + echo "enable shared libraries" 929 + else 930 + echo "disable shared libraries" 931 + fi 932 + if test "$build_old_libs" = yes; then 933 + echo "enable static libraries" 934 + else 935 + echo "disable static libraries" 936 + fi 937 + 938 + exit $? 939 +} 940 + 941 +# func_enable_tag tagname 942 +# Verify that TAGNAME is valid, and either flag an error and exit, or 943 +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist 944 +# variable here. 945 +func_enable_tag () 946 +{ 947 + # Global variable: 948 + tagname="$1" 949 + 950 + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" 951 + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" 952 + sed_extractcf="/$re_begincf/,/$re_endcf/p" 953 + 954 + # Validate tagname. 955 + case $tagname in 956 + *[!-_A-Za-z0-9,/]*) 957 + func_fatal_error "invalid tag name: $tagname" 958 + ;; 959 + esac 960 + 961 + # Don't test for the "default" C tag, as we know it's 962 + # there but not specially marked. 963 + case $tagname in 964 + CC) ;; 965 + *) 966 + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then 967 + taglist="$taglist $tagname" 968 + 969 + # Evaluate the configuration. Be careful to quote the path 970 + # and the sed script, to avoid splitting on whitespace, but 971 + # also don't use non-portable quotes within backquotes within 972 + # quotes we have to do it in 2 steps: 973 + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` 974 + eval "$extractedcf" 975 + else 976 + func_error "ignoring unknown tag $tagname" 977 + fi 978 + ;; 979 + esac 980 +} 981 + 982 +# func_check_version_match 983 +# Ensure that we are using m4 macros, and libtool script from the same 984 +# release of libtool. 985 +func_check_version_match () 986 +{ 987 + if test "$package_revision" != "$macro_revision"; then 988 + if test "$VERSION" != "$macro_version"; then 989 + if test -z "$macro_version"; then 990 + cat >&2 <<_LT_EOF 991 +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the 992 +$progname: definition of this LT_INIT comes from an older release. 993 +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 994 +$progname: and run autoconf again. 995 +_LT_EOF 996 + else 997 + cat >&2 <<_LT_EOF 998 +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the 999 +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. 1000 +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 1001 +$progname: and run autoconf again. 1002 +_LT_EOF 1003 + fi 1004 + else 1005 + cat >&2 <<_LT_EOF 1006 +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, 1007 +$progname: but the definition of this LT_INIT comes from revision $macro_revision. 1008 +$progname: You should recreate aclocal.m4 with macros from revision $package_revision 1009 +$progname: of $PACKAGE $VERSION and run autoconf again. 1010 +_LT_EOF 1011 + fi 1012 + 1013 + exit $EXIT_MISMATCH 1014 + fi 1015 +} 1016 + 1017 + 1018 +# Shorthand for --mode=foo, only valid as the first argument 1019 +case $1 in 1020 +clean|clea|cle|cl) 1021 + shift; set dummy --mode clean ${1+"$@"}; shift 1022 + ;; 1023 +compile|compil|compi|comp|com|co|c) 1024 + shift; set dummy --mode compile ${1+"$@"}; shift 1025 + ;; 1026 +execute|execut|execu|exec|exe|ex|e) 1027 + shift; set dummy --mode execute ${1+"$@"}; shift 1028 + ;; 1029 +finish|finis|fini|fin|fi|f) 1030 + shift; set dummy --mode finish ${1+"$@"}; shift 1031 + ;; 1032 +install|instal|insta|inst|ins|in|i) 1033 + shift; set dummy --mode install ${1+"$@"}; shift 1034 + ;; 1035 +link|lin|li|l) 1036 + shift; set dummy --mode link ${1+"$@"}; shift 1037 + ;; 1038 +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) 1039 + shift; set dummy --mode uninstall ${1+"$@"}; shift 1040 + ;; 1041 +esac 1042 + 1043 + 1044 + 1045 +# Option defaults: 1046 +opt_debug=: 1047 +opt_dry_run=false 1048 +opt_config=false 1049 +opt_preserve_dup_deps=false 1050 +opt_features=false 1051 +opt_finish=false 1052 +opt_help=false 1053 +opt_help_all=false 1054 +opt_silent=: 1055 +opt_verbose=: 1056 +opt_silent=false 1057 +opt_verbose=false 1058 + 1059 + 1060 +# Parse options once, thoroughly. This comes as soon as possible in the 1061 +# script to make things like `--version' happen as quickly as we can. 1062 +{ 1063 + # this just eases exit handling 1064 + while test $# -gt 0; do 1065 + opt="$1" 1066 + shift 1067 + case $opt in 1068 + --debug|-x) opt_debug='set -x' 1069 + func_echo "enabling shell trace mode" 1070 + $opt_debug 1071 + ;; 1072 + --dry-run|--dryrun|-n) 1073 + opt_dry_run=: 1074 + ;; 1075 + --config) 1076 + opt_config=: 1077 +func_config 1078 + ;; 1079 + --dlopen|-dlopen) 1080 + optarg="$1" 1081 + opt_dlopen="${opt_dlopen+$opt_dlopen 1082 +}$optarg" 1083 + shift 1084 + ;; 1085 + --preserve-dup-deps) 1086 + opt_preserve_dup_deps=: 1087 + ;; 1088 + --features) 1089 + opt_features=: 1090 +func_features 1091 + ;; 1092 + --finish) 1093 + opt_finish=: 1094 +set dummy --mode finish ${1+"$@"}; shift 1095 + ;; 1096 + --help) 1097 + opt_help=: 1098 + ;; 1099 + --help-all) 1100 + opt_help_all=: 1101 +opt_help=': help-all' 1102 + ;; 1103 + --mode) 1104 + test $# = 0 && func_missing_arg $opt && break 1105 + optarg="$1" 1106 + opt_mode="$optarg" 1107 +case $optarg in 1108 + # Valid mode arguments: 1109 + clean|compile|execute|finish|install|link|relink|uninstall) ;; 1110 + 1111 + # Catch anything else as an error 1112 + *) func_error "invalid argument for $opt" 1113 + exit_cmd=exit 1114 + break 1115 + ;; 1116 +esac 1117 + shift 1118 + ;; 1119 + --no-silent|--no-quiet) 1120 + opt_silent=false 1121 +func_append preserve_args " $opt" 1122 + ;; 1123 + --no-verbose) 1124 + opt_verbose=false 1125 +func_append preserve_args " $opt" 1126 + ;; 1127 + --silent|--quiet) 1128 + opt_silent=: 1129 +func_append preserve_args " $opt" 1130 + opt_verbose=false 1131 + ;; 1132 + --verbose|-v) 1133 + opt_verbose=: 1134 +func_append preserve_args " $opt" 1135 +opt_silent=false 1136 + ;; 1137 + --tag) 1138 + test $# = 0 && func_missing_arg $opt && break 1139 + optarg="$1" 1140 + opt_tag="$optarg" 1141 +func_append preserve_args " $opt $optarg" 1142 +func_enable_tag "$optarg" 1143 + shift 1144 + ;; 1145 + 1146 + -\?|-h) func_usage ;; 1147 + --help) func_help ;; 1148 + --version) func_version ;; 1149 + 1150 + # Separate optargs to long options: 1151 + --*=*) 1152 + func_split_long_opt "$opt" 1153 + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} 1154 + shift 1155 + ;; 1156 + 1157 + # Separate non-argument short options: 1158 + -\?*|-h*|-n*|-v*) 1159 + func_split_short_opt "$opt" 1160 + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} 1161 + shift 1162 + ;; 1163 + 1164 + --) break ;; 1165 + -*) func_fatal_help "unrecognized option \`$opt'" ;; 1166 + *) set dummy "$opt" ${1+"$@"}; shift; break ;; 1167 + esac 1168 + done 1169 + 1170 + # Validate options: 1171 + 1172 + # save first non-option argument 1173 + if test "$#" -gt 0; then 1174 + nonopt="$opt" 1175 + shift 1176 + fi 1177 + 1178 + # preserve --debug 1179 + test "$opt_debug" = : || func_append preserve_args " --debug" 1180 + 1181 + case $host in 1182 + *cygwin* | *mingw* | *pw32* | *cegcc*) 1183 + # don't eliminate duplications in $postdeps and $predeps 1184 + opt_duplicate_compiler_generated_deps=: 1185 + ;; 1186 + *) 1187 + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps 1188 + ;; 1189 + esac 1190 + 1191 + $opt_help || { 1192 + # Sanity checks first: 1193 + func_check_version_match 1194 + 1195 + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 1196 + func_fatal_configuration "not configured to build any kind of library" 1197 + fi 1198 + 1199 + # Darwin sucks 1200 + eval std_shrext=\"$shrext_cmds\" 1201 + 1202 + # Only execute mode is allowed to have -dlopen flags. 1203 + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then 1204 + func_error "unrecognized option \`-dlopen'" 1205 + $ECHO "$help" 1>&2 1206 + exit $EXIT_FAILURE 1207 + fi 1208 + 1209 + # Change the help message to a mode-specific one. 1210 + generic_help="$help" 1211 + help="Try \`$progname --help --mode=$opt_mode' for more information." 1212 + } 1213 + 1214 + 1215 + # Bail if the options were screwed 1216 + $exit_cmd $EXIT_FAILURE 1217 +} 1218 + 1219 + 1220 + 1221 + 1222 +## ----------- ## 1223 +## Main. ## 1224 +## ----------- ## 1225 + 1226 +# func_lalib_p file 1227 +# True iff FILE is a libtool `.la' library or `.lo' object file. 1228 +# This function is only a basic sanity check; it will hardly flush out 1229 +# determined imposters. 1230 +func_lalib_p () 1231 +{ 1232 + test -f "$1" && 1233 + $SED -e 4q "$1" 2>/dev/null \ 1234 + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 1235 +} 1236 + 1237 +# func_lalib_unsafe_p file 1238 +# True iff FILE is a libtool `.la' library or `.lo' object file. 1239 +# This function implements the same check as func_lalib_p without 1240 +# resorting to external programs. To this end, it redirects stdin and 1241 +# closes it afterwards, without saving the original file descriptor. 1242 +# As a safety measure, use it only where a negative result would be 1243 +# fatal anyway. Works if `file' does not exist. 1244 +func_lalib_unsafe_p () 1245 +{ 1246 + lalib_p=no 1247 + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then 1248 + for lalib_p_l in 1 2 3 4 1249 + do 1250 + read lalib_p_line 1251 + case "$lalib_p_line" in 1252 + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; 1253 + esac 1254 + done 1255 + exec 0<&5 5<&- 1256 + fi 1257 + test "$lalib_p" = yes 1258 +} 1259 + 1260 +# func_ltwrapper_script_p file 1261 +# True iff FILE is a libtool wrapper script 1262 +# This function is only a basic sanity check; it will hardly flush out 1263 +# determined imposters. 1264 +func_ltwrapper_script_p () 1265 +{ 1266 + func_lalib_p "$1" 1267 +} 1268 + 1269 +# func_ltwrapper_executable_p file 1270 +# True iff FILE is a libtool wrapper executable 1271 +# This function is only a basic sanity check; it will hardly flush out 1272 +# determined imposters. 1273 +func_ltwrapper_executable_p () 1274 +{ 1275 + func_ltwrapper_exec_suffix= 1276 + case $1 in 1277 + *.exe) ;; 1278 + *) func_ltwrapper_exec_suffix=.exe ;; 1279 + esac 1280 + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 1281 +} 1282 + 1283 +# func_ltwrapper_scriptname file 1284 +# Assumes file is an ltwrapper_executable 1285 +# uses $file to determine the appropriate filename for a 1286 +# temporary ltwrapper_script. 1287 +func_ltwrapper_scriptname () 1288 +{ 1289 + func_dirname_and_basename "$1" "" "." 1290 + func_stripname '' '.exe' "$func_basename_result" 1291 + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" 1292 +} 1293 + 1294 +# func_ltwrapper_p file 1295 +# True iff FILE is a libtool wrapper script or wrapper executable 1296 +# This function is only a basic sanity check; it will hardly flush out 1297 +# determined imposters. 1298 +func_ltwrapper_p () 1299 +{ 1300 + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" 1301 +} 1302 + 1303 + 1304 +# func_execute_cmds commands fail_cmd 1305 +# Execute tilde-delimited COMMANDS. 1306 +# If FAIL_CMD is given, eval that upon failure. 1307 +# FAIL_CMD may read-access the current command in variable CMD! 1308 +func_execute_cmds () 1309 +{ 1310 + $opt_debug 1311 + save_ifs=$IFS; IFS='~' 1312 + for cmd in $1; do 1313 + IFS=$save_ifs 1314 + eval cmd=\"$cmd\" 1315 + func_show_eval "$cmd" "${2-:}" 1316 + done 1317 + IFS=$save_ifs 1318 +} 1319 + 1320 + 1321 +# func_source file 1322 +# Source FILE, adding directory component if necessary. 1323 +# Note that it is not necessary on cygwin/mingw to append a dot to 1324 +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe 1325 +# behavior happens only for exec(3), not for open(2)! Also, sourcing 1326 +# `FILE.' does not work on cygwin managed mounts. 1327 +func_source () 1328 +{ 1329 + $opt_debug 1330 + case $1 in 1331 + */* | *\\*) . "$1" ;; 1332 + *) . "./$1" ;; 1333 + esac 1334 +} 1335 + 1336 + 1337 +# func_resolve_sysroot PATH 1338 +# Replace a leading = in PATH with a sysroot. Store the result into 1339 +# func_resolve_sysroot_result 1340 +func_resolve_sysroot () 1341 +{ 1342 + func_resolve_sysroot_result=$1 1343 + case $func_resolve_sysroot_result in 1344 + =*) 1345 + func_stripname '=' '' "$func_resolve_sysroot_result" 1346 + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result 1347 + ;; 1348 + esac 1349 +} 1350 + 1351 +# func_replace_sysroot PATH 1352 +# If PATH begins with the sysroot, replace it with = and 1353 +# store the result into func_replace_sysroot_result. 1354 +func_replace_sysroot () 1355 +{ 1356 + case "$lt_sysroot:$1" in 1357 + ?*:"$lt_sysroot"*) 1358 + func_stripname "$lt_sysroot" '' "$1" 1359 + func_replace_sysroot_result="=$func_stripname_result" 1360 + ;; 1361 + *) 1362 + # Including no sysroot. 1363 + func_replace_sysroot_result=$1 1364 + ;; 1365 + esac 1366 +} 1367 + 1368 +# func_infer_tag arg 1369 +# Infer tagged configuration to use if any are available and 1370 +# if one wasn't chosen via the "--tag" command line option. 1371 +# Only attempt this if the compiler in the base compile 1372 +# command doesn't match the default compiler. 1373 +# arg is usually of the form 'gcc ...' 1374 +func_infer_tag () 1375 +{ 1376 + $opt_debug 1377 + if test -n "$available_tags" && test -z "$tagname"; then 1378 + CC_quoted= 1379 + for arg in $CC; do 1380 + func_append_quoted CC_quoted "$arg" 1381 + done 1382 + CC_expanded=`func_echo_all $CC` 1383 + CC_quoted_expanded=`func_echo_all $CC_quoted` 1384 + case $@ in 1385 + # Blanks in the command may have been stripped by the calling shell, 1386 + # but not from the CC environment variable when configure was run. 1387 + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ 1388 + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; 1389 + # Blanks at the start of $base_compile will cause this to fail 1390 + # if we don't check for them as well. 1391 + *) 1392 + for z in $available_tags; do 1393 + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 1394 + # Evaluate the configuration. 1395 + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 1396 + CC_quoted= 1397 + for arg in $CC; do 1398 + # Double-quote args containing other shell metacharacters. 1399 + func_append_quoted CC_quoted "$arg" 1400 + done 1401 + CC_expanded=`func_echo_all $CC` 1402 + CC_quoted_expanded=`func_echo_all $CC_quoted` 1403 + case "$@ " in 1404 + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ 1405 + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) 1406 + # The compiler in the base compile command matches 1407 + # the one in the tagged configuration. 1408 + # Assume this is the tagged configuration we want. 1409 + tagname=$z 1410 + break 1411 + ;; 1412 + esac 1413 + fi 1414 + done 1415 + # If $tagname still isn't set, then no tagged configuration 1416 + # was found and let the user know that the "--tag" command 1417 + # line option must be used. 1418 + if test -z "$tagname"; then 1419 + func_echo "unable to infer tagged configuration" 1420 + func_fatal_error "specify a tag with \`--tag'" 1421 +# else 1422 +# func_verbose "using $tagname tagged configuration" 1423 + fi 1424 + ;; 1425 + esac 1426 + fi 1427 +} 1428 + 1429 + 1430 + 1431 +# func_write_libtool_object output_name pic_name nonpic_name 1432 +# Create a libtool object file (analogous to a ".la" file), 1433 +# but don't create it if we're doing a dry run. 1434 +func_write_libtool_object () 1435 +{ 1436 + write_libobj=${1} 1437 + if test "$build_libtool_libs" = yes; then 1438 + write_lobj=\'${2}\' 1439 + else 1440 + write_lobj=none 1441 + fi 1442 + 1443 + if test "$build_old_libs" = yes; then 1444 + write_oldobj=\'${3}\' 1445 + else 1446 + write_oldobj=none 1447 + fi 1448 + 1449 + $opt_dry_run || { 1450 + cat >${write_libobj}T <<EOF 1451 +# $write_libobj - a libtool object file 1452 +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 1453 +# 1454 +# Please DO NOT delete this file! 1455 +# It is necessary for linking the library. 1456 + 1457 +# Name of the PIC object. 1458 +pic_object=$write_lobj 1459 + 1460 +# Name of the non-PIC object 1461 +non_pic_object=$write_oldobj 1462 + 1463 +EOF 1464 + $MV "${write_libobj}T" "${write_libobj}" 1465 + } 1466 +} 1467 + 1468 + 1469 +################################################## 1470 +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # 1471 +################################################## 1472 + 1473 +# func_convert_core_file_wine_to_w32 ARG 1474 +# Helper function used by file name conversion functions when $build is *nix, 1475 +# and $host is mingw, cygwin, or some other w32 environment. Relies on a 1476 +# correctly configured wine environment available, with the winepath program 1477 +# in $build's $PATH. 1478 +# 1479 +# ARG is the $build file name to be converted to w32 format. 1480 +# Result is available in $func_convert_core_file_wine_to_w32_result, and will 1481 +# be empty on error (or when ARG is empty) 1482 +func_convert_core_file_wine_to_w32 () 1483 +{ 1484 + $opt_debug 1485 + func_convert_core_file_wine_to_w32_result="$1" 1486 + if test -n "$1"; then 1487 + # Unfortunately, winepath does not exit with a non-zero error code, so we 1488 + # are forced to check the contents of stdout. On the other hand, if the 1489 + # command is not found, the shell will set an exit code of 127 and print 1490 + # *an error message* to stdout. So we must check for both error code of 1491 + # zero AND non-empty stdout, which explains the odd construction: 1492 + func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` 1493 + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then 1494 + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | 1495 + $SED -e "$lt_sed_naive_backslashify"` 1496 + else 1497 + func_convert_core_file_wine_to_w32_result= 1498 + fi 1499 + fi 1500 +} 1501 +# end: func_convert_core_file_wine_to_w32 1502 + 1503 + 1504 +# func_convert_core_path_wine_to_w32 ARG 1505 +# Helper function used by path conversion functions when $build is *nix, and 1506 +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly 1507 +# configured wine environment available, with the winepath program in $build's 1508 +# $PATH. Assumes ARG has no leading or trailing path separator characters. 1509 +# 1510 +# ARG is path to be converted from $build format to win32. 1511 +# Result is available in $func_convert_core_path_wine_to_w32_result. 1512 +# Unconvertible file (directory) names in ARG are skipped; if no directory names 1513 +# are convertible, then the result may be empty. 1514 +func_convert_core_path_wine_to_w32 () 1515 +{ 1516 + $opt_debug 1517 + # unfortunately, winepath doesn't convert paths, only file names 1518 + func_convert_core_path_wine_to_w32_result="" 1519 + if test -n "$1"; then 1520 + oldIFS=$IFS 1521 + IFS=: 1522 + for func_convert_core_path_wine_to_w32_f in $1; do 1523 + IFS=$oldIFS 1524 + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" 1525 + if test -n "$func_convert_core_file_wine_to_w32_result" ; then 1526 + if test -z "$func_convert_core_path_wine_to_w32_result"; then 1527 + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" 1528 + else 1529 + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" 1530 + fi 1531 + fi 1532 + done 1533 + IFS=$oldIFS 1534 + fi 1535 +} 1536 +# end: func_convert_core_path_wine_to_w32 1537 + 1538 + 1539 +# func_cygpath ARGS... 1540 +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when 1541 +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) 1542 +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or 1543 +# (2), returns the Cygwin file name or path in func_cygpath_result (input 1544 +# file name or path is assumed to be in w32 format, as previously converted 1545 +# from $build's *nix or MSYS format). In case (3), returns the w32 file name 1546 +# or path in func_cygpath_result (input file name or path is assumed to be in 1547 +# Cygwin format). Returns an empty string on error. 1548 +# 1549 +# ARGS are passed to cygpath, with the last one being the file name or path to 1550 +# be converted. 1551 +# 1552 +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH 1553 +# environment variable; do not put it in $PATH. 1554 +func_cygpath () 1555 +{ 1556 + $opt_debug 1557 + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then 1558 + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` 1559 + if test "$?" -ne 0; then 1560 + # on failure, ensure result is empty 1561 + func_cygpath_result= 1562 + fi 1563 + else 1564 + func_cygpath_result= 1565 + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" 1566 + fi 1567 +} 1568 +#end: func_cygpath 1569 + 1570 + 1571 +# func_convert_core_msys_to_w32 ARG 1572 +# Convert file name or path ARG from MSYS format to w32 format. Return 1573 +# result in func_convert_core_msys_to_w32_result. 1574 +func_convert_core_msys_to_w32 () 1575 +{ 1576 + $opt_debug 1577 + # awkward: cmd appends spaces to result 1578 + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | 1579 + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` 1580 +} 1581 +#end: func_convert_core_msys_to_w32 1582 + 1583 + 1584 +# func_convert_file_check ARG1 ARG2 1585 +# Verify that ARG1 (a file name in $build format) was converted to $host 1586 +# format in ARG2. Otherwise, emit an error message, but continue (resetting 1587 +# func_to_host_file_result to ARG1). 1588 +func_convert_file_check () 1589 +{ 1590 + $opt_debug 1591 + if test -z "$2" && test -n "$1" ; then 1592 + func_error "Could not determine host file name corresponding to" 1593 + func_error " \`$1'" 1594 + func_error "Continuing, but uninstalled executables may not work." 1595 + # Fallback: 1596 + func_to_host_file_result="$1" 1597 + fi 1598 +} 1599 +# end func_convert_file_check 1600 + 1601 + 1602 +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH 1603 +# Verify that FROM_PATH (a path in $build format) was converted to $host 1604 +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting 1605 +# func_to_host_file_result to a simplistic fallback value (see below). 1606 +func_convert_path_check () 1607 +{ 1608 + $opt_debug 1609 + if test -z "$4" && test -n "$3"; then 1610 + func_error "Could not determine the host path corresponding to" 1611 + func_error " \`$3'" 1612 + func_error "Continuing, but uninstalled executables may not work." 1613 + # Fallback. This is a deliberately simplistic "conversion" and 1614 + # should not be "improved". See libtool.info. 1615 + if test "x$1" != "x$2"; then 1616 + lt_replace_pathsep_chars="s|$1|$2|g" 1617 + func_to_host_path_result=`echo "$3" | 1618 + $SED -e "$lt_replace_pathsep_chars"` 1619 + else 1620 + func_to_host_path_result="$3" 1621 + fi 1622 + fi 1623 +} 1624 +# end func_convert_path_check 1625 + 1626 + 1627 +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG 1628 +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT 1629 +# and appending REPL if ORIG matches BACKPAT. 1630 +func_convert_path_front_back_pathsep () 1631 +{ 1632 + $opt_debug 1633 + case $4 in 1634 + $1 ) func_to_host_path_result="$3$func_to_host_path_result" 1635 + ;; 1636 + esac 1637 + case $4 in 1638 + $2 ) func_append func_to_host_path_result "$3" 1639 + ;; 1640 + esac 1641 +} 1642 +# end func_convert_path_front_back_pathsep 1643 + 1644 + 1645 +################################################## 1646 +# $build to $host FILE NAME CONVERSION FUNCTIONS # 1647 +################################################## 1648 +# invoked via `$to_host_file_cmd ARG' 1649 +# 1650 +# In each case, ARG is the path to be converted from $build to $host format. 1651 +# Result will be available in $func_to_host_file_result. 1652 + 1653 + 1654 +# func_to_host_file ARG 1655 +# Converts the file name ARG from $build format to $host format. Return result 1656 +# in func_to_host_file_result. 1657 +func_to_host_file () 1658 +{ 1659 + $opt_debug 1660 + $to_host_file_cmd "$1" 1661 +} 1662 +# end func_to_host_file 1663 + 1664 + 1665 +# func_to_tool_file ARG LAZY 1666 +# converts the file name ARG from $build format to toolchain format. Return 1667 +# result in func_to_tool_file_result. If the conversion in use is listed 1668 +# in (the comma separated) LAZY, no conversion takes place. 1669 +func_to_tool_file () 1670 +{ 1671 + $opt_debug 1672 + case ,$2, in 1673 + *,"$to_tool_file_cmd",*) 1674 + func_to_tool_file_result=$1 1675 + ;; 1676 + *) 1677 + $to_tool_file_cmd "$1" 1678 + func_to_tool_file_result=$func_to_host_file_result 1679 + ;; 1680 + esac 1681 +} 1682 +# end func_to_tool_file 1683 + 1684 + 1685 +# func_convert_file_noop ARG 1686 +# Copy ARG to func_to_host_file_result. 1687 +func_convert_file_noop () 1688 +{ 1689 + func_to_host_file_result="$1" 1690 +} 1691 +# end func_convert_file_noop 1692 + 1693 + 1694 +# func_convert_file_msys_to_w32 ARG 1695 +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic 1696 +# conversion to w32 is not available inside the cwrapper. Returns result in 1697 +# func_to_host_file_result. 1698 +func_convert_file_msys_to_w32 () 1699 +{ 1700 + $opt_debug 1701 + func_to_host_file_result="$1" 1702 + if test -n "$1"; then 1703 + func_convert_core_msys_to_w32 "$1" 1704 + func_to_host_file_result="$func_convert_core_msys_to_w32_result" 1705 + fi 1706 + func_convert_file_check "$1" "$func_to_host_file_result" 1707 +} 1708 +# end func_convert_file_msys_to_w32 1709 + 1710 + 1711 +# func_convert_file_cygwin_to_w32 ARG 1712 +# Convert file name ARG from Cygwin to w32 format. Returns result in 1713 +# func_to_host_file_result. 1714 +func_convert_file_cygwin_to_w32 () 1715 +{ 1716 + $opt_debug 1717 + func_to_host_file_result="$1" 1718 + if test -n "$1"; then 1719 + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use 1720 + # LT_CYGPATH in this case. 1721 + func_to_host_file_result=`cygpath -m "$1"` 1722 + fi 1723 + func_convert_file_check "$1" "$func_to_host_file_result" 1724 +} 1725 +# end func_convert_file_cygwin_to_w32 1726 + 1727 + 1728 +# func_convert_file_nix_to_w32 ARG 1729 +# Convert file name ARG from *nix to w32 format. Requires a wine environment 1730 +# and a working winepath. Returns result in func_to_host_file_result. 1731 +func_convert_file_nix_to_w32 () 1732 +{ 1733 + $opt_debug 1734 + func_to_host_file_result="$1" 1735 + if test -n "$1"; then 1736 + func_convert_core_file_wine_to_w32 "$1" 1737 + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" 1738 + fi 1739 + func_convert_file_check "$1" "$func_to_host_file_result" 1740 +} 1741 +# end func_convert_file_nix_to_w32 1742 + 1743 + 1744 +# func_convert_file_msys_to_cygwin ARG 1745 +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. 1746 +# Returns result in func_to_host_file_result. 1747 +func_convert_file_msys_to_cygwin () 1748 +{ 1749 + $opt_debug 1750 + func_to_host_file_result="$1" 1751 + if test -n "$1"; then 1752 + func_convert_core_msys_to_w32 "$1" 1753 + func_cygpath -u "$func_convert_core_msys_to_w32_result" 1754 + func_to_host_file_result="$func_cygpath_result" 1755 + fi 1756 + func_convert_file_check "$1" "$func_to_host_file_result" 1757 +} 1758 +# end func_convert_file_msys_to_cygwin 1759 + 1760 + 1761 +# func_convert_file_nix_to_cygwin ARG 1762 +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed 1763 +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result 1764 +# in func_to_host_file_result. 1765 +func_convert_file_nix_to_cygwin () 1766 +{ 1767 + $opt_debug 1768 + func_to_host_file_result="$1" 1769 + if test -n "$1"; then 1770 + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. 1771 + func_convert_core_file_wine_to_w32 "$1" 1772 + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" 1773 + func_to_host_file_result="$func_cygpath_result" 1774 + fi 1775 + func_convert_file_check "$1" "$func_to_host_file_result" 1776 +} 1777 +# end func_convert_file_nix_to_cygwin 1778 + 1779 + 1780 +############################################# 1781 +# $build to $host PATH CONVERSION FUNCTIONS # 1782 +############################################# 1783 +# invoked via `$to_host_path_cmd ARG' 1784 +# 1785 +# In each case, ARG is the path to be converted from $build to $host format. 1786 +# The result will be available in $func_to_host_path_result. 1787 +# 1788 +# Path separators are also converted from $build format to $host format. If 1789 +# ARG begins or ends with a path separator character, it is preserved (but 1790 +# converted to $host format) on output. 1791 +# 1792 +# All path conversion functions are named using the following convention: 1793 +# file name conversion function : func_convert_file_X_to_Y () 1794 +# path conversion function : func_convert_path_X_to_Y () 1795 +# where, for any given $build/$host combination the 'X_to_Y' value is the 1796 +# same. If conversion functions are added for new $build/$host combinations, 1797 +# the two new functions must follow this pattern, or func_init_to_host_path_cmd 1798 +# will break. 1799 + 1800 + 1801 +# func_init_to_host_path_cmd 1802 +# Ensures that function "pointer" variable $to_host_path_cmd is set to the 1803 +# appropriate value, based on the value of $to_host_file_cmd. 1804 +to_host_path_cmd= 1805 +func_init_to_host_path_cmd () 1806 +{ 1807 + $opt_debug 1808 + if test -z "$to_host_path_cmd"; then 1809 + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" 1810 + to_host_path_cmd="func_convert_path_${func_stripname_result}" 1811 + fi 1812 +} 1813 + 1814 + 1815 +# func_to_host_path ARG 1816 +# Converts the path ARG from $build format to $host format. Return result 1817 +# in func_to_host_path_result. 1818 +func_to_host_path () 1819 +{ 1820 + $opt_debug 1821 + func_init_to_host_path_cmd 1822 + $to_host_path_cmd "$1" 1823 +} 1824 +# end func_to_host_path 1825 + 1826 + 1827 +# func_convert_path_noop ARG 1828 +# Copy ARG to func_to_host_path_result. 1829 +func_convert_path_noop () 1830 +{ 1831 + func_to_host_path_result="$1" 1832 +} 1833 +# end func_convert_path_noop 1834 + 1835 + 1836 +# func_convert_path_msys_to_w32 ARG 1837 +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic 1838 +# conversion to w32 is not available inside the cwrapper. Returns result in 1839 +# func_to_host_path_result. 1840 +func_convert_path_msys_to_w32 () 1841 +{ 1842 + $opt_debug 1843 + func_to_host_path_result="$1" 1844 + if test -n "$1"; then 1845 + # Remove leading and trailing path separator characters from ARG. MSYS 1846 + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; 1847 + # and winepath ignores them completely. 1848 + func_stripname : : "$1" 1849 + func_to_host_path_tmp1=$func_stripname_result 1850 + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" 1851 + func_to_host_path_result="$func_convert_core_msys_to_w32_result" 1852 + func_convert_path_check : ";" \ 1853 + "$func_to_host_path_tmp1" "$func_to_host_path_result" 1854 + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 1855 + fi 1856 +} 1857 +# end func_convert_path_msys_to_w32 1858 + 1859 + 1860 +# func_convert_path_cygwin_to_w32 ARG 1861 +# Convert path ARG from Cygwin to w32 format. Returns result in 1862 +# func_to_host_file_result. 1863 +func_convert_path_cygwin_to_w32 () 1864 +{ 1865 + $opt_debug 1866 + func_to_host_path_result="$1" 1867 + if test -n "$1"; then 1868 + # See func_convert_path_msys_to_w32: 1869 + func_stripname : : "$1" 1870 + func_to_host_path_tmp1=$func_stripname_result 1871 + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` 1872 + func_convert_path_check : ";" \ 1873 + "$func_to_host_path_tmp1" "$func_to_host_path_result" 1874 + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 1875 + fi 1876 +} 1877 +# end func_convert_path_cygwin_to_w32 1878 + 1879 + 1880 +# func_convert_path_nix_to_w32 ARG 1881 +# Convert path ARG from *nix to w32 format. Requires a wine environment and 1882 +# a working winepath. Returns result in func_to_host_file_result. 1883 +func_convert_path_nix_to_w32 () 1884 +{ 1885 + $opt_debug 1886 + func_to_host_path_result="$1" 1887 + if test -n "$1"; then 1888 + # See func_convert_path_msys_to_w32: 1889 + func_stripname : : "$1" 1890 + func_to_host_path_tmp1=$func_stripname_result 1891 + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" 1892 + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" 1893 + func_convert_path_check : ";" \ 1894 + "$func_to_host_path_tmp1" "$func_to_host_path_result" 1895 + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 1896 + fi 1897 +} 1898 +# end func_convert_path_nix_to_w32 1899 + 1900 + 1901 +# func_convert_path_msys_to_cygwin ARG 1902 +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. 1903 +# Returns result in func_to_host_file_result. 1904 +func_convert_path_msys_to_cygwin () 1905 +{ 1906 + $opt_debug 1907 + func_to_host_path_result="$1" 1908 + if test -n "$1"; then 1909 + # See func_convert_path_msys_to_w32: 1910 + func_stripname : : "$1" 1911 + func_to_host_path_tmp1=$func_stripname_result 1912 + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" 1913 + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" 1914 + func_to_host_path_result="$func_cygpath_result" 1915 + func_convert_path_check : : \ 1916 + "$func_to_host_path_tmp1" "$func_to_host_path_result" 1917 + func_convert_path_front_back_pathsep ":*" "*:" : "$1" 1918 + fi 1919 +} 1920 +# end func_convert_path_msys_to_cygwin 1921 + 1922 + 1923 +# func_convert_path_nix_to_cygwin ARG 1924 +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a 1925 +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in 1926 +# func_to_host_file_result. 1927 +func_convert_path_nix_to_cygwin () 1928 +{ 1929 + $opt_debug 1930 + func_to_host_path_result="$1" 1931 + if test -n "$1"; then 1932 + # Remove leading and trailing path separator characters from 1933 + # ARG. msys behavior is inconsistent here, cygpath turns them 1934 + # into '.;' and ';.', and winepath ignores them completely. 1935 + func_stripname : : "$1" 1936 + func_to_host_path_tmp1=$func_stripname_result 1937 + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" 1938 + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" 1939 + func_to_host_path_result="$func_cygpath_result" 1940 + func_convert_path_check : : \ 1941 + "$func_to_host_path_tmp1" "$func_to_host_path_result" 1942 + func_convert_path_front_back_pathsep ":*" "*:" : "$1" 1943 + fi 1944 +} 1945 +# end func_convert_path_nix_to_cygwin 1946 + 1947 + 1948 +# func_mode_compile arg... 1949 +func_mode_compile () 1950 +{ 1951 + $opt_debug 1952 + # Get the compilation command and the source file. 1953 + base_compile= 1954 + srcfile="$nonopt" # always keep a non-empty value in "srcfile" 1955 + suppress_opt=yes 1956 + suppress_output= 1957 + arg_mode=normal 1958 + libobj= 1959 + later= 1960 + pie_flag= 1961 + 1962 + for arg 1963 + do 1964 + case $arg_mode in 1965 + arg ) 1966 + # do not "continue". Instead, add this to base_compile 1967 + lastarg="$arg" 1968 + arg_mode=normal 1969 + ;; 1970 + 1971 + target ) 1972 + libobj="$arg" 1973 + arg_mode=normal 1974 + continue 1975 + ;; 1976 + 1977 + normal ) 1978 + # Accept any command-line options. 1979 + case $arg in 1980 + -o) 1981 + test -n "$libobj" && \ 1982 + func_fatal_error "you cannot specify \`-o' more than once" 1983 + arg_mode=target 1984 + continue 1985 + ;; 1986 + 1987 + -pie | -fpie | -fPIE) 1988 + func_append pie_flag " $arg" 1989 + continue 1990 + ;; 1991 + 1992 + -shared | -static | -prefer-pic | -prefer-non-pic) 1993 + func_append later " $arg" 1994 + continue 1995 + ;; 1996 + 1997 + -no-suppress) 1998 + suppress_opt=no 1999 + continue 2000 + ;; 2001 + 2002 + -Xcompiler) 2003 + arg_mode=arg # the next one goes into the "base_compile" arg list 2004 + continue # The current "srcfile" will either be retained or 2005 + ;; # replaced later. I would guess that would be a bug. 2006 + 2007 + -Wc,*) 2008 + func_stripname '-Wc,' '' "$arg" 2009 + args=$func_stripname_result 2010 + lastarg= 2011 + save_ifs="$IFS"; IFS=',' 2012 + for arg in $args; do 2013 + IFS="$save_ifs" 2014 + func_append_quoted lastarg "$arg" 2015 + done 2016 + IFS="$save_ifs" 2017 + func_stripname ' ' '' "$lastarg" 2018 + lastarg=$func_stripname_result 2019 + 2020 + # Add the arguments to base_compile. 2021 + func_append base_compile " $lastarg" 2022 + continue 2023 + ;; 2024 + 2025 + *) 2026 + # Accept the current argument as the source file. 2027 + # The previous "srcfile" becomes the current argument. 2028 + # 2029 + lastarg="$srcfile" 2030 + srcfile="$arg" 2031 + ;; 2032 + esac # case $arg 2033 + ;; 2034 + esac # case $arg_mode 2035 + 2036 + # Aesthetically quote the previous argument. 2037 + func_append_quoted base_compile "$lastarg" 2038 + done # for arg 2039 + 2040 + case $arg_mode in 2041 + arg) 2042 + func_fatal_error "you must specify an argument for -Xcompile" 2043 + ;; 2044 + target) 2045 + func_fatal_error "you must specify a target with \`-o'" 2046 + ;; 2047 + *) 2048 + # Get the name of the library object. 2049 + test -z "$libobj" && { 2050 + func_basename "$srcfile" 2051 + libobj="$func_basename_result" 2052 + } 2053 + ;; 2054 + esac 2055 + 2056 + # Recognize several different file suffixes. 2057 + # If the user specifies -o file.o, it is replaced with file.lo 2058 + case $libobj in 2059 + *.[cCFSifmso] | \ 2060 + *.ada | *.adb | *.ads | *.asm | \ 2061 + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ 2062 + *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) 2063 + func_xform "$libobj" 2064 + libobj=$func_xform_result 2065 + ;; 2066 + esac 2067 + 2068 + case $libobj in 2069 + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; 2070 + *) 2071 + func_fatal_error "cannot determine name of library object from \`$libobj'" 2072 + ;; 2073 + esac 2074 + 2075 + func_infer_tag $base_compile 2076 + 2077 + for arg in $later; do 2078 + case $arg in 2079 + -shared) 2080 + test "$build_libtool_libs" != yes && \ 2081 + func_fatal_configuration "can not build a shared library" 2082 + build_old_libs=no 2083 + continue 2084 + ;; 2085 + 2086 + -static) 2087 + build_libtool_libs=no 2088 + build_old_libs=yes 2089 + continue 2090 + ;; 2091 + 2092 + -prefer-pic) 2093 + pic_mode=yes 2094 + continue 2095 + ;; 2096 + 2097 + -prefer-non-pic) 2098 + pic_mode=no 2099 + continue 2100 + ;; 2101 + esac 2102 + done 2103 + 2104 + func_quote_for_eval "$libobj" 2105 + test "X$libobj" != "X$func_quote_for_eval_result" \ 2106 + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ 2107 + && func_warning "libobj name \`$libobj' may not contain shell special characters." 2108 + func_dirname_and_basename "$obj" "/" "" 2109 + objname="$func_basename_result" 2110 + xdir="$func_dirname_result" 2111 + lobj=${xdir}$objdir/$objname 2112 + 2113 + test -z "$base_compile" && \ 2114 + func_fatal_help "you must specify a compilation command" 2115 + 2116 + # Delete any leftover library objects. 2117 + if test "$build_old_libs" = yes; then 2118 + removelist="$obj $lobj $libobj ${libobj}T" 2119 + else 2120 + removelist="$lobj $libobj ${libobj}T" 2121 + fi 2122 + 2123 + # On Cygwin there's no "real" PIC flag so we must build both object types 2124 + case $host_os in 2125 + cygwin* | mingw* | pw32* | os2* | cegcc*) 2126 + pic_mode=default 2127 + ;; 2128 + esac 2129 + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 2130 + # non-PIC code in shared libraries is not supported 2131 + pic_mode=default 2132 + fi 2133 + 2134 + # Calculate the filename of the output object if compiler does 2135 + # not support -o with -c 2136 + if test "$compiler_c_o" = no; then 2137 + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} 2138 + lockfile="$output_obj.lock" 2139 + else 2140 + output_obj= 2141 + need_locks=no 2142 + lockfile= 2143 + fi 2144 + 2145 + # Lock this critical section if it is needed 2146 + # We use this script file to make the link, it avoids creating a new file 2147 + if test "$need_locks" = yes; then 2148 + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do 2149 + func_echo "Waiting for $lockfile to be removed" 2150 + sleep 2 2151 + done 2152 + elif test "$need_locks" = warn; then 2153 + if test -f "$lockfile"; then 2154 + $ECHO "\ 2155 +*** ERROR, $lockfile exists and contains: 2156 +`cat $lockfile 2>/dev/null` 2157 + 2158 +This indicates that another process is trying to use the same 2159 +temporary object file, and libtool could not work around it because 2160 +your compiler does not support \`-c' and \`-o' together. If you 2161 +repeat this compilation, it may succeed, by chance, but you had better 2162 +avoid parallel builds (make -j) in this platform, or get a better 2163 +compiler." 2164 + 2165 + $opt_dry_run || $RM $removelist 2166 + exit $EXIT_FAILURE 2167 + fi 2168 + func_append removelist " $output_obj" 2169 + $ECHO "$srcfile" > "$lockfile" 2170 + fi 2171 + 2172 + $opt_dry_run || $RM $removelist 2173 + func_append removelist " $lockfile" 2174 + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 2175 + 2176 + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 2177 + srcfile=$func_to_tool_file_result 2178 + func_quote_for_eval "$srcfile" 2179 + qsrcfile=$func_quote_for_eval_result 2180 + 2181 + # Only build a PIC object if we are building libtool libraries. 2182 + if test "$build_libtool_libs" = yes; then 2183 + # Without this assignment, base_compile gets emptied. 2184 + fbsd_hideous_sh_bug=$base_compile 2185 + 2186 + if test "$pic_mode" != no; then 2187 + command="$base_compile $qsrcfile $pic_flag" 2188 + else 2189 + # Don't build PIC code 2190 + command="$base_compile $qsrcfile" 2191 + fi 2192 + 2193 + func_mkdir_p "$xdir$objdir" 2194 + 2195 + if test -z "$output_obj"; then 2196 + # Place PIC objects in $objdir 2197 + func_append command " -o $lobj" 2198 + fi 2199 + 2200 + func_show_eval_locale "$command" \ 2201 + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' 2202 + 2203 + if test "$need_locks" = warn && 2204 + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 2205 + $ECHO "\ 2206 +*** ERROR, $lockfile contains: 2207 +`cat $lockfile 2>/dev/null` 2208 + 2209 +but it should contain: 2210 +$srcfile 2211 + 2212 +This indicates that another process is trying to use the same 2213 +temporary object file, and libtool could not work around it because 2214 +your compiler does not support \`-c' and \`-o' together. If you 2215 +repeat this compilation, it may succeed, by chance, but you had better 2216 +avoid parallel builds (make -j) in this platform, or get a better 2217 +compiler." 2218 + 2219 + $opt_dry_run || $RM $removelist 2220 + exit $EXIT_FAILURE 2221 + fi 2222 + 2223 + # Just move the object if needed, then go on to compile the next one 2224 + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 2225 + func_show_eval '$MV "$output_obj" "$lobj"' \ 2226 + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' 2227 + fi 2228 + 2229 + # Allow error messages only from the first compilation. 2230 + if test "$suppress_opt" = yes; then 2231 + suppress_output=' >/dev/null 2>&1' 2232 + fi 2233 + fi 2234 + 2235 + # Only build a position-dependent object if we build old libraries. 2236 + if test "$build_old_libs" = yes; then 2237 + if test "$pic_mode" != yes; then 2238 + # Don't build PIC code 2239 + command="$base_compile $qsrcfile$pie_flag" 2240 + else 2241 + command="$base_compile $qsrcfile $pic_flag" 2242 + fi 2243 + if test "$compiler_c_o" = yes; then 2244 + func_append command " -o $obj" 2245 + fi 2246 + 2247 + # Suppress compiler output if we already did a PIC compilation. 2248 + func_append command "$suppress_output" 2249 + func_show_eval_locale "$command" \ 2250 + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 2251 + 2252 + if test "$need_locks" = warn && 2253 + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 2254 + $ECHO "\ 2255 +*** ERROR, $lockfile contains: 2256 +`cat $lockfile 2>/dev/null` 2257 + 2258 +but it should contain: 2259 +$srcfile 2260 + 2261 +This indicates that another process is trying to use the same 2262 +temporary object file, and libtool could not work around it because 2263 +your compiler does not support \`-c' and \`-o' together. If you 2264 +repeat this compilation, it may succeed, by chance, but you had better 2265 +avoid parallel builds (make -j) in this platform, or get a better 2266 +compiler." 2267 + 2268 + $opt_dry_run || $RM $removelist 2269 + exit $EXIT_FAILURE 2270 + fi 2271 + 2272 + # Just move the object if needed 2273 + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 2274 + func_show_eval '$MV "$output_obj" "$obj"' \ 2275 + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' 2276 + fi 2277 + fi 2278 + 2279 + $opt_dry_run || { 2280 + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" 2281 + 2282 + # Unlock the critical section if it was locked 2283 + if test "$need_locks" != no; then 2284 + removelist=$lockfile 2285 + $RM "$lockfile" 2286 + fi 2287 + } 2288 + 2289 + exit $EXIT_SUCCESS 2290 +} 2291 + 2292 +$opt_help || { 2293 + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} 2294 +} 2295 + 2296 +func_mode_help () 2297 +{ 2298 + # We need to display help for each of the modes. 2299 + case $opt_mode in 2300 + "") 2301 + # Generic help is extracted from the usage comments 2302 + # at the start of this file. 2303 + func_help 2304 + ;; 2305 + 2306 + clean) 2307 + $ECHO \ 2308 +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 2309 + 2310 +Remove files from the build directory. 2311 + 2312 +RM is the name of the program to use to delete files associated with each FILE 2313 +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 2314 +to RM. 2315 + 2316 +If FILE is a libtool library, object or program, all the files associated 2317 +with it are deleted. Otherwise, only FILE itself is deleted using RM." 2318 + ;; 2319 + 2320 + compile) 2321 + $ECHO \ 2322 +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 2323 + 2324 +Compile a source file into a libtool library object. 2325 + 2326 +This mode accepts the following additional options: 2327 + 2328 + -o OUTPUT-FILE set the output file name to OUTPUT-FILE 2329 + -no-suppress do not suppress compiler output for multiple passes 2330 + -prefer-pic try to build PIC objects only 2331 + -prefer-non-pic try to build non-PIC objects only 2332 + -shared do not build a \`.o' file suitable for static linking 2333 + -static only build a \`.o' file suitable for static linking 2334 + -Wc,FLAG pass FLAG directly to the compiler 2335 + 2336 +COMPILE-COMMAND is a command to be used in creating a \`standard' object file 2337 +from the given SOURCEFILE. 2338 + 2339 +The output file name is determined by removing the directory component from 2340 +SOURCEFILE, then substituting the C source code suffix \`.c' with the 2341 +library object suffix, \`.lo'." 2342 + ;; 2343 + 2344 + execute) 2345 + $ECHO \ 2346 +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... 2347 + 2348 +Automatically set library path, then run a program. 2349 + 2350 +This mode accepts the following additional options: 2351 + 2352 + -dlopen FILE add the directory containing FILE to the library path 2353 + 2354 +This mode sets the library path environment variable according to \`-dlopen' 2355 +flags. 2356 + 2357 +If any of the ARGS are libtool executable wrappers, then they are translated 2358 +into their corresponding uninstalled binary, and any of their required library 2359 +directories are added to the library path. 2360 + 2361 +Then, COMMAND is executed, with ARGS as arguments." 2362 + ;; 2363 + 2364 + finish) 2365 + $ECHO \ 2366 +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... 2367 + 2368 +Complete the installation of libtool libraries. 2369 + 2370 +Each LIBDIR is a directory that contains libtool libraries. 2371 + 2372 +The commands that this mode executes may require superuser privileges. Use 2373 +the \`--dry-run' option if you just want to see what would be executed." 2374 + ;; 2375 + 2376 + install) 2377 + $ECHO \ 2378 +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... 2379 + 2380 +Install executables or libraries. 2381 + 2382 +INSTALL-COMMAND is the installation command. The first component should be 2383 +either the \`install' or \`cp' program. 2384 + 2385 +The following components of INSTALL-COMMAND are treated specially: 2386 + 2387 + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation 2388 + 2389 +The rest of the components are interpreted as arguments to that command (only 2390 +BSD-compatible install options are recognized)." 2391 + ;; 2392 + 2393 + link) 2394 + $ECHO \ 2395 +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... 2396 + 2397 +Link object files or libraries together to form another library, or to 2398 +create an executable program. 2399 + 2400 +LINK-COMMAND is a command using the C compiler that you would use to create 2401 +a program from several object files. 2402 + 2403 +The following components of LINK-COMMAND are treated specially: 2404 + 2405 + -all-static do not do any dynamic linking at all 2406 + -avoid-version do not add a version suffix if possible 2407 + -bindir BINDIR specify path to binaries directory (for systems where 2408 + libraries must be found in the PATH setting at runtime) 2409 + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 2410 + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 2411 + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 2412 + -export-symbols SYMFILE 2413 + try to export only the symbols listed in SYMFILE 2414 + -export-symbols-regex REGEX 2415 + try to export only the symbols matching REGEX 2416 + -LLIBDIR search LIBDIR for required installed libraries 2417 + -lNAME OUTPUT-FILE requires the installed library libNAME 2418 + -module build a library that can dlopened 2419 + -no-fast-install disable the fast-install mode 2420 + -no-install link a not-installable executable 2421 + -no-undefined declare that a library does not refer to external symbols 2422 + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 2423 + -objectlist FILE Use a list of object files found in FILE to specify objects 2424 + -precious-files-regex REGEX 2425 + don't remove output files matching REGEX 2426 + -release RELEASE specify package release information 2427 + -rpath LIBDIR the created library will eventually be installed in LIBDIR 2428 + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 2429 + -shared only do dynamic linking of libtool libraries 2430 + -shrext SUFFIX override the standard shared library file extension 2431 + -static do not do any dynamic linking of uninstalled libtool libraries 2432 + -static-libtool-libs 2433 + do not do any dynamic linking of libtool libraries 2434 + -version-info CURRENT[:REVISION[:AGE]] 2435 + specify library version info [each variable defaults to 0] 2436 + -weak LIBNAME declare that the target provides the LIBNAME interface 2437 + -Wc,FLAG 2438 + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler 2439 + -Wl,FLAG 2440 + -Xlinker FLAG pass linker-specific FLAG directly to the linker 2441 + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) 2442 + 2443 +All other options (arguments beginning with \`-') are ignored. 2444 + 2445 +Every other argument is treated as a filename. Files ending in \`.la' are 2446 +treated as uninstalled libtool libraries, other files are standard or library 2447 +object files. 2448 + 2449 +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, 2450 +only library objects (\`.lo' files) may be specified, and \`-rpath' is 2451 +required, except when creating a convenience library. 2452 + 2453 +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 2454 +using \`ar' and \`ranlib', or on Windows using \`lib'. 2455 + 2456 +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 2457 +is created, otherwise an executable program is created." 2458 + ;; 2459 + 2460 + uninstall) 2461 + $ECHO \ 2462 +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 2463 + 2464 +Remove libraries from an installation directory. 2465 + 2466 +RM is the name of the program to use to delete files associated with each FILE 2467 +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 2468 +to RM. 2469 + 2470 +If FILE is a libtool library, all the files associated with it are deleted. 2471 +Otherwise, only FILE itself is deleted using RM." 2472 + ;; 2473 + 2474 + *) 2475 + func_fatal_help "invalid operation mode \`$opt_mode'" 2476 + ;; 2477 + esac 2478 + 2479 + echo 2480 + $ECHO "Try \`$progname --help' for more information about other modes." 2481 +} 2482 + 2483 +# Now that we've collected a possible --mode arg, show help if necessary 2484 +if $opt_help; then 2485 + if test "$opt_help" = :; then 2486 + func_mode_help 2487 + else 2488 + { 2489 + func_help noexit 2490 + for opt_mode in compile link execute install finish uninstall clean; do 2491 + func_mode_help 2492 + done 2493 + } | sed -n '1p; 2,$s/^Usage:/ or: /p' 2494 + { 2495 + func_help noexit 2496 + for opt_mode in compile link execute install finish uninstall clean; do 2497 + echo 2498 + func_mode_help 2499 + done 2500 + } | 2501 + sed '1d 2502 + /^When reporting/,/^Report/{ 2503 + H 2504 + d 2505 + } 2506 + $x 2507 + /information about other modes/d 2508 + /more detailed .*MODE/d 2509 + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' 2510 + fi 2511 + exit $? 2512 +fi 2513 + 2514 + 2515 +# func_mode_execute arg... 2516 +func_mode_execute () 2517 +{ 2518 + $opt_debug 2519 + # The first argument is the command name. 2520 + cmd="$nonopt" 2521 + test -z "$cmd" && \ 2522 + func_fatal_help "you must specify a COMMAND" 2523 + 2524 + # Handle -dlopen flags immediately. 2525 + for file in $opt_dlopen; do 2526 + test -f "$file" \ 2527 + || func_fatal_help "\`$file' is not a file" 2528 + 2529 + dir= 2530 + case $file in 2531 + *.la) 2532 + func_resolve_sysroot "$file" 2533 + file=$func_resolve_sysroot_result 2534 + 2535 + # Check to see that this really is a libtool archive. 2536 + func_lalib_unsafe_p "$file" \ 2537 + || func_fatal_help "\`$lib' is not a valid libtool archive" 2538 + 2539 + # Read the libtool library. 2540 + dlname= 2541 + library_names= 2542 + func_source "$file" 2543 + 2544 + # Skip this library if it cannot be dlopened. 2545 + if test -z "$dlname"; then 2546 + # Warn if it was a shared library. 2547 + test -n "$library_names" && \ 2548 + func_warning "\`$file' was not linked with \`-export-dynamic'" 2549 + continue 2550 + fi 2551 + 2552 + func_dirname "$file" "" "." 2553 + dir="$func_dirname_result" 2554 + 2555 + if test -f "$dir/$objdir/$dlname"; then 2556 + func_append dir "/$objdir" 2557 + else 2558 + if test ! -f "$dir/$dlname"; then 2559 + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 2560 + fi 2561 + fi 2562 + ;; 2563 + 2564 + *.lo) 2565 + # Just add the directory containing the .lo file. 2566 + func_dirname "$file" "" "." 2567 + dir="$func_dirname_result" 2568 + ;; 2569 + 2570 + *) 2571 + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" 2572 + continue 2573 + ;; 2574 + esac 2575 + 2576 + # Get the absolute pathname. 2577 + absdir=`cd "$dir" && pwd` 2578 + test -n "$absdir" && dir="$absdir" 2579 + 2580 + # Now add the directory to shlibpath_var. 2581 + if eval "test -z \"\$$shlibpath_var\""; then 2582 + eval "$shlibpath_var=\"\$dir\"" 2583 + else 2584 + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 2585 + fi 2586 + done 2587 + 2588 + # This variable tells wrapper scripts just to set shlibpath_var 2589 + # rather than running their programs. 2590 + libtool_execute_magic="$magic" 2591 + 2592 + # Check if any of the arguments is a wrapper script. 2593 + args= 2594 + for file 2595 + do 2596 + case $file in 2597 + -* | *.la | *.lo ) ;; 2598 + *) 2599 + # Do a test to see if this is really a libtool program. 2600 + if func_ltwrapper_script_p "$file"; then 2601 + func_source "$file" 2602 + # Transform arg to wrapped name. 2603 + file="$progdir/$program" 2604 + elif func_ltwrapper_executable_p "$file"; then 2605 + func_ltwrapper_scriptname "$file" 2606 + func_source "$func_ltwrapper_scriptname_result" 2607 + # Transform arg to wrapped name. 2608 + file="$progdir/$program" 2609 + fi 2610 + ;; 2611 + esac 2612 + # Quote arguments (to preserve shell metacharacters). 2613 + func_append_quoted args "$file" 2614 + done 2615 + 2616 + if test "X$opt_dry_run" = Xfalse; then 2617 + if test -n "$shlibpath_var"; then 2618 + # Export the shlibpath_var. 2619 + eval "export $shlibpath_var" 2620 + fi 2621 + 2622 + # Restore saved environment variables 2623 + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 2624 + do 2625 + eval "if test \"\${save_$lt_var+set}\" = set; then 2626 + $lt_var=\$save_$lt_var; export $lt_var 2627 + else 2628 + $lt_unset $lt_var 2629 + fi" 2630 + done 2631 + 2632 + # Now prepare to actually exec the command. 2633 + exec_cmd="\$cmd$args" 2634 + else 2635 + # Display what would be done. 2636 + if test -n "$shlibpath_var"; then 2637 + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" 2638 + echo "export $shlibpath_var" 2639 + fi 2640 + $ECHO "$cmd$args" 2641 + exit $EXIT_SUCCESS 2642 + fi 2643 +} 2644 + 2645 +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} 2646 + 2647 + 2648 +# func_mode_finish arg... 2649 +func_mode_finish () 2650 +{ 2651 + $opt_debug 2652 + libs= 2653 + libdirs= 2654 + admincmds= 2655 + 2656 + for opt in "$nonopt" ${1+"$@"} 2657 + do 2658 + if test -d "$opt"; then 2659 + func_append libdirs " $opt" 2660 + 2661 + elif test -f "$opt"; then 2662 + if func_lalib_unsafe_p "$opt"; then 2663 + func_append libs " $opt" 2664 + else 2665 + func_warning "\`$opt' is not a valid libtool archive" 2666 + fi 2667 + 2668 + else 2669 + func_fatal_error "invalid argument \`$opt'" 2670 + fi 2671 + done 2672 + 2673 + if test -n "$libs"; then 2674 + if test -n "$lt_sysroot"; then 2675 + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` 2676 + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" 2677 + else 2678 + sysroot_cmd= 2679 + fi 2680 + 2681 + # Remove sysroot references 2682 + if $opt_dry_run; then 2683 + for lib in $libs; do 2684 + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" 2685 + done 2686 + else 2687 + tmpdir=`func_mktempdir` 2688 + for lib in $libs; do 2689 + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ 2690 + > $tmpdir/tmp-la 2691 + mv -f $tmpdir/tmp-la $lib 2692 + done 2693 + ${RM}r "$tmpdir" 2694 + fi 2695 + fi 2696 + 2697 + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 2698 + for libdir in $libdirs; do 2699 + if test -n "$finish_cmds"; then 2700 + # Do each command in the finish commands. 2701 + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds 2702 +'"$cmd"'"' 2703 + fi 2704 + if test -n "$finish_eval"; then 2705 + # Do the single finish_eval. 2706 + eval cmds=\"$finish_eval\" 2707 + $opt_dry_run || eval "$cmds" || func_append admincmds " 2708 + $cmds" 2709 + fi 2710 + done 2711 + fi 2712 + 2713 + # Exit here if they wanted silent mode. 2714 + $opt_silent && exit $EXIT_SUCCESS 2715 + 2716 + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 2717 + echo "----------------------------------------------------------------------" 2718 + echo "Libraries have been installed in:" 2719 + for libdir in $libdirs; do 2720 + $ECHO " $libdir" 2721 + done 2722 + echo 2723 + echo "If you ever happen to want to link against installed libraries" 2724 + echo "in a given directory, LIBDIR, you must either use libtool, and" 2725 + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 2726 + echo "flag during linking and do at least one of the following:" 2727 + if test -n "$shlibpath_var"; then 2728 + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 2729 + echo " during execution" 2730 + fi 2731 + if test -n "$runpath_var"; then 2732 + echo " - add LIBDIR to the \`$runpath_var' environment variable" 2733 + echo " during linking" 2734 + fi 2735 + if test -n "$hardcode_libdir_flag_spec"; then 2736 + libdir=LIBDIR 2737 + eval flag=\"$hardcode_libdir_flag_spec\" 2738 + 2739 + $ECHO " - use the \`$flag' linker flag" 2740 + fi 2741 + if test -n "$admincmds"; then 2742 + $ECHO " - have your system administrator run these commands:$admincmds" 2743 + fi 2744 + if test -f /etc/ld.so.conf; then 2745 + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 2746 + fi 2747 + echo 2748 + 2749 + echo "See any operating system documentation about shared libraries for" 2750 + case $host in 2751 + solaris2.[6789]|solaris2.1[0-9]) 2752 + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" 2753 + echo "pages." 2754 + ;; 2755 + *) 2756 + echo "more information, such as the ld(1) and ld.so(8) manual pages." 2757 + ;; 2758 + esac 2759 + echo "----------------------------------------------------------------------" 2760 + fi 2761 + exit $EXIT_SUCCESS 2762 +} 2763 + 2764 +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} 2765 + 2766 + 2767 +# func_mode_install arg... 2768 +func_mode_install () 2769 +{ 2770 + $opt_debug 2771 + # There may be an optional sh(1) argument at the beginning of 2772 + # install_prog (especially on Windows NT). 2773 + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 2774 + # Allow the use of GNU shtool's install command. 2775 + case $nonopt in *shtool*) :;; *) false;; esac; then 2776 + # Aesthetically quote it. 2777 + func_quote_for_eval "$nonopt" 2778 + install_prog="$func_quote_for_eval_result " 2779 + arg=$1 2780 + shift 2781 + else 2782 + install_prog= 2783 + arg=$nonopt 2784 + fi 2785 + 2786 + # The real first argument should be the name of the installation program. 2787 + # Aesthetically quote it. 2788 + func_quote_for_eval "$arg" 2789 + func_append install_prog "$func_quote_for_eval_result" 2790 + install_shared_prog=$install_prog 2791 + case " $install_prog " in 2792 + *[\\\ /]cp\ *) install_cp=: ;; 2793 + *) install_cp=false ;; 2794 + esac 2795 + 2796 + # We need to accept at least all the BSD install flags. 2797 + dest= 2798 + files= 2799 + opts= 2800 + prev= 2801 + install_type= 2802 + isdir=no 2803 + stripme= 2804 + no_mode=: 2805 + for arg 2806 + do 2807 + arg2= 2808 + if test -n "$dest"; then 2809 + func_append files " $dest" 2810 + dest=$arg 2811 + continue 2812 + fi 2813 + 2814 + case $arg in 2815 + -d) isdir=yes ;; 2816 + -f) 2817 + if $install_cp; then :; else 2818 + prev=$arg 2819 + fi 2820 + ;; 2821 + -g | -m | -o) 2822 + prev=$arg 2823 + ;; 2824 + -s) 2825 + stripme=" -s" 2826 + continue 2827 + ;; 2828 + -*) 2829 + ;; 2830 + *) 2831 + # If the previous option needed an argument, then skip it. 2832 + if test -n "$prev"; then 2833 + if test "x$prev" = x-m && test -n "$install_override_mode"; then 2834 + arg2=$install_override_mode 2835 + no_mode=false 2836 + fi 2837 + prev= 2838 + else 2839 + dest=$arg 2840 + continue 2841 + fi 2842 + ;; 2843 + esac 2844 + 2845 + # Aesthetically quote the argument. 2846 + func_quote_for_eval "$arg" 2847 + func_append install_prog " $func_quote_for_eval_result" 2848 + if test -n "$arg2"; then 2849 + func_quote_for_eval "$arg2" 2850 + fi 2851 + func_append install_shared_prog " $func_quote_for_eval_result" 2852 + done 2853 + 2854 + test -z "$install_prog" && \ 2855 + func_fatal_help "you must specify an install program" 2856 + 2857 + test -n "$prev" && \ 2858 + func_fatal_help "the \`$prev' option requires an argument" 2859 + 2860 + if test -n "$install_override_mode" && $no_mode; then 2861 + if $install_cp; then :; else 2862 + func_quote_for_eval "$install_override_mode" 2863 + func_append install_shared_prog " -m $func_quote_for_eval_result" 2864 + fi 2865 + fi 2866 + 2867 + if test -z "$files"; then 2868 + if test -z "$dest"; then 2869 + func_fatal_help "no file or destination specified" 2870 + else 2871 + func_fatal_help "you must specify a destination" 2872 + fi 2873 + fi 2874 + 2875 + # Strip any trailing slash from the destination. 2876 + func_stripname '' '/' "$dest" 2877 + dest=$func_stripname_result 2878 + 2879 + # Check to see that the destination is a directory. 2880 + test -d "$dest" && isdir=yes 2881 + if test "$isdir" = yes; then 2882 + destdir="$dest" 2883 + destname= 2884 + else 2885 + func_dirname_and_basename "$dest" "" "." 2886 + destdir="$func_dirname_result" 2887 + destname="$func_basename_result" 2888 + 2889 + # Not a directory, so check to see that there is only one file specified. 2890 + set dummy $files; shift 2891 + test "$#" -gt 1 && \ 2892 + func_fatal_help "\`$dest' is not a directory" 2893 + fi 2894 + case $destdir in 2895 + [\\/]* | [A-Za-z]:[\\/]*) ;; 2896 + *) 2897 + for file in $files; do 2898 + case $file in 2899 + *.lo) ;; 2900 + *) 2901 + func_fatal_help "\`$destdir' must be an absolute directory name" 2902 + ;; 2903 + esac 2904 + done 2905 + ;; 2906 + esac 2907 + 2908 + # This variable tells wrapper scripts just to set variables rather 2909 + # than running their programs. 2910 + libtool_install_magic="$magic" 2911 + 2912 + staticlibs= 2913 + future_libdirs= 2914 + current_libdirs= 2915 + for file in $files; do 2916 + 2917 + # Do each installation. 2918 + case $file in 2919 + *.$libext) 2920 + # Do the static libraries later. 2921 + func_append staticlibs " $file" 2922 + ;; 2923 + 2924 + *.la) 2925 + func_resolve_sysroot "$file" 2926 + file=$func_resolve_sysroot_result 2927 + 2928 + # Check to see that this really is a libtool archive. 2929 + func_lalib_unsafe_p "$file" \ 2930 + || func_fatal_help "\`$file' is not a valid libtool archive" 2931 + 2932 + library_names= 2933 + old_library= 2934 + relink_command= 2935 + func_source "$file" 2936 + 2937 + # Add the libdir to current_libdirs if it is the destination. 2938 + if test "X$destdir" = "X$libdir"; then 2939 + case "$current_libdirs " in 2940 + *" $libdir "*) ;; 2941 + *) func_append current_libdirs " $libdir" ;; 2942 + esac 2943 + else 2944 + # Note the libdir as a future libdir. 2945 + case "$future_libdirs " in 2946 + *" $libdir "*) ;; 2947 + *) func_append future_libdirs " $libdir" ;; 2948 + esac 2949 + fi 2950 + 2951 + func_dirname "$file" "/" "" 2952 + dir="$func_dirname_result" 2953 + func_append dir "$objdir" 2954 + 2955 + if test -n "$relink_command"; then 2956 + # Determine the prefix the user has applied to our future dir. 2957 + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` 2958 + 2959 + # Don't allow the user to place us outside of our expected 2960 + # location b/c this prevents finding dependent libraries that 2961 + # are installed to the same prefix. 2962 + # At present, this check doesn't affect windows .dll's that 2963 + # are installed into $libdir/../bin (currently, that works fine) 2964 + # but it's something to keep an eye on. 2965 + test "$inst_prefix_dir" = "$destdir" && \ 2966 + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" 2967 + 2968 + if test -n "$inst_prefix_dir"; then 2969 + # Stick the inst_prefix_dir data into the link command. 2970 + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 2971 + else 2972 + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` 2973 + fi 2974 + 2975 + func_warning "relinking \`$file'" 2976 + func_show_eval "$relink_command" \ 2977 + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' 2978 + fi 2979 + 2980 + # See the names of the shared library. 2981 + set dummy $library_names; shift 2982 + if test -n "$1"; then 2983 + realname="$1" 2984 + shift 2985 + 2986 + srcname="$realname" 2987 + test -n "$relink_command" && srcname="$realname"T 2988 + 2989 + # Install the shared library and build the symlinks. 2990 + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 2991 + 'exit $?' 2992 + tstripme="$stripme" 2993 + case $host_os in 2994 + cygwin* | mingw* | pw32* | cegcc*) 2995 + case $realname in 2996 + *.dll.a) 2997 + tstripme="" 2998 + ;; 2999 + esac 3000 + ;; 3001 + esac 3002 + if test -n "$tstripme" && test -n "$striplib"; then 3003 + func_show_eval "$striplib $destdir/$realname" 'exit $?' 3004 + fi 3005 + 3006 + if test "$#" -gt 0; then 3007 + # Delete the old symlinks, and create new ones. 3008 + # Try `ln -sf' first, because the `ln' binary might depend on 3009 + # the symlink we replace! Solaris /bin/ln does not understand -f, 3010 + # so we also need to try rm && ln -s. 3011 + for linkname 3012 + do 3013 + test "$linkname" != "$realname" \ 3014 + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" 3015 + done 3016 + fi 3017 + 3018 + # Do each command in the postinstall commands. 3019 + lib="$destdir/$realname" 3020 + func_execute_cmds "$postinstall_cmds" 'exit $?' 3021 + fi 3022 + 3023 + # Install the pseudo-library for information purposes. 3024 + func_basename "$file" 3025 + name="$func_basename_result" 3026 + instname="$dir/$name"i 3027 + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' 3028 + 3029 + # Maybe install the static library, too. 3030 + test -n "$old_library" && func_append staticlibs " $dir/$old_library" 3031 + ;; 3032 + 3033 + *.lo) 3034 + # Install (i.e. copy) a libtool object. 3035 + 3036 + # Figure out destination file name, if it wasn't already specified. 3037 + if test -n "$destname"; then 3038 + destfile="$destdir/$destname" 3039 + else 3040 + func_basename "$file" 3041 + destfile="$func_basename_result" 3042 + destfile="$destdir/$destfile" 3043 + fi 3044 + 3045 + # Deduce the name of the destination old-style object file. 3046 + case $destfile in 3047 + *.lo) 3048 + func_lo2o "$destfile" 3049 + staticdest=$func_lo2o_result 3050 + ;; 3051 + *.$objext) 3052 + staticdest="$destfile" 3053 + destfile= 3054 + ;; 3055 + *) 3056 + func_fatal_help "cannot copy a libtool object to \`$destfile'" 3057 + ;; 3058 + esac 3059 + 3060 + # Install the libtool object if requested. 3061 + test -n "$destfile" && \ 3062 + func_show_eval "$install_prog $file $destfile" 'exit $?' 3063 + 3064 + # Install the old object if enabled. 3065 + if test "$build_old_libs" = yes; then 3066 + # Deduce the name of the old-style object file. 3067 + func_lo2o "$file" 3068 + staticobj=$func_lo2o_result 3069 + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' 3070 + fi 3071 + exit $EXIT_SUCCESS 3072 + ;; 3073 + 3074 + *) 3075 + # Figure out destination file name, if it wasn't already specified. 3076 + if test -n "$destname"; then 3077 + destfile="$destdir/$destname" 3078 + else 3079 + func_basename "$file" 3080 + destfile="$func_basename_result" 3081 + destfile="$destdir/$destfile" 3082 + fi 3083 + 3084 + # If the file is missing, and there is a .exe on the end, strip it 3085 + # because it is most likely a libtool script we actually want to 3086 + # install 3087 + stripped_ext="" 3088 + case $file in 3089 + *.exe) 3090 + if test ! -f "$file"; then 3091 + func_stripname '' '.exe' "$file" 3092 + file=$func_stripname_result 3093 + stripped_ext=".exe" 3094 + fi 3095 + ;; 3096 + esac 3097 + 3098 + # Do a test to see if this is really a libtool program. 3099 + case $host in 3100 + *cygwin* | *mingw*) 3101 + if func_ltwrapper_executable_p "$file"; then 3102 + func_ltwrapper_scriptname "$file" 3103 + wrapper=$func_ltwrapper_scriptname_result 3104 + else 3105 + func_stripname '' '.exe' "$file" 3106 + wrapper=$func_stripname_result 3107 + fi 3108 + ;; 3109 + *) 3110 + wrapper=$file 3111 + ;; 3112 + esac 3113 + if func_ltwrapper_script_p "$wrapper"; then 3114 + notinst_deplibs= 3115 + relink_command= 3116 + 3117 + func_source "$wrapper" 3118 + 3119 + # Check the variables that should have been set. 3120 + test -z "$generated_by_libtool_version" && \ 3121 + func_fatal_error "invalid libtool wrapper script \`$wrapper'" 3122 + 3123 + finalize=yes 3124 + for lib in $notinst_deplibs; do 3125 + # Check to see that each library is installed. 3126 + libdir= 3127 + if test -f "$lib"; then 3128 + func_source "$lib" 3129 + fi 3130 + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test 3131 + if test -n "$libdir" && test ! -f "$libfile"; then 3132 + func_warning "\`$lib' has not been installed in \`$libdir'" 3133 + finalize=no 3134 + fi 3135 + done 3136 + 3137 + relink_command= 3138 + func_source "$wrapper" 3139 + 3140 + outputname= 3141 + if test "$fast_install" = no && test -n "$relink_command"; then 3142 + $opt_dry_run || { 3143 + if test "$finalize" = yes; then 3144 + tmpdir=`func_mktempdir` 3145 + func_basename "$file$stripped_ext" 3146 + file="$func_basename_result" 3147 + outputname="$tmpdir/$file" 3148 + # Replace the output file specification. 3149 + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` 3150 + 3151 + $opt_silent || { 3152 + func_quote_for_expand "$relink_command" 3153 + eval "func_echo $func_quote_for_expand_result" 3154 + } 3155 + if eval "$relink_command"; then : 3156 + else 3157 + func_error "error: relink \`$file' with the above command before installing it" 3158 + $opt_dry_run || ${RM}r "$tmpdir" 3159 + continue 3160 + fi 3161 + file="$outputname" 3162 + else 3163 + func_warning "cannot relink \`$file'" 3164 + fi 3165 + } 3166 + else 3167 + # Install the binary that we compiled earlier. 3168 + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` 3169 + fi 3170 + fi 3171 + 3172 + # remove .exe since cygwin /usr/bin/install will append another 3173 + # one anyway 3174 + case $install_prog,$host in 3175 + */usr/bin/install*,*cygwin*) 3176 + case $file:$destfile in 3177 + *.exe:*.exe) 3178 + # this is ok 3179 + ;; 3180 + *.exe:*) 3181 + destfile=$destfile.exe 3182 + ;; 3183 + *:*.exe) 3184 + func_stripname '' '.exe' "$destfile" 3185 + destfile=$func_stripname_result 3186 + ;; 3187 + esac 3188 + ;; 3189 + esac 3190 + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' 3191 + $opt_dry_run || if test -n "$outputname"; then 3192 + ${RM}r "$tmpdir" 3193 + fi 3194 + ;; 3195 + esac 3196 + done 3197 + 3198 + for file in $staticlibs; do 3199 + func_basename "$file" 3200 + name="$func_basename_result" 3201 + 3202 + # Set up the ranlib parameters. 3203 + oldlib="$destdir/$name" 3204 + 3205 + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' 3206 + 3207 + if test -n "$stripme" && test -n "$old_striplib"; then 3208 + func_show_eval "$old_striplib $oldlib" 'exit $?' 3209 + fi 3210 + 3211 + # Do each command in the postinstall commands. 3212 + func_execute_cmds "$old_postinstall_cmds" 'exit $?' 3213 + done 3214 + 3215 + test -n "$future_libdirs" && \ 3216 + func_warning "remember to run \`$progname --finish$future_libdirs'" 3217 + 3218 + if test -n "$current_libdirs"; then 3219 + # Maybe just do a dry run. 3220 + $opt_dry_run && current_libdirs=" -n$current_libdirs" 3221 + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 3222 + else 3223 + exit $EXIT_SUCCESS 3224 + fi 3225 +} 3226 + 3227 +test "$opt_mode" = install && func_mode_install ${1+"$@"} 3228 + 3229 + 3230 +# func_generate_dlsyms outputname originator pic_p 3231 +# Extract symbols from dlprefiles and create ${outputname}S.o with 3232 +# a dlpreopen symbol table. 3233 +func_generate_dlsyms () 3234 +{ 3235 + $opt_debug 3236 + my_outputname="$1" 3237 + my_originator="$2" 3238 + my_pic_p="${3-no}" 3239 + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` 3240 + my_dlsyms= 3241 + 3242 + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 3243 + if test -n "$NM" && test -n "$global_symbol_pipe"; then 3244 + my_dlsyms="${my_outputname}S.c" 3245 + else 3246 + func_error "not configured to extract global symbols from dlpreopened files" 3247 + fi 3248 + fi 3249 + 3250 + if test -n "$my_dlsyms"; then 3251 + case $my_dlsyms in 3252 + "") ;; 3253 + *.c) 3254 + # Discover the nlist of each of the dlfiles. 3255 + nlist="$output_objdir/${my_outputname}.nm" 3256 + 3257 + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" 3258 + 3259 + # Parse the name list into a source file. 3260 + func_verbose "creating $output_objdir/$my_dlsyms" 3261 + 3262 + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ 3263 +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ 3264 +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ 3265 + 3266 +#ifdef __cplusplus 3267 +extern \"C\" { 3268 +#endif 3269 + 3270 +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) 3271 +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" 3272 +#endif 3273 + 3274 +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ 3275 +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) 3276 +/* DATA imports from DLLs on WIN32 con't be const, because runtime 3277 + relocations are performed -- see ld's documentation on pseudo-relocs. */ 3278 +# define LT_DLSYM_CONST 3279 +#elif defined(__osf__) 3280 +/* This system does not cope well with relocations in const data. */ 3281 +# define LT_DLSYM_CONST 3282 +#else 3283 +# define LT_DLSYM_CONST const 3284 +#endif 3285 + 3286 +/* External symbol declarations for the compiler. */\ 3287 +" 3288 + 3289 + if test "$dlself" = yes; then 3290 + func_verbose "generating symbol list for \`$output'" 3291 + 3292 + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" 3293 + 3294 + # Add our own program objects to the symbol list. 3295 + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` 3296 + for progfile in $progfiles; do 3297 + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 3298 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" 3299 + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" 3300 + done 3301 + 3302 + if test -n "$exclude_expsyms"; then 3303 + $opt_dry_run || { 3304 + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 3305 + eval '$MV "$nlist"T "$nlist"' 3306 + } 3307 + fi 3308 + 3309 + if test -n "$export_symbols_regex"; then 3310 + $opt_dry_run || { 3311 + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 3312 + eval '$MV "$nlist"T "$nlist"' 3313 + } 3314 + fi 3315 + 3316 + # Prepare the list of exported symbols 3317 + if test -z "$export_symbols"; then 3318 + export_symbols="$output_objdir/$outputname.exp" 3319 + $opt_dry_run || { 3320 + $RM $export_symbols 3321 + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 3322 + case $host in 3323 + *cygwin* | *mingw* | *cegcc* ) 3324 + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 3325 + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 3326 + ;; 3327 + esac 3328 + } 3329 + else 3330 + $opt_dry_run || { 3331 + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 3332 + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 3333 + eval '$MV "$nlist"T "$nlist"' 3334 + case $host in 3335 + *cygwin* | *mingw* | *cegcc* ) 3336 + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 3337 + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 3338 + ;; 3339 + esac 3340 + } 3341 + fi 3342 + fi 3343 + 3344 + for dlprefile in $dlprefiles; do 3345 + func_verbose "extracting global C symbols from \`$dlprefile'" 3346 + func_basename "$dlprefile" 3347 + name="$func_basename_result" 3348 + case $host in 3349 + *cygwin* | *mingw* | *cegcc* ) 3350 + # if an import library, we need to obtain dlname 3351 + if func_win32_import_lib_p "$dlprefile"; then 3352 + func_tr_sh "$dlprefile" 3353 + eval "curr_lafile=\$libfile_$func_tr_sh_result" 3354 + dlprefile_dlbasename="" 3355 + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then 3356 + # Use subshell, to avoid clobbering current variable values 3357 + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` 3358 + if test -n "$dlprefile_dlname" ; then 3359 + func_basename "$dlprefile_dlname" 3360 + dlprefile_dlbasename="$func_basename_result" 3361 + else 3362 + # no lafile. user explicitly requested -dlpreopen <import library>. 3363 + $sharedlib_from_linklib_cmd "$dlprefile" 3364 + dlprefile_dlbasename=$sharedlib_from_linklib_result 3365 + fi 3366 + fi 3367 + $opt_dry_run || { 3368 + if test -n "$dlprefile_dlbasename" ; then 3369 + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' 3370 + else 3371 + func_warning "Could not compute DLL name from $name" 3372 + eval '$ECHO ": $name " >> "$nlist"' 3373 + fi 3374 + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 3375 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | 3376 + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" 3377 + } 3378 + else # not an import lib 3379 + $opt_dry_run || { 3380 + eval '$ECHO ": $name " >> "$nlist"' 3381 + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 3382 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" 3383 + } 3384 + fi 3385 + ;; 3386 + *) 3387 + $opt_dry_run || { 3388 + eval '$ECHO ": $name " >> "$nlist"' 3389 + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 3390 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" 3391 + } 3392 + ;; 3393 + esac 3394 + done 3395 + 3396 + $opt_dry_run || { 3397 + # Make sure we have at least an empty file. 3398 + test -f "$nlist" || : > "$nlist" 3399 + 3400 + if test -n "$exclude_expsyms"; then 3401 + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 3402 + $MV "$nlist"T "$nlist" 3403 + fi 3404 + 3405 + # Try sorting and uniquifying the output. 3406 + if $GREP -v "^: " < "$nlist" | 3407 + if sort -k 3 </dev/null >/dev/null 2>&1; then 3408 + sort -k 3 3409 + else 3410 + sort +2 3411 + fi | 3412 + uniq > "$nlist"S; then 3413 + : 3414 + else 3415 + $GREP -v "^: " < "$nlist" > "$nlist"S 3416 + fi 3417 + 3418 + if test -f "$nlist"S; then 3419 + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' 3420 + else 3421 + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" 3422 + fi 3423 + 3424 + echo >> "$output_objdir/$my_dlsyms" "\ 3425 + 3426 +/* The mapping between symbol names and symbols. */ 3427 +typedef struct { 3428 + const char *name; 3429 + void *address; 3430 +} lt_dlsymlist; 3431 +extern LT_DLSYM_CONST lt_dlsymlist 3432 +lt_${my_prefix}_LTX_preloaded_symbols[]; 3433 +LT_DLSYM_CONST lt_dlsymlist 3434 +lt_${my_prefix}_LTX_preloaded_symbols[] = 3435 +{\ 3436 + { \"$my_originator\", (void *) 0 }," 3437 + 3438 + case $need_lib_prefix in 3439 + no) 3440 + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" 3441 + ;; 3442 + *) 3443 + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" 3444 + ;; 3445 + esac 3446 + echo >> "$output_objdir/$my_dlsyms" "\ 3447 + {0, (void *) 0} 3448 +}; 3449 + 3450 +/* This works around a problem in FreeBSD linker */ 3451 +#ifdef FREEBSD_WORKAROUND 3452 +static const void *lt_preloaded_setup() { 3453 + return lt_${my_prefix}_LTX_preloaded_symbols; 3454 +} 3455 +#endif 3456 + 3457 +#ifdef __cplusplus 3458 +} 3459 +#endif\ 3460 +" 3461 + } # !$opt_dry_run 3462 + 3463 + pic_flag_for_symtable= 3464 + case "$compile_command " in 3465 + *" -static "*) ;; 3466 + *) 3467 + case $host in 3468 + # compiling the symbol table file with pic_flag works around 3469 + # a FreeBSD bug that causes programs to crash when -lm is 3470 + # linked before any other PIC object. But we must not use 3471 + # pic_flag when linking with -static. The problem exists in 3472 + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 3473 + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 3474 + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; 3475 + *-*-hpux*) 3476 + pic_flag_for_symtable=" $pic_flag" ;; 3477 + *) 3478 + if test "X$my_pic_p" != Xno; then 3479 + pic_flag_for_symtable=" $pic_flag" 3480 + fi 3481 + ;; 3482 + esac 3483 + ;; 3484 + esac 3485 + symtab_cflags= 3486 + for arg in $LTCFLAGS; do 3487 + case $arg in 3488 + -pie | -fpie | -fPIE) ;; 3489 + *) func_append symtab_cflags " $arg" ;; 3490 + esac 3491 + done 3492 + 3493 + # Now compile the dynamic symbol file. 3494 + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' 3495 + 3496 + # Clean up the generated files. 3497 + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' 3498 + 3499 + # Transform the symbol file into the correct name. 3500 + symfileobj="$output_objdir/${my_outputname}S.$objext" 3501 + case $host in 3502 + *cygwin* | *mingw* | *cegcc* ) 3503 + if test -f "$output_objdir/$my_outputname.def"; then 3504 + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 3505 + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 3506 + else 3507 + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` 3508 + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` 3509 + fi 3510 + ;; 3511 + *) 3512 + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` 3513 + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` 3514 + ;; 3515 + esac 3516 + ;; 3517 + *) 3518 + func_fatal_error "unknown suffix for \`$my_dlsyms'" 3519 + ;; 3520 + esac 3521 + else 3522 + # We keep going just in case the user didn't refer to 3523 + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 3524 + # really was required. 3525 + 3526 + # Nullify the symbol file. 3527 + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` 3528 + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` 3529 + fi 3530 +} 3531 + 3532 +# func_win32_libid arg 3533 +# return the library type of file 'arg' 3534 +# 3535 +# Need a lot of goo to handle *both* DLLs and import libs 3536 +# Has to be a shell function in order to 'eat' the argument 3537 +# that is supplied when $file_magic_command is called. 3538 +# Despite the name, also deal with 64 bit binaries. 3539 +func_win32_libid () 3540 +{ 3541 + $opt_debug 3542 + win32_libid_type="unknown" 3543 + win32_fileres=`file -L $1 2>/dev/null` 3544 + case $win32_fileres in 3545 + *ar\ archive\ import\ library*) # definitely import 3546 + win32_libid_type="x86 archive import" 3547 + ;; 3548 + *ar\ archive*) # could be an import, or static 3549 + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. 3550 + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | 3551 + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then 3552 + func_to_tool_file "$1" func_convert_file_msys_to_w32 3553 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | 3554 + $SED -n -e ' 3555 + 1,100{ 3556 + / I /{ 3557 + s,.*,import, 3558 + p 3559 + q 3560 + } 3561 + }'` 3562 + case $win32_nmres in 3563 + import*) win32_libid_type="x86 archive import";; 3564 + *) win32_libid_type="x86 archive static";; 3565 + esac 3566 + fi 3567 + ;; 3568 + *DLL*) 3569 + win32_libid_type="x86 DLL" 3570 + ;; 3571 + *executable*) # but shell scripts are "executable" too... 3572 + case $win32_fileres in 3573 + *MS\ Windows\ PE\ Intel*) 3574 + win32_libid_type="x86 DLL" 3575 + ;; 3576 + esac 3577 + ;; 3578 + esac 3579 + $ECHO "$win32_libid_type" 3580 +} 3581 + 3582 +# func_cygming_dll_for_implib ARG 3583 +# 3584 +# Platform-specific function to extract the 3585 +# name of the DLL associated with the specified 3586 +# import library ARG. 3587 +# Invoked by eval'ing the libtool variable 3588 +# $sharedlib_from_linklib_cmd 3589 +# Result is available in the variable 3590 +# $sharedlib_from_linklib_result 3591 +func_cygming_dll_for_implib () 3592 +{ 3593 + $opt_debug 3594 + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` 3595 +} 3596 + 3597 +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs 3598 +# 3599 +# The is the core of a fallback implementation of a 3600 +# platform-specific function to extract the name of the 3601 +# DLL associated with the specified import library LIBNAME. 3602 +# 3603 +# SECTION_NAME is either .idata$6 or .idata$7, depending 3604 +# on the platform and compiler that created the implib. 3605 +# 3606 +# Echos the name of the DLL associated with the 3607 +# specified import library. 3608 +func_cygming_dll_for_implib_fallback_core () 3609 +{ 3610 + $opt_debug 3611 + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` 3612 + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | 3613 + $SED '/^Contents of section '"$match_literal"':/{ 3614 + # Place marker at beginning of archive member dllname section 3615 + s/.*/====MARK====/ 3616 + p 3617 + d 3618 + } 3619 + # These lines can sometimes be longer than 43 characters, but 3620 + # are always uninteresting 3621 + /:[ ]*file format pe[i]\{,1\}-/d 3622 + /^In archive [^:]*:/d 3623 + # Ensure marker is printed 3624 + /^====MARK====/p 3625 + # Remove all lines with less than 43 characters 3626 + /^.\{43\}/!d 3627 + # From remaining lines, remove first 43 characters 3628 + s/^.\{43\}//' | 3629 + $SED -n ' 3630 + # Join marker and all lines until next marker into a single line 3631 + /^====MARK====/ b para 3632 + H 3633 + $ b para 3634 + b 3635 + :para 3636 + x 3637 + s/\n//g 3638 + # Remove the marker 3639 + s/^====MARK====// 3640 + # Remove trailing dots and whitespace 3641 + s/[\. \t]*$// 3642 + # Print 3643 + /./p' | 3644 + # we now have a list, one entry per line, of the stringified 3645 + # contents of the appropriate section of all members of the 3646 + # archive which possess that section. Heuristic: eliminate 3647 + # all those which have a first or second character that is 3648 + # a '.' (that is, objdump's representation of an unprintable 3649 + # character.) This should work for all archives with less than 3650 + # 0x302f exports -- but will fail for DLLs whose name actually 3651 + # begins with a literal '.' or a single character followed by 3652 + # a '.'. 3653 + # 3654 + # Of those that remain, print the first one. 3655 + $SED -e '/^\./d;/^.\./d;q' 3656 +} 3657 + 3658 +# func_cygming_gnu_implib_p ARG 3659 +# This predicate returns with zero status (TRUE) if 3660 +# ARG is a GNU/binutils-style import library. Returns 3661 +# with nonzero status (FALSE) otherwise. 3662 +func_cygming_gnu_implib_p () 3663 +{ 3664 + $opt_debug 3665 + func_to_tool_file "$1" func_convert_file_msys_to_w32 3666 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` 3667 + test -n "$func_cygming_gnu_implib_tmp" 3668 +} 3669 + 3670 +# func_cygming_ms_implib_p ARG 3671 +# This predicate returns with zero status (TRUE) if 3672 +# ARG is an MS-style import library. Returns 3673 +# with nonzero status (FALSE) otherwise. 3674 +func_cygming_ms_implib_p () 3675 +{ 3676 + $opt_debug 3677 + func_to_tool_file "$1" func_convert_file_msys_to_w32 3678 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` 3679 + test -n "$func_cygming_ms_implib_tmp" 3680 +} 3681 + 3682 +# func_cygming_dll_for_implib_fallback ARG 3683 +# Platform-specific function to extract the 3684 +# name of the DLL associated with the specified 3685 +# import library ARG. 3686 +# 3687 +# This fallback implementation is for use when $DLLTOOL 3688 +# does not support the --identify-strict option. 3689 +# Invoked by eval'ing the libtool variable 3690 +# $sharedlib_from_linklib_cmd 3691 +# Result is available in the variable 3692 +# $sharedlib_from_linklib_result 3693 +func_cygming_dll_for_implib_fallback () 3694 +{ 3695 + $opt_debug 3696 + if func_cygming_gnu_implib_p "$1" ; then 3697 + # binutils import library 3698 + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` 3699 + elif func_cygming_ms_implib_p "$1" ; then 3700 + # ms-generated import library 3701 + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` 3702 + else 3703 + # unknown 3704 + sharedlib_from_linklib_result="" 3705 + fi 3706 +} 3707 + 3708 + 3709 +# func_extract_an_archive dir oldlib 3710 +func_extract_an_archive () 3711 +{ 3712 + $opt_debug 3713 + f_ex_an_ar_dir="$1"; shift 3714 + f_ex_an_ar_oldlib="$1" 3715 + if test "$lock_old_archive_extraction" = yes; then 3716 + lockfile=$f_ex_an_ar_oldlib.lock 3717 + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do 3718 + func_echo "Waiting for $lockfile to be removed" 3719 + sleep 2 3720 + done 3721 + fi 3722 + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 3723 + 'stat=$?; rm -f "$lockfile"; exit $stat' 3724 + if test "$lock_old_archive_extraction" = yes; then 3725 + $opt_dry_run || rm -f "$lockfile" 3726 + fi 3727 + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 3728 + : 3729 + else 3730 + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 3731 + fi 3732 +} 3733 + 3734 + 3735 +# func_extract_archives gentop oldlib ... 3736 +func_extract_archives () 3737 +{ 3738 + $opt_debug 3739 + my_gentop="$1"; shift 3740 + my_oldlibs=${1+"$@"} 3741 + my_oldobjs="" 3742 + my_xlib="" 3743 + my_xabs="" 3744 + my_xdir="" 3745 + 3746 + for my_xlib in $my_oldlibs; do 3747 + # Extract the objects. 3748 + case $my_xlib in 3749 + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 3750 + *) my_xabs=`pwd`"/$my_xlib" ;; 3751 + esac 3752 + func_basename "$my_xlib" 3753 + my_xlib="$func_basename_result" 3754 + my_xlib_u=$my_xlib 3755 + while :; do 3756 + case " $extracted_archives " in 3757 + *" $my_xlib_u "*) 3758 + func_arith $extracted_serial + 1 3759 + extracted_serial=$func_arith_result 3760 + my_xlib_u=lt$extracted_serial-$my_xlib ;; 3761 + *) break ;; 3762 + esac 3763 + done 3764 + extracted_archives="$extracted_archives $my_xlib_u" 3765 + my_xdir="$my_gentop/$my_xlib_u" 3766 + 3767 + func_mkdir_p "$my_xdir" 3768 + 3769 + case $host in 3770 + *-darwin*) 3771 + func_verbose "Extracting $my_xabs" 3772 + # Do not bother doing anything if just a dry run 3773 + $opt_dry_run || { 3774 + darwin_orig_dir=`pwd` 3775 + cd $my_xdir || exit $? 3776 + darwin_archive=$my_xabs 3777 + darwin_curdir=`pwd` 3778 + darwin_base_archive=`basename "$darwin_archive"` 3779 + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` 3780 + if test -n "$darwin_arches"; then 3781 + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` 3782 + darwin_arch= 3783 + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" 3784 + for darwin_arch in $darwin_arches ; do 3785 + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 3786 + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 3787 + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 3788 + func_extract_an_archive "`pwd`" "${darwin_base_archive}" 3789 + cd "$darwin_curdir" 3790 + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 3791 + done # $darwin_arches 3792 + ## Okay now we've a bunch of thin objects, gotta fatten them up :) 3793 + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` 3794 + darwin_file= 3795 + darwin_files= 3796 + for darwin_file in $darwin_filelist; do 3797 + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` 3798 + $LIPO -create -output "$darwin_file" $darwin_files 3799 + done # $darwin_filelist 3800 + $RM -rf unfat-$$ 3801 + cd "$darwin_orig_dir" 3802 + else 3803 + cd $darwin_orig_dir 3804 + func_extract_an_archive "$my_xdir" "$my_xabs" 3805 + fi # $darwin_arches 3806 + } # !$opt_dry_run 3807 + ;; 3808 + *) 3809 + func_extract_an_archive "$my_xdir" "$my_xabs" 3810 + ;; 3811 + esac 3812 + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` 3813 + done 3814 + 3815 + func_extract_archives_result="$my_oldobjs" 3816 +} 3817 + 3818 + 3819 +# func_emit_wrapper [arg=no] 3820 +# 3821 +# Emit a libtool wrapper script on stdout. 3822 +# Don't directly open a file because we may want to 3823 +# incorporate the script contents within a cygwin/mingw 3824 +# wrapper executable. Must ONLY be called from within 3825 +# func_mode_link because it depends on a number of variables 3826 +# set therein. 3827 +# 3828 +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR 3829 +# variable will take. If 'yes', then the emitted script 3830 +# will assume that the directory in which it is stored is 3831 +# the $objdir directory. This is a cygwin/mingw-specific 3832 +# behavior. 3833 +func_emit_wrapper () 3834 +{ 3835 + func_emit_wrapper_arg1=${1-no} 3836 + 3837 + $ECHO "\ 3838 +#! $SHELL 3839 + 3840 +# $output - temporary wrapper script for $objdir/$outputname 3841 +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 3842 +# 3843 +# The $output program cannot be directly executed until all the libtool 3844 +# libraries that it depends on are installed. 3845 +# 3846 +# This wrapper script should never be moved out of the build directory. 3847 +# If it is, it will not operate correctly. 3848 + 3849 +# Sed substitution that helps us do robust quoting. It backslashifies 3850 +# metacharacters that are still active within double-quoted strings. 3851 +sed_quote_subst='$sed_quote_subst' 3852 + 3853 +# Be Bourne compatible 3854 +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then 3855 + emulate sh 3856 + NULLCMD=: 3857 + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which 3858 + # is contrary to our usage. Disable this feature. 3859 + alias -g '\${1+\"\$@\"}'='\"\$@\"' 3860 + setopt NO_GLOB_SUBST 3861 +else 3862 + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac 3863 +fi 3864 +BIN_SH=xpg4; export BIN_SH # for Tru64 3865 +DUALCASE=1; export DUALCASE # for MKS sh 3866 + 3867 +# The HP-UX ksh and POSIX shell print the target directory to stdout 3868 +# if CDPATH is set. 3869 +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 3870 + 3871 +relink_command=\"$relink_command\" 3872 + 3873 +# This environment variable determines our operation mode. 3874 +if test \"\$libtool_install_magic\" = \"$magic\"; then 3875 + # install mode needs the following variables: 3876 + generated_by_libtool_version='$macro_version' 3877 + notinst_deplibs='$notinst_deplibs' 3878 +else 3879 + # When we are sourced in execute mode, \$file and \$ECHO are already set. 3880 + if test \"\$libtool_execute_magic\" != \"$magic\"; then 3881 + file=\"\$0\"" 3882 + 3883 + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` 3884 + $ECHO "\ 3885 + 3886 +# A function that is used when there is no print builtin or printf. 3887 +func_fallback_echo () 3888 +{ 3889 + eval 'cat <<_LTECHO_EOF 3890 +\$1 3891 +_LTECHO_EOF' 3892 +} 3893 + ECHO=\"$qECHO\" 3894 + fi 3895 + 3896 +# Very basic option parsing. These options are (a) specific to 3897 +# the libtool wrapper, (b) are identical between the wrapper 3898 +# /script/ and the wrapper /executable/ which is used only on 3899 +# windows platforms, and (c) all begin with the string "--lt-" 3900 +# (application programs are unlikely to have options which match 3901 +# this pattern). 3902 +# 3903 +# There are only two supported options: --lt-debug and 3904 +# --lt-dump-script. There is, deliberately, no --lt-help. 3905 +# 3906 +# The first argument to this parsing function should be the 3907 +# script's $0 value, followed by "$@". 3908 +lt_option_debug= 3909 +func_parse_lt_options () 3910 +{ 3911 + lt_script_arg0=\$0 3912 + shift 3913 + for lt_opt 3914 + do 3915 + case \"\$lt_opt\" in 3916 + --lt-debug) lt_option_debug=1 ;; 3917 + --lt-dump-script) 3918 + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` 3919 + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. 3920 + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` 3921 + cat \"\$lt_dump_D/\$lt_dump_F\" 3922 + exit 0 3923 + ;; 3924 + --lt-*) 3925 + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 3926 + exit 1 3927 + ;; 3928 + esac 3929 + done 3930 + 3931 + # Print the debug banner immediately: 3932 + if test -n \"\$lt_option_debug\"; then 3933 + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 3934 + fi 3935 +} 3936 + 3937 +# Used when --lt-debug. Prints its arguments to stdout 3938 +# (redirection is the responsibility of the caller) 3939 +func_lt_dump_args () 3940 +{ 3941 + lt_dump_args_N=1; 3942 + for lt_arg 3943 + do 3944 + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" 3945 + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` 3946 + done 3947 +} 3948 + 3949 +# Core function for launching the target application 3950 +func_exec_program_core () 3951 +{ 3952 +" 3953 + case $host in 3954 + # Backslashes separate directories on plain windows 3955 + *-*-mingw | *-*-os2* | *-cegcc*) 3956 + $ECHO "\ 3957 + if test -n \"\$lt_option_debug\"; then 3958 + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 3959 + func_lt_dump_args \${1+\"\$@\"} 1>&2 3960 + fi 3961 + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 3962 +" 3963 + ;; 3964 + 3965 + *) 3966 + $ECHO "\ 3967 + if test -n \"\$lt_option_debug\"; then 3968 + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 3969 + func_lt_dump_args \${1+\"\$@\"} 1>&2 3970 + fi 3971 + exec \"\$progdir/\$program\" \${1+\"\$@\"} 3972 +" 3973 + ;; 3974 + esac 3975 + $ECHO "\ 3976 + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 3977 + exit 1 3978 +} 3979 + 3980 +# A function to encapsulate launching the target application 3981 +# Strips options in the --lt-* namespace from \$@ and 3982 +# launches target application with the remaining arguments. 3983 +func_exec_program () 3984 +{ 3985 + for lt_wr_arg 3986 + do 3987 + case \$lt_wr_arg in 3988 + --lt-*) ;; 3989 + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; 3990 + esac 3991 + shift 3992 + done 3993 + func_exec_program_core \${1+\"\$@\"} 3994 +} 3995 + 3996 + # Parse options 3997 + func_parse_lt_options \"\$0\" \${1+\"\$@\"} 3998 + 3999 + # Find the directory that this script lives in. 4000 + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` 4001 + test \"x\$thisdir\" = \"x\$file\" && thisdir=. 4002 + 4003 + # Follow symbolic links until we get to the real thisdir. 4004 + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` 4005 + while test -n \"\$file\"; do 4006 + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` 4007 + 4008 + # If there was a directory component, then change thisdir. 4009 + if test \"x\$destdir\" != \"x\$file\"; then 4010 + case \"\$destdir\" in 4011 + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 4012 + *) thisdir=\"\$thisdir/\$destdir\" ;; 4013 + esac 4014 + fi 4015 + 4016 + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` 4017 + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` 4018 + done 4019 + 4020 + # Usually 'no', except on cygwin/mingw when embedded into 4021 + # the cwrapper. 4022 + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 4023 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then 4024 + # special case for '.' 4025 + if test \"\$thisdir\" = \".\"; then 4026 + thisdir=\`pwd\` 4027 + fi 4028 + # remove .libs from thisdir 4029 + case \"\$thisdir\" in 4030 + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; 4031 + $objdir ) thisdir=. ;; 4032 + esac 4033 + fi 4034 + 4035 + # Try to get the absolute directory name. 4036 + absdir=\`cd \"\$thisdir\" && pwd\` 4037 + test -n \"\$absdir\" && thisdir=\"\$absdir\" 4038 +" 4039 + 4040 + if test "$fast_install" = yes; then 4041 + $ECHO "\ 4042 + program=lt-'$outputname'$exeext 4043 + progdir=\"\$thisdir/$objdir\" 4044 + 4045 + if test ! -f \"\$progdir/\$program\" || 4046 + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 4047 + test \"X\$file\" != \"X\$progdir/\$program\"; }; then 4048 + 4049 + file=\"\$\$-\$program\" 4050 + 4051 + if test ! -d \"\$progdir\"; then 4052 + $MKDIR \"\$progdir\" 4053 + else 4054 + $RM \"\$progdir/\$file\" 4055 + fi" 4056 + 4057 + $ECHO "\ 4058 + 4059 + # relink executable if necessary 4060 + if test -n \"\$relink_command\"; then 4061 + if relink_command_output=\`eval \$relink_command 2>&1\`; then : 4062 + else 4063 + $ECHO \"\$relink_command_output\" >&2 4064 + $RM \"\$progdir/\$file\" 4065 + exit 1 4066 + fi 4067 + fi 4068 + 4069 + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 4070 + { $RM \"\$progdir/\$program\"; 4071 + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } 4072 + $RM \"\$progdir/\$file\" 4073 + fi" 4074 + else 4075 + $ECHO "\ 4076 + program='$outputname' 4077 + progdir=\"\$thisdir/$objdir\" 4078 +" 4079 + fi 4080 + 4081 + $ECHO "\ 4082 + 4083 + if test -f \"\$progdir/\$program\"; then" 4084 + 4085 + # fixup the dll searchpath if we need to. 4086 + # 4087 + # Fix the DLL searchpath if we need to. Do this before prepending 4088 + # to shlibpath, because on Windows, both are PATH and uninstalled 4089 + # libraries must come first. 4090 + if test -n "$dllsearchpath"; then 4091 + $ECHO "\ 4092 + # Add the dll search path components to the executable PATH 4093 + PATH=$dllsearchpath:\$PATH 4094 +" 4095 + fi 4096 + 4097 + # Export our shlibpath_var if we have one. 4098 + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 4099 + $ECHO "\ 4100 + # Add our own library path to $shlibpath_var 4101 + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 4102 + 4103 + # Some systems cannot cope with colon-terminated $shlibpath_var 4104 + # The second colon is a workaround for a bug in BeOS R4 sed 4105 + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` 4106 + 4107 + export $shlibpath_var 4108 +" 4109 + fi 4110 + 4111 + $ECHO "\ 4112 + if test \"\$libtool_execute_magic\" != \"$magic\"; then 4113 + # Run the actual program with our arguments. 4114 + func_exec_program \${1+\"\$@\"} 4115 + fi 4116 + else 4117 + # The program doesn't exist. 4118 + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 4119 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 4120 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 4121 + exit 1 4122 + fi 4123 +fi\ 4124 +" 4125 +} 4126 + 4127 + 4128 +# func_emit_cwrapperexe_src 4129 +# emit the source code for a wrapper executable on stdout 4130 +# Must ONLY be called from within func_mode_link because 4131 +# it depends on a number of variable set therein. 4132 +func_emit_cwrapperexe_src () 4133 +{ 4134 + cat <<EOF 4135 + 4136 +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 4137 + Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 4138 + 4139 + The $output program cannot be directly executed until all the libtool 4140 + libraries that it depends on are installed. 4141 + 4142 + This wrapper executable should never be moved out of the build directory. 4143 + If it is, it will not operate correctly. 4144 +*/ 4145 +EOF 4146 + cat <<"EOF" 4147 +#ifdef _MSC_VER 4148 +# define _CRT_SECURE_NO_DEPRECATE 1 4149 +#endif 4150 +#include <stdio.h> 4151 +#include <stdlib.h> 4152 +#ifdef _MSC_VER 4153 +# include <direct.h> 4154 +# include <process.h> 4155 +# include <io.h> 4156 +#else 4157 +# include <unistd.h> 4158 +# include <stdint.h> 4159 +# ifdef __CYGWIN__ 4160 +# include <io.h> 4161 +# endif 4162 +#endif 4163 +#include <malloc.h> 4164 +#include <stdarg.h> 4165 +#include <assert.h> 4166 +#include <string.h> 4167 +#include <ctype.h> 4168 +#include <errno.h> 4169 +#include <fcntl.h> 4170 +#include <sys/stat.h> 4171 + 4172 +/* declarations of non-ANSI functions */ 4173 +#if defined(__MINGW32__) 4174 +# ifdef __STRICT_ANSI__ 4175 +int _putenv (const char *); 4176 +# endif 4177 +#elif defined(__CYGWIN__) 4178 +# ifdef __STRICT_ANSI__ 4179 +char *realpath (const char *, char *); 4180 +int putenv (char *); 4181 +int setenv (const char *, const char *, int); 4182 +# endif 4183 +/* #elif defined (other platforms) ... */ 4184 +#endif 4185 + 4186 +/* portability defines, excluding path handling macros */ 4187 +#if defined(_MSC_VER) 4188 +# define setmode _setmode 4189 +# define stat _stat 4190 +# define chmod _chmod 4191 +# define getcwd _getcwd 4192 +# define putenv _putenv 4193 +# define S_IXUSR _S_IEXEC 4194 +# ifndef _INTPTR_T_DEFINED 4195 +# define _INTPTR_T_DEFINED 4196 +# define intptr_t int 4197 +# endif 4198 +#elif defined(__MINGW32__) 4199 +# define setmode _setmode 4200 +# define stat _stat 4201 +# define chmod _chmod 4202 +# define getcwd _getcwd 4203 +# define putenv _putenv 4204 +#elif defined(__CYGWIN__) 4205 +# define HAVE_SETENV 4206 +# define FOPEN_WB "wb" 4207 +/* #elif defined (other platforms) ... */ 4208 +#endif 4209 + 4210 +#if defined(PATH_MAX) 4211 +# define LT_PATHMAX PATH_MAX 4212 +#elif defined(MAXPATHLEN) 4213 +# define LT_PATHMAX MAXPATHLEN 4214 +#else 4215 +# define LT_PATHMAX 1024 4216 +#endif 4217 + 4218 +#ifndef S_IXOTH 4219 +# define S_IXOTH 0 4220 +#endif 4221 +#ifndef S_IXGRP 4222 +# define S_IXGRP 0 4223 +#endif 4224 + 4225 +/* path handling portability macros */ 4226 +#ifndef DIR_SEPARATOR 4227 +# define DIR_SEPARATOR '/' 4228 +# define PATH_SEPARATOR ':' 4229 +#endif 4230 + 4231 +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 4232 + defined (__OS2__) 4233 +# define HAVE_DOS_BASED_FILE_SYSTEM 4234 +# define FOPEN_WB "wb" 4235 +# ifndef DIR_SEPARATOR_2 4236 +# define DIR_SEPARATOR_2 '\\' 4237 +# endif 4238 +# ifndef PATH_SEPARATOR_2 4239 +# define PATH_SEPARATOR_2 ';' 4240 +# endif 4241 +#endif 4242 + 4243 +#ifndef DIR_SEPARATOR_2 4244 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 4245 +#else /* DIR_SEPARATOR_2 */ 4246 +# define IS_DIR_SEPARATOR(ch) \ 4247 + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 4248 +#endif /* DIR_SEPARATOR_2 */ 4249 + 4250 +#ifndef PATH_SEPARATOR_2 4251 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 4252 +#else /* PATH_SEPARATOR_2 */ 4253 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 4254 +#endif /* PATH_SEPARATOR_2 */ 4255 + 4256 +#ifndef FOPEN_WB 4257 +# define FOPEN_WB "w" 4258 +#endif 4259 +#ifndef _O_BINARY 4260 +# define _O_BINARY 0 4261 +#endif 4262 + 4263 +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 4264 +#define XFREE(stale) do { \ 4265 + if (stale) { free ((void *) stale); stale = 0; } \ 4266 +} while (0) 4267 + 4268 +#if defined(LT_DEBUGWRAPPER) 4269 +static int lt_debug = 1; 4270 +#else 4271 +static int lt_debug = 0; 4272 +#endif 4273 + 4274 +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ 4275 + 4276 +void *xmalloc (size_t num); 4277 +char *xstrdup (const char *string); 4278 +const char *base_name (const char *name); 4279 +char *find_executable (const char *wrapper); 4280 +char *chase_symlinks (const char *pathspec); 4281 +int make_executable (const char *path); 4282 +int check_executable (const char *path); 4283 +char *strendzap (char *str, const char *pat); 4284 +void lt_debugprintf (const char *file, int line, const char *fmt, ...); 4285 +void lt_fatal (const char *file, int line, const char *message, ...); 4286 +static const char *nonnull (const char *s); 4287 +static const char *nonempty (const char *s); 4288 +void lt_setenv (const char *name, const char *value); 4289 +char *lt_extend_str (const char *orig_value, const char *add, int to_end); 4290 +void lt_update_exe_path (const char *name, const char *value); 4291 +void lt_update_lib_path (const char *name, const char *value); 4292 +char **prepare_spawn (char **argv); 4293 +void lt_dump_script (FILE *f); 4294 +EOF 4295 + 4296 + cat <<EOF 4297 +volatile const char * MAGIC_EXE = "$magic_exe"; 4298 +const char * LIB_PATH_VARNAME = "$shlibpath_var"; 4299 +EOF 4300 + 4301 + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 4302 + func_to_host_path "$temp_rpath" 4303 + cat <<EOF 4304 +const char * LIB_PATH_VALUE = "$func_to_host_path_result"; 4305 +EOF 4306 + else 4307 + cat <<"EOF" 4308 +const char * LIB_PATH_VALUE = ""; 4309 +EOF 4310 + fi 4311 + 4312 + if test -n "$dllsearchpath"; then 4313 + func_to_host_path "$dllsearchpath:" 4314 + cat <<EOF 4315 +const char * EXE_PATH_VARNAME = "PATH"; 4316 +const char * EXE_PATH_VALUE = "$func_to_host_path_result"; 4317 +EOF 4318 + else 4319 + cat <<"EOF" 4320 +const char * EXE_PATH_VARNAME = ""; 4321 +const char * EXE_PATH_VALUE = ""; 4322 +EOF 4323 + fi 4324 + 4325 + if test "$fast_install" = yes; then 4326 + cat <<EOF 4327 +const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ 4328 +EOF 4329 + else 4330 + cat <<EOF 4331 +const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ 4332 +EOF 4333 + fi 4334 + 4335 + 4336 + cat <<"EOF" 4337 + 4338 +#define LTWRAPPER_OPTION_PREFIX "--lt-" 4339 + 4340 +static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; 4341 +static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; 4342 +static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; 4343 + 4344 +int 4345 +main (int argc, char *argv[]) 4346 +{ 4347 + char **newargz; 4348 + int newargc; 4349 + char *tmp_pathspec; 4350 + char *actual_cwrapper_path; 4351 + char *actual_cwrapper_name; 4352 + char *target_name; 4353 + char *lt_argv_zero; 4354 + intptr_t rval = 127; 4355 + 4356 + int i; 4357 + 4358 + program_name = (char *) xstrdup (base_name (argv[0])); 4359 + newargz = XMALLOC (char *, argc + 1); 4360 + 4361 + /* very simple arg parsing; don't want to rely on getopt 4362 + * also, copy all non cwrapper options to newargz, except 4363 + * argz[0], which is handled differently 4364 + */ 4365 + newargc=0; 4366 + for (i = 1; i < argc; i++) 4367 + { 4368 + if (strcmp (argv[i], dumpscript_opt) == 0) 4369 + { 4370 +EOF 4371 + case "$host" in 4372 + *mingw* | *cygwin* ) 4373 + # make stdout use "unix" line endings 4374 + echo " setmode(1,_O_BINARY);" 4375 + ;; 4376 + esac 4377 + 4378 + cat <<"EOF" 4379 + lt_dump_script (stdout); 4380 + return 0; 4381 + } 4382 + if (strcmp (argv[i], debug_opt) == 0) 4383 + { 4384 + lt_debug = 1; 4385 + continue; 4386 + } 4387 + if (strcmp (argv[i], ltwrapper_option_prefix) == 0) 4388 + { 4389 + /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX 4390 + namespace, but it is not one of the ones we know about and 4391 + have already dealt with, above (inluding dump-script), then 4392 + report an error. Otherwise, targets might begin to believe 4393 + they are allowed to use options in the LTWRAPPER_OPTION_PREFIX 4394 + namespace. The first time any user complains about this, we'll 4395 + need to make LTWRAPPER_OPTION_PREFIX a configure-time option 4396 + or a configure.ac-settable value. 4397 + */ 4398 + lt_fatal (__FILE__, __LINE__, 4399 + "unrecognized %s option: '%s'", 4400 + ltwrapper_option_prefix, argv[i]); 4401 + } 4402 + /* otherwise ... */ 4403 + newargz[++newargc] = xstrdup (argv[i]); 4404 + } 4405 + newargz[++newargc] = NULL; 4406 + 4407 +EOF 4408 + cat <<EOF 4409 + /* The GNU banner must be the first non-error debug message */ 4410 + lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); 4411 +EOF 4412 + cat <<"EOF" 4413 + lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); 4414 + lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); 4415 + 4416 + tmp_pathspec = find_executable (argv[0]); 4417 + if (tmp_pathspec == NULL) 4418 + lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); 4419 + lt_debugprintf (__FILE__, __LINE__, 4420 + "(main) found exe (before symlink chase) at: %s\n", 4421 + tmp_pathspec); 4422 + 4423 + actual_cwrapper_path = chase_symlinks (tmp_pathspec); 4424 + lt_debugprintf (__FILE__, __LINE__, 4425 + "(main) found exe (after symlink chase) at: %s\n", 4426 + actual_cwrapper_path); 4427 + XFREE (tmp_pathspec); 4428 + 4429 + actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); 4430 + strendzap (actual_cwrapper_path, actual_cwrapper_name); 4431 + 4432 + /* wrapper name transforms */ 4433 + strendzap (actual_cwrapper_name, ".exe"); 4434 + tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); 4435 + XFREE (actual_cwrapper_name); 4436 + actual_cwrapper_name = tmp_pathspec; 4437 + tmp_pathspec = 0; 4438 + 4439 + /* target_name transforms -- use actual target program name; might have lt- prefix */ 4440 + target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); 4441 + strendzap (target_name, ".exe"); 4442 + tmp_pathspec = lt_extend_str (target_name, ".exe", 1); 4443 + XFREE (target_name); 4444 + target_name = tmp_pathspec; 4445 + tmp_pathspec = 0; 4446 + 4447 + lt_debugprintf (__FILE__, __LINE__, 4448 + "(main) libtool target name: %s\n", 4449 + target_name); 4450 +EOF 4451 + 4452 + cat <<EOF 4453 + newargz[0] = 4454 + XMALLOC (char, (strlen (actual_cwrapper_path) + 4455 + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); 4456 + strcpy (newargz[0], actual_cwrapper_path); 4457 + strcat (newargz[0], "$objdir"); 4458 + strcat (newargz[0], "/"); 4459 +EOF 4460 + 4461 + cat <<"EOF" 4462 + /* stop here, and copy so we don't have to do this twice */ 4463 + tmp_pathspec = xstrdup (newargz[0]); 4464 + 4465 + /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ 4466 + strcat (newargz[0], actual_cwrapper_name); 4467 + 4468 + /* DO want the lt- prefix here if it exists, so use target_name */ 4469 + lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); 4470 + XFREE (tmp_pathspec); 4471 + tmp_pathspec = NULL; 4472 +EOF 4473 + 4474 + case $host_os in 4475 + mingw*) 4476 + cat <<"EOF" 4477 + { 4478 + char* p; 4479 + while ((p = strchr (newargz[0], '\\')) != NULL) 4480 + { 4481 + *p = '/'; 4482 + } 4483 + while ((p = strchr (lt_argv_zero, '\\')) != NULL) 4484 + { 4485 + *p = '/'; 4486 + } 4487 + } 4488 +EOF 4489 + ;; 4490 + esac 4491 + 4492 + cat <<"EOF" 4493 + XFREE (target_name); 4494 + XFREE (actual_cwrapper_path); 4495 + XFREE (actual_cwrapper_name); 4496 + 4497 + lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ 4498 + lt_setenv ("DUALCASE", "1"); /* for MSK sh */ 4499 + /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must 4500 + be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) 4501 + because on Windows, both *_VARNAMEs are PATH but uninstalled 4502 + libraries must come first. */ 4503 + lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); 4504 + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); 4505 + 4506 + lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", 4507 + nonnull (lt_argv_zero)); 4508 + for (i = 0; i < newargc; i++) 4509 + { 4510 + lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", 4511 + i, nonnull (newargz[i])); 4512 + } 4513 + 4514 +EOF 4515 + 4516 + case $host_os in 4517 + mingw*) 4518 + cat <<"EOF" 4519 + /* execv doesn't actually work on mingw as expected on unix */ 4520 + newargz = prepare_spawn (newargz); 4521 + rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); 4522 + if (rval == -1) 4523 + { 4524 + /* failed to start process */ 4525 + lt_debugprintf (__FILE__, __LINE__, 4526 + "(main) failed to launch target \"%s\": %s\n", 4527 + lt_argv_zero, nonnull (strerror (errno))); 4528 + return 127; 4529 + } 4530 + return rval; 4531 +EOF 4532 + ;; 4533 + *) 4534 + cat <<"EOF" 4535 + execv (lt_argv_zero, newargz); 4536 + return rval; /* =127, but avoids unused variable warning */ 4537 +EOF 4538 + ;; 4539 + esac 4540 + 4541 + cat <<"EOF" 4542 +} 4543 + 4544 +void * 4545 +xmalloc (size_t num) 4546 +{ 4547 + void *p = (void *) malloc (num); 4548 + if (!p) 4549 + lt_fatal (__FILE__, __LINE__, "memory exhausted"); 4550 + 4551 + return p; 4552 +} 4553 + 4554 +char * 4555 +xstrdup (const char *string) 4556 +{ 4557 + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), 4558 + string) : NULL; 4559 +} 4560 + 4561 +const char * 4562 +base_name (const char *name) 4563 +{ 4564 + const char *base; 4565 + 4566 +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 4567 + /* Skip over the disk name in MSDOS pathnames. */ 4568 + if (isalpha ((unsigned char) name[0]) && name[1] == ':') 4569 + name += 2; 4570 +#endif 4571 + 4572 + for (base = name; *name; name++) 4573 + if (IS_DIR_SEPARATOR (*name)) 4574 + base = name + 1; 4575 + return base; 4576 +} 4577 + 4578 +int 4579 +check_executable (const char *path) 4580 +{ 4581 + struct stat st; 4582 + 4583 + lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", 4584 + nonempty (path)); 4585 + if ((!path) || (!*path)) 4586 + return 0; 4587 + 4588 + if ((stat (path, &st) >= 0) 4589 + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) 4590 + return 1; 4591 + else 4592 + return 0; 4593 +} 4594 + 4595 +int 4596 +make_executable (const char *path) 4597 +{ 4598 + int rval = 0; 4599 + struct stat st; 4600 + 4601 + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", 4602 + nonempty (path)); 4603 + if ((!path) || (!*path)) 4604 + return 0; 4605 + 4606 + if (stat (path, &st) >= 0) 4607 + { 4608 + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); 4609 + } 4610 + return rval; 4611 +} 4612 + 4613 +/* Searches for the full path of the wrapper. Returns 4614 + newly allocated full path name if found, NULL otherwise 4615 + Does not chase symlinks, even on platforms that support them. 4616 +*/ 4617 +char * 4618 +find_executable (const char *wrapper) 4619 +{ 4620 + int has_slash = 0; 4621 + const char *p; 4622 + const char *p_next; 4623 + /* static buffer for getcwd */ 4624 + char tmp[LT_PATHMAX + 1]; 4625 + int tmp_len; 4626 + char *concat_name; 4627 + 4628 + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", 4629 + nonempty (wrapper)); 4630 + 4631 + if ((wrapper == NULL) || (*wrapper == '\0')) 4632 + return NULL; 4633 + 4634 + /* Absolute path? */ 4635 +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 4636 + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') 4637 + { 4638 + concat_name = xstrdup (wrapper); 4639 + if (check_executable (concat_name)) 4640 + return concat_name; 4641 + XFREE (concat_name); 4642 + } 4643 + else 4644 + { 4645 +#endif 4646 + if (IS_DIR_SEPARATOR (wrapper[0])) 4647 + { 4648 + concat_name = xstrdup (wrapper); 4649 + if (check_executable (concat_name)) 4650 + return concat_name; 4651 + XFREE (concat_name); 4652 + } 4653 +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 4654 + } 4655 +#endif 4656 + 4657 + for (p = wrapper; *p; p++) 4658 + if (*p == '/') 4659 + { 4660 + has_slash = 1; 4661 + break; 4662 + } 4663 + if (!has_slash) 4664 + { 4665 + /* no slashes; search PATH */ 4666 + const char *path = getenv ("PATH"); 4667 + if (path != NULL) 4668 + { 4669 + for (p = path; *p; p = p_next) 4670 + { 4671 + const char *q; 4672 + size_t p_len; 4673 + for (q = p; *q; q++) 4674 + if (IS_PATH_SEPARATOR (*q)) 4675 + break; 4676 + p_len = q - p; 4677 + p_next = (*q == '\0' ? q : q + 1); 4678 + if (p_len == 0) 4679 + { 4680 + /* empty path: current directory */ 4681 + if (getcwd (tmp, LT_PATHMAX) == NULL) 4682 + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", 4683 + nonnull (strerror (errno))); 4684 + tmp_len = strlen (tmp); 4685 + concat_name = 4686 + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 4687 + memcpy (concat_name, tmp, tmp_len); 4688 + concat_name[tmp_len] = '/'; 4689 + strcpy (concat_name + tmp_len + 1, wrapper); 4690 + } 4691 + else 4692 + { 4693 + concat_name = 4694 + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); 4695 + memcpy (concat_name, p, p_len); 4696 + concat_name[p_len] = '/'; 4697 + strcpy (concat_name + p_len + 1, wrapper); 4698 + } 4699 + if (check_executable (concat_name)) 4700 + return concat_name; 4701 + XFREE (concat_name); 4702 + } 4703 + } 4704 + /* not found in PATH; assume curdir */ 4705 + } 4706 + /* Relative path | not found in path: prepend cwd */ 4707 + if (getcwd (tmp, LT_PATHMAX) == NULL) 4708 + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", 4709 + nonnull (strerror (errno))); 4710 + tmp_len = strlen (tmp); 4711 + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 4712 + memcpy (concat_name, tmp, tmp_len); 4713 + concat_name[tmp_len] = '/'; 4714 + strcpy (concat_name + tmp_len + 1, wrapper); 4715 + 4716 + if (check_executable (concat_name)) 4717 + return concat_name; 4718 + XFREE (concat_name); 4719 + return NULL; 4720 +} 4721 + 4722 +char * 4723 +chase_symlinks (const char *pathspec) 4724 +{ 4725 +#ifndef S_ISLNK 4726 + return xstrdup (pathspec); 4727 +#else 4728 + char buf[LT_PATHMAX]; 4729 + struct stat s; 4730 + char *tmp_pathspec = xstrdup (pathspec); 4731 + char *p; 4732 + int has_symlinks = 0; 4733 + while (strlen (tmp_pathspec) && !has_symlinks) 4734 + { 4735 + lt_debugprintf (__FILE__, __LINE__, 4736 + "checking path component for symlinks: %s\n", 4737 + tmp_pathspec); 4738 + if (lstat (tmp_pathspec, &s) == 0) 4739 + { 4740 + if (S_ISLNK (s.st_mode) != 0) 4741 + { 4742 + has_symlinks = 1; 4743 + break; 4744 + } 4745 + 4746 + /* search backwards for last DIR_SEPARATOR */ 4747 + p = tmp_pathspec + strlen (tmp_pathspec) - 1; 4748 + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) 4749 + p--; 4750 + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) 4751 + { 4752 + /* no more DIR_SEPARATORS left */ 4753 + break; 4754 + } 4755 + *p = '\0'; 4756 + } 4757 + else 4758 + { 4759 + lt_fatal (__FILE__, __LINE__, 4760 + "error accessing file \"%s\": %s", 4761 + tmp_pathspec, nonnull (strerror (errno))); 4762 + } 4763 + } 4764 + XFREE (tmp_pathspec); 4765 + 4766 + if (!has_symlinks) 4767 + { 4768 + return xstrdup (pathspec); 4769 + } 4770 + 4771 + tmp_pathspec = realpath (pathspec, buf); 4772 + if (tmp_pathspec == 0) 4773 + { 4774 + lt_fatal (__FILE__, __LINE__, 4775 + "could not follow symlinks for %s", pathspec); 4776 + } 4777 + return xstrdup (tmp_pathspec); 4778 +#endif 4779 +} 4780 + 4781 +char * 4782 +strendzap (char *str, const char *pat) 4783 +{ 4784 + size_t len, patlen; 4785 + 4786 + assert (str != NULL); 4787 + assert (pat != NULL); 4788 + 4789 + len = strlen (str); 4790 + patlen = strlen (pat); 4791 + 4792 + if (patlen <= len) 4793 + { 4794 + str += len - patlen; 4795 + if (strcmp (str, pat) == 0) 4796 + *str = '\0'; 4797 + } 4798 + return str; 4799 +} 4800 + 4801 +void 4802 +lt_debugprintf (const char *file, int line, const char *fmt, ...) 4803 +{ 4804 + va_list args; 4805 + if (lt_debug) 4806 + { 4807 + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); 4808 + va_start (args, fmt); 4809 + (void) vfprintf (stderr, fmt, args); 4810 + va_end (args); 4811 + } 4812 +} 4813 + 4814 +static void 4815 +lt_error_core (int exit_status, const char *file, 4816 + int line, const char *mode, 4817 + const char *message, va_list ap) 4818 +{ 4819 + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); 4820 + vfprintf (stderr, message, ap); 4821 + fprintf (stderr, ".\n"); 4822 + 4823 + if (exit_status >= 0) 4824 + exit (exit_status); 4825 +} 4826 + 4827 +void 4828 +lt_fatal (const char *file, int line, const char *message, ...) 4829 +{ 4830 + va_list ap; 4831 + va_start (ap, message); 4832 + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); 4833 + va_end (ap); 4834 +} 4835 + 4836 +static const char * 4837 +nonnull (const char *s) 4838 +{ 4839 + return s ? s : "(null)"; 4840 +} 4841 + 4842 +static const char * 4843 +nonempty (const char *s) 4844 +{ 4845 + return (s && !*s) ? "(empty)" : nonnull (s); 4846 +} 4847 + 4848 +void 4849 +lt_setenv (const char *name, const char *value) 4850 +{ 4851 + lt_debugprintf (__FILE__, __LINE__, 4852 + "(lt_setenv) setting '%s' to '%s'\n", 4853 + nonnull (name), nonnull (value)); 4854 + { 4855 +#ifdef HAVE_SETENV 4856 + /* always make a copy, for consistency with !HAVE_SETENV */ 4857 + char *str = xstrdup (value); 4858 + setenv (name, str, 1); 4859 +#else 4860 + int len = strlen (name) + 1 + strlen (value) + 1; 4861 + char *str = XMALLOC (char, len); 4862 + sprintf (str, "%s=%s", name, value); 4863 + if (putenv (str) != EXIT_SUCCESS) 4864 + { 4865 + XFREE (str); 4866 + } 4867 +#endif 4868 + } 4869 +} 4870 + 4871 +char * 4872 +lt_extend_str (const char *orig_value, const char *add, int to_end) 4873 +{ 4874 + char *new_value; 4875 + if (orig_value && *orig_value) 4876 + { 4877 + int orig_value_len = strlen (orig_value); 4878 + int add_len = strlen (add); 4879 + new_value = XMALLOC (char, add_len + orig_value_len + 1); 4880 + if (to_end) 4881 + { 4882 + strcpy (new_value, orig_value); 4883 + strcpy (new_value + orig_value_len, add); 4884 + } 4885 + else 4886 + { 4887 + strcpy (new_value, add); 4888 + strcpy (new_value + add_len, orig_value); 4889 + } 4890 + } 4891 + else 4892 + { 4893 + new_value = xstrdup (add); 4894 + } 4895 + return new_value; 4896 +} 4897 + 4898 +void 4899 +lt_update_exe_path (const char *name, const char *value) 4900 +{ 4901 + lt_debugprintf (__FILE__, __LINE__, 4902 + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", 4903 + nonnull (name), nonnull (value)); 4904 + 4905 + if (name && *name && value && *value) 4906 + { 4907 + char *new_value = lt_extend_str (getenv (name), value, 0); 4908 + /* some systems can't cope with a ':'-terminated path #' */ 4909 + int len = strlen (new_value); 4910 + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) 4911 + { 4912 + new_value[len-1] = '\0'; 4913 + } 4914 + lt_setenv (name, new_value); 4915 + XFREE (new_value); 4916 + } 4917 +} 4918 + 4919 +void 4920 +lt_update_lib_path (const char *name, const char *value) 4921 +{ 4922 + lt_debugprintf (__FILE__, __LINE__, 4923 + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", 4924 + nonnull (name), nonnull (value)); 4925 + 4926 + if (name && *name && value && *value) 4927 + { 4928 + char *new_value = lt_extend_str (getenv (name), value, 0); 4929 + lt_setenv (name, new_value); 4930 + XFREE (new_value); 4931 + } 4932 +} 4933 + 4934 +EOF 4935 + case $host_os in 4936 + mingw*) 4937 + cat <<"EOF" 4938 + 4939 +/* Prepares an argument vector before calling spawn(). 4940 + Note that spawn() does not by itself call the command interpreter 4941 + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : 4942 + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 4943 + GetVersionEx(&v); 4944 + v.dwPlatformId == VER_PLATFORM_WIN32_NT; 4945 + }) ? "cmd.exe" : "command.com"). 4946 + Instead it simply concatenates the arguments, separated by ' ', and calls 4947 + CreateProcess(). We must quote the arguments since Win32 CreateProcess() 4948 + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a 4949 + special way: 4950 + - Space and tab are interpreted as delimiters. They are not treated as 4951 + delimiters if they are surrounded by double quotes: "...". 4952 + - Unescaped double quotes are removed from the input. Their only effect is 4953 + that within double quotes, space and tab are treated like normal 4954 + characters. 4955 + - Backslashes not followed by double quotes are not special. 4956 + - But 2*n+1 backslashes followed by a double quote become 4957 + n backslashes followed by a double quote (n >= 0): 4958 + \" -> " 4959 + \\\" -> \" 4960 + \\\\\" -> \\" 4961 + */ 4962 +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" 4963 +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" 4964 +char ** 4965 +prepare_spawn (char **argv) 4966 +{ 4967 + size_t argc; 4968 + char **new_argv; 4969 + size_t i; 4970 + 4971 + /* Count number of arguments. */ 4972 + for (argc = 0; argv[argc] != NULL; argc++) 4973 + ; 4974 + 4975 + /* Allocate new argument vector. */ 4976 + new_argv = XMALLOC (char *, argc + 1); 4977 + 4978 + /* Put quoted arguments into the new argument vector. */ 4979 + for (i = 0; i < argc; i++) 4980 + { 4981 + const char *string = argv[i]; 4982 + 4983 + if (string[0] == '\0') 4984 + new_argv[i] = xstrdup ("\"\""); 4985 + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) 4986 + { 4987 + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); 4988 + size_t length; 4989 + unsigned int backslashes; 4990 + const char *s; 4991 + char *quoted_string; 4992 + char *p; 4993 + 4994 + length = 0; 4995 + backslashes = 0; 4996 + if (quote_around) 4997 + length++; 4998 + for (s = string; *s != '\0'; s++) 4999 + { 5000 + char c = *s; 5001 + if (c == '"') 5002 + length += backslashes + 1; 5003 + length++; 5004 + if (c == '\\') 5005 + backslashes++; 5006 + else 5007 + backslashes = 0; 5008 + } 5009 + if (quote_around) 5010 + length += backslashes + 1; 5011 + 5012 + quoted_string = XMALLOC (char, length + 1); 5013 + 5014 + p = quoted_string; 5015 + backslashes = 0; 5016 + if (quote_around) 5017 + *p++ = '"'; 5018 + for (s = string; *s != '\0'; s++) 5019 + { 5020 + char c = *s; 5021 + if (c == '"') 5022 + { 5023 + unsigned int j; 5024 + for (j = backslashes + 1; j > 0; j--) 5025 + *p++ = '\\'; 5026 + } 5027 + *p++ = c; 5028 + if (c == '\\') 5029 + backslashes++; 5030 + else 5031 + backslashes = 0; 5032 + } 5033 + if (quote_around) 5034 + { 5035 + unsigned int j; 5036 + for (j = backslashes; j > 0; j--) 5037 + *p++ = '\\'; 5038 + *p++ = '"'; 5039 + } 5040 + *p = '\0'; 5041 + 5042 + new_argv[i] = quoted_string; 5043 + } 5044 + else 5045 + new_argv[i] = (char *) string; 5046 + } 5047 + new_argv[argc] = NULL; 5048 + 5049 + return new_argv; 5050 +} 5051 +EOF 5052 + ;; 5053 + esac 5054 + 5055 + cat <<"EOF" 5056 +void lt_dump_script (FILE* f) 5057 +{ 5058 +EOF 5059 + func_emit_wrapper yes | 5060 + $SED -e 's/\([\\"]\)/\\\1/g' \ 5061 + -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' 5062 + 5063 + cat <<"EOF" 5064 +} 5065 +EOF 5066 +} 5067 +# end: func_emit_cwrapperexe_src 5068 + 5069 +# func_win32_import_lib_p ARG 5070 +# True if ARG is an import lib, as indicated by $file_magic_cmd 5071 +func_win32_import_lib_p () 5072 +{ 5073 + $opt_debug 5074 + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in 5075 + *import*) : ;; 5076 + *) false ;; 5077 + esac 5078 +} 5079 + 5080 +# func_mode_link arg... 5081 +func_mode_link () 5082 +{ 5083 + $opt_debug 5084 + case $host in 5085 + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 5086 + # It is impossible to link a dll without this setting, and 5087 + # we shouldn't force the makefile maintainer to figure out 5088 + # which system we are compiling for in order to pass an extra 5089 + # flag for every libtool invocation. 5090 + # allow_undefined=no 5091 + 5092 + # FIXME: Unfortunately, there are problems with the above when trying 5093 + # to make a dll which has undefined symbols, in which case not 5094 + # even a static library is built. For now, we need to specify 5095 + # -no-undefined on the libtool link line when we can be certain 5096 + # that all symbols are satisfied, otherwise we get a static library. 5097 + allow_undefined=yes 5098 + ;; 5099 + *) 5100 + allow_undefined=yes 5101 + ;; 5102 + esac 5103 + libtool_args=$nonopt 5104 + base_compile="$nonopt $@" 5105 + compile_command=$nonopt 5106 + finalize_command=$nonopt 5107 + 5108 + compile_rpath= 5109 + finalize_rpath= 5110 + compile_shlibpath= 5111 + finalize_shlibpath= 5112 + convenience= 5113 + old_convenience= 5114 + deplibs= 5115 + old_deplibs= 5116 + compiler_flags= 5117 + linker_flags= 5118 + dllsearchpath= 5119 + lib_search_path=`pwd` 5120 + inst_prefix_dir= 5121 + new_inherited_linker_flags= 5122 + 5123 + avoid_version=no 5124 + bindir= 5125 + dlfiles= 5126 + dlprefiles= 5127 + dlself=no 5128 + export_dynamic=no 5129 + export_symbols= 5130 + export_symbols_regex= 5131 + generated= 5132 + libobjs= 5133 + ltlibs= 5134 + module=no 5135 + no_install=no 5136 + objs= 5137 + non_pic_objects= 5138 + precious_files_regex= 5139 + prefer_static_libs=no 5140 + preload=no 5141 + prev= 5142 + prevarg= 5143 + release= 5144 + rpath= 5145 + xrpath= 5146 + perm_rpath= 5147 + temp_rpath= 5148 + thread_safe=no 5149 + vinfo= 5150 + vinfo_number=no 5151 + weak_libs= 5152 + single_module="${wl}-single_module" 5153 + func_infer_tag $base_compile 5154 + 5155 + # We need to know -static, to get the right output filenames. 5156 + for arg 5157 + do 5158 + case $arg in 5159 + -shared) 5160 + test "$build_libtool_libs" != yes && \ 5161 + func_fatal_configuration "can not build a shared library" 5162 + build_old_libs=no 5163 + break 5164 + ;; 5165 + -all-static | -static | -static-libtool-libs) 5166 + case $arg in 5167 + -all-static) 5168 + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 5169 + func_warning "complete static linking is impossible in this configuration" 5170 + fi 5171 + if test -n "$link_static_flag"; then 5172 + dlopen_self=$dlopen_self_static 5173 + fi 5174 + prefer_static_libs=yes 5175 + ;; 5176 + -static) 5177 + if test -z "$pic_flag" && test -n "$link_static_flag"; then 5178 + dlopen_self=$dlopen_self_static 5179 + fi 5180 + prefer_static_libs=built 5181 + ;; 5182 + -static-libtool-libs) 5183 + if test -z "$pic_flag" && test -n "$link_static_flag"; then 5184 + dlopen_self=$dlopen_self_static 5185 + fi 5186 + prefer_static_libs=yes 5187 + ;; 5188 + esac 5189 + build_libtool_libs=no 5190 + build_old_libs=yes 5191 + break 5192 + ;; 5193 + esac 5194 + done 5195 + 5196 + # See if our shared archives depend on static archives. 5197 + test -n "$old_archive_from_new_cmds" && build_old_libs=yes 5198 + 5199 + # Go through the arguments, transforming them on the way. 5200 + while test "$#" -gt 0; do 5201 + arg="$1" 5202 + shift 5203 + func_quote_for_eval "$arg" 5204 + qarg=$func_quote_for_eval_unquoted_result 5205 + func_append libtool_args " $func_quote_for_eval_result" 5206 + 5207 + # If the previous option needs an argument, assign it. 5208 + if test -n "$prev"; then 5209 + case $prev in 5210 + output) 5211 + func_append compile_command " @OUTPUT@" 5212 + func_append finalize_command " @OUTPUT@" 5213 + ;; 5214 + esac 5215 + 5216 + case $prev in 5217 + bindir) 5218 + bindir="$arg" 5219 + prev= 5220 + continue 5221 + ;; 5222 + dlfiles|dlprefiles) 5223 + if test "$preload" = no; then 5224 + # Add the symbol object into the linking commands. 5225 + func_append compile_command " @SYMFILE@" 5226 + func_append finalize_command " @SYMFILE@" 5227 + preload=yes 5228 + fi 5229 + case $arg in 5230 + *.la | *.lo) ;; # We handle these cases below. 5231 + force) 5232 + if test "$dlself" = no; then 5233 + dlself=needless 5234 + export_dynamic=yes 5235 + fi 5236 + prev= 5237 + continue 5238 + ;; 5239 + self) 5240 + if test "$prev" = dlprefiles; then 5241 + dlself=yes 5242 + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 5243 + dlself=yes 5244 + else 5245 + dlself=needless 5246 + export_dynamic=yes 5247 + fi 5248 + prev= 5249 + continue 5250 + ;; 5251 + *) 5252 + if test "$prev" = dlfiles; then 5253 + func_append dlfiles " $arg" 5254 + else 5255 + func_append dlprefiles " $arg" 5256 + fi 5257 + prev= 5258 + continue 5259 + ;; 5260 + esac 5261 + ;; 5262 + expsyms) 5263 + export_symbols="$arg" 5264 + test -f "$arg" \ 5265 + || func_fatal_error "symbol file \`$arg' does not exist" 5266 + prev= 5267 + continue 5268 + ;; 5269 + expsyms_regex) 5270 + export_symbols_regex="$arg" 5271 + prev= 5272 + continue 5273 + ;; 5274 + framework) 5275 + case $host in 5276 + *-*-darwin*) 5277 + case "$deplibs " in 5278 + *" $qarg.ltframework "*) ;; 5279 + *) func_append deplibs " $qarg.ltframework" # this is fixed later 5280 + ;; 5281 + esac 5282 + ;; 5283 + esac 5284 + prev= 5285 + continue 5286 + ;; 5287 + inst_prefix) 5288 + inst_prefix_dir="$arg" 5289 + prev= 5290 + continue 5291 + ;; 5292 + objectlist) 5293 + if test -f "$arg"; then 5294 + save_arg=$arg 5295 + moreargs= 5296 + for fil in `cat "$save_arg"` 5297 + do 5298 +# func_append moreargs " $fil" 5299 + arg=$fil 5300 + # A libtool-controlled object. 5301 + 5302 + # Check to see that this really is a libtool object. 5303 + if func_lalib_unsafe_p "$arg"; then 5304 + pic_object= 5305 + non_pic_object= 5306 + 5307 + # Read the .lo file 5308 + func_source "$arg" 5309 + 5310 + if test -z "$pic_object" || 5311 + test -z "$non_pic_object" || 5312 + test "$pic_object" = none && 5313 + test "$non_pic_object" = none; then 5314 + func_fatal_error "cannot find name of object for \`$arg'" 5315 + fi 5316 + 5317 + # Extract subdirectory from the argument. 5318 + func_dirname "$arg" "/" "" 5319 + xdir="$func_dirname_result" 5320 + 5321 + if test "$pic_object" != none; then 5322 + # Prepend the subdirectory the object is found in. 5323 + pic_object="$xdir$pic_object" 5324 + 5325 + if test "$prev" = dlfiles; then 5326 + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 5327 + func_append dlfiles " $pic_object" 5328 + prev= 5329 + continue 5330 + else 5331 + # If libtool objects are unsupported, then we need to preload. 5332 + prev=dlprefiles 5333 + fi 5334 + fi 5335 + 5336 + # CHECK ME: I think I busted this. -Ossama 5337 + if test "$prev" = dlprefiles; then 5338 + # Preload the old-style object. 5339 + func_append dlprefiles " $pic_object" 5340 + prev= 5341 + fi 5342 + 5343 + # A PIC object. 5344 + func_append libobjs " $pic_object" 5345 + arg="$pic_object" 5346 + fi 5347 + 5348 + # Non-PIC object. 5349 + if test "$non_pic_object" != none; then 5350 + # Prepend the subdirectory the object is found in. 5351 + non_pic_object="$xdir$non_pic_object" 5352 + 5353 + # A standard non-PIC object 5354 + func_append non_pic_objects " $non_pic_object" 5355 + if test -z "$pic_object" || test "$pic_object" = none ; then 5356 + arg="$non_pic_object" 5357 + fi 5358 + else 5359 + # If the PIC object exists, use it instead. 5360 + # $xdir was prepended to $pic_object above. 5361 + non_pic_object="$pic_object" 5362 + func_append non_pic_objects " $non_pic_object" 5363 + fi 5364 + else 5365 + # Only an error if not doing a dry-run. 5366 + if $opt_dry_run; then 5367 + # Extract subdirectory from the argument. 5368 + func_dirname "$arg" "/" "" 5369 + xdir="$func_dirname_result" 5370 + 5371 + func_lo2o "$arg" 5372 + pic_object=$xdir$objdir/$func_lo2o_result 5373 + non_pic_object=$xdir$func_lo2o_result 5374 + func_append libobjs " $pic_object" 5375 + func_append non_pic_objects " $non_pic_object" 5376 + else 5377 + func_fatal_error "\`$arg' is not a valid libtool object" 5378 + fi 5379 + fi 5380 + done 5381 + else 5382 + func_fatal_error "link input file \`$arg' does not exist" 5383 + fi 5384 + arg=$save_arg 5385 + prev= 5386 + continue 5387 + ;; 5388 + precious_regex) 5389 + precious_files_regex="$arg" 5390 + prev= 5391 + continue 5392 + ;; 5393 + release) 5394 + release="-$arg" 5395 + prev= 5396 + continue 5397 + ;; 5398 + rpath | xrpath) 5399 + # We need an absolute path. 5400 + case $arg in 5401 + [\\/]* | [A-Za-z]:[\\/]*) ;; 5402 + *) 5403 + func_fatal_error "only absolute run-paths are allowed" 5404 + ;; 5405 + esac 5406 + if test "$prev" = rpath; then 5407 + case "$rpath " in 5408 + *" $arg "*) ;; 5409 + *) func_append rpath " $arg" ;; 5410 + esac 5411 + else 5412 + case "$xrpath " in 5413 + *" $arg "*) ;; 5414 + *) func_append xrpath " $arg" ;; 5415 + esac 5416 + fi 5417 + prev= 5418 + continue 5419 + ;; 5420 + shrext) 5421 + shrext_cmds="$arg" 5422 + prev= 5423 + continue 5424 + ;; 5425 + weak) 5426 + func_append weak_libs " $arg" 5427 + prev= 5428 + continue 5429 + ;; 5430 + xcclinker) 5431 + func_append linker_flags " $qarg" 5432 + func_append compiler_flags " $qarg" 5433 + prev= 5434 + func_append compile_command " $qarg" 5435 + func_append finalize_command " $qarg" 5436 + continue 5437 + ;; 5438 + xcompiler) 5439 + func_append compiler_flags " $qarg" 5440 + prev= 5441 + func_append compile_command " $qarg" 5442 + func_append finalize_command " $qarg" 5443 + continue 5444 + ;; 5445 + xlinker) 5446 + func_append linker_flags " $qarg" 5447 + func_append compiler_flags " $wl$qarg" 5448 + prev= 5449 + func_append compile_command " $wl$qarg" 5450 + func_append finalize_command " $wl$qarg" 5451 + continue 5452 + ;; 5453 + *) 5454 + eval "$prev=\"\$arg\"" 5455 + prev= 5456 + continue 5457 + ;; 5458 + esac 5459 + fi # test -n "$prev" 5460 + 5461 + prevarg="$arg" 5462 + 5463 + case $arg in 5464 + -all-static) 5465 + if test -n "$link_static_flag"; then 5466 + # See comment for -static flag below, for more details. 5467 + func_append compile_command " $link_static_flag" 5468 + func_append finalize_command " $link_static_flag" 5469 + fi 5470 + continue 5471 + ;; 5472 + 5473 + -allow-undefined) 5474 + # FIXME: remove this flag sometime in the future. 5475 + func_fatal_error "\`-allow-undefined' must not be used because it is the default" 5476 + ;; 5477 + 5478 + -avoid-version) 5479 + avoid_version=yes 5480 + continue 5481 + ;; 5482 + 5483 + -bindir) 5484 + prev=bindir 5485 + continue 5486 + ;; 5487 + 5488 + -dlopen) 5489 + prev=dlfiles 5490 + continue 5491 + ;; 5492 + 5493 + -dlpreopen) 5494 + prev=dlprefiles 5495 + continue 5496 + ;; 5497 + 5498 + -export-dynamic) 5499 + export_dynamic=yes 5500 + continue 5501 + ;; 5502 + 5503 + -export-symbols | -export-symbols-regex) 5504 + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 5505 + func_fatal_error "more than one -exported-symbols argument is not allowed" 5506 + fi 5507 + if test "X$arg" = "X-export-symbols"; then 5508 + prev=expsyms 5509 + else 5510 + prev=expsyms_regex 5511 + fi 5512 + continue 5513 + ;; 5514 + 5515 + -framework) 5516 + prev=framework 5517 + continue 5518 + ;; 5519 + 5520 + -inst-prefix-dir) 5521 + prev=inst_prefix 5522 + continue 5523 + ;; 5524 + 5525 + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 5526 + # so, if we see these flags be careful not to treat them like -L 5527 + -L[A-Z][A-Z]*:*) 5528 + case $with_gcc/$host in 5529 + no/*-*-irix* | /*-*-irix*) 5530 + func_append compile_command " $arg" 5531 + func_append finalize_command " $arg" 5532 + ;; 5533 + esac 5534 + continue 5535 + ;; 5536 + 5537 + -L*) 5538 + func_stripname "-L" '' "$arg" 5539 + if test -z "$func_stripname_result"; then 5540 + if test "$#" -gt 0; then 5541 + func_fatal_error "require no space between \`-L' and \`$1'" 5542 + else 5543 + func_fatal_error "need path for \`-L' option" 5544 + fi 5545 + fi 5546 + func_resolve_sysroot "$func_stripname_result" 5547 + dir=$func_resolve_sysroot_result 5548 + # We need an absolute path. 5549 + case $dir in 5550 + [\\/]* | [A-Za-z]:[\\/]*) ;; 5551 + *) 5552 + absdir=`cd "$dir" && pwd` 5553 + test -z "$absdir" && \ 5554 + func_fatal_error "cannot determine absolute directory name of \`$dir'" 5555 + dir="$absdir" 5556 + ;; 5557 + esac 5558 + case "$deplibs " in 5559 + *" -L$dir "* | *" $arg "*) 5560 + # Will only happen for absolute or sysroot arguments 5561 + ;; 5562 + *) 5563 + # Preserve sysroot, but never include relative directories 5564 + case $dir in 5565 + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; 5566 + *) func_append deplibs " -L$dir" ;; 5567 + esac 5568 + func_append lib_search_path " $dir" 5569 + ;; 5570 + esac 5571 + case $host in 5572 + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 5573 + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` 5574 + case :$dllsearchpath: in 5575 + *":$dir:"*) ;; 5576 + ::) dllsearchpath=$dir;; 5577 + *) func_append dllsearchpath ":$dir";; 5578 + esac 5579 + case :$dllsearchpath: in 5580 + *":$testbindir:"*) ;; 5581 + ::) dllsearchpath=$testbindir;; 5582 + *) func_append dllsearchpath ":$testbindir";; 5583 + esac 5584 + ;; 5585 + esac 5586 + continue 5587 + ;; 5588 + 5589 + -l*) 5590 + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 5591 + case $host in 5592 + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) 5593 + # These systems don't actually have a C or math library (as such) 5594 + continue 5595 + ;; 5596 + *-*-os2*) 5597 + # These systems don't actually have a C library (as such) 5598 + test "X$arg" = "X-lc" && continue 5599 + ;; 5600 + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 5601 + # Do not include libc due to us having libc/libc_r. 5602 + test "X$arg" = "X-lc" && continue 5603 + ;; 5604 + *-*-rhapsody* | *-*-darwin1.[012]) 5605 + # Rhapsody C and math libraries are in the System framework 5606 + func_append deplibs " System.ltframework" 5607 + continue 5608 + ;; 5609 + *-*-sco3.2v5* | *-*-sco5v6*) 5610 + # Causes problems with __ctype 5611 + test "X$arg" = "X-lc" && continue 5612 + ;; 5613 + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 5614 + # Compiler inserts libc in the correct place for threads to work 5615 + test "X$arg" = "X-lc" && continue 5616 + ;; 5617 + esac 5618 + elif test "X$arg" = "X-lc_r"; then 5619 + case $host in 5620 + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 5621 + # Do not include libc_r directly, use -pthread flag. 5622 + continue 5623 + ;; 5624 + esac 5625 + fi 5626 + func_append deplibs " $arg" 5627 + continue 5628 + ;; 5629 + 5630 + -module) 5631 + module=yes 5632 + continue 5633 + ;; 5634 + 5635 + # Tru64 UNIX uses -model [arg] to determine the layout of C++ 5636 + # classes, name mangling, and exception handling. 5637 + # Darwin uses the -arch flag to determine output architecture. 5638 + -model|-arch|-isysroot|--sysroot) 5639 + func_append compiler_flags " $arg" 5640 + func_append compile_command " $arg" 5641 + func_append finalize_command " $arg" 5642 + prev=xcompiler 5643 + continue 5644 + ;; 5645 + 5646 + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 5647 + func_append compiler_flags " $arg" 5648 + func_append compile_command " $arg" 5649 + func_append finalize_command " $arg" 5650 + case "$new_inherited_linker_flags " in 5651 + *" $arg "*) ;; 5652 + * ) func_append new_inherited_linker_flags " $arg" ;; 5653 + esac 5654 + continue 5655 + ;; 5656 + 5657 + -multi_module) 5658 + single_module="${wl}-multi_module" 5659 + continue 5660 + ;; 5661 + 5662 + -no-fast-install) 5663 + fast_install=no 5664 + continue 5665 + ;; 5666 + 5667 + -no-install) 5668 + case $host in 5669 + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) 5670 + # The PATH hackery in wrapper scripts is required on Windows 5671 + # and Darwin in order for the loader to find any dlls it needs. 5672 + func_warning "\`-no-install' is ignored for $host" 5673 + func_warning "assuming \`-no-fast-install' instead" 5674 + fast_install=no 5675 + ;; 5676 + *) no_install=yes ;; 5677 + esac 5678 + continue 5679 + ;; 5680 + 5681 + -no-undefined) 5682 + allow_undefined=no 5683 + continue 5684 + ;; 5685 + 5686 + -objectlist) 5687 + prev=objectlist 5688 + continue 5689 + ;; 5690 + 5691 + -o) prev=output ;; 5692 + 5693 + -precious-files-regex) 5694 + prev=precious_regex 5695 + continue 5696 + ;; 5697 + 5698 + -release) 5699 + prev=release 5700 + continue 5701 + ;; 5702 + 5703 + -rpath) 5704 + prev=rpath 5705 + continue 5706 + ;; 5707 + 5708 + -R) 5709 + prev=xrpath 5710 + continue 5711 + ;; 5712 + 5713 + -R*) 5714 + func_stripname '-R' '' "$arg" 5715 + dir=$func_stripname_result 5716 + # We need an absolute path. 5717 + case $dir in 5718 + [\\/]* | [A-Za-z]:[\\/]*) ;; 5719 + =*) 5720 + func_stripname '=' '' "$dir" 5721 + dir=$lt_sysroot$func_stripname_result 5722 + ;; 5723 + *) 5724 + func_fatal_error "only absolute run-paths are allowed" 5725 + ;; 5726 + esac 5727 + case "$xrpath " in 5728 + *" $dir "*) ;; 5729 + *) func_append xrpath " $dir" ;; 5730 + esac 5731 + continue 5732 + ;; 5733 + 5734 + -shared) 5735 + # The effects of -shared are defined in a previous loop. 5736 + continue 5737 + ;; 5738 + 5739 + -shrext) 5740 + prev=shrext 5741 + continue 5742 + ;; 5743 + 5744 + -static | -static-libtool-libs) 5745 + # The effects of -static are defined in a previous loop. 5746 + # We used to do the same as -all-static on platforms that 5747 + # didn't have a PIC flag, but the assumption that the effects 5748 + # would be equivalent was wrong. It would break on at least 5749 + # Digital Unix and AIX. 5750 + continue 5751 + ;; 5752 + 5753 + -thread-safe) 5754 + thread_safe=yes 5755 + continue 5756 + ;; 5757 + 5758 + -version-info) 5759 + prev=vinfo 5760 + continue 5761 + ;; 5762 + 5763 + -version-number) 5764 + prev=vinfo 5765 + vinfo_number=yes 5766 + continue 5767 + ;; 5768 + 5769 + -weak) 5770 + prev=weak 5771 + continue 5772 + ;; 5773 + 5774 + -Wc,*) 5775 + func_stripname '-Wc,' '' "$arg" 5776 + args=$func_stripname_result 5777 + arg= 5778 + save_ifs="$IFS"; IFS=',' 5779 + for flag in $args; do 5780 + IFS="$save_ifs" 5781 + func_quote_for_eval "$flag" 5782 + func_append arg " $func_quote_for_eval_result" 5783 + func_append compiler_flags " $func_quote_for_eval_result" 5784 + done 5785 + IFS="$save_ifs" 5786 + func_stripname ' ' '' "$arg" 5787 + arg=$func_stripname_result 5788 + ;; 5789 + 5790 + -Wl,*) 5791 + func_stripname '-Wl,' '' "$arg" 5792 + args=$func_stripname_result 5793 + arg= 5794 + save_ifs="$IFS"; IFS=',' 5795 + for flag in $args; do 5796 + IFS="$save_ifs" 5797 + func_quote_for_eval "$flag" 5798 + func_append arg " $wl$func_quote_for_eval_result" 5799 + func_append compiler_flags " $wl$func_quote_for_eval_result" 5800 + func_append linker_flags " $func_quote_for_eval_result" 5801 + done 5802 + IFS="$save_ifs" 5803 + func_stripname ' ' '' "$arg" 5804 + arg=$func_stripname_result 5805 + ;; 5806 + 5807 + -Xcompiler) 5808 + prev=xcompiler 5809 + continue 5810 + ;; 5811 + 5812 + -Xlinker) 5813 + prev=xlinker 5814 + continue 5815 + ;; 5816 + 5817 + -XCClinker) 5818 + prev=xcclinker 5819 + continue 5820 + ;; 5821 + 5822 + # -msg_* for osf cc 5823 + -msg_*) 5824 + func_quote_for_eval "$arg" 5825 + arg="$func_quote_for_eval_result" 5826 + ;; 5827 + 5828 + # Flags to be passed through unchanged, with rationale: 5829 + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler 5830 + # -r[0-9][0-9]* specify processor for the SGI compiler 5831 + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler 5832 + # +DA*, +DD* enable 64-bit mode for the HP compiler 5833 + # -q* compiler args for the IBM compiler 5834 + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC 5835 + # -F/path path to uninstalled frameworks, gcc on darwin 5836 + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC 5837 + # @file GCC response files 5838 + # -tp=* Portland pgcc target processor selection 5839 + # --sysroot=* for sysroot support 5840 + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization 5841 + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 5842 + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ 5843 + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) 5844 + func_quote_for_eval "$arg" 5845 + arg="$func_quote_for_eval_result" 5846 + func_append compile_command " $arg" 5847 + func_append finalize_command " $arg" 5848 + func_append compiler_flags " $arg" 5849 + continue 5850 + ;; 5851 + 5852 + # Some other compiler flag. 5853 + -* | +*) 5854 + func_quote_for_eval "$arg" 5855 + arg="$func_quote_for_eval_result" 5856 + ;; 5857 + 5858 + *.$objext) 5859 + # A standard object. 5860 + func_append objs " $arg" 5861 + ;; 5862 + 5863 + *.lo) 5864 + # A libtool-controlled object. 5865 + 5866 + # Check to see that this really is a libtool object. 5867 + if func_lalib_unsafe_p "$arg"; then 5868 + pic_object= 5869 + non_pic_object= 5870 + 5871 + # Read the .lo file 5872 + func_source "$arg" 5873 + 5874 + if test -z "$pic_object" || 5875 + test -z "$non_pic_object" || 5876 + test "$pic_object" = none && 5877 + test "$non_pic_object" = none; then 5878 + func_fatal_error "cannot find name of object for \`$arg'" 5879 + fi 5880 + 5881 + # Extract subdirectory from the argument. 5882 + func_dirname "$arg" "/" "" 5883 + xdir="$func_dirname_result" 5884 + 5885 + if test "$pic_object" != none; then 5886 + # Prepend the subdirectory the object is found in. 5887 + pic_object="$xdir$pic_object" 5888 + 5889 + if test "$prev" = dlfiles; then 5890 + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 5891 + func_append dlfiles " $pic_object" 5892 + prev= 5893 + continue 5894 + else 5895 + # If libtool objects are unsupported, then we need to preload. 5896 + prev=dlprefiles 5897 + fi 5898 + fi 5899 + 5900 + # CHECK ME: I think I busted this. -Ossama 5901 + if test "$prev" = dlprefiles; then 5902 + # Preload the old-style object. 5903 + func_append dlprefiles " $pic_object" 5904 + prev= 5905 + fi 5906 + 5907 + # A PIC object. 5908 + func_append libobjs " $pic_object" 5909 + arg="$pic_object" 5910 + fi 5911 + 5912 + # Non-PIC object. 5913 + if test "$non_pic_object" != none; then 5914 + # Prepend the subdirectory the object is found in. 5915 + non_pic_object="$xdir$non_pic_object" 5916 + 5917 + # A standard non-PIC object 5918 + func_append non_pic_objects " $non_pic_object" 5919 + if test -z "$pic_object" || test "$pic_object" = none ; then 5920 + arg="$non_pic_object" 5921 + fi 5922 + else 5923 + # If the PIC object exists, use it instead. 5924 + # $xdir was prepended to $pic_object above. 5925 + non_pic_object="$pic_object" 5926 + func_append non_pic_objects " $non_pic_object" 5927 + fi 5928 + else 5929 + # Only an error if not doing a dry-run. 5930 + if $opt_dry_run; then 5931 + # Extract subdirectory from the argument. 5932 + func_dirname "$arg" "/" "" 5933 + xdir="$func_dirname_result" 5934 + 5935 + func_lo2o "$arg" 5936 + pic_object=$xdir$objdir/$func_lo2o_result 5937 + non_pic_object=$xdir$func_lo2o_result 5938 + func_append libobjs " $pic_object" 5939 + func_append non_pic_objects " $non_pic_object" 5940 + else 5941 + func_fatal_error "\`$arg' is not a valid libtool object" 5942 + fi 5943 + fi 5944 + ;; 5945 + 5946 + *.$libext) 5947 + # An archive. 5948 + func_append deplibs " $arg" 5949 + func_append old_deplibs " $arg" 5950 + continue 5951 + ;; 5952 + 5953 + *.la) 5954 + # A libtool-controlled library. 5955 + 5956 + func_resolve_sysroot "$arg" 5957 + if test "$prev" = dlfiles; then 5958 + # This library was specified with -dlopen. 5959 + func_append dlfiles " $func_resolve_sysroot_result" 5960 + prev= 5961 + elif test "$prev" = dlprefiles; then 5962 + # The library was specified with -dlpreopen. 5963 + func_append dlprefiles " $func_resolve_sysroot_result" 5964 + prev= 5965 + else 5966 + func_append deplibs " $func_resolve_sysroot_result" 5967 + fi 5968 + continue 5969 + ;; 5970 + 5971 + # Some other compiler argument. 5972 + *) 5973 + # Unknown arguments in both finalize_command and compile_command need 5974 + # to be aesthetically quoted because they are evaled later. 5975 + func_quote_for_eval "$arg" 5976 + arg="$func_quote_for_eval_result" 5977 + ;; 5978 + esac # arg 5979 + 5980 + # Now actually substitute the argument into the commands. 5981 + if test -n "$arg"; then 5982 + func_append compile_command " $arg" 5983 + func_append finalize_command " $arg" 5984 + fi 5985 + done # argument parsing loop 5986 + 5987 + test -n "$prev" && \ 5988 + func_fatal_help "the \`$prevarg' option requires an argument" 5989 + 5990 + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 5991 + eval arg=\"$export_dynamic_flag_spec\" 5992 + func_append compile_command " $arg" 5993 + func_append finalize_command " $arg" 5994 + fi 5995 + 5996 + oldlibs= 5997 + # calculate the name of the file, without its directory 5998 + func_basename "$output" 5999 + outputname="$func_basename_result" 6000 + libobjs_save="$libobjs" 6001 + 6002 + if test -n "$shlibpath_var"; then 6003 + # get the directories listed in $shlibpath_var 6004 + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` 6005 + else 6006 + shlib_search_path= 6007 + fi 6008 + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 6009 + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 6010 + 6011 + func_dirname "$output" "/" "" 6012 + output_objdir="$func_dirname_result$objdir" 6013 + func_to_tool_file "$output_objdir/" 6014 + tool_output_objdir=$func_to_tool_file_result 6015 + # Create the object directory. 6016 + func_mkdir_p "$output_objdir" 6017 + 6018 + # Determine the type of output 6019 + case $output in 6020 + "") 6021 + func_fatal_help "you must specify an output file" 6022 + ;; 6023 + *.$libext) linkmode=oldlib ;; 6024 + *.lo | *.$objext) linkmode=obj ;; 6025 + *.la) linkmode=lib ;; 6026 + *) linkmode=prog ;; # Anything else should be a program. 6027 + esac 6028 + 6029 + specialdeplibs= 6030 + 6031 + libs= 6032 + # Find all interdependent deplibs by searching for libraries 6033 + # that are linked more than once (e.g. -la -lb -la) 6034 + for deplib in $deplibs; do 6035 + if $opt_preserve_dup_deps ; then 6036 + case "$libs " in 6037 + *" $deplib "*) func_append specialdeplibs " $deplib" ;; 6038 + esac 6039 + fi 6040 + func_append libs " $deplib" 6041 + done 6042 + 6043 + if test "$linkmode" = lib; then 6044 + libs="$predeps $libs $compiler_lib_search_path $postdeps" 6045 + 6046 + # Compute libraries that are listed more than once in $predeps 6047 + # $postdeps and mark them as special (i.e., whose duplicates are 6048 + # not to be eliminated). 6049 + pre_post_deps= 6050 + if $opt_duplicate_compiler_generated_deps; then 6051 + for pre_post_dep in $predeps $postdeps; do 6052 + case "$pre_post_deps " in 6053 + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; 6054 + esac 6055 + func_append pre_post_deps " $pre_post_dep" 6056 + done 6057 + fi 6058 + pre_post_deps= 6059 + fi 6060 + 6061 + deplibs= 6062 + newdependency_libs= 6063 + newlib_search_path= 6064 + need_relink=no # whether we're linking any uninstalled libtool libraries 6065 + notinst_deplibs= # not-installed libtool libraries 6066 + notinst_path= # paths that contain not-installed libtool libraries 6067 + 6068 + case $linkmode in 6069 + lib) 6070 + passes="conv dlpreopen link" 6071 + for file in $dlfiles $dlprefiles; do 6072 + case $file in 6073 + *.la) ;; 6074 + *) 6075 + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" 6076 + ;; 6077 + esac 6078 + done 6079 + ;; 6080 + prog) 6081 + compile_deplibs= 6082 + finalize_deplibs= 6083 + alldeplibs=no 6084 + newdlfiles= 6085 + newdlprefiles= 6086 + passes="conv scan dlopen dlpreopen link" 6087 + ;; 6088 + *) passes="conv" 6089 + ;; 6090 + esac 6091 + 6092 + for pass in $passes; do 6093 + # The preopen pass in lib mode reverses $deplibs; put it back here 6094 + # so that -L comes before libs that need it for instance... 6095 + if test "$linkmode,$pass" = "lib,link"; then 6096 + ## FIXME: Find the place where the list is rebuilt in the wrong 6097 + ## order, and fix it there properly 6098 + tmp_deplibs= 6099 + for deplib in $deplibs; do 6100 + tmp_deplibs="$deplib $tmp_deplibs" 6101 + done 6102 + deplibs="$tmp_deplibs" 6103 + fi 6104 + 6105 + if test "$linkmode,$pass" = "lib,link" || 6106 + test "$linkmode,$pass" = "prog,scan"; then 6107 + libs="$deplibs" 6108 + deplibs= 6109 + fi 6110 + if test "$linkmode" = prog; then 6111 + case $pass in 6112 + dlopen) libs="$dlfiles" ;; 6113 + dlpreopen) libs="$dlprefiles" ;; 6114 + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; 6115 + esac 6116 + fi 6117 + if test "$linkmode,$pass" = "lib,dlpreopen"; then 6118 + # Collect and forward deplibs of preopened libtool libs 6119 + for lib in $dlprefiles; do 6120 + # Ignore non-libtool-libs 6121 + dependency_libs= 6122 + func_resolve_sysroot "$lib" 6123 + case $lib in 6124 + *.la) func_source "$func_resolve_sysroot_result" ;; 6125 + esac 6126 + 6127 + # Collect preopened libtool deplibs, except any this library 6128 + # has declared as weak libs 6129 + for deplib in $dependency_libs; do 6130 + func_basename "$deplib" 6131 + deplib_base=$func_basename_result 6132 + case " $weak_libs " in 6133 + *" $deplib_base "*) ;; 6134 + *) func_append deplibs " $deplib" ;; 6135 + esac 6136 + done 6137 + done 6138 + libs="$dlprefiles" 6139 + fi 6140 + if test "$pass" = dlopen; then 6141 + # Collect dlpreopened libraries 6142 + save_deplibs="$deplibs" 6143 + deplibs= 6144 + fi 6145 + 6146 + for deplib in $libs; do 6147 + lib= 6148 + found=no 6149 + case $deplib in 6150 + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 6151 + if test "$linkmode,$pass" = "prog,link"; then 6152 + compile_deplibs="$deplib $compile_deplibs" 6153 + finalize_deplibs="$deplib $finalize_deplibs" 6154 + else 6155 + func_append compiler_flags " $deplib" 6156 + if test "$linkmode" = lib ; then 6157 + case "$new_inherited_linker_flags " in 6158 + *" $deplib "*) ;; 6159 + * ) func_append new_inherited_linker_flags " $deplib" ;; 6160 + esac 6161 + fi 6162 + fi 6163 + continue 6164 + ;; 6165 + -l*) 6166 + if test "$linkmode" != lib && test "$linkmode" != prog; then 6167 + func_warning "\`-l' is ignored for archives/objects" 6168 + continue 6169 + fi 6170 + func_stripname '-l' '' "$deplib" 6171 + name=$func_stripname_result 6172 + if test "$linkmode" = lib; then 6173 + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" 6174 + else 6175 + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" 6176 + fi 6177 + for searchdir in $searchdirs; do 6178 + for search_ext in .la $std_shrext .so .a; do 6179 + # Search the libtool library 6180 + lib="$searchdir/lib${name}${search_ext}" 6181 + if test -f "$lib"; then 6182 + if test "$search_ext" = ".la"; then 6183 + found=yes 6184 + else 6185 + found=no 6186 + fi 6187 + break 2 6188 + fi 6189 + done 6190 + done 6191 + if test "$found" != yes; then 6192 + # deplib doesn't seem to be a libtool library 6193 + if test "$linkmode,$pass" = "prog,link"; then 6194 + compile_deplibs="$deplib $compile_deplibs" 6195 + finalize_deplibs="$deplib $finalize_deplibs" 6196 + else 6197 + deplibs="$deplib $deplibs" 6198 + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 6199 + fi 6200 + continue 6201 + else # deplib is a libtool library 6202 + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 6203 + # We need to do some special things here, and not later. 6204 + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 6205 + case " $predeps $postdeps " in 6206 + *" $deplib "*) 6207 + if func_lalib_p "$lib"; then 6208 + library_names= 6209 + old_library= 6210 + func_source "$lib" 6211 + for l in $old_library $library_names; do 6212 + ll="$l" 6213 + done 6214 + if test "X$ll" = "X$old_library" ; then # only static version available 6215 + found=no 6216 + func_dirname "$lib" "" "." 6217 + ladir="$func_dirname_result" 6218 + lib=$ladir/$old_library 6219 + if test "$linkmode,$pass" = "prog,link"; then 6220 + compile_deplibs="$deplib $compile_deplibs" 6221 + finalize_deplibs="$deplib $finalize_deplibs" 6222 + else 6223 + deplibs="$deplib $deplibs" 6224 + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 6225 + fi 6226 + continue 6227 + fi 6228 + fi 6229 + ;; 6230 + *) ;; 6231 + esac 6232 + fi 6233 + fi 6234 + ;; # -l 6235 + *.ltframework) 6236 + if test "$linkmode,$pass" = "prog,link"; then 6237 + compile_deplibs="$deplib $compile_deplibs" 6238 + finalize_deplibs="$deplib $finalize_deplibs" 6239 + else 6240 + deplibs="$deplib $deplibs" 6241 + if test "$linkmode" = lib ; then 6242 + case "$new_inherited_linker_flags " in 6243 + *" $deplib "*) ;; 6244 + * ) func_append new_inherited_linker_flags " $deplib" ;; 6245 + esac 6246 + fi 6247 + fi 6248 + continue 6249 + ;; 6250 + -L*) 6251 + case $linkmode in 6252 + lib) 6253 + deplibs="$deplib $deplibs" 6254 + test "$pass" = conv && continue 6255 + newdependency_libs="$deplib $newdependency_libs" 6256 + func_stripname '-L' '' "$deplib" 6257 + func_resolve_sysroot "$func_stripname_result" 6258 + func_append newlib_search_path " $func_resolve_sysroot_result" 6259 + ;; 6260 + prog) 6261 + if test "$pass" = conv; then 6262 + deplibs="$deplib $deplibs" 6263 + continue 6264 + fi 6265 + if test "$pass" = scan; then 6266 + deplibs="$deplib $deplibs" 6267 + else 6268 + compile_deplibs="$deplib $compile_deplibs" 6269 + finalize_deplibs="$deplib $finalize_deplibs" 6270 + fi 6271 + func_stripname '-L' '' "$deplib" 6272 + func_resolve_sysroot "$func_stripname_result" 6273 + func_append newlib_search_path " $func_resolve_sysroot_result" 6274 + ;; 6275 + *) 6276 + func_warning "\`-L' is ignored for archives/objects" 6277 + ;; 6278 + esac # linkmode 6279 + continue 6280 + ;; # -L 6281 + -R*) 6282 + if test "$pass" = link; then 6283 + func_stripname '-R' '' "$deplib" 6284 + func_resolve_sysroot "$func_stripname_result" 6285 + dir=$func_resolve_sysroot_result 6286 + # Make sure the xrpath contains only unique directories. 6287 + case "$xrpath " in 6288 + *" $dir "*) ;; 6289 + *) func_append xrpath " $dir" ;; 6290 + esac 6291 + fi 6292 + deplibs="$deplib $deplibs" 6293 + continue 6294 + ;; 6295 + *.la) 6296 + func_resolve_sysroot "$deplib" 6297 + lib=$func_resolve_sysroot_result 6298 + ;; 6299 + *.$libext) 6300 + if test "$pass" = conv; then 6301 + deplibs="$deplib $deplibs" 6302 + continue 6303 + fi 6304 + case $linkmode in 6305 + lib) 6306 + # Linking convenience modules into shared libraries is allowed, 6307 + # but linking other static libraries is non-portable. 6308 + case " $dlpreconveniencelibs " in 6309 + *" $deplib "*) ;; 6310 + *) 6311 + valid_a_lib=no 6312 + case $deplibs_check_method in 6313 + match_pattern*) 6314 + set dummy $deplibs_check_method; shift 6315 + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 6316 + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ 6317 + | $EGREP "$match_pattern_regex" > /dev/null; then 6318 + valid_a_lib=yes 6319 + fi 6320 + ;; 6321 + pass_all) 6322 + valid_a_lib=yes 6323 + ;; 6324 + esac 6325 + if test "$valid_a_lib" != yes; then 6326 + echo 6327 + $ECHO "*** Warning: Trying to link with static lib archive $deplib." 6328 + echo "*** I have the capability to make that library automatically link in when" 6329 + echo "*** you link to this library. But I can only do this if you have a" 6330 + echo "*** shared version of the library, which you do not appear to have" 6331 + echo "*** because the file extensions .$libext of this argument makes me believe" 6332 + echo "*** that it is just a static archive that I should not use here." 6333 + else 6334 + echo 6335 + $ECHO "*** Warning: Linking the shared library $output against the" 6336 + $ECHO "*** static library $deplib is not portable!" 6337 + deplibs="$deplib $deplibs" 6338 + fi 6339 + ;; 6340 + esac 6341 + continue 6342 + ;; 6343 + prog) 6344 + if test "$pass" != link; then 6345 + deplibs="$deplib $deplibs" 6346 + else 6347 + compile_deplibs="$deplib $compile_deplibs" 6348 + finalize_deplibs="$deplib $finalize_deplibs" 6349 + fi 6350 + continue 6351 + ;; 6352 + esac # linkmode 6353 + ;; # *.$libext 6354 + *.lo | *.$objext) 6355 + if test "$pass" = conv; then 6356 + deplibs="$deplib $deplibs" 6357 + elif test "$linkmode" = prog; then 6358 + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 6359 + # If there is no dlopen support or we're linking statically, 6360 + # we need to preload. 6361 + func_append newdlprefiles " $deplib" 6362 + compile_deplibs="$deplib $compile_deplibs" 6363 + finalize_deplibs="$deplib $finalize_deplibs" 6364 + else 6365 + func_append newdlfiles " $deplib" 6366 + fi 6367 + fi 6368 + continue 6369 + ;; 6370 + %DEPLIBS%) 6371 + alldeplibs=yes 6372 + continue 6373 + ;; 6374 + esac # case $deplib 6375 + 6376 + if test "$found" = yes || test -f "$lib"; then : 6377 + else 6378 + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" 6379 + fi 6380 + 6381 + # Check to see that this really is a libtool archive. 6382 + func_lalib_unsafe_p "$lib" \ 6383 + || func_fatal_error "\`$lib' is not a valid libtool archive" 6384 + 6385 + func_dirname "$lib" "" "." 6386 + ladir="$func_dirname_result" 6387 + 6388 + dlname= 6389 + dlopen= 6390 + dlpreopen= 6391 + libdir= 6392 + library_names= 6393 + old_library= 6394 + inherited_linker_flags= 6395 + # If the library was installed with an old release of libtool, 6396 + # it will not redefine variables installed, or shouldnotlink 6397 + installed=yes 6398 + shouldnotlink=no 6399 + avoidtemprpath= 6400 + 6401 + 6402 + # Read the .la file 6403 + func_source "$lib" 6404 + 6405 + # Convert "-framework foo" to "foo.ltframework" 6406 + if test -n "$inherited_linker_flags"; then 6407 + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` 6408 + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do 6409 + case " $new_inherited_linker_flags " in 6410 + *" $tmp_inherited_linker_flag "*) ;; 6411 + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; 6412 + esac 6413 + done 6414 + fi 6415 + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 6416 + if test "$linkmode,$pass" = "lib,link" || 6417 + test "$linkmode,$pass" = "prog,scan" || 6418 + { test "$linkmode" != prog && test "$linkmode" != lib; }; then 6419 + test -n "$dlopen" && func_append dlfiles " $dlopen" 6420 + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" 6421 + fi 6422 + 6423 + if test "$pass" = conv; then 6424 + # Only check for convenience libraries 6425 + deplibs="$lib $deplibs" 6426 + if test -z "$libdir"; then 6427 + if test -z "$old_library"; then 6428 + func_fatal_error "cannot find name of link library for \`$lib'" 6429 + fi 6430 + # It is a libtool convenience library, so add in its objects. 6431 + func_append convenience " $ladir/$objdir/$old_library" 6432 + func_append old_convenience " $ladir/$objdir/$old_library" 6433 + elif test "$linkmode" != prog && test "$linkmode" != lib; then 6434 + func_fatal_error "\`$lib' is not a convenience library" 6435 + fi 6436 + tmp_libs= 6437 + for deplib in $dependency_libs; do 6438 + deplibs="$deplib $deplibs" 6439 + if $opt_preserve_dup_deps ; then 6440 + case "$tmp_libs " in 6441 + *" $deplib "*) func_append specialdeplibs " $deplib" ;; 6442 + esac 6443 + fi 6444 + func_append tmp_libs " $deplib" 6445 + done 6446 + continue 6447 + fi # $pass = conv 6448 + 6449 + 6450 + # Get the name of the library we link against. 6451 + linklib= 6452 + if test -n "$old_library" && 6453 + { test "$prefer_static_libs" = yes || 6454 + test "$prefer_static_libs,$installed" = "built,no"; }; then 6455 + linklib=$old_library 6456 + else 6457 + for l in $old_library $library_names; do 6458 + linklib="$l" 6459 + done 6460 + fi 6461 + if test -z "$linklib"; then 6462 + func_fatal_error "cannot find name of link library for \`$lib'" 6463 + fi 6464 + 6465 + # This library was specified with -dlopen. 6466 + if test "$pass" = dlopen; then 6467 + if test -z "$libdir"; then 6468 + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" 6469 + fi 6470 + if test -z "$dlname" || 6471 + test "$dlopen_support" != yes || 6472 + test "$build_libtool_libs" = no; then 6473 + # If there is no dlname, no dlopen support or we're linking 6474 + # statically, we need to preload. We also need to preload any 6475 + # dependent libraries so libltdl's deplib preloader doesn't 6476 + # bomb out in the load deplibs phase. 6477 + func_append dlprefiles " $lib $dependency_libs" 6478 + else 6479 + func_append newdlfiles " $lib" 6480 + fi 6481 + continue 6482 + fi # $pass = dlopen 6483 + 6484 + # We need an absolute path. 6485 + case $ladir in 6486 + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 6487 + *) 6488 + abs_ladir=`cd "$ladir" && pwd` 6489 + if test -z "$abs_ladir"; then 6490 + func_warning "cannot determine absolute directory name of \`$ladir'" 6491 + func_warning "passing it literally to the linker, although it might fail" 6492 + abs_ladir="$ladir" 6493 + fi 6494 + ;; 6495 + esac 6496 + func_basename "$lib" 6497 + laname="$func_basename_result" 6498 + 6499 + # Find the relevant object directory and library name. 6500 + if test "X$installed" = Xyes; then 6501 + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 6502 + func_warning "library \`$lib' was moved." 6503 + dir="$ladir" 6504 + absdir="$abs_ladir" 6505 + libdir="$abs_ladir" 6506 + else 6507 + dir="$lt_sysroot$libdir" 6508 + absdir="$lt_sysroot$libdir" 6509 + fi 6510 + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 6511 + else 6512 + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 6513 + dir="$ladir" 6514 + absdir="$abs_ladir" 6515 + # Remove this search path later 6516 + func_append notinst_path " $abs_ladir" 6517 + else 6518 + dir="$ladir/$objdir" 6519 + absdir="$abs_ladir/$objdir" 6520 + # Remove this search path later 6521 + func_append notinst_path " $abs_ladir" 6522 + fi 6523 + fi # $installed = yes 6524 + func_stripname 'lib' '.la' "$laname" 6525 + name=$func_stripname_result 6526 + 6527 + # This library was specified with -dlpreopen. 6528 + if test "$pass" = dlpreopen; then 6529 + if test -z "$libdir" && test "$linkmode" = prog; then 6530 + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" 6531 + fi 6532 + case "$host" in 6533 + # special handling for platforms with PE-DLLs. 6534 + *cygwin* | *mingw* | *cegcc* ) 6535 + # Linker will automatically link against shared library if both 6536 + # static and shared are present. Therefore, ensure we extract 6537 + # symbols from the import library if a shared library is present 6538 + # (otherwise, the dlopen module name will be incorrect). We do 6539 + # this by putting the import library name into $newdlprefiles. 6540 + # We recover the dlopen module name by 'saving' the la file 6541 + # name in a special purpose variable, and (later) extracting the 6542 + # dlname from the la file. 6543 + if test -n "$dlname"; then 6544 + func_tr_sh "$dir/$linklib" 6545 + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" 6546 + func_append newdlprefiles " $dir/$linklib" 6547 + else 6548 + func_append newdlprefiles " $dir/$old_library" 6549 + # Keep a list of preopened convenience libraries to check 6550 + # that they are being used correctly in the link pass. 6551 + test -z "$libdir" && \ 6552 + func_append dlpreconveniencelibs " $dir/$old_library" 6553 + fi 6554 + ;; 6555 + * ) 6556 + # Prefer using a static library (so that no silly _DYNAMIC symbols 6557 + # are required to link). 6558 + if test -n "$old_library"; then 6559 + func_append newdlprefiles " $dir/$old_library" 6560 + # Keep a list of preopened convenience libraries to check 6561 + # that they are being used correctly in the link pass. 6562 + test -z "$libdir" && \ 6563 + func_append dlpreconveniencelibs " $dir/$old_library" 6564 + # Otherwise, use the dlname, so that lt_dlopen finds it. 6565 + elif test -n "$dlname"; then 6566 + func_append newdlprefiles " $dir/$dlname" 6567 + else 6568 + func_append newdlprefiles " $dir/$linklib" 6569 + fi 6570 + ;; 6571 + esac 6572 + fi # $pass = dlpreopen 6573 + 6574 + if test -z "$libdir"; then 6575 + # Link the convenience library 6576 + if test "$linkmode" = lib; then 6577 + deplibs="$dir/$old_library $deplibs" 6578 + elif test "$linkmode,$pass" = "prog,link"; then 6579 + compile_deplibs="$dir/$old_library $compile_deplibs" 6580 + finalize_deplibs="$dir/$old_library $finalize_deplibs" 6581 + else 6582 + deplibs="$lib $deplibs" # used for prog,scan pass 6583 + fi 6584 + continue 6585 + fi 6586 + 6587 + 6588 + if test "$linkmode" = prog && test "$pass" != link; then 6589 + func_append newlib_search_path " $ladir" 6590 + deplibs="$lib $deplibs" 6591 + 6592 + linkalldeplibs=no 6593 + if test "$link_all_deplibs" != no || test -z "$library_names" || 6594 + test "$build_libtool_libs" = no; then 6595 + linkalldeplibs=yes 6596 + fi 6597 + 6598 + tmp_libs= 6599 + for deplib in $dependency_libs; do 6600 + case $deplib in 6601 + -L*) func_stripname '-L' '' "$deplib" 6602 + func_resolve_sysroot "$func_stripname_result" 6603 + func_append newlib_search_path " $func_resolve_sysroot_result" 6604 + ;; 6605 + esac 6606 + # Need to link against all dependency_libs? 6607 + if test "$linkalldeplibs" = yes; then 6608 + deplibs="$deplib $deplibs" 6609 + else 6610 + # Need to hardcode shared library paths 6611 + # or/and link against static libraries 6612 + newdependency_libs="$deplib $newdependency_libs" 6613 + fi 6614 + if $opt_preserve_dup_deps ; then 6615 + case "$tmp_libs " in 6616 + *" $deplib "*) func_append specialdeplibs " $deplib" ;; 6617 + esac 6618 + fi 6619 + func_append tmp_libs " $deplib" 6620 + done # for deplib 6621 + continue 6622 + fi # $linkmode = prog... 6623 + 6624 + if test "$linkmode,$pass" = "prog,link"; then 6625 + if test -n "$library_names" && 6626 + { { test "$prefer_static_libs" = no || 6627 + test "$prefer_static_libs,$installed" = "built,yes"; } || 6628 + test -z "$old_library"; }; then 6629 + # We need to hardcode the library path 6630 + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 6631 + # Make sure the rpath contains only unique directories. 6632 + case "$temp_rpath:" in 6633 + *"$absdir:"*) ;; 6634 + *) func_append temp_rpath "$absdir:" ;; 6635 + esac 6636 + fi 6637 + 6638 + # Hardcode the library path. 6639 + # Skip directories that are in the system default run-time 6640 + # search path. 6641 + case " $sys_lib_dlsearch_path " in 6642 + *" $absdir "*) ;; 6643 + *) 6644 + case "$compile_rpath " in 6645 + *" $absdir "*) ;; 6646 + *) func_append compile_rpath " $absdir" ;; 6647 + esac 6648 + ;; 6649 + esac 6650 + case " $sys_lib_dlsearch_path " in 6651 + *" $libdir "*) ;; 6652 + *) 6653 + case "$finalize_rpath " in 6654 + *" $libdir "*) ;; 6655 + *) func_append finalize_rpath " $libdir" ;; 6656 + esac 6657 + ;; 6658 + esac 6659 + fi # $linkmode,$pass = prog,link... 6660 + 6661 + if test "$alldeplibs" = yes && 6662 + { test "$deplibs_check_method" = pass_all || 6663 + { test "$build_libtool_libs" = yes && 6664 + test -n "$library_names"; }; }; then 6665 + # We only need to search for static libraries 6666 + continue 6667 + fi 6668 + fi 6669 + 6670 + link_static=no # Whether the deplib will be linked statically 6671 + use_static_libs=$prefer_static_libs 6672 + if test "$use_static_libs" = built && test "$installed" = yes; then 6673 + use_static_libs=no 6674 + fi 6675 + if test -n "$library_names" && 6676 + { test "$use_static_libs" = no || test -z "$old_library"; }; then 6677 + case $host in 6678 + *cygwin* | *mingw* | *cegcc*) 6679 + # No point in relinking DLLs because paths are not encoded 6680 + func_append notinst_deplibs " $lib" 6681 + need_relink=no 6682 + ;; 6683 + *) 6684 + if test "$installed" = no; then 6685 + func_append notinst_deplibs " $lib" 6686 + need_relink=yes 6687 + fi 6688 + ;; 6689 + esac 6690 + # This is a shared library 6691 + 6692 + # Warn about portability, can't link against -module's on some 6693 + # systems (darwin). Don't bleat about dlopened modules though! 6694 + dlopenmodule="" 6695 + for dlpremoduletest in $dlprefiles; do 6696 + if test "X$dlpremoduletest" = "X$lib"; then 6697 + dlopenmodule="$dlpremoduletest" 6698 + break 6699 + fi 6700 + done 6701 + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then 6702 + echo 6703 + if test "$linkmode" = prog; then 6704 + $ECHO "*** Warning: Linking the executable $output against the loadable module" 6705 + else 6706 + $ECHO "*** Warning: Linking the shared library $output against the loadable module" 6707 + fi 6708 + $ECHO "*** $linklib is not portable!" 6709 + fi 6710 + if test "$linkmode" = lib && 6711 + test "$hardcode_into_libs" = yes; then 6712 + # Hardcode the library path. 6713 + # Skip directories that are in the system default run-time 6714 + # search path. 6715 + case " $sys_lib_dlsearch_path " in 6716 + *" $absdir "*) ;; 6717 + *) 6718 + case "$compile_rpath " in 6719 + *" $absdir "*) ;; 6720 + *) func_append compile_rpath " $absdir" ;; 6721 + esac 6722 + ;; 6723 + esac 6724 + case " $sys_lib_dlsearch_path " in 6725 + *" $libdir "*) ;; 6726 + *) 6727 + case "$finalize_rpath " in 6728 + *" $libdir "*) ;; 6729 + *) func_append finalize_rpath " $libdir" ;; 6730 + esac 6731 + ;; 6732 + esac 6733 + fi 6734 + 6735 + if test -n "$old_archive_from_expsyms_cmds"; then 6736 + # figure out the soname 6737 + set dummy $library_names 6738 + shift 6739 + realname="$1" 6740 + shift 6741 + libname=`eval "\\$ECHO \"$libname_spec\""` 6742 + # use dlname if we got it. it's perfectly good, no? 6743 + if test -n "$dlname"; then 6744 + soname="$dlname" 6745 + elif test -n "$soname_spec"; then 6746 + # bleh windows 6747 + case $host in 6748 + *cygwin* | mingw* | *cegcc*) 6749 + func_arith $current - $age 6750 + major=$func_arith_result 6751 + versuffix="-$major" 6752 + ;; 6753 + esac 6754 + eval soname=\"$soname_spec\" 6755 + else 6756 + soname="$realname" 6757 + fi 6758 + 6759 + # Make a new name for the extract_expsyms_cmds to use 6760 + soroot="$soname" 6761 + func_basename "$soroot" 6762 + soname="$func_basename_result" 6763 + func_stripname 'lib' '.dll' "$soname" 6764 + newlib=libimp-$func_stripname_result.a 6765 + 6766 + # If the library has no export list, then create one now 6767 + if test -f "$output_objdir/$soname-def"; then : 6768 + else 6769 + func_verbose "extracting exported symbol list from \`$soname'" 6770 + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' 6771 + fi 6772 + 6773 + # Create $newlib 6774 + if test -f "$output_objdir/$newlib"; then :; else 6775 + func_verbose "generating import library for \`$soname'" 6776 + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' 6777 + fi 6778 + # make sure the library variables are pointing to the new library 6779 + dir=$output_objdir 6780 + linklib=$newlib 6781 + fi # test -n "$old_archive_from_expsyms_cmds" 6782 + 6783 + if test "$linkmode" = prog || test "$opt_mode" != relink; then 6784 + add_shlibpath= 6785 + add_dir= 6786 + add= 6787 + lib_linked=yes 6788 + case $hardcode_action in 6789 + immediate | unsupported) 6790 + if test "$hardcode_direct" = no; then 6791 + add="$dir/$linklib" 6792 + case $host in 6793 + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 6794 + *-*-sysv4*uw2*) add_dir="-L$dir" ;; 6795 + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 6796 + *-*-unixware7*) add_dir="-L$dir" ;; 6797 + *-*-darwin* ) 6798 + # if the lib is a (non-dlopened) module then we can not 6799 + # link against it, someone is ignoring the earlier warnings 6800 + if /usr/bin/file -L $add 2> /dev/null | 6801 + $GREP ": [^:]* bundle" >/dev/null ; then 6802 + if test "X$dlopenmodule" != "X$lib"; then 6803 + $ECHO "*** Warning: lib $linklib is a module, not a shared library" 6804 + if test -z "$old_library" ; then 6805 + echo 6806 + echo "*** And there doesn't seem to be a static archive available" 6807 + echo "*** The link will probably fail, sorry" 6808 + else 6809 + add="$dir/$old_library" 6810 + fi 6811 + elif test -n "$old_library"; then 6812 + add="$dir/$old_library" 6813 + fi 6814 + fi 6815 + esac 6816 + elif test "$hardcode_minus_L" = no; then 6817 + case $host in 6818 + *-*-sunos*) add_shlibpath="$dir" ;; 6819 + esac 6820 + add_dir="-L$dir" 6821 + add="-l$name" 6822 + elif test "$hardcode_shlibpath_var" = no; then 6823 + add_shlibpath="$dir" 6824 + add="-l$name" 6825 + else 6826 + lib_linked=no 6827 + fi 6828 + ;; 6829 + relink) 6830 + if test "$hardcode_direct" = yes && 6831 + test "$hardcode_direct_absolute" = no; then 6832 + add="$dir/$linklib" 6833 + elif test "$hardcode_minus_L" = yes; then 6834 + add_dir="-L$dir" 6835 + # Try looking first in the location we're being installed to. 6836 + if test -n "$inst_prefix_dir"; then 6837 + case $libdir in 6838 + [\\/]*) 6839 + func_append add_dir " -L$inst_prefix_dir$libdir" 6840 + ;; 6841 + esac 6842 + fi 6843 + add="-l$name" 6844 + elif test "$hardcode_shlibpath_var" = yes; then 6845 + add_shlibpath="$dir" 6846 + add="-l$name" 6847 + else 6848 + lib_linked=no 6849 + fi 6850 + ;; 6851 + *) lib_linked=no ;; 6852 + esac 6853 + 6854 + if test "$lib_linked" != yes; then 6855 + func_fatal_configuration "unsupported hardcode properties" 6856 + fi 6857 + 6858 + if test -n "$add_shlibpath"; then 6859 + case :$compile_shlibpath: in 6860 + *":$add_shlibpath:"*) ;; 6861 + *) func_append compile_shlibpath "$add_shlibpath:" ;; 6862 + esac 6863 + fi 6864 + if test "$linkmode" = prog; then 6865 + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 6866 + test -n "$add" && compile_deplibs="$add $compile_deplibs" 6867 + else 6868 + test -n "$add_dir" && deplibs="$add_dir $deplibs" 6869 + test -n "$add" && deplibs="$add $deplibs" 6870 + if test "$hardcode_direct" != yes && 6871 + test "$hardcode_minus_L" != yes && 6872 + test "$hardcode_shlibpath_var" = yes; then 6873 + case :$finalize_shlibpath: in 6874 + *":$libdir:"*) ;; 6875 + *) func_append finalize_shlibpath "$libdir:" ;; 6876 + esac 6877 + fi 6878 + fi 6879 + fi 6880 + 6881 + if test "$linkmode" = prog || test "$opt_mode" = relink; then 6882 + add_shlibpath= 6883 + add_dir= 6884 + add= 6885 + # Finalize command for both is simple: just hardcode it. 6886 + if test "$hardcode_direct" = yes && 6887 + test "$hardcode_direct_absolute" = no; then 6888 + add="$libdir/$linklib" 6889 + elif test "$hardcode_minus_L" = yes; then 6890 + add_dir="-L$libdir" 6891 + add="-l$name" 6892 + elif test "$hardcode_shlibpath_var" = yes; then 6893 + case :$finalize_shlibpath: in 6894 + *":$libdir:"*) ;; 6895 + *) func_append finalize_shlibpath "$libdir:" ;; 6896 + esac 6897 + add="-l$name" 6898 + elif test "$hardcode_automatic" = yes; then 6899 + if test -n "$inst_prefix_dir" && 6900 + test -f "$inst_prefix_dir$libdir/$linklib" ; then 6901 + add="$inst_prefix_dir$libdir/$linklib" 6902 + else 6903 + add="$libdir/$linklib" 6904 + fi 6905 + else 6906 + # We cannot seem to hardcode it, guess we'll fake it. 6907 + add_dir="-L$libdir" 6908 + # Try looking first in the location we're being installed to. 6909 + if test -n "$inst_prefix_dir"; then 6910 + case $libdir in 6911 + [\\/]*) 6912 + func_append add_dir " -L$inst_prefix_dir$libdir" 6913 + ;; 6914 + esac 6915 + fi 6916 + add="-l$name" 6917 + fi 6918 + 6919 + if test "$linkmode" = prog; then 6920 + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 6921 + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 6922 + else 6923 + test -n "$add_dir" && deplibs="$add_dir $deplibs" 6924 + test -n "$add" && deplibs="$add $deplibs" 6925 + fi 6926 + fi 6927 + elif test "$linkmode" = prog; then 6928 + # Here we assume that one of hardcode_direct or hardcode_minus_L 6929 + # is not unsupported. This is valid on all known static and 6930 + # shared platforms. 6931 + if test "$hardcode_direct" != unsupported; then 6932 + test -n "$old_library" && linklib="$old_library" 6933 + compile_deplibs="$dir/$linklib $compile_deplibs" 6934 + finalize_deplibs="$dir/$linklib $finalize_deplibs" 6935 + else 6936 + compile_deplibs="-l$name -L$dir $compile_deplibs" 6937 + finalize_deplibs="-l$name -L$dir $finalize_deplibs" 6938 + fi 6939 + elif test "$build_libtool_libs" = yes; then 6940 + # Not a shared library 6941 + if test "$deplibs_check_method" != pass_all; then 6942 + # We're trying link a shared library against a static one 6943 + # but the system doesn't support it. 6944 + 6945 + # Just print a warning and add the library to dependency_libs so 6946 + # that the program can be linked against the static library. 6947 + echo 6948 + $ECHO "*** Warning: This system can not link to static lib archive $lib." 6949 + echo "*** I have the capability to make that library automatically link in when" 6950 + echo "*** you link to this library. But I can only do this if you have a" 6951 + echo "*** shared version of the library, which you do not appear to have." 6952 + if test "$module" = yes; then 6953 + echo "*** But as you try to build a module library, libtool will still create " 6954 + echo "*** a static module, that should work as long as the dlopening application" 6955 + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 6956 + if test -z "$global_symbol_pipe"; then 6957 + echo 6958 + echo "*** However, this would only work if libtool was able to extract symbol" 6959 + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 6960 + echo "*** not find such a program. So, this module is probably useless." 6961 + echo "*** \`nm' from GNU binutils and a full rebuild may help." 6962 + fi 6963 + if test "$build_old_libs" = no; then 6964 + build_libtool_libs=module 6965 + build_old_libs=yes 6966 + else 6967 + build_libtool_libs=no 6968 + fi 6969 + fi 6970 + else 6971 + deplibs="$dir/$old_library $deplibs" 6972 + link_static=yes 6973 + fi 6974 + fi # link shared/static library? 6975 + 6976 + if test "$linkmode" = lib; then 6977 + if test -n "$dependency_libs" && 6978 + { test "$hardcode_into_libs" != yes || 6979 + test "$build_old_libs" = yes || 6980 + test "$link_static" = yes; }; then 6981 + # Extract -R from dependency_libs 6982 + temp_deplibs= 6983 + for libdir in $dependency_libs; do 6984 + case $libdir in 6985 + -R*) func_stripname '-R' '' "$libdir" 6986 + temp_xrpath=$func_stripname_result 6987 + case " $xrpath " in 6988 + *" $temp_xrpath "*) ;; 6989 + *) func_append xrpath " $temp_xrpath";; 6990 + esac;; 6991 + *) func_append temp_deplibs " $libdir";; 6992 + esac 6993 + done 6994 + dependency_libs="$temp_deplibs" 6995 + fi 6996 + 6997 + func_append newlib_search_path " $absdir" 6998 + # Link against this library 6999 + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 7000 + # ... and its dependency_libs 7001 + tmp_libs= 7002 + for deplib in $dependency_libs; do 7003 + newdependency_libs="$deplib $newdependency_libs" 7004 + case $deplib in 7005 + -L*) func_stripname '-L' '' "$deplib" 7006 + func_resolve_sysroot "$func_stripname_result";; 7007 + *) func_resolve_sysroot "$deplib" ;; 7008 + esac 7009 + if $opt_preserve_dup_deps ; then 7010 + case "$tmp_libs " in 7011 + *" $func_resolve_sysroot_result "*) 7012 + func_append specialdeplibs " $func_resolve_sysroot_result" ;; 7013 + esac 7014 + fi 7015 + func_append tmp_libs " $func_resolve_sysroot_result" 7016 + done 7017 + 7018 + if test "$link_all_deplibs" != no; then 7019 + # Add the search paths of all dependency libraries 7020 + for deplib in $dependency_libs; do 7021 + path= 7022 + case $deplib in 7023 + -L*) path="$deplib" ;; 7024 + *.la) 7025 + func_resolve_sysroot "$deplib" 7026 + deplib=$func_resolve_sysroot_result 7027 + func_dirname "$deplib" "" "." 7028 + dir=$func_dirname_result 7029 + # We need an absolute path. 7030 + case $dir in 7031 + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 7032 + *) 7033 + absdir=`cd "$dir" && pwd` 7034 + if test -z "$absdir"; then 7035 + func_warning "cannot determine absolute directory name of \`$dir'" 7036 + absdir="$dir" 7037 + fi 7038 + ;; 7039 + esac 7040 + if $GREP "^installed=no" $deplib > /dev/null; then 7041 + case $host in 7042 + *-*-darwin*) 7043 + depdepl= 7044 + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 7045 + if test -n "$deplibrary_names" ; then 7046 + for tmp in $deplibrary_names ; do 7047 + depdepl=$tmp 7048 + done 7049 + if test -f "$absdir/$objdir/$depdepl" ; then 7050 + depdepl="$absdir/$objdir/$depdepl" 7051 + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 7052 + if test -z "$darwin_install_name"; then 7053 + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 7054 + fi 7055 + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" 7056 + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" 7057 + path= 7058 + fi 7059 + fi 7060 + ;; 7061 + *) 7062 + path="-L$absdir/$objdir" 7063 + ;; 7064 + esac 7065 + else 7066 + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 7067 + test -z "$libdir" && \ 7068 + func_fatal_error "\`$deplib' is not a valid libtool archive" 7069 + test "$absdir" != "$libdir" && \ 7070 + func_warning "\`$deplib' seems to be moved" 7071 + 7072 + path="-L$absdir" 7073 + fi 7074 + ;; 7075 + esac 7076 + case " $deplibs " in 7077 + *" $path "*) ;; 7078 + *) deplibs="$path $deplibs" ;; 7079 + esac 7080 + done 7081 + fi # link_all_deplibs != no 7082 + fi # linkmode = lib 7083 + done # for deplib in $libs 7084 + if test "$pass" = link; then 7085 + if test "$linkmode" = "prog"; then 7086 + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" 7087 + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" 7088 + else 7089 + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 7090 + fi 7091 + fi 7092 + dependency_libs="$newdependency_libs" 7093 + if test "$pass" = dlpreopen; then 7094 + # Link the dlpreopened libraries before other libraries 7095 + for deplib in $save_deplibs; do 7096 + deplibs="$deplib $deplibs" 7097 + done 7098 + fi 7099 + if test "$pass" != dlopen; then 7100 + if test "$pass" != conv; then 7101 + # Make sure lib_search_path contains only unique directories. 7102 + lib_search_path= 7103 + for dir in $newlib_search_path; do 7104 + case "$lib_search_path " in 7105 + *" $dir "*) ;; 7106 + *) func_append lib_search_path " $dir" ;; 7107 + esac 7108 + done 7109 + newlib_search_path= 7110 + fi 7111 + 7112 + if test "$linkmode,$pass" != "prog,link"; then 7113 + vars="deplibs" 7114 + else 7115 + vars="compile_deplibs finalize_deplibs" 7116 + fi 7117 + for var in $vars dependency_libs; do 7118 + # Add libraries to $var in reverse order 7119 + eval tmp_libs=\"\$$var\" 7120 + new_libs= 7121 + for deplib in $tmp_libs; do 7122 + # FIXME: Pedantically, this is the right thing to do, so 7123 + # that some nasty dependency loop isn't accidentally 7124 + # broken: 7125 + #new_libs="$deplib $new_libs" 7126 + # Pragmatically, this seems to cause very few problems in 7127 + # practice: 7128 + case $deplib in 7129 + -L*) new_libs="$deplib $new_libs" ;; 7130 + -R*) ;; 7131 + *) 7132 + # And here is the reason: when a library appears more 7133 + # than once as an explicit dependence of a library, or 7134 + # is implicitly linked in more than once by the 7135 + # compiler, it is considered special, and multiple 7136 + # occurrences thereof are not removed. Compare this 7137 + # with having the same library being listed as a 7138 + # dependency of multiple other libraries: in this case, 7139 + # we know (pedantically, we assume) the library does not 7140 + # need to be listed more than once, so we keep only the 7141 + # last copy. This is not always right, but it is rare 7142 + # enough that we require users that really mean to play 7143 + # such unportable linking tricks to link the library 7144 + # using -Wl,-lname, so that libtool does not consider it 7145 + # for duplicate removal. 7146 + case " $specialdeplibs " in 7147 + *" $deplib "*) new_libs="$deplib $new_libs" ;; 7148 + *) 7149 + case " $new_libs " in 7150 + *" $deplib "*) ;; 7151 + *) new_libs="$deplib $new_libs" ;; 7152 + esac 7153 + ;; 7154 + esac 7155 + ;; 7156 + esac 7157 + done 7158 + tmp_libs= 7159 + for deplib in $new_libs; do 7160 + case $deplib in 7161 + -L*) 7162 + case " $tmp_libs " in 7163 + *" $deplib "*) ;; 7164 + *) func_append tmp_libs " $deplib" ;; 7165 + esac 7166 + ;; 7167 + *) func_append tmp_libs " $deplib" ;; 7168 + esac 7169 + done 7170 + eval $var=\"$tmp_libs\" 7171 + done # for var 7172 + fi 7173 + # Last step: remove runtime libs from dependency_libs 7174 + # (they stay in deplibs) 7175 + tmp_libs= 7176 + for i in $dependency_libs ; do 7177 + case " $predeps $postdeps $compiler_lib_search_path " in 7178 + *" $i "*) 7179 + i="" 7180 + ;; 7181 + esac 7182 + if test -n "$i" ; then 7183 + func_append tmp_libs " $i" 7184 + fi 7185 + done 7186 + dependency_libs=$tmp_libs 7187 + done # for pass 7188 + if test "$linkmode" = prog; then 7189 + dlfiles="$newdlfiles" 7190 + fi 7191 + if test "$linkmode" = prog || test "$linkmode" = lib; then 7192 + dlprefiles="$newdlprefiles" 7193 + fi 7194 + 7195 + case $linkmode in 7196 + oldlib) 7197 + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 7198 + func_warning "\`-dlopen' is ignored for archives" 7199 + fi 7200 + 7201 + case " $deplibs" in 7202 + *\ -l* | *\ -L*) 7203 + func_warning "\`-l' and \`-L' are ignored for archives" ;; 7204 + esac 7205 + 7206 + test -n "$rpath" && \ 7207 + func_warning "\`-rpath' is ignored for archives" 7208 + 7209 + test -n "$xrpath" && \ 7210 + func_warning "\`-R' is ignored for archives" 7211 + 7212 + test -n "$vinfo" && \ 7213 + func_warning "\`-version-info/-version-number' is ignored for archives" 7214 + 7215 + test -n "$release" && \ 7216 + func_warning "\`-release' is ignored for archives" 7217 + 7218 + test -n "$export_symbols$export_symbols_regex" && \ 7219 + func_warning "\`-export-symbols' is ignored for archives" 7220 + 7221 + # Now set the variables for building old libraries. 7222 + build_libtool_libs=no 7223 + oldlibs="$output" 7224 + func_append objs "$old_deplibs" 7225 + ;; 7226 + 7227 + lib) 7228 + # Make sure we only generate libraries of the form `libNAME.la'. 7229 + case $outputname in 7230 + lib*) 7231 + func_stripname 'lib' '.la' "$outputname" 7232 + name=$func_stripname_result 7233 + eval shared_ext=\"$shrext_cmds\" 7234 + eval libname=\"$libname_spec\" 7235 + ;; 7236 + *) 7237 + test "$module" = no && \ 7238 + func_fatal_help "libtool library \`$output' must begin with \`lib'" 7239 + 7240 + if test "$need_lib_prefix" != no; then 7241 + # Add the "lib" prefix for modules if required 7242 + func_stripname '' '.la' "$outputname" 7243 + name=$func_stripname_result 7244 + eval shared_ext=\"$shrext_cmds\" 7245 + eval libname=\"$libname_spec\" 7246 + else 7247 + func_stripname '' '.la' "$outputname" 7248 + libname=$func_stripname_result 7249 + fi 7250 + ;; 7251 + esac 7252 + 7253 + if test -n "$objs"; then 7254 + if test "$deplibs_check_method" != pass_all; then 7255 + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 7256 + else 7257 + echo 7258 + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" 7259 + $ECHO "*** objects $objs is not portable!" 7260 + func_append libobjs " $objs" 7261 + fi 7262 + fi 7263 + 7264 + test "$dlself" != no && \ 7265 + func_warning "\`-dlopen self' is ignored for libtool libraries" 7266 + 7267 + set dummy $rpath 7268 + shift 7269 + test "$#" -gt 1 && \ 7270 + func_warning "ignoring multiple \`-rpath's for a libtool library" 7271 + 7272 + install_libdir="$1" 7273 + 7274 + oldlibs= 7275 + if test -z "$rpath"; then 7276 + if test "$build_libtool_libs" = yes; then 7277 + # Building a libtool convenience library. 7278 + # Some compilers have problems with a `.al' extension so 7279 + # convenience libraries should have the same extension an 7280 + # archive normally would. 7281 + oldlibs="$output_objdir/$libname.$libext $oldlibs" 7282 + build_libtool_libs=convenience 7283 + build_old_libs=yes 7284 + fi 7285 + 7286 + test -n "$vinfo" && \ 7287 + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" 7288 + 7289 + test -n "$release" && \ 7290 + func_warning "\`-release' is ignored for convenience libraries" 7291 + else 7292 + 7293 + # Parse the version information argument. 7294 + save_ifs="$IFS"; IFS=':' 7295 + set dummy $vinfo 0 0 0 7296 + shift 7297 + IFS="$save_ifs" 7298 + 7299 + test -n "$7" && \ 7300 + func_fatal_help "too many parameters to \`-version-info'" 7301 + 7302 + # convert absolute version numbers to libtool ages 7303 + # this retains compatibility with .la files and attempts 7304 + # to make the code below a bit more comprehensible 7305 + 7306 + case $vinfo_number in 7307 + yes) 7308 + number_major="$1" 7309 + number_minor="$2" 7310 + number_revision="$3" 7311 + # 7312 + # There are really only two kinds -- those that 7313 + # use the current revision as the major version 7314 + # and those that subtract age and use age as 7315 + # a minor version. But, then there is irix 7316 + # which has an extra 1 added just for fun 7317 + # 7318 + case $version_type in 7319 + darwin|linux|osf|windows|none) 7320 + func_arith $number_major + $number_minor 7321 + current=$func_arith_result 7322 + age="$number_minor" 7323 + revision="$number_revision" 7324 + ;; 7325 + freebsd-aout|freebsd-elf|qnx|sunos) 7326 + current="$number_major" 7327 + revision="$number_minor" 7328 + age="0" 7329 + ;; 7330 + irix|nonstopux) 7331 + func_arith $number_major + $number_minor 7332 + current=$func_arith_result 7333 + age="$number_minor" 7334 + revision="$number_minor" 7335 + lt_irix_increment=no 7336 + ;; 7337 + esac 7338 + ;; 7339 + no) 7340 + current="$1" 7341 + revision="$2" 7342 + age="$3" 7343 + ;; 7344 + esac 7345 + 7346 + # Check that each of the things are valid numbers. 7347 + case $current in 7348 + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 7349 + *) 7350 + func_error "CURRENT \`$current' must be a nonnegative integer" 7351 + func_fatal_error "\`$vinfo' is not valid version information" 7352 + ;; 7353 + esac 7354 + 7355 + case $revision in 7356 + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 7357 + *) 7358 + func_error "REVISION \`$revision' must be a nonnegative integer" 7359 + func_fatal_error "\`$vinfo' is not valid version information" 7360 + ;; 7361 + esac 7362 + 7363 + case $age in 7364 + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 7365 + *) 7366 + func_error "AGE \`$age' must be a nonnegative integer" 7367 + func_fatal_error "\`$vinfo' is not valid version information" 7368 + ;; 7369 + esac 7370 + 7371 + if test "$age" -gt "$current"; then 7372 + func_error "AGE \`$age' is greater than the current interface number \`$current'" 7373 + func_fatal_error "\`$vinfo' is not valid version information" 7374 + fi 7375 + 7376 + # Calculate the version variables. 7377 + major= 7378 + versuffix= 7379 + verstring= 7380 + case $version_type in 7381 + none) ;; 7382 + 7383 + darwin) 7384 + # Like Linux, but with the current version available in 7385 + # verstring for coding it into the library header 7386 + func_arith $current - $age 7387 + major=.$func_arith_result 7388 + versuffix="$major.$age.$revision" 7389 + # Darwin ld doesn't like 0 for these options... 7390 + func_arith $current + 1 7391 + minor_current=$func_arith_result 7392 + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 7393 + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" 7394 + ;; 7395 + 7396 + freebsd-aout) 7397 + major=".$current" 7398 + versuffix=".$current.$revision"; 7399 + ;; 7400 + 7401 + freebsd-elf) 7402 + major=".$current" 7403 + versuffix=".$current" 7404 + ;; 7405 + 7406 + irix | nonstopux) 7407 + if test "X$lt_irix_increment" = "Xno"; then 7408 + func_arith $current - $age 7409 + else 7410 + func_arith $current - $age + 1 7411 + fi 7412 + major=$func_arith_result 7413 + 7414 + case $version_type in 7415 + nonstopux) verstring_prefix=nonstopux ;; 7416 + *) verstring_prefix=sgi ;; 7417 + esac 7418 + verstring="$verstring_prefix$major.$revision" 7419 + 7420 + # Add in all the interfaces that we are compatible with. 7421 + loop=$revision 7422 + while test "$loop" -ne 0; do 7423 + func_arith $revision - $loop 7424 + iface=$func_arith_result 7425 + func_arith $loop - 1 7426 + loop=$func_arith_result 7427 + verstring="$verstring_prefix$major.$iface:$verstring" 7428 + done 7429 + 7430 + # Before this point, $major must not contain `.'. 7431 + major=.$major 7432 + versuffix="$major.$revision" 7433 + ;; 7434 + 7435 + linux) 7436 + func_arith $current - $age 7437 + major=.$func_arith_result 7438 + versuffix="$major.$age.$revision" 7439 + ;; 7440 + 7441 + osf) 7442 + func_arith $current - $age 7443 + major=.$func_arith_result 7444 + versuffix=".$current.$age.$revision" 7445 + verstring="$current.$age.$revision" 7446 + 7447 + # Add in all the interfaces that we are compatible with. 7448 + loop=$age 7449 + while test "$loop" -ne 0; do 7450 + func_arith $current - $loop 7451 + iface=$func_arith_result 7452 + func_arith $loop - 1 7453 + loop=$func_arith_result 7454 + verstring="$verstring:${iface}.0" 7455 + done 7456 + 7457 + # Make executables depend on our current version. 7458 + func_append verstring ":${current}.0" 7459 + ;; 7460 + 7461 + qnx) 7462 + major=".$current" 7463 + versuffix=".$current" 7464 + ;; 7465 + 7466 + sunos) 7467 + major=".$current" 7468 + versuffix=".$current.$revision" 7469 + ;; 7470 + 7471 + windows) 7472 + # Use '-' rather than '.', since we only want one 7473 + # extension on DOS 8.3 filesystems. 7474 + func_arith $current - $age 7475 + major=$func_arith_result 7476 + versuffix="-$major" 7477 + ;; 7478 + 7479 + *) 7480 + func_fatal_configuration "unknown library version type \`$version_type'" 7481 + ;; 7482 + esac 7483 + 7484 + # Clear the version info if we defaulted, and they specified a release. 7485 + if test -z "$vinfo" && test -n "$release"; then 7486 + major= 7487 + case $version_type in 7488 + darwin) 7489 + # we can't check for "0.0" in archive_cmds due to quoting 7490 + # problems, so we reset it completely 7491 + verstring= 7492 + ;; 7493 + *) 7494 + verstring="0.0" 7495 + ;; 7496 + esac 7497 + if test "$need_version" = no; then 7498 + versuffix= 7499 + else 7500 + versuffix=".0.0" 7501 + fi 7502 + fi 7503 + 7504 + # Remove version info from name if versioning should be avoided 7505 + if test "$avoid_version" = yes && test "$need_version" = no; then 7506 + major= 7507 + versuffix= 7508 + verstring="" 7509 + fi 7510 + 7511 + # Check to see if the archive will have undefined symbols. 7512 + if test "$allow_undefined" = yes; then 7513 + if test "$allow_undefined_flag" = unsupported; then 7514 + func_warning "undefined symbols not allowed in $host shared libraries" 7515 + build_libtool_libs=no 7516 + build_old_libs=yes 7517 + fi 7518 + else 7519 + # Don't allow undefined symbols. 7520 + allow_undefined_flag="$no_undefined_flag" 7521 + fi 7522 + 7523 + fi 7524 + 7525 + func_generate_dlsyms "$libname" "$libname" "yes" 7526 + func_append libobjs " $symfileobj" 7527 + test "X$libobjs" = "X " && libobjs= 7528 + 7529 + if test "$opt_mode" != relink; then 7530 + # Remove our outputs, but don't remove object files since they 7531 + # may have been created when compiling PIC objects. 7532 + removelist= 7533 + tempremovelist=`$ECHO "$output_objdir/*"` 7534 + for p in $tempremovelist; do 7535 + case $p in 7536 + *.$objext | *.gcno) 7537 + ;; 7538 + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 7539 + if test "X$precious_files_regex" != "X"; then 7540 + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 7541 + then 7542 + continue 7543 + fi 7544 + fi 7545 + func_append removelist " $p" 7546 + ;; 7547 + *) ;; 7548 + esac 7549 + done 7550 + test -n "$removelist" && \ 7551 + func_show_eval "${RM}r \$removelist" 7552 + fi 7553 + 7554 + # Now set the variables for building old libraries. 7555 + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 7556 + func_append oldlibs " $output_objdir/$libname.$libext" 7557 + 7558 + # Transform .lo files to .o files. 7559 + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` 7560 + fi 7561 + 7562 + # Eliminate all temporary directories. 7563 + #for path in $notinst_path; do 7564 + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` 7565 + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` 7566 + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` 7567 + #done 7568 + 7569 + if test -n "$xrpath"; then 7570 + # If the user specified any rpath flags, then add them. 7571 + temp_xrpath= 7572 + for libdir in $xrpath; do 7573 + func_replace_sysroot "$libdir" 7574 + func_append temp_xrpath " -R$func_replace_sysroot_result" 7575 + case "$finalize_rpath " in 7576 + *" $libdir "*) ;; 7577 + *) func_append finalize_rpath " $libdir" ;; 7578 + esac 7579 + done 7580 + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 7581 + dependency_libs="$temp_xrpath $dependency_libs" 7582 + fi 7583 + fi 7584 + 7585 + # Make sure dlfiles contains only unique files that won't be dlpreopened 7586 + old_dlfiles="$dlfiles" 7587 + dlfiles= 7588 + for lib in $old_dlfiles; do 7589 + case " $dlprefiles $dlfiles " in 7590 + *" $lib "*) ;; 7591 + *) func_append dlfiles " $lib" ;; 7592 + esac 7593 + done 7594 + 7595 + # Make sure dlprefiles contains only unique files 7596 + old_dlprefiles="$dlprefiles" 7597 + dlprefiles= 7598 + for lib in $old_dlprefiles; do 7599 + case "$dlprefiles " in 7600 + *" $lib "*) ;; 7601 + *) func_append dlprefiles " $lib" ;; 7602 + esac 7603 + done 7604 + 7605 + if test "$build_libtool_libs" = yes; then 7606 + if test -n "$rpath"; then 7607 + case $host in 7608 + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) 7609 + # these systems don't actually have a c library (as such)! 7610 + ;; 7611 + *-*-rhapsody* | *-*-darwin1.[012]) 7612 + # Rhapsody C library is in the System framework 7613 + func_append deplibs " System.ltframework" 7614 + ;; 7615 + *-*-netbsd*) 7616 + # Don't link with libc until the a.out ld.so is fixed. 7617 + ;; 7618 + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 7619 + # Do not include libc due to us having libc/libc_r. 7620 + ;; 7621 + *-*-sco3.2v5* | *-*-sco5v6*) 7622 + # Causes problems with __ctype 7623 + ;; 7624 + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 7625 + # Compiler inserts libc in the correct place for threads to work 7626 + ;; 7627 + *) 7628 + # Add libc to deplibs on all other systems if necessary. 7629 + if test "$build_libtool_need_lc" = "yes"; then 7630 + func_append deplibs " -lc" 7631 + fi 7632 + ;; 7633 + esac 7634 + fi 7635 + 7636 + # Transform deplibs into only deplibs that can be linked in shared. 7637 + name_save=$name 7638 + libname_save=$libname 7639 + release_save=$release 7640 + versuffix_save=$versuffix 7641 + major_save=$major 7642 + # I'm not sure if I'm treating the release correctly. I think 7643 + # release should show up in the -l (ie -lgmp5) so we don't want to 7644 + # add it in twice. Is that correct? 7645 + release="" 7646 + versuffix="" 7647 + major="" 7648 + newdeplibs= 7649 + droppeddeps=no 7650 + case $deplibs_check_method in 7651 + pass_all) 7652 + # Don't check for shared/static. Everything works. 7653 + # This might be a little naive. We might want to check 7654 + # whether the library exists or not. But this is on 7655 + # osf3 & osf4 and I'm not really sure... Just 7656 + # implementing what was already the behavior. 7657 + newdeplibs=$deplibs 7658 + ;; 7659 + test_compile) 7660 + # This code stresses the "libraries are programs" paradigm to its 7661 + # limits. Maybe even breaks it. We compile a program, linking it 7662 + # against the deplibs as a proxy for the library. Then we can check 7663 + # whether they linked in statically or dynamically with ldd. 7664 + $opt_dry_run || $RM conftest.c 7665 + cat > conftest.c <<EOF 7666 + int main() { return 0; } 7667 +EOF 7668 + $opt_dry_run || $RM conftest 7669 + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then 7670 + ldd_output=`ldd conftest` 7671 + for i in $deplibs; do 7672 + case $i in 7673 + -l*) 7674 + func_stripname -l '' "$i" 7675 + name=$func_stripname_result 7676 + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7677 + case " $predeps $postdeps " in 7678 + *" $i "*) 7679 + func_append newdeplibs " $i" 7680 + i="" 7681 + ;; 7682 + esac 7683 + fi 7684 + if test -n "$i" ; then 7685 + libname=`eval "\\$ECHO \"$libname_spec\""` 7686 + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 7687 + set dummy $deplib_matches; shift 7688 + deplib_match=$1 7689 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 7690 + func_append newdeplibs " $i" 7691 + else 7692 + droppeddeps=yes 7693 + echo 7694 + $ECHO "*** Warning: dynamic linker does not accept needed library $i." 7695 + echo "*** I have the capability to make that library automatically link in when" 7696 + echo "*** you link to this library. But I can only do this if you have a" 7697 + echo "*** shared version of the library, which I believe you do not have" 7698 + echo "*** because a test_compile did reveal that the linker did not use it for" 7699 + echo "*** its dynamic dependency list that programs get resolved with at runtime." 7700 + fi 7701 + fi 7702 + ;; 7703 + *) 7704 + func_append newdeplibs " $i" 7705 + ;; 7706 + esac 7707 + done 7708 + else 7709 + # Error occurred in the first compile. Let's try to salvage 7710 + # the situation: Compile a separate program for each library. 7711 + for i in $deplibs; do 7712 + case $i in 7713 + -l*) 7714 + func_stripname -l '' "$i" 7715 + name=$func_stripname_result 7716 + $opt_dry_run || $RM conftest 7717 + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then 7718 + ldd_output=`ldd conftest` 7719 + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7720 + case " $predeps $postdeps " in 7721 + *" $i "*) 7722 + func_append newdeplibs " $i" 7723 + i="" 7724 + ;; 7725 + esac 7726 + fi 7727 + if test -n "$i" ; then 7728 + libname=`eval "\\$ECHO \"$libname_spec\""` 7729 + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 7730 + set dummy $deplib_matches; shift 7731 + deplib_match=$1 7732 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 7733 + func_append newdeplibs " $i" 7734 + else 7735 + droppeddeps=yes 7736 + echo 7737 + $ECHO "*** Warning: dynamic linker does not accept needed library $i." 7738 + echo "*** I have the capability to make that library automatically link in when" 7739 + echo "*** you link to this library. But I can only do this if you have a" 7740 + echo "*** shared version of the library, which you do not appear to have" 7741 + echo "*** because a test_compile did reveal that the linker did not use this one" 7742 + echo "*** as a dynamic dependency that programs can get resolved with at runtime." 7743 + fi 7744 + fi 7745 + else 7746 + droppeddeps=yes 7747 + echo 7748 + $ECHO "*** Warning! Library $i is needed by this library but I was not able to" 7749 + echo "*** make it link in! You will probably need to install it or some" 7750 + echo "*** library that it depends on before this library will be fully" 7751 + echo "*** functional. Installing it before continuing would be even better." 7752 + fi 7753 + ;; 7754 + *) 7755 + func_append newdeplibs " $i" 7756 + ;; 7757 + esac 7758 + done 7759 + fi 7760 + ;; 7761 + file_magic*) 7762 + set dummy $deplibs_check_method; shift 7763 + file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 7764 + for a_deplib in $deplibs; do 7765 + case $a_deplib in 7766 + -l*) 7767 + func_stripname -l '' "$a_deplib" 7768 + name=$func_stripname_result 7769 + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7770 + case " $predeps $postdeps " in 7771 + *" $a_deplib "*) 7772 + func_append newdeplibs " $a_deplib" 7773 + a_deplib="" 7774 + ;; 7775 + esac 7776 + fi 7777 + if test -n "$a_deplib" ; then 7778 + libname=`eval "\\$ECHO \"$libname_spec\""` 7779 + if test -n "$file_magic_glob"; then 7780 + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` 7781 + else 7782 + libnameglob=$libname 7783 + fi 7784 + test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` 7785 + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 7786 + if test "$want_nocaseglob" = yes; then 7787 + shopt -s nocaseglob 7788 + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` 7789 + $nocaseglob 7790 + else 7791 + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` 7792 + fi 7793 + for potent_lib in $potential_libs; do 7794 + # Follow soft links. 7795 + if ls -lLd "$potent_lib" 2>/dev/null | 7796 + $GREP " -> " >/dev/null; then 7797 + continue 7798 + fi 7799 + # The statement above tries to avoid entering an 7800 + # endless loop below, in case of cyclic links. 7801 + # We might still enter an endless loop, since a link 7802 + # loop can be closed while we follow links, 7803 + # but so what? 7804 + potlib="$potent_lib" 7805 + while test -h "$potlib" 2>/dev/null; do 7806 + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 7807 + case $potliblink in 7808 + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 7809 + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; 7810 + esac 7811 + done 7812 + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | 7813 + $SED -e 10q | 7814 + $EGREP "$file_magic_regex" > /dev/null; then 7815 + func_append newdeplibs " $a_deplib" 7816 + a_deplib="" 7817 + break 2 7818 + fi 7819 + done 7820 + done 7821 + fi 7822 + if test -n "$a_deplib" ; then 7823 + droppeddeps=yes 7824 + echo 7825 + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 7826 + echo "*** I have the capability to make that library automatically link in when" 7827 + echo "*** you link to this library. But I can only do this if you have a" 7828 + echo "*** shared version of the library, which you do not appear to have" 7829 + echo "*** because I did check the linker path looking for a file starting" 7830 + if test -z "$potlib" ; then 7831 + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" 7832 + else 7833 + $ECHO "*** with $libname and none of the candidates passed a file format test" 7834 + $ECHO "*** using a file magic. Last file checked: $potlib" 7835 + fi 7836 + fi 7837 + ;; 7838 + *) 7839 + # Add a -L argument. 7840 + func_append newdeplibs " $a_deplib" 7841 + ;; 7842 + esac 7843 + done # Gone through all deplibs. 7844 + ;; 7845 + match_pattern*) 7846 + set dummy $deplibs_check_method; shift 7847 + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 7848 + for a_deplib in $deplibs; do 7849 + case $a_deplib in 7850 + -l*) 7851 + func_stripname -l '' "$a_deplib" 7852 + name=$func_stripname_result 7853 + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7854 + case " $predeps $postdeps " in 7855 + *" $a_deplib "*) 7856 + func_append newdeplibs " $a_deplib" 7857 + a_deplib="" 7858 + ;; 7859 + esac 7860 + fi 7861 + if test -n "$a_deplib" ; then 7862 + libname=`eval "\\$ECHO \"$libname_spec\""` 7863 + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 7864 + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 7865 + for potent_lib in $potential_libs; do 7866 + potlib="$potent_lib" # see symlink-check above in file_magic test 7867 + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ 7868 + $EGREP "$match_pattern_regex" > /dev/null; then 7869 + func_append newdeplibs " $a_deplib" 7870 + a_deplib="" 7871 + break 2 7872 + fi 7873 + done 7874 + done 7875 + fi 7876 + if test -n "$a_deplib" ; then 7877 + droppeddeps=yes 7878 + echo 7879 + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 7880 + echo "*** I have the capability to make that library automatically link in when" 7881 + echo "*** you link to this library. But I can only do this if you have a" 7882 + echo "*** shared version of the library, which you do not appear to have" 7883 + echo "*** because I did check the linker path looking for a file starting" 7884 + if test -z "$potlib" ; then 7885 + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" 7886 + else 7887 + $ECHO "*** with $libname and none of the candidates passed a file format test" 7888 + $ECHO "*** using a regex pattern. Last file checked: $potlib" 7889 + fi 7890 + fi 7891 + ;; 7892 + *) 7893 + # Add a -L argument. 7894 + func_append newdeplibs " $a_deplib" 7895 + ;; 7896 + esac 7897 + done # Gone through all deplibs. 7898 + ;; 7899 + none | unknown | *) 7900 + newdeplibs="" 7901 + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` 7902 + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 7903 + for i in $predeps $postdeps ; do 7904 + # can't use Xsed below, because $i might contain '/' 7905 + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` 7906 + done 7907 + fi 7908 + case $tmp_deplibs in 7909 + *[!\ \ ]*) 7910 + echo 7911 + if test "X$deplibs_check_method" = "Xnone"; then 7912 + echo "*** Warning: inter-library dependencies are not supported in this platform." 7913 + else 7914 + echo "*** Warning: inter-library dependencies are not known to be supported." 7915 + fi 7916 + echo "*** All declared inter-library dependencies are being dropped." 7917 + droppeddeps=yes 7918 + ;; 7919 + esac 7920 + ;; 7921 + esac 7922 + versuffix=$versuffix_save 7923 + major=$major_save 7924 + release=$release_save 7925 + libname=$libname_save 7926 + name=$name_save 7927 + 7928 + case $host in 7929 + *-*-rhapsody* | *-*-darwin1.[012]) 7930 + # On Rhapsody replace the C library with the System framework 7931 + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` 7932 + ;; 7933 + esac 7934 + 7935 + if test "$droppeddeps" = yes; then 7936 + if test "$module" = yes; then 7937 + echo 7938 + echo "*** Warning: libtool could not satisfy all declared inter-library" 7939 + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" 7940 + echo "*** a static module, that should work as long as the dlopening" 7941 + echo "*** application is linked with the -dlopen flag." 7942 + if test -z "$global_symbol_pipe"; then 7943 + echo 7944 + echo "*** However, this would only work if libtool was able to extract symbol" 7945 + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 7946 + echo "*** not find such a program. So, this module is probably useless." 7947 + echo "*** \`nm' from GNU binutils and a full rebuild may help." 7948 + fi 7949 + if test "$build_old_libs" = no; then 7950 + oldlibs="$output_objdir/$libname.$libext" 7951 + build_libtool_libs=module 7952 + build_old_libs=yes 7953 + else 7954 + build_libtool_libs=no 7955 + fi 7956 + else 7957 + echo "*** The inter-library dependencies that have been dropped here will be" 7958 + echo "*** automatically added whenever a program is linked with this library" 7959 + echo "*** or is declared to -dlopen it." 7960 + 7961 + if test "$allow_undefined" = no; then 7962 + echo 7963 + echo "*** Since this library must not contain undefined symbols," 7964 + echo "*** because either the platform does not support them or" 7965 + echo "*** it was explicitly requested with -no-undefined," 7966 + echo "*** libtool will only create a static version of it." 7967 + if test "$build_old_libs" = no; then 7968 + oldlibs="$output_objdir/$libname.$libext" 7969 + build_libtool_libs=module 7970 + build_old_libs=yes 7971 + else 7972 + build_libtool_libs=no 7973 + fi 7974 + fi 7975 + fi 7976 + fi 7977 + # Done checking deplibs! 7978 + deplibs=$newdeplibs 7979 + fi 7980 + # Time to change all our "foo.ltframework" stuff back to "-framework foo" 7981 + case $host in 7982 + *-*-darwin*) 7983 + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 7984 + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 7985 + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 7986 + ;; 7987 + esac 7988 + 7989 + # move library search paths that coincide with paths to not yet 7990 + # installed libraries to the beginning of the library search list 7991 + new_libs= 7992 + for path in $notinst_path; do 7993 + case " $new_libs " in 7994 + *" -L$path/$objdir "*) ;; 7995 + *) 7996 + case " $deplibs " in 7997 + *" -L$path/$objdir "*) 7998 + func_append new_libs " -L$path/$objdir" ;; 7999 + esac 8000 + ;; 8001 + esac 8002 + done 8003 + for deplib in $deplibs; do 8004 + case $deplib in 8005 + -L*) 8006 + case " $new_libs " in 8007 + *" $deplib "*) ;; 8008 + *) func_append new_libs " $deplib" ;; 8009 + esac 8010 + ;; 8011 + *) func_append new_libs " $deplib" ;; 8012 + esac 8013 + done 8014 + deplibs="$new_libs" 8015 + 8016 + # All the library-specific variables (install_libdir is set above). 8017 + library_names= 8018 + old_library= 8019 + dlname= 8020 + 8021 + # Test again, we may have decided not to build it any more 8022 + if test "$build_libtool_libs" = yes; then 8023 + if test "$hardcode_into_libs" = yes; then 8024 + # Hardcode the library paths 8025 + hardcode_libdirs= 8026 + dep_rpath= 8027 + rpath="$finalize_rpath" 8028 + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" 8029 + for libdir in $rpath; do 8030 + if test -n "$hardcode_libdir_flag_spec"; then 8031 + if test -n "$hardcode_libdir_separator"; then 8032 + func_replace_sysroot "$libdir" 8033 + libdir=$func_replace_sysroot_result 8034 + if test -z "$hardcode_libdirs"; then 8035 + hardcode_libdirs="$libdir" 8036 + else 8037 + # Just accumulate the unique libdirs. 8038 + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 8039 + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 8040 + ;; 8041 + *) 8042 + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 8043 + ;; 8044 + esac 8045 + fi 8046 + else 8047 + eval flag=\"$hardcode_libdir_flag_spec\" 8048 + func_append dep_rpath " $flag" 8049 + fi 8050 + elif test -n "$runpath_var"; then 8051 + case "$perm_rpath " in 8052 + *" $libdir "*) ;; 8053 + *) func_append perm_rpath " $libdir" ;; 8054 + esac 8055 + fi 8056 + done 8057 + # Substitute the hardcoded libdirs into the rpath. 8058 + if test -n "$hardcode_libdir_separator" && 8059 + test -n "$hardcode_libdirs"; then 8060 + libdir="$hardcode_libdirs" 8061 + if test -n "$hardcode_libdir_flag_spec_ld"; then 8062 + eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" 8063 + else 8064 + eval dep_rpath=\"$hardcode_libdir_flag_spec\" 8065 + fi 8066 + fi 8067 + if test -n "$runpath_var" && test -n "$perm_rpath"; then 8068 + # We should set the runpath_var. 8069 + rpath= 8070 + for dir in $perm_rpath; do 8071 + func_append rpath "$dir:" 8072 + done 8073 + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 8074 + fi 8075 + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 8076 + fi 8077 + 8078 + shlibpath="$finalize_shlibpath" 8079 + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 8080 + if test -n "$shlibpath"; then 8081 + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 8082 + fi 8083 + 8084 + # Get the real and link names of the library. 8085 + eval shared_ext=\"$shrext_cmds\" 8086 + eval library_names=\"$library_names_spec\" 8087 + set dummy $library_names 8088 + shift 8089 + realname="$1" 8090 + shift 8091 + 8092 + if test -n "$soname_spec"; then 8093 + eval soname=\"$soname_spec\" 8094 + else 8095 + soname="$realname" 8096 + fi 8097 + if test -z "$dlname"; then 8098 + dlname=$soname 8099 + fi 8100 + 8101 + lib="$output_objdir/$realname" 8102 + linknames= 8103 + for link 8104 + do 8105 + func_append linknames " $link" 8106 + done 8107 + 8108 + # Use standard objects if they are pic 8109 + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` 8110 + test "X$libobjs" = "X " && libobjs= 8111 + 8112 + delfiles= 8113 + if test -n "$export_symbols" && test -n "$include_expsyms"; then 8114 + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" 8115 + export_symbols="$output_objdir/$libname.uexp" 8116 + func_append delfiles " $export_symbols" 8117 + fi 8118 + 8119 + orig_export_symbols= 8120 + case $host_os in 8121 + cygwin* | mingw* | cegcc*) 8122 + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then 8123 + # exporting using user supplied symfile 8124 + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then 8125 + # and it's NOT already a .def file. Must figure out 8126 + # which of the given symbols are data symbols and tag 8127 + # them as such. So, trigger use of export_symbols_cmds. 8128 + # export_symbols gets reassigned inside the "prepare 8129 + # the list of exported symbols" if statement, so the 8130 + # include_expsyms logic still works. 8131 + orig_export_symbols="$export_symbols" 8132 + export_symbols= 8133 + always_export_symbols=yes 8134 + fi 8135 + fi 8136 + ;; 8137 + esac 8138 + 8139 + # Prepare the list of exported symbols 8140 + if test -z "$export_symbols"; then 8141 + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 8142 + func_verbose "generating symbol list for \`$libname.la'" 8143 + export_symbols="$output_objdir/$libname.exp" 8144 + $opt_dry_run || $RM $export_symbols 8145 + cmds=$export_symbols_cmds 8146 + save_ifs="$IFS"; IFS='~' 8147 + for cmd1 in $cmds; do 8148 + IFS="$save_ifs" 8149 + # Take the normal branch if the nm_file_list_spec branch 8150 + # doesn't work or if tool conversion is not needed. 8151 + case $nm_file_list_spec~$to_tool_file_cmd in 8152 + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) 8153 + try_normal_branch=yes 8154 + eval cmd=\"$cmd1\" 8155 + func_len " $cmd" 8156 + len=$func_len_result 8157 + ;; 8158 + *) 8159 + try_normal_branch=no 8160 + ;; 8161 + esac 8162 + if test "$try_normal_branch" = yes \ 8163 + && { test "$len" -lt "$max_cmd_len" \ 8164 + || test "$max_cmd_len" -le -1; } 8165 + then 8166 + func_show_eval "$cmd" 'exit $?' 8167 + skipped_export=false 8168 + elif test -n "$nm_file_list_spec"; then 8169 + func_basename "$output" 8170 + output_la=$func_basename_result 8171 + save_libobjs=$libobjs 8172 + save_output=$output 8173 + output=${output_objdir}/${output_la}.nm 8174 + func_to_tool_file "$output" 8175 + libobjs=$nm_file_list_spec$func_to_tool_file_result 8176 + func_append delfiles " $output" 8177 + func_verbose "creating $NM input file list: $output" 8178 + for obj in $save_libobjs; do 8179 + func_to_tool_file "$obj" 8180 + $ECHO "$func_to_tool_file_result" 8181 + done > "$output" 8182 + eval cmd=\"$cmd1\" 8183 + func_show_eval "$cmd" 'exit $?' 8184 + output=$save_output 8185 + libobjs=$save_libobjs 8186 + skipped_export=false 8187 + else 8188 + # The command line is too long to execute in one step. 8189 + func_verbose "using reloadable object file for export list..." 8190 + skipped_export=: 8191 + # Break out early, otherwise skipped_export may be 8192 + # set to false by a later but shorter cmd. 8193 + break 8194 + fi 8195 + done 8196 + IFS="$save_ifs" 8197 + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then 8198 + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 8199 + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' 8200 + fi 8201 + fi 8202 + fi 8203 + 8204 + if test -n "$export_symbols" && test -n "$include_expsyms"; then 8205 + tmp_export_symbols="$export_symbols" 8206 + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 8207 + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' 8208 + fi 8209 + 8210 + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then 8211 + # The given exports_symbols file has to be filtered, so filter it. 8212 + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 8213 + # FIXME: $output_objdir/$libname.filter potentially contains lots of 8214 + # 's' commands which not all seds can handle. GNU sed should be fine 8215 + # though. Also, the filter scales superlinearly with the number of 8216 + # global variables. join(1) would be nice here, but unfortunately 8217 + # isn't a blessed tool. 8218 + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 8219 + func_append delfiles " $export_symbols $output_objdir/$libname.filter" 8220 + export_symbols=$output_objdir/$libname.def 8221 + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 8222 + fi 8223 + 8224 + tmp_deplibs= 8225 + for test_deplib in $deplibs; do 8226 + case " $convenience " in 8227 + *" $test_deplib "*) ;; 8228 + *) 8229 + func_append tmp_deplibs " $test_deplib" 8230 + ;; 8231 + esac 8232 + done 8233 + deplibs="$tmp_deplibs" 8234 + 8235 + if test -n "$convenience"; then 8236 + if test -n "$whole_archive_flag_spec" && 8237 + test "$compiler_needs_object" = yes && 8238 + test -z "$libobjs"; then 8239 + # extract the archives, so we have objects to list. 8240 + # TODO: could optimize this to just extract one archive. 8241 + whole_archive_flag_spec= 8242 + fi 8243 + if test -n "$whole_archive_flag_spec"; then 8244 + save_libobjs=$libobjs 8245 + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 8246 + test "X$libobjs" = "X " && libobjs= 8247 + else 8248 + gentop="$output_objdir/${outputname}x" 8249 + func_append generated " $gentop" 8250 + 8251 + func_extract_archives $gentop $convenience 8252 + func_append libobjs " $func_extract_archives_result" 8253 + test "X$libobjs" = "X " && libobjs= 8254 + fi 8255 + fi 8256 + 8257 + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 8258 + eval flag=\"$thread_safe_flag_spec\" 8259 + func_append linker_flags " $flag" 8260 + fi 8261 + 8262 + # Make a backup of the uninstalled library when relinking 8263 + if test "$opt_mode" = relink; then 8264 + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? 8265 + fi 8266 + 8267 + # Do each of the archive commands. 8268 + if test "$module" = yes && test -n "$module_cmds" ; then 8269 + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 8270 + eval test_cmds=\"$module_expsym_cmds\" 8271 + cmds=$module_expsym_cmds 8272 + else 8273 + eval test_cmds=\"$module_cmds\" 8274 + cmds=$module_cmds 8275 + fi 8276 + else 8277 + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 8278 + eval test_cmds=\"$archive_expsym_cmds\" 8279 + cmds=$archive_expsym_cmds 8280 + else 8281 + eval test_cmds=\"$archive_cmds\" 8282 + cmds=$archive_cmds 8283 + fi 8284 + fi 8285 + 8286 + if test "X$skipped_export" != "X:" && 8287 + func_len " $test_cmds" && 8288 + len=$func_len_result && 8289 + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 8290 + : 8291 + else 8292 + # The command line is too long to link in one step, link piecewise 8293 + # or, if using GNU ld and skipped_export is not :, use a linker 8294 + # script. 8295 + 8296 + # Save the value of $output and $libobjs because we want to 8297 + # use them later. If we have whole_archive_flag_spec, we 8298 + # want to use save_libobjs as it was before 8299 + # whole_archive_flag_spec was expanded, because we can't 8300 + # assume the linker understands whole_archive_flag_spec. 8301 + # This may have to be revisited, in case too many 8302 + # convenience libraries get linked in and end up exceeding 8303 + # the spec. 8304 + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 8305 + save_libobjs=$libobjs 8306 + fi 8307 + save_output=$output 8308 + func_basename "$output" 8309 + output_la=$func_basename_result 8310 + 8311 + # Clear the reloadable object creation command queue and 8312 + # initialize k to one. 8313 + test_cmds= 8314 + concat_cmds= 8315 + objlist= 8316 + last_robj= 8317 + k=1 8318 + 8319 + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then 8320 + output=${output_objdir}/${output_la}.lnkscript 8321 + func_verbose "creating GNU ld script: $output" 8322 + echo 'INPUT (' > $output 8323 + for obj in $save_libobjs 8324 + do 8325 + func_to_tool_file "$obj" 8326 + $ECHO "$func_to_tool_file_result" >> $output 8327 + done 8328 + echo ')' >> $output 8329 + func_append delfiles " $output" 8330 + func_to_tool_file "$output" 8331 + output=$func_to_tool_file_result 8332 + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then 8333 + output=${output_objdir}/${output_la}.lnk 8334 + func_verbose "creating linker input file list: $output" 8335 + : > $output 8336 + set x $save_libobjs 8337 + shift 8338 + firstobj= 8339 + if test "$compiler_needs_object" = yes; then 8340 + firstobj="$1 " 8341 + shift 8342 + fi 8343 + for obj 8344 + do 8345 + func_to_tool_file "$obj" 8346 + $ECHO "$func_to_tool_file_result" >> $output 8347 + done 8348 + func_append delfiles " $output" 8349 + func_to_tool_file "$output" 8350 + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" 8351 + else 8352 + if test -n "$save_libobjs"; then 8353 + func_verbose "creating reloadable object files..." 8354 + output=$output_objdir/$output_la-${k}.$objext 8355 + eval test_cmds=\"$reload_cmds\" 8356 + func_len " $test_cmds" 8357 + len0=$func_len_result 8358 + len=$len0 8359 + 8360 + # Loop over the list of objects to be linked. 8361 + for obj in $save_libobjs 8362 + do 8363 + func_len " $obj" 8364 + func_arith $len + $func_len_result 8365 + len=$func_arith_result 8366 + if test "X$objlist" = X || 8367 + test "$len" -lt "$max_cmd_len"; then 8368 + func_append objlist " $obj" 8369 + else 8370 + # The command $test_cmds is almost too long, add a 8371 + # command to the queue. 8372 + if test "$k" -eq 1 ; then 8373 + # The first file doesn't have a previous command to add. 8374 + reload_objs=$objlist 8375 + eval concat_cmds=\"$reload_cmds\" 8376 + else 8377 + # All subsequent reloadable object files will link in 8378 + # the last one created. 8379 + reload_objs="$objlist $last_robj" 8380 + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" 8381 + fi 8382 + last_robj=$output_objdir/$output_la-${k}.$objext 8383 + func_arith $k + 1 8384 + k=$func_arith_result 8385 + output=$output_objdir/$output_la-${k}.$objext 8386 + objlist=" $obj" 8387 + func_len " $last_robj" 8388 + func_arith $len0 + $func_len_result 8389 + len=$func_arith_result 8390 + fi 8391 + done 8392 + # Handle the remaining objects by creating one last 8393 + # reloadable object file. All subsequent reloadable object 8394 + # files will link in the last one created. 8395 + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 8396 + reload_objs="$objlist $last_robj" 8397 + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" 8398 + if test -n "$last_robj"; then 8399 + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" 8400 + fi 8401 + func_append delfiles " $output" 8402 + 8403 + else 8404 + output= 8405 + fi 8406 + 8407 + if ${skipped_export-false}; then 8408 + func_verbose "generating symbol list for \`$libname.la'" 8409 + export_symbols="$output_objdir/$libname.exp" 8410 + $opt_dry_run || $RM $export_symbols 8411 + libobjs=$output 8412 + # Append the command to create the export file. 8413 + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 8414 + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" 8415 + if test -n "$last_robj"; then 8416 + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" 8417 + fi 8418 + fi 8419 + 8420 + test -n "$save_libobjs" && 8421 + func_verbose "creating a temporary reloadable object file: $output" 8422 + 8423 + # Loop through the commands generated above and execute them. 8424 + save_ifs="$IFS"; IFS='~' 8425 + for cmd in $concat_cmds; do 8426 + IFS="$save_ifs" 8427 + $opt_silent || { 8428 + func_quote_for_expand "$cmd" 8429 + eval "func_echo $func_quote_for_expand_result" 8430 + } 8431 + $opt_dry_run || eval "$cmd" || { 8432 + lt_exit=$? 8433 + 8434 + # Restore the uninstalled library and exit 8435 + if test "$opt_mode" = relink; then 8436 + ( cd "$output_objdir" && \ 8437 + $RM "${realname}T" && \ 8438 + $MV "${realname}U" "$realname" ) 8439 + fi 8440 + 8441 + exit $lt_exit 8442 + } 8443 + done 8444 + IFS="$save_ifs" 8445 + 8446 + if test -n "$export_symbols_regex" && ${skipped_export-false}; then 8447 + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 8448 + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' 8449 + fi 8450 + fi 8451 + 8452 + if ${skipped_export-false}; then 8453 + if test -n "$export_symbols" && test -n "$include_expsyms"; then 8454 + tmp_export_symbols="$export_symbols" 8455 + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 8456 + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' 8457 + fi 8458 + 8459 + if test -n "$orig_export_symbols"; then 8460 + # The given exports_symbols file has to be filtered, so filter it. 8461 + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 8462 + # FIXME: $output_objdir/$libname.filter potentially contains lots of 8463 + # 's' commands which not all seds can handle. GNU sed should be fine 8464 + # though. Also, the filter scales superlinearly with the number of 8465 + # global variables. join(1) would be nice here, but unfortunately 8466 + # isn't a blessed tool. 8467 + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 8468 + func_append delfiles " $export_symbols $output_objdir/$libname.filter" 8469 + export_symbols=$output_objdir/$libname.def 8470 + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 8471 + fi 8472 + fi 8473 + 8474 + libobjs=$output 8475 + # Restore the value of output. 8476 + output=$save_output 8477 + 8478 + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 8479 + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 8480 + test "X$libobjs" = "X " && libobjs= 8481 + fi 8482 + # Expand the library linking commands again to reset the 8483 + # value of $libobjs for piecewise linking. 8484 + 8485 + # Do each of the archive commands. 8486 + if test "$module" = yes && test -n "$module_cmds" ; then 8487 + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 8488 + cmds=$module_expsym_cmds 8489 + else 8490 + cmds=$module_cmds 8491 + fi 8492 + else 8493 + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 8494 + cmds=$archive_expsym_cmds 8495 + else 8496 + cmds=$archive_cmds 8497 + fi 8498 + fi 8499 + fi 8500 + 8501 + if test -n "$delfiles"; then 8502 + # Append the command to remove temporary files to $cmds. 8503 + eval cmds=\"\$cmds~\$RM $delfiles\" 8504 + fi 8505 + 8506 + # Add any objects from preloaded convenience libraries 8507 + if test -n "$dlprefiles"; then 8508 + gentop="$output_objdir/${outputname}x" 8509 + func_append generated " $gentop" 8510 + 8511 + func_extract_archives $gentop $dlprefiles 8512 + func_append libobjs " $func_extract_archives_result" 8513 + test "X$libobjs" = "X " && libobjs= 8514 + fi 8515 + 8516 + save_ifs="$IFS"; IFS='~' 8517 + for cmd in $cmds; do 8518 + IFS="$save_ifs" 8519 + eval cmd=\"$cmd\" 8520 + $opt_silent || { 8521 + func_quote_for_expand "$cmd" 8522 + eval "func_echo $func_quote_for_expand_result" 8523 + } 8524 + $opt_dry_run || eval "$cmd" || { 8525 + lt_exit=$? 8526 + 8527 + # Restore the uninstalled library and exit 8528 + if test "$opt_mode" = relink; then 8529 + ( cd "$output_objdir" && \ 8530 + $RM "${realname}T" && \ 8531 + $MV "${realname}U" "$realname" ) 8532 + fi 8533 + 8534 + exit $lt_exit 8535 + } 8536 + done 8537 + IFS="$save_ifs" 8538 + 8539 + # Restore the uninstalled library and exit 8540 + if test "$opt_mode" = relink; then 8541 + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? 8542 + 8543 + if test -n "$convenience"; then 8544 + if test -z "$whole_archive_flag_spec"; then 8545 + func_show_eval '${RM}r "$gentop"' 8546 + fi 8547 + fi 8548 + 8549 + exit $EXIT_SUCCESS 8550 + fi 8551 + 8552 + # Create links to the real library. 8553 + for linkname in $linknames; do 8554 + if test "$realname" != "$linkname"; then 8555 + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' 8556 + fi 8557 + done 8558 + 8559 + # If -module or -export-dynamic was specified, set the dlname. 8560 + if test "$module" = yes || test "$export_dynamic" = yes; then 8561 + # On all known operating systems, these are identical. 8562 + dlname="$soname" 8563 + fi 8564 + fi 8565 + ;; 8566 + 8567 + obj) 8568 + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 8569 + func_warning "\`-dlopen' is ignored for objects" 8570 + fi 8571 + 8572 + case " $deplibs" in 8573 + *\ -l* | *\ -L*) 8574 + func_warning "\`-l' and \`-L' are ignored for objects" ;; 8575 + esac 8576 + 8577 + test -n "$rpath" && \ 8578 + func_warning "\`-rpath' is ignored for objects" 8579 + 8580 + test -n "$xrpath" && \ 8581 + func_warning "\`-R' is ignored for objects" 8582 + 8583 + test -n "$vinfo" && \ 8584 + func_warning "\`-version-info' is ignored for objects" 8585 + 8586 + test -n "$release" && \ 8587 + func_warning "\`-release' is ignored for objects" 8588 + 8589 + case $output in 8590 + *.lo) 8591 + test -n "$objs$old_deplibs" && \ 8592 + func_fatal_error "cannot build library object \`$output' from non-libtool objects" 8593 + 8594 + libobj=$output 8595 + func_lo2o "$libobj" 8596 + obj=$func_lo2o_result 8597 + ;; 8598 + *) 8599 + libobj= 8600 + obj="$output" 8601 + ;; 8602 + esac 8603 + 8604 + # Delete the old objects. 8605 + $opt_dry_run || $RM $obj $libobj 8606 + 8607 + # Objects from convenience libraries. This assumes 8608 + # single-version convenience libraries. Whenever we create 8609 + # different ones for PIC/non-PIC, this we'll have to duplicate 8610 + # the extraction. 8611 + reload_conv_objs= 8612 + gentop= 8613 + # reload_cmds runs $LD directly, so let us get rid of 8614 + # -Wl from whole_archive_flag_spec and hope we can get by with 8615 + # turning comma into space.. 8616 + wl= 8617 + 8618 + if test -n "$convenience"; then 8619 + if test -n "$whole_archive_flag_spec"; then 8620 + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 8621 + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` 8622 + else 8623 + gentop="$output_objdir/${obj}x" 8624 + func_append generated " $gentop" 8625 + 8626 + func_extract_archives $gentop $convenience 8627 + reload_conv_objs="$reload_objs $func_extract_archives_result" 8628 + fi 8629 + fi 8630 + 8631 + # If we're not building shared, we need to use non_pic_objs 8632 + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" 8633 + 8634 + # Create the old-style object. 8635 + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test 8636 + 8637 + output="$obj" 8638 + func_execute_cmds "$reload_cmds" 'exit $?' 8639 + 8640 + # Exit if we aren't doing a library object file. 8641 + if test -z "$libobj"; then 8642 + if test -n "$gentop"; then 8643 + func_show_eval '${RM}r "$gentop"' 8644 + fi 8645 + 8646 + exit $EXIT_SUCCESS 8647 + fi 8648 + 8649 + if test "$build_libtool_libs" != yes; then 8650 + if test -n "$gentop"; then 8651 + func_show_eval '${RM}r "$gentop"' 8652 + fi 8653 + 8654 + # Create an invalid libtool object if no PIC, so that we don't 8655 + # accidentally link it into a program. 8656 + # $show "echo timestamp > $libobj" 8657 + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? 8658 + exit $EXIT_SUCCESS 8659 + fi 8660 + 8661 + if test -n "$pic_flag" || test "$pic_mode" != default; then 8662 + # Only do commands if we really have different PIC objects. 8663 + reload_objs="$libobjs $reload_conv_objs" 8664 + output="$libobj" 8665 + func_execute_cmds "$reload_cmds" 'exit $?' 8666 + fi 8667 + 8668 + if test -n "$gentop"; then 8669 + func_show_eval '${RM}r "$gentop"' 8670 + fi 8671 + 8672 + exit $EXIT_SUCCESS 8673 + ;; 8674 + 8675 + prog) 8676 + case $host in 8677 + *cygwin*) func_stripname '' '.exe' "$output" 8678 + output=$func_stripname_result.exe;; 8679 + esac 8680 + test -n "$vinfo" && \ 8681 + func_warning "\`-version-info' is ignored for programs" 8682 + 8683 + test -n "$release" && \ 8684 + func_warning "\`-release' is ignored for programs" 8685 + 8686 + test "$preload" = yes \ 8687 + && test "$dlopen_support" = unknown \ 8688 + && test "$dlopen_self" = unknown \ 8689 + && test "$dlopen_self_static" = unknown && \ 8690 + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." 8691 + 8692 + case $host in 8693 + *-*-rhapsody* | *-*-darwin1.[012]) 8694 + # On Rhapsody replace the C library is the System framework 8695 + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` 8696 + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` 8697 + ;; 8698 + esac 8699 + 8700 + case $host in 8701 + *-*-darwin*) 8702 + # Don't allow lazy linking, it breaks C++ global constructors 8703 + # But is supposedly fixed on 10.4 or later (yay!). 8704 + if test "$tagname" = CXX ; then 8705 + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 8706 + 10.[0123]) 8707 + func_append compile_command " ${wl}-bind_at_load" 8708 + func_append finalize_command " ${wl}-bind_at_load" 8709 + ;; 8710 + esac 8711 + fi 8712 + # Time to change all our "foo.ltframework" stuff back to "-framework foo" 8713 + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 8714 + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 8715 + ;; 8716 + esac 8717 + 8718 + 8719 + # move library search paths that coincide with paths to not yet 8720 + # installed libraries to the beginning of the library search list 8721 + new_libs= 8722 + for path in $notinst_path; do 8723 + case " $new_libs " in 8724 + *" -L$path/$objdir "*) ;; 8725 + *) 8726 + case " $compile_deplibs " in 8727 + *" -L$path/$objdir "*) 8728 + func_append new_libs " -L$path/$objdir" ;; 8729 + esac 8730 + ;; 8731 + esac 8732 + done 8733 + for deplib in $compile_deplibs; do 8734 + case $deplib in 8735 + -L*) 8736 + case " $new_libs " in 8737 + *" $deplib "*) ;; 8738 + *) func_append new_libs " $deplib" ;; 8739 + esac 8740 + ;; 8741 + *) func_append new_libs " $deplib" ;; 8742 + esac 8743 + done 8744 + compile_deplibs="$new_libs" 8745 + 8746 + 8747 + func_append compile_command " $compile_deplibs" 8748 + func_append finalize_command " $finalize_deplibs" 8749 + 8750 + if test -n "$rpath$xrpath"; then 8751 + # If the user specified any rpath flags, then add them. 8752 + for libdir in $rpath $xrpath; do 8753 + # This is the magic to use -rpath. 8754 + case "$finalize_rpath " in 8755 + *" $libdir "*) ;; 8756 + *) func_append finalize_rpath " $libdir" ;; 8757 + esac 8758 + done 8759 + fi 8760 + 8761 + # Now hardcode the library paths 8762 + rpath= 8763 + hardcode_libdirs= 8764 + for libdir in $compile_rpath $finalize_rpath; do 8765 + if test -n "$hardcode_libdir_flag_spec"; then 8766 + if test -n "$hardcode_libdir_separator"; then 8767 + if test -z "$hardcode_libdirs"; then 8768 + hardcode_libdirs="$libdir" 8769 + else 8770 + # Just accumulate the unique libdirs. 8771 + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 8772 + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 8773 + ;; 8774 + *) 8775 + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 8776 + ;; 8777 + esac 8778 + fi 8779 + else 8780 + eval flag=\"$hardcode_libdir_flag_spec\" 8781 + func_append rpath " $flag" 8782 + fi 8783 + elif test -n "$runpath_var"; then 8784 + case "$perm_rpath " in 8785 + *" $libdir "*) ;; 8786 + *) func_append perm_rpath " $libdir" ;; 8787 + esac 8788 + fi 8789 + case $host in 8790 + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 8791 + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` 8792 + case :$dllsearchpath: in 8793 + *":$libdir:"*) ;; 8794 + ::) dllsearchpath=$libdir;; 8795 + *) func_append dllsearchpath ":$libdir";; 8796 + esac 8797 + case :$dllsearchpath: in 8798 + *":$testbindir:"*) ;; 8799 + ::) dllsearchpath=$testbindir;; 8800 + *) func_append dllsearchpath ":$testbindir";; 8801 + esac 8802 + ;; 8803 + esac 8804 + done 8805 + # Substitute the hardcoded libdirs into the rpath. 8806 + if test -n "$hardcode_libdir_separator" && 8807 + test -n "$hardcode_libdirs"; then 8808 + libdir="$hardcode_libdirs" 8809 + eval rpath=\" $hardcode_libdir_flag_spec\" 8810 + fi 8811 + compile_rpath="$rpath" 8812 + 8813 + rpath= 8814 + hardcode_libdirs= 8815 + for libdir in $finalize_rpath; do 8816 + if test -n "$hardcode_libdir_flag_spec"; then 8817 + if test -n "$hardcode_libdir_separator"; then 8818 + if test -z "$hardcode_libdirs"; then 8819 + hardcode_libdirs="$libdir" 8820 + else 8821 + # Just accumulate the unique libdirs. 8822 + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 8823 + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 8824 + ;; 8825 + *) 8826 + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 8827 + ;; 8828 + esac 8829 + fi 8830 + else 8831 + eval flag=\"$hardcode_libdir_flag_spec\" 8832 + func_append rpath " $flag" 8833 + fi 8834 + elif test -n "$runpath_var"; then 8835 + case "$finalize_perm_rpath " in 8836 + *" $libdir "*) ;; 8837 + *) func_append finalize_perm_rpath " $libdir" ;; 8838 + esac 8839 + fi 8840 + done 8841 + # Substitute the hardcoded libdirs into the rpath. 8842 + if test -n "$hardcode_libdir_separator" && 8843 + test -n "$hardcode_libdirs"; then 8844 + libdir="$hardcode_libdirs" 8845 + eval rpath=\" $hardcode_libdir_flag_spec\" 8846 + fi 8847 + finalize_rpath="$rpath" 8848 + 8849 + if test -n "$libobjs" && test "$build_old_libs" = yes; then 8850 + # Transform all the library objects into standard objects. 8851 + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` 8852 + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` 8853 + fi 8854 + 8855 + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" 8856 + 8857 + # template prelinking step 8858 + if test -n "$prelink_cmds"; then 8859 + func_execute_cmds "$prelink_cmds" 'exit $?' 8860 + fi 8861 + 8862 + wrappers_required=yes 8863 + case $host in 8864 + *cegcc* | *mingw32ce*) 8865 + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. 8866 + wrappers_required=no 8867 + ;; 8868 + *cygwin* | *mingw* ) 8869 + if test "$build_libtool_libs" != yes; then 8870 + wrappers_required=no 8871 + fi 8872 + ;; 8873 + *) 8874 + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 8875 + wrappers_required=no 8876 + fi 8877 + ;; 8878 + esac 8879 + if test "$wrappers_required" = no; then 8880 + # Replace the output file specification. 8881 + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` 8882 + link_command="$compile_command$compile_rpath" 8883 + 8884 + # We have no uninstalled library dependencies, so finalize right now. 8885 + exit_status=0 8886 + func_show_eval "$link_command" 'exit_status=$?' 8887 + 8888 + if test -n "$postlink_cmds"; then 8889 + func_to_tool_file "$output" 8890 + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 8891 + func_execute_cmds "$postlink_cmds" 'exit $?' 8892 + fi 8893 + 8894 + # Delete the generated files. 8895 + if test -f "$output_objdir/${outputname}S.${objext}"; then 8896 + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' 8897 + fi 8898 + 8899 + exit $exit_status 8900 + fi 8901 + 8902 + if test -n "$compile_shlibpath$finalize_shlibpath"; then 8903 + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 8904 + fi 8905 + if test -n "$finalize_shlibpath"; then 8906 + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 8907 + fi 8908 + 8909 + compile_var= 8910 + finalize_var= 8911 + if test -n "$runpath_var"; then 8912 + if test -n "$perm_rpath"; then 8913 + # We should set the runpath_var. 8914 + rpath= 8915 + for dir in $perm_rpath; do 8916 + func_append rpath "$dir:" 8917 + done 8918 + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 8919 + fi 8920 + if test -n "$finalize_perm_rpath"; then 8921 + # We should set the runpath_var. 8922 + rpath= 8923 + for dir in $finalize_perm_rpath; do 8924 + func_append rpath "$dir:" 8925 + done 8926 + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 8927 + fi 8928 + fi 8929 + 8930 + if test "$no_install" = yes; then 8931 + # We don't need to create a wrapper script. 8932 + link_command="$compile_var$compile_command$compile_rpath" 8933 + # Replace the output file specification. 8934 + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` 8935 + # Delete the old output file. 8936 + $opt_dry_run || $RM $output 8937 + # Link the executable and exit 8938 + func_show_eval "$link_command" 'exit $?' 8939 + 8940 + if test -n "$postlink_cmds"; then 8941 + func_to_tool_file "$output" 8942 + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 8943 + func_execute_cmds "$postlink_cmds" 'exit $?' 8944 + fi 8945 + 8946 + exit $EXIT_SUCCESS 8947 + fi 8948 + 8949 + if test "$hardcode_action" = relink; then 8950 + # Fast installation is not supported 8951 + link_command="$compile_var$compile_command$compile_rpath" 8952 + relink_command="$finalize_var$finalize_command$finalize_rpath" 8953 + 8954 + func_warning "this platform does not like uninstalled shared libraries" 8955 + func_warning "\`$output' will be relinked during installation" 8956 + else 8957 + if test "$fast_install" != no; then 8958 + link_command="$finalize_var$compile_command$finalize_rpath" 8959 + if test "$fast_install" = yes; then 8960 + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` 8961 + else 8962 + # fast_install is set to needless 8963 + relink_command= 8964 + fi 8965 + else 8966 + link_command="$compile_var$compile_command$compile_rpath" 8967 + relink_command="$finalize_var$finalize_command$finalize_rpath" 8968 + fi 8969 + fi 8970 + 8971 + # Replace the output file specification. 8972 + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 8973 + 8974 + # Delete the old output files. 8975 + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname 8976 + 8977 + func_show_eval "$link_command" 'exit $?' 8978 + 8979 + if test -n "$postlink_cmds"; then 8980 + func_to_tool_file "$output_objdir/$outputname" 8981 + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 8982 + func_execute_cmds "$postlink_cmds" 'exit $?' 8983 + fi 8984 + 8985 + # Now create the wrapper script. 8986 + func_verbose "creating $output" 8987 + 8988 + # Quote the relink command for shipping. 8989 + if test -n "$relink_command"; then 8990 + # Preserve any variables that may affect compiler behavior 8991 + for var in $variables_saved_for_relink; do 8992 + if eval test -z \"\${$var+set}\"; then 8993 + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" 8994 + elif eval var_value=\$$var; test -z "$var_value"; then 8995 + relink_command="$var=; export $var; $relink_command" 8996 + else 8997 + func_quote_for_eval "$var_value" 8998 + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 8999 + fi 9000 + done 9001 + relink_command="(cd `pwd`; $relink_command)" 9002 + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` 9003 + fi 9004 + 9005 + # Only actually do things if not in dry run mode. 9006 + $opt_dry_run || { 9007 + # win32 will think the script is a binary if it has 9008 + # a .exe suffix, so we strip it off here. 9009 + case $output in 9010 + *.exe) func_stripname '' '.exe' "$output" 9011 + output=$func_stripname_result ;; 9012 + esac 9013 + # test for cygwin because mv fails w/o .exe extensions 9014 + case $host in 9015 + *cygwin*) 9016 + exeext=.exe 9017 + func_stripname '' '.exe' "$outputname" 9018 + outputname=$func_stripname_result ;; 9019 + *) exeext= ;; 9020 + esac 9021 + case $host in 9022 + *cygwin* | *mingw* ) 9023 + func_dirname_and_basename "$output" "" "." 9024 + output_name=$func_basename_result 9025 + output_path=$func_dirname_result 9026 + cwrappersource="$output_path/$objdir/lt-$output_name.c" 9027 + cwrapper="$output_path/$output_name.exe" 9028 + $RM $cwrappersource $cwrapper 9029 + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 9030 + 9031 + func_emit_cwrapperexe_src > $cwrappersource 9032 + 9033 + # The wrapper executable is built using the $host compiler, 9034 + # because it contains $host paths and files. If cross- 9035 + # compiling, it, like the target executable, must be 9036 + # executed on the $host or under an emulation environment. 9037 + $opt_dry_run || { 9038 + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource 9039 + $STRIP $cwrapper 9040 + } 9041 + 9042 + # Now, create the wrapper script for func_source use: 9043 + func_ltwrapper_scriptname $cwrapper 9044 + $RM $func_ltwrapper_scriptname_result 9045 + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 9046 + $opt_dry_run || { 9047 + # note: this script will not be executed, so do not chmod. 9048 + if test "x$build" = "x$host" ; then 9049 + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result 9050 + else 9051 + func_emit_wrapper no > $func_ltwrapper_scriptname_result 9052 + fi 9053 + } 9054 + ;; 9055 + * ) 9056 + $RM $output 9057 + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 9058 + 9059 + func_emit_wrapper no > $output 9060 + chmod +x $output 9061 + ;; 9062 + esac 9063 + } 9064 + exit $EXIT_SUCCESS 9065 + ;; 9066 + esac 9067 + 9068 + # See if we need to build an old-fashioned archive. 9069 + for oldlib in $oldlibs; do 9070 + 9071 + if test "$build_libtool_libs" = convenience; then 9072 + oldobjs="$libobjs_save $symfileobj" 9073 + addlibs="$convenience" 9074 + build_libtool_libs=no 9075 + else 9076 + if test "$build_libtool_libs" = module; then 9077 + oldobjs="$libobjs_save" 9078 + build_libtool_libs=no 9079 + else 9080 + oldobjs="$old_deplibs $non_pic_objects" 9081 + if test "$preload" = yes && test -f "$symfileobj"; then 9082 + func_append oldobjs " $symfileobj" 9083 + fi 9084 + fi 9085 + addlibs="$old_convenience" 9086 + fi 9087 + 9088 + if test -n "$addlibs"; then 9089 + gentop="$output_objdir/${outputname}x" 9090 + func_append generated " $gentop" 9091 + 9092 + func_extract_archives $gentop $addlibs 9093 + func_append oldobjs " $func_extract_archives_result" 9094 + fi 9095 + 9096 + # Do each command in the archive commands. 9097 + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 9098 + cmds=$old_archive_from_new_cmds 9099 + else 9100 + 9101 + # Add any objects from preloaded convenience libraries 9102 + if test -n "$dlprefiles"; then 9103 + gentop="$output_objdir/${outputname}x" 9104 + func_append generated " $gentop" 9105 + 9106 + func_extract_archives $gentop $dlprefiles 9107 + func_append oldobjs " $func_extract_archives_result" 9108 + fi 9109 + 9110 + # POSIX demands no paths to be encoded in archives. We have 9111 + # to avoid creating archives with duplicate basenames if we 9112 + # might have to extract them afterwards, e.g., when creating a 9113 + # static archive out of a convenience library, or when linking 9114 + # the entirety of a libtool archive into another (currently 9115 + # not supported by libtool). 9116 + if (for obj in $oldobjs 9117 + do 9118 + func_basename "$obj" 9119 + $ECHO "$func_basename_result" 9120 + done | sort | sort -uc >/dev/null 2>&1); then 9121 + : 9122 + else 9123 + echo "copying selected object files to avoid basename conflicts..." 9124 + gentop="$output_objdir/${outputname}x" 9125 + func_append generated " $gentop" 9126 + func_mkdir_p "$gentop" 9127 + save_oldobjs=$oldobjs 9128 + oldobjs= 9129 + counter=1 9130 + for obj in $save_oldobjs 9131 + do 9132 + func_basename "$obj" 9133 + objbase="$func_basename_result" 9134 + case " $oldobjs " in 9135 + " ") oldobjs=$obj ;; 9136 + *[\ /]"$objbase "*) 9137 + while :; do 9138 + # Make sure we don't pick an alternate name that also 9139 + # overlaps. 9140 + newobj=lt$counter-$objbase 9141 + func_arith $counter + 1 9142 + counter=$func_arith_result 9143 + case " $oldobjs " in 9144 + *[\ /]"$newobj "*) ;; 9145 + *) if test ! -f "$gentop/$newobj"; then break; fi ;; 9146 + esac 9147 + done 9148 + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 9149 + func_append oldobjs " $gentop/$newobj" 9150 + ;; 9151 + *) func_append oldobjs " $obj" ;; 9152 + esac 9153 + done 9154 + fi 9155 + eval cmds=\"$old_archive_cmds\" 9156 + 9157 + func_len " $cmds" 9158 + len=$func_len_result 9159 + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 9160 + cmds=$old_archive_cmds 9161 + elif test -n "$archiver_list_spec"; then 9162 + func_verbose "using command file archive linking..." 9163 + for obj in $oldobjs 9164 + do 9165 + func_to_tool_file "$obj" 9166 + $ECHO "$func_to_tool_file_result" 9167 + done > $output_objdir/$libname.libcmd 9168 + func_to_tool_file "$output_objdir/$libname.libcmd" 9169 + oldobjs=" $archiver_list_spec$func_to_tool_file_result" 9170 + cmds=$old_archive_cmds 9171 + else 9172 + # the command line is too long to link in one step, link in parts 9173 + func_verbose "using piecewise archive linking..." 9174 + save_RANLIB=$RANLIB 9175 + RANLIB=: 9176 + objlist= 9177 + concat_cmds= 9178 + save_oldobjs=$oldobjs 9179 + oldobjs= 9180 + # Is there a better way of finding the last object in the list? 9181 + for obj in $save_oldobjs 9182 + do 9183 + last_oldobj=$obj 9184 + done 9185 + eval test_cmds=\"$old_archive_cmds\" 9186 + func_len " $test_cmds" 9187 + len0=$func_len_result 9188 + len=$len0 9189 + for obj in $save_oldobjs 9190 + do 9191 + func_len " $obj" 9192 + func_arith $len + $func_len_result 9193 + len=$func_arith_result 9194 + func_append objlist " $obj" 9195 + if test "$len" -lt "$max_cmd_len"; then 9196 + : 9197 + else 9198 + # the above command should be used before it gets too long 9199 + oldobjs=$objlist 9200 + if test "$obj" = "$last_oldobj" ; then 9201 + RANLIB=$save_RANLIB 9202 + fi 9203 + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 9204 + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 9205 + objlist= 9206 + len=$len0 9207 + fi 9208 + done 9209 + RANLIB=$save_RANLIB 9210 + oldobjs=$objlist 9211 + if test "X$oldobjs" = "X" ; then 9212 + eval cmds=\"\$concat_cmds\" 9213 + else 9214 + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 9215 + fi 9216 + fi 9217 + fi 9218 + func_execute_cmds "$cmds" 'exit $?' 9219 + done 9220 + 9221 + test -n "$generated" && \ 9222 + func_show_eval "${RM}r$generated" 9223 + 9224 + # Now create the libtool archive. 9225 + case $output in 9226 + *.la) 9227 + old_library= 9228 + test "$build_old_libs" = yes && old_library="$libname.$libext" 9229 + func_verbose "creating $output" 9230 + 9231 + # Preserve any variables that may affect compiler behavior 9232 + for var in $variables_saved_for_relink; do 9233 + if eval test -z \"\${$var+set}\"; then 9234 + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" 9235 + elif eval var_value=\$$var; test -z "$var_value"; then 9236 + relink_command="$var=; export $var; $relink_command" 9237 + else 9238 + func_quote_for_eval "$var_value" 9239 + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 9240 + fi 9241 + done 9242 + # Quote the link command for shipping. 9243 + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 9244 + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` 9245 + if test "$hardcode_automatic" = yes ; then 9246 + relink_command= 9247 + fi 9248 + 9249 + # Only create the output if not a dry run. 9250 + $opt_dry_run || { 9251 + for installed in no yes; do 9252 + if test "$installed" = yes; then 9253 + if test -z "$install_libdir"; then 9254 + break 9255 + fi 9256 + output="$output_objdir/$outputname"i 9257 + # Replace all uninstalled libtool libraries with the installed ones 9258 + newdependency_libs= 9259 + for deplib in $dependency_libs; do 9260 + case $deplib in 9261 + *.la) 9262 + func_basename "$deplib" 9263 + name="$func_basename_result" 9264 + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 9265 + test -z "$libdir" && \ 9266 + func_fatal_error "\`$deplib' is not a valid libtool archive" 9267 + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" 9268 + ;; 9269 + -L*) 9270 + func_stripname -L '' "$deplib" 9271 + func_replace_sysroot "$func_stripname_result" 9272 + func_append newdependency_libs " -L$func_replace_sysroot_result" 9273 + ;; 9274 + -R*) 9275 + func_stripname -R '' "$deplib" 9276 + func_replace_sysroot "$func_stripname_result" 9277 + func_append newdependency_libs " -R$func_replace_sysroot_result" 9278 + ;; 9279 + *) func_append newdependency_libs " $deplib" ;; 9280 + esac 9281 + done 9282 + dependency_libs="$newdependency_libs" 9283 + newdlfiles= 9284 + 9285 + for lib in $dlfiles; do 9286 + case $lib in 9287 + *.la) 9288 + func_basename "$lib" 9289 + name="$func_basename_result" 9290 + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 9291 + test -z "$libdir" && \ 9292 + func_fatal_error "\`$lib' is not a valid libtool archive" 9293 + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" 9294 + ;; 9295 + *) func_append newdlfiles " $lib" ;; 9296 + esac 9297 + done 9298 + dlfiles="$newdlfiles" 9299 + newdlprefiles= 9300 + for lib in $dlprefiles; do 9301 + case $lib in 9302 + *.la) 9303 + # Only pass preopened files to the pseudo-archive (for 9304 + # eventual linking with the app. that links it) if we 9305 + # didn't already link the preopened objects directly into 9306 + # the library: 9307 + func_basename "$lib" 9308 + name="$func_basename_result" 9309 + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 9310 + test -z "$libdir" && \ 9311 + func_fatal_error "\`$lib' is not a valid libtool archive" 9312 + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" 9313 + ;; 9314 + esac 9315 + done 9316 + dlprefiles="$newdlprefiles" 9317 + else 9318 + newdlfiles= 9319 + for lib in $dlfiles; do 9320 + case $lib in 9321 + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 9322 + *) abs=`pwd`"/$lib" ;; 9323 + esac 9324 + func_append newdlfiles " $abs" 9325 + done 9326 + dlfiles="$newdlfiles" 9327 + newdlprefiles= 9328 + for lib in $dlprefiles; do 9329 + case $lib in 9330 + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 9331 + *) abs=`pwd`"/$lib" ;; 9332 + esac 9333 + func_append newdlprefiles " $abs" 9334 + done 9335 + dlprefiles="$newdlprefiles" 9336 + fi 9337 + $RM $output 9338 + # place dlname in correct position for cygwin 9339 + # In fact, it would be nice if we could use this code for all target 9340 + # systems that can't hard-code library paths into their executables 9341 + # and that have no shared library path variable independent of PATH, 9342 + # but it turns out we can't easily determine that from inspecting 9343 + # libtool variables, so we have to hard-code the OSs to which it 9344 + # applies here; at the moment, that means platforms that use the PE 9345 + # object format with DLL files. See the long comment at the top of 9346 + # tests/bindir.at for full details. 9347 + tdlname=$dlname 9348 + case $host,$output,$installed,$module,$dlname in 9349 + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) 9350 + # If a -bindir argument was supplied, place the dll there. 9351 + if test "x$bindir" != x ; 9352 + then 9353 + func_relative_path "$install_libdir" "$bindir" 9354 + tdlname=$func_relative_path_result$dlname 9355 + else 9356 + # Otherwise fall back on heuristic. 9357 + tdlname=../bin/$dlname 9358 + fi 9359 + ;; 9360 + esac 9361 + $ECHO > $output "\ 9362 +# $outputname - a libtool library file 9363 +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 9364 +# 9365 +# Please DO NOT delete this file! 9366 +# It is necessary for linking the library. 9367 + 9368 +# The name that we can dlopen(3). 9369 +dlname='$tdlname' 9370 + 9371 +# Names of this library. 9372 +library_names='$library_names' 9373 + 9374 +# The name of the static archive. 9375 +old_library='$old_library' 9376 + 9377 +# Linker flags that can not go in dependency_libs. 9378 +inherited_linker_flags='$new_inherited_linker_flags' 9379 + 9380 +# Libraries that this one depends upon. 9381 +dependency_libs='$dependency_libs' 9382 + 9383 +# Names of additional weak libraries provided by this library 9384 +weak_library_names='$weak_libs' 9385 + 9386 +# Version information for $libname. 9387 +current=$current 9388 +age=$age 9389 +revision=$revision 9390 + 9391 +# Is this an already installed library? 9392 +installed=$installed 9393 + 9394 +# Should we warn about portability when linking against -modules? 9395 +shouldnotlink=$module 9396 + 9397 +# Files to dlopen/dlpreopen 9398 +dlopen='$dlfiles' 9399 +dlpreopen='$dlprefiles' 9400 + 9401 +# Directory that this library needs to be installed in: 9402 +libdir='$install_libdir'" 9403 + if test "$installed" = no && test "$need_relink" = yes; then 9404 + $ECHO >> $output "\ 9405 +relink_command=\"$relink_command\"" 9406 + fi 9407 + done 9408 + } 9409 + 9410 + # Do a symbolic link so that the libtool archive can be found in 9411 + # LD_LIBRARY_PATH before the program is installed. 9412 + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' 9413 + ;; 9414 + esac 9415 + exit $EXIT_SUCCESS 9416 +} 9417 + 9418 +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && 9419 + func_mode_link ${1+"$@"} 9420 + 9421 + 9422 +# func_mode_uninstall arg... 9423 +func_mode_uninstall () 9424 +{ 9425 + $opt_debug 9426 + RM="$nonopt" 9427 + files= 9428 + rmforce= 9429 + exit_status=0 9430 + 9431 + # This variable tells wrapper scripts just to set variables rather 9432 + # than running their programs. 9433 + libtool_install_magic="$magic" 9434 + 9435 + for arg 9436 + do 9437 + case $arg in 9438 + -f) func_append RM " $arg"; rmforce=yes ;; 9439 + -*) func_append RM " $arg" ;; 9440 + *) func_append files " $arg" ;; 9441 + esac 9442 + done 9443 + 9444 + test -z "$RM" && \ 9445 + func_fatal_help "you must specify an RM program" 9446 + 9447 + rmdirs= 9448 + 9449 + for file in $files; do 9450 + func_dirname "$file" "" "." 9451 + dir="$func_dirname_result" 9452 + if test "X$dir" = X.; then 9453 + odir="$objdir" 9454 + else 9455 + odir="$dir/$objdir" 9456 + fi 9457 + func_basename "$file" 9458 + name="$func_basename_result" 9459 + test "$opt_mode" = uninstall && odir="$dir" 9460 + 9461 + # Remember odir for removal later, being careful to avoid duplicates 9462 + if test "$opt_mode" = clean; then 9463 + case " $rmdirs " in 9464 + *" $odir "*) ;; 9465 + *) func_append rmdirs " $odir" ;; 9466 + esac 9467 + fi 9468 + 9469 + # Don't error if the file doesn't exist and rm -f was used. 9470 + if { test -L "$file"; } >/dev/null 2>&1 || 9471 + { test -h "$file"; } >/dev/null 2>&1 || 9472 + test -f "$file"; then 9473 + : 9474 + elif test -d "$file"; then 9475 + exit_status=1 9476 + continue 9477 + elif test "$rmforce" = yes; then 9478 + continue 9479 + fi 9480 + 9481 + rmfiles="$file" 9482 + 9483 + case $name in 9484 + *.la) 9485 + # Possibly a libtool archive, so verify it. 9486 + if func_lalib_p "$file"; then 9487 + func_source $dir/$name 9488 + 9489 + # Delete the libtool libraries and symlinks. 9490 + for n in $library_names; do 9491 + func_append rmfiles " $odir/$n" 9492 + done 9493 + test -n "$old_library" && func_append rmfiles " $odir/$old_library" 9494 + 9495 + case "$opt_mode" in 9496 + clean) 9497 + case " $library_names " in 9498 + *" $dlname "*) ;; 9499 + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; 9500 + esac 9501 + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" 9502 + ;; 9503 + uninstall) 9504 + if test -n "$library_names"; then 9505 + # Do each command in the postuninstall commands. 9506 + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 9507 + fi 9508 + 9509 + if test -n "$old_library"; then 9510 + # Do each command in the old_postuninstall commands. 9511 + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 9512 + fi 9513 + # FIXME: should reinstall the best remaining shared library. 9514 + ;; 9515 + esac 9516 + fi 9517 + ;; 9518 + 9519 + *.lo) 9520 + # Possibly a libtool object, so verify it. 9521 + if func_lalib_p "$file"; then 9522 + 9523 + # Read the .lo file 9524 + func_source $dir/$name 9525 + 9526 + # Add PIC object to the list of files to remove. 9527 + if test -n "$pic_object" && 9528 + test "$pic_object" != none; then 9529 + func_append rmfiles " $dir/$pic_object" 9530 + fi 9531 + 9532 + # Add non-PIC object to the list of files to remove. 9533 + if test -n "$non_pic_object" && 9534 + test "$non_pic_object" != none; then 9535 + func_append rmfiles " $dir/$non_pic_object" 9536 + fi 9537 + fi 9538 + ;; 9539 + 9540 + *) 9541 + if test "$opt_mode" = clean ; then 9542 + noexename=$name 9543 + case $file in 9544 + *.exe) 9545 + func_stripname '' '.exe' "$file" 9546 + file=$func_stripname_result 9547 + func_stripname '' '.exe' "$name" 9548 + noexename=$func_stripname_result 9549 + # $file with .exe has already been added to rmfiles, 9550 + # add $file without .exe 9551 + func_append rmfiles " $file" 9552 + ;; 9553 + esac 9554 + # Do a test to see if this is a libtool program. 9555 + if func_ltwrapper_p "$file"; then 9556 + if func_ltwrapper_executable_p "$file"; then 9557 + func_ltwrapper_scriptname "$file" 9558 + relink_command= 9559 + func_source $func_ltwrapper_scriptname_result 9560 + func_append rmfiles " $func_ltwrapper_scriptname_result" 9561 + else 9562 + relink_command= 9563 + func_source $dir/$noexename 9564 + fi 9565 + 9566 + # note $name still contains .exe if it was in $file originally 9567 + # as does the version of $file that was added into $rmfiles 9568 + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" 9569 + if test "$fast_install" = yes && test -n "$relink_command"; then 9570 + func_append rmfiles " $odir/lt-$name" 9571 + fi 9572 + if test "X$noexename" != "X$name" ; then 9573 + func_append rmfiles " $odir/lt-${noexename}.c" 9574 + fi 9575 + fi 9576 + fi 9577 + ;; 9578 + esac 9579 + func_show_eval "$RM $rmfiles" 'exit_status=1' 9580 + done 9581 + 9582 + # Try to remove the ${objdir}s in the directories where we deleted files 9583 + for dir in $rmdirs; do 9584 + if test -d "$dir"; then 9585 + func_show_eval "rmdir $dir >/dev/null 2>&1" 9586 + fi 9587 + done 9588 + 9589 + exit $exit_status 9590 +} 9591 + 9592 +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && 9593 + func_mode_uninstall ${1+"$@"} 9594 + 9595 +test -z "$opt_mode" && { 9596 + help="$generic_help" 9597 + func_fatal_help "you must specify a MODE" 9598 +} 9599 + 9600 +test -z "$exec_cmd" && \ 9601 + func_fatal_help "invalid operation mode \`$opt_mode'" 9602 + 9603 +if test -n "$exec_cmd"; then 9604 + eval exec "$exec_cmd" 9605 + exit $EXIT_FAILURE 9606 +fi 9607 + 9608 +exit $exit_status 9609 + 9610 + 9611 +# The TAGs below are defined such that we never get into a situation 9612 +# in which we disable both kinds of libraries. Given conflicting 9613 +# choices, we go for a static library, that is the most portable, 9614 +# since we can't tell whether shared libraries were disabled because 9615 +# the user asked for that or because the platform doesn't support 9616 +# them. This is particularly important on AIX, because we don't 9617 +# support having both static and shared libraries enabled at the same 9618 +# time on that platform, so we default to a shared-only configuration. 9619 +# If a disable-shared tag is given, we'll fallback to a static-only 9620 +# configuration. But we'll never go from static-only to shared-only. 9621 + 9622 +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 9623 +build_libtool_libs=no 9624 +build_old_libs=yes 9625 +# ### END LIBTOOL TAG CONFIG: disable-shared 9626 + 9627 +# ### BEGIN LIBTOOL TAG CONFIG: disable-static 9628 +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 9629 +# ### END LIBTOOL TAG CONFIG: disable-static 9630 + 9631 +# Local Variables: 9632 +# mode:shell-script 9633 +# sh-indentation:2 9634 +# End: 9635 +# vi:sw=2 9636 +
Added m4/libtool.m4.
1 +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- 2 +# 3 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 4 +# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, 5 +# Inc. 6 +# Written by Gordon Matzigkeit, 1996 7 +# 8 +# This file is free software; the Free Software Foundation gives 9 +# unlimited permission to copy and/or distribute it, with or without 10 +# modifications, as long as this notice is preserved. 11 + 12 +m4_define([_LT_COPYING], [dnl 13 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 14 +# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, 15 +# Inc. 16 +# Written by Gordon Matzigkeit, 1996 17 +# 18 +# This file is part of GNU Libtool. 19 +# 20 +# GNU Libtool is free software; you can redistribute it and/or 21 +# modify it under the terms of the GNU General Public License as 22 +# published by the Free Software Foundation; either version 2 of 23 +# the License, or (at your option) any later version. 24 +# 25 +# As a special exception to the GNU General Public License, 26 +# if you distribute this file as part of a program or library that 27 +# is built using GNU Libtool, you may include this file under the 28 +# same distribution terms that you use for the rest of that program. 29 +# 30 +# GNU Libtool is distributed in the hope that it will be useful, 31 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 32 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 +# GNU General Public License for more details. 34 +# 35 +# You should have received a copy of the GNU General Public License 36 +# along with GNU Libtool; see the file COPYING. If not, a copy 37 +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or 38 +# obtained by writing to the Free Software Foundation, Inc., 39 +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 40 +]) 41 + 42 +# serial 57 LT_INIT 43 + 44 + 45 +# LT_PREREQ(VERSION) 46 +# ------------------ 47 +# Complain and exit if this libtool version is less that VERSION. 48 +m4_defun([LT_PREREQ], 49 +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, 50 + [m4_default([$3], 51 + [m4_fatal([Libtool version $1 or higher is required], 52 + 63)])], 53 + [$2])]) 54 + 55 + 56 +# _LT_CHECK_BUILDDIR 57 +# ------------------ 58 +# Complain if the absolute build directory name contains unusual characters 59 +m4_defun([_LT_CHECK_BUILDDIR], 60 +[case `pwd` in 61 + *\ * | *\ *) 62 + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; 63 +esac 64 +]) 65 + 66 + 67 +# LT_INIT([OPTIONS]) 68 +# ------------------ 69 +AC_DEFUN([LT_INIT], 70 +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT 71 +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl 72 +AC_BEFORE([$0], [LT_LANG])dnl 73 +AC_BEFORE([$0], [LT_OUTPUT])dnl 74 +AC_BEFORE([$0], [LTDL_INIT])dnl 75 +m4_require([_LT_CHECK_BUILDDIR])dnl 76 + 77 +dnl Autoconf doesn't catch unexpanded LT_ macros by default: 78 +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl 79 +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl 80 +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 81 +dnl unless we require an AC_DEFUNed macro: 82 +AC_REQUIRE([LTOPTIONS_VERSION])dnl 83 +AC_REQUIRE([LTSUGAR_VERSION])dnl 84 +AC_REQUIRE([LTVERSION_VERSION])dnl 85 +AC_REQUIRE([LTOBSOLETE_VERSION])dnl 86 +m4_require([_LT_PROG_LTMAIN])dnl 87 + 88 +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) 89 + 90 +dnl Parse OPTIONS 91 +_LT_SET_OPTIONS([$0], [$1]) 92 + 93 +# This can be used to rebuild libtool when needed 94 +LIBTOOL_DEPS="$ltmain" 95 + 96 +# Always use our own libtool. 97 +LIBTOOL='$(SHELL) $(top_builddir)/libtool' 98 +AC_SUBST(LIBTOOL)dnl 99 + 100 +_LT_SETUP 101 + 102 +# Only expand once: 103 +m4_define([LT_INIT]) 104 +])# LT_INIT 105 + 106 +# Old names: 107 +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) 108 +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) 109 +dnl aclocal-1.4 backwards compatibility: 110 +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) 111 +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) 112 + 113 + 114 +# _LT_CC_BASENAME(CC) 115 +# ------------------- 116 +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. 117 +m4_defun([_LT_CC_BASENAME], 118 +[for cc_temp in $1""; do 119 + case $cc_temp in 120 + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; 121 + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; 122 + \-*) ;; 123 + *) break;; 124 + esac 125 +done 126 +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` 127 +]) 128 + 129 + 130 +# _LT_FILEUTILS_DEFAULTS 131 +# ---------------------- 132 +# It is okay to use these file commands and assume they have been set 133 +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. 134 +m4_defun([_LT_FILEUTILS_DEFAULTS], 135 +[: ${CP="cp -f"} 136 +: ${MV="mv -f"} 137 +: ${RM="rm -f"} 138 +])# _LT_FILEUTILS_DEFAULTS 139 + 140 + 141 +# _LT_SETUP 142 +# --------- 143 +m4_defun([_LT_SETUP], 144 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 145 +AC_REQUIRE([AC_CANONICAL_BUILD])dnl 146 +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl 147 +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl 148 + 149 +_LT_DECL([], [host_alias], [0], [The host system])dnl 150 +_LT_DECL([], [host], [0])dnl 151 +_LT_DECL([], [host_os], [0])dnl 152 +dnl 153 +_LT_DECL([], [build_alias], [0], [The build system])dnl 154 +_LT_DECL([], [build], [0])dnl 155 +_LT_DECL([], [build_os], [0])dnl 156 +dnl 157 +AC_REQUIRE([AC_PROG_CC])dnl 158 +AC_REQUIRE([LT_PATH_LD])dnl 159 +AC_REQUIRE([LT_PATH_NM])dnl 160 +dnl 161 +AC_REQUIRE([AC_PROG_LN_S])dnl 162 +test -z "$LN_S" && LN_S="ln -s" 163 +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl 164 +dnl 165 +AC_REQUIRE([LT_CMD_MAX_LEN])dnl 166 +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl 167 +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl 168 +dnl 169 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 170 +m4_require([_LT_CHECK_SHELL_FEATURES])dnl 171 +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl 172 +m4_require([_LT_CMD_RELOAD])dnl 173 +m4_require([_LT_CHECK_MAGIC_METHOD])dnl 174 +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl 175 +m4_require([_LT_CMD_OLD_ARCHIVE])dnl 176 +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl 177 +m4_require([_LT_WITH_SYSROOT])dnl 178 + 179 +_LT_CONFIG_LIBTOOL_INIT([ 180 +# See if we are running on zsh, and set the options which allow our 181 +# commands through without removal of \ escapes INIT. 182 +if test -n "\${ZSH_VERSION+set}" ; then 183 + setopt NO_GLOB_SUBST 184 +fi 185 +]) 186 +if test -n "${ZSH_VERSION+set}" ; then 187 + setopt NO_GLOB_SUBST 188 +fi 189 + 190 +_LT_CHECK_OBJDIR 191 + 192 +m4_require([_LT_TAG_COMPILER])dnl 193 + 194 +case $host_os in 195 +aix3*) 196 + # AIX sometimes has problems with the GCC collect2 program. For some 197 + # reason, if we set the COLLECT_NAMES environment variable, the problems 198 + # vanish in a puff of smoke. 199 + if test "X${COLLECT_NAMES+set}" != Xset; then 200 + COLLECT_NAMES= 201 + export COLLECT_NAMES 202 + fi 203 + ;; 204 +esac 205 + 206 +# Global variables: 207 +ofile=libtool 208 +can_build_shared=yes 209 + 210 +# All known linkers require a `.a' archive for static linking (except MSVC, 211 +# which needs '.lib'). 212 +libext=a 213 + 214 +with_gnu_ld="$lt_cv_prog_gnu_ld" 215 + 216 +old_CC="$CC" 217 +old_CFLAGS="$CFLAGS" 218 + 219 +# Set sane defaults for various variables 220 +test -z "$CC" && CC=cc 221 +test -z "$LTCC" && LTCC=$CC 222 +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS 223 +test -z "$LD" && LD=ld 224 +test -z "$ac_objext" && ac_objext=o 225 + 226 +_LT_CC_BASENAME([$compiler]) 227 + 228 +# Only perform the check for file, if the check method requires it 229 +test -z "$MAGIC_CMD" && MAGIC_CMD=file 230 +case $deplibs_check_method in 231 +file_magic*) 232 + if test "$file_magic_cmd" = '$MAGIC_CMD'; then 233 + _LT_PATH_MAGIC 234 + fi 235 + ;; 236 +esac 237 + 238 +# Use C for the default configuration in the libtool script 239 +LT_SUPPORTED_TAG([CC]) 240 +_LT_LANG_C_CONFIG 241 +_LT_LANG_DEFAULT_CONFIG 242 +_LT_CONFIG_COMMANDS 243 +])# _LT_SETUP 244 + 245 + 246 +# _LT_PREPARE_SED_QUOTE_VARS 247 +# -------------------------- 248 +# Define a few sed substitution that help us do robust quoting. 249 +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], 250 +[# Backslashify metacharacters that are still active within 251 +# double-quoted strings. 252 +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' 253 + 254 +# Same as above, but do not quote variable references. 255 +double_quote_subst='s/\([["`\\]]\)/\\\1/g' 256 + 257 +# Sed substitution to delay expansion of an escaped shell variable in a 258 +# double_quote_subst'ed string. 259 +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' 260 + 261 +# Sed substitution to delay expansion of an escaped single quote. 262 +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' 263 + 264 +# Sed substitution to avoid accidental globbing in evaled expressions 265 +no_glob_subst='s/\*/\\\*/g' 266 +]) 267 + 268 +# _LT_PROG_LTMAIN 269 +# --------------- 270 +# Note that this code is called both from `configure', and `config.status' 271 +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, 272 +# `config.status' has no value for ac_aux_dir unless we are using Automake, 273 +# so we pass a copy along to make sure it has a sensible value anyway. 274 +m4_defun([_LT_PROG_LTMAIN], 275 +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl 276 +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) 277 +ltmain="$ac_aux_dir/ltmain.sh" 278 +])# _LT_PROG_LTMAIN 279 + 280 + 281 +## ------------------------------------- ## 282 +## Accumulate code for creating libtool. ## 283 +## ------------------------------------- ## 284 + 285 +# So that we can recreate a full libtool script including additional 286 +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS 287 +# in macros and then make a single call at the end using the `libtool' 288 +# label. 289 + 290 + 291 +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) 292 +# ---------------------------------------- 293 +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. 294 +m4_define([_LT_CONFIG_LIBTOOL_INIT], 295 +[m4_ifval([$1], 296 + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], 297 + [$1 298 +])])]) 299 + 300 +# Initialize. 301 +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) 302 + 303 + 304 +# _LT_CONFIG_LIBTOOL([COMMANDS]) 305 +# ------------------------------ 306 +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. 307 +m4_define([_LT_CONFIG_LIBTOOL], 308 +[m4_ifval([$1], 309 + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], 310 + [$1 311 +])])]) 312 + 313 +# Initialize. 314 +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) 315 + 316 + 317 +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) 318 +# ----------------------------------------------------- 319 +m4_defun([_LT_CONFIG_SAVE_COMMANDS], 320 +[_LT_CONFIG_LIBTOOL([$1]) 321 +_LT_CONFIG_LIBTOOL_INIT([$2]) 322 +]) 323 + 324 + 325 +# _LT_FORMAT_COMMENT([COMMENT]) 326 +# ----------------------------- 327 +# Add leading comment marks to the start of each line, and a trailing 328 +# full-stop to the whole comment if one is not present already. 329 +m4_define([_LT_FORMAT_COMMENT], 330 +[m4_ifval([$1], [ 331 +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], 332 + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) 333 +)]) 334 + 335 + 336 + 337 +## ------------------------ ## 338 +## FIXME: Eliminate VARNAME ## 339 +## ------------------------ ## 340 + 341 + 342 +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) 343 +# ------------------------------------------------------------------- 344 +# CONFIGNAME is the name given to the value in the libtool script. 345 +# VARNAME is the (base) name used in the configure script. 346 +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on 347 +# VARNAME. Any other value will be used directly. 348 +m4_define([_LT_DECL], 349 +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], 350 + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], 351 + [m4_ifval([$1], [$1], [$2])]) 352 + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) 353 + m4_ifval([$4], 354 + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) 355 + lt_dict_add_subkey([lt_decl_dict], [$2], 356 + [tagged?], [m4_ifval([$5], [yes], [no])])]) 357 +]) 358 + 359 + 360 +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) 361 +# -------------------------------------------------------- 362 +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) 363 + 364 + 365 +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) 366 +# ------------------------------------------------ 367 +m4_define([lt_decl_tag_varnames], 368 +[_lt_decl_filter([tagged?], [yes], $@)]) 369 + 370 + 371 +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) 372 +# --------------------------------------------------------- 373 +m4_define([_lt_decl_filter], 374 +[m4_case([$#], 375 + [0], [m4_fatal([$0: too few arguments: $#])], 376 + [1], [m4_fatal([$0: too few arguments: $#: $1])], 377 + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], 378 + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], 379 + [lt_dict_filter([lt_decl_dict], $@)])[]dnl 380 +]) 381 + 382 + 383 +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) 384 +# -------------------------------------------------- 385 +m4_define([lt_decl_quote_varnames], 386 +[_lt_decl_filter([value], [1], $@)]) 387 + 388 + 389 +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) 390 +# --------------------------------------------------- 391 +m4_define([lt_decl_dquote_varnames], 392 +[_lt_decl_filter([value], [2], $@)]) 393 + 394 + 395 +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) 396 +# --------------------------------------------------- 397 +m4_define([lt_decl_varnames_tagged], 398 +[m4_assert([$# <= 2])dnl 399 +_$0(m4_quote(m4_default([$1], [[, ]])), 400 + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), 401 + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) 402 +m4_define([_lt_decl_varnames_tagged], 403 +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) 404 + 405 + 406 +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) 407 +# ------------------------------------------------ 408 +m4_define([lt_decl_all_varnames], 409 +[_$0(m4_quote(m4_default([$1], [[, ]])), 410 + m4_if([$2], [], 411 + m4_quote(lt_decl_varnames), 412 + m4_quote(m4_shift($@))))[]dnl 413 +]) 414 +m4_define([_lt_decl_all_varnames], 415 +[lt_join($@, lt_decl_varnames_tagged([$1], 416 + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl 417 +]) 418 + 419 + 420 +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) 421 +# ------------------------------------ 422 +# Quote a variable value, and forward it to `config.status' so that its 423 +# declaration there will have the same value as in `configure'. VARNAME 424 +# must have a single quote delimited value for this to work. 425 +m4_define([_LT_CONFIG_STATUS_DECLARE], 426 +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) 427 + 428 + 429 +# _LT_CONFIG_STATUS_DECLARATIONS 430 +# ------------------------------ 431 +# We delimit libtool config variables with single quotes, so when 432 +# we write them to config.status, we have to be sure to quote all 433 +# embedded single quotes properly. In configure, this macro expands 434 +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: 435 +# 436 +# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' 437 +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], 438 +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), 439 + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) 440 + 441 + 442 +# _LT_LIBTOOL_TAGS 443 +# ---------------- 444 +# Output comment and list of tags supported by the script 445 +m4_defun([_LT_LIBTOOL_TAGS], 446 +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl 447 +available_tags="_LT_TAGS"dnl 448 +]) 449 + 450 + 451 +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) 452 +# ----------------------------------- 453 +# Extract the dictionary values for VARNAME (optionally with TAG) and 454 +# expand to a commented shell variable setting: 455 +# 456 +# # Some comment about what VAR is for. 457 +# visible_name=$lt_internal_name 458 +m4_define([_LT_LIBTOOL_DECLARE], 459 +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], 460 + [description])))[]dnl 461 +m4_pushdef([_libtool_name], 462 + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl 463 +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), 464 + [0], [_libtool_name=[$]$1], 465 + [1], [_libtool_name=$lt_[]$1], 466 + [2], [_libtool_name=$lt_[]$1], 467 + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl 468 +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl 469 +]) 470 + 471 + 472 +# _LT_LIBTOOL_CONFIG_VARS 473 +# ----------------------- 474 +# Produce commented declarations of non-tagged libtool config variables 475 +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' 476 +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG 477 +# section) are produced by _LT_LIBTOOL_TAG_VARS. 478 +m4_defun([_LT_LIBTOOL_CONFIG_VARS], 479 +[m4_foreach([_lt_var], 480 + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), 481 + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) 482 + 483 + 484 +# _LT_LIBTOOL_TAG_VARS(TAG) 485 +# ------------------------- 486 +m4_define([_LT_LIBTOOL_TAG_VARS], 487 +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), 488 + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) 489 + 490 + 491 +# _LT_TAGVAR(VARNAME, [TAGNAME]) 492 +# ------------------------------ 493 +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) 494 + 495 + 496 +# _LT_CONFIG_COMMANDS 497 +# ------------------- 498 +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of 499 +# variables for single and double quote escaping we saved from calls 500 +# to _LT_DECL, we can put quote escaped variables declarations 501 +# into `config.status', and then the shell code to quote escape them in 502 +# for loops in `config.status'. Finally, any additional code accumulated 503 +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. 504 +m4_defun([_LT_CONFIG_COMMANDS], 505 +[AC_PROVIDE_IFELSE([LT_OUTPUT], 506 + dnl If the libtool generation code has been placed in $CONFIG_LT, 507 + dnl instead of duplicating it all over again into config.status, 508 + dnl then we will have config.status run $CONFIG_LT later, so it 509 + dnl needs to know what name is stored there: 510 + [AC_CONFIG_COMMANDS([libtool], 511 + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], 512 + dnl If the libtool generation code is destined for config.status, 513 + dnl expand the accumulated commands and init code now: 514 + [AC_CONFIG_COMMANDS([libtool], 515 + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) 516 +])#_LT_CONFIG_COMMANDS 517 + 518 + 519 +# Initialize. 520 +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], 521 +[ 522 + 523 +# The HP-UX ksh and POSIX shell print the target directory to stdout 524 +# if CDPATH is set. 525 +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 526 + 527 +sed_quote_subst='$sed_quote_subst' 528 +double_quote_subst='$double_quote_subst' 529 +delay_variable_subst='$delay_variable_subst' 530 +_LT_CONFIG_STATUS_DECLARATIONS 531 +LTCC='$LTCC' 532 +LTCFLAGS='$LTCFLAGS' 533 +compiler='$compiler_DEFAULT' 534 + 535 +# A function that is used when there is no print builtin or printf. 536 +func_fallback_echo () 537 +{ 538 + eval 'cat <<_LTECHO_EOF 539 +\$[]1 540 +_LTECHO_EOF' 541 +} 542 + 543 +# Quote evaled strings. 544 +for var in lt_decl_all_varnames([[ \ 545 +]], lt_decl_quote_varnames); do 546 + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in 547 + *[[\\\\\\\`\\"\\\$]]*) 548 + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" 549 + ;; 550 + *) 551 + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" 552 + ;; 553 + esac 554 +done 555 + 556 +# Double-quote double-evaled strings. 557 +for var in lt_decl_all_varnames([[ \ 558 +]], lt_decl_dquote_varnames); do 559 + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in 560 + *[[\\\\\\\`\\"\\\$]]*) 561 + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" 562 + ;; 563 + *) 564 + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" 565 + ;; 566 + esac 567 +done 568 + 569 +_LT_OUTPUT_LIBTOOL_INIT 570 +]) 571 + 572 +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) 573 +# ------------------------------------ 574 +# Generate a child script FILE with all initialization necessary to 575 +# reuse the environment learned by the parent script, and make the 576 +# file executable. If COMMENT is supplied, it is inserted after the 577 +# `#!' sequence but before initialization text begins. After this 578 +# macro, additional text can be appended to FILE to form the body of 579 +# the child script. The macro ends with non-zero status if the 580 +# file could not be fully written (such as if the disk is full). 581 +m4_ifdef([AS_INIT_GENERATED], 582 +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], 583 +[m4_defun([_LT_GENERATED_FILE_INIT], 584 +[m4_require([AS_PREPARE])]dnl 585 +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl 586 +[lt_write_fail=0 587 +cat >$1 <<_ASEOF || lt_write_fail=1 588 +#! $SHELL 589 +# Generated by $as_me. 590 +$2 591 +SHELL=\${CONFIG_SHELL-$SHELL} 592 +export SHELL 593 +_ASEOF 594 +cat >>$1 <<\_ASEOF || lt_write_fail=1 595 +AS_SHELL_SANITIZE 596 +_AS_PREPARE 597 +exec AS_MESSAGE_FD>&1 598 +_ASEOF 599 +test $lt_write_fail = 0 && chmod +x $1[]dnl 600 +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT 601 + 602 +# LT_OUTPUT 603 +# --------- 604 +# This macro allows early generation of the libtool script (before 605 +# AC_OUTPUT is called), incase it is used in configure for compilation 606 +# tests. 607 +AC_DEFUN([LT_OUTPUT], 608 +[: ${CONFIG_LT=./config.lt} 609 +AC_MSG_NOTICE([creating $CONFIG_LT]) 610 +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], 611 +[# Run this file to recreate a libtool stub with the current configuration.]) 612 + 613 +cat >>"$CONFIG_LT" <<\_LTEOF 614 +lt_cl_silent=false 615 +exec AS_MESSAGE_LOG_FD>>config.log 616 +{ 617 + echo 618 + AS_BOX([Running $as_me.]) 619 +} >&AS_MESSAGE_LOG_FD 620 + 621 +lt_cl_help="\ 622 +\`$as_me' creates a local libtool stub from the current configuration, 623 +for use in further configure time tests before the real libtool is 624 +generated. 625 + 626 +Usage: $[0] [[OPTIONS]] 627 + 628 + -h, --help print this help, then exit 629 + -V, --version print version number, then exit 630 + -q, --quiet do not print progress messages 631 + -d, --debug don't remove temporary files 632 + 633 +Report bugs to <bug-libtool@gnu.org>." 634 + 635 +lt_cl_version="\ 636 +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl 637 +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) 638 +configured by $[0], generated by m4_PACKAGE_STRING. 639 + 640 +Copyright (C) 2010 Free Software Foundation, Inc. 641 +This config.lt script is free software; the Free Software Foundation 642 +gives unlimited permision to copy, distribute and modify it." 643 + 644 +while test $[#] != 0 645 +do 646 + case $[1] in 647 + --version | --v* | -V ) 648 + echo "$lt_cl_version"; exit 0 ;; 649 + --help | --h* | -h ) 650 + echo "$lt_cl_help"; exit 0 ;; 651 + --debug | --d* | -d ) 652 + debug=: ;; 653 + --quiet | --q* | --silent | --s* | -q ) 654 + lt_cl_silent=: ;; 655 + 656 + -*) AC_MSG_ERROR([unrecognized option: $[1] 657 +Try \`$[0] --help' for more information.]) ;; 658 + 659 + *) AC_MSG_ERROR([unrecognized argument: $[1] 660 +Try \`$[0] --help' for more information.]) ;; 661 + esac 662 + shift 663 +done 664 + 665 +if $lt_cl_silent; then 666 + exec AS_MESSAGE_FD>/dev/null 667 +fi 668 +_LTEOF 669 + 670 +cat >>"$CONFIG_LT" <<_LTEOF 671 +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT 672 +_LTEOF 673 + 674 +cat >>"$CONFIG_LT" <<\_LTEOF 675 +AC_MSG_NOTICE([creating $ofile]) 676 +_LT_OUTPUT_LIBTOOL_COMMANDS 677 +AS_EXIT(0) 678 +_LTEOF 679 +chmod +x "$CONFIG_LT" 680 + 681 +# configure is writing to config.log, but config.lt does its own redirection, 682 +# appending to config.log, which fails on DOS, as config.log is still kept 683 +# open by configure. Here we exec the FD to /dev/null, effectively closing 684 +# config.log, so it can be properly (re)opened and appended to by config.lt. 685 +lt_cl_success=: 686 +test "$silent" = yes && 687 + lt_config_lt_args="$lt_config_lt_args --quiet" 688 +exec AS_MESSAGE_LOG_FD>/dev/null 689 +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false 690 +exec AS_MESSAGE_LOG_FD>>config.log 691 +$lt_cl_success || AS_EXIT(1) 692 +])# LT_OUTPUT 693 + 694 + 695 +# _LT_CONFIG(TAG) 696 +# --------------- 697 +# If TAG is the built-in tag, create an initial libtool script with a 698 +# default configuration from the untagged config vars. Otherwise add code 699 +# to config.status for appending the configuration named by TAG from the 700 +# matching tagged config vars. 701 +m4_defun([_LT_CONFIG], 702 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 703 +_LT_CONFIG_SAVE_COMMANDS([ 704 + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl 705 + m4_if(_LT_TAG, [C], [ 706 + # See if we are running on zsh, and set the options which allow our 707 + # commands through without removal of \ escapes. 708 + if test -n "${ZSH_VERSION+set}" ; then 709 + setopt NO_GLOB_SUBST 710 + fi 711 + 712 + cfgfile="${ofile}T" 713 + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 714 + $RM "$cfgfile" 715 + 716 + cat <<_LT_EOF >> "$cfgfile" 717 +#! $SHELL 718 + 719 +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. 720 +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION 721 +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: 722 +# NOTE: Changes made to this file will be lost: look at ltmain.sh. 723 +# 724 +_LT_COPYING 725 +_LT_LIBTOOL_TAGS 726 + 727 +# ### BEGIN LIBTOOL CONFIG 728 +_LT_LIBTOOL_CONFIG_VARS 729 +_LT_LIBTOOL_TAG_VARS 730 +# ### END LIBTOOL CONFIG 731 + 732 +_LT_EOF 733 + 734 + case $host_os in 735 + aix3*) 736 + cat <<\_LT_EOF >> "$cfgfile" 737 +# AIX sometimes has problems with the GCC collect2 program. For some 738 +# reason, if we set the COLLECT_NAMES environment variable, the problems 739 +# vanish in a puff of smoke. 740 +if test "X${COLLECT_NAMES+set}" != Xset; then 741 + COLLECT_NAMES= 742 + export COLLECT_NAMES 743 +fi 744 +_LT_EOF 745 + ;; 746 + esac 747 + 748 + _LT_PROG_LTMAIN 749 + 750 + # We use sed instead of cat because bash on DJGPP gets confused if 751 + # if finds mixed CR/LF and LF-only lines. Since sed operates in 752 + # text mode, it properly converts lines to CR/LF. This bash problem 753 + # is reportedly fixed, but why not run on old versions too? 754 + sed '$q' "$ltmain" >> "$cfgfile" \ 755 + || (rm -f "$cfgfile"; exit 1) 756 + 757 + _LT_PROG_REPLACE_SHELLFNS 758 + 759 + mv -f "$cfgfile" "$ofile" || 760 + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") 761 + chmod +x "$ofile" 762 +], 763 +[cat <<_LT_EOF >> "$ofile" 764 + 765 +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded 766 +dnl in a comment (ie after a #). 767 +# ### BEGIN LIBTOOL TAG CONFIG: $1 768 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) 769 +# ### END LIBTOOL TAG CONFIG: $1 770 +_LT_EOF 771 +])dnl /m4_if 772 +], 773 +[m4_if([$1], [], [ 774 + PACKAGE='$PACKAGE' 775 + VERSION='$VERSION' 776 + TIMESTAMP='$TIMESTAMP' 777 + RM='$RM' 778 + ofile='$ofile'], []) 779 +])dnl /_LT_CONFIG_SAVE_COMMANDS 780 +])# _LT_CONFIG 781 + 782 + 783 +# LT_SUPPORTED_TAG(TAG) 784 +# --------------------- 785 +# Trace this macro to discover what tags are supported by the libtool 786 +# --tag option, using: 787 +# autoconf --trace 'LT_SUPPORTED_TAG:$1' 788 +AC_DEFUN([LT_SUPPORTED_TAG], []) 789 + 790 + 791 +# C support is built-in for now 792 +m4_define([_LT_LANG_C_enabled], []) 793 +m4_define([_LT_TAGS], []) 794 + 795 + 796 +# LT_LANG(LANG) 797 +# ------------- 798 +# Enable libtool support for the given language if not already enabled. 799 +AC_DEFUN([LT_LANG], 800 +[AC_BEFORE([$0], [LT_OUTPUT])dnl 801 +m4_case([$1], 802 + [C], [_LT_LANG(C)], 803 + [C++], [_LT_LANG(CXX)], 804 + [Java], [_LT_LANG(GCJ)], 805 + [Fortran 77], [_LT_LANG(F77)], 806 + [Fortran], [_LT_LANG(FC)], 807 + [Windows Resource], [_LT_LANG(RC)], 808 + [m4_ifdef([_LT_LANG_]$1[_CONFIG], 809 + [_LT_LANG($1)], 810 + [m4_fatal([$0: unsupported language: "$1"])])])dnl 811 +])# LT_LANG 812 + 813 + 814 +# _LT_LANG(LANGNAME) 815 +# ------------------ 816 +m4_defun([_LT_LANG], 817 +[m4_ifdef([_LT_LANG_]$1[_enabled], [], 818 + [LT_SUPPORTED_TAG([$1])dnl 819 + m4_append([_LT_TAGS], [$1 ])dnl 820 + m4_define([_LT_LANG_]$1[_enabled], [])dnl 821 + _LT_LANG_$1_CONFIG($1)])dnl 822 +])# _LT_LANG 823 + 824 + 825 +# _LT_LANG_DEFAULT_CONFIG 826 +# ----------------------- 827 +m4_defun([_LT_LANG_DEFAULT_CONFIG], 828 +[AC_PROVIDE_IFELSE([AC_PROG_CXX], 829 + [LT_LANG(CXX)], 830 + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) 831 + 832 +AC_PROVIDE_IFELSE([AC_PROG_F77], 833 + [LT_LANG(F77)], 834 + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) 835 + 836 +AC_PROVIDE_IFELSE([AC_PROG_FC], 837 + [LT_LANG(FC)], 838 + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) 839 + 840 +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal 841 +dnl pulling things in needlessly. 842 +AC_PROVIDE_IFELSE([AC_PROG_GCJ], 843 + [LT_LANG(GCJ)], 844 + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], 845 + [LT_LANG(GCJ)], 846 + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], 847 + [LT_LANG(GCJ)], 848 + [m4_ifdef([AC_PROG_GCJ], 849 + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) 850 + m4_ifdef([A][M_PROG_GCJ], 851 + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) 852 + m4_ifdef([LT_PROG_GCJ], 853 + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) 854 + 855 +AC_PROVIDE_IFELSE([LT_PROG_RC], 856 + [LT_LANG(RC)], 857 + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) 858 +])# _LT_LANG_DEFAULT_CONFIG 859 + 860 +# Obsolete macros: 861 +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) 862 +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) 863 +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) 864 +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) 865 +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) 866 +dnl aclocal-1.4 backwards compatibility: 867 +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) 868 +dnl AC_DEFUN([AC_LIBTOOL_F77], []) 869 +dnl AC_DEFUN([AC_LIBTOOL_FC], []) 870 +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) 871 +dnl AC_DEFUN([AC_LIBTOOL_RC], []) 872 + 873 + 874 +# _LT_TAG_COMPILER 875 +# ---------------- 876 +m4_defun([_LT_TAG_COMPILER], 877 +[AC_REQUIRE([AC_PROG_CC])dnl 878 + 879 +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl 880 +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl 881 +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl 882 +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl 883 + 884 +# If no C compiler was specified, use CC. 885 +LTCC=${LTCC-"$CC"} 886 + 887 +# If no C compiler flags were specified, use CFLAGS. 888 +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} 889 + 890 +# Allow CC to be a program name with arguments. 891 +compiler=$CC 892 +])# _LT_TAG_COMPILER 893 + 894 + 895 +# _LT_COMPILER_BOILERPLATE 896 +# ------------------------ 897 +# Check for compiler boilerplate output or warnings with 898 +# the simple compiler test code. 899 +m4_defun([_LT_COMPILER_BOILERPLATE], 900 +[m4_require([_LT_DECL_SED])dnl 901 +ac_outfile=conftest.$ac_objext 902 +echo "$lt_simple_compile_test_code" >conftest.$ac_ext 903 +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err 904 +_lt_compiler_boilerplate=`cat conftest.err` 905 +$RM conftest* 906 +])# _LT_COMPILER_BOILERPLATE 907 + 908 + 909 +# _LT_LINKER_BOILERPLATE 910 +# ---------------------- 911 +# Check for linker boilerplate output or warnings with 912 +# the simple link test code. 913 +m4_defun([_LT_LINKER_BOILERPLATE], 914 +[m4_require([_LT_DECL_SED])dnl 915 +ac_outfile=conftest.$ac_objext 916 +echo "$lt_simple_link_test_code" >conftest.$ac_ext 917 +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err 918 +_lt_linker_boilerplate=`cat conftest.err` 919 +$RM -r conftest* 920 +])# _LT_LINKER_BOILERPLATE 921 + 922 +# _LT_REQUIRED_DARWIN_CHECKS 923 +# ------------------------- 924 +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ 925 + case $host_os in 926 + rhapsody* | darwin*) 927 + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) 928 + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) 929 + AC_CHECK_TOOL([LIPO], [lipo], [:]) 930 + AC_CHECK_TOOL([OTOOL], [otool], [:]) 931 + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) 932 + _LT_DECL([], [DSYMUTIL], [1], 933 + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) 934 + _LT_DECL([], [NMEDIT], [1], 935 + [Tool to change global to local symbols on Mac OS X]) 936 + _LT_DECL([], [LIPO], [1], 937 + [Tool to manipulate fat objects and archives on Mac OS X]) 938 + _LT_DECL([], [OTOOL], [1], 939 + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) 940 + _LT_DECL([], [OTOOL64], [1], 941 + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) 942 + 943 + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], 944 + [lt_cv_apple_cc_single_mod=no 945 + if test -z "${LT_MULTI_MODULE}"; then 946 + # By default we will add the -single_module flag. You can override 947 + # by either setting the environment variable LT_MULTI_MODULE 948 + # non-empty at configure time, or by adding -multi_module to the 949 + # link flags. 950 + rm -rf libconftest.dylib* 951 + echo "int foo(void){return 1;}" > conftest.c 952 + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ 953 +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD 954 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ 955 + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err 956 + _lt_result=$? 957 + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then 958 + lt_cv_apple_cc_single_mod=yes 959 + else 960 + cat conftest.err >&AS_MESSAGE_LOG_FD 961 + fi 962 + rm -rf libconftest.dylib* 963 + rm -f conftest.* 964 + fi]) 965 + AC_CACHE_CHECK([for -exported_symbols_list linker flag], 966 + [lt_cv_ld_exported_symbols_list], 967 + [lt_cv_ld_exported_symbols_list=no 968 + save_LDFLAGS=$LDFLAGS 969 + echo "_main" > conftest.sym 970 + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" 971 + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], 972 + [lt_cv_ld_exported_symbols_list=yes], 973 + [lt_cv_ld_exported_symbols_list=no]) 974 + LDFLAGS="$save_LDFLAGS" 975 + ]) 976 + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], 977 + [lt_cv_ld_force_load=no 978 + cat > conftest.c << _LT_EOF 979 +int forced_loaded() { return 2;} 980 +_LT_EOF 981 + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD 982 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD 983 + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD 984 + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD 985 + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD 986 + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD 987 + cat > conftest.c << _LT_EOF 988 +int main() { return 0;} 989 +_LT_EOF 990 + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD 991 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err 992 + _lt_result=$? 993 + if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then 994 + lt_cv_ld_force_load=yes 995 + else 996 + cat conftest.err >&AS_MESSAGE_LOG_FD 997 + fi 998 + rm -f conftest.err libconftest.a conftest conftest.c 999 + rm -rf conftest.dSYM 1000 + ]) 1001 + case $host_os in 1002 + rhapsody* | darwin1.[[012]]) 1003 + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; 1004 + darwin1.*) 1005 + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 1006 + darwin*) # darwin 5.x on 1007 + # if running on 10.5 or later, the deployment target defaults 1008 + # to the OS version, if on x86, and 10.4, the deployment 1009 + # target defaults to 10.4. Don't you love it? 1010 + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 1011 + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) 1012 + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 1013 + 10.[[012]]*) 1014 + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 1015 + 10.*) 1016 + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 1017 + esac 1018 + ;; 1019 + esac 1020 + if test "$lt_cv_apple_cc_single_mod" = "yes"; then 1021 + _lt_dar_single_mod='$single_module' 1022 + fi 1023 + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then 1024 + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' 1025 + else 1026 + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' 1027 + fi 1028 + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then 1029 + _lt_dsymutil='~$DSYMUTIL $lib || :' 1030 + else 1031 + _lt_dsymutil= 1032 + fi 1033 + ;; 1034 + esac 1035 +]) 1036 + 1037 + 1038 +# _LT_DARWIN_LINKER_FEATURES 1039 +# -------------------------- 1040 +# Checks for linker and compiler features on darwin 1041 +m4_defun([_LT_DARWIN_LINKER_FEATURES], 1042 +[ 1043 + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) 1044 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 1045 + _LT_TAGVAR(hardcode_direct, $1)=no 1046 + _LT_TAGVAR(hardcode_automatic, $1)=yes 1047 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 1048 + if test "$lt_cv_ld_force_load" = "yes"; then 1049 + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' 1050 + else 1051 + _LT_TAGVAR(whole_archive_flag_spec, $1)='' 1052 + fi 1053 + _LT_TAGVAR(link_all_deplibs, $1)=yes 1054 + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" 1055 + case $cc_basename in 1056 + ifort*) _lt_dar_can_shared=yes ;; 1057 + *) _lt_dar_can_shared=$GCC ;; 1058 + esac 1059 + if test "$_lt_dar_can_shared" = "yes"; then 1060 + output_verbose_link_cmd=func_echo_all 1061 + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" 1062 + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 1063 + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" 1064 + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" 1065 + m4_if([$1], [CXX], 1066 +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then 1067 + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" 1068 + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" 1069 + fi 1070 +],[]) 1071 + else 1072 + _LT_TAGVAR(ld_shlibs, $1)=no 1073 + fi 1074 +]) 1075 + 1076 +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) 1077 +# ---------------------------------- 1078 +# Links a minimal program and checks the executable 1079 +# for the system default hardcoded library path. In most cases, 1080 +# this is /usr/lib:/lib, but when the MPI compilers are used 1081 +# the location of the communication and MPI libs are included too. 1082 +# If we don't find anything, use the default library path according 1083 +# to the aix ld manual. 1084 +# Store the results from the different compilers for each TAGNAME. 1085 +# Allow to override them for all tags through lt_cv_aix_libpath. 1086 +m4_defun([_LT_SYS_MODULE_PATH_AIX], 1087 +[m4_require([_LT_DECL_SED])dnl 1088 +if test "${lt_cv_aix_libpath+set}" = set; then 1089 + aix_libpath=$lt_cv_aix_libpath 1090 +else 1091 + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], 1092 + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ 1093 + lt_aix_libpath_sed='[ 1094 + /Import File Strings/,/^$/ { 1095 + /^0/ { 1096 + s/^0 *\([^ ]*\) *$/\1/ 1097 + p 1098 + } 1099 + }]' 1100 + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` 1101 + # Check for a 64-bit object if we didn't find anything. 1102 + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then 1103 + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` 1104 + fi],[]) 1105 + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then 1106 + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" 1107 + fi 1108 + ]) 1109 + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) 1110 +fi 1111 +])# _LT_SYS_MODULE_PATH_AIX 1112 + 1113 + 1114 +# _LT_SHELL_INIT(ARG) 1115 +# ------------------- 1116 +m4_define([_LT_SHELL_INIT], 1117 +[m4_divert_text([M4SH-INIT], [$1 1118 +])])# _LT_SHELL_INIT 1119 + 1120 + 1121 + 1122 +# _LT_PROG_ECHO_BACKSLASH 1123 +# ----------------------- 1124 +# Find how we can fake an echo command that does not interpret backslash. 1125 +# In particular, with Autoconf 2.60 or later we add some code to the start 1126 +# of the generated configure script which will find a shell with a builtin 1127 +# printf (which we can use as an echo command). 1128 +m4_defun([_LT_PROG_ECHO_BACKSLASH], 1129 +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' 1130 +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO 1131 +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO 1132 + 1133 +AC_MSG_CHECKING([how to print strings]) 1134 +# Test print first, because it will be a builtin if present. 1135 +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ 1136 + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then 1137 + ECHO='print -r --' 1138 +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then 1139 + ECHO='printf %s\n' 1140 +else 1141 + # Use this function as a fallback that always works. 1142 + func_fallback_echo () 1143 + { 1144 + eval 'cat <<_LTECHO_EOF 1145 +$[]1 1146 +_LTECHO_EOF' 1147 + } 1148 + ECHO='func_fallback_echo' 1149 +fi 1150 + 1151 +# func_echo_all arg... 1152 +# Invoke $ECHO with all args, space-separated. 1153 +func_echo_all () 1154 +{ 1155 + $ECHO "$*" 1156 +} 1157 + 1158 +case "$ECHO" in 1159 + printf*) AC_MSG_RESULT([printf]) ;; 1160 + print*) AC_MSG_RESULT([print -r]) ;; 1161 + *) AC_MSG_RESULT([cat]) ;; 1162 +esac 1163 + 1164 +m4_ifdef([_AS_DETECT_SUGGESTED], 1165 +[_AS_DETECT_SUGGESTED([ 1166 + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( 1167 + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' 1168 + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO 1169 + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO 1170 + PATH=/empty FPATH=/empty; export PATH FPATH 1171 + test "X`printf %s $ECHO`" = "X$ECHO" \ 1172 + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) 1173 + 1174 +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) 1175 +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) 1176 +])# _LT_PROG_ECHO_BACKSLASH 1177 + 1178 + 1179 +# _LT_WITH_SYSROOT 1180 +# ---------------- 1181 +AC_DEFUN([_LT_WITH_SYSROOT], 1182 +[AC_MSG_CHECKING([for sysroot]) 1183 +AC_ARG_WITH([sysroot], 1184 +[ --with-sysroot[=DIR] Search for dependent libraries within DIR 1185 + (or the compiler's sysroot if not specified).], 1186 +[], [with_sysroot=no]) 1187 + 1188 +dnl lt_sysroot will always be passed unquoted. We quote it here 1189 +dnl in case the user passed a directory name. 1190 +lt_sysroot= 1191 +case ${with_sysroot} in #( 1192 + yes) 1193 + if test "$GCC" = yes; then 1194 + lt_sysroot=`$CC --print-sysroot 2>/dev/null` 1195 + fi 1196 + ;; #( 1197 + /*) 1198 + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` 1199 + ;; #( 1200 + no|'') 1201 + ;; #( 1202 + *) 1203 + AC_MSG_RESULT([${with_sysroot}]) 1204 + AC_MSG_ERROR([The sysroot must be an absolute path.]) 1205 + ;; 1206 +esac 1207 + 1208 + AC_MSG_RESULT([${lt_sysroot:-no}]) 1209 +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl 1210 +[dependent libraries, and in which our libraries should be installed.])]) 1211 + 1212 +# _LT_ENABLE_LOCK 1213 +# --------------- 1214 +m4_defun([_LT_ENABLE_LOCK], 1215 +[AC_ARG_ENABLE([libtool-lock], 1216 + [AS_HELP_STRING([--disable-libtool-lock], 1217 + [avoid locking (might break parallel builds)])]) 1218 +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes 1219 + 1220 +# Some flags need to be propagated to the compiler or linker for good 1221 +# libtool support. 1222 +case $host in 1223 +ia64-*-hpux*) 1224 + # Find out which ABI we are using. 1225 + echo 'int i;' > conftest.$ac_ext 1226 + if AC_TRY_EVAL(ac_compile); then 1227 + case `/usr/bin/file conftest.$ac_objext` in 1228 + *ELF-32*) 1229 + HPUX_IA64_MODE="32" 1230 + ;; 1231 + *ELF-64*) 1232 + HPUX_IA64_MODE="64" 1233 + ;; 1234 + esac 1235 + fi 1236 + rm -rf conftest* 1237 + ;; 1238 +*-*-irix6*) 1239 + # Find out which ABI we are using. 1240 + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext 1241 + if AC_TRY_EVAL(ac_compile); then 1242 + if test "$lt_cv_prog_gnu_ld" = yes; then 1243 + case `/usr/bin/file conftest.$ac_objext` in 1244 + *32-bit*) 1245 + LD="${LD-ld} -melf32bsmip" 1246 + ;; 1247 + *N32*) 1248 + LD="${LD-ld} -melf32bmipn32" 1249 + ;; 1250 + *64-bit*) 1251 + LD="${LD-ld} -melf64bmip" 1252 + ;; 1253 + esac 1254 + else 1255 + case `/usr/bin/file conftest.$ac_objext` in 1256 + *32-bit*) 1257 + LD="${LD-ld} -32" 1258 + ;; 1259 + *N32*) 1260 + LD="${LD-ld} -n32" 1261 + ;; 1262 + *64-bit*) 1263 + LD="${LD-ld} -64" 1264 + ;; 1265 + esac 1266 + fi 1267 + fi 1268 + rm -rf conftest* 1269 + ;; 1270 + 1271 +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ 1272 +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) 1273 + # Find out which ABI we are using. 1274 + echo 'int i;' > conftest.$ac_ext 1275 + if AC_TRY_EVAL(ac_compile); then 1276 + case `/usr/bin/file conftest.o` in 1277 + *32-bit*) 1278 + case $host in 1279 + x86_64-*kfreebsd*-gnu) 1280 + LD="${LD-ld} -m elf_i386_fbsd" 1281 + ;; 1282 + x86_64-*linux*) 1283 + LD="${LD-ld} -m elf_i386" 1284 + ;; 1285 + ppc64-*linux*|powerpc64-*linux*) 1286 + LD="${LD-ld} -m elf32ppclinux" 1287 + ;; 1288 + s390x-*linux*) 1289 + LD="${LD-ld} -m elf_s390" 1290 + ;; 1291 + sparc64-*linux*) 1292 + LD="${LD-ld} -m elf32_sparc" 1293 + ;; 1294 + esac 1295 + ;; 1296 + *64-bit*) 1297 + case $host in 1298 + x86_64-*kfreebsd*-gnu) 1299 + LD="${LD-ld} -m elf_x86_64_fbsd" 1300 + ;; 1301 + x86_64-*linux*) 1302 + LD="${LD-ld} -m elf_x86_64" 1303 + ;; 1304 + ppc*-*linux*|powerpc*-*linux*) 1305 + LD="${LD-ld} -m elf64ppc" 1306 + ;; 1307 + s390*-*linux*|s390*-*tpf*) 1308 + LD="${LD-ld} -m elf64_s390" 1309 + ;; 1310 + sparc*-*linux*) 1311 + LD="${LD-ld} -m elf64_sparc" 1312 + ;; 1313 + esac 1314 + ;; 1315 + esac 1316 + fi 1317 + rm -rf conftest* 1318 + ;; 1319 + 1320 +*-*-sco3.2v5*) 1321 + # On SCO OpenServer 5, we need -belf to get full-featured binaries. 1322 + SAVE_CFLAGS="$CFLAGS" 1323 + CFLAGS="$CFLAGS -belf" 1324 + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, 1325 + [AC_LANG_PUSH(C) 1326 + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) 1327 + AC_LANG_POP]) 1328 + if test x"$lt_cv_cc_needs_belf" != x"yes"; then 1329 + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf 1330 + CFLAGS="$SAVE_CFLAGS" 1331 + fi 1332 + ;; 1333 +sparc*-*solaris*) 1334 + # Find out which ABI we are using. 1335 + echo 'int i;' > conftest.$ac_ext 1336 + if AC_TRY_EVAL(ac_compile); then 1337 + case `/usr/bin/file conftest.o` in 1338 + *64-bit*) 1339 + case $lt_cv_prog_gnu_ld in 1340 + yes*) LD="${LD-ld} -m elf64_sparc" ;; 1341 + *) 1342 + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then 1343 + LD="${LD-ld} -64" 1344 + fi 1345 + ;; 1346 + esac 1347 + ;; 1348 + esac 1349 + fi 1350 + rm -rf conftest* 1351 + ;; 1352 +esac 1353 + 1354 +need_locks="$enable_libtool_lock" 1355 +])# _LT_ENABLE_LOCK 1356 + 1357 + 1358 +# _LT_PROG_AR 1359 +# ----------- 1360 +m4_defun([_LT_PROG_AR], 1361 +[AC_CHECK_TOOLS(AR, [ar], false) 1362 +: ${AR=ar} 1363 +: ${AR_FLAGS=cru} 1364 +_LT_DECL([], [AR], [1], [The archiver]) 1365 +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) 1366 + 1367 +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], 1368 + [lt_cv_ar_at_file=no 1369 + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], 1370 + [echo conftest.$ac_objext > conftest.lst 1371 + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' 1372 + AC_TRY_EVAL([lt_ar_try]) 1373 + if test "$ac_status" -eq 0; then 1374 + # Ensure the archiver fails upon bogus file names. 1375 + rm -f conftest.$ac_objext libconftest.a 1376 + AC_TRY_EVAL([lt_ar_try]) 1377 + if test "$ac_status" -ne 0; then 1378 + lt_cv_ar_at_file=@ 1379 + fi 1380 + fi 1381 + rm -f conftest.* libconftest.a 1382 + ]) 1383 + ]) 1384 + 1385 +if test "x$lt_cv_ar_at_file" = xno; then 1386 + archiver_list_spec= 1387 +else 1388 + archiver_list_spec=$lt_cv_ar_at_file 1389 +fi 1390 +_LT_DECL([], [archiver_list_spec], [1], 1391 + [How to feed a file listing to the archiver]) 1392 +])# _LT_PROG_AR 1393 + 1394 + 1395 +# _LT_CMD_OLD_ARCHIVE 1396 +# ------------------- 1397 +m4_defun([_LT_CMD_OLD_ARCHIVE], 1398 +[_LT_PROG_AR 1399 + 1400 +AC_CHECK_TOOL(STRIP, strip, :) 1401 +test -z "$STRIP" && STRIP=: 1402 +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) 1403 + 1404 +AC_CHECK_TOOL(RANLIB, ranlib, :) 1405 +test -z "$RANLIB" && RANLIB=: 1406 +_LT_DECL([], [RANLIB], [1], 1407 + [Commands used to install an old-style archive]) 1408 + 1409 +# Determine commands to create old-style static archives. 1410 +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' 1411 +old_postinstall_cmds='chmod 644 $oldlib' 1412 +old_postuninstall_cmds= 1413 + 1414 +if test -n "$RANLIB"; then 1415 + case $host_os in 1416 + openbsd*) 1417 + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" 1418 + ;; 1419 + *) 1420 + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" 1421 + ;; 1422 + esac 1423 + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" 1424 +fi 1425 + 1426 +case $host_os in 1427 + darwin*) 1428 + lock_old_archive_extraction=yes ;; 1429 + *) 1430 + lock_old_archive_extraction=no ;; 1431 +esac 1432 +_LT_DECL([], [old_postinstall_cmds], [2]) 1433 +_LT_DECL([], [old_postuninstall_cmds], [2]) 1434 +_LT_TAGDECL([], [old_archive_cmds], [2], 1435 + [Commands used to build an old-style archive]) 1436 +_LT_DECL([], [lock_old_archive_extraction], [0], 1437 + [Whether to use a lock for old archive extraction]) 1438 +])# _LT_CMD_OLD_ARCHIVE 1439 + 1440 + 1441 +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, 1442 +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) 1443 +# ---------------------------------------------------------------- 1444 +# Check whether the given compiler option works 1445 +AC_DEFUN([_LT_COMPILER_OPTION], 1446 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 1447 +m4_require([_LT_DECL_SED])dnl 1448 +AC_CACHE_CHECK([$1], [$2], 1449 + [$2=no 1450 + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) 1451 + echo "$lt_simple_compile_test_code" > conftest.$ac_ext 1452 + lt_compiler_flag="$3" 1453 + # Insert the option either (1) after the last *FLAGS variable, or 1454 + # (2) before a word containing "conftest.", or (3) at the end. 1455 + # Note that $ac_compile itself does not contain backslashes and begins 1456 + # with a dollar sign (not a hyphen), so the echo should work correctly. 1457 + # The option is referenced via a variable to avoid confusing sed. 1458 + lt_compile=`echo "$ac_compile" | $SED \ 1459 + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 1460 + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ 1461 + -e 's:$: $lt_compiler_flag:'` 1462 + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) 1463 + (eval "$lt_compile" 2>conftest.err) 1464 + ac_status=$? 1465 + cat conftest.err >&AS_MESSAGE_LOG_FD 1466 + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD 1467 + if (exit $ac_status) && test -s "$ac_outfile"; then 1468 + # The compiler can only warn and ignore the option if not recognized 1469 + # So say no if there are warnings other than the usual output. 1470 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp 1471 + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 1472 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then 1473 + $2=yes 1474 + fi 1475 + fi 1476 + $RM conftest* 1477 +]) 1478 + 1479 +if test x"[$]$2" = xyes; then 1480 + m4_if([$5], , :, [$5]) 1481 +else 1482 + m4_if([$6], , :, [$6]) 1483 +fi 1484 +])# _LT_COMPILER_OPTION 1485 + 1486 +# Old name: 1487 +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) 1488 +dnl aclocal-1.4 backwards compatibility: 1489 +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) 1490 + 1491 + 1492 +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, 1493 +# [ACTION-SUCCESS], [ACTION-FAILURE]) 1494 +# ---------------------------------------------------- 1495 +# Check whether the given linker option works 1496 +AC_DEFUN([_LT_LINKER_OPTION], 1497 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 1498 +m4_require([_LT_DECL_SED])dnl 1499 +AC_CACHE_CHECK([$1], [$2], 1500 + [$2=no 1501 + save_LDFLAGS="$LDFLAGS" 1502 + LDFLAGS="$LDFLAGS $3" 1503 + echo "$lt_simple_link_test_code" > conftest.$ac_ext 1504 + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then 1505 + # The linker can only warn and ignore the option if not recognized 1506 + # So say no if there are warnings 1507 + if test -s conftest.err; then 1508 + # Append any errors to the config.log. 1509 + cat conftest.err 1>&AS_MESSAGE_LOG_FD 1510 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp 1511 + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 1512 + if diff conftest.exp conftest.er2 >/dev/null; then 1513 + $2=yes 1514 + fi 1515 + else 1516 + $2=yes 1517 + fi 1518 + fi 1519 + $RM -r conftest* 1520 + LDFLAGS="$save_LDFLAGS" 1521 +]) 1522 + 1523 +if test x"[$]$2" = xyes; then 1524 + m4_if([$4], , :, [$4]) 1525 +else 1526 + m4_if([$5], , :, [$5]) 1527 +fi 1528 +])# _LT_LINKER_OPTION 1529 + 1530 +# Old name: 1531 +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) 1532 +dnl aclocal-1.4 backwards compatibility: 1533 +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) 1534 + 1535 + 1536 +# LT_CMD_MAX_LEN 1537 +#--------------- 1538 +AC_DEFUN([LT_CMD_MAX_LEN], 1539 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 1540 +# find the maximum length of command line arguments 1541 +AC_MSG_CHECKING([the maximum length of command line arguments]) 1542 +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl 1543 + i=0 1544 + teststring="ABCD" 1545 + 1546 + case $build_os in 1547 + msdosdjgpp*) 1548 + # On DJGPP, this test can blow up pretty badly due to problems in libc 1549 + # (any single argument exceeding 2000 bytes causes a buffer overrun 1550 + # during glob expansion). Even if it were fixed, the result of this 1551 + # check would be larger than it should be. 1552 + lt_cv_sys_max_cmd_len=12288; # 12K is about right 1553 + ;; 1554 + 1555 + gnu*) 1556 + # Under GNU Hurd, this test is not required because there is 1557 + # no limit to the length of command line arguments. 1558 + # Libtool will interpret -1 as no limit whatsoever 1559 + lt_cv_sys_max_cmd_len=-1; 1560 + ;; 1561 + 1562 + cygwin* | mingw* | cegcc*) 1563 + # On Win9x/ME, this test blows up -- it succeeds, but takes 1564 + # about 5 minutes as the teststring grows exponentially. 1565 + # Worse, since 9x/ME are not pre-emptively multitasking, 1566 + # you end up with a "frozen" computer, even though with patience 1567 + # the test eventually succeeds (with a max line length of 256k). 1568 + # Instead, let's just punt: use the minimum linelength reported by 1569 + # all of the supported platforms: 8192 (on NT/2K/XP). 1570 + lt_cv_sys_max_cmd_len=8192; 1571 + ;; 1572 + 1573 + mint*) 1574 + # On MiNT this can take a long time and run out of memory. 1575 + lt_cv_sys_max_cmd_len=8192; 1576 + ;; 1577 + 1578 + amigaos*) 1579 + # On AmigaOS with pdksh, this test takes hours, literally. 1580 + # So we just punt and use a minimum line length of 8192. 1581 + lt_cv_sys_max_cmd_len=8192; 1582 + ;; 1583 + 1584 + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) 1585 + # This has been around since 386BSD, at least. Likely further. 1586 + if test -x /sbin/sysctl; then 1587 + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` 1588 + elif test -x /usr/sbin/sysctl; then 1589 + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` 1590 + else 1591 + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs 1592 + fi 1593 + # And add a safety zone 1594 + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` 1595 + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` 1596 + ;; 1597 + 1598 + interix*) 1599 + # We know the value 262144 and hardcode it with a safety zone (like BSD) 1600 + lt_cv_sys_max_cmd_len=196608 1601 + ;; 1602 + 1603 + osf*) 1604 + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure 1605 + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not 1606 + # nice to cause kernel panics so lets avoid the loop below. 1607 + # First set a reasonable default. 1608 + lt_cv_sys_max_cmd_len=16384 1609 + # 1610 + if test -x /sbin/sysconfig; then 1611 + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in 1612 + *1*) lt_cv_sys_max_cmd_len=-1 ;; 1613 + esac 1614 + fi 1615 + ;; 1616 + sco3.2v5*) 1617 + lt_cv_sys_max_cmd_len=102400 1618 + ;; 1619 + sysv5* | sco5v6* | sysv4.2uw2*) 1620 + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` 1621 + if test -n "$kargmax"; then 1622 + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` 1623 + else 1624 + lt_cv_sys_max_cmd_len=32768 1625 + fi 1626 + ;; 1627 + *) 1628 + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` 1629 + if test -n "$lt_cv_sys_max_cmd_len"; then 1630 + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` 1631 + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` 1632 + else 1633 + # Make teststring a little bigger before we do anything with it. 1634 + # a 1K string should be a reasonable start. 1635 + for i in 1 2 3 4 5 6 7 8 ; do 1636 + teststring=$teststring$teststring 1637 + done 1638 + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} 1639 + # If test is not a shell built-in, we'll probably end up computing a 1640 + # maximum length that is only half of the actual maximum length, but 1641 + # we can't tell. 1642 + while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ 1643 + = "X$teststring$teststring"; } >/dev/null 2>&1 && 1644 + test $i != 17 # 1/2 MB should be enough 1645 + do 1646 + i=`expr $i + 1` 1647 + teststring=$teststring$teststring 1648 + done 1649 + # Only check the string length outside the loop. 1650 + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` 1651 + teststring= 1652 + # Add a significant safety factor because C++ compilers can tack on 1653 + # massive amounts of additional arguments before passing them to the 1654 + # linker. It appears as though 1/2 is a usable value. 1655 + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` 1656 + fi 1657 + ;; 1658 + esac 1659 +]) 1660 +if test -n $lt_cv_sys_max_cmd_len ; then 1661 + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) 1662 +else 1663 + AC_MSG_RESULT(none) 1664 +fi 1665 +max_cmd_len=$lt_cv_sys_max_cmd_len 1666 +_LT_DECL([], [max_cmd_len], [0], 1667 + [What is the maximum length of a command?]) 1668 +])# LT_CMD_MAX_LEN 1669 + 1670 +# Old name: 1671 +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) 1672 +dnl aclocal-1.4 backwards compatibility: 1673 +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) 1674 + 1675 + 1676 +# _LT_HEADER_DLFCN 1677 +# ---------------- 1678 +m4_defun([_LT_HEADER_DLFCN], 1679 +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl 1680 +])# _LT_HEADER_DLFCN 1681 + 1682 + 1683 +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, 1684 +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) 1685 +# ---------------------------------------------------------------- 1686 +m4_defun([_LT_TRY_DLOPEN_SELF], 1687 +[m4_require([_LT_HEADER_DLFCN])dnl 1688 +if test "$cross_compiling" = yes; then : 1689 + [$4] 1690 +else 1691 + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 1692 + lt_status=$lt_dlunknown 1693 + cat > conftest.$ac_ext <<_LT_EOF 1694 +[#line $LINENO "configure" 1695 +#include "confdefs.h" 1696 + 1697 +#if HAVE_DLFCN_H 1698 +#include <dlfcn.h> 1699 +#endif 1700 + 1701 +#include <stdio.h> 1702 + 1703 +#ifdef RTLD_GLOBAL 1704 +# define LT_DLGLOBAL RTLD_GLOBAL 1705 +#else 1706 +# ifdef DL_GLOBAL 1707 +# define LT_DLGLOBAL DL_GLOBAL 1708 +# else 1709 +# define LT_DLGLOBAL 0 1710 +# endif 1711 +#endif 1712 + 1713 +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we 1714 + find out it does not work in some platform. */ 1715 +#ifndef LT_DLLAZY_OR_NOW 1716 +# ifdef RTLD_LAZY 1717 +# define LT_DLLAZY_OR_NOW RTLD_LAZY 1718 +# else 1719 +# ifdef DL_LAZY 1720 +# define LT_DLLAZY_OR_NOW DL_LAZY 1721 +# else 1722 +# ifdef RTLD_NOW 1723 +# define LT_DLLAZY_OR_NOW RTLD_NOW 1724 +# else 1725 +# ifdef DL_NOW 1726 +# define LT_DLLAZY_OR_NOW DL_NOW 1727 +# else 1728 +# define LT_DLLAZY_OR_NOW 0 1729 +# endif 1730 +# endif 1731 +# endif 1732 +# endif 1733 +#endif 1734 + 1735 +/* When -fvisbility=hidden is used, assume the code has been annotated 1736 + correspondingly for the symbols needed. */ 1737 +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) 1738 +int fnord () __attribute__((visibility("default"))); 1739 +#endif 1740 + 1741 +int fnord () { return 42; } 1742 +int main () 1743 +{ 1744 + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); 1745 + int status = $lt_dlunknown; 1746 + 1747 + if (self) 1748 + { 1749 + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; 1750 + else 1751 + { 1752 + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; 1753 + else puts (dlerror ()); 1754 + } 1755 + /* dlclose (self); */ 1756 + } 1757 + else 1758 + puts (dlerror ()); 1759 + 1760 + return status; 1761 +}] 1762 +_LT_EOF 1763 + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then 1764 + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null 1765 + lt_status=$? 1766 + case x$lt_status in 1767 + x$lt_dlno_uscore) $1 ;; 1768 + x$lt_dlneed_uscore) $2 ;; 1769 + x$lt_dlunknown|x*) $3 ;; 1770 + esac 1771 + else : 1772 + # compilation failed 1773 + $3 1774 + fi 1775 +fi 1776 +rm -fr conftest* 1777 +])# _LT_TRY_DLOPEN_SELF 1778 + 1779 + 1780 +# LT_SYS_DLOPEN_SELF 1781 +# ------------------ 1782 +AC_DEFUN([LT_SYS_DLOPEN_SELF], 1783 +[m4_require([_LT_HEADER_DLFCN])dnl 1784 +if test "x$enable_dlopen" != xyes; then 1785 + enable_dlopen=unknown 1786 + enable_dlopen_self=unknown 1787 + enable_dlopen_self_static=unknown 1788 +else 1789 + lt_cv_dlopen=no 1790 + lt_cv_dlopen_libs= 1791 + 1792 + case $host_os in 1793 + beos*) 1794 + lt_cv_dlopen="load_add_on" 1795 + lt_cv_dlopen_libs= 1796 + lt_cv_dlopen_self=yes 1797 + ;; 1798 + 1799 + mingw* | pw32* | cegcc*) 1800 + lt_cv_dlopen="LoadLibrary" 1801 + lt_cv_dlopen_libs= 1802 + ;; 1803 + 1804 + cygwin*) 1805 + lt_cv_dlopen="dlopen" 1806 + lt_cv_dlopen_libs= 1807 + ;; 1808 + 1809 + darwin*) 1810 + # if libdl is installed we need to link against it 1811 + AC_CHECK_LIB([dl], [dlopen], 1812 + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ 1813 + lt_cv_dlopen="dyld" 1814 + lt_cv_dlopen_libs= 1815 + lt_cv_dlopen_self=yes 1816 + ]) 1817 + ;; 1818 + 1819 + *) 1820 + AC_CHECK_FUNC([shl_load], 1821 + [lt_cv_dlopen="shl_load"], 1822 + [AC_CHECK_LIB([dld], [shl_load], 1823 + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], 1824 + [AC_CHECK_FUNC([dlopen], 1825 + [lt_cv_dlopen="dlopen"], 1826 + [AC_CHECK_LIB([dl], [dlopen], 1827 + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], 1828 + [AC_CHECK_LIB([svld], [dlopen], 1829 + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], 1830 + [AC_CHECK_LIB([dld], [dld_link], 1831 + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) 1832 + ]) 1833 + ]) 1834 + ]) 1835 + ]) 1836 + ]) 1837 + ;; 1838 + esac 1839 + 1840 + if test "x$lt_cv_dlopen" != xno; then 1841 + enable_dlopen=yes 1842 + else 1843 + enable_dlopen=no 1844 + fi 1845 + 1846 + case $lt_cv_dlopen in 1847 + dlopen) 1848 + save_CPPFLAGS="$CPPFLAGS" 1849 + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" 1850 + 1851 + save_LDFLAGS="$LDFLAGS" 1852 + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" 1853 + 1854 + save_LIBS="$LIBS" 1855 + LIBS="$lt_cv_dlopen_libs $LIBS" 1856 + 1857 + AC_CACHE_CHECK([whether a program can dlopen itself], 1858 + lt_cv_dlopen_self, [dnl 1859 + _LT_TRY_DLOPEN_SELF( 1860 + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, 1861 + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) 1862 + ]) 1863 + 1864 + if test "x$lt_cv_dlopen_self" = xyes; then 1865 + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" 1866 + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], 1867 + lt_cv_dlopen_self_static, [dnl 1868 + _LT_TRY_DLOPEN_SELF( 1869 + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, 1870 + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) 1871 + ]) 1872 + fi 1873 + 1874 + CPPFLAGS="$save_CPPFLAGS" 1875 + LDFLAGS="$save_LDFLAGS" 1876 + LIBS="$save_LIBS" 1877 + ;; 1878 + esac 1879 + 1880 + case $lt_cv_dlopen_self in 1881 + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; 1882 + *) enable_dlopen_self=unknown ;; 1883 + esac 1884 + 1885 + case $lt_cv_dlopen_self_static in 1886 + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; 1887 + *) enable_dlopen_self_static=unknown ;; 1888 + esac 1889 +fi 1890 +_LT_DECL([dlopen_support], [enable_dlopen], [0], 1891 + [Whether dlopen is supported]) 1892 +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], 1893 + [Whether dlopen of programs is supported]) 1894 +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], 1895 + [Whether dlopen of statically linked programs is supported]) 1896 +])# LT_SYS_DLOPEN_SELF 1897 + 1898 +# Old name: 1899 +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) 1900 +dnl aclocal-1.4 backwards compatibility: 1901 +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) 1902 + 1903 + 1904 +# _LT_COMPILER_C_O([TAGNAME]) 1905 +# --------------------------- 1906 +# Check to see if options -c and -o are simultaneously supported by compiler. 1907 +# This macro does not hard code the compiler like AC_PROG_CC_C_O. 1908 +m4_defun([_LT_COMPILER_C_O], 1909 +[m4_require([_LT_DECL_SED])dnl 1910 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 1911 +m4_require([_LT_TAG_COMPILER])dnl 1912 +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], 1913 + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], 1914 + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no 1915 + $RM -r conftest 2>/dev/null 1916 + mkdir conftest 1917 + cd conftest 1918 + mkdir out 1919 + echo "$lt_simple_compile_test_code" > conftest.$ac_ext 1920 + 1921 + lt_compiler_flag="-o out/conftest2.$ac_objext" 1922 + # Insert the option either (1) after the last *FLAGS variable, or 1923 + # (2) before a word containing "conftest.", or (3) at the end. 1924 + # Note that $ac_compile itself does not contain backslashes and begins 1925 + # with a dollar sign (not a hyphen), so the echo should work correctly. 1926 + lt_compile=`echo "$ac_compile" | $SED \ 1927 + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 1928 + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ 1929 + -e 's:$: $lt_compiler_flag:'` 1930 + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) 1931 + (eval "$lt_compile" 2>out/conftest.err) 1932 + ac_status=$? 1933 + cat out/conftest.err >&AS_MESSAGE_LOG_FD 1934 + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD 1935 + if (exit $ac_status) && test -s out/conftest2.$ac_objext 1936 + then 1937 + # The compiler can only warn and ignore the option if not recognized 1938 + # So say no if there are warnings 1939 + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp 1940 + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 1941 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then 1942 + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes 1943 + fi 1944 + fi 1945 + chmod u+w . 2>&AS_MESSAGE_LOG_FD 1946 + $RM conftest* 1947 + # SGI C++ compiler will create directory out/ii_files/ for 1948 + # template instantiation 1949 + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files 1950 + $RM out/* && rmdir out 1951 + cd .. 1952 + $RM -r conftest 1953 + $RM conftest* 1954 +]) 1955 +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], 1956 + [Does compiler simultaneously support -c and -o options?]) 1957 +])# _LT_COMPILER_C_O 1958 + 1959 + 1960 +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) 1961 +# ---------------------------------- 1962 +# Check to see if we can do hard links to lock some files if needed 1963 +m4_defun([_LT_COMPILER_FILE_LOCKS], 1964 +[m4_require([_LT_ENABLE_LOCK])dnl 1965 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 1966 +_LT_COMPILER_C_O([$1]) 1967 + 1968 +hard_links="nottested" 1969 +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then 1970 + # do not overwrite the value of need_locks provided by the user 1971 + AC_MSG_CHECKING([if we can lock with hard links]) 1972 + hard_links=yes 1973 + $RM conftest* 1974 + ln conftest.a conftest.b 2>/dev/null && hard_links=no 1975 + touch conftest.a 1976 + ln conftest.a conftest.b 2>&5 || hard_links=no 1977 + ln conftest.a conftest.b 2>/dev/null && hard_links=no 1978 + AC_MSG_RESULT([$hard_links]) 1979 + if test "$hard_links" = no; then 1980 + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) 1981 + need_locks=warn 1982 + fi 1983 +else 1984 + need_locks=no 1985 +fi 1986 +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) 1987 +])# _LT_COMPILER_FILE_LOCKS 1988 + 1989 + 1990 +# _LT_CHECK_OBJDIR 1991 +# ---------------- 1992 +m4_defun([_LT_CHECK_OBJDIR], 1993 +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], 1994 +[rm -f .libs 2>/dev/null 1995 +mkdir .libs 2>/dev/null 1996 +if test -d .libs; then 1997 + lt_cv_objdir=.libs 1998 +else 1999 + # MS-DOS does not allow filenames that begin with a dot. 2000 + lt_cv_objdir=_libs 2001 +fi 2002 +rmdir .libs 2>/dev/null]) 2003 +objdir=$lt_cv_objdir 2004 +_LT_DECL([], [objdir], [0], 2005 + [The name of the directory that contains temporary libtool files])dnl 2006 +m4_pattern_allow([LT_OBJDIR])dnl 2007 +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", 2008 + [Define to the sub-directory in which libtool stores uninstalled libraries.]) 2009 +])# _LT_CHECK_OBJDIR 2010 + 2011 + 2012 +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) 2013 +# -------------------------------------- 2014 +# Check hardcoding attributes. 2015 +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], 2016 +[AC_MSG_CHECKING([how to hardcode library paths into programs]) 2017 +_LT_TAGVAR(hardcode_action, $1)= 2018 +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || 2019 + test -n "$_LT_TAGVAR(runpath_var, $1)" || 2020 + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then 2021 + 2022 + # We can hardcode non-existent directories. 2023 + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && 2024 + # If the only mechanism to avoid hardcoding is shlibpath_var, we 2025 + # have to relink, otherwise we might link with an installed library 2026 + # when we should be linking with a yet-to-be-installed one 2027 + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && 2028 + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then 2029 + # Linking always hardcodes the temporary library directory. 2030 + _LT_TAGVAR(hardcode_action, $1)=relink 2031 + else 2032 + # We can link without hardcoding, and we can hardcode nonexisting dirs. 2033 + _LT_TAGVAR(hardcode_action, $1)=immediate 2034 + fi 2035 +else 2036 + # We cannot hardcode anything, or else we can only hardcode existing 2037 + # directories. 2038 + _LT_TAGVAR(hardcode_action, $1)=unsupported 2039 +fi 2040 +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) 2041 + 2042 +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || 2043 + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then 2044 + # Fast installation is not supported 2045 + enable_fast_install=no 2046 +elif test "$shlibpath_overrides_runpath" = yes || 2047 + test "$enable_shared" = no; then 2048 + # Fast installation is not necessary 2049 + enable_fast_install=needless 2050 +fi 2051 +_LT_TAGDECL([], [hardcode_action], [0], 2052 + [How to hardcode a shared library path into an executable]) 2053 +])# _LT_LINKER_HARDCODE_LIBPATH 2054 + 2055 + 2056 +# _LT_CMD_STRIPLIB 2057 +# ---------------- 2058 +m4_defun([_LT_CMD_STRIPLIB], 2059 +[m4_require([_LT_DECL_EGREP]) 2060 +striplib= 2061 +old_striplib= 2062 +AC_MSG_CHECKING([whether stripping libraries is possible]) 2063 +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then 2064 + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" 2065 + test -z "$striplib" && striplib="$STRIP --strip-unneeded" 2066 + AC_MSG_RESULT([yes]) 2067 +else 2068 +# FIXME - insert some real tests, host_os isn't really good enough 2069 + case $host_os in 2070 + darwin*) 2071 + if test -n "$STRIP" ; then 2072 + striplib="$STRIP -x" 2073 + old_striplib="$STRIP -S" 2074 + AC_MSG_RESULT([yes]) 2075 + else 2076 + AC_MSG_RESULT([no]) 2077 + fi 2078 + ;; 2079 + *) 2080 + AC_MSG_RESULT([no]) 2081 + ;; 2082 + esac 2083 +fi 2084 +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) 2085 +_LT_DECL([], [striplib], [1]) 2086 +])# _LT_CMD_STRIPLIB 2087 + 2088 + 2089 +# _LT_SYS_DYNAMIC_LINKER([TAG]) 2090 +# ----------------------------- 2091 +# PORTME Fill in your ld.so characteristics 2092 +m4_defun([_LT_SYS_DYNAMIC_LINKER], 2093 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 2094 +m4_require([_LT_DECL_EGREP])dnl 2095 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 2096 +m4_require([_LT_DECL_OBJDUMP])dnl 2097 +m4_require([_LT_DECL_SED])dnl 2098 +m4_require([_LT_CHECK_SHELL_FEATURES])dnl 2099 +AC_MSG_CHECKING([dynamic linker characteristics]) 2100 +m4_if([$1], 2101 + [], [ 2102 +if test "$GCC" = yes; then 2103 + case $host_os in 2104 + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; 2105 + *) lt_awk_arg="/^libraries:/" ;; 2106 + esac 2107 + case $host_os in 2108 + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; 2109 + *) lt_sed_strip_eq="s,=/,/,g" ;; 2110 + esac 2111 + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` 2112 + case $lt_search_path_spec in 2113 + *\;*) 2114 + # if the path contains ";" then we assume it to be the separator 2115 + # otherwise default to the standard path separator (i.e. ":") - it is 2116 + # assumed that no part of a normal pathname contains ";" but that should 2117 + # okay in the real world where ";" in dirpaths is itself problematic. 2118 + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` 2119 + ;; 2120 + *) 2121 + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` 2122 + ;; 2123 + esac 2124 + # Ok, now we have the path, separated by spaces, we can step through it 2125 + # and add multilib dir if necessary. 2126 + lt_tmp_lt_search_path_spec= 2127 + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` 2128 + for lt_sys_path in $lt_search_path_spec; do 2129 + if test -d "$lt_sys_path/$lt_multi_os_dir"; then 2130 + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" 2131 + else 2132 + test -d "$lt_sys_path" && \ 2133 + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" 2134 + fi 2135 + done 2136 + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' 2137 +BEGIN {RS=" "; FS="/|\n";} { 2138 + lt_foo=""; 2139 + lt_count=0; 2140 + for (lt_i = NF; lt_i > 0; lt_i--) { 2141 + if ($lt_i != "" && $lt_i != ".") { 2142 + if ($lt_i == "..") { 2143 + lt_count++; 2144 + } else { 2145 + if (lt_count == 0) { 2146 + lt_foo="/" $lt_i lt_foo; 2147 + } else { 2148 + lt_count--; 2149 + } 2150 + } 2151 + } 2152 + } 2153 + if (lt_foo != "") { lt_freq[[lt_foo]]++; } 2154 + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } 2155 +}'` 2156 + # AWK program above erroneously prepends '/' to C:/dos/paths 2157 + # for these hosts. 2158 + case $host_os in 2159 + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ 2160 + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; 2161 + esac 2162 + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 2163 +else 2164 + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" 2165 +fi]) 2166 +library_names_spec= 2167 +libname_spec='lib$name' 2168 +soname_spec= 2169 +shrext_cmds=".so" 2170 +postinstall_cmds= 2171 +postuninstall_cmds= 2172 +finish_cmds= 2173 +finish_eval= 2174 +shlibpath_var= 2175 +shlibpath_overrides_runpath=unknown 2176 +version_type=none 2177 +dynamic_linker="$host_os ld.so" 2178 +sys_lib_dlsearch_path_spec="/lib /usr/lib" 2179 +need_lib_prefix=unknown 2180 +hardcode_into_libs=no 2181 + 2182 +# when you set need_version to no, make sure it does not cause -set_version 2183 +# flags to be left without arguments 2184 +need_version=unknown 2185 + 2186 +case $host_os in 2187 +aix3*) 2188 + version_type=linux 2189 + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' 2190 + shlibpath_var=LIBPATH 2191 + 2192 + # AIX 3 has no versioning support, so we append a major version to the name. 2193 + soname_spec='${libname}${release}${shared_ext}$major' 2194 + ;; 2195 + 2196 +aix[[4-9]]*) 2197 + version_type=linux 2198 + need_lib_prefix=no 2199 + need_version=no 2200 + hardcode_into_libs=yes 2201 + if test "$host_cpu" = ia64; then 2202 + # AIX 5 supports IA64 2203 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' 2204 + shlibpath_var=LD_LIBRARY_PATH 2205 + else 2206 + # With GCC up to 2.95.x, collect2 would create an import file 2207 + # for dependence libraries. The import file would start with 2208 + # the line `#! .'. This would cause the generated library to 2209 + # depend on `.', always an invalid library. This was fixed in 2210 + # development snapshots of GCC prior to 3.0. 2211 + case $host_os in 2212 + aix4 | aix4.[[01]] | aix4.[[01]].*) 2213 + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' 2214 + echo ' yes ' 2215 + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then 2216 + : 2217 + else 2218 + can_build_shared=no 2219 + fi 2220 + ;; 2221 + esac 2222 + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct 2223 + # soname into executable. Probably we can add versioning support to 2224 + # collect2, so additional links can be useful in future. 2225 + if test "$aix_use_runtimelinking" = yes; then 2226 + # If using run time linking (on AIX 4.2 or later) use lib<name>.so 2227 + # instead of lib<name>.a to let people know that these are not 2228 + # typical AIX shared libraries. 2229 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2230 + else 2231 + # We preserve .a as extension for shared libraries through AIX4.2 2232 + # and later when we are not doing run time linking. 2233 + library_names_spec='${libname}${release}.a $libname.a' 2234 + soname_spec='${libname}${release}${shared_ext}$major' 2235 + fi 2236 + shlibpath_var=LIBPATH 2237 + fi 2238 + ;; 2239 + 2240 +amigaos*) 2241 + case $host_cpu in 2242 + powerpc) 2243 + # Since July 2007 AmigaOS4 officially supports .so libraries. 2244 + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. 2245 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2246 + ;; 2247 + m68k) 2248 + library_names_spec='$libname.ixlibrary $libname.a' 2249 + # Create ${libname}_ixlibrary.a entries in /sys/libs. 2250 + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' 2251 + ;; 2252 + esac 2253 + ;; 2254 + 2255 +beos*) 2256 + library_names_spec='${libname}${shared_ext}' 2257 + dynamic_linker="$host_os ld.so" 2258 + shlibpath_var=LIBRARY_PATH 2259 + ;; 2260 + 2261 +bsdi[[45]]*) 2262 + version_type=linux 2263 + need_version=no 2264 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2265 + soname_spec='${libname}${release}${shared_ext}$major' 2266 + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' 2267 + shlibpath_var=LD_LIBRARY_PATH 2268 + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" 2269 + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" 2270 + # the default ld.so.conf also contains /usr/contrib/lib and 2271 + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow 2272 + # libtool to hard-code these into programs 2273 + ;; 2274 + 2275 +cygwin* | mingw* | pw32* | cegcc*) 2276 + version_type=windows 2277 + shrext_cmds=".dll" 2278 + need_version=no 2279 + need_lib_prefix=no 2280 + 2281 + case $GCC,$cc_basename in 2282 + yes,*) 2283 + # gcc 2284 + library_names_spec='$libname.dll.a' 2285 + # DLL is installed to $(libdir)/../bin by postinstall_cmds 2286 + postinstall_cmds='base_file=`basename \${file}`~ 2287 + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ 2288 + dldir=$destdir/`dirname \$dlpath`~ 2289 + test -d \$dldir || mkdir -p \$dldir~ 2290 + $install_prog $dir/$dlname \$dldir/$dlname~ 2291 + chmod a+x \$dldir/$dlname~ 2292 + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then 2293 + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; 2294 + fi' 2295 + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ 2296 + dlpath=$dir/\$dldll~ 2297 + $RM \$dlpath' 2298 + shlibpath_overrides_runpath=yes 2299 + 2300 + case $host_os in 2301 + cygwin*) 2302 + # Cygwin DLLs use 'cyg' prefix rather than 'lib' 2303 + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 2304 +m4_if([$1], [],[ 2305 + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) 2306 + ;; 2307 + mingw* | cegcc*) 2308 + # MinGW DLLs use traditional 'lib' prefix 2309 + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 2310 + ;; 2311 + pw32*) 2312 + # pw32 DLLs use 'pw' prefix rather than 'lib' 2313 + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 2314 + ;; 2315 + esac 2316 + dynamic_linker='Win32 ld.exe' 2317 + ;; 2318 + 2319 + *,cl*) 2320 + # Native MSVC 2321 + libname_spec='$name' 2322 + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 2323 + library_names_spec='${libname}.dll.lib' 2324 + 2325 + case $build_os in 2326 + mingw*) 2327 + sys_lib_search_path_spec= 2328 + lt_save_ifs=$IFS 2329 + IFS=';' 2330 + for lt_path in $LIB 2331 + do 2332 + IFS=$lt_save_ifs 2333 + # Let DOS variable expansion print the short 8.3 style file name. 2334 + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` 2335 + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" 2336 + done 2337 + IFS=$lt_save_ifs 2338 + # Convert to MSYS style. 2339 + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` 2340 + ;; 2341 + cygwin*) 2342 + # Convert to unix form, then to dos form, then back to unix form 2343 + # but this time dos style (no spaces!) so that the unix form looks 2344 + # like /cygdrive/c/PROGRA~1:/cygdr... 2345 + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` 2346 + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` 2347 + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` 2348 + ;; 2349 + *) 2350 + sys_lib_search_path_spec="$LIB" 2351 + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then 2352 + # It is most probably a Windows format PATH. 2353 + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` 2354 + else 2355 + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` 2356 + fi 2357 + # FIXME: find the short name or the path components, as spaces are 2358 + # common. (e.g. "Program Files" -> "PROGRA~1") 2359 + ;; 2360 + esac 2361 + 2362 + # DLL is installed to $(libdir)/../bin by postinstall_cmds 2363 + postinstall_cmds='base_file=`basename \${file}`~ 2364 + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ 2365 + dldir=$destdir/`dirname \$dlpath`~ 2366 + test -d \$dldir || mkdir -p \$dldir~ 2367 + $install_prog $dir/$dlname \$dldir/$dlname' 2368 + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ 2369 + dlpath=$dir/\$dldll~ 2370 + $RM \$dlpath' 2371 + shlibpath_overrides_runpath=yes 2372 + dynamic_linker='Win32 link.exe' 2373 + ;; 2374 + 2375 + *) 2376 + # Assume MSVC wrapper 2377 + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' 2378 + dynamic_linker='Win32 ld.exe' 2379 + ;; 2380 + esac 2381 + # FIXME: first we should search . and the directory the executable is in 2382 + shlibpath_var=PATH 2383 + ;; 2384 + 2385 +darwin* | rhapsody*) 2386 + dynamic_linker="$host_os dyld" 2387 + version_type=darwin 2388 + need_lib_prefix=no 2389 + need_version=no 2390 + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' 2391 + soname_spec='${libname}${release}${major}$shared_ext' 2392 + shlibpath_overrides_runpath=yes 2393 + shlibpath_var=DYLD_LIBRARY_PATH 2394 + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' 2395 +m4_if([$1], [],[ 2396 + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) 2397 + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' 2398 + ;; 2399 + 2400 +dgux*) 2401 + version_type=linux 2402 + need_lib_prefix=no 2403 + need_version=no 2404 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' 2405 + soname_spec='${libname}${release}${shared_ext}$major' 2406 + shlibpath_var=LD_LIBRARY_PATH 2407 + ;; 2408 + 2409 +freebsd1*) 2410 + dynamic_linker=no 2411 + ;; 2412 + 2413 +freebsd* | dragonfly*) 2414 + # DragonFly does not have aout. When/if they implement a new 2415 + # versioning mechanism, adjust this. 2416 + if test -x /usr/bin/objformat; then 2417 + objformat=`/usr/bin/objformat` 2418 + else 2419 + case $host_os in 2420 + freebsd[[123]]*) objformat=aout ;; 2421 + *) objformat=elf ;; 2422 + esac 2423 + fi 2424 + version_type=freebsd-$objformat 2425 + case $version_type in 2426 + freebsd-elf*) 2427 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' 2428 + need_version=no 2429 + need_lib_prefix=no 2430 + ;; 2431 + freebsd-*) 2432 + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' 2433 + need_version=yes 2434 + ;; 2435 + esac 2436 + shlibpath_var=LD_LIBRARY_PATH 2437 + case $host_os in 2438 + freebsd2*) 2439 + shlibpath_overrides_runpath=yes 2440 + ;; 2441 + freebsd3.[[01]]* | freebsdelf3.[[01]]*) 2442 + shlibpath_overrides_runpath=yes 2443 + hardcode_into_libs=yes 2444 + ;; 2445 + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ 2446 + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) 2447 + shlibpath_overrides_runpath=no 2448 + hardcode_into_libs=yes 2449 + ;; 2450 + *) # from 4.6 on, and DragonFly 2451 + shlibpath_overrides_runpath=yes 2452 + hardcode_into_libs=yes 2453 + ;; 2454 + esac 2455 + ;; 2456 + 2457 +gnu*) 2458 + version_type=linux 2459 + need_lib_prefix=no 2460 + need_version=no 2461 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' 2462 + soname_spec='${libname}${release}${shared_ext}$major' 2463 + shlibpath_var=LD_LIBRARY_PATH 2464 + hardcode_into_libs=yes 2465 + ;; 2466 + 2467 +haiku*) 2468 + version_type=linux 2469 + need_lib_prefix=no 2470 + need_version=no 2471 + dynamic_linker="$host_os runtime_loader" 2472 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' 2473 + soname_spec='${libname}${release}${shared_ext}$major' 2474 + shlibpath_var=LIBRARY_PATH 2475 + shlibpath_overrides_runpath=yes 2476 + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 2477 + hardcode_into_libs=yes 2478 + ;; 2479 + 2480 +hpux9* | hpux10* | hpux11*) 2481 + # Give a soname corresponding to the major version so that dld.sl refuses to 2482 + # link against other versions. 2483 + version_type=sunos 2484 + need_lib_prefix=no 2485 + need_version=no 2486 + case $host_cpu in 2487 + ia64*) 2488 + shrext_cmds='.so' 2489 + hardcode_into_libs=yes 2490 + dynamic_linker="$host_os dld.so" 2491 + shlibpath_var=LD_LIBRARY_PATH 2492 + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. 2493 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2494 + soname_spec='${libname}${release}${shared_ext}$major' 2495 + if test "X$HPUX_IA64_MODE" = X32; then 2496 + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" 2497 + else 2498 + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" 2499 + fi 2500 + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 2501 + ;; 2502 + hppa*64*) 2503 + shrext_cmds='.sl' 2504 + hardcode_into_libs=yes 2505 + dynamic_linker="$host_os dld.sl" 2506 + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH 2507 + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. 2508 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2509 + soname_spec='${libname}${release}${shared_ext}$major' 2510 + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" 2511 + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 2512 + ;; 2513 + *) 2514 + shrext_cmds='.sl' 2515 + dynamic_linker="$host_os dld.sl" 2516 + shlibpath_var=SHLIB_PATH 2517 + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH 2518 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2519 + soname_spec='${libname}${release}${shared_ext}$major' 2520 + ;; 2521 + esac 2522 + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... 2523 + postinstall_cmds='chmod 555 $lib' 2524 + # or fails outright, so override atomically: 2525 + install_override_mode=555 2526 + ;; 2527 + 2528 +interix[[3-9]]*) 2529 + version_type=linux 2530 + need_lib_prefix=no 2531 + need_version=no 2532 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' 2533 + soname_spec='${libname}${release}${shared_ext}$major' 2534 + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' 2535 + shlibpath_var=LD_LIBRARY_PATH 2536 + shlibpath_overrides_runpath=no 2537 + hardcode_into_libs=yes 2538 + ;; 2539 + 2540 +irix5* | irix6* | nonstopux*) 2541 + case $host_os in 2542 + nonstopux*) version_type=nonstopux ;; 2543 + *) 2544 + if test "$lt_cv_prog_gnu_ld" = yes; then 2545 + version_type=linux 2546 + else 2547 + version_type=irix 2548 + fi ;; 2549 + esac 2550 + need_lib_prefix=no 2551 + need_version=no 2552 + soname_spec='${libname}${release}${shared_ext}$major' 2553 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' 2554 + case $host_os in 2555 + irix5* | nonstopux*) 2556 + libsuff= shlibsuff= 2557 + ;; 2558 + *) 2559 + case $LD in # libtool.m4 will add one of these switches to LD 2560 + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") 2561 + libsuff= shlibsuff= libmagic=32-bit;; 2562 + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") 2563 + libsuff=32 shlibsuff=N32 libmagic=N32;; 2564 + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") 2565 + libsuff=64 shlibsuff=64 libmagic=64-bit;; 2566 + *) libsuff= shlibsuff= libmagic=never-match;; 2567 + esac 2568 + ;; 2569 + esac 2570 + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH 2571 + shlibpath_overrides_runpath=no 2572 + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" 2573 + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" 2574 + hardcode_into_libs=yes 2575 + ;; 2576 + 2577 +# No shared lib support for Linux oldld, aout, or coff. 2578 +linux*oldld* | linux*aout* | linux*coff*) 2579 + dynamic_linker=no 2580 + ;; 2581 + 2582 +# This must be Linux ELF. 2583 +linux* | k*bsd*-gnu | kopensolaris*-gnu) 2584 + version_type=linux 2585 + need_lib_prefix=no 2586 + need_version=no 2587 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2588 + soname_spec='${libname}${release}${shared_ext}$major' 2589 + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' 2590 + shlibpath_var=LD_LIBRARY_PATH 2591 + shlibpath_overrides_runpath=no 2592 + 2593 + # Some binutils ld are patched to set DT_RUNPATH 2594 + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], 2595 + [lt_cv_shlibpath_overrides_runpath=no 2596 + save_LDFLAGS=$LDFLAGS 2597 + save_libdir=$libdir 2598 + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ 2599 + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" 2600 + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], 2601 + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], 2602 + [lt_cv_shlibpath_overrides_runpath=yes])]) 2603 + LDFLAGS=$save_LDFLAGS 2604 + libdir=$save_libdir 2605 + ]) 2606 + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath 2607 + 2608 + # This implies no fast_install, which is unacceptable. 2609 + # Some rework will be needed to allow for fast_install 2610 + # before this can be enabled. 2611 + hardcode_into_libs=yes 2612 + 2613 + # Add ABI-specific directories to the system library path. 2614 + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" 2615 + 2616 + # Append ld.so.conf contents to the search path 2617 + if test -f /etc/ld.so.conf; then 2618 + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` 2619 + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" 2620 + 2621 + fi 2622 + 2623 + # We used to test for /lib/ld.so.1 and disable shared libraries on 2624 + # powerpc, because MkLinux only supported shared libraries with the 2625 + # GNU dynamic linker. Since this was broken with cross compilers, 2626 + # most powerpc-linux boxes support dynamic linking these days and 2627 + # people can always --disable-shared, the test was removed, and we 2628 + # assume the GNU/Linux dynamic linker is in use. 2629 + dynamic_linker='GNU/Linux ld.so' 2630 + ;; 2631 + 2632 +netbsd*) 2633 + version_type=sunos 2634 + need_lib_prefix=no 2635 + need_version=no 2636 + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then 2637 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' 2638 + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' 2639 + dynamic_linker='NetBSD (a.out) ld.so' 2640 + else 2641 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' 2642 + soname_spec='${libname}${release}${shared_ext}$major' 2643 + dynamic_linker='NetBSD ld.elf_so' 2644 + fi 2645 + shlibpath_var=LD_LIBRARY_PATH 2646 + shlibpath_overrides_runpath=yes 2647 + hardcode_into_libs=yes 2648 + ;; 2649 + 2650 +newsos6) 2651 + version_type=linux 2652 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2653 + shlibpath_var=LD_LIBRARY_PATH 2654 + shlibpath_overrides_runpath=yes 2655 + ;; 2656 + 2657 +*nto* | *qnx*) 2658 + version_type=qnx 2659 + need_lib_prefix=no 2660 + need_version=no 2661 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2662 + soname_spec='${libname}${release}${shared_ext}$major' 2663 + shlibpath_var=LD_LIBRARY_PATH 2664 + shlibpath_overrides_runpath=no 2665 + hardcode_into_libs=yes 2666 + dynamic_linker='ldqnx.so' 2667 + ;; 2668 + 2669 +openbsd*) 2670 + version_type=sunos 2671 + sys_lib_dlsearch_path_spec="/usr/lib" 2672 + need_lib_prefix=no 2673 + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. 2674 + case $host_os in 2675 + openbsd3.3 | openbsd3.3.*) need_version=yes ;; 2676 + *) need_version=no ;; 2677 + esac 2678 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' 2679 + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' 2680 + shlibpath_var=LD_LIBRARY_PATH 2681 + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 2682 + case $host_os in 2683 + openbsd2.[[89]] | openbsd2.[[89]].*) 2684 + shlibpath_overrides_runpath=no 2685 + ;; 2686 + *) 2687 + shlibpath_overrides_runpath=yes 2688 + ;; 2689 + esac 2690 + else 2691 + shlibpath_overrides_runpath=yes 2692 + fi 2693 + ;; 2694 + 2695 +os2*) 2696 + libname_spec='$name' 2697 + shrext_cmds=".dll" 2698 + need_lib_prefix=no 2699 + library_names_spec='$libname${shared_ext} $libname.a' 2700 + dynamic_linker='OS/2 ld.exe' 2701 + shlibpath_var=LIBPATH 2702 + ;; 2703 + 2704 +osf3* | osf4* | osf5*) 2705 + version_type=osf 2706 + need_lib_prefix=no 2707 + need_version=no 2708 + soname_spec='${libname}${release}${shared_ext}$major' 2709 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2710 + shlibpath_var=LD_LIBRARY_PATH 2711 + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" 2712 + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" 2713 + ;; 2714 + 2715 +rdos*) 2716 + dynamic_linker=no 2717 + ;; 2718 + 2719 +solaris*) 2720 + version_type=linux 2721 + need_lib_prefix=no 2722 + need_version=no 2723 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2724 + soname_spec='${libname}${release}${shared_ext}$major' 2725 + shlibpath_var=LD_LIBRARY_PATH 2726 + shlibpath_overrides_runpath=yes 2727 + hardcode_into_libs=yes 2728 + # ldd complains unless libraries are executable 2729 + postinstall_cmds='chmod +x $lib' 2730 + ;; 2731 + 2732 +sunos4*) 2733 + version_type=sunos 2734 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' 2735 + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' 2736 + shlibpath_var=LD_LIBRARY_PATH 2737 + shlibpath_overrides_runpath=yes 2738 + if test "$with_gnu_ld" = yes; then 2739 + need_lib_prefix=no 2740 + fi 2741 + need_version=yes 2742 + ;; 2743 + 2744 +sysv4 | sysv4.3*) 2745 + version_type=linux 2746 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2747 + soname_spec='${libname}${release}${shared_ext}$major' 2748 + shlibpath_var=LD_LIBRARY_PATH 2749 + case $host_vendor in 2750 + sni) 2751 + shlibpath_overrides_runpath=no 2752 + need_lib_prefix=no 2753 + runpath_var=LD_RUN_PATH 2754 + ;; 2755 + siemens) 2756 + need_lib_prefix=no 2757 + ;; 2758 + motorola) 2759 + need_lib_prefix=no 2760 + need_version=no 2761 + shlibpath_overrides_runpath=no 2762 + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' 2763 + ;; 2764 + esac 2765 + ;; 2766 + 2767 +sysv4*MP*) 2768 + if test -d /usr/nec ;then 2769 + version_type=linux 2770 + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' 2771 + soname_spec='$libname${shared_ext}.$major' 2772 + shlibpath_var=LD_LIBRARY_PATH 2773 + fi 2774 + ;; 2775 + 2776 +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) 2777 + version_type=freebsd-elf 2778 + need_lib_prefix=no 2779 + need_version=no 2780 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' 2781 + soname_spec='${libname}${release}${shared_ext}$major' 2782 + shlibpath_var=LD_LIBRARY_PATH 2783 + shlibpath_overrides_runpath=yes 2784 + hardcode_into_libs=yes 2785 + if test "$with_gnu_ld" = yes; then 2786 + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' 2787 + else 2788 + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' 2789 + case $host_os in 2790 + sco3.2v5*) 2791 + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" 2792 + ;; 2793 + esac 2794 + fi 2795 + sys_lib_dlsearch_path_spec='/usr/lib' 2796 + ;; 2797 + 2798 +tpf*) 2799 + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. 2800 + version_type=linux 2801 + need_lib_prefix=no 2802 + need_version=no 2803 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2804 + shlibpath_var=LD_LIBRARY_PATH 2805 + shlibpath_overrides_runpath=no 2806 + hardcode_into_libs=yes 2807 + ;; 2808 + 2809 +uts4*) 2810 + version_type=linux 2811 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2812 + soname_spec='${libname}${release}${shared_ext}$major' 2813 + shlibpath_var=LD_LIBRARY_PATH 2814 + ;; 2815 + 2816 +*) 2817 + dynamic_linker=no 2818 + ;; 2819 +esac 2820 +AC_MSG_RESULT([$dynamic_linker]) 2821 +test "$dynamic_linker" = no && can_build_shared=no 2822 + 2823 +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" 2824 +if test "$GCC" = yes; then 2825 + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" 2826 +fi 2827 + 2828 +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then 2829 + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" 2830 +fi 2831 +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then 2832 + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" 2833 +fi 2834 + 2835 +_LT_DECL([], [variables_saved_for_relink], [1], 2836 + [Variables whose values should be saved in libtool wrapper scripts and 2837 + restored at link time]) 2838 +_LT_DECL([], [need_lib_prefix], [0], 2839 + [Do we need the "lib" prefix for modules?]) 2840 +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) 2841 +_LT_DECL([], [version_type], [0], [Library versioning type]) 2842 +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) 2843 +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) 2844 +_LT_DECL([], [shlibpath_overrides_runpath], [0], 2845 + [Is shlibpath searched before the hard-coded library search path?]) 2846 +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) 2847 +_LT_DECL([], [library_names_spec], [1], 2848 + [[List of archive names. First name is the real one, the rest are links. 2849 + The last name is the one that the linker finds with -lNAME]]) 2850 +_LT_DECL([], [soname_spec], [1], 2851 + [[The coded name of the library, if different from the real name]]) 2852 +_LT_DECL([], [install_override_mode], [1], 2853 + [Permission mode override for installation of shared libraries]) 2854 +_LT_DECL([], [postinstall_cmds], [2], 2855 + [Command to use after installation of a shared archive]) 2856 +_LT_DECL([], [postuninstall_cmds], [2], 2857 + [Command to use after uninstallation of a shared archive]) 2858 +_LT_DECL([], [finish_cmds], [2], 2859 + [Commands used to finish a libtool library installation in a directory]) 2860 +_LT_DECL([], [finish_eval], [1], 2861 + [[As "finish_cmds", except a single script fragment to be evaled but 2862 + not shown]]) 2863 +_LT_DECL([], [hardcode_into_libs], [0], 2864 + [Whether we should hardcode library paths into libraries]) 2865 +_LT_DECL([], [sys_lib_search_path_spec], [2], 2866 + [Compile-time system search path for libraries]) 2867 +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], 2868 + [Run-time system search path for libraries]) 2869 +])# _LT_SYS_DYNAMIC_LINKER 2870 + 2871 + 2872 +# _LT_PATH_TOOL_PREFIX(TOOL) 2873 +# -------------------------- 2874 +# find a file program which can recognize shared library 2875 +AC_DEFUN([_LT_PATH_TOOL_PREFIX], 2876 +[m4_require([_LT_DECL_EGREP])dnl 2877 +AC_MSG_CHECKING([for $1]) 2878 +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, 2879 +[case $MAGIC_CMD in 2880 +[[\\/*] | ?:[\\/]*]) 2881 + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. 2882 + ;; 2883 +*) 2884 + lt_save_MAGIC_CMD="$MAGIC_CMD" 2885 + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR 2886 +dnl $ac_dummy forces splitting on constant user-supplied paths. 2887 +dnl POSIX.2 word splitting is done only on the output of word expansions, 2888 +dnl not every word. This closes a longstanding sh security hole. 2889 + ac_dummy="m4_if([$2], , $PATH, [$2])" 2890 + for ac_dir in $ac_dummy; do 2891 + IFS="$lt_save_ifs" 2892 + test -z "$ac_dir" && ac_dir=. 2893 + if test -f $ac_dir/$1; then 2894 + lt_cv_path_MAGIC_CMD="$ac_dir/$1" 2895 + if test -n "$file_magic_test_file"; then 2896 + case $deplibs_check_method in 2897 + "file_magic "*) 2898 + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` 2899 + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" 2900 + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | 2901 + $EGREP "$file_magic_regex" > /dev/null; then 2902 + : 2903 + else 2904 + cat <<_LT_EOF 1>&2 2905 + 2906 +*** Warning: the command libtool uses to detect shared libraries, 2907 +*** $file_magic_cmd, produces output that libtool cannot recognize. 2908 +*** The result is that libtool may fail to recognize shared libraries 2909 +*** as such. This will affect the creation of libtool libraries that 2910 +*** depend on shared libraries, but programs linked with such libtool 2911 +*** libraries will work regardless of this problem. Nevertheless, you 2912 +*** may want to report the problem to your system manager and/or to 2913 +*** bug-libtool@gnu.org 2914 + 2915 +_LT_EOF 2916 + fi ;; 2917 + esac 2918 + fi 2919 + break 2920 + fi 2921 + done 2922 + IFS="$lt_save_ifs" 2923 + MAGIC_CMD="$lt_save_MAGIC_CMD" 2924 + ;; 2925 +esac]) 2926 +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" 2927 +if test -n "$MAGIC_CMD"; then 2928 + AC_MSG_RESULT($MAGIC_CMD) 2929 +else 2930 + AC_MSG_RESULT(no) 2931 +fi 2932 +_LT_DECL([], [MAGIC_CMD], [0], 2933 + [Used to examine libraries when file_magic_cmd begins with "file"])dnl 2934 +])# _LT_PATH_TOOL_PREFIX 2935 + 2936 +# Old name: 2937 +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) 2938 +dnl aclocal-1.4 backwards compatibility: 2939 +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) 2940 + 2941 + 2942 +# _LT_PATH_MAGIC 2943 +# -------------- 2944 +# find a file program which can recognize a shared library 2945 +m4_defun([_LT_PATH_MAGIC], 2946 +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) 2947 +if test -z "$lt_cv_path_MAGIC_CMD"; then 2948 + if test -n "$ac_tool_prefix"; then 2949 + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) 2950 + else 2951 + MAGIC_CMD=: 2952 + fi 2953 +fi 2954 +])# _LT_PATH_MAGIC 2955 + 2956 + 2957 +# LT_PATH_LD 2958 +# ---------- 2959 +# find the pathname to the GNU or non-GNU linker 2960 +AC_DEFUN([LT_PATH_LD], 2961 +[AC_REQUIRE([AC_PROG_CC])dnl 2962 +AC_REQUIRE([AC_CANONICAL_HOST])dnl 2963 +AC_REQUIRE([AC_CANONICAL_BUILD])dnl 2964 +m4_require([_LT_DECL_SED])dnl 2965 +m4_require([_LT_DECL_EGREP])dnl 2966 +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl 2967 + 2968 +AC_ARG_WITH([gnu-ld], 2969 + [AS_HELP_STRING([--with-gnu-ld], 2970 + [assume the C compiler uses GNU ld @<:@default=no@:>@])], 2971 + [test "$withval" = no || with_gnu_ld=yes], 2972 + [with_gnu_ld=no])dnl 2973 + 2974 +ac_prog=ld 2975 +if test "$GCC" = yes; then 2976 + # Check if gcc -print-prog-name=ld gives a path. 2977 + AC_MSG_CHECKING([for ld used by $CC]) 2978 + case $host in 2979 + *-*-mingw*) 2980 + # gcc leaves a trailing carriage return which upsets mingw 2981 + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; 2982 + *) 2983 + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; 2984 + esac 2985 + case $ac_prog in 2986 + # Accept absolute paths. 2987 + [[\\/]]* | ?:[[\\/]]*) 2988 + re_direlt='/[[^/]][[^/]]*/\.\./' 2989 + # Canonicalize the pathname of ld 2990 + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` 2991 + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do 2992 + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` 2993 + done 2994 + test -z "$LD" && LD="$ac_prog" 2995 + ;; 2996 + "") 2997 + # If it fails, then pretend we aren't using GCC. 2998 + ac_prog=ld 2999 + ;; 3000 + *) 3001 + # If it is relative, then search for the first ld in PATH. 3002 + with_gnu_ld=unknown 3003 + ;; 3004 + esac 3005 +elif test "$with_gnu_ld" = yes; then 3006 + AC_MSG_CHECKING([for GNU ld]) 3007 +else 3008 + AC_MSG_CHECKING([for non-GNU ld]) 3009 +fi 3010 +AC_CACHE_VAL(lt_cv_path_LD, 3011 +[if test -z "$LD"; then 3012 + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR 3013 + for ac_dir in $PATH; do 3014 + IFS="$lt_save_ifs" 3015 + test -z "$ac_dir" && ac_dir=. 3016 + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then 3017 + lt_cv_path_LD="$ac_dir/$ac_prog" 3018 + # Check to see if the program is GNU ld. I'd rather use --version, 3019 + # but apparently some variants of GNU ld only accept -v. 3020 + # Break only if it was the GNU/non-GNU ld that we prefer. 3021 + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in 3022 + *GNU* | *'with BFD'*) 3023 + test "$with_gnu_ld" != no && break 3024 + ;; 3025 + *) 3026 + test "$with_gnu_ld" != yes && break 3027 + ;; 3028 + esac 3029 + fi 3030 + done 3031 + IFS="$lt_save_ifs" 3032 +else 3033 + lt_cv_path_LD="$LD" # Let the user override the test with a path. 3034 +fi]) 3035 +LD="$lt_cv_path_LD" 3036 +if test -n "$LD"; then 3037 + AC_MSG_RESULT($LD) 3038 +else 3039 + AC_MSG_RESULT(no) 3040 +fi 3041 +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) 3042 +_LT_PATH_LD_GNU 3043 +AC_SUBST([LD]) 3044 + 3045 +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) 3046 +])# LT_PATH_LD 3047 + 3048 +# Old names: 3049 +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) 3050 +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) 3051 +dnl aclocal-1.4 backwards compatibility: 3052 +dnl AC_DEFUN([AM_PROG_LD], []) 3053 +dnl AC_DEFUN([AC_PROG_LD], []) 3054 + 3055 + 3056 +# _LT_PATH_LD_GNU 3057 +#- -------------- 3058 +m4_defun([_LT_PATH_LD_GNU], 3059 +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, 3060 +[# I'd rather use --version here, but apparently some GNU lds only accept -v. 3061 +case `$LD -v 2>&1 </dev/null` in 3062 +*GNU* | *'with BFD'*) 3063 + lt_cv_prog_gnu_ld=yes 3064 + ;; 3065 +*) 3066 + lt_cv_prog_gnu_ld=no 3067 + ;; 3068 +esac]) 3069 +with_gnu_ld=$lt_cv_prog_gnu_ld 3070 +])# _LT_PATH_LD_GNU 3071 + 3072 + 3073 +# _LT_CMD_RELOAD 3074 +# -------------- 3075 +# find reload flag for linker 3076 +# -- PORTME Some linkers may need a different reload flag. 3077 +m4_defun([_LT_CMD_RELOAD], 3078 +[AC_CACHE_CHECK([for $LD option to reload object files], 3079 + lt_cv_ld_reload_flag, 3080 + [lt_cv_ld_reload_flag='-r']) 3081 +reload_flag=$lt_cv_ld_reload_flag 3082 +case $reload_flag in 3083 +"" | " "*) ;; 3084 +*) reload_flag=" $reload_flag" ;; 3085 +esac 3086 +reload_cmds='$LD$reload_flag -o $output$reload_objs' 3087 +case $host_os in 3088 + cygwin* | mingw* | pw32* | cegcc*) 3089 + if test "$GCC" != yes; then 3090 + reload_cmds=false 3091 + fi 3092 + ;; 3093 + darwin*) 3094 + if test "$GCC" = yes; then 3095 + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' 3096 + else 3097 + reload_cmds='$LD$reload_flag -o $output$reload_objs' 3098 + fi 3099 + ;; 3100 +esac 3101 +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl 3102 +_LT_TAGDECL([], [reload_cmds], [2])dnl 3103 +])# _LT_CMD_RELOAD 3104 + 3105 + 3106 +# _LT_CHECK_MAGIC_METHOD 3107 +# ---------------------- 3108 +# how to check for library dependencies 3109 +# -- PORTME fill in with the dynamic library characteristics 3110 +m4_defun([_LT_CHECK_MAGIC_METHOD], 3111 +[m4_require([_LT_DECL_EGREP]) 3112 +m4_require([_LT_DECL_OBJDUMP]) 3113 +AC_CACHE_CHECK([how to recognize dependent libraries], 3114 +lt_cv_deplibs_check_method, 3115 +[lt_cv_file_magic_cmd='$MAGIC_CMD' 3116 +lt_cv_file_magic_test_file= 3117 +lt_cv_deplibs_check_method='unknown' 3118 +# Need to set the preceding variable on all platforms that support 3119 +# interlibrary dependencies. 3120 +# 'none' -- dependencies not supported. 3121 +# `unknown' -- same as none, but documents that we really don't know. 3122 +# 'pass_all' -- all dependencies passed with no checks. 3123 +# 'test_compile' -- check by making test program. 3124 +# 'file_magic [[regex]]' -- check by looking for files in library path 3125 +# which responds to the $file_magic_cmd with a given extended regex. 3126 +# If you have `file' or equivalent on your system and you're not sure 3127 +# whether `pass_all' will *always* work, you probably want this one. 3128 + 3129 +case $host_os in 3130 +aix[[4-9]]*) 3131 + lt_cv_deplibs_check_method=pass_all 3132 + ;; 3133 + 3134 +beos*) 3135 + lt_cv_deplibs_check_method=pass_all 3136 + ;; 3137 + 3138 +bsdi[[45]]*) 3139 + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' 3140 + lt_cv_file_magic_cmd='/usr/bin/file -L' 3141 + lt_cv_file_magic_test_file=/shlib/libc.so 3142 + ;; 3143 + 3144 +cygwin*) 3145 + # func_win32_libid is a shell function defined in ltmain.sh 3146 + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' 3147 + lt_cv_file_magic_cmd='func_win32_libid' 3148 + ;; 3149 + 3150 +mingw* | pw32*) 3151 + # Base MSYS/MinGW do not provide the 'file' command needed by 3152 + # func_win32_libid shell function, so use a weaker test based on 'objdump', 3153 + # unless we find 'file', for example because we are cross-compiling. 3154 + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. 3155 + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then 3156 + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' 3157 + lt_cv_file_magic_cmd='func_win32_libid' 3158 + else 3159 + # Keep this pattern in sync with the one in func_win32_libid. 3160 + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 3161 + lt_cv_file_magic_cmd='$OBJDUMP -f' 3162 + fi 3163 + ;; 3164 + 3165 +cegcc*) 3166 + # use the weaker test based on 'objdump'. See mingw*. 3167 + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' 3168 + lt_cv_file_magic_cmd='$OBJDUMP -f' 3169 + ;; 3170 + 3171 +darwin* | rhapsody*) 3172 + lt_cv_deplibs_check_method=pass_all 3173 + ;; 3174 + 3175 +freebsd* | dragonfly*) 3176 + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then 3177 + case $host_cpu in 3178 + i*86 ) 3179 + # Not sure whether the presence of OpenBSD here was a mistake. 3180 + # Let's accept both of them until this is cleared up. 3181 + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' 3182 + lt_cv_file_magic_cmd=/usr/bin/file 3183 + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` 3184 + ;; 3185 + esac 3186 + else 3187 + lt_cv_deplibs_check_method=pass_all 3188 + fi 3189 + ;; 3190 + 3191 +gnu*) 3192 + lt_cv_deplibs_check_method=pass_all 3193 + ;; 3194 + 3195 +haiku*) 3196 + lt_cv_deplibs_check_method=pass_all 3197 + ;; 3198 + 3199 +hpux10.20* | hpux11*) 3200 + lt_cv_file_magic_cmd=/usr/bin/file 3201 + case $host_cpu in 3202 + ia64*) 3203 + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' 3204 + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so 3205 + ;; 3206 + hppa*64*) 3207 + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] 3208 + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl 3209 + ;; 3210 + *) 3211 + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' 3212 + lt_cv_file_magic_test_file=/usr/lib/libc.sl 3213 + ;; 3214 + esac 3215 + ;; 3216 + 3217 +interix[[3-9]]*) 3218 + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here 3219 + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' 3220 + ;; 3221 + 3222 +irix5* | irix6* | nonstopux*) 3223 + case $LD in 3224 + *-32|*"-32 ") libmagic=32-bit;; 3225 + *-n32|*"-n32 ") libmagic=N32;; 3226 + *-64|*"-64 ") libmagic=64-bit;; 3227 + *) libmagic=never-match;; 3228 + esac 3229 + lt_cv_deplibs_check_method=pass_all 3230 + ;; 3231 + 3232 +# This must be Linux ELF. 3233 +linux* | k*bsd*-gnu | kopensolaris*-gnu) 3234 + lt_cv_deplibs_check_method=pass_all 3235 + ;; 3236 + 3237 +netbsd*) 3238 + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then 3239 + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' 3240 + else 3241 + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' 3242 + fi 3243 + ;; 3244 + 3245 +newos6*) 3246 + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' 3247 + lt_cv_file_magic_cmd=/usr/bin/file 3248 + lt_cv_file_magic_test_file=/usr/lib/libnls.so 3249 + ;; 3250 + 3251 +*nto* | *qnx*) 3252 + lt_cv_deplibs_check_method=pass_all 3253 + ;; 3254 + 3255 +openbsd*) 3256 + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 3257 + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' 3258 + else 3259 + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' 3260 + fi 3261 + ;; 3262 + 3263 +osf3* | osf4* | osf5*) 3264 + lt_cv_deplibs_check_method=pass_all 3265 + ;; 3266 + 3267 +rdos*) 3268 + lt_cv_deplibs_check_method=pass_all 3269 + ;; 3270 + 3271 +solaris*) 3272 + lt_cv_deplibs_check_method=pass_all 3273 + ;; 3274 + 3275 +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) 3276 + lt_cv_deplibs_check_method=pass_all 3277 + ;; 3278 + 3279 +sysv4 | sysv4.3*) 3280 + case $host_vendor in 3281 + motorola) 3282 + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' 3283 + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` 3284 + ;; 3285 + ncr) 3286 + lt_cv_deplibs_check_method=pass_all 3287 + ;; 3288 + sequent) 3289 + lt_cv_file_magic_cmd='/bin/file' 3290 + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' 3291 + ;; 3292 + sni) 3293 + lt_cv_file_magic_cmd='/bin/file' 3294 + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" 3295 + lt_cv_file_magic_test_file=/lib/libc.so 3296 + ;; 3297 + siemens) 3298 + lt_cv_deplibs_check_method=pass_all 3299 + ;; 3300 + pc) 3301 + lt_cv_deplibs_check_method=pass_all 3302 + ;; 3303 + esac 3304 + ;; 3305 + 3306 +tpf*) 3307 + lt_cv_deplibs_check_method=pass_all 3308 + ;; 3309 +esac 3310 +]) 3311 + 3312 +file_magic_glob= 3313 +want_nocaseglob=no 3314 +if test "$build" = "$host"; then 3315 + case $host_os in 3316 + mingw* | pw32*) 3317 + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then 3318 + want_nocaseglob=yes 3319 + else 3320 + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` 3321 + fi 3322 + ;; 3323 + esac 3324 +fi 3325 + 3326 +file_magic_cmd=$lt_cv_file_magic_cmd 3327 +deplibs_check_method=$lt_cv_deplibs_check_method 3328 +test -z "$deplibs_check_method" && deplibs_check_method=unknown 3329 + 3330 +_LT_DECL([], [deplibs_check_method], [1], 3331 + [Method to check whether dependent libraries are shared objects]) 3332 +_LT_DECL([], [file_magic_cmd], [1], 3333 + [Command to use when deplibs_check_method = "file_magic"]) 3334 +_LT_DECL([], [file_magic_glob], [1], 3335 + [How to find potential files when deplibs_check_method = "file_magic"]) 3336 +_LT_DECL([], [want_nocaseglob], [1], 3337 + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) 3338 +])# _LT_CHECK_MAGIC_METHOD 3339 + 3340 + 3341 +# LT_PATH_NM 3342 +# ---------- 3343 +# find the pathname to a BSD- or MS-compatible name lister 3344 +AC_DEFUN([LT_PATH_NM], 3345 +[AC_REQUIRE([AC_PROG_CC])dnl 3346 +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, 3347 +[if test -n "$NM"; then 3348 + # Let the user override the test. 3349 + lt_cv_path_NM="$NM" 3350 +else 3351 + lt_nm_to_check="${ac_tool_prefix}nm" 3352 + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then 3353 + lt_nm_to_check="$lt_nm_to_check nm" 3354 + fi 3355 + for lt_tmp_nm in $lt_nm_to_check; do 3356 + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR 3357 + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do 3358 + IFS="$lt_save_ifs" 3359 + test -z "$ac_dir" && ac_dir=. 3360 + tmp_nm="$ac_dir/$lt_tmp_nm" 3361 + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then 3362 + # Check to see if the nm accepts a BSD-compat flag. 3363 + # Adding the `sed 1q' prevents false positives on HP-UX, which says: 3364 + # nm: unknown option "B" ignored 3365 + # Tru64's nm complains that /dev/null is an invalid object file 3366 + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in 3367 + */dev/null* | *'Invalid file or object type'*) 3368 + lt_cv_path_NM="$tmp_nm -B" 3369 + break 3370 + ;; 3371 + *) 3372 + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in 3373 + */dev/null*) 3374 + lt_cv_path_NM="$tmp_nm -p" 3375 + break 3376 + ;; 3377 + *) 3378 + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but 3379 + continue # so that we can try to find one that supports BSD flags 3380 + ;; 3381 + esac 3382 + ;; 3383 + esac 3384 + fi 3385 + done 3386 + IFS="$lt_save_ifs" 3387 + done 3388 + : ${lt_cv_path_NM=no} 3389 +fi]) 3390 +if test "$lt_cv_path_NM" != "no"; then 3391 + NM="$lt_cv_path_NM" 3392 +else 3393 + # Didn't find any BSD compatible name lister, look for dumpbin. 3394 + if test -n "$DUMPBIN"; then : 3395 + # Let the user override the test. 3396 + else 3397 + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) 3398 + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in 3399 + *COFF*) 3400 + DUMPBIN="$DUMPBIN -symbols" 3401 + ;; 3402 + *) 3403 + DUMPBIN=: 3404 + ;; 3405 + esac 3406 + fi 3407 + AC_SUBST([DUMPBIN]) 3408 + if test "$DUMPBIN" != ":"; then 3409 + NM="$DUMPBIN" 3410 + fi 3411 +fi 3412 +test -z "$NM" && NM=nm 3413 +AC_SUBST([NM]) 3414 +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl 3415 + 3416 +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], 3417 + [lt_cv_nm_interface="BSD nm" 3418 + echo "int some_variable = 0;" > conftest.$ac_ext 3419 + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) 3420 + (eval "$ac_compile" 2>conftest.err) 3421 + cat conftest.err >&AS_MESSAGE_LOG_FD 3422 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) 3423 + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 3424 + cat conftest.err >&AS_MESSAGE_LOG_FD 3425 + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) 3426 + cat conftest.out >&AS_MESSAGE_LOG_FD 3427 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then 3428 + lt_cv_nm_interface="MS dumpbin" 3429 + fi 3430 + rm -f conftest*]) 3431 +])# LT_PATH_NM 3432 + 3433 +# Old names: 3434 +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) 3435 +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) 3436 +dnl aclocal-1.4 backwards compatibility: 3437 +dnl AC_DEFUN([AM_PROG_NM], []) 3438 +dnl AC_DEFUN([AC_PROG_NM], []) 3439 + 3440 +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB 3441 +# -------------------------------- 3442 +# how to determine the name of the shared library 3443 +# associated with a specific link library. 3444 +# -- PORTME fill in with the dynamic library characteristics 3445 +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], 3446 +[m4_require([_LT_DECL_EGREP]) 3447 +m4_require([_LT_DECL_OBJDUMP]) 3448 +m4_require([_LT_DECL_DLLTOOL]) 3449 +AC_CACHE_CHECK([how to associate runtime and link libraries], 3450 +lt_cv_sharedlib_from_linklib_cmd, 3451 +[lt_cv_sharedlib_from_linklib_cmd='unknown' 3452 + 3453 +case $host_os in 3454 +cygwin* | mingw* | pw32* | cegcc*) 3455 + # two different shell functions defined in ltmain.sh 3456 + # decide which to use based on capabilities of $DLLTOOL 3457 + case `$DLLTOOL --help 2>&1` in 3458 + *--identify-strict*) 3459 + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib 3460 + ;; 3461 + *) 3462 + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback 3463 + ;; 3464 + esac 3465 + ;; 3466 +*) 3467 + # fallback: assume linklib IS sharedlib 3468 + lt_cv_sharedlib_from_linklib_cmd="$ECHO" 3469 + ;; 3470 +esac 3471 +]) 3472 +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd 3473 +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO 3474 + 3475 +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], 3476 + [Command to associate shared and link libraries]) 3477 +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB 3478 + 3479 + 3480 +# _LT_PATH_MANIFEST_TOOL 3481 +# ---------------------- 3482 +# locate the manifest tool 3483 +m4_defun([_LT_PATH_MANIFEST_TOOL], 3484 +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) 3485 +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt 3486 +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], 3487 + [lt_cv_path_mainfest_tool=no 3488 + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD 3489 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out 3490 + cat conftest.err >&AS_MESSAGE_LOG_FD 3491 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then 3492 + lt_cv_path_mainfest_tool=yes 3493 + fi 3494 + rm -f conftest*]) 3495 +if test "x$lt_cv_path_mainfest_tool" != xyes; then 3496 + MANIFEST_TOOL=: 3497 +fi 3498 +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl 3499 +])# _LT_PATH_MANIFEST_TOOL 3500 + 3501 + 3502 +# LT_LIB_M 3503 +# -------- 3504 +# check for math library 3505 +AC_DEFUN([LT_LIB_M], 3506 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 3507 +LIBM= 3508 +case $host in 3509 +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) 3510 + # These system don't have libm, or don't need it 3511 + ;; 3512 +*-ncr-sysv4.3*) 3513 + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") 3514 + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") 3515 + ;; 3516 +*) 3517 + AC_CHECK_LIB(m, cos, LIBM="-lm") 3518 + ;; 3519 +esac 3520 +AC_SUBST([LIBM]) 3521 +])# LT_LIB_M 3522 + 3523 +# Old name: 3524 +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) 3525 +dnl aclocal-1.4 backwards compatibility: 3526 +dnl AC_DEFUN([AC_CHECK_LIBM], []) 3527 + 3528 + 3529 +# _LT_COMPILER_NO_RTTI([TAGNAME]) 3530 +# ------------------------------- 3531 +m4_defun([_LT_COMPILER_NO_RTTI], 3532 +[m4_require([_LT_TAG_COMPILER])dnl 3533 + 3534 +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= 3535 + 3536 +if test "$GCC" = yes; then 3537 + case $cc_basename in 3538 + nvcc*) 3539 + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; 3540 + *) 3541 + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; 3542 + esac 3543 + 3544 + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], 3545 + lt_cv_prog_compiler_rtti_exceptions, 3546 + [-fno-rtti -fno-exceptions], [], 3547 + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) 3548 +fi 3549 +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], 3550 + [Compiler flag to turn off builtin functions]) 3551 +])# _LT_COMPILER_NO_RTTI 3552 + 3553 + 3554 +# _LT_CMD_GLOBAL_SYMBOLS 3555 +# ---------------------- 3556 +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], 3557 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 3558 +AC_REQUIRE([AC_PROG_CC])dnl 3559 +AC_REQUIRE([AC_PROG_AWK])dnl 3560 +AC_REQUIRE([LT_PATH_NM])dnl 3561 +AC_REQUIRE([LT_PATH_LD])dnl 3562 +m4_require([_LT_DECL_SED])dnl 3563 +m4_require([_LT_DECL_EGREP])dnl 3564 +m4_require([_LT_TAG_COMPILER])dnl 3565 + 3566 +# Check for command to grab the raw symbol name followed by C symbol from nm. 3567 +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) 3568 +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], 3569 +[ 3570 +# These are sane defaults that work on at least a few old systems. 3571 +# [They come from Ultrix. What could be older than Ultrix?!! ;)] 3572 + 3573 +# Character class describing NM global symbol codes. 3574 +symcode='[[BCDEGRST]]' 3575 + 3576 +# Regexp to match symbols that can be accessed directly from C. 3577 +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' 3578 + 3579 +# Define system-specific variables. 3580 +case $host_os in 3581 +aix*) 3582 + symcode='[[BCDT]]' 3583 + ;; 3584 +cygwin* | mingw* | pw32* | cegcc*) 3585 + symcode='[[ABCDGISTW]]' 3586 + ;; 3587 +hpux*) 3588 + if test "$host_cpu" = ia64; then 3589 + symcode='[[ABCDEGRST]]' 3590 + fi 3591 + ;; 3592 +irix* | nonstopux*) 3593 + symcode='[[BCDEGRST]]' 3594 + ;; 3595 +osf*) 3596 + symcode='[[BCDEGQRST]]' 3597 + ;; 3598 +solaris*) 3599 + symcode='[[BDRT]]' 3600 + ;; 3601 +sco3.2v5*) 3602 + symcode='[[DT]]' 3603 + ;; 3604 +sysv4.2uw2*) 3605 + symcode='[[DT]]' 3606 + ;; 3607 +sysv5* | sco5v6* | unixware* | OpenUNIX*) 3608 + symcode='[[ABDT]]' 3609 + ;; 3610 +sysv4) 3611 + symcode='[[DFNSTU]]' 3612 + ;; 3613 +esac 3614 + 3615 +# If we're using GNU nm, then use its standard symbol codes. 3616 +case `$NM -V 2>&1` in 3617 +*GNU* | *'with BFD'*) 3618 + symcode='[[ABCDGIRSTW]]' ;; 3619 +esac 3620 + 3621 +# Transform an extracted symbol line into a proper C declaration. 3622 +# Some systems (esp. on ia64) link data and code symbols differently, 3623 +# so use this general approach. 3624 +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" 3625 + 3626 +# Transform an extracted symbol line into symbol name and symbol address 3627 +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" 3628 +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" 3629 + 3630 +# Handle CRLF in mingw tool chain 3631 +opt_cr= 3632 +case $build_os in 3633 +mingw*) 3634 + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp 3635 + ;; 3636 +esac 3637 + 3638 +# Try without a prefix underscore, then with it. 3639 +for ac_symprfx in "" "_"; do 3640 + 3641 + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. 3642 + symxfrm="\\1 $ac_symprfx\\2 \\2" 3643 + 3644 + # Write the raw and C identifiers. 3645 + if test "$lt_cv_nm_interface" = "MS dumpbin"; then 3646 + # Fake it for dumpbin and say T for any non-static function 3647 + # and D for any global variable. 3648 + # Also find C++ and __fastcall symbols from MSVC++, 3649 + # which start with @ or ?. 3650 + lt_cv_sys_global_symbol_pipe="$AWK ['"\ 3651 +" {last_section=section; section=\$ 3};"\ 3652 +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ 3653 +" \$ 0!~/External *\|/{next};"\ 3654 +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ 3655 +" {if(hide[section]) next};"\ 3656 +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ 3657 +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ 3658 +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ 3659 +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ 3660 +" ' prfx=^$ac_symprfx]" 3661 + else 3662 + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" 3663 + fi 3664 + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" 3665 + 3666 + # Check to see that the pipe works correctly. 3667 + pipe_works=no 3668 + 3669 + rm -f conftest* 3670 + cat > conftest.$ac_ext <<_LT_EOF 3671 +#ifdef __cplusplus 3672 +extern "C" { 3673 +#endif 3674 +char nm_test_var; 3675 +void nm_test_func(void); 3676 +void nm_test_func(void){} 3677 +#ifdef __cplusplus 3678 +} 3679 +#endif 3680 +int main(){nm_test_var='a';nm_test_func();return(0);} 3681 +_LT_EOF 3682 + 3683 + if AC_TRY_EVAL(ac_compile); then 3684 + # Now try to grab the symbols. 3685 + nlist=conftest.nm 3686 + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then 3687 + # Try sorting and uniquifying the output. 3688 + if sort "$nlist" | uniq > "$nlist"T; then 3689 + mv -f "$nlist"T "$nlist" 3690 + else 3691 + rm -f "$nlist"T 3692 + fi 3693 + 3694 + # Make sure that we snagged all the symbols we need. 3695 + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then 3696 + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then 3697 + cat <<_LT_EOF > conftest.$ac_ext 3698 +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ 3699 +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) 3700 +/* DATA imports from DLLs on WIN32 con't be const, because runtime 3701 + relocations are performed -- see ld's documentation on pseudo-relocs. */ 3702 +# define LT@&t@_DLSYM_CONST 3703 +#elif defined(__osf__) 3704 +/* This system does not cope well with relocations in const data. */ 3705 +# define LT@&t@_DLSYM_CONST 3706 +#else 3707 +# define LT@&t@_DLSYM_CONST const 3708 +#endif 3709 + 3710 +#ifdef __cplusplus 3711 +extern "C" { 3712 +#endif 3713 + 3714 +_LT_EOF 3715 + # Now generate the symbol file. 3716 + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' 3717 + 3718 + cat <<_LT_EOF >> conftest.$ac_ext 3719 + 3720 +/* The mapping between symbol names and symbols. */ 3721 +LT@&t@_DLSYM_CONST struct { 3722 + const char *name; 3723 + void *address; 3724 +} 3725 +lt__PROGRAM__LTX_preloaded_symbols[[]] = 3726 +{ 3727 + { "@PROGRAM@", (void *) 0 }, 3728 +_LT_EOF 3729 + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext 3730 + cat <<\_LT_EOF >> conftest.$ac_ext 3731 + {0, (void *) 0} 3732 +}; 3733 + 3734 +/* This works around a problem in FreeBSD linker */ 3735 +#ifdef FREEBSD_WORKAROUND 3736 +static const void *lt_preloaded_setup() { 3737 + return lt__PROGRAM__LTX_preloaded_symbols; 3738 +} 3739 +#endif 3740 + 3741 +#ifdef __cplusplus 3742 +} 3743 +#endif 3744 +_LT_EOF 3745 + # Now try linking the two files. 3746 + mv conftest.$ac_objext conftstm.$ac_objext 3747 + lt_globsym_save_LIBS=$LIBS 3748 + lt_globsym_save_CFLAGS=$CFLAGS 3749 + LIBS="conftstm.$ac_objext" 3750 + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" 3751 + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then 3752 + pipe_works=yes 3753 + fi 3754 + LIBS=$lt_globsym_save_LIBS 3755 + CFLAGS=$lt_globsym_save_CFLAGS 3756 + else 3757 + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD 3758 + fi 3759 + else 3760 + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD 3761 + fi 3762 + else 3763 + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD 3764 + fi 3765 + else 3766 + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD 3767 + cat conftest.$ac_ext >&5 3768 + fi 3769 + rm -rf conftest* conftst* 3770 + 3771 + # Do not use the global_symbol_pipe unless it works. 3772 + if test "$pipe_works" = yes; then 3773 + break 3774 + else 3775 + lt_cv_sys_global_symbol_pipe= 3776 + fi 3777 +done 3778 +]) 3779 +if test -z "$lt_cv_sys_global_symbol_pipe"; then 3780 + lt_cv_sys_global_symbol_to_cdecl= 3781 +fi 3782 +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then 3783 + AC_MSG_RESULT(failed) 3784 +else 3785 + AC_MSG_RESULT(ok) 3786 +fi 3787 + 3788 +# Response file support. 3789 +if test "$lt_cv_nm_interface" = "MS dumpbin"; then 3790 + nm_file_list_spec='@' 3791 +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then 3792 + nm_file_list_spec='@' 3793 +fi 3794 + 3795 +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], 3796 + [Take the output of nm and produce a listing of raw symbols and C names]) 3797 +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], 3798 + [Transform the output of nm in a proper C declaration]) 3799 +_LT_DECL([global_symbol_to_c_name_address], 3800 + [lt_cv_sys_global_symbol_to_c_name_address], [1], 3801 + [Transform the output of nm in a C name address pair]) 3802 +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], 3803 + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], 3804 + [Transform the output of nm in a C name address pair when lib prefix is needed]) 3805 +_LT_DECL([], [nm_file_list_spec], [1], 3806 + [Specify filename containing input files for $NM]) 3807 +]) # _LT_CMD_GLOBAL_SYMBOLS 3808 + 3809 + 3810 +# _LT_COMPILER_PIC([TAGNAME]) 3811 +# --------------------------- 3812 +m4_defun([_LT_COMPILER_PIC], 3813 +[m4_require([_LT_TAG_COMPILER])dnl 3814 +_LT_TAGVAR(lt_prog_compiler_wl, $1)= 3815 +_LT_TAGVAR(lt_prog_compiler_pic, $1)= 3816 +_LT_TAGVAR(lt_prog_compiler_static, $1)= 3817 + 3818 +m4_if([$1], [CXX], [ 3819 + # C++ specific cases for pic, static, wl, etc. 3820 + if test "$GXX" = yes; then 3821 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3822 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 3823 + 3824 + case $host_os in 3825 + aix*) 3826 + # All AIX code is PIC. 3827 + if test "$host_cpu" = ia64; then 3828 + # AIX 5 now supports IA64 processor 3829 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3830 + fi 3831 + ;; 3832 + 3833 + amigaos*) 3834 + case $host_cpu in 3835 + powerpc) 3836 + # see comment about AmigaOS4 .so support 3837 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3838 + ;; 3839 + m68k) 3840 + # FIXME: we need at least 68020 code to build shared libraries, but 3841 + # adding the `-m68020' flag to GCC prevents building anything better, 3842 + # like `-m68040'. 3843 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' 3844 + ;; 3845 + esac 3846 + ;; 3847 + 3848 + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) 3849 + # PIC is the default for these OSes. 3850 + ;; 3851 + mingw* | cygwin* | os2* | pw32* | cegcc*) 3852 + # This hack is so that the source file can tell whether it is being 3853 + # built for inclusion in a dll (and should export symbols for example). 3854 + # Although the cygwin gcc ignores -fPIC, still need this for old-style 3855 + # (--disable-auto-import) libraries 3856 + m4_if([$1], [GCJ], [], 3857 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 3858 + ;; 3859 + darwin* | rhapsody*) 3860 + # PIC is the default on this platform 3861 + # Common symbols not allowed in MH_DYLIB files 3862 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' 3863 + ;; 3864 + *djgpp*) 3865 + # DJGPP does not support shared libraries at all 3866 + _LT_TAGVAR(lt_prog_compiler_pic, $1)= 3867 + ;; 3868 + haiku*) 3869 + # PIC is the default for Haiku. 3870 + # The "-static" flag exists, but is broken. 3871 + _LT_TAGVAR(lt_prog_compiler_static, $1)= 3872 + ;; 3873 + interix[[3-9]]*) 3874 + # Interix 3.x gcc -fpic/-fPIC options generate broken code. 3875 + # Instead, we relocate shared libraries at runtime. 3876 + ;; 3877 + sysv4*MP*) 3878 + if test -d /usr/nec; then 3879 + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic 3880 + fi 3881 + ;; 3882 + hpux*) 3883 + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit 3884 + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag 3885 + # sets the default TLS model and affects inlining. 3886 + case $host_cpu in 3887 + hppa*64*) 3888 + ;; 3889 + *) 3890 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3891 + ;; 3892 + esac 3893 + ;; 3894 + *qnx* | *nto*) 3895 + # QNX uses GNU C++, but need to define -shared option too, otherwise 3896 + # it will coredump. 3897 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' 3898 + ;; 3899 + *) 3900 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3901 + ;; 3902 + esac 3903 + else 3904 + case $host_os in 3905 + aix[[4-9]]*) 3906 + # All AIX code is PIC. 3907 + if test "$host_cpu" = ia64; then 3908 + # AIX 5 now supports IA64 processor 3909 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3910 + else 3911 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' 3912 + fi 3913 + ;; 3914 + chorus*) 3915 + case $cc_basename in 3916 + cxch68*) 3917 + # Green Hills C++ Compiler 3918 + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" 3919 + ;; 3920 + esac 3921 + ;; 3922 + mingw* | cygwin* | os2* | pw32* | cegcc*) 3923 + # This hack is so that the source file can tell whether it is being 3924 + # built for inclusion in a dll (and should export symbols for example). 3925 + m4_if([$1], [GCJ], [], 3926 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 3927 + ;; 3928 + dgux*) 3929 + case $cc_basename in 3930 + ec++*) 3931 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3932 + ;; 3933 + ghcx*) 3934 + # Green Hills C++ Compiler 3935 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 3936 + ;; 3937 + *) 3938 + ;; 3939 + esac 3940 + ;; 3941 + freebsd* | dragonfly*) 3942 + # FreeBSD uses GNU C++ 3943 + ;; 3944 + hpux9* | hpux10* | hpux11*) 3945 + case $cc_basename in 3946 + CC*) 3947 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3948 + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 3949 + if test "$host_cpu" != ia64; then 3950 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 3951 + fi 3952 + ;; 3953 + aCC*) 3954 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3955 + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 3956 + case $host_cpu in 3957 + hppa*64*|ia64*) 3958 + # +Z the default 3959 + ;; 3960 + *) 3961 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 3962 + ;; 3963 + esac 3964 + ;; 3965 + *) 3966 + ;; 3967 + esac 3968 + ;; 3969 + interix*) 3970 + # This is c89, which is MS Visual C++ (no shared libs) 3971 + # Anyone wants to do a port? 3972 + ;; 3973 + irix5* | irix6* | nonstopux*) 3974 + case $cc_basename in 3975 + CC*) 3976 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3977 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 3978 + # CC pic flag -KPIC is the default. 3979 + ;; 3980 + *) 3981 + ;; 3982 + esac 3983 + ;; 3984 + linux* | k*bsd*-gnu | kopensolaris*-gnu) 3985 + case $cc_basename in 3986 + KCC*) 3987 + # KAI C++ Compiler 3988 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' 3989 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3990 + ;; 3991 + ecpc* ) 3992 + # old Intel C++ for x86_64 which still supported -KPIC. 3993 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3994 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3995 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 3996 + ;; 3997 + icpc* ) 3998 + # Intel C++, used to be incompatible with GCC. 3999 + # ICC 10 doesn't accept -KPIC any more. 4000 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4001 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 4002 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 4003 + ;; 4004 + pgCC* | pgcpp*) 4005 + # Portland Group C++ compiler 4006 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4007 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' 4008 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4009 + ;; 4010 + cxx*) 4011 + # Compaq C++ 4012 + # Make sure the PIC flag is empty. It appears that all Alpha 4013 + # Linux and Compaq Tru64 Unix objects are PIC. 4014 + _LT_TAGVAR(lt_prog_compiler_pic, $1)= 4015 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4016 + ;; 4017 + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) 4018 + # IBM XL 8.0, 9.0 on PPC and BlueGene 4019 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4020 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' 4021 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' 4022 + ;; 4023 + *) 4024 + case `$CC -V 2>&1 | sed 5q` in 4025 + *Sun\ C*) 4026 + # Sun C++ 5.9 4027 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4028 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4029 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 4030 + ;; 4031 + esac 4032 + ;; 4033 + esac 4034 + ;; 4035 + lynxos*) 4036 + ;; 4037 + m88k*) 4038 + ;; 4039 + mvs*) 4040 + case $cc_basename in 4041 + cxx*) 4042 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' 4043 + ;; 4044 + *) 4045 + ;; 4046 + esac 4047 + ;; 4048 + netbsd*) 4049 + ;; 4050 + *qnx* | *nto*) 4051 + # QNX uses GNU C++, but need to define -shared option too, otherwise 4052 + # it will coredump. 4053 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' 4054 + ;; 4055 + osf3* | osf4* | osf5*) 4056 + case $cc_basename in 4057 + KCC*) 4058 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' 4059 + ;; 4060 + RCC*) 4061 + # Rational C++ 2.4.1 4062 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 4063 + ;; 4064 + cxx*) 4065 + # Digital/Compaq C++ 4066 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4067 + # Make sure the PIC flag is empty. It appears that all Alpha 4068 + # Linux and Compaq Tru64 Unix objects are PIC. 4069 + _LT_TAGVAR(lt_prog_compiler_pic, $1)= 4070 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4071 + ;; 4072 + *) 4073 + ;; 4074 + esac 4075 + ;; 4076 + psos*) 4077 + ;; 4078 + solaris*) 4079 + case $cc_basename in 4080 + CC* | sunCC*) 4081 + # Sun C++ 4.2, 5.x and Centerline C++ 4082 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4083 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4084 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 4085 + ;; 4086 + gcx*) 4087 + # Green Hills C++ Compiler 4088 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' 4089 + ;; 4090 + *) 4091 + ;; 4092 + esac 4093 + ;; 4094 + sunos4*) 4095 + case $cc_basename in 4096 + CC*) 4097 + # Sun C++ 4.x 4098 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 4099 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4100 + ;; 4101 + lcc*) 4102 + # Lucid 4103 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 4104 + ;; 4105 + *) 4106 + ;; 4107 + esac 4108 + ;; 4109 + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) 4110 + case $cc_basename in 4111 + CC*) 4112 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4113 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4114 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4115 + ;; 4116 + esac 4117 + ;; 4118 + tandem*) 4119 + case $cc_basename in 4120 + NCC*) 4121 + # NonStop-UX NCC 3.20 4122 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4123 + ;; 4124 + *) 4125 + ;; 4126 + esac 4127 + ;; 4128 + vxworks*) 4129 + ;; 4130 + *) 4131 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 4132 + ;; 4133 + esac 4134 + fi 4135 +], 4136 +[ 4137 + if test "$GCC" = yes; then 4138 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4139 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 4140 + 4141 + case $host_os in 4142 + aix*) 4143 + # All AIX code is PIC. 4144 + if test "$host_cpu" = ia64; then 4145 + # AIX 5 now supports IA64 processor 4146 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4147 + fi 4148 + ;; 4149 + 4150 + amigaos*) 4151 + case $host_cpu in 4152 + powerpc) 4153 + # see comment about AmigaOS4 .so support 4154 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 4155 + ;; 4156 + m68k) 4157 + # FIXME: we need at least 68020 code to build shared libraries, but 4158 + # adding the `-m68020' flag to GCC prevents building anything better, 4159 + # like `-m68040'. 4160 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' 4161 + ;; 4162 + esac 4163 + ;; 4164 + 4165 + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) 4166 + # PIC is the default for these OSes. 4167 + ;; 4168 + 4169 + mingw* | cygwin* | pw32* | os2* | cegcc*) 4170 + # This hack is so that the source file can tell whether it is being 4171 + # built for inclusion in a dll (and should export symbols for example). 4172 + # Although the cygwin gcc ignores -fPIC, still need this for old-style 4173 + # (--disable-auto-import) libraries 4174 + m4_if([$1], [GCJ], [], 4175 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 4176 + ;; 4177 + 4178 + darwin* | rhapsody*) 4179 + # PIC is the default on this platform 4180 + # Common symbols not allowed in MH_DYLIB files 4181 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' 4182 + ;; 4183 + 4184 + haiku*) 4185 + # PIC is the default for Haiku. 4186 + # The "-static" flag exists, but is broken. 4187 + _LT_TAGVAR(lt_prog_compiler_static, $1)= 4188 + ;; 4189 + 4190 + hpux*) 4191 + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit 4192 + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag 4193 + # sets the default TLS model and affects inlining. 4194 + case $host_cpu in 4195 + hppa*64*) 4196 + # +Z the default 4197 + ;; 4198 + *) 4199 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 4200 + ;; 4201 + esac 4202 + ;; 4203 + 4204 + interix[[3-9]]*) 4205 + # Interix 3.x gcc -fpic/-fPIC options generate broken code. 4206 + # Instead, we relocate shared libraries at runtime. 4207 + ;; 4208 + 4209 + msdosdjgpp*) 4210 + # Just because we use GCC doesn't mean we suddenly get shared libraries 4211 + # on systems that don't support them. 4212 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 4213 + enable_shared=no 4214 + ;; 4215 + 4216 + *nto* | *qnx*) 4217 + # QNX uses GNU C++, but need to define -shared option too, otherwise 4218 + # it will coredump. 4219 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' 4220 + ;; 4221 + 4222 + sysv4*MP*) 4223 + if test -d /usr/nec; then 4224 + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic 4225 + fi 4226 + ;; 4227 + 4228 + *) 4229 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 4230 + ;; 4231 + esac 4232 + 4233 + case $cc_basename in 4234 + nvcc*) # Cuda Compiler Driver 2.2 4235 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' 4236 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' 4237 + ;; 4238 + esac 4239 + else 4240 + # PORTME Check for flag to pass linker flags through the system compiler. 4241 + case $host_os in 4242 + aix*) 4243 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4244 + if test "$host_cpu" = ia64; then 4245 + # AIX 5 now supports IA64 processor 4246 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4247 + else 4248 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' 4249 + fi 4250 + ;; 4251 + 4252 + mingw* | cygwin* | pw32* | os2* | cegcc*) 4253 + # This hack is so that the source file can tell whether it is being 4254 + # built for inclusion in a dll (and should export symbols for example). 4255 + m4_if([$1], [GCJ], [], 4256 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 4257 + ;; 4258 + 4259 + hpux9* | hpux10* | hpux11*) 4260 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4261 + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 4262 + # not for PA HP-UX. 4263 + case $host_cpu in 4264 + hppa*64*|ia64*) 4265 + # +Z the default 4266 + ;; 4267 + *) 4268 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 4269 + ;; 4270 + esac 4271 + # Is there a better lt_prog_compiler_static that works with the bundled CC? 4272 + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 4273 + ;; 4274 + 4275 + irix5* | irix6* | nonstopux*) 4276 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4277 + # PIC (with -KPIC) is the default. 4278 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4279 + ;; 4280 + 4281 + linux* | k*bsd*-gnu | kopensolaris*-gnu) 4282 + case $cc_basename in 4283 + # old Intel for x86_64 which still supported -KPIC. 4284 + ecc*) 4285 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4286 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4287 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 4288 + ;; 4289 + # icc used to be incompatible with GCC. 4290 + # ICC 10 doesn't accept -KPIC any more. 4291 + icc* | ifort*) 4292 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4293 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 4294 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 4295 + ;; 4296 + # Lahey Fortran 8.1. 4297 + lf95*) 4298 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4299 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' 4300 + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' 4301 + ;; 4302 + nagfor*) 4303 + # NAG Fortran compiler 4304 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' 4305 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' 4306 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4307 + ;; 4308 + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) 4309 + # Portland Group compilers (*not* the Pentium gcc compiler, 4310 + # which looks to be a dead project) 4311 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4312 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' 4313 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4314 + ;; 4315 + ccc*) 4316 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4317 + # All Alpha code is PIC. 4318 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4319 + ;; 4320 + xl* | bgxl* | bgf* | mpixl*) 4321 + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene 4322 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4323 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' 4324 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' 4325 + ;; 4326 + *) 4327 + case `$CC -V 2>&1 | sed 5q` in 4328 + *Sun\ F* | *Sun*Fortran*) 4329 + # Sun Fortran 8.3 passes all unrecognized flags to the linker 4330 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4331 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4332 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' 4333 + ;; 4334 + *Sun\ C*) 4335 + # Sun C 5.9 4336 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4337 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4338 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4339 + ;; 4340 + esac 4341 + ;; 4342 + esac 4343 + ;; 4344 + 4345 + newsos6) 4346 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4347 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4348 + ;; 4349 + 4350 + *nto* | *qnx*) 4351 + # QNX uses GNU C++, but need to define -shared option too, otherwise 4352 + # it will coredump. 4353 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' 4354 + ;; 4355 + 4356 + osf3* | osf4* | osf5*) 4357 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4358 + # All OSF/1 code is PIC. 4359 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4360 + ;; 4361 + 4362 + rdos*) 4363 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4364 + ;; 4365 + 4366 + solaris*) 4367 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4368 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4369 + case $cc_basename in 4370 + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) 4371 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; 4372 + *) 4373 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; 4374 + esac 4375 + ;; 4376 + 4377 + sunos4*) 4378 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 4379 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' 4380 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4381 + ;; 4382 + 4383 + sysv4 | sysv4.2uw2* | sysv4.3*) 4384 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4385 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4386 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4387 + ;; 4388 + 4389 + sysv4*MP*) 4390 + if test -d /usr/nec ;then 4391 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' 4392 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4393 + fi 4394 + ;; 4395 + 4396 + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) 4397 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4398 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4399 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4400 + ;; 4401 + 4402 + unicos*) 4403 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4404 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 4405 + ;; 4406 + 4407 + uts4*) 4408 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 4409 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4410 + ;; 4411 + 4412 + *) 4413 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 4414 + ;; 4415 + esac 4416 + fi 4417 +]) 4418 +case $host_os in 4419 + # For platforms which do not support PIC, -DPIC is meaningless: 4420 + *djgpp*) 4421 + _LT_TAGVAR(lt_prog_compiler_pic, $1)= 4422 + ;; 4423 + *) 4424 + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" 4425 + ;; 4426 +esac 4427 + 4428 +AC_CACHE_CHECK([for $compiler option to produce PIC], 4429 + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], 4430 + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) 4431 +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) 4432 + 4433 +# 4434 +# Check to make sure the PIC flag actually works. 4435 +# 4436 +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then 4437 + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], 4438 + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], 4439 + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], 4440 + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in 4441 + "" | " "*) ;; 4442 + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; 4443 + esac], 4444 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= 4445 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) 4446 +fi 4447 +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], 4448 + [Additional compiler flags for building library objects]) 4449 + 4450 +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], 4451 + [How to pass a linker flag through the compiler]) 4452 +# 4453 +# Check to make sure the static flag actually works. 4454 +# 4455 +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" 4456 +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], 4457 + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), 4458 + $lt_tmp_static_flag, 4459 + [], 4460 + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) 4461 +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], 4462 + [Compiler flag to prevent dynamic linking]) 4463 +])# _LT_COMPILER_PIC 4464 + 4465 + 4466 +# _LT_LINKER_SHLIBS([TAGNAME]) 4467 +# ---------------------------- 4468 +# See if the linker supports building shared libraries. 4469 +m4_defun([_LT_LINKER_SHLIBS], 4470 +[AC_REQUIRE([LT_PATH_LD])dnl 4471 +AC_REQUIRE([LT_PATH_NM])dnl 4472 +m4_require([_LT_PATH_MANIFEST_TOOL])dnl 4473 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 4474 +m4_require([_LT_DECL_EGREP])dnl 4475 +m4_require([_LT_DECL_SED])dnl 4476 +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl 4477 +m4_require([_LT_TAG_COMPILER])dnl 4478 +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) 4479 +m4_if([$1], [CXX], [ 4480 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 4481 + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 4482 + case $host_os in 4483 + aix[[4-9]]*) 4484 + # If we're using GNU nm, then we don't want the "-C" option. 4485 + # -C means demangle to AIX nm, but means don't demangle with GNU nm 4486 + # Also, AIX nm treats weak defined symbols like other global defined 4487 + # symbols, whereas GNU nm marks them as "W". 4488 + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then 4489 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' 4490 + else 4491 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' 4492 + fi 4493 + ;; 4494 + pw32*) 4495 + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" 4496 + ;; 4497 + cygwin* | mingw* | cegcc*) 4498 + case $cc_basename in 4499 + cl*) ;; 4500 + *) 4501 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' 4502 + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] 4503 + ;; 4504 + esac 4505 + ;; 4506 + *) 4507 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 4508 + ;; 4509 + esac 4510 +], [ 4511 + runpath_var= 4512 + _LT_TAGVAR(allow_undefined_flag, $1)= 4513 + _LT_TAGVAR(always_export_symbols, $1)=no 4514 + _LT_TAGVAR(archive_cmds, $1)= 4515 + _LT_TAGVAR(archive_expsym_cmds, $1)= 4516 + _LT_TAGVAR(compiler_needs_object, $1)=no 4517 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no 4518 + _LT_TAGVAR(export_dynamic_flag_spec, $1)= 4519 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 4520 + _LT_TAGVAR(hardcode_automatic, $1)=no 4521 + _LT_TAGVAR(hardcode_direct, $1)=no 4522 + _LT_TAGVAR(hardcode_direct_absolute, $1)=no 4523 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 4524 + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 4525 + _LT_TAGVAR(hardcode_libdir_separator, $1)= 4526 + _LT_TAGVAR(hardcode_minus_L, $1)=no 4527 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 4528 + _LT_TAGVAR(inherit_rpath, $1)=no 4529 + _LT_TAGVAR(link_all_deplibs, $1)=unknown 4530 + _LT_TAGVAR(module_cmds, $1)= 4531 + _LT_TAGVAR(module_expsym_cmds, $1)= 4532 + _LT_TAGVAR(old_archive_from_new_cmds, $1)= 4533 + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= 4534 + _LT_TAGVAR(thread_safe_flag_spec, $1)= 4535 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 4536 + # include_expsyms should be a list of space-separated symbols to be *always* 4537 + # included in the symbol list 4538 + _LT_TAGVAR(include_expsyms, $1)= 4539 + # exclude_expsyms can be an extended regexp of symbols to exclude 4540 + # it will be wrapped by ` (' and `)$', so one must not match beginning or 4541 + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', 4542 + # as well as any symbol that contains `d'. 4543 + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 4544 + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out 4545 + # platforms (ab)use it in PIC code, but their linkers get confused if 4546 + # the symbol is explicitly referenced. Since portable code cannot 4547 + # rely on this symbol name, it's probably fine to never include it in 4548 + # preloaded symbol tables. 4549 + # Exclude shared library initialization/finalization symbols. 4550 +dnl Note also adjust exclude_expsyms for C++ above. 4551 + extract_expsyms_cmds= 4552 + 4553 + case $host_os in 4554 + cygwin* | mingw* | pw32* | cegcc*) 4555 + # FIXME: the MSVC++ port hasn't been tested in a loooong time 4556 + # When not using gcc, we currently assume that we are using 4557 + # Microsoft Visual C++. 4558 + if test "$GCC" != yes; then 4559 + with_gnu_ld=no 4560 + fi 4561 + ;; 4562 + interix*) 4563 + # we just hope/assume this is gcc and not c89 (= MSVC++) 4564 + with_gnu_ld=yes 4565 + ;; 4566 + openbsd*) 4567 + with_gnu_ld=no 4568 + ;; 4569 + esac 4570 + 4571 + _LT_TAGVAR(ld_shlibs, $1)=yes 4572 + 4573 + # On some targets, GNU ld is compatible enough with the native linker 4574 + # that we're better off using the native interface for both. 4575 + lt_use_gnu_ld_interface=no 4576 + if test "$with_gnu_ld" = yes; then 4577 + case $host_os in 4578 + aix*) 4579 + # The AIX port of GNU ld has always aspired to compatibility 4580 + # with the native linker. However, as the warning in the GNU ld 4581 + # block says, versions before 2.19.5* couldn't really create working 4582 + # shared libraries, regardless of the interface used. 4583 + case `$LD -v 2>&1` in 4584 + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; 4585 + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; 4586 + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; 4587 + *) 4588 + lt_use_gnu_ld_interface=yes 4589 + ;; 4590 + esac 4591 + ;; 4592 + *) 4593 + lt_use_gnu_ld_interface=yes 4594 + ;; 4595 + esac 4596 + fi 4597 + 4598 + if test "$lt_use_gnu_ld_interface" = yes; then 4599 + # If archive_cmds runs LD, not CC, wlarc should be empty 4600 + wlarc='${wl}' 4601 + 4602 + # Set some defaults for GNU ld with shared library support. These 4603 + # are reset later if shared libraries are not supported. Putting them 4604 + # here allows them to be overridden if necessary. 4605 + runpath_var=LD_RUN_PATH 4606 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 4607 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 4608 + # ancient GNU ld didn't support --whole-archive et. al. 4609 + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then 4610 + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 4611 + else 4612 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 4613 + fi 4614 + supports_anon_versioning=no 4615 + case `$LD -v 2>&1` in 4616 + *GNU\ gold*) supports_anon_versioning=yes ;; 4617 + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 4618 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... 4619 + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... 4620 + *\ 2.11.*) ;; # other 2.11 versions 4621 + *) supports_anon_versioning=yes ;; 4622 + esac 4623 + 4624 + # See if GNU ld supports shared libraries. 4625 + case $host_os in 4626 + aix[[3-9]]*) 4627 + # On AIX/PPC, the GNU linker is very broken 4628 + if test "$host_cpu" != ia64; then 4629 + _LT_TAGVAR(ld_shlibs, $1)=no 4630 + cat <<_LT_EOF 1>&2 4631 + 4632 +*** Warning: the GNU linker, at least up to release 2.19, is reported 4633 +*** to be unable to reliably create shared libraries on AIX. 4634 +*** Therefore, libtool is disabling shared libraries support. If you 4635 +*** really care for shared libraries, you may want to install binutils 4636 +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. 4637 +*** You will then need to restart the configuration process. 4638 + 4639 +_LT_EOF 4640 + fi 4641 + ;; 4642 + 4643 + amigaos*) 4644 + case $host_cpu in 4645 + powerpc) 4646 + # see comment about AmigaOS4 .so support 4647 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4648 + _LT_TAGVAR(archive_expsym_cmds, $1)='' 4649 + ;; 4650 + m68k) 4651 + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' 4652 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4653 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4654 + ;; 4655 + esac 4656 + ;; 4657 + 4658 + beos*) 4659 + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 4660 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 4661 + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc 4662 + # support --undefined. This deserves some investigation. FIXME 4663 + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4664 + else 4665 + _LT_TAGVAR(ld_shlibs, $1)=no 4666 + fi 4667 + ;; 4668 + 4669 + cygwin* | mingw* | pw32* | cegcc*) 4670 + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 4671 + # as there is no search path for DLLs. 4672 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4673 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' 4674 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 4675 + _LT_TAGVAR(always_export_symbols, $1)=no 4676 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 4677 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' 4678 + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] 4679 + 4680 + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then 4681 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' 4682 + # If the export-symbols file already is a .def file (1st line 4683 + # is EXPORTS), use it as is; otherwise, prepend... 4684 + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then 4685 + cp $export_symbols $output_objdir/$soname.def; 4686 + else 4687 + echo EXPORTS > $output_objdir/$soname.def; 4688 + cat $export_symbols >> $output_objdir/$soname.def; 4689 + fi~ 4690 + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' 4691 + else 4692 + _LT_TAGVAR(ld_shlibs, $1)=no 4693 + fi 4694 + ;; 4695 + 4696 + haiku*) 4697 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4698 + _LT_TAGVAR(link_all_deplibs, $1)=yes 4699 + ;; 4700 + 4701 + interix[[3-9]]*) 4702 + _LT_TAGVAR(hardcode_direct, $1)=no 4703 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 4704 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 4705 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 4706 + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. 4707 + # Instead, shared libraries are loaded at an image base (0x10000000 by 4708 + # default) and relocated if they conflict, which is a slow very memory 4709 + # consuming and fragmenting process. To avoid this, we pick a random, 4710 + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link 4711 + # time. Moving up from 0x10000000 also allows more sbrk(2) space. 4712 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' 4713 + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' 4714 + ;; 4715 + 4716 + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) 4717 + tmp_diet=no 4718 + if test "$host_os" = linux-dietlibc; then 4719 + case $cc_basename in 4720 + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) 4721 + esac 4722 + fi 4723 + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ 4724 + && test "$tmp_diet" = no 4725 + then 4726 + tmp_addflag=' $pic_flag' 4727 + tmp_sharedflag='-shared' 4728 + case $cc_basename,$host_cpu in 4729 + pgcc*) # Portland Group C compiler 4730 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' 4731 + tmp_addflag=' $pic_flag' 4732 + ;; 4733 + pgf77* | pgf90* | pgf95* | pgfortran*) 4734 + # Portland Group f77 and f90 compilers 4735 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' 4736 + tmp_addflag=' $pic_flag -Mnomain' ;; 4737 + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 4738 + tmp_addflag=' -i_dynamic' ;; 4739 + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 4740 + tmp_addflag=' -i_dynamic -nofor_main' ;; 4741 + ifc* | ifort*) # Intel Fortran compiler 4742 + tmp_addflag=' -nofor_main' ;; 4743 + lf95*) # Lahey Fortran 8.1 4744 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 4745 + tmp_sharedflag='--shared' ;; 4746 + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) 4747 + tmp_sharedflag='-qmkshrobj' 4748 + tmp_addflag= ;; 4749 + nvcc*) # Cuda Compiler Driver 2.2 4750 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' 4751 + _LT_TAGVAR(compiler_needs_object, $1)=yes 4752 + ;; 4753 + esac 4754 + case `$CC -V 2>&1 | sed 5q` in 4755 + *Sun\ C*) # Sun C 5.9 4756 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' 4757 + _LT_TAGVAR(compiler_needs_object, $1)=yes 4758 + tmp_sharedflag='-G' ;; 4759 + *Sun\ F*) # Sun Fortran 8.3 4760 + tmp_sharedflag='-G' ;; 4761 + esac 4762 + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4763 + 4764 + if test "x$supports_anon_versioning" = xyes; then 4765 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ 4766 + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ 4767 + echo "local: *; };" >> $output_objdir/$libname.ver~ 4768 + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' 4769 + fi 4770 + 4771 + case $cc_basename in 4772 + xlf* | bgf* | bgxlf* | mpixlf*) 4773 + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself 4774 + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' 4775 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 4776 + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' 4777 + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' 4778 + if test "x$supports_anon_versioning" = xyes; then 4779 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ 4780 + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ 4781 + echo "local: *; };" >> $output_objdir/$libname.ver~ 4782 + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' 4783 + fi 4784 + ;; 4785 + esac 4786 + else 4787 + _LT_TAGVAR(ld_shlibs, $1)=no 4788 + fi 4789 + ;; 4790 + 4791 + netbsd*) 4792 + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then 4793 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' 4794 + wlarc= 4795 + else 4796 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4797 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 4798 + fi 4799 + ;; 4800 + 4801 + solaris*) 4802 + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then 4803 + _LT_TAGVAR(ld_shlibs, $1)=no 4804 + cat <<_LT_EOF 1>&2 4805 + 4806 +*** Warning: The releases 2.8.* of the GNU linker cannot reliably 4807 +*** create shared libraries on Solaris systems. Therefore, libtool 4808 +*** is disabling shared libraries support. We urge you to upgrade GNU 4809 +*** binutils to release 2.9.1 or newer. Another option is to modify 4810 +*** your PATH or compiler configuration so that the native linker is 4811 +*** used, and then restart. 4812 + 4813 +_LT_EOF 4814 + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 4815 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4816 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 4817 + else 4818 + _LT_TAGVAR(ld_shlibs, $1)=no 4819 + fi 4820 + ;; 4821 + 4822 + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) 4823 + case `$LD -v 2>&1` in 4824 + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) 4825 + _LT_TAGVAR(ld_shlibs, $1)=no 4826 + cat <<_LT_EOF 1>&2 4827 + 4828 +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not 4829 +*** reliably create shared libraries on SCO systems. Therefore, libtool 4830 +*** is disabling shared libraries support. We urge you to upgrade GNU 4831 +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify 4832 +*** your PATH or compiler configuration so that the native linker is 4833 +*** used, and then restart. 4834 + 4835 +_LT_EOF 4836 + ;; 4837 + *) 4838 + # For security reasons, it is highly recommended that you always 4839 + # use absolute paths for naming shared libraries, and exclude the 4840 + # DT_RUNPATH tag from executables and libraries. But doing so 4841 + # requires that you compile everything twice, which is a pain. 4842 + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 4843 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 4844 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4845 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 4846 + else 4847 + _LT_TAGVAR(ld_shlibs, $1)=no 4848 + fi 4849 + ;; 4850 + esac 4851 + ;; 4852 + 4853 + sunos4*) 4854 + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' 4855 + wlarc= 4856 + _LT_TAGVAR(hardcode_direct, $1)=yes 4857 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 4858 + ;; 4859 + 4860 + *) 4861 + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 4862 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4863 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 4864 + else 4865 + _LT_TAGVAR(ld_shlibs, $1)=no 4866 + fi 4867 + ;; 4868 + esac 4869 + 4870 + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then 4871 + runpath_var= 4872 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 4873 + _LT_TAGVAR(export_dynamic_flag_spec, $1)= 4874 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 4875 + fi 4876 + else 4877 + # PORTME fill in a description of your system's linker (not GNU ld) 4878 + case $host_os in 4879 + aix3*) 4880 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 4881 + _LT_TAGVAR(always_export_symbols, $1)=yes 4882 + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' 4883 + # Note: this linker hardcodes the directories in LIBPATH if there 4884 + # are no directories specified by -L. 4885 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4886 + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then 4887 + # Neither direct hardcoding nor static linking is supported with a 4888 + # broken collect2. 4889 + _LT_TAGVAR(hardcode_direct, $1)=unsupported 4890 + fi 4891 + ;; 4892 + 4893 + aix[[4-9]]*) 4894 + if test "$host_cpu" = ia64; then 4895 + # On IA64, the linker does run time linking by default, so we don't 4896 + # have to do anything special. 4897 + aix_use_runtimelinking=no 4898 + exp_sym_flag='-Bexport' 4899 + no_entry_flag="" 4900 + else 4901 + # If we're using GNU nm, then we don't want the "-C" option. 4902 + # -C means demangle to AIX nm, but means don't demangle with GNU nm 4903 + # Also, AIX nm treats weak defined symbols like other global 4904 + # defined symbols, whereas GNU nm marks them as "W". 4905 + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then 4906 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' 4907 + else 4908 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' 4909 + fi 4910 + aix_use_runtimelinking=no 4911 + 4912 + # Test if we are trying to use run time linking or normal 4913 + # AIX style linking. If -brtl is somewhere in LDFLAGS, we 4914 + # need to do runtime linking. 4915 + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) 4916 + for ld_flag in $LDFLAGS; do 4917 + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then 4918 + aix_use_runtimelinking=yes 4919 + break 4920 + fi 4921 + done 4922 + ;; 4923 + esac 4924 + 4925 + exp_sym_flag='-bexport' 4926 + no_entry_flag='-bnoentry' 4927 + fi 4928 + 4929 + # When large executables or shared objects are built, AIX ld can 4930 + # have problems creating the table of contents. If linking a library 4931 + # or program results in "error TOC overflow" add -mminimal-toc to 4932 + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not 4933 + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. 4934 + 4935 + _LT_TAGVAR(archive_cmds, $1)='' 4936 + _LT_TAGVAR(hardcode_direct, $1)=yes 4937 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 4938 + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' 4939 + _LT_TAGVAR(link_all_deplibs, $1)=yes 4940 + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 4941 + 4942 + if test "$GCC" = yes; then 4943 + case $host_os in aix4.[[012]]|aix4.[[012]].*) 4944 + # We only want to do this on AIX 4.2 and lower, the check 4945 + # below for broken collect2 doesn't work under 4.3+ 4946 + collect2name=`${CC} -print-prog-name=collect2` 4947 + if test -f "$collect2name" && 4948 + strings "$collect2name" | $GREP resolve_lib_name >/dev/null 4949 + then 4950 + # We have reworked collect2 4951 + : 4952 + else 4953 + # We have old collect2 4954 + _LT_TAGVAR(hardcode_direct, $1)=unsupported 4955 + # It fails to find uninstalled libraries when the uninstalled 4956 + # path is not listed in the libpath. Setting hardcode_minus_L 4957 + # to unsupported forces relinking 4958 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4959 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4960 + _LT_TAGVAR(hardcode_libdir_separator, $1)= 4961 + fi 4962 + ;; 4963 + esac 4964 + shared_flag='-shared' 4965 + if test "$aix_use_runtimelinking" = yes; then 4966 + shared_flag="$shared_flag "'${wl}-G' 4967 + fi 4968 + else 4969 + # not using gcc 4970 + if test "$host_cpu" = ia64; then 4971 + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release 4972 + # chokes on -Wl,-G. The following line is correct: 4973 + shared_flag='-G' 4974 + else 4975 + if test "$aix_use_runtimelinking" = yes; then 4976 + shared_flag='${wl}-G' 4977 + else 4978 + shared_flag='${wl}-bM:SRE' 4979 + fi 4980 + fi 4981 + fi 4982 + 4983 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' 4984 + # It seems that -bexpall does not export symbols beginning with 4985 + # underscore (_), so it is better to generate a list of symbols to export. 4986 + _LT_TAGVAR(always_export_symbols, $1)=yes 4987 + if test "$aix_use_runtimelinking" = yes; then 4988 + # Warning - without using the other runtime loading flags (-brtl), 4989 + # -berok will link without error, but may produce a broken library. 4990 + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' 4991 + # Determine the default libpath from the value encoded in an 4992 + # empty executable. 4993 + _LT_SYS_MODULE_PATH_AIX([$1]) 4994 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 4995 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" 4996 + else 4997 + if test "$host_cpu" = ia64; then 4998 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' 4999 + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" 5000 + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" 5001 + else 5002 + # Determine the default libpath from the value encoded in an 5003 + # empty executable. 5004 + _LT_SYS_MODULE_PATH_AIX([$1]) 5005 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 5006 + # Warning - without using the other run time loading flags, 5007 + # -berok will link without error, but may produce a broken library. 5008 + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' 5009 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' 5010 + if test "$with_gnu_ld" = yes; then 5011 + # We only use this code for GNU lds that support --whole-archive. 5012 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' 5013 + else 5014 + # Exported symbols can be pulled into shared objects from archives 5015 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' 5016 + fi 5017 + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes 5018 + # This is similar to how AIX traditionally builds its shared libraries. 5019 + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' 5020 + fi 5021 + fi 5022 + ;; 5023 + 5024 + amigaos*) 5025 + case $host_cpu in 5026 + powerpc) 5027 + # see comment about AmigaOS4 .so support 5028 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5029 + _LT_TAGVAR(archive_expsym_cmds, $1)='' 5030 + ;; 5031 + m68k) 5032 + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' 5033 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5034 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5035 + ;; 5036 + esac 5037 + ;; 5038 + 5039 + bsdi[[45]]*) 5040 + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic 5041 + ;; 5042 + 5043 + cygwin* | mingw* | pw32* | cegcc*) 5044 + # When not using gcc, we currently assume that we are using 5045 + # Microsoft Visual C++. 5046 + # hardcode_libdir_flag_spec is actually meaningless, as there is 5047 + # no search path for DLLs. 5048 + case $cc_basename in 5049 + cl*) 5050 + # Native MSVC 5051 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' 5052 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 5053 + _LT_TAGVAR(always_export_symbols, $1)=yes 5054 + _LT_TAGVAR(file_list_spec, $1)='@' 5055 + # Tell ltmain to make .lib files, not .a files. 5056 + libext=lib 5057 + # Tell ltmain to make .dll files, not .so files. 5058 + shrext_cmds=".dll" 5059 + # FIXME: Setting linknames here is a bad hack. 5060 + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' 5061 + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then 5062 + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; 5063 + else 5064 + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; 5065 + fi~ 5066 + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ 5067 + linknames=' 5068 + # The linker will not automatically build a static lib if we build a DLL. 5069 + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' 5070 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 5071 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' 5072 + # Don't use ranlib 5073 + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' 5074 + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ 5075 + lt_tool_outputfile="@TOOL_OUTPUT@"~ 5076 + case $lt_outputfile in 5077 + *.exe|*.EXE) ;; 5078 + *) 5079 + lt_outputfile="$lt_outputfile.exe" 5080 + lt_tool_outputfile="$lt_tool_outputfile.exe" 5081 + ;; 5082 + esac~ 5083 + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then 5084 + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; 5085 + $RM "$lt_outputfile.manifest"; 5086 + fi' 5087 + ;; 5088 + *) 5089 + # Assume MSVC wrapper 5090 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' 5091 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 5092 + # Tell ltmain to make .lib files, not .a files. 5093 + libext=lib 5094 + # Tell ltmain to make .dll files, not .so files. 5095 + shrext_cmds=".dll" 5096 + # FIXME: Setting linknames here is a bad hack. 5097 + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' 5098 + # The linker will automatically build a .lib file if we build a DLL. 5099 + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' 5100 + # FIXME: Should let the user specify the lib program. 5101 + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' 5102 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 5103 + ;; 5104 + esac 5105 + ;; 5106 + 5107 + darwin* | rhapsody*) 5108 + _LT_DARWIN_LINKER_FEATURES($1) 5109 + ;; 5110 + 5111 + dgux*) 5112 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5113 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5114 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5115 + ;; 5116 + 5117 + freebsd1*) 5118 + _LT_TAGVAR(ld_shlibs, $1)=no 5119 + ;; 5120 + 5121 + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor 5122 + # support. Future versions do this automatically, but an explicit c++rt0.o 5123 + # does not break anything, and helps significantly (at the cost of a little 5124 + # extra space). 5125 + freebsd2.2*) 5126 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' 5127 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 5128 + _LT_TAGVAR(hardcode_direct, $1)=yes 5129 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5130 + ;; 5131 + 5132 + # Unfortunately, older versions of FreeBSD 2 do not have this feature. 5133 + freebsd2*) 5134 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' 5135 + _LT_TAGVAR(hardcode_direct, $1)=yes 5136 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5137 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5138 + ;; 5139 + 5140 + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. 5141 + freebsd* | dragonfly*) 5142 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' 5143 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 5144 + _LT_TAGVAR(hardcode_direct, $1)=yes 5145 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5146 + ;; 5147 + 5148 + hpux9*) 5149 + if test "$GCC" = yes; then 5150 + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' 5151 + else 5152 + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' 5153 + fi 5154 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 5155 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5156 + _LT_TAGVAR(hardcode_direct, $1)=yes 5157 + 5158 + # hardcode_minus_L: Not really in the search PATH, 5159 + # but as the default location of the library. 5160 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5161 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 5162 + ;; 5163 + 5164 + hpux10*) 5165 + if test "$GCC" = yes && test "$with_gnu_ld" = no; then 5166 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 5167 + else 5168 + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' 5169 + fi 5170 + if test "$with_gnu_ld" = no; then 5171 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 5172 + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' 5173 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5174 + _LT_TAGVAR(hardcode_direct, $1)=yes 5175 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 5176 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 5177 + # hardcode_minus_L: Not really in the search PATH, 5178 + # but as the default location of the library. 5179 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5180 + fi 5181 + ;; 5182 + 5183 + hpux11*) 5184 + if test "$GCC" = yes && test "$with_gnu_ld" = no; then 5185 + case $host_cpu in 5186 + hppa*64*) 5187 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 5188 + ;; 5189 + ia64*) 5190 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 5191 + ;; 5192 + *) 5193 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 5194 + ;; 5195 + esac 5196 + else 5197 + case $host_cpu in 5198 + hppa*64*) 5199 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 5200 + ;; 5201 + ia64*) 5202 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 5203 + ;; 5204 + *) 5205 + m4_if($1, [], [ 5206 + # Older versions of the 11.00 compiler do not understand -b yet 5207 + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) 5208 + _LT_LINKER_OPTION([if $CC understands -b], 5209 + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], 5210 + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], 5211 + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], 5212 + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) 5213 + ;; 5214 + esac 5215 + fi 5216 + if test "$with_gnu_ld" = no; then 5217 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 5218 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5219 + 5220 + case $host_cpu in 5221 + hppa*64*|ia64*) 5222 + _LT_TAGVAR(hardcode_direct, $1)=no 5223 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5224 + ;; 5225 + *) 5226 + _LT_TAGVAR(hardcode_direct, $1)=yes 5227 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 5228 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 5229 + 5230 + # hardcode_minus_L: Not really in the search PATH, 5231 + # but as the default location of the library. 5232 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5233 + ;; 5234 + esac 5235 + fi 5236 + ;; 5237 + 5238 + irix5* | irix6* | nonstopux*) 5239 + if test "$GCC" = yes; then 5240 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 5241 + # Try to use the -exported_symbol ld option, if it does not 5242 + # work, assume that -exports_file does not work either and 5243 + # implicitly export all symbols. 5244 + # This should be the same for all languages, so no per-tag cache variable. 5245 + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], 5246 + [lt_cv_irix_exported_symbol], 5247 + [save_LDFLAGS="$LDFLAGS" 5248 + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" 5249 + AC_LINK_IFELSE( 5250 + [AC_LANG_SOURCE( 5251 + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], 5252 + [C++], [[int foo (void) { return 0; }]], 5253 + [Fortran 77], [[ 5254 + subroutine foo 5255 + end]], 5256 + [Fortran], [[ 5257 + subroutine foo 5258 + end]])])], 5259 + [lt_cv_irix_exported_symbol=yes], 5260 + [lt_cv_irix_exported_symbol=no]) 5261 + LDFLAGS="$save_LDFLAGS"]) 5262 + if test "$lt_cv_irix_exported_symbol" = yes; then 5263 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' 5264 + fi 5265 + else 5266 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' 5267 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' 5268 + fi 5269 + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' 5270 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 5271 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5272 + _LT_TAGVAR(inherit_rpath, $1)=yes 5273 + _LT_TAGVAR(link_all_deplibs, $1)=yes 5274 + ;; 5275 + 5276 + netbsd*) 5277 + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then 5278 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out 5279 + else 5280 + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF 5281 + fi 5282 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 5283 + _LT_TAGVAR(hardcode_direct, $1)=yes 5284 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5285 + ;; 5286 + 5287 + newsos6) 5288 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5289 + _LT_TAGVAR(hardcode_direct, $1)=yes 5290 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 5291 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5292 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5293 + ;; 5294 + 5295 + *nto* | *qnx*) 5296 + ;; 5297 + 5298 + openbsd*) 5299 + if test -f /usr/libexec/ld.so; then 5300 + _LT_TAGVAR(hardcode_direct, $1)=yes 5301 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5302 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 5303 + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 5304 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' 5305 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' 5306 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 5307 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 5308 + else 5309 + case $host_os in 5310 + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) 5311 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' 5312 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 5313 + ;; 5314 + *) 5315 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' 5316 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 5317 + ;; 5318 + esac 5319 + fi 5320 + else 5321 + _LT_TAGVAR(ld_shlibs, $1)=no 5322 + fi 5323 + ;; 5324 + 5325 + os2*) 5326 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5327 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5328 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 5329 + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' 5330 + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' 5331 + ;; 5332 + 5333 + osf3*) 5334 + if test "$GCC" = yes; then 5335 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 5336 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 5337 + else 5338 + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 5339 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' 5340 + fi 5341 + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' 5342 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 5343 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5344 + ;; 5345 + 5346 + osf4* | osf5*) # as osf3* with the addition of -msym flag 5347 + if test "$GCC" = yes; then 5348 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 5349 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 5350 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 5351 + else 5352 + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 5353 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' 5354 + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ 5355 + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' 5356 + 5357 + # Both c and cxx compiler support -rpath directly 5358 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 5359 + fi 5360 + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' 5361 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5362 + ;; 5363 + 5364 + solaris*) 5365 + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' 5366 + if test "$GCC" = yes; then 5367 + wlarc='${wl}' 5368 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 5369 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 5370 + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' 5371 + else 5372 + case `$CC -V 2>&1` in 5373 + *"Compilers 5.0"*) 5374 + wlarc='' 5375 + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' 5376 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 5377 + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' 5378 + ;; 5379 + *) 5380 + wlarc='${wl}' 5381 + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' 5382 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 5383 + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' 5384 + ;; 5385 + esac 5386 + fi 5387 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 5388 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5389 + case $host_os in 5390 + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; 5391 + *) 5392 + # The compiler driver will combine and reorder linker options, 5393 + # but understands `-z linker_flag'. GCC discards it without `$wl', 5394 + # but is careful enough not to reorder. 5395 + # Supported since Solaris 2.6 (maybe 2.5.1?) 5396 + if test "$GCC" = yes; then 5397 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' 5398 + else 5399 + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' 5400 + fi 5401 + ;; 5402 + esac 5403 + _LT_TAGVAR(link_all_deplibs, $1)=yes 5404 + ;; 5405 + 5406 + sunos4*) 5407 + if test "x$host_vendor" = xsequent; then 5408 + # Use $CC to link under sequent, because it throws in some extra .o 5409 + # files that make .init and .fini sections work. 5410 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' 5411 + else 5412 + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' 5413 + fi 5414 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5415 + _LT_TAGVAR(hardcode_direct, $1)=yes 5416 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5417 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5418 + ;; 5419 + 5420 + sysv4) 5421 + case $host_vendor in 5422 + sni) 5423 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5424 + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? 5425 + ;; 5426 + siemens) 5427 + ## LD is ld it makes a PLAMLIB 5428 + ## CC just makes a GrossModule. 5429 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' 5430 + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' 5431 + _LT_TAGVAR(hardcode_direct, $1)=no 5432 + ;; 5433 + motorola) 5434 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5435 + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie 5436 + ;; 5437 + esac 5438 + runpath_var='LD_RUN_PATH' 5439 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5440 + ;; 5441 + 5442 + sysv4.3*) 5443 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5444 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5445 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' 5446 + ;; 5447 + 5448 + sysv4*MP*) 5449 + if test -d /usr/nec; then 5450 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5451 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5452 + runpath_var=LD_RUN_PATH 5453 + hardcode_runpath_var=yes 5454 + _LT_TAGVAR(ld_shlibs, $1)=yes 5455 + fi 5456 + ;; 5457 + 5458 + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) 5459 + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 5460 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 5461 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5462 + runpath_var='LD_RUN_PATH' 5463 + 5464 + if test "$GCC" = yes; then 5465 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5466 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5467 + else 5468 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5469 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5470 + fi 5471 + ;; 5472 + 5473 + sysv5* | sco3.2v5* | sco5v6*) 5474 + # Note: We can NOT use -z defs as we might desire, because we do not 5475 + # link with -lc, and that would cause any symbols used from libc to 5476 + # always be unresolved, which means just about no library would 5477 + # ever link correctly. If we're not using GNU ld we use -z text 5478 + # though, which does catch some bad symbols but isn't as heavy-handed 5479 + # as -z defs. 5480 + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 5481 + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' 5482 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 5483 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5484 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' 5485 + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' 5486 + _LT_TAGVAR(link_all_deplibs, $1)=yes 5487 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' 5488 + runpath_var='LD_RUN_PATH' 5489 + 5490 + if test "$GCC" = yes; then 5491 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5492 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5493 + else 5494 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5495 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5496 + fi 5497 + ;; 5498 + 5499 + uts4*) 5500 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5501 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5502 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5503 + ;; 5504 + 5505 + *) 5506 + _LT_TAGVAR(ld_shlibs, $1)=no 5507 + ;; 5508 + esac 5509 + 5510 + if test x$host_vendor = xsni; then 5511 + case $host in 5512 + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) 5513 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' 5514 + ;; 5515 + esac 5516 + fi 5517 + fi 5518 +]) 5519 +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) 5520 +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no 5521 + 5522 +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld 5523 + 5524 +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl 5525 +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl 5526 +_LT_DECL([], [extract_expsyms_cmds], [2], 5527 + [The commands to extract the exported symbol list from a shared archive]) 5528 + 5529 +# 5530 +# Do we need to explicitly link libc? 5531 +# 5532 +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in 5533 +x|xyes) 5534 + # Assume -lc should be added 5535 + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes 5536 + 5537 + if test "$enable_shared" = yes && test "$GCC" = yes; then 5538 + case $_LT_TAGVAR(archive_cmds, $1) in 5539 + *'~'*) 5540 + # FIXME: we may have to deal with multi-command sequences. 5541 + ;; 5542 + '$CC '*) 5543 + # Test whether the compiler implicitly links with -lc since on some 5544 + # systems, -lgcc has to come before -lc. If gcc already passes -lc 5545 + # to ld, don't add -lc before -lgcc. 5546 + AC_CACHE_CHECK([whether -lc should be explicitly linked in], 5547 + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), 5548 + [$RM conftest* 5549 + echo "$lt_simple_compile_test_code" > conftest.$ac_ext 5550 + 5551 + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then 5552 + soname=conftest 5553 + lib=conftest 5554 + libobjs=conftest.$ac_objext 5555 + deplibs= 5556 + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) 5557 + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) 5558 + compiler_flags=-v 5559 + linker_flags=-v 5560 + verstring= 5561 + output_objdir=. 5562 + libname=conftest 5563 + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) 5564 + _LT_TAGVAR(allow_undefined_flag, $1)= 5565 + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 5566 + then 5567 + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no 5568 + else 5569 + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes 5570 + fi 5571 + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag 5572 + else 5573 + cat conftest.err 1>&5 5574 + fi 5575 + $RM conftest* 5576 + ]) 5577 + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) 5578 + ;; 5579 + esac 5580 + fi 5581 + ;; 5582 +esac 5583 + 5584 +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], 5585 + [Whether or not to add -lc for building shared libraries]) 5586 +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], 5587 + [enable_shared_with_static_runtimes], [0], 5588 + [Whether or not to disallow shared libs when runtime libs are static]) 5589 +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], 5590 + [Compiler flag to allow reflexive dlopens]) 5591 +_LT_TAGDECL([], [whole_archive_flag_spec], [1], 5592 + [Compiler flag to generate shared objects directly from archives]) 5593 +_LT_TAGDECL([], [compiler_needs_object], [1], 5594 + [Whether the compiler copes with passing no objects directly]) 5595 +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], 5596 + [Create an old-style archive from a shared archive]) 5597 +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], 5598 + [Create a temporary old-style archive to link instead of a shared archive]) 5599 +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) 5600 +_LT_TAGDECL([], [archive_expsym_cmds], [2]) 5601 +_LT_TAGDECL([], [module_cmds], [2], 5602 + [Commands used to build a loadable module if different from building 5603 + a shared archive.]) 5604 +_LT_TAGDECL([], [module_expsym_cmds], [2]) 5605 +_LT_TAGDECL([], [with_gnu_ld], [1], 5606 + [Whether we are building with GNU ld or not]) 5607 +_LT_TAGDECL([], [allow_undefined_flag], [1], 5608 + [Flag that allows shared libraries with undefined symbols to be built]) 5609 +_LT_TAGDECL([], [no_undefined_flag], [1], 5610 + [Flag that enforces no undefined symbols]) 5611 +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], 5612 + [Flag to hardcode $libdir into a binary during linking. 5613 + This must work even if $libdir does not exist]) 5614 +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], 5615 + [[If ld is used when linking, flag to hardcode $libdir into a binary 5616 + during linking. This must work even if $libdir does not exist]]) 5617 +_LT_TAGDECL([], [hardcode_libdir_separator], [1], 5618 + [Whether we need a single "-rpath" flag with a separated argument]) 5619 +_LT_TAGDECL([], [hardcode_direct], [0], 5620 + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes 5621 + DIR into the resulting binary]) 5622 +_LT_TAGDECL([], [hardcode_direct_absolute], [0], 5623 + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes 5624 + DIR into the resulting binary and the resulting library dependency is 5625 + "absolute", i.e impossible to change by setting ${shlibpath_var} if the 5626 + library is relocated]) 5627 +_LT_TAGDECL([], [hardcode_minus_L], [0], 5628 + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR 5629 + into the resulting binary]) 5630 +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], 5631 + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR 5632 + into the resulting binary]) 5633 +_LT_TAGDECL([], [hardcode_automatic], [0], 5634 + [Set to "yes" if building a shared library automatically hardcodes DIR 5635 + into the library and all subsequent libraries and executables linked 5636 + against it]) 5637 +_LT_TAGDECL([], [inherit_rpath], [0], 5638 + [Set to yes if linker adds runtime paths of dependent libraries 5639 + to runtime path list]) 5640 +_LT_TAGDECL([], [link_all_deplibs], [0], 5641 + [Whether libtool must link a program against all its dependency libraries]) 5642 +_LT_TAGDECL([], [always_export_symbols], [0], 5643 + [Set to "yes" if exported symbols are required]) 5644 +_LT_TAGDECL([], [export_symbols_cmds], [2], 5645 + [The commands to list exported symbols]) 5646 +_LT_TAGDECL([], [exclude_expsyms], [1], 5647 + [Symbols that should not be listed in the preloaded symbols]) 5648 +_LT_TAGDECL([], [include_expsyms], [1], 5649 + [Symbols that must always be exported]) 5650 +_LT_TAGDECL([], [prelink_cmds], [2], 5651 + [Commands necessary for linking programs (against libraries) with templates]) 5652 +_LT_TAGDECL([], [postlink_cmds], [2], 5653 + [Commands necessary for finishing linking programs]) 5654 +_LT_TAGDECL([], [file_list_spec], [1], 5655 + [Specify filename containing input files]) 5656 +dnl FIXME: Not yet implemented 5657 +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], 5658 +dnl [Compiler flag to generate thread safe objects]) 5659 +])# _LT_LINKER_SHLIBS 5660 + 5661 + 5662 +# _LT_LANG_C_CONFIG([TAG]) 5663 +# ------------------------ 5664 +# Ensure that the configuration variables for a C compiler are suitably 5665 +# defined. These variables are subsequently used by _LT_CONFIG to write 5666 +# the compiler configuration to `libtool'. 5667 +m4_defun([_LT_LANG_C_CONFIG], 5668 +[m4_require([_LT_DECL_EGREP])dnl 5669 +lt_save_CC="$CC" 5670 +AC_LANG_PUSH(C) 5671 + 5672 +# Source file extension for C test sources. 5673 +ac_ext=c 5674 + 5675 +# Object file extension for compiled C test sources. 5676 +objext=o 5677 +_LT_TAGVAR(objext, $1)=$objext 5678 + 5679 +# Code to be used in simple compile tests 5680 +lt_simple_compile_test_code="int some_variable = 0;" 5681 + 5682 +# Code to be used in simple link tests 5683 +lt_simple_link_test_code='int main(){return(0);}' 5684 + 5685 +_LT_TAG_COMPILER 5686 +# Save the default compiler, since it gets overwritten when the other 5687 +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. 5688 +compiler_DEFAULT=$CC 5689 + 5690 +# save warnings/boilerplate of simple test code 5691 +_LT_COMPILER_BOILERPLATE 5692 +_LT_LINKER_BOILERPLATE 5693 + 5694 +## CAVEAT EMPTOR: 5695 +## There is no encapsulation within the following macros, do not change 5696 +## the running order or otherwise move them around unless you know exactly 5697 +## what you are doing... 5698 +if test -n "$compiler"; then 5699 + _LT_COMPILER_NO_RTTI($1) 5700 + _LT_COMPILER_PIC($1) 5701 + _LT_COMPILER_C_O($1) 5702 + _LT_COMPILER_FILE_LOCKS($1) 5703 + _LT_LINKER_SHLIBS($1) 5704 + _LT_SYS_DYNAMIC_LINKER($1) 5705 + _LT_LINKER_HARDCODE_LIBPATH($1) 5706 + LT_SYS_DLOPEN_SELF 5707 + _LT_CMD_STRIPLIB 5708 + 5709 + # Report which library types will actually be built 5710 + AC_MSG_CHECKING([if libtool supports shared libraries]) 5711 + AC_MSG_RESULT([$can_build_shared]) 5712 + 5713 + AC_MSG_CHECKING([whether to build shared libraries]) 5714 + test "$can_build_shared" = "no" && enable_shared=no 5715 + 5716 + # On AIX, shared libraries and static libraries use the same namespace, and 5717 + # are all built from PIC. 5718 + case $host_os in 5719 + aix3*) 5720 + test "$enable_shared" = yes && enable_static=no 5721 + if test -n "$RANLIB"; then 5722 + archive_cmds="$archive_cmds~\$RANLIB \$lib" 5723 + postinstall_cmds='$RANLIB $lib' 5724 + fi 5725 + ;; 5726 + 5727 + aix[[4-9]]*) 5728 + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then 5729 + test "$enable_shared" = yes && enable_static=no 5730 + fi 5731 + ;; 5732 + esac 5733 + AC_MSG_RESULT([$enable_shared]) 5734 + 5735 + AC_MSG_CHECKING([whether to build static libraries]) 5736 + # Make sure either enable_shared or enable_static is yes. 5737 + test "$enable_shared" = yes || enable_static=yes 5738 + AC_MSG_RESULT([$enable_static]) 5739 + 5740 + _LT_CONFIG($1) 5741 +fi 5742 +AC_LANG_POP 5743 +CC="$lt_save_CC" 5744 +])# _LT_LANG_C_CONFIG 5745 + 5746 + 5747 +# _LT_LANG_CXX_CONFIG([TAG]) 5748 +# -------------------------- 5749 +# Ensure that the configuration variables for a C++ compiler are suitably 5750 +# defined. These variables are subsequently used by _LT_CONFIG to write 5751 +# the compiler configuration to `libtool'. 5752 +m4_defun([_LT_LANG_CXX_CONFIG], 5753 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 5754 +m4_require([_LT_DECL_EGREP])dnl 5755 +m4_require([_LT_PATH_MANIFEST_TOOL])dnl 5756 +if test -n "$CXX" && ( test "X$CXX" != "Xno" && 5757 + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || 5758 + (test "X$CXX" != "Xg++"))) ; then 5759 + AC_PROG_CXXCPP 5760 +else 5761 + _lt_caught_CXX_error=yes 5762 +fi 5763 + 5764 +AC_LANG_PUSH(C++) 5765 +_LT_TAGVAR(archive_cmds_need_lc, $1)=no 5766 +_LT_TAGVAR(allow_undefined_flag, $1)= 5767 +_LT_TAGVAR(always_export_symbols, $1)=no 5768 +_LT_TAGVAR(archive_expsym_cmds, $1)= 5769 +_LT_TAGVAR(compiler_needs_object, $1)=no 5770 +_LT_TAGVAR(export_dynamic_flag_spec, $1)= 5771 +_LT_TAGVAR(hardcode_direct, $1)=no 5772 +_LT_TAGVAR(hardcode_direct_absolute, $1)=no 5773 +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 5774 +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 5775 +_LT_TAGVAR(hardcode_libdir_separator, $1)= 5776 +_LT_TAGVAR(hardcode_minus_L, $1)=no 5777 +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 5778 +_LT_TAGVAR(hardcode_automatic, $1)=no 5779 +_LT_TAGVAR(inherit_rpath, $1)=no 5780 +_LT_TAGVAR(module_cmds, $1)= 5781 +_LT_TAGVAR(module_expsym_cmds, $1)= 5782 +_LT_TAGVAR(link_all_deplibs, $1)=unknown 5783 +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 5784 +_LT_TAGVAR(reload_flag, $1)=$reload_flag 5785 +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds 5786 +_LT_TAGVAR(no_undefined_flag, $1)= 5787 +_LT_TAGVAR(whole_archive_flag_spec, $1)= 5788 +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no 5789 + 5790 +# Source file extension for C++ test sources. 5791 +ac_ext=cpp 5792 + 5793 +# Object file extension for compiled C++ test sources. 5794 +objext=o 5795 +_LT_TAGVAR(objext, $1)=$objext 5796 + 5797 +# No sense in running all these tests if we already determined that 5798 +# the CXX compiler isn't working. Some variables (like enable_shared) 5799 +# are currently assumed to apply to all compilers on this platform, 5800 +# and will be corrupted by setting them based on a non-working compiler. 5801 +if test "$_lt_caught_CXX_error" != yes; then 5802 + # Code to be used in simple compile tests 5803 + lt_simple_compile_test_code="int some_variable = 0;" 5804 + 5805 + # Code to be used in simple link tests 5806 + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' 5807 + 5808 + # ltmain only uses $CC for tagged configurations so make sure $CC is set. 5809 + _LT_TAG_COMPILER 5810 + 5811 + # save warnings/boilerplate of simple test code 5812 + _LT_COMPILER_BOILERPLATE 5813 + _LT_LINKER_BOILERPLATE 5814 + 5815 + # Allow CC to be a program name with arguments. 5816 + lt_save_CC=$CC 5817 + lt_save_CFLAGS=$CFLAGS 5818 + lt_save_LD=$LD 5819 + lt_save_GCC=$GCC 5820 + GCC=$GXX 5821 + lt_save_with_gnu_ld=$with_gnu_ld 5822 + lt_save_path_LD=$lt_cv_path_LD 5823 + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then 5824 + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx 5825 + else 5826 + $as_unset lt_cv_prog_gnu_ld 5827 + fi 5828 + if test -n "${lt_cv_path_LDCXX+set}"; then 5829 + lt_cv_path_LD=$lt_cv_path_LDCXX 5830 + else 5831 + $as_unset lt_cv_path_LD 5832 + fi 5833 + test -z "${LDCXX+set}" || LD=$LDCXX 5834 + CC=${CXX-"c++"} 5835 + CFLAGS=$CXXFLAGS 5836 + compiler=$CC 5837 + _LT_TAGVAR(compiler, $1)=$CC 5838 + _LT_CC_BASENAME([$compiler]) 5839 + 5840 + if test -n "$compiler"; then 5841 + # We don't want -fno-exception when compiling C++ code, so set the 5842 + # no_builtin_flag separately 5843 + if test "$GXX" = yes; then 5844 + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' 5845 + else 5846 + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= 5847 + fi 5848 + 5849 + if test "$GXX" = yes; then 5850 + # Set up default GNU C++ configuration 5851 + 5852 + LT_PATH_LD 5853 + 5854 + # Check if GNU C++ uses GNU ld as the underlying linker, since the 5855 + # archiving commands below assume that GNU ld is being used. 5856 + if test "$with_gnu_ld" = yes; then 5857 + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 5858 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 5859 + 5860 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 5861 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 5862 + 5863 + # If archive_cmds runs LD, not CC, wlarc should be empty 5864 + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to 5865 + # investigate it a little bit more. (MM) 5866 + wlarc='${wl}' 5867 + 5868 + # ancient GNU ld didn't support --whole-archive et. al. 5869 + if eval "`$CC -print-prog-name=ld` --help 2>&1" | 5870 + $GREP 'no-whole-archive' > /dev/null; then 5871 + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 5872 + else 5873 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 5874 + fi 5875 + else 5876 + with_gnu_ld=no 5877 + wlarc= 5878 + 5879 + # A generic and very simple default shared library creation 5880 + # command for GNU C++ for the case where it uses the native 5881 + # linker, instead of GNU ld. If possible, this setting should 5882 + # overridden to take advantage of the native linker features on 5883 + # the platform it is being used on. 5884 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' 5885 + fi 5886 + 5887 + # Commands to make compiler produce verbose output that lists 5888 + # what "hidden" libraries, object files and flags are used when 5889 + # linking a shared library. 5890 + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' 5891 + 5892 + else 5893 + GXX=no 5894 + with_gnu_ld=no 5895 + wlarc= 5896 + fi 5897 + 5898 + # PORTME: fill in a description of your system's C++ link characteristics 5899 + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) 5900 + _LT_TAGVAR(ld_shlibs, $1)=yes 5901 + case $host_os in 5902 + aix3*) 5903 + # FIXME: insert proper C++ library support 5904 + _LT_TAGVAR(ld_shlibs, $1)=no 5905 + ;; 5906 + aix[[4-9]]*) 5907 + if test "$host_cpu" = ia64; then 5908 + # On IA64, the linker does run time linking by default, so we don't 5909 + # have to do anything special. 5910 + aix_use_runtimelinking=no 5911 + exp_sym_flag='-Bexport' 5912 + no_entry_flag="" 5913 + else 5914 + aix_use_runtimelinking=no 5915 + 5916 + # Test if we are trying to use run time linking or normal 5917 + # AIX style linking. If -brtl is somewhere in LDFLAGS, we 5918 + # need to do runtime linking. 5919 + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) 5920 + for ld_flag in $LDFLAGS; do 5921 + case $ld_flag in 5922 + *-brtl*) 5923 + aix_use_runtimelinking=yes 5924 + break 5925 + ;; 5926 + esac 5927 + done 5928 + ;; 5929 + esac 5930 + 5931 + exp_sym_flag='-bexport' 5932 + no_entry_flag='-bnoentry' 5933 + fi 5934 + 5935 + # When large executables or shared objects are built, AIX ld can 5936 + # have problems creating the table of contents. If linking a library 5937 + # or program results in "error TOC overflow" add -mminimal-toc to 5938 + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not 5939 + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. 5940 + 5941 + _LT_TAGVAR(archive_cmds, $1)='' 5942 + _LT_TAGVAR(hardcode_direct, $1)=yes 5943 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 5944 + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' 5945 + _LT_TAGVAR(link_all_deplibs, $1)=yes 5946 + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 5947 + 5948 + if test "$GXX" = yes; then 5949 + case $host_os in aix4.[[012]]|aix4.[[012]].*) 5950 + # We only want to do this on AIX 4.2 and lower, the check 5951 + # below for broken collect2 doesn't work under 4.3+ 5952 + collect2name=`${CC} -print-prog-name=collect2` 5953 + if test -f "$collect2name" && 5954 + strings "$collect2name" | $GREP resolve_lib_name >/dev/null 5955 + then 5956 + # We have reworked collect2 5957 + : 5958 + else 5959 + # We have old collect2 5960 + _LT_TAGVAR(hardcode_direct, $1)=unsupported 5961 + # It fails to find uninstalled libraries when the uninstalled 5962 + # path is not listed in the libpath. Setting hardcode_minus_L 5963 + # to unsupported forces relinking 5964 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5965 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5966 + _LT_TAGVAR(hardcode_libdir_separator, $1)= 5967 + fi 5968 + esac 5969 + shared_flag='-shared' 5970 + if test "$aix_use_runtimelinking" = yes; then 5971 + shared_flag="$shared_flag "'${wl}-G' 5972 + fi 5973 + else 5974 + # not using gcc 5975 + if test "$host_cpu" = ia64; then 5976 + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release 5977 + # chokes on -Wl,-G. The following line is correct: 5978 + shared_flag='-G' 5979 + else 5980 + if test "$aix_use_runtimelinking" = yes; then 5981 + shared_flag='${wl}-G' 5982 + else 5983 + shared_flag='${wl}-bM:SRE' 5984 + fi 5985 + fi 5986 + fi 5987 + 5988 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' 5989 + # It seems that -bexpall does not export symbols beginning with 5990 + # underscore (_), so it is better to generate a list of symbols to 5991 + # export. 5992 + _LT_TAGVAR(always_export_symbols, $1)=yes 5993 + if test "$aix_use_runtimelinking" = yes; then 5994 + # Warning - without using the other runtime loading flags (-brtl), 5995 + # -berok will link without error, but may produce a broken library. 5996 + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' 5997 + # Determine the default libpath from the value encoded in an empty 5998 + # executable. 5999 + _LT_SYS_MODULE_PATH_AIX([$1]) 6000 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 6001 + 6002 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" 6003 + else 6004 + if test "$host_cpu" = ia64; then 6005 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' 6006 + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" 6007 + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" 6008 + else 6009 + # Determine the default libpath from the value encoded in an 6010 + # empty executable. 6011 + _LT_SYS_MODULE_PATH_AIX([$1]) 6012 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 6013 + # Warning - without using the other run time loading flags, 6014 + # -berok will link without error, but may produce a broken library. 6015 + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' 6016 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' 6017 + if test "$with_gnu_ld" = yes; then 6018 + # We only use this code for GNU lds that support --whole-archive. 6019 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' 6020 + else 6021 + # Exported symbols can be pulled into shared objects from archives 6022 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' 6023 + fi 6024 + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes 6025 + # This is similar to how AIX traditionally builds its shared 6026 + # libraries. 6027 + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' 6028 + fi 6029 + fi 6030 + ;; 6031 + 6032 + beos*) 6033 + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 6034 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 6035 + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc 6036 + # support --undefined. This deserves some investigation. FIXME 6037 + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 6038 + else 6039 + _LT_TAGVAR(ld_shlibs, $1)=no 6040 + fi 6041 + ;; 6042 + 6043 + chorus*) 6044 + case $cc_basename in 6045 + *) 6046 + # FIXME: insert proper C++ library support 6047 + _LT_TAGVAR(ld_shlibs, $1)=no 6048 + ;; 6049 + esac 6050 + ;; 6051 + 6052 + cygwin* | mingw* | pw32* | cegcc*) 6053 + case $GXX,$cc_basename in 6054 + ,cl* | no,cl*) 6055 + # Native MSVC 6056 + # hardcode_libdir_flag_spec is actually meaningless, as there is 6057 + # no search path for DLLs. 6058 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' 6059 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 6060 + _LT_TAGVAR(always_export_symbols, $1)=yes 6061 + _LT_TAGVAR(file_list_spec, $1)='@' 6062 + # Tell ltmain to make .lib files, not .a files. 6063 + libext=lib 6064 + # Tell ltmain to make .dll files, not .so files. 6065 + shrext_cmds=".dll" 6066 + # FIXME: Setting linknames here is a bad hack. 6067 + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' 6068 + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then 6069 + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; 6070 + else 6071 + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; 6072 + fi~ 6073 + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ 6074 + linknames=' 6075 + # The linker will not automatically build a static lib if we build a DLL. 6076 + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' 6077 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 6078 + # Don't use ranlib 6079 + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' 6080 + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ 6081 + lt_tool_outputfile="@TOOL_OUTPUT@"~ 6082 + case $lt_outputfile in 6083 + *.exe|*.EXE) ;; 6084 + *) 6085 + lt_outputfile="$lt_outputfile.exe" 6086 + lt_tool_outputfile="$lt_tool_outputfile.exe" 6087 + ;; 6088 + esac~ 6089 + func_to_tool_file "$lt_outputfile"~ 6090 + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then 6091 + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; 6092 + $RM "$lt_outputfile.manifest"; 6093 + fi' 6094 + ;; 6095 + *) 6096 + # g++ 6097 + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 6098 + # as there is no search path for DLLs. 6099 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 6100 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' 6101 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 6102 + _LT_TAGVAR(always_export_symbols, $1)=no 6103 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 6104 + 6105 + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then 6106 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' 6107 + # If the export-symbols file already is a .def file (1st line 6108 + # is EXPORTS), use it as is; otherwise, prepend... 6109 + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then 6110 + cp $export_symbols $output_objdir/$soname.def; 6111 + else 6112 + echo EXPORTS > $output_objdir/$soname.def; 6113 + cat $export_symbols >> $output_objdir/$soname.def; 6114 + fi~ 6115 + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' 6116 + else 6117 + _LT_TAGVAR(ld_shlibs, $1)=no 6118 + fi 6119 + ;; 6120 + esac 6121 + ;; 6122 + darwin* | rhapsody*) 6123 + _LT_DARWIN_LINKER_FEATURES($1) 6124 + ;; 6125 + 6126 + dgux*) 6127 + case $cc_basename in 6128 + ec++*) 6129 + # FIXME: insert proper C++ library support 6130 + _LT_TAGVAR(ld_shlibs, $1)=no 6131 + ;; 6132 + ghcx*) 6133 + # Green Hills C++ Compiler 6134 + # FIXME: insert proper C++ library support 6135 + _LT_TAGVAR(ld_shlibs, $1)=no 6136 + ;; 6137 + *) 6138 + # FIXME: insert proper C++ library support 6139 + _LT_TAGVAR(ld_shlibs, $1)=no 6140 + ;; 6141 + esac 6142 + ;; 6143 + 6144 + freebsd[[12]]*) 6145 + # C++ shared libraries reported to be fairly broken before 6146 + # switch to ELF 6147 + _LT_TAGVAR(ld_shlibs, $1)=no 6148 + ;; 6149 + 6150 + freebsd-elf*) 6151 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 6152 + ;; 6153 + 6154 + freebsd* | dragonfly*) 6155 + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF 6156 + # conventions 6157 + _LT_TAGVAR(ld_shlibs, $1)=yes 6158 + ;; 6159 + 6160 + gnu*) 6161 + ;; 6162 + 6163 + haiku*) 6164 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 6165 + _LT_TAGVAR(link_all_deplibs, $1)=yes 6166 + ;; 6167 + 6168 + hpux9*) 6169 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 6170 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6171 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6172 + _LT_TAGVAR(hardcode_direct, $1)=yes 6173 + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, 6174 + # but as the default 6175 + # location of the library. 6176 + 6177 + case $cc_basename in 6178 + CC*) 6179 + # FIXME: insert proper C++ library support 6180 + _LT_TAGVAR(ld_shlibs, $1)=no 6181 + ;; 6182 + aCC*) 6183 + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' 6184 + # Commands to make compiler produce verbose output that lists 6185 + # what "hidden" libraries, object files and flags are used when 6186 + # linking a shared library. 6187 + # 6188 + # There doesn't appear to be a way to prevent this compiler from 6189 + # explicitly linking system object files so we need to strip them 6190 + # from the output so that they don't get included in the library 6191 + # dependencies. 6192 + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' 6193 + ;; 6194 + *) 6195 + if test "$GXX" = yes; then 6196 + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' 6197 + else 6198 + # FIXME: insert proper C++ library support 6199 + _LT_TAGVAR(ld_shlibs, $1)=no 6200 + fi 6201 + ;; 6202 + esac 6203 + ;; 6204 + 6205 + hpux10*|hpux11*) 6206 + if test $with_gnu_ld = no; then 6207 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 6208 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6209 + 6210 + case $host_cpu in 6211 + hppa*64*|ia64*) 6212 + ;; 6213 + *) 6214 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6215 + ;; 6216 + esac 6217 + fi 6218 + case $host_cpu in 6219 + hppa*64*|ia64*) 6220 + _LT_TAGVAR(hardcode_direct, $1)=no 6221 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6222 + ;; 6223 + *) 6224 + _LT_TAGVAR(hardcode_direct, $1)=yes 6225 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 6226 + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, 6227 + # but as the default 6228 + # location of the library. 6229 + ;; 6230 + esac 6231 + 6232 + case $cc_basename in 6233 + CC*) 6234 + # FIXME: insert proper C++ library support 6235 + _LT_TAGVAR(ld_shlibs, $1)=no 6236 + ;; 6237 + aCC*) 6238 + case $host_cpu in 6239 + hppa*64*) 6240 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6241 + ;; 6242 + ia64*) 6243 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6244 + ;; 6245 + *) 6246 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6247 + ;; 6248 + esac 6249 + # Commands to make compiler produce verbose output that lists 6250 + # what "hidden" libraries, object files and flags are used when 6251 + # linking a shared library. 6252 + # 6253 + # There doesn't appear to be a way to prevent this compiler from 6254 + # explicitly linking system object files so we need to strip them 6255 + # from the output so that they don't get included in the library 6256 + # dependencies. 6257 + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' 6258 + ;; 6259 + *) 6260 + if test "$GXX" = yes; then 6261 + if test $with_gnu_ld = no; then 6262 + case $host_cpu in 6263 + hppa*64*) 6264 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6265 + ;; 6266 + ia64*) 6267 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6268 + ;; 6269 + *) 6270 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6271 + ;; 6272 + esac 6273 + fi 6274 + else 6275 + # FIXME: insert proper C++ library support 6276 + _LT_TAGVAR(ld_shlibs, $1)=no 6277 + fi 6278 + ;; 6279 + esac 6280 + ;; 6281 + 6282 + interix[[3-9]]*) 6283 + _LT_TAGVAR(hardcode_direct, $1)=no 6284 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6285 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6286 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6287 + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. 6288 + # Instead, shared libraries are loaded at an image base (0x10000000 by 6289 + # default) and relocated if they conflict, which is a slow very memory 6290 + # consuming and fragmenting process. To avoid this, we pick a random, 6291 + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link 6292 + # time. Moving up from 0x10000000 also allows more sbrk(2) space. 6293 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' 6294 + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' 6295 + ;; 6296 + irix5* | irix6*) 6297 + case $cc_basename in 6298 + CC*) 6299 + # SGI C++ 6300 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' 6301 + 6302 + # Archives containing C++ object files must be created using 6303 + # "CC -ar", where "CC" is the IRIX C++ compiler. This is 6304 + # necessary to make sure instantiated templates are included 6305 + # in the archive. 6306 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' 6307 + ;; 6308 + *) 6309 + if test "$GXX" = yes; then 6310 + if test "$with_gnu_ld" = no; then 6311 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 6312 + else 6313 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' 6314 + fi 6315 + fi 6316 + _LT_TAGVAR(link_all_deplibs, $1)=yes 6317 + ;; 6318 + esac 6319 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6320 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6321 + _LT_TAGVAR(inherit_rpath, $1)=yes 6322 + ;; 6323 + 6324 + linux* | k*bsd*-gnu | kopensolaris*-gnu) 6325 + case $cc_basename in 6326 + KCC*) 6327 + # Kuck and Associates, Inc. (KAI) C++ Compiler 6328 + 6329 + # KCC will only create a shared library if the output file 6330 + # ends with ".so" (or ".sl" for HP-UX), so rename the library 6331 + # to its proper name (with version) after linking. 6332 + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' 6333 + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' 6334 + # Commands to make compiler produce verbose output that lists 6335 + # what "hidden" libraries, object files and flags are used when 6336 + # linking a shared library. 6337 + # 6338 + # There doesn't appear to be a way to prevent this compiler from 6339 + # explicitly linking system object files so we need to strip them 6340 + # from the output so that they don't get included in the library 6341 + # dependencies. 6342 + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' 6343 + 6344 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6345 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 6346 + 6347 + # Archives containing C++ object files must be created using 6348 + # "CC -Bstatic", where "CC" is the KAI C++ compiler. 6349 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' 6350 + ;; 6351 + icpc* | ecpc* ) 6352 + # Intel C++ 6353 + with_gnu_ld=yes 6354 + # version 8.0 and above of icpc choke on multiply defined symbols 6355 + # if we add $predep_objects and $postdep_objects, however 7.1 and 6356 + # earlier do not add the objects themselves. 6357 + case `$CC -V 2>&1` in 6358 + *"Version 7."*) 6359 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 6360 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 6361 + ;; 6362 + *) # Version 8.0 or newer 6363 + tmp_idyn= 6364 + case $host_cpu in 6365 + ia64*) tmp_idyn=' -i_dynamic';; 6366 + esac 6367 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 6368 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 6369 + ;; 6370 + esac 6371 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 6372 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6373 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 6374 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' 6375 + ;; 6376 + pgCC* | pgcpp*) 6377 + # Portland Group C++ compiler 6378 + case `$CC -V` in 6379 + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) 6380 + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ 6381 + rm -rf $tpldir~ 6382 + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ 6383 + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' 6384 + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ 6385 + rm -rf $tpldir~ 6386 + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ 6387 + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ 6388 + $RANLIB $oldlib' 6389 + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ 6390 + rm -rf $tpldir~ 6391 + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ 6392 + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' 6393 + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ 6394 + rm -rf $tpldir~ 6395 + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ 6396 + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' 6397 + ;; 6398 + *) # Version 6 and above use weak symbols 6399 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' 6400 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' 6401 + ;; 6402 + esac 6403 + 6404 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' 6405 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 6406 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' 6407 + ;; 6408 + cxx*) 6409 + # Compaq C++ 6410 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 6411 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' 6412 + 6413 + runpath_var=LD_RUN_PATH 6414 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 6415 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6416 + 6417 + # Commands to make compiler produce verbose output that lists 6418 + # what "hidden" libraries, object files and flags are used when 6419 + # linking a shared library. 6420 + # 6421 + # There doesn't appear to be a way to prevent this compiler from 6422 + # explicitly linking system object files so we need to strip them 6423 + # from the output so that they don't get included in the library 6424 + # dependencies. 6425 + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' 6426 + ;; 6427 + xl* | mpixl* | bgxl*) 6428 + # IBM XL 8.0 on PPC, with GNU ld 6429 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6430 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 6431 + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 6432 + if test "x$supports_anon_versioning" = xyes; then 6433 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ 6434 + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ 6435 + echo "local: *; };" >> $output_objdir/$libname.ver~ 6436 + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' 6437 + fi 6438 + ;; 6439 + *) 6440 + case `$CC -V 2>&1 | sed 5q` in 6441 + *Sun\ C*) 6442 + # Sun C++ 5.9 6443 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' 6444 + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6445 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' 6446 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6447 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' 6448 + _LT_TAGVAR(compiler_needs_object, $1)=yes 6449 + 6450 + # Not sure whether something based on 6451 + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 6452 + # would be better. 6453 + output_verbose_link_cmd='func_echo_all' 6454 + 6455 + # Archives containing C++ object files must be created using 6456 + # "CC -xar", where "CC" is the Sun C++ compiler. This is 6457 + # necessary to make sure instantiated templates are included 6458 + # in the archive. 6459 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' 6460 + ;; 6461 + esac 6462 + ;; 6463 + esac 6464 + ;; 6465 + 6466 + lynxos*) 6467 + # FIXME: insert proper C++ library support 6468 + _LT_TAGVAR(ld_shlibs, $1)=no 6469 + ;; 6470 + 6471 + m88k*) 6472 + # FIXME: insert proper C++ library support 6473 + _LT_TAGVAR(ld_shlibs, $1)=no 6474 + ;; 6475 + 6476 + mvs*) 6477 + case $cc_basename in 6478 + cxx*) 6479 + # FIXME: insert proper C++ library support 6480 + _LT_TAGVAR(ld_shlibs, $1)=no 6481 + ;; 6482 + *) 6483 + # FIXME: insert proper C++ library support 6484 + _LT_TAGVAR(ld_shlibs, $1)=no 6485 + ;; 6486 + esac 6487 + ;; 6488 + 6489 + netbsd*) 6490 + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then 6491 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' 6492 + wlarc= 6493 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6494 + _LT_TAGVAR(hardcode_direct, $1)=yes 6495 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6496 + fi 6497 + # Workaround some broken pre-1.5 toolchains 6498 + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' 6499 + ;; 6500 + 6501 + *nto* | *qnx*) 6502 + _LT_TAGVAR(ld_shlibs, $1)=yes 6503 + ;; 6504 + 6505 + openbsd2*) 6506 + # C++ shared libraries are fairly broken 6507 + _LT_TAGVAR(ld_shlibs, $1)=no 6508 + ;; 6509 + 6510 + openbsd*) 6511 + if test -f /usr/libexec/ld.so; then 6512 + _LT_TAGVAR(hardcode_direct, $1)=yes 6513 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6514 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 6515 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' 6516 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6517 + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 6518 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' 6519 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6520 + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 6521 + fi 6522 + output_verbose_link_cmd=func_echo_all 6523 + else 6524 + _LT_TAGVAR(ld_shlibs, $1)=no 6525 + fi 6526 + ;; 6527 + 6528 + osf3* | osf4* | osf5*) 6529 + case $cc_basename in 6530 + KCC*) 6531 + # Kuck and Associates, Inc. (KAI) C++ Compiler 6532 + 6533 + # KCC will only create a shared library if the output file 6534 + # ends with ".so" (or ".sl" for HP-UX), so rename the library 6535 + # to its proper name (with version) after linking. 6536 + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' 6537 + 6538 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6539 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6540 + 6541 + # Archives containing C++ object files must be created using 6542 + # the KAI C++ compiler. 6543 + case $host in 6544 + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; 6545 + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; 6546 + esac 6547 + ;; 6548 + RCC*) 6549 + # Rational C++ 2.4.1 6550 + # FIXME: insert proper C++ library support 6551 + _LT_TAGVAR(ld_shlibs, $1)=no 6552 + ;; 6553 + cxx*) 6554 + case $host in 6555 + osf3*) 6556 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 6557 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' 6558 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6559 + ;; 6560 + *) 6561 + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 6562 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' 6563 + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ 6564 + echo "-hidden">> $lib.exp~ 6565 + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ 6566 + $RM $lib.exp' 6567 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 6568 + ;; 6569 + esac 6570 + 6571 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6572 + 6573 + # Commands to make compiler produce verbose output that lists 6574 + # what "hidden" libraries, object files and flags are used when 6575 + # linking a shared library. 6576 + # 6577 + # There doesn't appear to be a way to prevent this compiler from 6578 + # explicitly linking system object files so we need to strip them 6579 + # from the output so that they don't get included in the library 6580 + # dependencies. 6581 + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' 6582 + ;; 6583 + *) 6584 + if test "$GXX" = yes && test "$with_gnu_ld" = no; then 6585 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 6586 + case $host in 6587 + osf3*) 6588 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 6589 + ;; 6590 + *) 6591 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 6592 + ;; 6593 + esac 6594 + 6595 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6596 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6597 + 6598 + # Commands to make compiler produce verbose output that lists 6599 + # what "hidden" libraries, object files and flags are used when 6600 + # linking a shared library. 6601 + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' 6602 + 6603 + else 6604 + # FIXME: insert proper C++ library support 6605 + _LT_TAGVAR(ld_shlibs, $1)=no 6606 + fi 6607 + ;; 6608 + esac 6609 + ;; 6610 + 6611 + psos*) 6612 + # FIXME: insert proper C++ library support 6613 + _LT_TAGVAR(ld_shlibs, $1)=no 6614 + ;; 6615 + 6616 + sunos4*) 6617 + case $cc_basename in 6618 + CC*) 6619 + # Sun C++ 4.x 6620 + # FIXME: insert proper C++ library support 6621 + _LT_TAGVAR(ld_shlibs, $1)=no 6622 + ;; 6623 + lcc*) 6624 + # Lucid 6625 + # FIXME: insert proper C++ library support 6626 + _LT_TAGVAR(ld_shlibs, $1)=no 6627 + ;; 6628 + *) 6629 + # FIXME: insert proper C++ library support 6630 + _LT_TAGVAR(ld_shlibs, $1)=no 6631 + ;; 6632 + esac 6633 + ;; 6634 + 6635 + solaris*) 6636 + case $cc_basename in 6637 + CC* | sunCC*) 6638 + # Sun C++ 4.2, 5.x and Centerline C++ 6639 + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes 6640 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' 6641 + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6642 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 6643 + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' 6644 + 6645 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6646 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6647 + case $host_os in 6648 + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; 6649 + *) 6650 + # The compiler driver will combine and reorder linker options, 6651 + # but understands `-z linker_flag'. 6652 + # Supported since Solaris 2.6 (maybe 2.5.1?) 6653 + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' 6654 + ;; 6655 + esac 6656 + _LT_TAGVAR(link_all_deplibs, $1)=yes 6657 + 6658 + output_verbose_link_cmd='func_echo_all' 6659 + 6660 + # Archives containing C++ object files must be created using 6661 + # "CC -xar", where "CC" is the Sun C++ compiler. This is 6662 + # necessary to make sure instantiated templates are included 6663 + # in the archive. 6664 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' 6665 + ;; 6666 + gcx*) 6667 + # Green Hills C++ Compiler 6668 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 6669 + 6670 + # The C++ compiler must be used to create the archive. 6671 + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' 6672 + ;; 6673 + *) 6674 + # GNU C++ compiler with Solaris linker 6675 + if test "$GXX" = yes && test "$with_gnu_ld" = no; then 6676 + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' 6677 + if $CC --version | $GREP -v '^2\.7' > /dev/null; then 6678 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 6679 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 6680 + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' 6681 + 6682 + # Commands to make compiler produce verbose output that lists 6683 + # what "hidden" libraries, object files and flags are used when 6684 + # linking a shared library. 6685 + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' 6686 + else 6687 + # g++ 2.7 appears to require `-G' NOT `-shared' on this 6688 + # platform. 6689 + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 6690 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 6691 + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' 6692 + 6693 + # Commands to make compiler produce verbose output that lists 6694 + # what "hidden" libraries, object files and flags are used when 6695 + # linking a shared library. 6696 + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' 6697 + fi 6698 + 6699 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' 6700 + case $host_os in 6701 + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; 6702 + *) 6703 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' 6704 + ;; 6705 + esac 6706 + fi 6707 + ;; 6708 + esac 6709 + ;; 6710 + 6711 + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) 6712 + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 6713 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 6714 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6715 + runpath_var='LD_RUN_PATH' 6716 + 6717 + case $cc_basename in 6718 + CC*) 6719 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6720 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6721 + ;; 6722 + *) 6723 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6724 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6725 + ;; 6726 + esac 6727 + ;; 6728 + 6729 + sysv5* | sco3.2v5* | sco5v6*) 6730 + # Note: We can NOT use -z defs as we might desire, because we do not 6731 + # link with -lc, and that would cause any symbols used from libc to 6732 + # always be unresolved, which means just about no library would 6733 + # ever link correctly. If we're not using GNU ld we use -z text 6734 + # though, which does catch some bad symbols but isn't as heavy-handed 6735 + # as -z defs. 6736 + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 6737 + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' 6738 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 6739 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6740 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' 6741 + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' 6742 + _LT_TAGVAR(link_all_deplibs, $1)=yes 6743 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' 6744 + runpath_var='LD_RUN_PATH' 6745 + 6746 + case $cc_basename in 6747 + CC*) 6748 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6749 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6750 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ 6751 + '"$_LT_TAGVAR(old_archive_cmds, $1)" 6752 + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ 6753 + '"$_LT_TAGVAR(reload_cmds, $1)" 6754 + ;; 6755 + *) 6756 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6757 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6758 + ;; 6759 + esac 6760 + ;; 6761 + 6762 + tandem*) 6763 + case $cc_basename in 6764 + NCC*) 6765 + # NonStop-UX NCC 3.20 6766 + # FIXME: insert proper C++ library support 6767 + _LT_TAGVAR(ld_shlibs, $1)=no 6768 + ;; 6769 + *) 6770 + # FIXME: insert proper C++ library support 6771 + _LT_TAGVAR(ld_shlibs, $1)=no 6772 + ;; 6773 + esac 6774 + ;; 6775 + 6776 + vxworks*) 6777 + # FIXME: insert proper C++ library support 6778 + _LT_TAGVAR(ld_shlibs, $1)=no 6779 + ;; 6780 + 6781 + *) 6782 + # FIXME: insert proper C++ library support 6783 + _LT_TAGVAR(ld_shlibs, $1)=no 6784 + ;; 6785 + esac 6786 + 6787 + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) 6788 + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no 6789 + 6790 + _LT_TAGVAR(GCC, $1)="$GXX" 6791 + _LT_TAGVAR(LD, $1)="$LD" 6792 + 6793 + ## CAVEAT EMPTOR: 6794 + ## There is no encapsulation within the following macros, do not change 6795 + ## the running order or otherwise move them around unless you know exactly 6796 + ## what you are doing... 6797 + _LT_SYS_HIDDEN_LIBDEPS($1) 6798 + _LT_COMPILER_PIC($1) 6799 + _LT_COMPILER_C_O($1) 6800 + _LT_COMPILER_FILE_LOCKS($1) 6801 + _LT_LINKER_SHLIBS($1) 6802 + _LT_SYS_DYNAMIC_LINKER($1) 6803 + _LT_LINKER_HARDCODE_LIBPATH($1) 6804 + 6805 + _LT_CONFIG($1) 6806 + fi # test -n "$compiler" 6807 + 6808 + CC=$lt_save_CC 6809 + CFLAGS=$lt_save_CFLAGS 6810 + LDCXX=$LD 6811 + LD=$lt_save_LD 6812 + GCC=$lt_save_GCC 6813 + with_gnu_ld=$lt_save_with_gnu_ld 6814 + lt_cv_path_LDCXX=$lt_cv_path_LD 6815 + lt_cv_path_LD=$lt_save_path_LD 6816 + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld 6817 + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld 6818 +fi # test "$_lt_caught_CXX_error" != yes 6819 + 6820 +AC_LANG_POP 6821 +])# _LT_LANG_CXX_CONFIG 6822 + 6823 + 6824 +# _LT_FUNC_STRIPNAME_CNF 6825 +# ---------------------- 6826 +# func_stripname_cnf prefix suffix name 6827 +# strip PREFIX and SUFFIX off of NAME. 6828 +# PREFIX and SUFFIX must not contain globbing or regex special 6829 +# characters, hashes, percent signs, but SUFFIX may contain a leading 6830 +# dot (in which case that matches only a dot). 6831 +# 6832 +# This function is identical to the (non-XSI) version of func_stripname, 6833 +# except this one can be used by m4 code that may be executed by configure, 6834 +# rather than the libtool script. 6835 +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl 6836 +AC_REQUIRE([_LT_DECL_SED]) 6837 +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) 6838 +func_stripname_cnf () 6839 +{ 6840 + case ${2} in 6841 + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; 6842 + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; 6843 + esac 6844 +} # func_stripname_cnf 6845 +])# _LT_FUNC_STRIPNAME_CNF 6846 + 6847 +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) 6848 +# --------------------------------- 6849 +# Figure out "hidden" library dependencies from verbose 6850 +# compiler output when linking a shared library. 6851 +# Parse the compiler output and extract the necessary 6852 +# objects, libraries and library flags. 6853 +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], 6854 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 6855 +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl 6856 +# Dependencies to place before and after the object being linked: 6857 +_LT_TAGVAR(predep_objects, $1)= 6858 +_LT_TAGVAR(postdep_objects, $1)= 6859 +_LT_TAGVAR(predeps, $1)= 6860 +_LT_TAGVAR(postdeps, $1)= 6861 +_LT_TAGVAR(compiler_lib_search_path, $1)= 6862 + 6863 +dnl we can't use the lt_simple_compile_test_code here, 6864 +dnl because it contains code intended for an executable, 6865 +dnl not a library. It's possible we should let each 6866 +dnl tag define a new lt_????_link_test_code variable, 6867 +dnl but it's only used here... 6868 +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF 6869 +int a; 6870 +void foo (void) { a = 0; } 6871 +_LT_EOF 6872 +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF 6873 +class Foo 6874 +{ 6875 +public: 6876 + Foo (void) { a = 0; } 6877 +private: 6878 + int a; 6879 +}; 6880 +_LT_EOF 6881 +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF 6882 + subroutine foo 6883 + implicit none 6884 + integer*4 a 6885 + a=0 6886 + return 6887 + end 6888 +_LT_EOF 6889 +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF 6890 + subroutine foo 6891 + implicit none 6892 + integer a 6893 + a=0 6894 + return 6895 + end 6896 +_LT_EOF 6897 +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF 6898 +public class foo { 6899 + private int a; 6900 + public void bar (void) { 6901 + a = 0; 6902 + } 6903 +}; 6904 +_LT_EOF 6905 +]) 6906 + 6907 +_lt_libdeps_save_CFLAGS=$CFLAGS 6908 +case "$CC $CFLAGS " in #( 6909 +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; 6910 +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; 6911 +esac 6912 + 6913 +dnl Parse the compiler output and extract the necessary 6914 +dnl objects, libraries and library flags. 6915 +if AC_TRY_EVAL(ac_compile); then 6916 + # Parse the compiler output and extract the necessary 6917 + # objects, libraries and library flags. 6918 + 6919 + # Sentinel used to keep track of whether or not we are before 6920 + # the conftest object file. 6921 + pre_test_object_deps_done=no 6922 + 6923 + for p in `eval "$output_verbose_link_cmd"`; do 6924 + case ${prev}${p} in 6925 + 6926 + -L* | -R* | -l*) 6927 + # Some compilers place space between "-{L,R}" and the path. 6928 + # Remove the space. 6929 + if test $p = "-L" || 6930 + test $p = "-R"; then 6931 + prev=$p 6932 + continue 6933 + fi 6934 + 6935 + # Expand the sysroot to ease extracting the directories later. 6936 + if test -z "$prev"; then 6937 + case $p in 6938 + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; 6939 + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; 6940 + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; 6941 + esac 6942 + fi 6943 + case $p in 6944 + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; 6945 + esac 6946 + if test "$pre_test_object_deps_done" = no; then 6947 + case ${prev} in 6948 + -L | -R) 6949 + # Internal compiler library paths should come after those 6950 + # provided the user. The postdeps already come after the 6951 + # user supplied libs so there is no need to process them. 6952 + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then 6953 + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" 6954 + else 6955 + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" 6956 + fi 6957 + ;; 6958 + # The "-l" case would never come before the object being 6959 + # linked, so don't bother handling this case. 6960 + esac 6961 + else 6962 + if test -z "$_LT_TAGVAR(postdeps, $1)"; then 6963 + _LT_TAGVAR(postdeps, $1)="${prev}${p}" 6964 + else 6965 + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" 6966 + fi 6967 + fi 6968 + prev= 6969 + ;; 6970 + 6971 + *.lto.$objext) ;; # Ignore GCC LTO objects 6972 + *.$objext) 6973 + # This assumes that the test object file only shows up 6974 + # once in the compiler output. 6975 + if test "$p" = "conftest.$objext"; then 6976 + pre_test_object_deps_done=yes 6977 + continue 6978 + fi 6979 + 6980 + if test "$pre_test_object_deps_done" = no; then 6981 + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then 6982 + _LT_TAGVAR(predep_objects, $1)="$p" 6983 + else 6984 + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" 6985 + fi 6986 + else 6987 + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then 6988 + _LT_TAGVAR(postdep_objects, $1)="$p" 6989 + else 6990 + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" 6991 + fi 6992 + fi 6993 + ;; 6994 + 6995 + *) ;; # Ignore the rest. 6996 + 6997 + esac 6998 + done 6999 + 7000 + # Clean up. 7001 + rm -f a.out a.exe 7002 +else 7003 + echo "libtool.m4: error: problem compiling $1 test program" 7004 +fi 7005 + 7006 +$RM -f confest.$objext 7007 +CFLAGS=$_lt_libdeps_save_CFLAGS 7008 + 7009 +# PORTME: override above test on systems where it is broken 7010 +m4_if([$1], [CXX], 7011 +[case $host_os in 7012 +interix[[3-9]]*) 7013 + # Interix 3.5 installs completely hosed .la files for C++, so rather than 7014 + # hack all around it, let's just trust "g++" to DTRT. 7015 + _LT_TAGVAR(predep_objects,$1)= 7016 + _LT_TAGVAR(postdep_objects,$1)= 7017 + _LT_TAGVAR(postdeps,$1)= 7018 + ;; 7019 + 7020 +linux*) 7021 + case `$CC -V 2>&1 | sed 5q` in 7022 + *Sun\ C*) 7023 + # Sun C++ 5.9 7024 + 7025 + # The more standards-conforming stlport4 library is 7026 + # incompatible with the Cstd library. Avoid specifying 7027 + # it if it's in CXXFLAGS. Ignore libCrun as 7028 + # -library=stlport4 depends on it. 7029 + case " $CXX $CXXFLAGS " in 7030 + *" -library=stlport4 "*) 7031 + solaris_use_stlport4=yes 7032 + ;; 7033 + esac 7034 + 7035 + if test "$solaris_use_stlport4" != yes; then 7036 + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' 7037 + fi 7038 + ;; 7039 + esac 7040 + ;; 7041 + 7042 +solaris*) 7043 + case $cc_basename in 7044 + CC* | sunCC*) 7045 + # The more standards-conforming stlport4 library is 7046 + # incompatible with the Cstd library. Avoid specifying 7047 + # it if it's in CXXFLAGS. Ignore libCrun as 7048 + # -library=stlport4 depends on it. 7049 + case " $CXX $CXXFLAGS " in 7050 + *" -library=stlport4 "*) 7051 + solaris_use_stlport4=yes 7052 + ;; 7053 + esac 7054 + 7055 + # Adding this requires a known-good setup of shared libraries for 7056 + # Sun compiler versions before 5.6, else PIC objects from an old 7057 + # archive will be linked into the output, leading to subtle bugs. 7058 + if test "$solaris_use_stlport4" != yes; then 7059 + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' 7060 + fi 7061 + ;; 7062 + esac 7063 + ;; 7064 +esac 7065 +]) 7066 + 7067 +case " $_LT_TAGVAR(postdeps, $1) " in 7068 +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; 7069 +esac 7070 + _LT_TAGVAR(compiler_lib_search_dirs, $1)= 7071 +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then 7072 + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` 7073 +fi 7074 +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], 7075 + [The directories searched by this compiler when creating a shared library]) 7076 +_LT_TAGDECL([], [predep_objects], [1], 7077 + [Dependencies to place before and after the objects being linked to 7078 + create a shared library]) 7079 +_LT_TAGDECL([], [postdep_objects], [1]) 7080 +_LT_TAGDECL([], [predeps], [1]) 7081 +_LT_TAGDECL([], [postdeps], [1]) 7082 +_LT_TAGDECL([], [compiler_lib_search_path], [1], 7083 + [The library search path used internally by the compiler when linking 7084 + a shared library]) 7085 +])# _LT_SYS_HIDDEN_LIBDEPS 7086 + 7087 + 7088 +# _LT_LANG_F77_CONFIG([TAG]) 7089 +# -------------------------- 7090 +# Ensure that the configuration variables for a Fortran 77 compiler are 7091 +# suitably defined. These variables are subsequently used by _LT_CONFIG 7092 +# to write the compiler configuration to `libtool'. 7093 +m4_defun([_LT_LANG_F77_CONFIG], 7094 +[AC_LANG_PUSH(Fortran 77) 7095 +if test -z "$F77" || test "X$F77" = "Xno"; then 7096 + _lt_disable_F77=yes 7097 +fi 7098 + 7099 +_LT_TAGVAR(archive_cmds_need_lc, $1)=no 7100 +_LT_TAGVAR(allow_undefined_flag, $1)= 7101 +_LT_TAGVAR(always_export_symbols, $1)=no 7102 +_LT_TAGVAR(archive_expsym_cmds, $1)= 7103 +_LT_TAGVAR(export_dynamic_flag_spec, $1)= 7104 +_LT_TAGVAR(hardcode_direct, $1)=no 7105 +_LT_TAGVAR(hardcode_direct_absolute, $1)=no 7106 +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 7107 +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 7108 +_LT_TAGVAR(hardcode_libdir_separator, $1)= 7109 +_LT_TAGVAR(hardcode_minus_L, $1)=no 7110 +_LT_TAGVAR(hardcode_automatic, $1)=no 7111 +_LT_TAGVAR(inherit_rpath, $1)=no 7112 +_LT_TAGVAR(module_cmds, $1)= 7113 +_LT_TAGVAR(module_expsym_cmds, $1)= 7114 +_LT_TAGVAR(link_all_deplibs, $1)=unknown 7115 +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 7116 +_LT_TAGVAR(reload_flag, $1)=$reload_flag 7117 +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds 7118 +_LT_TAGVAR(no_undefined_flag, $1)= 7119 +_LT_TAGVAR(whole_archive_flag_spec, $1)= 7120 +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no 7121 + 7122 +# Source file extension for f77 test sources. 7123 +ac_ext=f 7124 + 7125 +# Object file extension for compiled f77 test sources. 7126 +objext=o 7127 +_LT_TAGVAR(objext, $1)=$objext 7128 + 7129 +# No sense in running all these tests if we already determined that 7130 +# the F77 compiler isn't working. Some variables (like enable_shared) 7131 +# are currently assumed to apply to all compilers on this platform, 7132 +# and will be corrupted by setting them based on a non-working compiler. 7133 +if test "$_lt_disable_F77" != yes; then 7134 + # Code to be used in simple compile tests 7135 + lt_simple_compile_test_code="\ 7136 + subroutine t 7137 + return 7138 + end 7139 +" 7140 + 7141 + # Code to be used in simple link tests 7142 + lt_simple_link_test_code="\ 7143 + program t 7144 + end 7145 +" 7146 + 7147 + # ltmain only uses $CC for tagged configurations so make sure $CC is set. 7148 + _LT_TAG_COMPILER 7149 + 7150 + # save warnings/boilerplate of simple test code 7151 + _LT_COMPILER_BOILERPLATE 7152 + _LT_LINKER_BOILERPLATE 7153 + 7154 + # Allow CC to be a program name with arguments. 7155 + lt_save_CC="$CC" 7156 + lt_save_GCC=$GCC 7157 + lt_save_CFLAGS=$CFLAGS 7158 + CC=${F77-"f77"} 7159 + CFLAGS=$FFLAGS 7160 + compiler=$CC 7161 + _LT_TAGVAR(compiler, $1)=$CC 7162 + _LT_CC_BASENAME([$compiler]) 7163 + GCC=$G77 7164 + if test -n "$compiler"; then 7165 + AC_MSG_CHECKING([if libtool supports shared libraries]) 7166 + AC_MSG_RESULT([$can_build_shared]) 7167 + 7168 + AC_MSG_CHECKING([whether to build shared libraries]) 7169 + test "$can_build_shared" = "no" && enable_shared=no 7170 + 7171 + # On AIX, shared libraries and static libraries use the same namespace, and 7172 + # are all built from PIC. 7173 + case $host_os in 7174 + aix3*) 7175 + test "$enable_shared" = yes && enable_static=no 7176 + if test -n "$RANLIB"; then 7177 + archive_cmds="$archive_cmds~\$RANLIB \$lib" 7178 + postinstall_cmds='$RANLIB $lib' 7179 + fi 7180 + ;; 7181 + aix[[4-9]]*) 7182 + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then 7183 + test "$enable_shared" = yes && enable_static=no 7184 + fi 7185 + ;; 7186 + esac 7187 + AC_MSG_RESULT([$enable_shared]) 7188 + 7189 + AC_MSG_CHECKING([whether to build static libraries]) 7190 + # Make sure either enable_shared or enable_static is yes. 7191 + test "$enable_shared" = yes || enable_static=yes 7192 + AC_MSG_RESULT([$enable_static]) 7193 + 7194 + _LT_TAGVAR(GCC, $1)="$G77" 7195 + _LT_TAGVAR(LD, $1)="$LD" 7196 + 7197 + ## CAVEAT EMPTOR: 7198 + ## There is no encapsulation within the following macros, do not change 7199 + ## the running order or otherwise move them around unless you know exactly 7200 + ## what you are doing... 7201 + _LT_COMPILER_PIC($1) 7202 + _LT_COMPILER_C_O($1) 7203 + _LT_COMPILER_FILE_LOCKS($1) 7204 + _LT_LINKER_SHLIBS($1) 7205 + _LT_SYS_DYNAMIC_LINKER($1) 7206 + _LT_LINKER_HARDCODE_LIBPATH($1) 7207 + 7208 + _LT_CONFIG($1) 7209 + fi # test -n "$compiler" 7210 + 7211 + GCC=$lt_save_GCC 7212 + CC="$lt_save_CC" 7213 + CFLAGS="$lt_save_CFLAGS" 7214 +fi # test "$_lt_disable_F77" != yes 7215 + 7216 +AC_LANG_POP 7217 +])# _LT_LANG_F77_CONFIG 7218 + 7219 + 7220 +# _LT_LANG_FC_CONFIG([TAG]) 7221 +# ------------------------- 7222 +# Ensure that the configuration variables for a Fortran compiler are 7223 +# suitably defined. These variables are subsequently used by _LT_CONFIG 7224 +# to write the compiler configuration to `libtool'. 7225 +m4_defun([_LT_LANG_FC_CONFIG], 7226 +[AC_LANG_PUSH(Fortran) 7227 + 7228 +if test -z "$FC" || test "X$FC" = "Xno"; then 7229 + _lt_disable_FC=yes 7230 +fi 7231 + 7232 +_LT_TAGVAR(archive_cmds_need_lc, $1)=no 7233 +_LT_TAGVAR(allow_undefined_flag, $1)= 7234 +_LT_TAGVAR(always_export_symbols, $1)=no 7235 +_LT_TAGVAR(archive_expsym_cmds, $1)= 7236 +_LT_TAGVAR(export_dynamic_flag_spec, $1)= 7237 +_LT_TAGVAR(hardcode_direct, $1)=no 7238 +_LT_TAGVAR(hardcode_direct_absolute, $1)=no 7239 +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 7240 +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 7241 +_LT_TAGVAR(hardcode_libdir_separator, $1)= 7242 +_LT_TAGVAR(hardcode_minus_L, $1)=no 7243 +_LT_TAGVAR(hardcode_automatic, $1)=no 7244 +_LT_TAGVAR(inherit_rpath, $1)=no 7245 +_LT_TAGVAR(module_cmds, $1)= 7246 +_LT_TAGVAR(module_expsym_cmds, $1)= 7247 +_LT_TAGVAR(link_all_deplibs, $1)=unknown 7248 +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 7249 +_LT_TAGVAR(reload_flag, $1)=$reload_flag 7250 +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds 7251 +_LT_TAGVAR(no_undefined_flag, $1)= 7252 +_LT_TAGVAR(whole_archive_flag_spec, $1)= 7253 +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no 7254 + 7255 +# Source file extension for fc test sources. 7256 +ac_ext=${ac_fc_srcext-f} 7257 + 7258 +# Object file extension for compiled fc test sources. 7259 +objext=o 7260 +_LT_TAGVAR(objext, $1)=$objext 7261 + 7262 +# No sense in running all these tests if we already determined that 7263 +# the FC compiler isn't working. Some variables (like enable_shared) 7264 +# are currently assumed to apply to all compilers on this platform, 7265 +# and will be corrupted by setting them based on a non-working compiler. 7266 +if test "$_lt_disable_FC" != yes; then 7267 + # Code to be used in simple compile tests 7268 + lt_simple_compile_test_code="\ 7269 + subroutine t 7270 + return 7271 + end 7272 +" 7273 + 7274 + # Code to be used in simple link tests 7275 + lt_simple_link_test_code="\ 7276 + program t 7277 + end 7278 +" 7279 + 7280 + # ltmain only uses $CC for tagged configurations so make sure $CC is set. 7281 + _LT_TAG_COMPILER 7282 + 7283 + # save warnings/boilerplate of simple test code 7284 + _LT_COMPILER_BOILERPLATE 7285 + _LT_LINKER_BOILERPLATE 7286 + 7287 + # Allow CC to be a program name with arguments. 7288 + lt_save_CC="$CC" 7289 + lt_save_GCC=$GCC 7290 + lt_save_CFLAGS=$CFLAGS 7291 + CC=${FC-"f95"} 7292 + CFLAGS=$FCFLAGS 7293 + compiler=$CC 7294 + GCC=$ac_cv_fc_compiler_gnu 7295 + 7296 + _LT_TAGVAR(compiler, $1)=$CC 7297 + _LT_CC_BASENAME([$compiler]) 7298 + 7299 + if test -n "$compiler"; then 7300 + AC_MSG_CHECKING([if libtool supports shared libraries]) 7301 + AC_MSG_RESULT([$can_build_shared]) 7302 + 7303 + AC_MSG_CHECKING([whether to build shared libraries]) 7304 + test "$can_build_shared" = "no" && enable_shared=no 7305 + 7306 + # On AIX, shared libraries and static libraries use the same namespace, and 7307 + # are all built from PIC. 7308 + case $host_os in 7309 + aix3*) 7310 + test "$enable_shared" = yes && enable_static=no 7311 + if test -n "$RANLIB"; then 7312 + archive_cmds="$archive_cmds~\$RANLIB \$lib" 7313 + postinstall_cmds='$RANLIB $lib' 7314 + fi 7315 + ;; 7316 + aix[[4-9]]*) 7317 + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then 7318 + test "$enable_shared" = yes && enable_static=no 7319 + fi 7320 + ;; 7321 + esac 7322 + AC_MSG_RESULT([$enable_shared]) 7323 + 7324 + AC_MSG_CHECKING([whether to build static libraries]) 7325 + # Make sure either enable_shared or enable_static is yes. 7326 + test "$enable_shared" = yes || enable_static=yes 7327 + AC_MSG_RESULT([$enable_static]) 7328 + 7329 + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" 7330 + _LT_TAGVAR(LD, $1)="$LD" 7331 + 7332 + ## CAVEAT EMPTOR: 7333 + ## There is no encapsulation within the following macros, do not change 7334 + ## the running order or otherwise move them around unless you know exactly 7335 + ## what you are doing... 7336 + _LT_SYS_HIDDEN_LIBDEPS($1) 7337 + _LT_COMPILER_PIC($1) 7338 + _LT_COMPILER_C_O($1) 7339 + _LT_COMPILER_FILE_LOCKS($1) 7340 + _LT_LINKER_SHLIBS($1) 7341 + _LT_SYS_DYNAMIC_LINKER($1) 7342 + _LT_LINKER_HARDCODE_LIBPATH($1) 7343 + 7344 + _LT_CONFIG($1) 7345 + fi # test -n "$compiler" 7346 + 7347 + GCC=$lt_save_GCC 7348 + CC=$lt_save_CC 7349 + CFLAGS=$lt_save_CFLAGS 7350 +fi # test "$_lt_disable_FC" != yes 7351 + 7352 +AC_LANG_POP 7353 +])# _LT_LANG_FC_CONFIG 7354 + 7355 + 7356 +# _LT_LANG_GCJ_CONFIG([TAG]) 7357 +# -------------------------- 7358 +# Ensure that the configuration variables for the GNU Java Compiler compiler 7359 +# are suitably defined. These variables are subsequently used by _LT_CONFIG 7360 +# to write the compiler configuration to `libtool'. 7361 +m4_defun([_LT_LANG_GCJ_CONFIG], 7362 +[AC_REQUIRE([LT_PROG_GCJ])dnl 7363 +AC_LANG_SAVE 7364 + 7365 +# Source file extension for Java test sources. 7366 +ac_ext=java 7367 + 7368 +# Object file extension for compiled Java test sources. 7369 +objext=o 7370 +_LT_TAGVAR(objext, $1)=$objext 7371 + 7372 +# Code to be used in simple compile tests 7373 +lt_simple_compile_test_code="class foo {}" 7374 + 7375 +# Code to be used in simple link tests 7376 +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' 7377 + 7378 +# ltmain only uses $CC for tagged configurations so make sure $CC is set. 7379 +_LT_TAG_COMPILER 7380 + 7381 +# save warnings/boilerplate of simple test code 7382 +_LT_COMPILER_BOILERPLATE 7383 +_LT_LINKER_BOILERPLATE 7384 + 7385 +# Allow CC to be a program name with arguments. 7386 +lt_save_CC=$CC 7387 +lt_save_CFLAGS=$CFLAGS 7388 +lt_save_GCC=$GCC 7389 +GCC=yes 7390 +CC=${GCJ-"gcj"} 7391 +CFLAGS=$GCJFLAGS 7392 +compiler=$CC 7393 +_LT_TAGVAR(compiler, $1)=$CC 7394 +_LT_TAGVAR(LD, $1)="$LD" 7395 +_LT_CC_BASENAME([$compiler]) 7396 + 7397 +# GCJ did not exist at the time GCC didn't implicitly link libc in. 7398 +_LT_TAGVAR(archive_cmds_need_lc, $1)=no 7399 + 7400 +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 7401 +_LT_TAGVAR(reload_flag, $1)=$reload_flag 7402 +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds 7403 + 7404 +## CAVEAT EMPTOR: 7405 +## There is no encapsulation within the following macros, do not change 7406 +## the running order or otherwise move them around unless you know exactly 7407 +## what you are doing... 7408 +if test -n "$compiler"; then 7409 + _LT_COMPILER_NO_RTTI($1) 7410 + _LT_COMPILER_PIC($1) 7411 + _LT_COMPILER_C_O($1) 7412 + _LT_COMPILER_FILE_LOCKS($1) 7413 + _LT_LINKER_SHLIBS($1) 7414 + _LT_LINKER_HARDCODE_LIBPATH($1) 7415 + 7416 + _LT_CONFIG($1) 7417 +fi 7418 + 7419 +AC_LANG_RESTORE 7420 + 7421 +GCC=$lt_save_GCC 7422 +CC=$lt_save_CC 7423 +CFLAGS=$lt_save_CFLAGS 7424 +])# _LT_LANG_GCJ_CONFIG 7425 + 7426 + 7427 +# _LT_LANG_RC_CONFIG([TAG]) 7428 +# ------------------------- 7429 +# Ensure that the configuration variables for the Windows resource compiler 7430 +# are suitably defined. These variables are subsequently used by _LT_CONFIG 7431 +# to write the compiler configuration to `libtool'. 7432 +m4_defun([_LT_LANG_RC_CONFIG], 7433 +[AC_REQUIRE([LT_PROG_RC])dnl 7434 +AC_LANG_SAVE 7435 + 7436 +# Source file extension for RC test sources. 7437 +ac_ext=rc 7438 + 7439 +# Object file extension for compiled RC test sources. 7440 +objext=o 7441 +_LT_TAGVAR(objext, $1)=$objext 7442 + 7443 +# Code to be used in simple compile tests 7444 +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' 7445 + 7446 +# Code to be used in simple link tests 7447 +lt_simple_link_test_code="$lt_simple_compile_test_code" 7448 + 7449 +# ltmain only uses $CC for tagged configurations so make sure $CC is set. 7450 +_LT_TAG_COMPILER 7451 + 7452 +# save warnings/boilerplate of simple test code 7453 +_LT_COMPILER_BOILERPLATE 7454 +_LT_LINKER_BOILERPLATE 7455 + 7456 +# Allow CC to be a program name with arguments. 7457 +lt_save_CC="$CC" 7458 +lt_save_CFLAGS=$CFLAGS 7459 +lt_save_GCC=$GCC 7460 +GCC= 7461 +CC=${RC-"windres"} 7462 +CFLAGS= 7463 +compiler=$CC 7464 +_LT_TAGVAR(compiler, $1)=$CC 7465 +_LT_CC_BASENAME([$compiler]) 7466 +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes 7467 + 7468 +if test -n "$compiler"; then 7469 + : 7470 + _LT_CONFIG($1) 7471 +fi 7472 + 7473 +GCC=$lt_save_GCC 7474 +AC_LANG_RESTORE 7475 +CC=$lt_save_CC 7476 +CFLAGS=$lt_save_CFLAGS 7477 +])# _LT_LANG_RC_CONFIG 7478 + 7479 + 7480 +# LT_PROG_GCJ 7481 +# ----------- 7482 +AC_DEFUN([LT_PROG_GCJ], 7483 +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], 7484 + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], 7485 + [AC_CHECK_TOOL(GCJ, gcj,) 7486 + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" 7487 + AC_SUBST(GCJFLAGS)])])[]dnl 7488 +]) 7489 + 7490 +# Old name: 7491 +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) 7492 +dnl aclocal-1.4 backwards compatibility: 7493 +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) 7494 + 7495 + 7496 +# LT_PROG_RC 7497 +# ---------- 7498 +AC_DEFUN([LT_PROG_RC], 7499 +[AC_CHECK_TOOL(RC, windres,) 7500 +]) 7501 + 7502 +# Old name: 7503 +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) 7504 +dnl aclocal-1.4 backwards compatibility: 7505 +dnl AC_DEFUN([LT_AC_PROG_RC], []) 7506 + 7507 + 7508 +# _LT_DECL_EGREP 7509 +# -------------- 7510 +# If we don't have a new enough Autoconf to choose the best grep 7511 +# available, choose the one first in the user's PATH. 7512 +m4_defun([_LT_DECL_EGREP], 7513 +[AC_REQUIRE([AC_PROG_EGREP])dnl 7514 +AC_REQUIRE([AC_PROG_FGREP])dnl 7515 +test -z "$GREP" && GREP=grep 7516 +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) 7517 +_LT_DECL([], [EGREP], [1], [An ERE matcher]) 7518 +_LT_DECL([], [FGREP], [1], [A literal string matcher]) 7519 +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too 7520 +AC_SUBST([GREP]) 7521 +]) 7522 + 7523 + 7524 +# _LT_DECL_OBJDUMP 7525 +# -------------- 7526 +# If we don't have a new enough Autoconf to choose the best objdump 7527 +# available, choose the one first in the user's PATH. 7528 +m4_defun([_LT_DECL_OBJDUMP], 7529 +[AC_CHECK_TOOL(OBJDUMP, objdump, false) 7530 +test -z "$OBJDUMP" && OBJDUMP=objdump 7531 +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) 7532 +AC_SUBST([OBJDUMP]) 7533 +]) 7534 + 7535 +# _LT_DECL_DLLTOOL 7536 +# ---------------- 7537 +# Ensure DLLTOOL variable is set. 7538 +m4_defun([_LT_DECL_DLLTOOL], 7539 +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) 7540 +test -z "$DLLTOOL" && DLLTOOL=dlltool 7541 +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) 7542 +AC_SUBST([DLLTOOL]) 7543 +]) 7544 + 7545 +# _LT_DECL_SED 7546 +# ------------ 7547 +# Check for a fully-functional sed program, that truncates 7548 +# as few characters as possible. Prefer GNU sed if found. 7549 +m4_defun([_LT_DECL_SED], 7550 +[AC_PROG_SED 7551 +test -z "$SED" && SED=sed 7552 +Xsed="$SED -e 1s/^X//" 7553 +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) 7554 +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], 7555 + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) 7556 +])# _LT_DECL_SED 7557 + 7558 +m4_ifndef([AC_PROG_SED], [ 7559 +############################################################ 7560 +# NOTE: This macro has been submitted for inclusion into # 7561 +# GNU Autoconf as AC_PROG_SED. When it is available in # 7562 +# a released version of Autoconf we should remove this # 7563 +# macro and use it instead. # 7564 +############################################################ 7565 + 7566 +m4_defun([AC_PROG_SED], 7567 +[AC_MSG_CHECKING([for a sed that does not truncate output]) 7568 +AC_CACHE_VAL(lt_cv_path_SED, 7569 +[# Loop through the user's path and test for sed and gsed. 7570 +# Then use that list of sed's as ones to test for truncation. 7571 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 7572 +for as_dir in $PATH 7573 +do 7574 + IFS=$as_save_IFS 7575 + test -z "$as_dir" && as_dir=. 7576 + for lt_ac_prog in sed gsed; do 7577 + for ac_exec_ext in '' $ac_executable_extensions; do 7578 + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then 7579 + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" 7580 + fi 7581 + done 7582 + done 7583 +done 7584 +IFS=$as_save_IFS 7585 +lt_ac_max=0 7586 +lt_ac_count=0 7587 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris 7588 +# along with /bin/sed that truncates output. 7589 +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do 7590 + test ! -f $lt_ac_sed && continue 7591 + cat /dev/null > conftest.in 7592 + lt_ac_count=0 7593 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in 7594 + # Check for GNU sed and select it if it is found. 7595 + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then 7596 + lt_cv_path_SED=$lt_ac_sed 7597 + break 7598 + fi 7599 + while true; do 7600 + cat conftest.in conftest.in >conftest.tmp 7601 + mv conftest.tmp conftest.in 7602 + cp conftest.in conftest.nl 7603 + echo >>conftest.nl 7604 + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break 7605 + cmp -s conftest.out conftest.nl || break 7606 + # 10000 chars as input seems more than enough 7607 + test $lt_ac_count -gt 10 && break 7608 + lt_ac_count=`expr $lt_ac_count + 1` 7609 + if test $lt_ac_count -gt $lt_ac_max; then 7610 + lt_ac_max=$lt_ac_count 7611 + lt_cv_path_SED=$lt_ac_sed 7612 + fi 7613 + done 7614 +done 7615 +]) 7616 +SED=$lt_cv_path_SED 7617 +AC_SUBST([SED]) 7618 +AC_MSG_RESULT([$SED]) 7619 +])#AC_PROG_SED 7620 +])#m4_ifndef 7621 + 7622 +# Old name: 7623 +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) 7624 +dnl aclocal-1.4 backwards compatibility: 7625 +dnl AC_DEFUN([LT_AC_PROG_SED], []) 7626 + 7627 + 7628 +# _LT_CHECK_SHELL_FEATURES 7629 +# ------------------------ 7630 +# Find out whether the shell is Bourne or XSI compatible, 7631 +# or has some other useful features. 7632 +m4_defun([_LT_CHECK_SHELL_FEATURES], 7633 +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) 7634 +# Try some XSI features 7635 +xsi_shell=no 7636 +( _lt_dummy="a/b/c" 7637 + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ 7638 + = c,a/b,b/c, \ 7639 + && eval 'test $(( 1 + 1 )) -eq 2 \ 7640 + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ 7641 + && xsi_shell=yes 7642 +AC_MSG_RESULT([$xsi_shell]) 7643 +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) 7644 + 7645 +AC_MSG_CHECKING([whether the shell understands "+="]) 7646 +lt_shell_append=no 7647 +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ 7648 + >/dev/null 2>&1 \ 7649 + && lt_shell_append=yes 7650 +AC_MSG_RESULT([$lt_shell_append]) 7651 +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) 7652 + 7653 +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then 7654 + lt_unset=unset 7655 +else 7656 + lt_unset=false 7657 +fi 7658 +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl 7659 + 7660 +# test EBCDIC or ASCII 7661 +case `echo X|tr X '\101'` in 7662 + A) # ASCII based system 7663 + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 7664 + lt_SP2NL='tr \040 \012' 7665 + lt_NL2SP='tr \015\012 \040\040' 7666 + ;; 7667 + *) # EBCDIC based system 7668 + lt_SP2NL='tr \100 \n' 7669 + lt_NL2SP='tr \r\n \100\100' 7670 + ;; 7671 +esac 7672 +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl 7673 +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl 7674 +])# _LT_CHECK_SHELL_FEATURES 7675 + 7676 + 7677 +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) 7678 +# ------------------------------------------------------ 7679 +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and 7680 +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. 7681 +m4_defun([_LT_PROG_FUNCTION_REPLACE], 7682 +[dnl { 7683 +sed -e '/^$1 ()$/,/^} # $1 /c\ 7684 +$1 ()\ 7685 +{\ 7686 +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) 7687 +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ 7688 + && mv -f "$cfgfile.tmp" "$cfgfile" \ 7689 + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") 7690 +test 0 -eq $? || _lt_function_replace_fail=: 7691 +]) 7692 + 7693 + 7694 +# _LT_PROG_REPLACE_SHELLFNS 7695 +# ------------------------- 7696 +# Replace existing portable implementations of several shell functions with 7697 +# equivalent extended shell implementations where those features are available.. 7698 +m4_defun([_LT_PROG_REPLACE_SHELLFNS], 7699 +[if test x"$xsi_shell" = xyes; then 7700 + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl 7701 + case ${1} in 7702 + */*) func_dirname_result="${1%/*}${2}" ;; 7703 + * ) func_dirname_result="${3}" ;; 7704 + esac]) 7705 + 7706 + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl 7707 + func_basename_result="${1##*/}"]) 7708 + 7709 + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl 7710 + case ${1} in 7711 + */*) func_dirname_result="${1%/*}${2}" ;; 7712 + * ) func_dirname_result="${3}" ;; 7713 + esac 7714 + func_basename_result="${1##*/}"]) 7715 + 7716 + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl 7717 + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are 7718 + # positional parameters, so assign one to ordinary parameter first. 7719 + func_stripname_result=${3} 7720 + func_stripname_result=${func_stripname_result#"${1}"} 7721 + func_stripname_result=${func_stripname_result%"${2}"}]) 7722 + 7723 + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl 7724 + func_split_long_opt_name=${1%%=*} 7725 + func_split_long_opt_arg=${1#*=}]) 7726 + 7727 + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl 7728 + func_split_short_opt_arg=${1#??} 7729 + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) 7730 + 7731 + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl 7732 + case ${1} in 7733 + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; 7734 + *) func_lo2o_result=${1} ;; 7735 + esac]) 7736 + 7737 + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) 7738 + 7739 + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) 7740 + 7741 + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) 7742 +fi 7743 + 7744 +if test x"$lt_shell_append" = xyes; then 7745 + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) 7746 + 7747 + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl 7748 + func_quote_for_eval "${2}" 7749 +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ 7750 + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) 7751 + 7752 + # Save a `func_append' function call where possible by direct use of '+=' 7753 + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ 7754 + && mv -f "$cfgfile.tmp" "$cfgfile" \ 7755 + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") 7756 + test 0 -eq $? || _lt_function_replace_fail=: 7757 +else 7758 + # Save a `func_append' function call even when '+=' is not available 7759 + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ 7760 + && mv -f "$cfgfile.tmp" "$cfgfile" \ 7761 + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") 7762 + test 0 -eq $? || _lt_function_replace_fail=: 7763 +fi 7764 + 7765 +if test x"$_lt_function_replace_fail" = x":"; then 7766 + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) 7767 +fi 7768 +]) 7769 + 7770 +# _LT_PATH_CONVERSION_FUNCTIONS 7771 +# ----------------------------- 7772 +# Determine which file name conversion functions should be used by 7773 +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed 7774 +# for certain cross-compile configurations and native mingw. 7775 +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], 7776 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 7777 +AC_REQUIRE([AC_CANONICAL_BUILD])dnl 7778 +AC_MSG_CHECKING([how to convert $build file names to $host format]) 7779 +AC_CACHE_VAL(lt_cv_to_host_file_cmd, 7780 +[case $host in 7781 + *-*-mingw* ) 7782 + case $build in 7783 + *-*-mingw* ) # actually msys 7784 + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 7785 + ;; 7786 + *-*-cygwin* ) 7787 + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 7788 + ;; 7789 + * ) # otherwise, assume *nix 7790 + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 7791 + ;; 7792 + esac 7793 + ;; 7794 + *-*-cygwin* ) 7795 + case $build in 7796 + *-*-mingw* ) # actually msys 7797 + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin 7798 + ;; 7799 + *-*-cygwin* ) 7800 + lt_cv_to_host_file_cmd=func_convert_file_noop 7801 + ;; 7802 + * ) # otherwise, assume *nix 7803 + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin 7804 + ;; 7805 + esac 7806 + ;; 7807 + * ) # unhandled hosts (and "normal" native builds) 7808 + lt_cv_to_host_file_cmd=func_convert_file_noop 7809 + ;; 7810 +esac 7811 +]) 7812 +to_host_file_cmd=$lt_cv_to_host_file_cmd 7813 +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) 7814 +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], 7815 + [0], [convert $build file names to $host format])dnl 7816 + 7817 +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) 7818 +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, 7819 +[#assume ordinary cross tools, or native build. 7820 +lt_cv_to_tool_file_cmd=func_convert_file_noop 7821 +case $host in 7822 + *-*-mingw* ) 7823 + case $build in 7824 + *-*-mingw* ) # actually msys 7825 + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 7826 + ;; 7827 + esac 7828 + ;; 7829 +esac 7830 +]) 7831 +to_tool_file_cmd=$lt_cv_to_tool_file_cmd 7832 +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) 7833 +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], 7834 + [0], [convert $build files to toolchain format])dnl 7835 +])# _LT_PATH_CONVERSION_FUNCTIONS
Added m4/ltoptions.m4.
1 +# Helper functions for option handling. -*- Autoconf -*- 2 +# 3 +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, 4 +# Inc. 5 +# Written by Gary V. Vaughan, 2004 6 +# 7 +# This file is free software; the Free Software Foundation gives 8 +# unlimited permission to copy and/or distribute it, with or without 9 +# modifications, as long as this notice is preserved. 10 + 11 +# serial 7 ltoptions.m4 12 + 13 +# This is to help aclocal find these macros, as it can't see m4_define. 14 +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) 15 + 16 + 17 +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) 18 +# ------------------------------------------ 19 +m4_define([_LT_MANGLE_OPTION], 20 +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) 21 + 22 + 23 +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) 24 +# --------------------------------------- 25 +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a 26 +# matching handler defined, dispatch to it. Other OPTION-NAMEs are 27 +# saved as a flag. 28 +m4_define([_LT_SET_OPTION], 29 +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl 30 +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), 31 + _LT_MANGLE_DEFUN([$1], [$2]), 32 + [m4_warning([Unknown $1 option `$2'])])[]dnl 33 +]) 34 + 35 + 36 +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) 37 +# ------------------------------------------------------------ 38 +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. 39 +m4_define([_LT_IF_OPTION], 40 +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) 41 + 42 + 43 +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) 44 +# ------------------------------------------------------- 45 +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME 46 +# are set. 47 +m4_define([_LT_UNLESS_OPTIONS], 48 +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), 49 + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), 50 + [m4_define([$0_found])])])[]dnl 51 +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 52 +])[]dnl 53 +]) 54 + 55 + 56 +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) 57 +# ---------------------------------------- 58 +# OPTION-LIST is a space-separated list of Libtool options associated 59 +# with MACRO-NAME. If any OPTION has a matching handler declared with 60 +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about 61 +# the unknown option and exit. 62 +m4_defun([_LT_SET_OPTIONS], 63 +[# Set options 64 +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), 65 + [_LT_SET_OPTION([$1], _LT_Option)]) 66 + 67 +m4_if([$1],[LT_INIT],[ 68 + dnl 69 + dnl Simply set some default values (i.e off) if boolean options were not 70 + dnl specified: 71 + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no 72 + ]) 73 + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no 74 + ]) 75 + dnl 76 + dnl If no reference was made to various pairs of opposing options, then 77 + dnl we run the default mode handler for the pair. For example, if neither 78 + dnl `shared' nor `disable-shared' was passed, we enable building of shared 79 + dnl archives by default: 80 + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) 81 + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) 82 + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) 83 + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], 84 + [_LT_ENABLE_FAST_INSTALL]) 85 + ]) 86 +])# _LT_SET_OPTIONS 87 + 88 + 89 +## --------------------------------- ## 90 +## Macros to handle LT_INIT options. ## 91 +## --------------------------------- ## 92 + 93 +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) 94 +# ----------------------------------------- 95 +m4_define([_LT_MANGLE_DEFUN], 96 +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) 97 + 98 + 99 +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) 100 +# ----------------------------------------------- 101 +m4_define([LT_OPTION_DEFINE], 102 +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl 103 +])# LT_OPTION_DEFINE 104 + 105 + 106 +# dlopen 107 +# ------ 108 +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes 109 +]) 110 + 111 +AU_DEFUN([AC_LIBTOOL_DLOPEN], 112 +[_LT_SET_OPTION([LT_INIT], [dlopen]) 113 +AC_DIAGNOSE([obsolete], 114 +[$0: Remove this warning and the call to _LT_SET_OPTION when you 115 +put the `dlopen' option into LT_INIT's first parameter.]) 116 +]) 117 + 118 +dnl aclocal-1.4 backwards compatibility: 119 +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) 120 + 121 + 122 +# win32-dll 123 +# --------- 124 +# Declare package support for building win32 dll's. 125 +LT_OPTION_DEFINE([LT_INIT], [win32-dll], 126 +[enable_win32_dll=yes 127 + 128 +case $host in 129 +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) 130 + AC_CHECK_TOOL(AS, as, false) 131 + AC_CHECK_TOOL(DLLTOOL, dlltool, false) 132 + AC_CHECK_TOOL(OBJDUMP, objdump, false) 133 + ;; 134 +esac 135 + 136 +test -z "$AS" && AS=as 137 +_LT_DECL([], [AS], [1], [Assembler program])dnl 138 + 139 +test -z "$DLLTOOL" && DLLTOOL=dlltool 140 +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl 141 + 142 +test -z "$OBJDUMP" && OBJDUMP=objdump 143 +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl 144 +])# win32-dll 145 + 146 +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], 147 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 148 +_LT_SET_OPTION([LT_INIT], [win32-dll]) 149 +AC_DIAGNOSE([obsolete], 150 +[$0: Remove this warning and the call to _LT_SET_OPTION when you 151 +put the `win32-dll' option into LT_INIT's first parameter.]) 152 +]) 153 + 154 +dnl aclocal-1.4 backwards compatibility: 155 +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) 156 + 157 + 158 +# _LT_ENABLE_SHARED([DEFAULT]) 159 +# ---------------------------- 160 +# implement the --enable-shared flag, and supports the `shared' and 161 +# `disable-shared' LT_INIT options. 162 +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 163 +m4_define([_LT_ENABLE_SHARED], 164 +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl 165 +AC_ARG_ENABLE([shared], 166 + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], 167 + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], 168 + [p=${PACKAGE-default} 169 + case $enableval in 170 + yes) enable_shared=yes ;; 171 + no) enable_shared=no ;; 172 + *) 173 + enable_shared=no 174 + # Look at the argument we got. We use all the common list separators. 175 + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 176 + for pkg in $enableval; do 177 + IFS="$lt_save_ifs" 178 + if test "X$pkg" = "X$p"; then 179 + enable_shared=yes 180 + fi 181 + done 182 + IFS="$lt_save_ifs" 183 + ;; 184 + esac], 185 + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) 186 + 187 + _LT_DECL([build_libtool_libs], [enable_shared], [0], 188 + [Whether or not to build shared libraries]) 189 +])# _LT_ENABLE_SHARED 190 + 191 +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) 192 +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) 193 + 194 +# Old names: 195 +AC_DEFUN([AC_ENABLE_SHARED], 196 +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) 197 +]) 198 + 199 +AC_DEFUN([AC_DISABLE_SHARED], 200 +[_LT_SET_OPTION([LT_INIT], [disable-shared]) 201 +]) 202 + 203 +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) 204 +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) 205 + 206 +dnl aclocal-1.4 backwards compatibility: 207 +dnl AC_DEFUN([AM_ENABLE_SHARED], []) 208 +dnl AC_DEFUN([AM_DISABLE_SHARED], []) 209 + 210 + 211 + 212 +# _LT_ENABLE_STATIC([DEFAULT]) 213 +# ---------------------------- 214 +# implement the --enable-static flag, and support the `static' and 215 +# `disable-static' LT_INIT options. 216 +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 217 +m4_define([_LT_ENABLE_STATIC], 218 +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl 219 +AC_ARG_ENABLE([static], 220 + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], 221 + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], 222 + [p=${PACKAGE-default} 223 + case $enableval in 224 + yes) enable_static=yes ;; 225 + no) enable_static=no ;; 226 + *) 227 + enable_static=no 228 + # Look at the argument we got. We use all the common list separators. 229 + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 230 + for pkg in $enableval; do 231 + IFS="$lt_save_ifs" 232 + if test "X$pkg" = "X$p"; then 233 + enable_static=yes 234 + fi 235 + done 236 + IFS="$lt_save_ifs" 237 + ;; 238 + esac], 239 + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) 240 + 241 + _LT_DECL([build_old_libs], [enable_static], [0], 242 + [Whether or not to build static libraries]) 243 +])# _LT_ENABLE_STATIC 244 + 245 +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) 246 +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) 247 + 248 +# Old names: 249 +AC_DEFUN([AC_ENABLE_STATIC], 250 +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) 251 +]) 252 + 253 +AC_DEFUN([AC_DISABLE_STATIC], 254 +[_LT_SET_OPTION([LT_INIT], [disable-static]) 255 +]) 256 + 257 +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) 258 +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) 259 + 260 +dnl aclocal-1.4 backwards compatibility: 261 +dnl AC_DEFUN([AM_ENABLE_STATIC], []) 262 +dnl AC_DEFUN([AM_DISABLE_STATIC], []) 263 + 264 + 265 + 266 +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) 267 +# ---------------------------------- 268 +# implement the --enable-fast-install flag, and support the `fast-install' 269 +# and `disable-fast-install' LT_INIT options. 270 +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 271 +m4_define([_LT_ENABLE_FAST_INSTALL], 272 +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl 273 +AC_ARG_ENABLE([fast-install], 274 + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], 275 + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], 276 + [p=${PACKAGE-default} 277 + case $enableval in 278 + yes) enable_fast_install=yes ;; 279 + no) enable_fast_install=no ;; 280 + *) 281 + enable_fast_install=no 282 + # Look at the argument we got. We use all the common list separators. 283 + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 284 + for pkg in $enableval; do 285 + IFS="$lt_save_ifs" 286 + if test "X$pkg" = "X$p"; then 287 + enable_fast_install=yes 288 + fi 289 + done 290 + IFS="$lt_save_ifs" 291 + ;; 292 + esac], 293 + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) 294 + 295 +_LT_DECL([fast_install], [enable_fast_install], [0], 296 + [Whether or not to optimize for fast installation])dnl 297 +])# _LT_ENABLE_FAST_INSTALL 298 + 299 +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) 300 +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) 301 + 302 +# Old names: 303 +AU_DEFUN([AC_ENABLE_FAST_INSTALL], 304 +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) 305 +AC_DIAGNOSE([obsolete], 306 +[$0: Remove this warning and the call to _LT_SET_OPTION when you put 307 +the `fast-install' option into LT_INIT's first parameter.]) 308 +]) 309 + 310 +AU_DEFUN([AC_DISABLE_FAST_INSTALL], 311 +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) 312 +AC_DIAGNOSE([obsolete], 313 +[$0: Remove this warning and the call to _LT_SET_OPTION when you put 314 +the `disable-fast-install' option into LT_INIT's first parameter.]) 315 +]) 316 + 317 +dnl aclocal-1.4 backwards compatibility: 318 +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) 319 +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) 320 + 321 + 322 +# _LT_WITH_PIC([MODE]) 323 +# -------------------- 324 +# implement the --with-pic flag, and support the `pic-only' and `no-pic' 325 +# LT_INIT options. 326 +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. 327 +m4_define([_LT_WITH_PIC], 328 +[AC_ARG_WITH([pic], 329 + [AS_HELP_STRING([--with-pic], 330 + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], 331 + [pic_mode="$withval"], 332 + [pic_mode=default]) 333 + 334 +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) 335 + 336 +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl 337 +])# _LT_WITH_PIC 338 + 339 +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) 340 +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) 341 + 342 +# Old name: 343 +AU_DEFUN([AC_LIBTOOL_PICMODE], 344 +[_LT_SET_OPTION([LT_INIT], [pic-only]) 345 +AC_DIAGNOSE([obsolete], 346 +[$0: Remove this warning and the call to _LT_SET_OPTION when you 347 +put the `pic-only' option into LT_INIT's first parameter.]) 348 +]) 349 + 350 +dnl aclocal-1.4 backwards compatibility: 351 +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) 352 + 353 +## ----------------- ## 354 +## LTDL_INIT Options ## 355 +## ----------------- ## 356 + 357 +m4_define([_LTDL_MODE], []) 358 +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], 359 + [m4_define([_LTDL_MODE], [nonrecursive])]) 360 +LT_OPTION_DEFINE([LTDL_INIT], [recursive], 361 + [m4_define([_LTDL_MODE], [recursive])]) 362 +LT_OPTION_DEFINE([LTDL_INIT], [subproject], 363 + [m4_define([_LTDL_MODE], [subproject])]) 364 + 365 +m4_define([_LTDL_TYPE], []) 366 +LT_OPTION_DEFINE([LTDL_INIT], [installable], 367 + [m4_define([_LTDL_TYPE], [installable])]) 368 +LT_OPTION_DEFINE([LTDL_INIT], [convenience], 369 + [m4_define([_LTDL_TYPE], [convenience])])
Added m4/ltsugar.m4.
1 +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- 2 +# 3 +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. 4 +# Written by Gary V. Vaughan, 2004 5 +# 6 +# This file is free software; the Free Software Foundation gives 7 +# unlimited permission to copy and/or distribute it, with or without 8 +# modifications, as long as this notice is preserved. 9 + 10 +# serial 6 ltsugar.m4 11 + 12 +# This is to help aclocal find these macros, as it can't see m4_define. 13 +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) 14 + 15 + 16 +# lt_join(SEP, ARG1, [ARG2...]) 17 +# ----------------------------- 18 +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their 19 +# associated separator. 20 +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier 21 +# versions in m4sugar had bugs. 22 +m4_define([lt_join], 23 +[m4_if([$#], [1], [], 24 + [$#], [2], [[$2]], 25 + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) 26 +m4_define([_lt_join], 27 +[m4_if([$#$2], [2], [], 28 + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) 29 + 30 + 31 +# lt_car(LIST) 32 +# lt_cdr(LIST) 33 +# ------------ 34 +# Manipulate m4 lists. 35 +# These macros are necessary as long as will still need to support 36 +# Autoconf-2.59 which quotes differently. 37 +m4_define([lt_car], [[$1]]) 38 +m4_define([lt_cdr], 39 +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], 40 + [$#], 1, [], 41 + [m4_dquote(m4_shift($@))])]) 42 +m4_define([lt_unquote], $1) 43 + 44 + 45 +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) 46 +# ------------------------------------------ 47 +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. 48 +# Note that neither SEPARATOR nor STRING are expanded; they are appended 49 +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). 50 +# No SEPARATOR is output if MACRO-NAME was previously undefined (different 51 +# than defined and empty). 52 +# 53 +# This macro is needed until we can rely on Autoconf 2.62, since earlier 54 +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. 55 +m4_define([lt_append], 56 +[m4_define([$1], 57 + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) 58 + 59 + 60 + 61 +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) 62 +# ---------------------------------------------------------- 63 +# Produce a SEP delimited list of all paired combinations of elements of 64 +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list 65 +# has the form PREFIXmINFIXSUFFIXn. 66 +# Needed until we can rely on m4_combine added in Autoconf 2.62. 67 +m4_define([lt_combine], 68 +[m4_if(m4_eval([$# > 3]), [1], 69 + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl 70 +[[m4_foreach([_Lt_prefix], [$2], 71 + [m4_foreach([_Lt_suffix], 72 + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, 73 + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) 74 + 75 + 76 +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) 77 +# ----------------------------------------------------------------------- 78 +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited 79 +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. 80 +m4_define([lt_if_append_uniq], 81 +[m4_ifdef([$1], 82 + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], 83 + [lt_append([$1], [$2], [$3])$4], 84 + [$5])], 85 + [lt_append([$1], [$2], [$3])$4])]) 86 + 87 + 88 +# lt_dict_add(DICT, KEY, VALUE) 89 +# ----------------------------- 90 +m4_define([lt_dict_add], 91 +[m4_define([$1($2)], [$3])]) 92 + 93 + 94 +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) 95 +# -------------------------------------------- 96 +m4_define([lt_dict_add_subkey], 97 +[m4_define([$1($2:$3)], [$4])]) 98 + 99 + 100 +# lt_dict_fetch(DICT, KEY, [SUBKEY]) 101 +# ---------------------------------- 102 +m4_define([lt_dict_fetch], 103 +[m4_ifval([$3], 104 + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), 105 + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) 106 + 107 + 108 +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) 109 +# ----------------------------------------------------------------- 110 +m4_define([lt_if_dict_fetch], 111 +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], 112 + [$5], 113 + [$6])]) 114 + 115 + 116 +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) 117 +# -------------------------------------------------------------- 118 +m4_define([lt_dict_filter], 119 +[m4_if([$5], [], [], 120 + [lt_join(m4_quote(m4_default([$4], [[, ]])), 121 + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), 122 + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl 123 +])
Added m4/ltversion.m4.
1 +# ltversion.m4 -- version numbers -*- Autoconf -*- 2 +# 3 +# Copyright (C) 2004 Free Software Foundation, Inc. 4 +# Written by Scott James Remnant, 2004 5 +# 6 +# This file is free software; the Free Software Foundation gives 7 +# unlimited permission to copy and/or distribute it, with or without 8 +# modifications, as long as this notice is preserved. 9 + 10 +# @configure_input@ 11 + 12 +# serial 3293 ltversion.m4 13 +# This file is part of GNU Libtool 14 + 15 +m4_define([LT_PACKAGE_VERSION], [2.4]) 16 +m4_define([LT_PACKAGE_REVISION], [1.3293]) 17 + 18 +AC_DEFUN([LTVERSION_VERSION], 19 +[macro_version='2.4' 20 +macro_revision='1.3293' 21 +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 +_LT_DECL(, macro_revision, 0) 23 +])
Added m4/lt~obsolete.m4.
1 +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- 2 +# 3 +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. 4 +# Written by Scott James Remnant, 2004. 5 +# 6 +# This file is free software; the Free Software Foundation gives 7 +# unlimited permission to copy and/or distribute it, with or without 8 +# modifications, as long as this notice is preserved. 9 + 10 +# serial 5 lt~obsolete.m4 11 + 12 +# These exist entirely to fool aclocal when bootstrapping libtool. 13 +# 14 +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) 15 +# which have later been changed to m4_define as they aren't part of the 16 +# exported API, or moved to Autoconf or Automake where they belong. 17 +# 18 +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN 19 +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us 20 +# using a macro with the same name in our local m4/libtool.m4 it'll 21 +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define 22 +# and doesn't know about Autoconf macros at all.) 23 +# 24 +# So we provide this file, which has a silly filename so it's always 25 +# included after everything else. This provides aclocal with the 26 +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything 27 +# because those macros already exist, or will be overwritten later. 28 +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 29 +# 30 +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. 31 +# Yes, that means every name once taken will need to remain here until 32 +# we give up compatibility with versions before 1.7, at which point 33 +# we need to keep only those names which we still refer to. 34 + 35 +# This is to help aclocal find these macros, as it can't see m4_define. 36 +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) 37 + 38 +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) 39 +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) 40 +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) 41 +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) 42 +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) 43 +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) 44 +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) 45 +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) 46 +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) 47 +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) 48 +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) 49 +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) 50 +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) 51 +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) 52 +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) 53 +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) 54 +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) 55 +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) 56 +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) 57 +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) 58 +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) 59 +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) 60 +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) 61 +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) 62 +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) 63 +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) 64 +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) 65 +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) 66 +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) 67 +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) 68 +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) 69 +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) 70 +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) 71 +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) 72 +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) 73 +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) 74 +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) 75 +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) 76 +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) 77 +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) 78 +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) 79 +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) 80 +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) 81 +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) 82 +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) 83 +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) 84 +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) 85 +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) 86 +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) 87 +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) 88 +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) 89 +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) 90 +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) 91 +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) 92 +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) 93 +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) 94 +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) 95 +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) 96 +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) 97 +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) 98 +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
Added mainpage.doxy.
1 +/** \mainpage notitle 2 + 3 +\section Introduction 4 + 5 +ReadOSM is a C open source library to extract valid data from within an Open 6 +Street Map input file. Such OSM files come in two different formats: 7 + - files identified by the <b>.osm</b> suffix simply are plain XML files. 8 + - files identified by the <b>.pbf</b> suffix contain the same 9 + data, but adopting the Google's Protocol Buffer serialization format (a 10 + more concise and compressed binary notation, thus requiring much less 11 + storage space). 12 + 13 +The ReadOSM design goals are: 14 + - to be simple and lightweight 15 + - to be stable, robust and efficient 16 + - to be easily and universally portable. 17 + - making the whole parsing process of both .osm or .pbf files 18 + completely transparent from the application own perspective. 19 + 20 +ReadOSM is structurally simple and quite light-weight (typically about 20K of object 21 +code, stripped). ReadOSM has only two key dependencies: 22 + - zlib (the well known ZIP library), which is used to decompress zipped binary 23 + blocks internally stored within .pbf files. 24 + - expat (a widely used XML parsing library), which is used to parse XML .osm files. 25 + - both libraries are widely available on many platforms. 26 + 27 +Building and installing ReadOSM is straightforward: 28 +\verbatim 29 +./configure 30 +make 31 +make install 32 +\endverbatim 33 + 34 +Linking ReadOSM to your own code is usually simple: 35 +\verbatim 36 +gcc my_program.c -o my_program -lreadosm 37 +\endverbatim 38 + 39 +On some systems you may have to provide a slightly more complex arrangement: 40 +\verbatim 41 +gcc -I/usr/local/include my_program.c -o my_program \ 42 + -L/usr/local/lib -lreadosm -lexpat -lz 43 +\endverbatim 44 + 45 +ReadOSM also provides pkg-config support, so you can also do: 46 +\verbatim 47 +gcc `pkg-config --cflags readosm` my_program.c -o my_program `pkg-config --libs readosm` 48 +\endverbatim 49 + 50 +I originally developed ReadOSM simply in order to allow the SpatiaLite's 51 +own CLI tools to acquire both OSM .osm and .pbf files indifferently. 52 +Anyway I feel that supporting OSM files import/parsing in a simple and easy 53 +way could be useful to many other developers, so I quickly decided to 54 +implement all this stuff as a self-standing library. 55 + 56 +ReadOSM is licensed under the MPL tri-license terms: you are free to choose the 57 +best-fit license between: 58 + - the MPL 1.1 59 + - the GPL v2.0 or any subsequent version 60 + - the LGPL v2.1 or any subsequent version 61 + 62 +Enjoy, and happy coding 63 +*/ 64 + 65 +/** \page intro About Open Street Map datasets 66 + 67 +Open Street Map aka \b OSM [http://www.openstreetmap.org/] is a very popular 68 +community project aimed to produced a map of the world; this map is absolutely 69 +free and is released under the ODbL license terms 70 +[http://opendatacommons.org/licenses/odbl/]. 71 + 72 +Selected portions [by Country / Region] of the OSM map are available on the 73 +following download sites: 74 +- http://download.geofabrik.de/ 75 +- http://downloads.cloudmade.com/ 76 + 77 +The best known format used to ship OSM datasets is based on XML; we'll 78 +shortly examine the XML general layout so to explain the objects used 79 +by the OSM data model and their mutual relationships. 80 + 81 +\section Node 82 + 83 +A Node simply corresponds to a 2D POINT Geometry; the geographic coordinates 84 +are always expressed as Longitude and Latitude (corresponding to SRID 4326).<br> 85 +A Node doesn't simply have a geometry; it's usually characterized by several data 86 +attributes: 87 +- \b id: a number uniquely identifying each Node object. 88 +- \b lon and \b lat: the geographic Longitude and Latitude of the Point. 89 +- \b version: a progressive number identifying subsequent versions of the same object. 90 +- \b changeset: a progressive number identifying a "changeset", i.e. a batch insert/update 91 +performed by same user. 92 +- \b user: nickname of the user committing the changeset. 93 +- \b uid: a number uniquely identifying the user 94 +- \b timestemp: commit date-time 95 +- \b tag-list: any object may eventually be further qualified using arbitrary \b key:value pairs. 96 + 97 +The following is the XML general layout used to represent a Node object: 98 +\verbatim 99 +<node id="12345" lat="6.66666" lon="7.77777" version="1" changeset="54321" user="some-user" uid="66" timestamp="2005-02-28T17:45:15Z"> 100 + <tag key="created_by" value="JOSM" /> 101 + <tag key="tourism" value="camp_site" /> 102 +</node> 103 +\endverbatim 104 + 105 +\section Way 106 + 107 +A Way corresponds to a 2D LINESTRING Geometry: anyway the vertices never are directly 108 +defined within the Way itself; a list of indirectly referenced Nodes (<b><nd ref></b> items) is required instead.<br> 109 +The data attributes characterizing a Way are more or less the same used for Nodes, and with identical meaning; 110 +and for Ways too an arbitrary collection of Tags (\b key:value pairs) is supported. 111 + 112 +The following is the XML general layout used to represent a Way object: 113 +\verbatim 114 +<way id="12345" version="1" changeset="54321" user="some-user" uid="66" timestamp="2005-02-28T17:45:15Z"> 115 + <nd ref="12345" /> 116 + <nd ref="12346" /> 117 + <nd ref="12347" /> 118 + <tag key="created_by" value="JOSM" /> 119 + <tag key="tourism" value="camp_site" /> 120 +</way> 121 +\endverbatim 122 + 123 +\section Relation 124 + 125 +A Relation is a complex object: it can correspond to a 2D POLYGON, or to a 2D MULTILINESTRING, or even to a 2D GEOMETRYCOLLECTION.<br> 126 +A Relation object can reference any other kind of OSM objects: each <b><member></b> item can address a Node object, 127 +a Way object or another Relation object; the \b type attribute will always specify the nature of the referenced object, 128 +and the optional \b role attribute may eventually better specify the intended scope.<br> 129 +The data attributes characterizing a Relation are exactly the same used for Ways, and with identical meaning; 130 +and for Relations too an arbitrary collection of Tags (\b key:value pairs) is supported. 131 + 132 +The following is the XML general layout used to represent a Relation object: 133 +\verbatim 134 +<relation id="12345" version="1" changeset="54321" user="some-user" uid="66" timestamp="2005-02-28T17:45:15Z"> 135 + <member type="way" ref="12345" role="outer" /> 136 + <member type="way" ref="12346" role="inner" /> 137 + <tag key="created_by" value="JOSM" /> 138 + <tag key="tourism" value="camp_site" /> 139 +</relation> 140 +\endverbatim 141 +*/ 142 + 143 +/** \page formats Open Street Map file formats 144 + 145 +There are two distinct formats used to ship OSM datasets: both contains the exact same 146 +information, but the internal layout is radically different. 147 + 148 +\section osm XML (.osm) files 149 + 150 +OSM files based on the XML notation are widely used: usually they are identified by the <b>.osm</b> suffix.<br> 151 +XML is notoriously verbose and usually requires lots of storage space; happily enough, XML it's strongly compressible.<br> 152 +Accordingly to this consideration, the most commonly found OSM files are identified by the <b>.osm.bz2</b> suffix: 153 +this practically means that the <b>.osm</b> (XML) file has been compressed using <b>bzip2</b>. 154 +In order to actually process a <b>.osm.bz2</b> OSM file a two-steps approach is always required: 155 +- decompressing the file (using <b>bunzip2</b> or some other tool) 156 +- then parsing the resulting <b>.osm</b> file 157 +- please note: the inflated file will require about 10/15 times the amount space required 158 + by the compressed file; many OSM XML files could actually be impressively huge (several GB). 159 + 160 +\section pbf Protocol Buffer (.pbf) files 161 + 162 +An alternative OSM file format is based on the Google's Protocol Buffer encoding 163 +[https://developers.google.com/protocol-buffers/docs/encoding]<br> 164 +This OSM format is based on a public and documented specification: [http://wiki.openstreetmap.org/wiki/PBF_Format]<br> 165 + 166 +OSM files based on Protocol Buffer encoding are usually identified by the <b>.pbf</b> suffix.<br> 167 +The main benefit coming from using <b>.pbf</b> files is in that they are much more compact 168 +(smaller size) than the corresponding <b>.osm.bz2</b>; and they can be immediately parsed, no 169 +preliminary decompression step being required at all.<br> 170 + 171 +\section readosm Why using ReadOSM ? 172 + 173 +The intended scope of <b>ReadOSM</b> is to allow transparent parsing of both OSM formats indifferently. 174 +There is no need to take care of any internal low-level aspect, because the library itself silently handles any required step. 175 +The simple and easy abstract interface implemented by ReadOSM is exactly intended so to allow many 176 +reader-apps to consume OSM-input files in the most painless way; and all this requires only a 177 +very limited memory footprint. 178 + 179 +*/ 180 + 181 +/** \page readosm ReadOSM basic architecture 182 + 183 +ReadOSM implements a very simple and straightforward interface; there are only three methods: 184 +- <b>readosm_open()</b>: this function is intended to establish a connection to some OSM input file. 185 +- <b>readosm_close()</b>: this function is intended to terminate a previously established connection. 186 +- <b>readosm_parse()</b>: a single function dispatching the whole parsing process (mainly based on <b>callback functions</b>). 187 + 188 +Accordingly to the above premises, implementing a complete OSM parser is incredibly simple: 189 + 190 +\verbatim 191 +#include <readosm.h> 192 + 193 +static int 194 +parse_node (const void *user_data, const readosm_node * node) 195 +{ 196 +/* callback function consuming Node objects */ 197 + struct some_user_defined_struct *my_struct = 198 + (struct some_user_defined_struct *) user_data; 199 + 200 + ... some smart code ... 201 + 202 + return READOSM_OK; 203 +} 204 + 205 +static int 206 +parse_way (const void *user_data, const readosm_way * way) 207 +{ 208 +/* callback function consuming Way objects */ 209 + struct some_user_defined_struct *my_struct = 210 + (struct some_user_defined_struct *) user_data; 211 + 212 + ... some smart code ... 213 + 214 + return READOSM_OK; 215 +} 216 + 217 +static int 218 +parse_relation (const void *user_data, const readosm_relation * relation) 219 +{ 220 +/* callback function consuming Relation objects */ 221 + struct some_user_defined_struct *my_struct = 222 + (struct some_user_defined_struct *) user_data; 223 + 224 + ... some smart code ... 225 + 226 + return READOSM_OK; 227 +} 228 + 229 +int main () 230 +{ 231 +/* the basic OSM parser implementation */ 232 + int ret; 233 + const void *handle; 234 + struct some_user_defined_struct my_struct; 235 + 236 + ret = readosm_open ("path-to-some-OSM-file", &handle); 237 + 238 + ... error handling intentionally suppressed ... 239 + 240 + ret = readosm_parse (handle, &my_struct, parse_node, parse_way, parse_relation); 241 + 242 + ... error handling intentionally suppressed ... 243 + 244 + ret = readosm_close (handle); 245 + 246 + ... error handling intentionally suppressed ... 247 + 248 + return 0; 249 +} 250 +\endverbatim 251 + 252 +So the real programming work is simply the one required in order to implement the callback-functions own code.<br> 253 +You can usefully read and study the <b>Examples</b> code-samples in order to get any other relevant information about this topic. 254 + 255 +*/
Added makefile.vc.
1 +# $Id: makefile.vc 2012/05/05 Sandro Furieri $ 2 +# 3 +# NMAKE Makefile to build libreadosm on Windows 4 +# 5 +!INCLUDE nmake.opt 6 + 7 +LIBOBJ = src\readosm.obj src\osmxml.obj \ 8 + src\protobuf.obj src\osm_objects.obj 9 +READOSM_DLL = readosm$(VERSION).dll 10 + 11 +CFLAGS = /nologo -IC:\OSGeo4W\include -Iheaders $(OPTFLAGS) 12 + 13 +default: all 14 + 15 +all: readosm.lib readosm_i.lib 16 + 17 +readosm.lib: $(LIBOBJ) 18 + if exist readosm.lib del readosm.lib 19 + lib /out:readosm.lib $(LIBOBJ) 20 + 21 +$(READOSM_DLL): readosm_i.lib 22 + 23 +readosm_i.lib: $(LIBOBJ) 24 + link /debug /dll /out:$(READOSM_DLL) \ 25 + /implib:readosm_i.lib $(LIBOBJ) \ 26 + C:\OSGeo4w\lib\libexpat.lib C:\OSGeo4w\lib\zlib.lib 27 + if exist $(FREEXL_DLL).manifest mt -manifest \ 28 + $(FREEXL_DLL).manifest -outputresource:$(FREEXL_DLL);2 29 + 30 +.c.obj: 31 + $(CC) $(CFLAGS) /c $*.c /Fo$@ 32 + 33 +clean: 34 + del *.dll 35 + del *.exp 36 + del *.manifest 37 + del *.lib 38 + del *.obj 39 + del *.pdb 40 + 41 +install: all 42 + -mkdir $(INSTDIR) 43 + -mkdir $(INSTDIR)\bin 44 + -mkdir $(INSTDIR)\lib 45 + -mkdir $(INSTDIR)\include 46 + copy *.dll $(INSTDIR)\bin 47 + copy *.lib $(INSTDIR)\lib 48 + copy headers\readosm.h $(INSTDIR)\include 49 +
Added missing.
1 +#! /bin/sh 2 +# Common stub for a few missing GNU programs while installing. 3 + 4 +scriptversion=2009-04-28.21; # UTC 5 + 6 +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 7 +# 2008, 2009 Free Software Foundation, Inc. 8 +# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9 + 10 +# This program is free software; you can redistribute it and/or modify 11 +# it under the terms of the GNU General Public License as published by 12 +# the Free Software Foundation; either version 2, or (at your option) 13 +# any later version. 14 + 15 +# This program is distributed in the hope that it will be useful, 16 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 17 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 +# GNU General Public License for more details. 19 + 20 +# You should have received a copy of the GNU General Public License 21 +# along with this program. If not, see <http://www.gnu.org/licenses/>. 22 + 23 +# As a special exception to the GNU General Public License, if you 24 +# distribute this file as part of a program that contains a 25 +# configuration script generated by Autoconf, you may include it under 26 +# the same distribution terms that you use for the rest of that program. 27 + 28 +if test $# -eq 0; then 29 + echo 1>&2 "Try \`$0 --help' for more information" 30 + exit 1 31 +fi 32 + 33 +run=: 34 +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 35 +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' 36 + 37 +# In the cases where this matters, `missing' is being run in the 38 +# srcdir already. 39 +if test -f configure.ac; then 40 + configure_ac=configure.ac 41 +else 42 + configure_ac=configure.in 43 +fi 44 + 45 +msg="missing on your system" 46 + 47 +case $1 in 48 +--run) 49 + # Try to run requested program, and just exit if it succeeds. 50 + run= 51 + shift 52 + "$@" && exit 0 53 + # Exit code 63 means version mismatch. This often happens 54 + # when the user try to use an ancient version of a tool on 55 + # a file that requires a minimum version. In this case we 56 + # we should proceed has if the program had been absent, or 57 + # if --run hadn't been passed. 58 + if test $? = 63; then 59 + run=: 60 + msg="probably too old" 61 + fi 62 + ;; 63 + 64 + -h|--h|--he|--hel|--help) 65 + echo "\ 66 +$0 [OPTION]... PROGRAM [ARGUMENT]... 67 + 68 +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 69 +error status if there is no known handling for PROGRAM. 70 + 71 +Options: 72 + -h, --help display this help and exit 73 + -v, --version output version information and exit 74 + --run try to run the given command, and emulate it if it fails 75 + 76 +Supported PROGRAM values: 77 + aclocal touch file \`aclocal.m4' 78 + autoconf touch file \`configure' 79 + autoheader touch file \`config.h.in' 80 + autom4te touch the output file, or create a stub one 81 + automake touch all \`Makefile.in' files 82 + bison create \`y.tab.[ch]', if possible, from existing .[ch] 83 + flex create \`lex.yy.c', if possible, from existing .c 84 + help2man touch the output file 85 + lex create \`lex.yy.c', if possible, from existing .c 86 + makeinfo touch the output file 87 + tar try tar, gnutar, gtar, then tar without non-portable flags 88 + yacc create \`y.tab.[ch]', if possible, from existing .[ch] 89 + 90 +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and 91 +\`g' are ignored when checking the name. 92 + 93 +Send bug reports to <bug-automake@gnu.org>." 94 + exit $? 95 + ;; 96 + 97 + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 98 + echo "missing $scriptversion (GNU Automake)" 99 + exit $? 100 + ;; 101 + 102 + -*) 103 + echo 1>&2 "$0: Unknown \`$1' option" 104 + echo 1>&2 "Try \`$0 --help' for more information" 105 + exit 1 106 + ;; 107 + 108 +esac 109 + 110 +# normalize program name to check for. 111 +program=`echo "$1" | sed ' 112 + s/^gnu-//; t 113 + s/^gnu//; t 114 + s/^g//; t'` 115 + 116 +# Now exit if we have it, but it failed. Also exit now if we 117 +# don't have it and --version was passed (most likely to detect 118 +# the program). This is about non-GNU programs, so use $1 not 119 +# $program. 120 +case $1 in 121 + lex*|yacc*) 122 + # Not GNU programs, they don't have --version. 123 + ;; 124 + 125 + tar*) 126 + if test -n "$run"; then 127 + echo 1>&2 "ERROR: \`tar' requires --run" 128 + exit 1 129 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 130 + exit 1 131 + fi 132 + ;; 133 + 134 + *) 135 + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 136 + # We have it, but it failed. 137 + exit 1 138 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 139 + # Could not run --version or --help. This is probably someone 140 + # running `$TOOL --version' or `$TOOL --help' to check whether 141 + # $TOOL exists and not knowing $TOOL uses missing. 142 + exit 1 143 + fi 144 + ;; 145 +esac 146 + 147 +# If it does not exist, or fails to run (possibly an outdated version), 148 +# try to emulate it. 149 +case $program in 150 + aclocal*) 151 + echo 1>&2 "\ 152 +WARNING: \`$1' is $msg. You should only need it if 153 + you modified \`acinclude.m4' or \`${configure_ac}'. You might want 154 + to install the \`Automake' and \`Perl' packages. Grab them from 155 + any GNU archive site." 156 + touch aclocal.m4 157 + ;; 158 + 159 + autoconf*) 160 + echo 1>&2 "\ 161 +WARNING: \`$1' is $msg. You should only need it if 162 + you modified \`${configure_ac}'. You might want to install the 163 + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 164 + archive site." 165 + touch configure 166 + ;; 167 + 168 + autoheader*) 169 + echo 1>&2 "\ 170 +WARNING: \`$1' is $msg. You should only need it if 171 + you modified \`acconfig.h' or \`${configure_ac}'. You might want 172 + to install the \`Autoconf' and \`GNU m4' packages. Grab them 173 + from any GNU archive site." 174 + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 175 + test -z "$files" && files="config.h" 176 + touch_files= 177 + for f in $files; do 178 + case $f in 179 + *:*) touch_files="$touch_files "`echo "$f" | 180 + sed -e 's/^[^:]*://' -e 's/:.*//'`;; 181 + *) touch_files="$touch_files $f.in";; 182 + esac 183 + done 184 + touch $touch_files 185 + ;; 186 + 187 + automake*) 188 + echo 1>&2 "\ 189 +WARNING: \`$1' is $msg. You should only need it if 190 + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 191 + You might want to install the \`Automake' and \`Perl' packages. 192 + Grab them from any GNU archive site." 193 + find . -type f -name Makefile.am -print | 194 + sed 's/\.am$/.in/' | 195 + while read f; do touch "$f"; done 196 + ;; 197 + 198 + autom4te*) 199 + echo 1>&2 "\ 200 +WARNING: \`$1' is needed, but is $msg. 201 + You might have modified some files without having the 202 + proper tools for further handling them. 203 + You can get \`$1' as part of \`Autoconf' from any GNU 204 + archive site." 205 + 206 + file=`echo "$*" | sed -n "$sed_output"` 207 + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 208 + if test -f "$file"; then 209 + touch $file 210 + else 211 + test -z "$file" || exec >$file 212 + echo "#! /bin/sh" 213 + echo "# Created by GNU Automake missing as a replacement of" 214 + echo "# $ $@" 215 + echo "exit 0" 216 + chmod +x $file 217 + exit 1 218 + fi 219 + ;; 220 + 221 + bison*|yacc*) 222 + echo 1>&2 "\ 223 +WARNING: \`$1' $msg. You should only need it if 224 + you modified a \`.y' file. You may need the \`Bison' package 225 + in order for those modifications to take effect. You can get 226 + \`Bison' from any GNU archive site." 227 + rm -f y.tab.c y.tab.h 228 + if test $# -ne 1; then 229 + eval LASTARG="\${$#}" 230 + case $LASTARG in 231 + *.y) 232 + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 233 + if test -f "$SRCFILE"; then 234 + cp "$SRCFILE" y.tab.c 235 + fi 236 + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 237 + if test -f "$SRCFILE"; then 238 + cp "$SRCFILE" y.tab.h 239 + fi 240 + ;; 241 + esac 242 + fi 243 + if test ! -f y.tab.h; then 244 + echo >y.tab.h 245 + fi 246 + if test ! -f y.tab.c; then 247 + echo 'main() { return 0; }' >y.tab.c 248 + fi 249 + ;; 250 + 251 + lex*|flex*) 252 + echo 1>&2 "\ 253 +WARNING: \`$1' is $msg. You should only need it if 254 + you modified a \`.l' file. You may need the \`Flex' package 255 + in order for those modifications to take effect. You can get 256 + \`Flex' from any GNU archive site." 257 + rm -f lex.yy.c 258 + if test $# -ne 1; then 259 + eval LASTARG="\${$#}" 260 + case $LASTARG in 261 + *.l) 262 + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 263 + if test -f "$SRCFILE"; then 264 + cp "$SRCFILE" lex.yy.c 265 + fi 266 + ;; 267 + esac 268 + fi 269 + if test ! -f lex.yy.c; then 270 + echo 'main() { return 0; }' >lex.yy.c 271 + fi 272 + ;; 273 + 274 + help2man*) 275 + echo 1>&2 "\ 276 +WARNING: \`$1' is $msg. You should only need it if 277 + you modified a dependency of a manual page. You may need the 278 + \`Help2man' package in order for those modifications to take 279 + effect. You can get \`Help2man' from any GNU archive site." 280 + 281 + file=`echo "$*" | sed -n "$sed_output"` 282 + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 283 + if test -f "$file"; then 284 + touch $file 285 + else 286 + test -z "$file" || exec >$file 287 + echo ".ab help2man is required to generate this page" 288 + exit $? 289 + fi 290 + ;; 291 + 292 + makeinfo*) 293 + echo 1>&2 "\ 294 +WARNING: \`$1' is $msg. You should only need it if 295 + you modified a \`.texi' or \`.texinfo' file, or any other file 296 + indirectly affecting the aspect of the manual. The spurious 297 + call might also be the consequence of using a buggy \`make' (AIX, 298 + DU, IRIX). You might want to install the \`Texinfo' package or 299 + the \`GNU make' package. Grab either from any GNU archive site." 300 + # The file to touch is that specified with -o ... 301 + file=`echo "$*" | sed -n "$sed_output"` 302 + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 303 + if test -z "$file"; then 304 + # ... or it is the one specified with @setfilename ... 305 + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 306 + file=`sed -n ' 307 + /^@setfilename/{ 308 + s/.* \([^ ]*\) *$/\1/ 309 + p 310 + q 311 + }' $infile` 312 + # ... or it is derived from the source name (dir/f.texi becomes f.info) 313 + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 314 + fi 315 + # If the file does not exist, the user really needs makeinfo; 316 + # let's fail without touching anything. 317 + test -f $file || exit 1 318 + touch $file 319 + ;; 320 + 321 + tar*) 322 + shift 323 + 324 + # We have already tried tar in the generic part. 325 + # Look for gnutar/gtar before invocation to avoid ugly error 326 + # messages. 327 + if (gnutar --version > /dev/null 2>&1); then 328 + gnutar "$@" && exit 0 329 + fi 330 + if (gtar --version > /dev/null 2>&1); then 331 + gtar "$@" && exit 0 332 + fi 333 + firstarg="$1" 334 + if shift; then 335 + case $firstarg in 336 + *o*) 337 + firstarg=`echo "$firstarg" | sed s/o//` 338 + tar "$firstarg" "$@" && exit 0 339 + ;; 340 + esac 341 + case $firstarg in 342 + *h*) 343 + firstarg=`echo "$firstarg" | sed s/h//` 344 + tar "$firstarg" "$@" && exit 0 345 + ;; 346 + esac 347 + fi 348 + 349 + echo 1>&2 "\ 350 +WARNING: I can't seem to be able to run \`tar' with the given arguments. 351 + You may want to install GNU tar or Free paxutils, or check the 352 + command line arguments." 353 + exit 1 354 + ;; 355 + 356 + *) 357 + echo 1>&2 "\ 358 +WARNING: \`$1' is needed, and is $msg. 359 + You might have modified some files without having the 360 + proper tools for further handling them. Check the \`README' file, 361 + it often tells you about the needed prerequisites for installing 362 + this package. You may also peek at any GNU archive site, in case 363 + some other package would contain this missing \`$1' program." 364 + exit 1 365 + ;; 366 +esac 367 + 368 +exit 0 369 + 370 +# Local variables: 371 +# eval: (add-hook 'write-file-hooks 'time-stamp) 372 +# time-stamp-start: "scriptversion=" 373 +# time-stamp-format: "%:y-%02m-%02d.%02H" 374 +# time-stamp-time-zone: "UTC" 375 +# time-stamp-end: "; # UTC" 376 +# End:
Added nmake.opt.
1 +# Directory tree where ReadOSM will be installed. 2 +INSTDIR=C:\OSGeo4W 3 + 4 +# Uncomment the first for an optimized build, or the second for debug. 5 +OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \ 6 + /DDLL_EXPORT 7 +#OPTFLAGS= /nologo /Zi /MD /Fdreadosm.pdb /DDLL_EXPORT 8 + 9 +# Set the version number for the DLL. Normally we leave this blank since 10 +# we want software that is dynamically loading the DLL to have no problem 11 +# with version numbers. 12 +VERSION= 13 +
Added readosm.pc.in.
1 +# Package Information for pkg-config 2 + 3 +prefix=@prefix@ 4 +exec_prefix=@exec_prefix@ 5 +libdir=@libdir@ 6 +includedir=@includedir@ 7 + 8 +Name: readosm 9 +Description: a simple library parsing Open Street Map files 10 +Version: @VERSION@ 11 +Libs: -L${libdir} -lreadosm -lz -lexpat 12 +Cflags: -I${includedir}
Added src/Makefile.am.
1 + 2 +AM_CPPFLAGS = -I$(top_srcdir)/headers 3 +AM_CPPFLAGS += -I$(top_srcdir) 4 + 5 +lib_LTLIBRARIES = libreadosm.la 6 + 7 +libreadosm_la_SOURCES = readosm.c osm_objects.c osmxml.c protobuf.c 8 + 9 +libreadosm_la_CFLAGS = -fvisibility=hidden 10 +libreadosm_la_LDFLAGS = -version-info 1:0:0 -no-undefined 11 + 12 +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda
Added src/Makefile.in.
1 +# Makefile.in generated by automake 1.14.1 from Makefile.am. 2 +# @configure_input@ 3 + 4 +# Copyright (C) 1994-2013 Free Software Foundation, Inc. 5 + 6 +# This Makefile.in is free software; the Free Software Foundation 7 +# gives unlimited permission to copy and/or distribute it, 8 +# with or without modifications, as long as this notice is preserved. 9 + 10 +# This program is distributed in the hope that it will be useful, 11 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 +# PARTICULAR PURPOSE. 14 + 15 +@SET_MAKE@ 16 + 17 +VPATH = @srcdir@ 18 +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 19 +am__make_running_with_option = \ 20 + case $${target_option-} in \ 21 + ?) ;; \ 22 + *) echo "am__make_running_with_option: internal error: invalid" \ 23 + "target option '$${target_option-}' specified" >&2; \ 24 + exit 1;; \ 25 + esac; \ 26 + has_opt=no; \ 27 + sane_makeflags=$$MAKEFLAGS; \ 28 + if $(am__is_gnu_make); then \ 29 + sane_makeflags=$$MFLAGS; \ 30 + else \ 31 + case $$MAKEFLAGS in \ 32 + *\\[\ \ ]*) \ 33 + bs=\\; \ 34 + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ 35 + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ 36 + esac; \ 37 + fi; \ 38 + skip_next=no; \ 39 + strip_trailopt () \ 40 + { \ 41 + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ 42 + }; \ 43 + for flg in $$sane_makeflags; do \ 44 + test $$skip_next = yes && { skip_next=no; continue; }; \ 45 + case $$flg in \ 46 + *=*|--*) continue;; \ 47 + -*I) strip_trailopt 'I'; skip_next=yes;; \ 48 + -*I?*) strip_trailopt 'I';; \ 49 + -*O) strip_trailopt 'O'; skip_next=yes;; \ 50 + -*O?*) strip_trailopt 'O';; \ 51 + -*l) strip_trailopt 'l'; skip_next=yes;; \ 52 + -*l?*) strip_trailopt 'l';; \ 53 + -[dEDm]) skip_next=yes;; \ 54 + -[JT]) skip_next=yes;; \ 55 + esac; \ 56 + case $$flg in \ 57 + *$$target_option*) has_opt=yes; break;; \ 58 + esac; \ 59 + done; \ 60 + test $$has_opt = yes 61 +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) 62 +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 63 +pkgdatadir = $(datadir)/@PACKAGE@ 64 +pkgincludedir = $(includedir)/@PACKAGE@ 65 +pkglibdir = $(libdir)/@PACKAGE@ 66 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 67 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 68 +install_sh_DATA = $(install_sh) -c -m 644 69 +install_sh_PROGRAM = $(install_sh) -c 70 +install_sh_SCRIPT = $(install_sh) -c 71 +INSTALL_HEADER = $(INSTALL_DATA) 72 +transform = $(program_transform_name) 73 +NORMAL_INSTALL = : 74 +PRE_INSTALL = : 75 +POST_INSTALL = : 76 +NORMAL_UNINSTALL = : 77 +PRE_UNINSTALL = : 78 +POST_UNINSTALL = : 79 +build_triplet = @build@ 80 +host_triplet = @host@ 81 +subdir = src 82 +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ 83 + $(top_srcdir)/depcomp 84 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 85 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ 86 + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 87 + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 88 + $(top_srcdir)/configure.ac 89 +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 90 + $(ACLOCAL_M4) 91 +mkinstalldirs = $(install_sh) -d 92 +CONFIG_HEADER = $(top_builddir)/config.h 93 +CONFIG_CLEAN_FILES = 94 +CONFIG_CLEAN_VPATH_FILES = 95 +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 96 +am__vpath_adj = case $$p in \ 97 + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 98 + *) f=$$p;; \ 99 + esac; 100 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; 101 +am__install_max = 40 102 +am__nobase_strip_setup = \ 103 + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` 104 +am__nobase_strip = \ 105 + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" 106 +am__nobase_list = $(am__nobase_strip_setup); \ 107 + for p in $$list; do echo "$$p $$p"; done | \ 108 + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ 109 + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ 110 + if (++n[$$2] == $(am__install_max)) \ 111 + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ 112 + END { for (dir in files) print dir, files[dir] }' 113 +am__base_list = \ 114 + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ 115 + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' 116 +am__uninstall_files_from_dir = { \ 117 + test -z "$$files" \ 118 + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ 119 + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ 120 + $(am__cd) "$$dir" && rm -f $$files; }; \ 121 + } 122 +am__installdirs = "$(DESTDIR)$(libdir)" 123 +LTLIBRARIES = $(lib_LTLIBRARIES) 124 +libreadosm_la_LIBADD = 125 +am_libreadosm_la_OBJECTS = libreadosm_la-readosm.lo \ 126 + libreadosm_la-osm_objects.lo libreadosm_la-osmxml.lo \ 127 + libreadosm_la-protobuf.lo 128 +libreadosm_la_OBJECTS = $(am_libreadosm_la_OBJECTS) 129 +AM_V_lt = $(am__v_lt_@AM_V@) 130 +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) 131 +am__v_lt_0 = --silent 132 +am__v_lt_1 = 133 +libreadosm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ 134 + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libreadosm_la_CFLAGS) \ 135 + $(CFLAGS) $(libreadosm_la_LDFLAGS) $(LDFLAGS) -o $@ 136 +AM_V_P = $(am__v_P_@AM_V@) 137 +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) 138 +am__v_P_0 = false 139 +am__v_P_1 = : 140 +AM_V_GEN = $(am__v_GEN_@AM_V@) 141 +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 142 +am__v_GEN_0 = @echo " GEN " $@; 143 +am__v_GEN_1 = 144 +AM_V_at = $(am__v_at_@AM_V@) 145 +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 146 +am__v_at_0 = @ 147 +am__v_at_1 = 148 +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) 149 +depcomp = $(SHELL) $(top_srcdir)/depcomp 150 +am__depfiles_maybe = depfiles 151 +am__mv = mv -f 152 +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 153 + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 154 +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ 155 + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ 156 + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ 157 + $(AM_CFLAGS) $(CFLAGS) 158 +AM_V_CC = $(am__v_CC_@AM_V@) 159 +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 160 +am__v_CC_0 = @echo " CC " $@; 161 +am__v_CC_1 = 162 +CCLD = $(CC) 163 +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ 164 + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ 165 + $(AM_LDFLAGS) $(LDFLAGS) -o $@ 166 +AM_V_CCLD = $(am__v_CCLD_@AM_V@) 167 +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 168 +am__v_CCLD_0 = @echo " CCLD " $@; 169 +am__v_CCLD_1 = 170 +SOURCES = $(libreadosm_la_SOURCES) 171 +DIST_SOURCES = $(libreadosm_la_SOURCES) 172 +am__can_run_installinfo = \ 173 + case $$AM_UPDATE_INFO_DIR in \ 174 + n|no|NO) false;; \ 175 + *) (install-info --version) >/dev/null 2>&1;; \ 176 + esac 177 +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) 178 +# Read a list of newline-separated strings from the standard input, 179 +# and print each of them once, without duplicates. Input order is 180 +# *not* preserved. 181 +am__uniquify_input = $(AWK) '\ 182 + BEGIN { nonempty = 0; } \ 183 + { items[$$0] = 1; nonempty = 1; } \ 184 + END { if (nonempty) { for (i in items) print i; }; } \ 185 +' 186 +# Make sure the list of sources is unique. This is necessary because, 187 +# e.g., the same source file might be shared among _SOURCES variables 188 +# for different programs/libraries. 189 +am__define_uniq_tagged_files = \ 190 + list='$(am__tagged_files)'; \ 191 + unique=`for i in $$list; do \ 192 + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 193 + done | $(am__uniquify_input)` 194 +ETAGS = etags 195 +CTAGS = ctags 196 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 197 +ACLOCAL = @ACLOCAL@ 198 +AMTAR = @AMTAR@ 199 +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 200 +AR = @AR@ 201 +AS = @AS@ 202 +AUTOCONF = @AUTOCONF@ 203 +AUTOHEADER = @AUTOHEADER@ 204 +AUTOMAKE = @AUTOMAKE@ 205 +AWK = @AWK@ 206 +CC = @CC@ 207 +CCDEPMODE = @CCDEPMODE@ 208 +CFLAGS = @CFLAGS@ 209 +CPP = @CPP@ 210 +CPPFLAGS = @CPPFLAGS@ 211 +CXX = @CXX@ 212 +CXXCPP = @CXXCPP@ 213 +CXXDEPMODE = @CXXDEPMODE@ 214 +CXXFLAGS = @CXXFLAGS@ 215 +CYGPATH_W = @CYGPATH_W@ 216 +DEFS = @DEFS@ 217 +DEPDIR = @DEPDIR@ 218 +DLLTOOL = @DLLTOOL@ 219 +DSYMUTIL = @DSYMUTIL@ 220 +DUMPBIN = @DUMPBIN@ 221 +ECHO_C = @ECHO_C@ 222 +ECHO_N = @ECHO_N@ 223 +ECHO_T = @ECHO_T@ 224 +EGREP = @EGREP@ 225 +EXEEXT = @EXEEXT@ 226 +FGREP = @FGREP@ 227 +GREP = @GREP@ 228 +INSTALL = @INSTALL@ 229 +INSTALL_DATA = @INSTALL_DATA@ 230 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ 231 +INSTALL_SCRIPT = @INSTALL_SCRIPT@ 232 +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 233 +LD = @LD@ 234 +LDFLAGS = @LDFLAGS@ 235 +LIBOBJS = @LIBOBJS@ 236 +LIBS = @LIBS@ 237 +LIBTOOL = @LIBTOOL@ 238 +LIPO = @LIPO@ 239 +LN_S = @LN_S@ 240 +LTLIBOBJS = @LTLIBOBJS@ 241 +MAINT = @MAINT@ 242 +MAKEINFO = @MAKEINFO@ 243 +MANIFEST_TOOL = @MANIFEST_TOOL@ 244 +MKDIR_P = @MKDIR_P@ 245 +NM = @NM@ 246 +NMEDIT = @NMEDIT@ 247 +OBJDUMP = @OBJDUMP@ 248 +OBJEXT = @OBJEXT@ 249 +OTOOL = @OTOOL@ 250 +OTOOL64 = @OTOOL64@ 251 +PACKAGE = @PACKAGE@ 252 +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 253 +PACKAGE_NAME = @PACKAGE_NAME@ 254 +PACKAGE_STRING = @PACKAGE_STRING@ 255 +PACKAGE_TARNAME = @PACKAGE_TARNAME@ 256 +PACKAGE_URL = @PACKAGE_URL@ 257 +PACKAGE_VERSION = @PACKAGE_VERSION@ 258 +PATH_SEPARATOR = @PATH_SEPARATOR@ 259 +RANLIB = @RANLIB@ 260 +SED = @SED@ 261 +SET_MAKE = @SET_MAKE@ 262 +SHELL = @SHELL@ 263 +STRIP = @STRIP@ 264 +VERSION = @VERSION@ 265 +abs_builddir = @abs_builddir@ 266 +abs_srcdir = @abs_srcdir@ 267 +abs_top_builddir = @abs_top_builddir@ 268 +abs_top_srcdir = @abs_top_srcdir@ 269 +ac_ct_AR = @ac_ct_AR@ 270 +ac_ct_CC = @ac_ct_CC@ 271 +ac_ct_CXX = @ac_ct_CXX@ 272 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 273 +am__include = @am__include@ 274 +am__leading_dot = @am__leading_dot@ 275 +am__quote = @am__quote@ 276 +am__tar = @am__tar@ 277 +am__untar = @am__untar@ 278 +bindir = @bindir@ 279 +build = @build@ 280 +build_alias = @build_alias@ 281 +build_cpu = @build_cpu@ 282 +build_os = @build_os@ 283 +build_vendor = @build_vendor@ 284 +builddir = @builddir@ 285 +datadir = @datadir@ 286 +datarootdir = @datarootdir@ 287 +docdir = @docdir@ 288 +dvidir = @dvidir@ 289 +exec_prefix = @exec_prefix@ 290 +host = @host@ 291 +host_alias = @host_alias@ 292 +host_cpu = @host_cpu@ 293 +host_os = @host_os@ 294 +host_vendor = @host_vendor@ 295 +htmldir = @htmldir@ 296 +includedir = @includedir@ 297 +infodir = @infodir@ 298 +install_sh = @install_sh@ 299 +libdir = @libdir@ 300 +libexecdir = @libexecdir@ 301 +localedir = @localedir@ 302 +localstatedir = @localstatedir@ 303 +mandir = @mandir@ 304 +mkdir_p = @mkdir_p@ 305 +oldincludedir = @oldincludedir@ 306 +pdfdir = @pdfdir@ 307 +prefix = @prefix@ 308 +program_transform_name = @program_transform_name@ 309 +psdir = @psdir@ 310 +sbindir = @sbindir@ 311 +sharedstatedir = @sharedstatedir@ 312 +srcdir = @srcdir@ 313 +sysconfdir = @sysconfdir@ 314 +target_alias = @target_alias@ 315 +top_build_prefix = @top_build_prefix@ 316 +top_builddir = @top_builddir@ 317 +top_srcdir = @top_srcdir@ 318 +AM_CPPFLAGS = -I$(top_srcdir)/headers -I$(top_srcdir) 319 +lib_LTLIBRARIES = libreadosm.la 320 +libreadosm_la_SOURCES = readosm.c osm_objects.c osmxml.c protobuf.c 321 +libreadosm_la_CFLAGS = -fvisibility=hidden 322 +libreadosm_la_LDFLAGS = -version-info 1:0:0 -no-undefined 323 +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda 324 +all: all-am 325 + 326 +.SUFFIXES: 327 +.SUFFIXES: .c .lo .o .obj 328 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 329 + @for dep in $?; do \ 330 + case '$(am__configure_deps)' in \ 331 + *$$dep*) \ 332 + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ 333 + && { if test -f $@; then exit 0; else break; fi; }; \ 334 + exit 1;; \ 335 + esac; \ 336 + done; \ 337 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ 338 + $(am__cd) $(top_srcdir) && \ 339 + $(AUTOMAKE) --gnu src/Makefile 340 +.PRECIOUS: Makefile 341 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 342 + @case '$?' in \ 343 + *config.status*) \ 344 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 345 + *) \ 346 + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ 347 + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 348 + esac; 349 + 350 +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 351 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 352 + 353 +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 354 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 355 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 356 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 357 +$(am__aclocal_m4_deps): 358 + 359 +install-libLTLIBRARIES: $(lib_LTLIBRARIES) 360 + @$(NORMAL_INSTALL) 361 + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ 362 + list2=; for p in $$list; do \ 363 + if test -f $$p; then \ 364 + list2="$$list2 $$p"; \ 365 + else :; fi; \ 366 + done; \ 367 + test -z "$$list2" || { \ 368 + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ 369 + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ 370 + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ 371 + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ 372 + } 373 + 374 +uninstall-libLTLIBRARIES: 375 + @$(NORMAL_UNINSTALL) 376 + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ 377 + for p in $$list; do \ 378 + $(am__strip_dir) \ 379 + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ 380 + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ 381 + done 382 + 383 +clean-libLTLIBRARIES: 384 + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) 385 + @list='$(lib_LTLIBRARIES)'; \ 386 + locs=`for p in $$list; do echo $$p; done | \ 387 + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ 388 + sort -u`; \ 389 + test -z "$$locs" || { \ 390 + echo rm -f $${locs}; \ 391 + rm -f $${locs}; \ 392 + } 393 + 394 +libreadosm.la: $(libreadosm_la_OBJECTS) $(libreadosm_la_DEPENDENCIES) $(EXTRA_libreadosm_la_DEPENDENCIES) 395 + $(AM_V_CCLD)$(libreadosm_la_LINK) -rpath $(libdir) $(libreadosm_la_OBJECTS) $(libreadosm_la_LIBADD) $(LIBS) 396 + 397 +mostlyclean-compile: 398 + -rm -f *.$(OBJEXT) 399 + 400 +distclean-compile: 401 + -rm -f *.tab.c 402 + 403 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreadosm_la-osm_objects.Plo@am__quote@ 404 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreadosm_la-osmxml.Plo@am__quote@ 405 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreadosm_la-protobuf.Plo@am__quote@ 406 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libreadosm_la-readosm.Plo@am__quote@ 407 + 408 +.c.o: 409 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 410 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 411 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 412 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 413 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< 414 + 415 +.c.obj: 416 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 417 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 418 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 419 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 420 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 421 + 422 +.c.lo: 423 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 424 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo 425 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ 426 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 427 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< 428 + 429 +libreadosm_la-readosm.lo: readosm.c 430 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreadosm_la_CFLAGS) $(CFLAGS) -MT libreadosm_la-readosm.lo -MD -MP -MF $(DEPDIR)/libreadosm_la-readosm.Tpo -c -o libreadosm_la-readosm.lo `test -f 'readosm.c' || echo '$(srcdir)/'`readosm.c 431 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libreadosm_la-readosm.Tpo $(DEPDIR)/libreadosm_la-readosm.Plo 432 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readosm.c' object='libreadosm_la-readosm.lo' libtool=yes @AMDEPBACKSLASH@ 433 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 434 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreadosm_la_CFLAGS) $(CFLAGS) -c -o libreadosm_la-readosm.lo `test -f 'readosm.c' || echo '$(srcdir)/'`readosm.c 435 + 436 +libreadosm_la-osm_objects.lo: osm_objects.c 437 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreadosm_la_CFLAGS) $(CFLAGS) -MT libreadosm_la-osm_objects.lo -MD -MP -MF $(DEPDIR)/libreadosm_la-osm_objects.Tpo -c -o libreadosm_la-osm_objects.lo `test -f 'osm_objects.c' || echo '$(srcdir)/'`osm_objects.c 438 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libreadosm_la-osm_objects.Tpo $(DEPDIR)/libreadosm_la-osm_objects.Plo 439 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='osm_objects.c' object='libreadosm_la-osm_objects.lo' libtool=yes @AMDEPBACKSLASH@ 440 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 441 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreadosm_la_CFLAGS) $(CFLAGS) -c -o libreadosm_la-osm_objects.lo `test -f 'osm_objects.c' || echo '$(srcdir)/'`osm_objects.c 442 + 443 +libreadosm_la-osmxml.lo: osmxml.c 444 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreadosm_la_CFLAGS) $(CFLAGS) -MT libreadosm_la-osmxml.lo -MD -MP -MF $(DEPDIR)/libreadosm_la-osmxml.Tpo -c -o libreadosm_la-osmxml.lo `test -f 'osmxml.c' || echo '$(srcdir)/'`osmxml.c 445 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libreadosm_la-osmxml.Tpo $(DEPDIR)/libreadosm_la-osmxml.Plo 446 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='osmxml.c' object='libreadosm_la-osmxml.lo' libtool=yes @AMDEPBACKSLASH@ 447 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 448 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreadosm_la_CFLAGS) $(CFLAGS) -c -o libreadosm_la-osmxml.lo `test -f 'osmxml.c' || echo '$(srcdir)/'`osmxml.c 449 + 450 +libreadosm_la-protobuf.lo: protobuf.c 451 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreadosm_la_CFLAGS) $(CFLAGS) -MT libreadosm_la-protobuf.lo -MD -MP -MF $(DEPDIR)/libreadosm_la-protobuf.Tpo -c -o libreadosm_la-protobuf.lo `test -f 'protobuf.c' || echo '$(srcdir)/'`protobuf.c 452 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libreadosm_la-protobuf.Tpo $(DEPDIR)/libreadosm_la-protobuf.Plo 453 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='protobuf.c' object='libreadosm_la-protobuf.lo' libtool=yes @AMDEPBACKSLASH@ 454 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 455 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libreadosm_la_CFLAGS) $(CFLAGS) -c -o libreadosm_la-protobuf.lo `test -f 'protobuf.c' || echo '$(srcdir)/'`protobuf.c 456 + 457 +mostlyclean-libtool: 458 + -rm -f *.lo 459 + 460 +clean-libtool: 461 + -rm -rf .libs _libs 462 + 463 +ID: $(am__tagged_files) 464 + $(am__define_uniq_tagged_files); mkid -fID $$unique 465 +tags: tags-am 466 +TAGS: tags 467 + 468 +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 469 + set x; \ 470 + here=`pwd`; \ 471 + $(am__define_uniq_tagged_files); \ 472 + shift; \ 473 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 474 + test -n "$$unique" || unique=$$empty_fix; \ 475 + if test $$# -gt 0; then \ 476 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 477 + "$$@" $$unique; \ 478 + else \ 479 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 480 + $$unique; \ 481 + fi; \ 482 + fi 483 +ctags: ctags-am 484 + 485 +CTAGS: ctags 486 +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 487 + $(am__define_uniq_tagged_files); \ 488 + test -z "$(CTAGS_ARGS)$$unique" \ 489 + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 490 + $$unique 491 + 492 +GTAGS: 493 + here=`$(am__cd) $(top_builddir) && pwd` \ 494 + && $(am__cd) $(top_srcdir) \ 495 + && gtags -i $(GTAGS_ARGS) "$$here" 496 +cscopelist: cscopelist-am 497 + 498 +cscopelist-am: $(am__tagged_files) 499 + list='$(am__tagged_files)'; \ 500 + case "$(srcdir)" in \ 501 + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ 502 + *) sdir=$(subdir)/$(srcdir) ;; \ 503 + esac; \ 504 + for i in $$list; do \ 505 + if test -f "$$i"; then \ 506 + echo "$(subdir)/$$i"; \ 507 + else \ 508 + echo "$$sdir/$$i"; \ 509 + fi; \ 510 + done >> $(top_builddir)/cscope.files 511 + 512 +distclean-tags: 513 + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 514 + 515 +distdir: $(DISTFILES) 516 + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 517 + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 518 + list='$(DISTFILES)'; \ 519 + dist_files=`for file in $$list; do echo $$file; done | \ 520 + sed -e "s|^$$srcdirstrip/||;t" \ 521 + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 522 + case $$dist_files in \ 523 + */*) $(MKDIR_P) `echo "$$dist_files" | \ 524 + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 525 + sort -u` ;; \ 526 + esac; \ 527 + for file in $$dist_files; do \ 528 + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 529 + if test -d $$d/$$file; then \ 530 + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 531 + if test -d "$(distdir)/$$file"; then \ 532 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 533 + fi; \ 534 + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 535 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 536 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 537 + fi; \ 538 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 539 + else \ 540 + test -f "$(distdir)/$$file" \ 541 + || cp -p $$d/$$file "$(distdir)/$$file" \ 542 + || exit 1; \ 543 + fi; \ 544 + done 545 +check-am: all-am 546 +check: check-am 547 +all-am: Makefile $(LTLIBRARIES) 548 +installdirs: 549 + for dir in "$(DESTDIR)$(libdir)"; do \ 550 + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 551 + done 552 +install: install-am 553 +install-exec: install-exec-am 554 +install-data: install-data-am 555 +uninstall: uninstall-am 556 + 557 +install-am: all-am 558 + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 559 + 560 +installcheck: installcheck-am 561 +install-strip: 562 + if test -z '$(STRIP)'; then \ 563 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 564 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 565 + install; \ 566 + else \ 567 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 568 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 569 + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ 570 + fi 571 +mostlyclean-generic: 572 + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) 573 + 574 +clean-generic: 575 + 576 +distclean-generic: 577 + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 578 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 579 + 580 +maintainer-clean-generic: 581 + @echo "This command is intended for maintainers to use" 582 + @echo "it deletes files that may require special tools to rebuild." 583 +clean: clean-am 584 + 585 +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ 586 + mostlyclean-am 587 + 588 +distclean: distclean-am 589 + -rm -rf ./$(DEPDIR) 590 + -rm -f Makefile 591 +distclean-am: clean-am distclean-compile distclean-generic \ 592 + distclean-tags 593 + 594 +dvi: dvi-am 595 + 596 +dvi-am: 597 + 598 +html: html-am 599 + 600 +html-am: 601 + 602 +info: info-am 603 + 604 +info-am: 605 + 606 +install-data-am: 607 + 608 +install-dvi: install-dvi-am 609 + 610 +install-dvi-am: 611 + 612 +install-exec-am: install-libLTLIBRARIES 613 + 614 +install-html: install-html-am 615 + 616 +install-html-am: 617 + 618 +install-info: install-info-am 619 + 620 +install-info-am: 621 + 622 +install-man: 623 + 624 +install-pdf: install-pdf-am 625 + 626 +install-pdf-am: 627 + 628 +install-ps: install-ps-am 629 + 630 +install-ps-am: 631 + 632 +installcheck-am: 633 + 634 +maintainer-clean: maintainer-clean-am 635 + -rm -rf ./$(DEPDIR) 636 + -rm -f Makefile 637 +maintainer-clean-am: distclean-am maintainer-clean-generic 638 + 639 +mostlyclean: mostlyclean-am 640 + 641 +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ 642 + mostlyclean-libtool 643 + 644 +pdf: pdf-am 645 + 646 +pdf-am: 647 + 648 +ps: ps-am 649 + 650 +ps-am: 651 + 652 +uninstall-am: uninstall-libLTLIBRARIES 653 + 654 +.MAKE: install-am install-strip 655 + 656 +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ 657 + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ 658 + ctags-am distclean distclean-compile distclean-generic \ 659 + distclean-libtool distclean-tags distdir dvi dvi-am html \ 660 + html-am info info-am install install-am install-data \ 661 + install-data-am install-dvi install-dvi-am install-exec \ 662 + install-exec-am install-html install-html-am install-info \ 663 + install-info-am install-libLTLIBRARIES install-man install-pdf \ 664 + install-pdf-am install-ps install-ps-am install-strip \ 665 + installcheck installcheck-am installdirs maintainer-clean \ 666 + maintainer-clean-generic mostlyclean mostlyclean-compile \ 667 + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 668 + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES 669 + 670 + 671 +# Tell versions [3.59,3.63) of GNU make to not export all variables. 672 +# Otherwise a system limit (for SysV at least) may be exceeded. 673 +.NOEXPORT:
Added src/osm_objects.c.
1 +/* 2 +/ osm_object.c 3 +/ 4 +/ common OSM objects handling implementation 5 +/ 6 +/ version 1.0, 2012 April 21 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ ------------------------------------------------------------------------------ 11 +/ 12 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 13 +/ 14 +/ The contents of this file are subject to the Mozilla Public License Version 15 +/ 1.1 (the "License"); you may not use this file except in compliance with 16 +/ the License. You may obtain a copy of the License at 17 +/ http://www.mozilla.org/MPL/ 18 +/ 19 +/ Software distributed under the License is distributed on an "AS IS" basis, 20 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 21 +/ for the specific language governing rights and limitations under the 22 +/ License. 23 +/ 24 +/ The Original Code is the ReadOSM library 25 +/ 26 +/ The Initial Developer of the Original Code is Alessandro Furieri 27 +/ 28 +/ Portions created by the Initial Developer are Copyright (C) 2012 29 +/ the Initial Developer. All Rights Reserved. 30 +/ 31 +/ Contributor(s): 32 +/ 33 +/ Alternatively, the contents of this file may be used under the terms of 34 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 35 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 36 +/ in which case the provisions of the GPL or the LGPL are applicable instead 37 +/ of those above. If you wish to allow use of your version of this file only 38 +/ under the terms of either the GPL or the LGPL, and not to allow others to 39 +/ use your version of this file under the terms of the MPL, indicate your 40 +/ decision by deleting the provisions above and replace them with the notice 41 +/ and other provisions required by the GPL or the LGPL. If you do not delete 42 +/ the provisions above, a recipient may use your version of this file under 43 +/ the terms of any one of the MPL, the GPL or the LGPL. 44 +/ 45 +*/ 46 + 47 +#include <stdlib.h> 48 +#include <stdio.h> 49 +#include <string.h> 50 + 51 +#if defined(_WIN32) && !defined(__MINGW32__) 52 +/* MSVC: avoiding to include at all config.h */ 53 +#else 54 +#include "config.h" 55 +#endif 56 + 57 +#include "readosm.h" 58 +#include "readosm_internals.h" 59 + 60 +static void 61 +release_internal_tag (readosm_internal_tag * tag) 62 +{ 63 +/* freeing an internal TAG object */ 64 + if (tag->key) 65 + free (tag->key); 66 + if (tag->value) 67 + free (tag->value); 68 +} 69 + 70 +READOSM_PRIVATE void 71 +release_internal_tag_block (readosm_internal_tag_block * tag_blk, int destroy) 72 +{ 73 +/* freeing an internal TAG block */ 74 + int i_tag; 75 + for (i_tag = 0; i_tag < tag_blk->next_item; i_tag++) 76 + release_internal_tag (tag_blk->tags + i_tag); 77 + if (destroy) 78 + free (tag_blk); 79 + else 80 + { 81 + tag_blk->next_item = 0; 82 + tag_blk->next = NULL; 83 + } 84 +} 85 + 86 +static void 87 +release_internal_member (readosm_internal_member * member) 88 +{ 89 +/* freeing an internal MEMBER object */ 90 + if (member->role) 91 + free (member->role); 92 +} 93 + 94 +READOSM_PRIVATE void 95 +release_internal_member_block (readosm_internal_member_block * mbr_blk, 96 + int destroy) 97 +{ 98 +/* freeing an internal MEMBER block */ 99 + int i_mbr; 100 + for (i_mbr = 0; i_mbr < mbr_blk->next_item; i_mbr++) 101 + release_internal_member (mbr_blk->members + i_mbr); 102 + if (destroy) 103 + free (mbr_blk); 104 + else 105 + { 106 + mbr_blk->next_item = 0; 107 + mbr_blk->next = NULL; 108 + } 109 +} 110 + 111 +READOSM_PRIVATE void 112 +init_export_tag (readosm_export_tag * tag) 113 +{ 114 +/* initializing an empty export TAG object */ 115 + if (tag == NULL) 116 + return; 117 + tag->key = NULL; 118 + tag->value = NULL; 119 +} 120 + 121 +READOSM_PRIVATE void 122 +reset_export_tag (readosm_export_tag * tag) 123 +{ 124 +/* resetting an export TAG object to initial empty state */ 125 + if (tag == NULL) 126 + return; 127 + if (tag->key) 128 + free (tag->key); 129 + if (tag->value) 130 + free (tag->value); 131 + init_export_tag (tag); 132 +} 133 + 134 +READOSM_PRIVATE void 135 +init_internal_node (readosm_internal_node * node) 136 +{ 137 +/* allocating an empty internal NODE object */ 138 + node->id = READOSM_UNDEFINED; 139 + node->latitude = READOSM_UNDEFINED; 140 + node->longitude = READOSM_UNDEFINED; 141 + node->version = READOSM_UNDEFINED; 142 + node->changeset = READOSM_UNDEFINED; 143 + node->user = NULL; 144 + node->uid = READOSM_UNDEFINED; 145 + node->timestamp = NULL; 146 + node->tag_count = 0; 147 + node->first_tag.next_item = 0; 148 + node->first_tag.next = NULL; 149 + node->last_tag = &(node->first_tag); 150 +} 151 + 152 +READOSM_PRIVATE void 153 +append_tag_to_node (readosm_internal_node * node, const char *key, 154 + const char *value) 155 +{ 156 +/* appending a TAG to a Node object */ 157 + int len; 158 + readosm_internal_tag_block *tag_blk = node->last_tag; 159 + readosm_internal_tag *tag; 160 + if (tag_blk->next_item < READOSM_BLOCK_SZ) 161 + { 162 + /* a free Tag slot is available from the current block */ 163 + tag = tag_blk->tags + tag_blk->next_item; 164 + tag_blk->next_item += 1; 165 + } 166 + else 167 + { 168 + /* appending a further Tag block */ 169 + tag_blk = malloc (sizeof (readosm_internal_tag_block)); 170 + tag_blk->next_item = 1; 171 + tag_blk->next = NULL; 172 + tag = tag_blk->tags; 173 + node->last_tag->next = tag_blk; 174 + node->last_tag = tag_blk; 175 + } 176 + 177 +/* initializing the Tag */ 178 + len = strlen (key); 179 + tag->key = malloc (len + 1); 180 + strcpy (tag->key, key); 181 + len = strlen (value); 182 + tag->value = malloc (len + 1); 183 + strcpy (tag->value, value); 184 +} 185 + 186 +READOSM_PRIVATE void 187 +destroy_internal_node (readosm_internal_node * node) 188 +{ 189 +/* destroying an internal NODE object */ 190 + readosm_internal_tag_block *tag_blk; 191 + readosm_internal_tag_block *tag_blk_n; 192 + if (node == NULL) 193 + return; 194 + if (node->user) 195 + free (node->user); 196 + if (node->timestamp) 197 + free (node->timestamp); 198 + tag_blk = &(node->first_tag); 199 + while (tag_blk) 200 + { 201 + tag_blk_n = tag_blk->next; 202 + if (tag_blk == &(node->first_tag)) 203 + release_internal_tag_block (tag_blk, 0); 204 + else 205 + release_internal_tag_block (tag_blk, 1); 206 + tag_blk = tag_blk_n; 207 + } 208 + node->last_tag = &(node->first_tag); 209 +} 210 + 211 +static void 212 +init_export_node (readosm_export_node * node) 213 +{ 214 +/* initializing an empty export NODE object */ 215 + if (node == NULL) 216 + return; 217 + node->id = READOSM_UNDEFINED; 218 + node->latitude = READOSM_UNDEFINED; 219 + node->longitude = READOSM_UNDEFINED; 220 + node->version = READOSM_UNDEFINED; 221 + node->changeset = READOSM_UNDEFINED; 222 + node->user = NULL; 223 + node->uid = READOSM_UNDEFINED; 224 + node->timestamp = NULL; 225 + node->tag_count = 0; 226 + node->tags = NULL; 227 +} 228 + 229 +static void 230 +reset_export_node (readosm_export_node * node) 231 +{ 232 +/* resetting an export NODE object to initial empty state */ 233 + int i; 234 + if (node == NULL) 235 + return; 236 + if (node->user) 237 + free (node->user); 238 + if (node->timestamp) 239 + free (node->timestamp); 240 + for (i = 0; i < node->tag_count; i++) 241 + { 242 + readosm_export_tag *tag = node->tags + i; 243 + reset_export_tag (tag); 244 + } 245 + if (node->tags) 246 + free (node->tags); 247 + init_export_node (node); 248 +} 249 + 250 +READOSM_PRIVATE readosm_internal_way * 251 +alloc_internal_way (void) 252 +{ 253 +/* allocating an empty internal WAY object */ 254 + readosm_internal_way *way = malloc (sizeof (readosm_internal_way)); 255 + way->id = 0; 256 + way->version = 0; 257 + way->changeset = 0; 258 + way->user = NULL; 259 + way->uid = 0; 260 + way->timestamp = NULL; 261 + way->ref_count = 0; 262 + way->first_ref.next_item = 0; 263 + way->first_ref.next = NULL; 264 + way->last_ref = &(way->first_ref); 265 + way->tag_count = 0; 266 + way->first_tag.next_item = 0; 267 + way->first_tag.next = NULL; 268 + way->last_tag = &(way->first_tag); 269 + return way; 270 +} 271 + 272 +READOSM_PRIVATE void 273 +append_reference_to_way (readosm_internal_way * way, long long node_ref) 274 +{ 275 +/* appending a NODE-REF to a WAY object */ 276 + readosm_internal_ref *ref = way->last_ref; 277 + if (ref->next_item < READOSM_BLOCK_SZ) 278 + { 279 + /* free Ref slot is available from the current block */ 280 + *(ref->node_refs + ref->next_item) = node_ref; 281 + ref->next_item += 1; 282 + } 283 + else 284 + { 285 + /* appending a further Ref block */ 286 + ref = malloc (sizeof (readosm_internal_ref)); 287 + *(ref->node_refs + 0) = node_ref; 288 + ref->next_item = 1; 289 + ref->next = NULL; 290 + way->last_ref->next = ref; 291 + way->last_ref = ref; 292 + } 293 +} 294 + 295 +READOSM_PRIVATE void 296 +append_tag_to_way (readosm_internal_way * way, const char *key, 297 + const char *value) 298 +{ 299 +/* appending a TAG to a WAY object */ 300 + int len; 301 + readosm_internal_tag_block *tag_blk = way->last_tag; 302 + readosm_internal_tag *tag; 303 + if (tag_blk->next_item < READOSM_BLOCK_SZ) 304 + { 305 + /* a free Tag slot is available from the current block */ 306 + tag = tag_blk->tags + tag_blk->next_item; 307 + tag_blk->next_item += 1; 308 + } 309 + else 310 + { 311 + /* appending a further Tag block */ 312 + tag_blk = malloc (sizeof (readosm_internal_tag_block)); 313 + tag_blk->next_item = 1; 314 + tag_blk->next = NULL; 315 + tag = tag_blk->tags; 316 + way->last_tag->next = tag_blk; 317 + way->last_tag = tag_blk; 318 + } 319 + 320 +/* initializing the Tag */ 321 + len = strlen (key); 322 + tag->key = malloc (len + 1); 323 + strcpy (tag->key, key); 324 + len = strlen (value); 325 + tag->value = malloc (len + 1); 326 + strcpy (tag->value, value); 327 +} 328 + 329 +READOSM_PRIVATE void 330 +destroy_internal_way (readosm_internal_way * way) 331 +{ 332 +/* destroying an internal WAY object */ 333 + readosm_internal_ref *ref; 334 + readosm_internal_ref *ref_n; 335 + readosm_internal_tag_block *tag_blk; 336 + readosm_internal_tag_block *tag_blk_n; 337 + if (way == NULL) 338 + return; 339 + if (way->user) 340 + free (way->user); 341 + if (way->timestamp) 342 + free (way->timestamp); 343 + ref = way->first_ref.next; 344 + while (ref) 345 + { 346 + ref_n = ref->next; 347 + free (ref); 348 + ref = ref_n; 349 + } 350 + tag_blk = &(way->first_tag); 351 + while (tag_blk) 352 + { 353 + tag_blk_n = tag_blk->next; 354 + if (tag_blk == &(way->first_tag)) 355 + release_internal_tag_block (tag_blk, 0); 356 + else 357 + release_internal_tag_block (tag_blk, 1); 358 + tag_blk = tag_blk_n; 359 + } 360 + free (way); 361 +} 362 + 363 +static void 364 +init_export_way (readosm_export_way * way) 365 +{ 366 +/* initializing an empty export WAY object */ 367 + if (way == NULL) 368 + return; 369 + way->id = 0; 370 + way->version = 0; 371 + way->changeset = 0; 372 + way->user = NULL; 373 + way->uid = 0; 374 + way->timestamp = NULL; 375 + way->node_ref_count = 0; 376 + way->node_refs = NULL; 377 + way->tag_count = 0; 378 + way->tags = NULL; 379 +} 380 + 381 +static void 382 +reset_export_way (readosm_export_way * way) 383 +{ 384 +/* resetting an export WAY object to initial empty state */ 385 + int i; 386 + if (way == NULL) 387 + return; 388 + if (way->user) 389 + free (way->user); 390 + if (way->timestamp) 391 + free (way->timestamp); 392 + if (way->node_refs) 393 + free (way->node_refs); 394 + for (i = 0; i < way->tag_count; i++) 395 + { 396 + readosm_export_tag *tag = way->tags + i; 397 + reset_export_tag (tag); 398 + } 399 + if (way->tags) 400 + free (way->tags); 401 + init_export_way (way); 402 +} 403 + 404 +static void 405 +init_export_member (readosm_export_member * member) 406 +{ 407 +/* initializing an empty export RELATION-MEMBER object */ 408 + if (member == NULL) 409 + return; 410 + member->member_type = READOSM_UNDEFINED; 411 + member->id = 0; 412 + member->role = NULL; 413 +} 414 + 415 +static void 416 +reset_export_member (readosm_export_member * member) 417 +{ 418 +/* resetting an export RELATION-MEMBER object to initial empty state */ 419 + if (member == NULL) 420 + return; 421 + if (member->role) 422 + free (member->role); 423 + init_export_member (member); 424 +} 425 + 426 +READOSM_PRIVATE readosm_internal_relation * 427 +alloc_internal_relation (void) 428 +{ 429 +/* allocating an empty internal RELATION object */ 430 + readosm_internal_relation *rel = 431 + malloc (sizeof (readosm_internal_relation)); 432 + rel->id = 0; 433 + rel->version = 0; 434 + rel->changeset = 0; 435 + rel->user = NULL; 436 + rel->uid = 0; 437 + rel->timestamp = NULL; 438 + rel->member_count = 0; 439 + rel->first_member.next_item = 0; 440 + rel->first_member.next = NULL; 441 + rel->last_member = &(rel->first_member); 442 + rel->tag_count = 0; 443 + rel->first_tag.next_item = 0; 444 + rel->first_tag.next = NULL; 445 + rel->last_tag = &(rel->first_tag); 446 + return rel; 447 +} 448 + 449 +READOSM_PRIVATE void 450 +append_member_to_relation (readosm_internal_relation * relation, int type, 451 + long long id, const char *role) 452 +{ 453 +/* appending a RELATION-MEMBER to a RELATION object */ 454 + int len; 455 + readosm_internal_member_block *mbr_blk = relation->last_member; 456 + readosm_internal_member *member; 457 + if (mbr_blk->next_item < READOSM_BLOCK_SZ) 458 + { 459 + /* a free Member slot is available from the current block */ 460 + member = mbr_blk->members + mbr_blk->next_item; 461 + mbr_blk->next_item += 1; 462 + } 463 + else 464 + { 465 + /* appending a further Member block */ 466 + mbr_blk = malloc (sizeof (readosm_internal_member_block)); 467 + mbr_blk->next_item = 1; 468 + mbr_blk->next = NULL; 469 + member = mbr_blk->members; 470 + relation->last_member->next = mbr_blk; 471 + relation->last_member = mbr_blk; 472 + } 473 + 474 + member->member_type = type; 475 + member->id = id; 476 + len = strlen (role); 477 + member->role = malloc (len + 1); 478 + strcpy (member->role, role); 479 +} 480 + 481 +READOSM_PRIVATE void 482 +append_tag_to_relation (readosm_internal_relation * relation, const char *key, 483 + const char *value) 484 +{ 485 +/* appending a TAG to a RELATION object */ 486 + int len; 487 + readosm_internal_tag_block *tag_blk = relation->last_tag; 488 + readosm_internal_tag *tag; 489 + if (tag_blk->next_item < READOSM_BLOCK_SZ) 490 + { 491 + /* a free Tag slot is available from the current block */ 492 + tag = tag_blk->tags + tag_blk->next_item; 493 + tag_blk->next_item += 1; 494 + } 495 + else 496 + { 497 + /* appending a further Tag block */ 498 + tag_blk = malloc (sizeof (readosm_internal_tag_block)); 499 + tag_blk->next_item = 1; 500 + tag_blk->next = NULL; 501 + tag = tag_blk->tags; 502 + relation->last_tag->next = tag_blk; 503 + relation->last_tag = tag_blk; 504 + } 505 + 506 +/* initializing the Tag */ 507 + len = strlen (key); 508 + tag->key = malloc (len + 1); 509 + strcpy (tag->key, key); 510 + len = strlen (value); 511 + tag->value = malloc (len + 1); 512 + strcpy (tag->value, value); 513 +} 514 + 515 +READOSM_PRIVATE void 516 +destroy_internal_relation (readosm_internal_relation * relation) 517 +{ 518 +/* destroying an internal RELATION object */ 519 + readosm_internal_member_block *mbr_blk; 520 + readosm_internal_member_block *mbr_blk_n; 521 + readosm_internal_tag_block *tag_blk; 522 + readosm_internal_tag_block *tag_blk_n; 523 + if (relation == NULL) 524 + return; 525 + if (relation->user) 526 + free (relation->user); 527 + if (relation->timestamp) 528 + free (relation->timestamp); 529 + mbr_blk = &(relation->first_member); 530 + while (mbr_blk) 531 + { 532 + mbr_blk_n = mbr_blk->next; 533 + if (mbr_blk == &(relation->first_member)) 534 + release_internal_member_block (mbr_blk, 0); 535 + else 536 + release_internal_member_block (mbr_blk, 1); 537 + mbr_blk = mbr_blk_n; 538 + } 539 + tag_blk = &(relation->first_tag); 540 + while (tag_blk) 541 + { 542 + tag_blk_n = tag_blk->next; 543 + if (tag_blk == &(relation->first_tag)) 544 + release_internal_tag_block (tag_blk, 0); 545 + else 546 + release_internal_tag_block (tag_blk, 1); 547 + tag_blk = tag_blk_n; 548 + } 549 + free (relation); 550 +} 551 + 552 +static void 553 +init_export_relation (readosm_export_relation * relation) 554 +{ 555 +/* initializing an empty export RELATION object */ 556 + if (relation == NULL) 557 + return; 558 + relation->id = 0; 559 + relation->version = 0; 560 + relation->changeset = 0; 561 + relation->user = NULL; 562 + relation->uid = 0; 563 + relation->timestamp = NULL; 564 + relation->member_count = 0; 565 + relation->members = NULL; 566 + relation->tag_count = 0; 567 + relation->tags = NULL; 568 +} 569 + 570 +static void 571 +reset_export_relation (readosm_export_relation * relation) 572 +{ 573 +/* resetting an export RELATION object to initial empty state */ 574 + int i; 575 + if (relation == NULL) 576 + return; 577 + if (relation->user) 578 + free (relation->user); 579 + if (relation->timestamp) 580 + free (relation->timestamp); 581 + for (i = 0; i < relation->member_count; i++) 582 + { 583 + readosm_export_member *member = relation->members + i; 584 + reset_export_member (member); 585 + } 586 + if (relation->members) 587 + free (relation->members); 588 + for (i = 0; i < relation->tag_count; i++) 589 + { 590 + readosm_export_tag *tag = relation->tags + i; 591 + reset_export_tag (tag); 592 + } 593 + if (relation->tags) 594 + free (relation->tags); 595 + init_export_relation (relation); 596 +} 597 + 598 + 599 +READOSM_PRIVATE int 600 +call_node_callback (readosm_node_callback node_callback, 601 + const void *user_data, readosm_internal_node * node) 602 +{ 603 +/* calling the Node-handling callback function */ 604 + int ret; 605 + int len; 606 + readosm_internal_tag *tag; 607 + readosm_internal_tag_block *tag_blk; 608 + int i_tag; 609 + readosm_export_node exp_node; 610 + 611 +/* 612 + / please note: READONLY-NODE simply is the same as export 613 + / NODE inteded to disabale any possible awful user action 614 +*/ 615 + readosm_node *readonly_node = (readosm_node *) & exp_node; 616 + 617 +/*initialing an empty export NODE object */ 618 + init_export_node (&exp_node); 619 + 620 +/* setting up the export NODE object */ 621 + exp_node.id = node->id; 622 + exp_node.latitude = node->latitude; 623 + exp_node.longitude = node->longitude; 624 + exp_node.version = node->version; 625 + exp_node.changeset = node->changeset; 626 + if (node->user != NULL) 627 + { 628 + len = strlen (node->user); 629 + exp_node.user = malloc (len + 1); 630 + strcpy (exp_node.user, node->user); 631 + } 632 + exp_node.uid = node->uid; 633 + if (node->timestamp != NULL) 634 + { 635 + len = strlen (node->timestamp); 636 + exp_node.timestamp = malloc (len + 1); 637 + strcpy (exp_node.timestamp, node->timestamp); 638 + } 639 + 640 +/* setting up the NODE-TAGs array */ 641 + tag_blk = &(node->first_tag); 642 + while (tag_blk) 643 + { 644 + exp_node.tag_count += tag_blk->next_item; 645 + tag_blk = tag_blk->next; 646 + } 647 + if (exp_node.tag_count > 0) 648 + { 649 + int i; 650 + readosm_export_tag *p_tag; 651 + exp_node.tags = 652 + malloc (sizeof (readosm_export_tag) * exp_node.tag_count); 653 + for (i = 0; i < exp_node.tag_count; i++) 654 + { 655 + p_tag = exp_node.tags + i; 656 + init_export_tag (p_tag); 657 + } 658 + i = 0; 659 + tag_blk = &(node->first_tag); 660 + while (tag_blk) 661 + { 662 + for (i_tag = 0; i_tag < tag_blk->next_item; i_tag++) 663 + { 664 + tag = tag_blk->tags + i_tag; 665 + p_tag = exp_node.tags + i; 666 + if (tag->key != NULL) 667 + { 668 + len = strlen (tag->key); 669 + p_tag->key = malloc (len + 1); 670 + strcpy (p_tag->key, tag->key); 671 + } 672 + if (tag->value != NULL) 673 + { 674 + len = strlen (tag->value); 675 + p_tag->value = malloc (len + 1); 676 + strcpy (p_tag->value, tag->value); 677 + } 678 + i++; 679 + } 680 + tag_blk = tag_blk->next; 681 + } 682 + } 683 + 684 +/* calling the user-defined NODE handling callback function */ 685 + ret = (*node_callback) (user_data, readonly_node); 686 + 687 +/* resetting the export WAY object */ 688 + reset_export_node (&exp_node); 689 + return ret; 690 +} 691 + 692 +READOSM_PRIVATE int 693 +call_way_callback (readosm_way_callback way_callback, 694 + const void *user_data, readosm_internal_way * way) 695 +{ 696 +/* calling the Way-handling callback function */ 697 + int ret; 698 + int len; 699 + int i; 700 + readosm_internal_ref *ref; 701 + readosm_internal_tag *tag; 702 + readosm_internal_tag_block *tag_blk; 703 + int i_tag; 704 + int i_ref; 705 + readosm_export_way exp_way; 706 + 707 +/* 708 + / please note: READONLY-WAY simply is the same as export 709 + / WAY inteded to disabale any possible awful user action 710 +*/ 711 + readosm_way *readonly_way = (readosm_way *) & exp_way; 712 + 713 +/*initialing an empty export WAY object */ 714 + init_export_way (&exp_way); 715 + 716 + exp_way.id = way->id; 717 + exp_way.version = way->version; 718 + exp_way.changeset = way->changeset; 719 + if (way->user != NULL) 720 + { 721 + len = strlen (way->user); 722 + exp_way.user = malloc (len + 1); 723 + strcpy (exp_way.user, way->user); 724 + } 725 + exp_way.uid = way->uid; 726 + if (way->timestamp != NULL) 727 + { 728 + len = strlen (way->timestamp); 729 + exp_way.timestamp = malloc (len + 1); 730 + strcpy (exp_way.timestamp, way->timestamp); 731 + } 732 + 733 + ref = &(way->first_ref); 734 + while (ref) 735 + { 736 + exp_way.node_ref_count += ref->next_item; 737 + ref = ref->next; 738 + } 739 + 740 +/* setting up the NODE-REFs array */ 741 + if (exp_way.node_ref_count > 0) 742 + { 743 + exp_way.node_refs = 744 + malloc (sizeof (long long) * exp_way.node_ref_count); 745 + i = 0; 746 + ref = &(way->first_ref); 747 + while (ref) 748 + { 749 + for (i_ref = 0; i_ref < ref->next_item; i_ref++) 750 + { 751 + *(exp_way.node_refs + i) = *(ref->node_refs + i_ref); 752 + i++; 753 + } 754 + ref = ref->next; 755 + } 756 + } 757 + 758 +/* setting up the WAY-TAGs array */ 759 + tag_blk = &(way->first_tag); 760 + while (tag_blk) 761 + { 762 + exp_way.tag_count += tag_blk->next_item; 763 + tag_blk = tag_blk->next; 764 + } 765 + if (exp_way.tag_count > 0) 766 + { 767 + readosm_export_tag *p_tag; 768 + exp_way.tags = 769 + malloc (sizeof (readosm_export_tag) * exp_way.tag_count); 770 + for (i = 0; i < exp_way.tag_count; i++) 771 + { 772 + p_tag = exp_way.tags + i; 773 + init_export_tag (p_tag); 774 + } 775 + i = 0; 776 + tag_blk = &(way->first_tag); 777 + while (tag_blk) 778 + { 779 + for (i_tag = 0; i_tag < tag_blk->next_item; i_tag++) 780 + { 781 + tag = tag_blk->tags + i_tag; 782 + p_tag = exp_way.tags + i; 783 + if (tag->key != NULL) 784 + { 785 + len = strlen (tag->key); 786 + p_tag->key = malloc (len + 1); 787 + strcpy (p_tag->key, tag->key); 788 + } 789 + if (tag->value != NULL) 790 + { 791 + len = strlen (tag->value); 792 + p_tag->value = malloc (len + 1); 793 + strcpy (p_tag->value, tag->value); 794 + } 795 + i++; 796 + } 797 + tag_blk = tag_blk->next; 798 + } 799 + } 800 + 801 +/* calling the user-defined WAY handling callback function */ 802 + ret = (*way_callback) (user_data, readonly_way); 803 + 804 +/* resetting the export WAY object */ 805 + reset_export_way (&exp_way); 806 + return ret; 807 +} 808 + 809 +READOSM_PRIVATE int 810 +call_relation_callback (readosm_relation_callback relation_callback, 811 + const void *user_data, 812 + readosm_internal_relation * relation) 813 +{ 814 +/* calling the Relation-handling callback function */ 815 + int ret; 816 + int len; 817 + int i; 818 + readosm_internal_member *member; 819 + readosm_internal_member_block *mbr_blk; 820 + int i_mbr; 821 + readosm_internal_tag *tag; 822 + readosm_internal_tag_block *tag_blk; 823 + int i_tag; 824 + readosm_export_relation exp_relation; 825 + 826 +/* 827 + / please note: READONLY-RELATION simply is the same as export 828 + / RELATION inteded to disabale any possible awful user action 829 +*/ 830 + readosm_relation *readonly_relation = (readosm_relation *) & exp_relation; 831 + 832 +/*initialing an empty export RELATION object */ 833 + init_export_relation (&exp_relation); 834 + 835 + exp_relation.id = relation->id; 836 + exp_relation.version = relation->version; 837 + exp_relation.changeset = relation->changeset; 838 + if (relation->user != NULL) 839 + { 840 + len = strlen (relation->user); 841 + exp_relation.user = malloc (len + 1); 842 + strcpy (exp_relation.user, relation->user); 843 + } 844 + exp_relation.uid = relation->uid; 845 + if (relation->timestamp != NULL) 846 + { 847 + len = strlen (relation->timestamp); 848 + exp_relation.timestamp = malloc (len + 1); 849 + strcpy (exp_relation.timestamp, relation->timestamp); 850 + } 851 + 852 +/* setting up the RELATION-MEMBERs array */ 853 + mbr_blk = &(relation->first_member); 854 + while (mbr_blk) 855 + { 856 + exp_relation.member_count += mbr_blk->next_item; 857 + mbr_blk = mbr_blk->next; 858 + } 859 + if (exp_relation.member_count > 0) 860 + { 861 + readosm_export_member *p_member; 862 + exp_relation.members = 863 + malloc (sizeof (readosm_export_member) * 864 + exp_relation.member_count); 865 + for (i = 0; i < exp_relation.member_count; i++) 866 + { 867 + p_member = exp_relation.members + i; 868 + init_export_member (p_member); 869 + } 870 + i = 0; 871 + mbr_blk = &(relation->first_member); 872 + while (mbr_blk) 873 + { 874 + for (i_mbr = 0; i_mbr < mbr_blk->next_item; i_mbr++) 875 + { 876 + member = mbr_blk->members + i_mbr; 877 + p_member = exp_relation.members + i; 878 + p_member->member_type = member->member_type; 879 + p_member->id = member->id; 880 + if (member->role != NULL) 881 + { 882 + len = strlen (member->role); 883 + p_member->role = malloc (len + 1); 884 + strcpy (p_member->role, member->role); 885 + } 886 + i++; 887 + } 888 + mbr_blk = mbr_blk->next; 889 + } 890 + } 891 + 892 +/* setting up the RELATION-TAGs array */ 893 + tag_blk = &(relation->first_tag); 894 + while (tag_blk) 895 + { 896 + exp_relation.tag_count += tag_blk->next_item; 897 + tag_blk = tag_blk->next; 898 + } 899 + if (exp_relation.tag_count > 0) 900 + { 901 + readosm_export_tag *p_tag; 902 + exp_relation.tags = 903 + malloc (sizeof (readosm_export_tag) * exp_relation.tag_count); 904 + for (i = 0; i < exp_relation.tag_count; i++) 905 + { 906 + p_tag = exp_relation.tags + i; 907 + init_export_tag (p_tag); 908 + } 909 + i = 0; 910 + tag_blk = &(relation->first_tag); 911 + while (tag_blk) 912 + { 913 + for (i_tag = 0; i_tag < tag_blk->next_item; i_tag++) 914 + { 915 + tag = tag_blk->tags + i_tag; 916 + p_tag = exp_relation.tags + i; 917 + if (tag->key != NULL) 918 + { 919 + len = strlen (tag->key); 920 + p_tag->key = malloc (len + 1); 921 + strcpy (p_tag->key, tag->key); 922 + } 923 + if (tag->value != NULL) 924 + { 925 + len = strlen (tag->value); 926 + p_tag->value = malloc (len + 1); 927 + strcpy (p_tag->value, tag->value); 928 + } 929 + i++; 930 + } 931 + tag_blk = tag_blk->next; 932 + } 933 + } 934 + 935 +/* calling the user-defined RELATION handling callback function */ 936 + ret = (*relation_callback) (user_data, readonly_relation); 937 + 938 +/* resetting the export RELATION object */ 939 + reset_export_relation (&exp_relation); 940 + return ret; 941 +}
Added src/osmxml.c.
1 +/* 2 +/ osmxml.c 3 +/ 4 +/ OSM-XML (.osm) implementation 5 +/ 6 +/ version 1.0, 2012 April 21 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ ------------------------------------------------------------------------------ 11 +/ 12 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 13 +/ 14 +/ The contents of this file are subject to the Mozilla Public License Version 15 +/ 1.1 (the "License"); you may not use this file except in compliance with 16 +/ the License. You may obtain a copy of the License at 17 +/ http://www.mozilla.org/MPL/ 18 +/ 19 +/ Software distributed under the License is distributed on an "AS IS" basis, 20 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 21 +/ for the specific language governing rights and limitations under the 22 +/ License. 23 +/ 24 +/ The Original Code is the ReadOSM library 25 +/ 26 +/ The Initial Developer of the Original Code is Alessandro Furieri 27 +/ 28 +/ Portions created by the Initial Developer are Copyright (C) 2012 29 +/ the Initial Developer. All Rights Reserved. 30 +/ 31 +/ Contributor(s): 32 +/ 33 +/ Alternatively, the contents of this file may be used under the terms of 34 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 35 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 36 +/ in which case the provisions of the GPL or the LGPL are applicable instead 37 +/ of those above. If you wish to allow use of your version of this file only 38 +/ under the terms of either the GPL or the LGPL, and not to allow others to 39 +/ use your version of this file under the terms of the MPL, indicate your 40 +/ decision by deleting the provisions above and replace them with the notice 41 +/ and other provisions required by the GPL or the LGPL. If you do not delete 42 +/ the provisions above, a recipient may use your version of this file under 43 +/ the terms of any one of the MPL, the GPL or the LGPL. 44 +/ 45 +*/ 46 + 47 +#include <stdlib.h> 48 +#include <stdio.h> 49 +#include <string.h> 50 + 51 +#include <expat.h> 52 + 53 +#if defined(_WIN32) && !defined(__MINGW32__) 54 +/* MSVC: avoiding to include at all config.h */ 55 +#else 56 +#include "config.h" 57 +#endif 58 + 59 +#include "readosm.h" 60 +#include "readosm_internals.h" 61 + 62 +#if defined(_WIN32) 63 +#define atol_64 _atoi64 64 +#else 65 +#define atol_64 atoll 66 +#endif 67 + 68 +#define BUFFSIZE 8192 69 + 70 +struct xml_params 71 +{ 72 +/* an helper struct supporting XML parsing */ 73 + int current_tag; 74 + const void *user_data; 75 + readosm_node_callback node_callback; 76 + readosm_way_callback way_callback; 77 + readosm_relation_callback relation_callback; 78 + readosm_internal_node node; 79 + readosm_internal_way way; 80 + readosm_internal_relation relation; 81 + int stop; 82 +}; 83 + 84 +static void 85 +xml_init_params (struct xml_params *params, const void *user_data, 86 + readosm_node_callback node_fnct, readosm_way_callback way_fnct, 87 + readosm_relation_callback relation_fnct, int stop) 88 +{ 89 +/* initializing an empty XML helper structure */ 90 + params->current_tag = READOSM_CURRENT_TAG_UNKNOWN; 91 + params->user_data = user_data; 92 + params->node_callback = node_fnct; 93 + params->way_callback = way_fnct; 94 + params->relation_callback = relation_fnct; 95 + 96 + params->node.id = READOSM_UNDEFINED; 97 + params->node.latitude = READOSM_UNDEFINED; 98 + params->node.longitude = READOSM_UNDEFINED; 99 + params->node.version = READOSM_UNDEFINED; 100 + params->node.changeset = READOSM_UNDEFINED; 101 + params->node.user = NULL; 102 + params->node.uid = READOSM_UNDEFINED; 103 + params->node.timestamp = NULL; 104 + params->node.tag_count = 0; 105 + params->node.first_tag.next_item = 0; 106 + params->node.first_tag.next = NULL; 107 + params->node.last_tag = &(params->node.first_tag); 108 + 109 + params->way.id = READOSM_UNDEFINED; 110 + params->way.version = READOSM_UNDEFINED; 111 + params->way.changeset = READOSM_UNDEFINED; 112 + params->way.user = NULL; 113 + params->way.uid = READOSM_UNDEFINED; 114 + params->way.timestamp = NULL; 115 + params->way.ref_count = 0; 116 + params->way.first_ref.next_item = 0; 117 + params->way.first_ref.next = NULL; 118 + params->way.last_ref = &(params->way.first_ref); 119 + params->way.tag_count = 0; 120 + params->way.first_tag.next_item = 0; 121 + params->way.first_tag.next = NULL; 122 + params->way.last_tag = &(params->way.first_tag); 123 + 124 + params->relation.id = READOSM_UNDEFINED; 125 + params->relation.version = READOSM_UNDEFINED; 126 + params->relation.changeset = READOSM_UNDEFINED; 127 + params->relation.user = NULL; 128 + params->relation.uid = READOSM_UNDEFINED; 129 + params->relation.timestamp = NULL; 130 + params->relation.member_count = 0; 131 + params->relation.first_member.next_item = 0; 132 + params->relation.first_member.next = NULL; 133 + params->relation.last_member = &(params->relation.first_member); 134 + params->relation.tag_count = 0; 135 + params->relation.first_tag.next_item = 0; 136 + params->relation.first_tag.next = NULL; 137 + params->relation.last_tag = &(params->relation.first_tag); 138 + 139 + params->stop = stop; 140 +} 141 + 142 +static void 143 +xml_reset_params (struct xml_params *params) 144 +{ 145 +/* resetting the XML helper structure to initial empty state */ 146 + readosm_internal_tag_block *tag_blk; 147 + readosm_internal_tag_block *tag_blk_n; 148 + readosm_internal_ref *ref; 149 + readosm_internal_ref *ref_n; 150 + readosm_internal_member_block *mbr_blk; 151 + readosm_internal_member_block *mbr_blk_n; 152 + 153 + if (params->node.user) 154 + free (params->node.user); 155 + if (params->node.timestamp) 156 + 157 + free (params->node.timestamp); 158 + tag_blk = &(params->node.first_tag); 159 + while (tag_blk) 160 + { 161 + tag_blk_n = tag_blk->next; 162 + if (tag_blk == &(params->node.first_tag)) 163 + release_internal_tag_block (tag_blk, 0); 164 + else 165 + release_internal_tag_block (tag_blk, 1); 166 + tag_blk = tag_blk_n; 167 + } 168 + params->node.first_tag.next_item = 0; 169 + params->node.first_tag.next = NULL; 170 + params->node.last_tag = &(params->node.first_tag); 171 + 172 + if (params->way.user) 173 + free (params->way.user); 174 + if (params->way.timestamp) 175 + free (params->way.timestamp); 176 + ref = params->way.first_ref.next; 177 + while (ref) 178 + { 179 + ref_n = ref->next; 180 + free (ref); 181 + ref = ref_n; 182 + } 183 + params->way.first_ref.next_item = 0; 184 + params->way.first_ref.next = NULL; 185 + params->way.last_ref = &(params->way.first_ref); 186 + tag_blk = &(params->way.first_tag); 187 + while (tag_blk) 188 + { 189 + tag_blk_n = tag_blk->next; 190 + if (tag_blk == &(params->way.first_tag)) 191 + release_internal_tag_block (tag_blk, 0); 192 + else 193 + release_internal_tag_block (tag_blk, 1); 194 + tag_blk = tag_blk_n; 195 + } 196 + params->way.first_tag.next_item = 0; 197 + params->way.first_tag.next = NULL; 198 + params->way.last_tag = &(params->way.first_tag); 199 + 200 + if (params->relation.user) 201 + free (params->relation.user); 202 + if (params->relation.timestamp) 203 + free (params->relation.timestamp); 204 + mbr_blk = &(params->relation.first_member); 205 + while (mbr_blk) 206 + { 207 + mbr_blk_n = mbr_blk->next; 208 + if (mbr_blk == &(params->relation.first_member)) 209 + release_internal_member_block (mbr_blk, 0); 210 + else 211 + release_internal_member_block (mbr_blk, 1); 212 + mbr_blk = mbr_blk_n; 213 + } 214 + params->relation.first_member.next_item = 0; 215 + params->relation.first_member.next = NULL; 216 + params->relation.last_member = &(params->relation.first_member); 217 + tag_blk = &(params->relation.first_tag); 218 + while (tag_blk) 219 + { 220 + tag_blk_n = tag_blk->next; 221 + if (tag_blk == &(params->relation.first_tag)) 222 + release_internal_tag_block (tag_blk, 0); 223 + else 224 + release_internal_tag_block (tag_blk, 1); 225 + tag_blk = tag_blk_n; 226 + } 227 + params->relation.first_tag.next_item = 0; 228 + params->relation.first_tag.next = NULL; 229 + params->relation.last_tag = &(params->relation.first_tag); 230 + 231 + xml_init_params (params, params->user_data, params->node_callback, 232 + params->way_callback, params->relation_callback, 233 + params->stop); 234 +} 235 + 236 +static void 237 +xml_start_node (struct xml_params *params, const char **attr) 238 +{ 239 +/* an XML Node starts here */ 240 + int i; 241 + int len; 242 + xml_reset_params (params); 243 + for (i = 0; attr[i]; i += 2) 244 + { 245 + if (strcmp (attr[i], "id") == 0) 246 + params->node.id = atol_64 (attr[i + 1]); 247 + if (strcmp (attr[i], "lat") == 0) 248 + params->node.latitude = atof (attr[i + 1]); 249 + if (strcmp (attr[i], "lon") == 0) 250 + params->node.longitude = atof (attr[i + 1]); 251 + if (strcmp (attr[i], "version") == 0) 252 + params->node.version = atoi (attr[i + 1]); 253 + if (strcmp (attr[i], "changeset") == 0) 254 + params->node.changeset = atol_64 (attr[i + 1]); 255 + if (strcmp (attr[i], "user") == 0) 256 + { 257 + len = strlen (attr[i + 1]); 258 + params->node.user = malloc (len + 1); 259 + strcpy (params->node.user, attr[i + 1]); 260 + } 261 + if (strcmp (attr[i], "uid") == 0) 262 + params->node.uid = atoi (attr[i + 1]); 263 + if (strcmp (attr[i], "timestamp") == 0) 264 + { 265 + len = strlen (attr[i + 1]); 266 + params->node.timestamp = malloc (len + 1); 267 + strcpy (params->node.timestamp, attr[i + 1]); 268 + } 269 + } 270 + params->current_tag = READOSM_CURRENT_TAG_IS_NODE; 271 +} 272 + 273 +static void 274 +xml_end_node (struct xml_params *params) 275 +{ 276 +/* an XML Node ends here */ 277 + if (params->node_callback != NULL && params->stop == 0) 278 + { 279 + int ret = 280 + call_node_callback (params->node_callback, params->user_data, 281 + &(params->node)); 282 + if (ret != READOSM_OK) 283 + params->stop = 1; 284 + } 285 + xml_reset_params (params); 286 +} 287 + 288 +static void 289 +xml_start_way (struct xml_params *params, const char **attr) 290 +{ 291 +/* an XML Way starts here */ 292 + int i; 293 + int len; 294 + xml_reset_params (params); 295 + for (i = 0; attr[i]; i += 2) 296 + { 297 + if (strcmp (attr[i], "id") == 0) 298 + params->way.id = atol_64 (attr[i + 1]); 299 + if (strcmp (attr[i], "version") == 0) 300 + params->way.version = atoi (attr[i + 1]); 301 + if (strcmp (attr[i], "changeset") == 0) 302 + params->way.changeset = atol_64 (attr[i + 1]); 303 + if (strcmp (attr[i], "user") == 0) 304 + { 305 + len = strlen (attr[i + 1]); 306 + params->way.user = malloc (len + 1); 307 + strcpy (params->way.user, attr[i + 1]); 308 + } 309 + if (strcmp (attr[i], "uid") == 0) 310 + params->way.uid = atoi (attr[i + 1]); 311 + if (strcmp (attr[i], "timestamp") == 0) 312 + { 313 + len = strlen (attr[i + 1]); 314 + params->way.timestamp = malloc (len + 1); 315 + strcpy (params->way.timestamp, attr[i + 1]); 316 + } 317 + } 318 + params->current_tag = READOSM_CURRENT_TAG_IS_WAY; 319 +} 320 + 321 +static void 322 +xml_end_way (struct xml_params *params) 323 +{ 324 +/* an XML Way ends here */ 325 + if (params->way_callback != NULL && params->stop == 0) 326 + { 327 + int ret = call_way_callback (params->way_callback, params->user_data, 328 + &(params->way)); 329 + if (ret != READOSM_OK) 330 + params->stop = 1; 331 + } 332 + xml_reset_params (params); 333 +} 334 + 335 +static void 336 +xml_start_relation (struct xml_params *params, const char **attr) 337 +{ 338 +/* an XML Relation starts here */ 339 + int i; 340 + int len; 341 + xml_reset_params (params); 342 + for (i = 0; attr[i]; i += 2) 343 + { 344 + if (strcmp (attr[i], "id") == 0) 345 + params->relation.id = atol_64 (attr[i + 1]); 346 + if (strcmp (attr[i], "version") == 0) 347 + params->relation.version = atoi (attr[i + 1]); 348 + if (strcmp (attr[i], "changeset") == 0) 349 + params->relation.changeset = atol_64 (attr[i + 1]); 350 + if (strcmp (attr[i], "user") == 0) 351 + { 352 + len = strlen (attr[i + 1]); 353 + params->relation.user = malloc (len + 1); 354 + strcpy (params->relation.user, attr[i + 1]); 355 + } 356 + if (strcmp (attr[i], "uid") == 0) 357 + params->relation.uid = atoi (attr[i + 1]); 358 + if (strcmp (attr[i], "timestamp") == 0) 359 + { 360 + len = strlen (attr[i + 1]); 361 + params->relation.timestamp = malloc (len + 1); 362 + strcpy (params->relation.timestamp, attr[i + 1]); 363 + } 364 + } 365 + params->current_tag = READOSM_CURRENT_TAG_IS_RELATION; 366 +} 367 + 368 +static void 369 +xml_end_relation (struct xml_params *params) 370 +{ 371 +/* an XML Relation ends here */ 372 + if (params->relation_callback != NULL && params->stop == 0) 373 + { 374 + int ret = call_relation_callback (params->relation_callback, 375 + params->user_data, 376 + &(params->relation)); 377 + if (ret != READOSM_OK) 378 + params->stop = 1; 379 + } 380 + xml_reset_params (params); 381 +} 382 + 383 +static void 384 +xml_start_xtag (struct xml_params *params, const char **attr) 385 +{ 386 +/* an XML Tag starts here */ 387 + const char *key = NULL; 388 + const char *value = NULL; 389 + int i; 390 + 391 + if (params->current_tag == READOSM_CURRENT_TAG_IS_NODE 392 + || params->current_tag == READOSM_CURRENT_TAG_IS_WAY 393 + || params->current_tag == READOSM_CURRENT_TAG_IS_RELATION) 394 + { 395 + for (i = 0; attr[i]; i += 2) 396 + { 397 + if (strcmp (attr[i], "k") == 0) 398 + key = attr[i + 1]; 399 + if (strcmp (attr[i], "v") == 0) 400 + value = attr[i + 1]; 401 + } 402 + if (params->current_tag == READOSM_CURRENT_TAG_IS_NODE) 403 + append_tag_to_node (&(params->node), key, value); 404 + if (params->current_tag == READOSM_CURRENT_TAG_IS_WAY) 405 + append_tag_to_way (&(params->way), key, value); 406 + if (params->current_tag == READOSM_CURRENT_TAG_IS_RELATION) 407 + append_tag_to_relation (&(params->relation), key, value); 408 + } 409 +} 410 + 411 +static void 412 +xml_start_nd (struct xml_params *params, const char **attr) 413 +{ 414 +/* an XML Nd starts here */ 415 + int i; 416 + 417 + if (params->current_tag == READOSM_CURRENT_TAG_IS_WAY) 418 + { 419 + for (i = 0; attr[i]; i += 2) 420 + { 421 + if (strcmp (attr[i], "ref") == 0) 422 + append_reference_to_way (&(params->way), 423 + atol_64 (attr[i + 1])); 424 + } 425 + } 426 +} 427 + 428 +static void 429 +xml_start_member (struct xml_params *params, const char **attr) 430 +{ 431 +/* an XML Member starts here */ 432 + long long id = 0; 433 + int type = READOSM_UNDEFINED; 434 + const char *role = NULL; 435 + int i; 436 + 437 + if (params->current_tag == READOSM_CURRENT_TAG_IS_RELATION) 438 + { 439 + for (i = 0; attr[i]; i += 2) 440 + { 441 + if (strcmp (attr[i], "ref") == 0) 442 + id = atol_64 (attr[i + 1]); 443 + if (strcmp (attr[i], "type") == 0) 444 + { 445 + if (strcmp (attr[i + 1], "node") == 0) 446 + type = READOSM_MEMBER_NODE; 447 + if (strcmp (attr[i + 1], "way") == 0) 448 + type = READOSM_MEMBER_WAY; 449 + if (strcmp (attr[i + 1], "relation") == 0) 450 + type = READOSM_MEMBER_RELATION; 451 + } 452 + if (strcmp (attr[i], "role") == 0) 453 + role = attr[i + 1]; 454 + } 455 + append_member_to_relation (&(params->relation), type, id, role); 456 + } 457 +} 458 + 459 +static void 460 +xml_start_tag (void *data, const char *el, const char **attr) 461 +{ 462 +/* some generic XML tag starts here */ 463 + struct xml_params *params = (struct xml_params *) data; 464 + if (strcmp (el, "node") == 0) 465 + xml_start_node (params, attr); 466 + if (strcmp (el, "tag") == 0) 467 + xml_start_xtag (params, attr); 468 + if (strcmp (el, "way") == 0) 469 + xml_start_way (params, attr); 470 + if (strcmp (el, "nd") == 0) 471 + xml_start_nd (params, attr); 472 + if (strcmp (el, "relation") == 0) 473 + xml_start_relation (params, attr); 474 + if (strcmp (el, "member") == 0) 475 + xml_start_member (params, attr); 476 +} 477 + 478 +static void 479 +xml_end_tag (void *data, const char *el) 480 +{ 481 +/* some generic XML tag ends here */ 482 + struct xml_params *params = (struct xml_params *) data; 483 + if (strcmp (el, "node") == 0) 484 + xml_end_node (params); 485 + if (strcmp (el, "way") == 0) 486 + xml_end_way (params); 487 + if (strcmp (el, "relation") == 0) 488 + xml_end_relation (params); 489 +} 490 + 491 +READOSM_PRIVATE int 492 +parse_osm_xml (readosm_file * input, const void *user_data, 493 + readosm_node_callback node_fnct, readosm_way_callback way_fnct, 494 + readosm_relation_callback relation_fnct) 495 +{ 496 +/* parsing the input file [OSM XML format] */ 497 + XML_Parser parser; 498 + char xml_buff[BUFFSIZE]; 499 + int done = 0; 500 + int len; 501 + struct xml_params params; 502 + 503 + xml_init_params (¶ms, user_data, node_fnct, way_fnct, relation_fnct, 0); 504 + 505 + parser = XML_ParserCreate (NULL); 506 + if (!parser) 507 + return READOSM_CREATE_XML_PARSER_ERROR; 508 + 509 + XML_SetUserData (parser, ¶ms); 510 + XML_SetElementHandler (parser, xml_start_tag, xml_end_tag); 511 + while (!done) 512 + { 513 + len = fread (xml_buff, 1, BUFFSIZE, input->in); 514 + if (ferror (input->in)) 515 + return READOSM_READ_ERROR; 516 + done = feof (input->in); 517 + if (!XML_Parse (parser, xml_buff, len, done)) 518 + return READOSM_XML_ERROR; 519 + if (params.stop) 520 + return READOSM_ABORT; 521 + } 522 + XML_ParserFree (parser); 523 + 524 + return READOSM_OK; 525 +}
Added src/protobuf.c.
1 +/* 2 +/ protobuf.c 3 +/ 4 +/ Protocol Buffer (.pbf) implementation 5 +/ 6 +/ version 1.0, 2012 April 21 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ ------------------------------------------------------------------------------ 11 +/ 12 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 13 +/ 14 +/ The contents of this file are subject to the Mozilla Public License Version 15 +/ 1.1 (the "License"); you may not use this file except in compliance with 16 +/ the License. You may obtain a copy of the License at 17 +/ http://www.mozilla.org/MPL/ 18 +/ 19 +/ Software distributed under the License is distributed on an "AS IS" basis, 20 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 21 +/ for the specific language governing rights and limitations under the 22 +/ License. 23 +/ 24 +/ The Original Code is the ReadOSM library 25 +/ 26 +/ The Initial Developer of the Original Code is Alessandro Furieri 27 +/ 28 +/ Portions created by the Initial Developer are Copyright (C) 2012 29 +/ the Initial Developer. All Rights Reserved. 30 +/ 31 +/ Contributor(s): 32 +/ 33 +/ Alternatively, the contents of this file may be used under the terms of 34 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 35 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 36 +/ in which case the provisions of the GPL or the LGPL are applicable instead 37 +/ of those above. If you wish to allow use of your version of this file only 38 +/ under the terms of either the GPL or the LGPL, and not to allow others to 39 +/ use your version of this file under the terms of the MPL, indicate your 40 +/ decision by deleting the provisions above and replace them with the notice 41 +/ and other provisions required by the GPL or the LGPL. If you do not delete 42 +/ the provisions above, a recipient may use your version of this file under 43 +/ the terms of any one of the MPL, the GPL or the LGPL. 44 +/ 45 +*/ 46 + 47 +#include <stdlib.h> 48 +#include <stdio.h> 49 +#include <string.h> 50 +#include <memory.h> 51 +#include <time.h> 52 + 53 +#include <zlib.h> 54 + 55 +#if defined(_WIN32) && !defined(__MINGW32__) 56 +/* MSVC: avoiding to include at all config.h */ 57 +#else 58 +#include "config.h" 59 +#endif 60 + 61 +#include "readosm.h" 62 +#include "readosm_internals.h" 63 +#include "readosm_protobuf.h" 64 + 65 +#define MAX_NODES 1024 66 + 67 +struct pbf_params 68 +{ 69 +/* an helper struct supporting PBF parsing */ 70 + const void *user_data; 71 + readosm_node_callback node_callback; 72 + readosm_way_callback way_callback; 73 + readosm_relation_callback relation_callback; 74 + int stop; 75 +}; 76 + 77 +static void 78 +init_variant (readosm_variant * variant, int little_endian_cpu) 79 +{ 80 +/* initializing an empty PBF Variant object */ 81 + variant->little_endian_cpu = little_endian_cpu; 82 + variant->type = READOSM_VAR_UNDEFINED; 83 + variant->field_id = 0; 84 + variant->length = 0; 85 + variant->pointer = NULL; 86 + variant->valid = 0; 87 + variant->first = NULL; 88 + variant->last = NULL; 89 +} 90 + 91 +static void 92 +reset_variant (readosm_variant * variant) 93 +{ 94 +/* resetting a PBF Variant object to its initial empty state */ 95 + variant->type = READOSM_VAR_UNDEFINED; 96 + variant->field_id = 0; 97 + variant->length = 0; 98 + variant->pointer = NULL; 99 + variant->valid = 0; 100 +} 101 + 102 +static void 103 +add_variant_hints (readosm_variant * variant, unsigned char type, 104 + unsigned char field_id) 105 +{ 106 +/* adding a field hint to a PBF Variant object */ 107 + readosm_variant_hint *hint = malloc (sizeof (readosm_variant_hint)); 108 + hint->type = type; 109 + hint->field_id = field_id; 110 + hint->next = NULL; 111 + if (variant->first == NULL) 112 + variant->first = hint; 113 + if (variant->last != NULL) 114 + variant->last->next = hint; 115 + variant->last = hint; 116 +} 117 + 118 +static int 119 +find_type_hint (readosm_variant * variant, unsigned char field_id, 120 + unsigned char type, unsigned char *type_hint) 121 +{ 122 +/* attempting to find the type hint for some PBF Variant field */ 123 + readosm_variant_hint *hint = variant->first; 124 + while (hint) 125 + { 126 + if (hint->field_id == field_id) 127 + { 128 + switch (type) 129 + { 130 + case 0: 131 + switch (hint->type) 132 + { 133 + case READOSM_VAR_INT32: 134 + case READOSM_VAR_INT64: 135 + case READOSM_VAR_UINT32: 136 + case READOSM_VAR_UINT64: 137 + case READOSM_VAR_SINT32: 138 + case READOSM_VAR_SINT64: 139 + case READOSM_VAR_BOOL: 140 + case READOSM_VAR_ENUM: 141 + *type_hint = hint->type; 142 + return 1; 143 + } 144 + break; 145 + case 2: 146 + if (hint->type == READOSM_LEN_BYTES) 147 + { 148 + *type_hint = hint->type; 149 + return 1; 150 + } 151 + break; 152 + }; 153 + } 154 + hint = hint->next; 155 + } 156 + return 0; 157 +} 158 + 159 +static void 160 +finalize_variant (readosm_variant * variant) 161 +{ 162 +/* cleaning any memory allocation for a PBF Variant object */ 163 + readosm_variant_hint *hint; 164 + readosm_variant_hint *hint_n; 165 + hint = variant->first; 166 + while (hint) 167 + { 168 + hint_n = hint->next; 169 + free (hint); 170 + hint = hint_n; 171 + } 172 + variant->first = NULL; 173 + variant->last = NULL; 174 +} 175 + 176 +static void 177 +init_string_table (readosm_string_table * string_table) 178 +{ 179 +/* initializing an empty PBF StringTable object */ 180 + string_table->first = NULL; 181 + string_table->last = NULL; 182 + string_table->count = 0; 183 + string_table->strings = NULL; 184 +} 185 + 186 +static void 187 +append_string_to_table (readosm_string_table * string_table, 188 + readosm_variant * variant) 189 +{ 190 +/* appending a string to a PBF StringTable object */ 191 + readosm_string *string = malloc (sizeof (readosm_string)); 192 + string->string = malloc (variant->length + 1); 193 + memcpy (string->string, variant->pointer, variant->length); 194 + *(string->string + variant->length) = '\0'; 195 + string->next = NULL; 196 + if (string_table->first == NULL) 197 + string_table->first = string; 198 + if (string_table->last != NULL) 199 + string_table->last->next = string; 200 + string_table->last = string; 201 +} 202 + 203 +static void 204 +array_from_string_table (readosm_string_table * string_table) 205 +{ 206 +/* creating a pointer array supporting a StringTable object */ 207 + int i; 208 + readosm_string *string = string_table->first; 209 + while (string != NULL) 210 + { 211 + /* counting how many strings are into the table */ 212 + string_table->count++; 213 + string = string->next; 214 + } 215 + if (string_table->count <= 0) 216 + return; 217 + 218 +/* allocating the pointer array */ 219 + string_table->strings = 220 + malloc (sizeof (readosm_string *) * string_table->count); 221 + i = 0; 222 + string = string_table->first; 223 + while (string != NULL) 224 + { 225 + /* setting up pointers to strings */ 226 + *(string_table->strings + i) = string; 227 + i++; 228 + string = string->next; 229 + } 230 +} 231 + 232 +static void 233 +finalize_string_table (readosm_string_table * string_table) 234 +{ 235 +/* cleaning any memory allocation for a StringTable object */ 236 + readosm_string *string; 237 + readosm_string *string_n; 238 + string = string_table->first; 239 + while (string) 240 + { 241 + string_n = string->next; 242 + if (string->string) 243 + free (string->string); 244 + free (string); 245 + string = string_n; 246 + } 247 + if (string_table->strings) 248 + free (string_table->strings); 249 +} 250 + 251 +static void 252 +init_uint32_packed (readosm_uint32_packed * packed) 253 +{ 254 +/* initialing an empty PBF uint32 packed object */ 255 + packed->first = NULL; 256 + packed->last = NULL; 257 + packed->count = 0; 258 + packed->values = NULL; 259 +} 260 + 261 +static void 262 +append_uint32_packed (readosm_uint32_packed * packed, unsigned int val) 263 +{ 264 +/* appending an uint32 value to a PBF packed object */ 265 + readosm_uint32 *value = malloc (sizeof (readosm_uint32)); 266 + value->value = val; 267 + value->next = NULL; 268 + if (packed->first == NULL) 269 + packed->first = value; 270 + if (packed->last != NULL) 271 + packed->last->next = value; 272 + packed->last = value; 273 +} 274 + 275 +static void 276 +array_from_uint32_packed (readosm_uint32_packed * packed) 277 +{ 278 +/* creating an array supporting an uint32 packed object */ 279 + int i; 280 + readosm_uint32 *value = packed->first; 281 + while (value != NULL) 282 + { 283 + /* counting how many values are into the packed list */ 284 + packed->count++; 285 + value = value->next; 286 + } 287 + if (packed->count <= 0) 288 + return; 289 + 290 +/* allocating the array */ 291 + packed->values = malloc (sizeof (unsigned int) * packed->count); 292 + i = 0; 293 + value = packed->first; 294 + while (value != NULL) 295 + { 296 + /* setting up array values */ 297 + *(packed->values + i) = value->value; 298 + i++; 299 + value = value->next; 300 + } 301 +} 302 + 303 +static void 304 +finalize_uint32_packed (readosm_uint32_packed * packed) 305 +{ 306 +/* cleaning any memory allocation for an uint32 packed object */ 307 + readosm_uint32 *value; 308 + readosm_uint32 *value_n; 309 + value = packed->first; 310 + while (value) 311 + { 312 + value_n = value->next; 313 + free (value); 314 + value = value_n; 315 + } 316 + if (packed->values) 317 + free (packed->values); 318 + 319 +} 320 + 321 +static void 322 +reset_uint32_packed (readosm_uint32_packed * packed) 323 +{ 324 +/* resetting an uint32 packed object to empty initial state */ 325 + finalize_uint32_packed (packed); 326 + packed->first = NULL; 327 + packed->last = NULL; 328 + packed->count = 0; 329 + packed->values = NULL; 330 +} 331 + 332 +static void 333 +init_int32_packed (readosm_int32_packed * packed) 334 +{ 335 +/* initialing an empty PBF int32 packed object */ 336 + packed->first = NULL; 337 + packed->last = NULL; 338 + packed->count = 0; 339 + packed->values = NULL; 340 +} 341 + 342 +static void 343 +append_int32_packed (readosm_int32_packed * packed, int val) 344 +{ 345 +/* appending an int32 value to a PBF packed object */ 346 + readosm_int32 *value = malloc (sizeof (readosm_int32)); 347 + value->value = val; 348 + value->next = NULL; 349 + if (packed->first == NULL) 350 + packed->first = value; 351 + if (packed->last != NULL) 352 + packed->last->next = value; 353 + packed->last = value; 354 +} 355 + 356 +static void 357 +finalize_int32_packed (readosm_int32_packed * packed) 358 +{ 359 +/* cleaning any memory allocation for an int32 packed object */ 360 + readosm_int32 *value; 361 + readosm_int32 *value_n; 362 + value = packed->first; 363 + while (value) 364 + { 365 + value_n = value->next; 366 + free (value); 367 + value = value_n; 368 + } 369 + if (packed->values) 370 + free (packed->values); 371 + 372 +} 373 + 374 +static void 375 +reset_int32_packed (readosm_int32_packed * packed) 376 +{ 377 +/* resetting an int32 packed object to empty initial state */ 378 + finalize_int32_packed (packed); 379 + packed->first = NULL; 380 + packed->last = NULL; 381 + packed->count = 0; 382 + packed->values = NULL; 383 +} 384 + 385 +static void 386 +init_int64_packed (readosm_int64_packed * packed) 387 +{ 388 +/* initialing an empty PBF int64 packed object */ 389 + packed->first = NULL; 390 + packed->last = NULL; 391 + packed->count = 0; 392 + packed->values = NULL; 393 +} 394 + 395 +static void 396 +append_int64_packed (readosm_int64_packed * packed, long long val) 397 +{ 398 +/* appending an int64 value to a PBF packed object */ 399 + readosm_int64 *value = malloc (sizeof (readosm_int64)); 400 + value->value = val; 401 + value->next = NULL; 402 + if (packed->first == NULL) 403 + packed->first = value; 404 + if (packed->last != NULL) 405 + packed->last->next = value; 406 + packed->last = value; 407 +} 408 + 409 +static void 410 +array_from_int64_packed (readosm_int64_packed * packed) 411 +{ 412 +/* creating an array supporting an int64 packed object */ 413 + int i; 414 + readosm_int64 *value = packed->first; 415 + while (value != NULL) 416 + { 417 + /* counting how many values are into the packed list */ 418 + packed->count++; 419 + value = value->next; 420 + } 421 + if (packed->count <= 0) 422 + return; 423 + 424 +/* allocating the array */ 425 + packed->values = malloc (sizeof (long long) * packed->count); 426 + i = 0; 427 + value = packed->first; 428 + while (value != NULL) 429 + { 430 + /* setting up array values */ 431 + *(packed->values + i) = value->value; 432 + i++; 433 + value = value->next; 434 + } 435 +} 436 + 437 +static void 438 +finalize_int64_packed (readosm_int64_packed * packed) 439 +{ 440 +/* cleaning any memory allocation for an int64 packed object */ 441 + readosm_int64 *value; 442 + readosm_int64 *value_n; 443 + value = packed->first; 444 + while (value) 445 + { 446 + value_n = value->next; 447 + free (value); 448 + value = value_n; 449 + } 450 + if (packed->values) 451 + free (packed->values); 452 +} 453 + 454 +static void 455 +reset_int64_packed (readosm_int64_packed * packed) 456 +{ 457 +/* resetting an int64 packed object to empty initial state */ 458 + finalize_int64_packed (packed); 459 + packed->first = NULL; 460 + packed->last = NULL; 461 + packed->count = 0; 462 + packed->values = NULL; 463 +} 464 + 465 +static void 466 +init_packed_infos (readosm_packed_infos * packed) 467 +{ 468 +/* initialing an empty PBF packed Infos object */ 469 + packed->ver_count = 0; 470 + packed->versions = NULL; 471 + packed->tim_count = 0; 472 + packed->timestamps = NULL; 473 + packed->cng_count = 0; 474 + packed->changesets = NULL; 475 + packed->uid_count = 0; 476 + packed->uids = NULL; 477 + packed->usr_count = 0; 478 + packed->users = NULL; 479 +} 480 + 481 +static void 482 +finalize_packed_infos (readosm_packed_infos * packed) 483 +{ 484 +/* cleaning any memory allocation for a packed Infos object */ 485 + if (packed->versions) 486 + free (packed->versions); 487 + if (packed->timestamps) 488 + free (packed->timestamps); 489 + if (packed->changesets) 490 + free (packed->changesets); 491 + if (packed->uids) 492 + free (packed->uids); 493 + if (packed->users) 494 + free (packed->users); 495 +} 496 + 497 +static unsigned char * 498 +read_var (unsigned char *start, unsigned char *stop, readosm_variant * variant) 499 +{ 500 +/* 501 + / attempting to read a variable length base128 int 502 + / 503 + / PBF integers are encoded as base128, i.e. using 7 bits 504 + / for each byte: if the most significant bit is 1, then 505 + / a further byte is required to get the int value, and so 506 + / on, until a byte having a 0 most significant bit is found. 507 + / 508 + / using this encoding little values simply require few bytes: 509 + / as a worst case 5 bytes are required to encode int32, and 510 + / 10 bytes to encode int64 511 + / 512 + / there is a further complication: negative value will always 513 + / require 5 or 10 bytes: thus SINT32 and SINT64 values are 514 + / encoded using a "ZigZag" schema. 515 + / 516 + / for more details please see: 517 + / https://developers.google.com/protocol-buffers/docs/encoding 518 +*/ 519 + unsigned char *ptr = start; 520 + unsigned char c; 521 + unsigned int v32; 522 + unsigned long long v64; 523 + unsigned int value32 = 0x00000000; 524 + unsigned long long value64 = 0x0000000000000000; 525 + readosm_endian4 endian4; 526 + readosm_endian8 endian8; 527 + int next; 528 + int count = 0; 529 + int neg; 530 + 531 + while (1) 532 + { 533 + if (ptr > stop) 534 + return NULL; 535 + c = *ptr++; 536 + if ((c & 0x80) == 0x80) 537 + next = 1; 538 + else 539 + next = 0; 540 + c &= 0x7f; 541 + switch (variant->type) 542 + { 543 + case READOSM_VAR_INT32: 544 + case READOSM_VAR_UINT32: 545 + case READOSM_VAR_SINT32: 546 + switch (count) 547 + { 548 + case 0: 549 + memset (endian4.bytes, 0x00, 4); 550 + if (variant->little_endian_cpu) 551 + endian4.bytes[0] = c; 552 + else 553 + endian4.bytes[3] = c; 554 + v32 = endian4.uint32_value; 555 + v32 &= READOSM_MASK32_1; 556 + value32 |= v32; 557 + break; 558 + case 1: 559 + memset (endian4.bytes, 0x00, 4); 560 + if (variant->little_endian_cpu) 561 + endian4.bytes[0] = c; 562 + else 563 + endian4.bytes[3] = c; 564 + v32 = endian4.uint32_value << 7; 565 + v32 &= READOSM_MASK32_2; 566 + value32 |= v32; 567 + break; 568 + case 2: 569 + memset (endian4.bytes, 0x00, 4); 570 + if (variant->little_endian_cpu) 571 + endian4.bytes[0] = c; 572 + else 573 + endian4.bytes[3] = c; 574 + v32 = endian4.uint32_value << 14; 575 + v32 &= READOSM_MASK32_3; 576 + value32 |= v32; 577 + break; 578 + case 3: 579 + memset (endian4.bytes, 0x00, 4); 580 + if (variant->little_endian_cpu) 581 + endian4.bytes[0] = c; 582 + else 583 + endian4.bytes[3] = c; 584 + v32 = endian4.uint32_value << 21; 585 + v32 &= READOSM_MASK32_4; 586 + value32 |= v32; 587 + break; 588 + case 4: 589 + memset (endian4.bytes, 0x00, 4); 590 + if (variant->little_endian_cpu) 591 + endian4.bytes[0] = c; 592 + else 593 + endian4.bytes[3] = c; 594 + v32 = endian4.uint32_value << 28; 595 + v32 &= READOSM_MASK32_5; 596 + value32 |= v32; 597 + break; 598 + default: 599 + return NULL; 600 + }; 601 + break; 602 + case READOSM_VAR_INT64: 603 + case READOSM_VAR_UINT64: 604 + case READOSM_VAR_SINT64: 605 + switch (count) 606 + { 607 + case 0: 608 + memset (endian8.bytes, 0x00, 8); 609 + if (variant->little_endian_cpu) 610 + endian8.bytes[0] = c; 611 + else 612 + endian8.bytes[7] = c; 613 + v64 = endian8.uint64_value; 614 + v64 &= READOSM_MASK64_1; 615 + value64 |= v64; 616 + break; 617 + case 1: 618 + memset (endian8.bytes, 0x00, 8); 619 + if (variant->little_endian_cpu) 620 + endian8.bytes[0] = c; 621 + else 622 + endian8.bytes[7] = c; 623 + v64 = endian8.uint64_value << 7; 624 + v64 &= READOSM_MASK64_2; 625 + value64 |= v64; 626 + break; 627 + case 2: 628 + memset (endian8.bytes, 0x00, 8); 629 + if (variant->little_endian_cpu) 630 + endian8.bytes[0] = c; 631 + else 632 + endian8.bytes[7] = c; 633 + v64 = endian8.uint64_value << 14; 634 + v64 &= READOSM_MASK64_3; 635 + value64 |= v64; 636 + break; 637 + case 3: 638 + memset (endian8.bytes, 0x00, 8); 639 + if (variant->little_endian_cpu) 640 + endian8.bytes[0] = c; 641 + else 642 + endian8.bytes[7] = c; 643 + v64 = endian8.uint64_value << 21; 644 + v64 &= READOSM_MASK64_4; 645 + value64 |= v64; 646 + break; 647 + case 4: 648 + memset (endian8.bytes, 0x00, 8); 649 + if (variant->little_endian_cpu) 650 + endian8.bytes[0] = c; 651 + else 652 + endian8.bytes[7] = c; 653 + v64 = endian8.uint64_value << 28; 654 + v64 &= READOSM_MASK64_5; 655 + value64 |= v64; 656 + break; 657 + case 5: 658 + memset (endian8.bytes, 0x00, 8); 659 + if (variant->little_endian_cpu) 660 + endian8.bytes[0] = c; 661 + else 662 + endian8.bytes[7] = c; 663 + v64 = endian8.uint64_value << 35; 664 + v64 &= READOSM_MASK64_6; 665 + value64 |= v64; 666 + break; 667 + case 6: 668 + memset (endian8.bytes, 0x00, 8); 669 + if (variant->little_endian_cpu) 670 + endian8.bytes[0] = c; 671 + else 672 + endian8.bytes[7] = c; 673 + v64 = endian8.uint64_value << 42; 674 + v64 &= READOSM_MASK64_7; 675 + value64 |= v64; 676 + break; 677 + case 7: 678 + memset (endian8.bytes, 0x00, 8); 679 + if (variant->little_endian_cpu) 680 + endian8.bytes[0] = c; 681 + else 682 + endian8.bytes[7] = c; 683 + v64 = endian8.uint64_value << 49; 684 + v64 &= READOSM_MASK64_8; 685 + value64 |= v64; 686 + break; 687 + case 8: 688 + memset (endian8.bytes, 0x00, 8); 689 + if (variant->little_endian_cpu) 690 + endian8.bytes[0] = c; 691 + else 692 + endian8.bytes[7] = c; 693 + v64 = endian8.uint64_value << 56; 694 + v64 &= READOSM_MASK64_9; 695 + value64 |= v64; 696 + break; 697 + case 9: 698 + memset (endian8.bytes, 0x00, 8); 699 + if (variant->little_endian_cpu) 700 + endian8.bytes[0] = c; 701 + else 702 + endian8.bytes[7] = c; 703 + v64 = endian8.uint64_value << 63; 704 + v64 &= READOSM_MASK64_A; 705 + value64 |= v64; 706 + break; 707 + default: 708 + return NULL; 709 + }; 710 + break; 711 + }; 712 + count++; 713 + if (!next) 714 + break; 715 + } 716 + 717 + switch (variant->type) 718 + { 719 + case READOSM_VAR_INT32: 720 + variant->value.int32_value = (int) value32; 721 + variant->valid = 1; 722 + return ptr; 723 + case READOSM_VAR_UINT32: 724 + variant->value.uint32_value = value32; 725 + variant->valid = 1; 726 + return ptr; 727 + case READOSM_VAR_SINT32: 728 + if ((value32 & 0x00000001) == 0) 729 + neg = 1; 730 + else 731 + neg = -1; 732 + v32 = (value32 + 1) / 2; 733 + variant->value.int32_value = v32 * neg; 734 + variant->valid = 1; 735 + return ptr; 736 + case READOSM_VAR_INT64: 737 + variant->value.int64_value = (int) value64; 738 + variant->valid = 1; 739 + return ptr; 740 + case READOSM_VAR_UINT64: 741 + variant->value.uint64_value = value64; 742 + variant->valid = 1; 743 + return ptr; 744 + case READOSM_VAR_SINT64: 745 + if ((value64 & 0x0000000000000001) == 0) 746 + neg = 1; 747 + else 748 + neg = -1; 749 + v64 = (value64 + 1) / 2; 750 + variant->value.int64_value = v64 * neg; 751 + variant->valid = 1; 752 + return ptr; 753 + }; 754 + return NULL; 755 +} 756 + 757 +static unsigned char * 758 +read_bytes (unsigned char *start, unsigned char *stop, 759 + readosm_variant * variant) 760 +{ 761 +/* 762 + / attempting to read some bytes from PBF 763 + / Strings and alike are encoded in PBF using a two steps approach: 764 + / - an INT32 field declares the expected length 765 + / - then the string (no terminating NULL char) follows 766 +*/ 767 + unsigned char *ptr = start; 768 + readosm_variant varlen; 769 + unsigned int len; 770 + 771 +/* initializing an empty variant field (length) */ 772 + init_variant (&varlen, variant->little_endian_cpu); 773 + varlen.type = READOSM_VAR_UINT32; 774 + 775 + ptr = read_var (ptr, stop, &varlen); 776 + if (varlen.valid) 777 + { 778 + len = varlen.value.uint32_value; 779 + if ((ptr + len - 1) > stop) 780 + return NULL; 781 + variant->pointer = ptr; 782 + variant->length = len; 783 + variant->valid = 1; 784 + return ptr + len; 785 + } 786 + return NULL; 787 +} 788 + 789 +static int 790 +parse_uint32_packed (readosm_uint32_packed * packed, unsigned char *start, 791 + unsigned char *stop, char little_endian_cpu) 792 +{ 793 +/* parsing a uint32 packed object */ 794 + unsigned char *ptr = start; 795 + readosm_variant variant; 796 + 797 +/* initializing an empty variant field (length) */ 798 + init_variant (&variant, little_endian_cpu); 799 + variant.type = READOSM_VAR_UINT32; 800 + 801 + while (1) 802 + { 803 + ptr = read_var (start, stop, &variant); 804 + if (variant.valid) 805 + { 806 + append_uint32_packed (packed, variant.value.uint32_value); 807 + if (ptr > stop) 808 + break; 809 + start = ptr; 810 + continue; 811 + } 812 + return 0; 813 + } 814 + return 1; 815 +} 816 + 817 +static int 818 +parse_sint32_packed (readosm_int32_packed * packed, unsigned char *start, 819 + unsigned char *stop, char little_endian_cpu) 820 +{ 821 +/* parsing an int32 packed object */ 822 + unsigned char *ptr = start; 823 + readosm_variant variant; 824 + 825 +/* initializing an empty variant field (length) */ 826 + init_variant (&variant, little_endian_cpu); 827 + variant.type = READOSM_VAR_SINT32; 828 + 829 + while (1) 830 + { 831 + ptr = read_var (start, stop, &variant); 832 + if (variant.valid) 833 + { 834 + append_int32_packed (packed, variant.value.int32_value); 835 + if (ptr > stop) 836 + break; 837 + start = ptr; 838 + continue; 839 + } 840 + return 0; 841 + } 842 + return 1; 843 +} 844 + 845 +static int 846 +parse_sint64_packed (readosm_int64_packed * packed, unsigned char *start, 847 + unsigned char *stop, char little_endian_cpu) 848 +{ 849 +/* parsing a sint64 packed object */ 850 + unsigned char *ptr = start; 851 + readosm_variant variant; 852 + 853 +/* initializing an empty variant field (length) */ 854 + init_variant (&variant, little_endian_cpu); 855 + variant.type = READOSM_VAR_SINT64; 856 + 857 + while (1) 858 + { 859 + ptr = read_var (start, stop, &variant); 860 + if (variant.valid) 861 + { 862 + append_int64_packed (packed, variant.value.int64_value); 863 + if (ptr > stop) 864 + break; 865 + start = ptr; 866 + continue; 867 + } 868 + return 0; 869 + } 870 + return 1; 871 +} 872 + 873 +static unsigned int 874 +get_header_size (unsigned char *buf, int little_endian_cpu) 875 +{ 876 +/* 877 + / retrieving the current header size 878 + / please note: header sizes in PBF always are 4 bytes 879 + / BIG endian encoded 880 +*/ 881 + readosm_endian4 endian4; 882 + if (little_endian_cpu) 883 + { 884 + endian4.bytes[0] = *(buf + 3); 885 + endian4.bytes[1] = *(buf + 2); 886 + endian4.bytes[2] = *(buf + 1); 887 + endian4.bytes[3] = *(buf + 0); 888 + } 889 + else 890 + { 891 + endian4.bytes[0] = *(buf + 0); 892 + endian4.bytes[1] = *(buf + 1); 893 + endian4.bytes[2] = *(buf + 2); 894 + endian4.bytes[3] = *(buf + 3); 895 + } 896 + return endian4.uint32_value; 897 +} 898 + 899 +static unsigned char * 900 +parse_field (unsigned char *start, unsigned char *stop, 901 + readosm_variant * variant) 902 +{ 903 +/* attempting to parse a variant field */ 904 + unsigned char *ptr = start; 905 + unsigned char type; 906 + unsigned char field_id; 907 + unsigned char type_hint; 908 + 909 + if (ptr > stop) 910 + return NULL; 911 + 912 +/* 913 + / any PBF field is prefixed by a single byte 914 + / a bitwise mask is used so to store both the 915 + / field-id and the field-type on a single byte 916 +*/ 917 + type = *ptr & 0x07; 918 + field_id = (*ptr & 0xf8) >> 3; 919 + 920 +/* attempting to identify the field accordingly to declared hints */ 921 + if (!find_type_hint (variant, field_id, type, &type_hint)) 922 + return NULL; 923 + 924 + variant->type = type_hint; 925 + variant->field_id = field_id; 926 + ptr++; 927 + 928 +/* parsing the field value */ 929 + switch (variant->type) 930 + { 931 + case READOSM_VAR_INT32: 932 + case READOSM_VAR_INT64: 933 + case READOSM_VAR_UINT32: 934 + case READOSM_VAR_UINT64: 935 + case READOSM_VAR_SINT32: 936 + case READOSM_VAR_SINT64: 937 + return read_var (ptr, stop, variant); 938 + case READOSM_LEN_BYTES: 939 + return read_bytes (ptr, stop, variant); 940 + }; 941 + return NULL; 942 +} 943 + 944 +static int 945 +skip_osm_header (readosm_file * input, unsigned int sz) 946 +{ 947 +/* 948 + / expecting to retrieve a valid OSMHeader header 949 + / there is nothing really interesting here, so we'll 950 + / simply discard the whole block, simply advancing 951 + / the read file-pointer as appropriate 952 +*/ 953 + int ok_header = 0; 954 + int hdsz = 0; 955 + size_t rd; 956 + unsigned char *buf = malloc (sz); 957 + unsigned char *base = buf; 958 + unsigned char *start = buf; 959 + unsigned char *stop = buf + sz - 1; 960 + readosm_variant variant; 961 + if (buf == NULL) 962 + goto error; 963 + 964 +/* initializing an empty variant field */ 965 + init_variant (&variant, input->little_endian_cpu); 966 + add_variant_hints (&variant, READOSM_LEN_BYTES, 1); 967 + add_variant_hints (&variant, READOSM_LEN_BYTES, 2); 968 + add_variant_hints (&variant, READOSM_VAR_INT32, 3); 969 + 970 + rd = fread (buf, 1, sz, input->in); 971 + if (rd != sz) 972 + goto error; 973 + 974 +/* reading the OSMHeader header */ 975 + while (1) 976 + { 977 + /* resetting an empty variant field */ 978 + reset_variant (&variant); 979 + 980 + base = parse_field (start, stop, &variant); 981 + if (base == NULL && variant.valid == 0) 982 + goto error; 983 + start = base; 984 + if (variant.field_id == 1 && variant.type == READOSM_LEN_BYTES 985 + && variant.length == 9) 986 + { 987 + if (memcmp (variant.pointer, "OSMHeader", 9) == 0) 988 + ok_header = 1; 989 + } 990 + if (variant.field_id == 3 && variant.type == READOSM_VAR_INT32) 991 + hdsz = variant.value.int32_value; 992 + if (base > stop) 993 + break; 994 + } 995 + free (buf); 996 + buf = NULL; 997 + if (!ok_header || !hdsz) 998 + goto error; 999 + 1000 + buf = malloc (hdsz); 1001 + base = buf; 1002 + start = buf; 1003 + stop = buf + hdsz - 1; 1004 + rd = fread (buf, 1, hdsz, input->in); 1005 + if ((int) rd != hdsz) 1006 + goto error; 1007 + 1008 + if (buf != NULL) 1009 + free (buf); 1010 + finalize_variant (&variant); 1011 + return 1; 1012 + 1013 + error: 1014 + if (buf != NULL) 1015 + free (buf); 1016 + finalize_variant (&variant); 1017 + return 0; 1018 +} 1019 + 1020 +static int 1021 +unzip_compressed_block (unsigned char *zip_ptr, unsigned int zip_sz, 1022 + unsigned char *raw_ptr, unsigned int raw_sz) 1023 +{ 1024 +/* 1025 + / decompressing a zip compressed block 1026 + / please note: PBF data blocks are internally stored as 1027 + / ZIP compessed blocks 1028 + / 1029 + / both the compressed and uncompressed sizes are declared 1030 + / for each PBF ZIPped block 1031 +*/ 1032 + uLongf size = raw_sz; 1033 + int ret = uncompress (raw_ptr, &size, zip_ptr, zip_sz); 1034 + if (ret != Z_OK || size != raw_sz) 1035 + return 0; 1036 + return 1; 1037 +} 1038 + 1039 +static int 1040 +parse_string_table (readosm_string_table * string_table, 1041 + unsigned char *start, unsigned char *stop, 1042 + char little_endian_cpu) 1043 +{ 1044 +/* 1045 + / attempting to parse a StringTable 1046 + / 1047 + / Remark: each PBF compressed block includes a StringTable 1048 + / i.e. a centralized table where any string value used within 1049 + / the compressed block itself appears only one time. 1050 + / This is obviously intended so to minimize storage requirements. 1051 + / 1052 + / Individual objects within the PBF file will never directly 1053 + / encode string values; they'll use instead the corresponding 1054 + / index referencing the appropriate string within the StringTable. 1055 +*/ 1056 + readosm_variant variant; 1057 + unsigned char *base = start; 1058 + 1059 +/* initializing an empty variant field */ 1060 + init_variant (&variant, little_endian_cpu); 1061 + add_variant_hints (&variant, READOSM_LEN_BYTES, 1); 1062 + 1063 +/* reading the StringTable */ 1064 + while (1) 1065 + { 1066 + /* resetting an empty variant field */ 1067 + reset_variant (&variant); 1068 + 1069 + base = parse_field (start, stop, &variant); 1070 + if (base == NULL && variant.valid == 0) 1071 + goto error; 1072 + start = base; 1073 + if (variant.field_id == 1 && variant.type == READOSM_LEN_BYTES) 1074 + append_string_to_table (string_table, &variant); 1075 + if (base > stop) 1076 + break; 1077 + } 1078 + 1079 + finalize_variant (&variant); 1080 + return 1; 1081 + 1082 + error: 1083 + finalize_variant (&variant); 1084 + return 0; 1085 +} 1086 + 1087 +static int 1088 +parse_pbf_node_infos (readosm_packed_infos * packed_infos, 1089 + unsigned char *start, unsigned char *stop, 1090 + char little_endian_cpu) 1091 +{ 1092 +/* 1093 + / attempting to parse a valid PBF DenseInfos 1094 + / 1095 + / Remark: PBF DenseNodes blocks require a DenseInfos block 1096 + / this actually consists in six strings: 1097 + / - versions 1098 + / - timestamps 1099 + / - changesets 1100 + / - uids 1101 + / - user-names (expressed as index to StringTable entries) 1102 + / 1103 + / each "string" in turn contains an array of INT values; 1104 + / and individual values are usually encoded as DELTAs, 1105 + / i.e. differences respect the immediately preceding value. 1106 +*/ 1107 + readosm_variant variant; 1108 + unsigned char *base = start; 1109 + readosm_uint32_packed packed_u32; 1110 + readosm_uint32 *pu32; 1111 + readosm_int32_packed packed_32; 1112 + readosm_int32 *p32; 1113 + readosm_int64_packed packed_64; 1114 + readosm_int64 *p64; 1115 + int count; 1116 + 1117 +/* initializing empty packed objects */ 1118 + init_uint32_packed (&packed_u32); 1119 + init_int32_packed (&packed_32); 1120 + init_int64_packed (&packed_64); 1121 + 1122 +/* initializing an empty variant field */ 1123 + init_variant (&variant, little_endian_cpu); 1124 + add_variant_hints (&variant, READOSM_LEN_BYTES, 1); 1125 + add_variant_hints (&variant, READOSM_LEN_BYTES, 2); 1126 + add_variant_hints (&variant, READOSM_LEN_BYTES, 3); 1127 + add_variant_hints (&variant, READOSM_LEN_BYTES, 4); 1128 + add_variant_hints (&variant, READOSM_LEN_BYTES, 5); 1129 + add_variant_hints (&variant, READOSM_LEN_BYTES, 6); 1130 + 1131 +/* reading the DenseInfo block */ 1132 + while (1) 1133 + { 1134 + /* resetting an empty variant field */ 1135 + reset_variant (&variant); 1136 + 1137 + base = parse_field (start, stop, &variant); 1138 + if (base == NULL && variant.valid == 0) 1139 + goto error; 1140 + start = base; 1141 + if (variant.field_id == 1 && variant.type == READOSM_LEN_BYTES) 1142 + { 1143 + /* versions: *not* delta encoded */ 1144 + if (!parse_uint32_packed 1145 + (&packed_u32, variant.pointer, 1146 + variant.pointer + variant.length - 1, 1147 + variant.little_endian_cpu)) 1148 + goto error; 1149 + count = 0; 1150 + pu32 = packed_u32.first; 1151 + while (pu32) 1152 + { 1153 + count++; 1154 + pu32 = pu32->next; 1155 + } 1156 + packed_infos->ver_count = count; 1157 + if (packed_infos->versions != NULL) 1158 + { 1159 + free (packed_infos->versions); 1160 + packed_infos->versions = NULL; 1161 + } 1162 + if (count > 0) 1163 + { 1164 + packed_infos->versions = malloc (sizeof (int) * count); 1165 + count = 0; 1166 + pu32 = packed_u32.first; 1167 + while (pu32) 1168 + { 1169 + *(packed_infos->versions + count) = pu32->value; 1170 + count++; 1171 + pu32 = pu32->next; 1172 + } 1173 + } 1174 + reset_uint32_packed (&packed_u32); 1175 + } 1176 + if (variant.field_id == 2 && variant.type == READOSM_LEN_BYTES) 1177 + { 1178 + /* timestamps: delta encoded */ 1179 + int delta = 0; 1180 + if (!parse_sint32_packed 1181 + (&packed_32, variant.pointer, 1182 + variant.pointer + variant.length - 1, 1183 + variant.little_endian_cpu)) 1184 + goto error; 1185 + count = 0; 1186 + p32 = packed_32.first; 1187 + while (p32) 1188 + { 1189 + count++; 1190 + p32 = p32->next; 1191 + } 1192 + packed_infos->tim_count = count; 1193 + if (packed_infos->timestamps != NULL) 1194 + { 1195 + free (packed_infos->timestamps); 1196 + packed_infos->timestamps = NULL; 1197 + } 1198 + if (count > 0) 1199 + { 1200 + packed_infos->timestamps = malloc (sizeof (int) * count); 1201 + count = 0; 1202 + p32 = packed_32.first; 1203 + while (p32) 1204 + { 1205 + delta += p32->value; 1206 + *(packed_infos->timestamps + count) = delta; 1207 + count++; 1208 + p32 = p32->next; 1209 + } 1210 + } 1211 + reset_int32_packed (&packed_32); 1212 + } 1213 + if (variant.field_id == 3 && variant.type == READOSM_LEN_BYTES) 1214 + { 1215 + /* changesets: delta encoded */ 1216 + long long delta = 0; 1217 + if (!parse_sint64_packed 1218 + (&packed_64, variant.pointer, 1219 + variant.pointer + variant.length - 1, 1220 + variant.little_endian_cpu)) 1221 + goto error; 1222 + count = 0; 1223 + p64 = packed_64.first; 1224 + while (p64) 1225 + { 1226 + count++; 1227 + p64 = p64->next; 1228 + } 1229 + packed_infos->cng_count = count; 1230 + if (packed_infos->changesets != NULL) 1231 + { 1232 + free (packed_infos->changesets); 1233 + packed_infos->changesets = NULL; 1234 + } 1235 + if (count > 0) 1236 + { 1237 + packed_infos->changesets = 1238 + malloc (sizeof (long long) * count); 1239 + count = 0; 1240 + p64 = packed_64.first; 1241 + while (p64) 1242 + { 1243 + delta += p64->value; 1244 + *(packed_infos->changesets + count) = delta; 1245 + count++; 1246 + p64 = p64->next; 1247 + } 1248 + } 1249 + reset_int64_packed (&packed_64); 1250 + } 1251 + if (variant.field_id == 4 && variant.type == READOSM_LEN_BYTES) 1252 + { 1253 + /* uids: delta encoded */ 1254 + int delta = 0; 1255 + if (!parse_sint32_packed 1256 + (&packed_32, variant.pointer, 1257 + variant.pointer + variant.length - 1, 1258 + variant.little_endian_cpu)) 1259 + goto error; 1260 + count = 0; 1261 + p32 = packed_32.first; 1262 + while (p32) 1263 + { 1264 + count++; 1265 + p32 = p32->next; 1266 + } 1267 + packed_infos->uid_count = count; 1268 + if (packed_infos->uids != NULL) 1269 + { 1270 + free (packed_infos->uids); 1271 + packed_infos->uids = NULL; 1272 + } 1273 + if (count > 0) 1274 + { 1275 + packed_infos->uids = malloc (sizeof (int) * count); 1276 + count = 0; 1277 + p32 = packed_32.first; 1278 + while (p32) 1279 + { 1280 + delta += p32->value; 1281 + *(packed_infos->uids + count) = delta; 1282 + count++; 1283 + p32 = p32->next; 1284 + } 1285 + } 1286 + reset_int32_packed (&packed_32); 1287 + } 1288 + if (variant.field_id == 5 && variant.type == READOSM_LEN_BYTES) 1289 + { 1290 + /* user-names: delta encoded (index to StringTable) */ 1291 + int delta = 0; 1292 + if (!parse_sint32_packed 1293 + (&packed_32, variant.pointer, 1294 + variant.pointer + variant.length - 1, 1295 + variant.little_endian_cpu)) 1296 + goto error; 1297 + count = 0; 1298 + p32 = packed_32.first; 1299 + while (p32) 1300 + { 1301 + count++; 1302 + p32 = p32->next; 1303 + } 1304 + packed_infos->usr_count = count; 1305 + if (packed_infos->users != NULL) 1306 + { 1307 + free (packed_infos->users); 1308 + packed_infos->users = NULL; 1309 + } 1310 + if (count > 0) 1311 + { 1312 + packed_infos->users = malloc (sizeof (int) * count); 1313 + count = 0; 1314 + p32 = packed_32.first; 1315 + while (p32) 1316 + { 1317 + delta += p32->value; 1318 + *(packed_infos->users + count) = delta; 1319 + count++; 1320 + p32 = p32->next; 1321 + } 1322 + } 1323 + reset_int32_packed (&packed_32); 1324 + } 1325 + if (base > stop) 1326 + break; 1327 + } 1328 + finalize_uint32_packed (&packed_u32); 1329 + finalize_int32_packed (&packed_32); 1330 + finalize_int64_packed (&packed_64); 1331 + finalize_variant (&variant); 1332 + return 1; 1333 + 1334 + error: 1335 + finalize_variant (&variant); 1336 + finalize_uint32_packed (&packed_u32); 1337 + finalize_int32_packed (&packed_32); 1338 + finalize_int64_packed (&packed_64); 1339 + return 0; 1340 +} 1341 + 1342 +static int 1343 +parse_pbf_nodes (readosm_string_table * strings, 1344 + unsigned char *start, unsigned char *stop, 1345 + char little_endian_cpu, struct pbf_params *params) 1346 +{ 1347 +/* 1348 + / attempting to parse a valid PBF DenseNodes 1349 + / 1350 + / Remark: a PBF DenseNodes block consists in five strings: 1351 + / - ids 1352 + / - DenseInfos 1353 + / - longitudes 1354 + / - latitudes 1355 + / - packed-keys (*) 1356 + / 1357 + / each "string" in turn contains an array of INT values; 1358 + / and individual values are usually encoded as DELTAs, 1359 + / i.e. differences respect the immediately preceding value. 1360 + / 1361 + / (*) packed keys actually are encoded as arrays of index 1362 + / to StringTable entries. 1363 + / alternatively we have a key-index and then a value-index; 1364 + / any 0 value means that the current Node stops: next index 1365 + / will be a key-index for the next Node item 1366 +*/ 1367 + readosm_variant variant; 1368 + unsigned char *base = start; 1369 + readosm_uint32_packed packed_keys; 1370 + readosm_int64_packed packed_ids; 1371 + readosm_int64_packed packed_lats; 1372 + readosm_int64_packed packed_lons; 1373 + readosm_packed_infos packed_infos; 1374 + readosm_internal_node *nodes = NULL; 1375 + int nd_count = 0; 1376 + int valid = 0; 1377 + int fromPackedInfos = 0; 1378 + 1379 +/* initializing empty packed objects */ 1380 + init_uint32_packed (&packed_keys); 1381 + init_int64_packed (&packed_ids); 1382 + init_int64_packed (&packed_lats); 1383 + init_int64_packed (&packed_lons); 1384 + init_packed_infos (&packed_infos); 1385 + 1386 +/* initializing an empty variant field */ 1387 + init_variant (&variant, little_endian_cpu); 1388 + add_variant_hints (&variant, READOSM_LEN_BYTES, 1); 1389 + add_variant_hints (&variant, READOSM_LEN_BYTES, 5); 1390 + add_variant_hints (&variant, READOSM_LEN_BYTES, 8); 1391 + add_variant_hints (&variant, READOSM_LEN_BYTES, 9); 1392 + add_variant_hints (&variant, READOSM_LEN_BYTES, 10); 1393 + 1394 +/* reading the Node */ 1395 + while (1) 1396 + { 1397 + /* resetting an empty variant field */ 1398 + reset_variant (&variant); 1399 + 1400 + base = parse_field (start, stop, &variant); 1401 + if (base == NULL && variant.valid == 0) 1402 + goto error; 1403 + start = base; 1404 + if (variant.field_id == 1 && variant.type == READOSM_LEN_BYTES) 1405 + { 1406 + /* NODE IDs */ 1407 + if (!parse_sint64_packed 1408 + (&packed_ids, variant.pointer, 1409 + variant.pointer + variant.length - 1, 1410 + variant.little_endian_cpu)) 1411 + goto error; 1412 + array_from_int64_packed (&packed_ids); 1413 + } 1414 + if (variant.field_id == 5 && variant.type == READOSM_LEN_BYTES) 1415 + { 1416 + /* DenseInfos */ 1417 + if (!parse_pbf_node_infos (&packed_infos, 1418 + variant.pointer, 1419 + variant.pointer + variant.length - 1, 1420 + variant.little_endian_cpu)) 1421 + goto error; 1422 + } 1423 + if (variant.field_id == 8 && variant.type == READOSM_LEN_BYTES) 1424 + { 1425 + /* latitudes */ 1426 + if (!parse_sint64_packed 1427 + (&packed_lats, variant.pointer, 1428 + variant.pointer + variant.length - 1, 1429 + variant.little_endian_cpu)) 1430 + goto error; 1431 + array_from_int64_packed (&packed_lats); 1432 + } 1433 + if (variant.field_id == 9 && variant.type == READOSM_LEN_BYTES) 1434 + { 1435 + /* longitudes */ 1436 + if (!parse_sint64_packed 1437 + (&packed_lons, variant.pointer, 1438 + variant.pointer + variant.length - 1, 1439 + variant.little_endian_cpu)) 1440 + goto error; 1441 + array_from_int64_packed (&packed_lons); 1442 + } 1443 + if (variant.field_id == 10 && variant.type == READOSM_LEN_BYTES) 1444 + { 1445 + /* packes-keys */ 1446 + if (!parse_uint32_packed 1447 + (&packed_keys, variant.pointer, 1448 + variant.pointer + variant.length - 1, 1449 + variant.little_endian_cpu)) 1450 + goto error; 1451 + array_from_uint32_packed (&packed_keys); 1452 + } 1453 + if (base > stop) 1454 + break; 1455 + } 1456 + if (packed_ids.count == packed_lats.count 1457 + && packed_ids.count == packed_lons.count) 1458 + { 1459 + /* not using PackedInfos */ 1460 + valid = 1; 1461 + } 1462 + if (packed_ids.count == packed_lats.count 1463 + && packed_ids.count == packed_lons.count 1464 + && packed_ids.count == packed_infos.ver_count 1465 + && packed_ids.count == packed_infos.tim_count 1466 + && packed_ids.count == packed_infos.cng_count 1467 + && packed_ids.count == packed_infos.uid_count 1468 + && packed_ids.count == packed_infos.usr_count) 1469 + { 1470 + /* from PackedInfos */ 1471 + valid = 1; 1472 + fromPackedInfos = 1; 1473 + } 1474 + if (!valid) 1475 + goto error; 1476 + else 1477 + { 1478 + /* 1479 + / all right, we now have the same item count anywhere 1480 + / we can now go further away attempting to reassemble 1481 + / individual Nodes 1482 + */ 1483 + readosm_internal_node *nd; 1484 + int i; 1485 + int i_keys = 0; 1486 + long long delta_id = 0; 1487 + long long delta_lat = 0; 1488 + long long delta_lon = 0; 1489 + int max_nodes; 1490 + int base = 0; 1491 + nd_count = packed_ids.count; 1492 + while (base < nd_count) 1493 + { 1494 + /* processing about 1024 nodes at each time */ 1495 + max_nodes = MAX_NODES; 1496 + if ((nd_count - base) < MAX_NODES) 1497 + max_nodes = nd_count - base; 1498 + nodes = malloc (sizeof (readosm_internal_node) * max_nodes); 1499 + for (i = 0; i < max_nodes; i++) 1500 + { 1501 + /* initializing an array of empty internal Nodes */ 1502 + nd = nodes + i; 1503 + init_internal_node (nd); 1504 + } 1505 + for (i = 0; i < max_nodes; i++) 1506 + { 1507 + /* reassembling internal Nodes */ 1508 + const char *key = NULL; 1509 + const char *value = NULL; 1510 + time_t xtime; 1511 + struct tm *times; 1512 + int s_id; 1513 + nd = nodes + i; 1514 + delta_id += *(packed_ids.values + base + i); 1515 + delta_lat += *(packed_lats.values + base + i); 1516 + delta_lon += *(packed_lons.values + base + i); 1517 + nd->id = delta_id; 1518 + /* latitudes and longitudes require to be rescaled as DOUBLEs */ 1519 + nd->latitude = delta_lat / 10000000.0; 1520 + nd->longitude = delta_lon / 10000000.0; 1521 + if (fromPackedInfos) 1522 + { 1523 + nd->version = *(packed_infos.versions + base + i); 1524 + xtime = *(packed_infos.timestamps + base + i); 1525 + times = gmtime (&xtime); 1526 + if (times) 1527 + { 1528 + /* formatting Timestamps */ 1529 + char buf[64]; 1530 + int len; 1531 + sprintf (buf, 1532 + "%04d-%02d-%02dT%02d:%02d:%02dZ", 1533 + times->tm_year + 1900, 1534 + times->tm_mon + 1, times->tm_mday, 1535 + times->tm_hour, times->tm_min, 1536 + times->tm_sec); 1537 + if (nd->timestamp) 1538 + free (nd->timestamp); 1539 + len = strlen (buf); 1540 + nd->timestamp = malloc (len + 1); 1541 + strcpy (nd->timestamp, buf); 1542 + } 1543 + nd->changeset = 1544 + *(packed_infos.changesets + base + i); 1545 + if (*(packed_infos.uids + base + i) >= 0) 1546 + nd->uid = *(packed_infos.uids + base + i); 1547 + s_id = *(packed_infos.users + base + i); 1548 + if (s_id > 0) 1549 + { 1550 + /* retrieving user-names as strings (by index) */ 1551 + readosm_string *s_ptr = 1552 + *(strings->strings + s_id); 1553 + int len = strlen (s_ptr->string); 1554 + if (nd->user != NULL) 1555 + free (nd->user); 1556 + if (len > 0) 1557 + { 1558 + nd->user = malloc (len + 1); 1559 + strcpy (nd->user, s_ptr->string); 1560 + } 1561 + } 1562 + } 1563 + for (; i_keys < packed_keys.count; i_keys++) 1564 + { 1565 + /* decoding packed-keys */ 1566 + int is = *(packed_keys.values + i_keys); 1567 + if (is == 0) 1568 + { 1569 + /* next Node */ 1570 + i_keys++; 1571 + break; 1572 + } 1573 + if (key == NULL) 1574 + { 1575 + readosm_string *s_ptr = 1576 + *(strings->strings + is); 1577 + key = s_ptr->string; 1578 + } 1579 + else 1580 + { 1581 + readosm_string *s_ptr = 1582 + *(strings->strings + is); 1583 + value = s_ptr->string; 1584 + append_tag_to_node (nd, key, value); 1585 + key = NULL; 1586 + value = NULL; 1587 + } 1588 + } 1589 + } 1590 + base += max_nodes; 1591 + 1592 + /* processing each Node in the block */ 1593 + if (params->node_callback != NULL && params->stop == 0) 1594 + { 1595 + int ret; 1596 + readosm_internal_node *nd; 1597 + int i; 1598 + for (i = 0; i < max_nodes; i++) 1599 + { 1600 + nd = nodes + i; 1601 + ret = 1602 + call_node_callback (params->node_callback, 1603 + params->user_data, nd); 1604 + if (ret != READOSM_OK) 1605 + { 1606 + params->stop = 1; 1607 + break; 1608 + } 1609 + } 1610 + } 1611 + 1612 + /* memory cleanup: destroying Nodes */ 1613 + if (nodes != NULL) 1614 + { 1615 + readosm_internal_node *nd; 1616 + int i; 1617 + for (i = 0; i < max_nodes; i++) 1618 + { 1619 + nd = nodes + i; 1620 + destroy_internal_node (nd); 1621 + } 1622 + free (nodes); 1623 + } 1624 + } 1625 + } 1626 + 1627 +/* memory cleanup */ 1628 + finalize_uint32_packed (&packed_keys); 1629 + finalize_int64_packed (&packed_ids); 1630 + finalize_int64_packed (&packed_lats); 1631 + finalize_int64_packed (&packed_lons); 1632 + finalize_packed_infos (&packed_infos); 1633 + finalize_variant (&variant); 1634 + return 1; 1635 + 1636 + error: 1637 + finalize_uint32_packed (&packed_keys); 1638 + finalize_int64_packed (&packed_ids); 1639 + finalize_int64_packed (&packed_lats); 1640 + finalize_int64_packed (&packed_lons); 1641 + finalize_packed_infos (&packed_infos); 1642 + finalize_variant (&variant); 1643 + if (nodes != NULL) 1644 + { 1645 + readosm_internal_node *nd; 1646 + int i; 1647 + for (i = 0; i < nd_count; i++) 1648 + { 1649 + nd = nodes + i; 1650 + destroy_internal_node (nd); 1651 + } 1652 + free (nodes); 1653 + } 1654 + return 0; 1655 +} 1656 + 1657 +static int 1658 +parse_pbf_way_info (readosm_internal_way * way, readosm_string_table * strings, 1659 + unsigned char *start, unsigned char *stop, 1660 + char little_endian_cpu) 1661 +{ 1662 +/* attempting to parse a valid PBF Way-Info */ 1663 + readosm_variant variant; 1664 + unsigned char *base = start; 1665 + 1666 +/* initializing an empty variant field */ 1667 + init_variant (&variant, little_endian_cpu); 1668 + add_variant_hints (&variant, READOSM_VAR_INT32, 1); 1669 + add_variant_hints (&variant, READOSM_VAR_INT32, 2); 1670 + add_variant_hints (&variant, READOSM_VAR_INT64, 3); 1671 + add_variant_hints (&variant, READOSM_VAR_INT32, 4); 1672 + add_variant_hints (&variant, READOSM_VAR_INT32, 5); 1673 + add_variant_hints (&variant, READOSM_VAR_INT32, 6); 1674 + 1675 +/* reading the WayInfo */ 1676 + while (1) 1677 + { 1678 + /* resetting an empty variant field */ 1679 + reset_variant (&variant); 1680 + 1681 + base = parse_field (start, stop, &variant); 1682 + if (base == NULL && variant.valid == 0) 1683 + goto error; 1684 + start = base; 1685 + if (variant.field_id == 1 && variant.type == READOSM_VAR_INT32) 1686 + { 1687 + /* version */ 1688 + way->version = variant.value.int32_value; 1689 + } 1690 + if (variant.field_id == 2 && variant.type == READOSM_VAR_INT32) 1691 + { 1692 + /* timestamp */ 1693 + const time_t xtime = variant.value.int32_value; 1694 + struct tm *times = gmtime (&xtime); 1695 + if (times) 1696 + { 1697 + char buf[64]; 1698 + int len; 1699 + sprintf (buf, "%04d-%02d-%02dT%02d:%02d:%02dZ", 1700 + times->tm_year + 1900, times->tm_mon + 1, 1701 + times->tm_mday, times->tm_hour, times->tm_min, 1702 + times->tm_sec); 1703 + if (way->timestamp) 1704 + free (way->timestamp); 1705 + len = strlen (buf); 1706 + way->timestamp = malloc (len + 1); 1707 + strcpy (way->timestamp, buf); 1708 + } 1709 + } 1710 + if (variant.field_id == 3 && variant.type == READOSM_VAR_INT64) 1711 + { 1712 + /* changeset */ 1713 + way->changeset = variant.value.int64_value; 1714 + } 1715 + if (variant.field_id == 4 && variant.type == READOSM_VAR_INT32) 1716 + { 1717 + /* uid */ 1718 + way->uid = variant.value.int32_value; 1719 + } 1720 + if (variant.field_id == 5 && variant.type == READOSM_VAR_INT32) 1721 + { 1722 + /* user-name: index to StringTable entry */ 1723 + int userid; 1724 + if (way->user) 1725 + free (way->user); 1726 + way->user = NULL; 1727 + userid = variant.value.int32_value; 1728 + if (userid > 0 && userid < strings->count) 1729 + { 1730 + readosm_string *string = *(strings->strings + userid); 1731 + int len = strlen (string->string); 1732 + way->user = malloc (len + 1); 1733 + strcpy (way->user, string->string); 1734 + } 1735 + } 1736 + if (base > stop) 1737 + break; 1738 + } 1739 + finalize_variant (&variant); 1740 + return 1; 1741 + 1742 + error: 1743 + finalize_variant (&variant); 1744 + return 0; 1745 +} 1746 + 1747 +static int 1748 +parse_pbf_way (readosm_string_table * strings, 1749 + unsigned char *start, unsigned char *stop, 1750 + char little_endian_cpu, struct pbf_params *params) 1751 +{ 1752 +/* attempting to parse a valid PBF Way */ 1753 + readosm_variant variant; 1754 + unsigned char *base = start; 1755 + readosm_uint32_packed packed_keys; 1756 + readosm_uint32_packed packed_values; 1757 + readosm_int64_packed packed_refs; 1758 + readosm_internal_way *way = alloc_internal_way (); 1759 + 1760 +/* initializing empty packed objects */ 1761 + init_uint32_packed (&packed_keys); 1762 + init_uint32_packed (&packed_values); 1763 + init_int64_packed (&packed_refs); 1764 + 1765 +/* initializing an empty variant field */ 1766 + init_variant (&variant, little_endian_cpu); 1767 + add_variant_hints (&variant, READOSM_VAR_INT64, 1); 1768 + add_variant_hints (&variant, READOSM_LEN_BYTES, 2); 1769 + add_variant_hints (&variant, READOSM_LEN_BYTES, 3); 1770 + add_variant_hints (&variant, READOSM_LEN_BYTES, 4); 1771 + add_variant_hints (&variant, READOSM_LEN_BYTES, 8); 1772 + 1773 +/* reading the Way */ 1774 + while (1) 1775 + { 1776 + /* resetting an empty variant field */ 1777 + reset_variant (&variant); 1778 + 1779 + base = parse_field (start, stop, &variant); 1780 + if (base == NULL && variant.valid == 0) 1781 + goto error; 1782 + start = base; 1783 + if (variant.field_id == 1 && variant.type == READOSM_VAR_INT64) 1784 + { 1785 + /* WAY ID */ 1786 + way->id = variant.value.int64_value; 1787 + } 1788 + if (variant.field_id == 2 && variant.type == READOSM_LEN_BYTES) 1789 + { 1790 + /* KEYs are encoded as an array of StringTable index */ 1791 + if (!parse_uint32_packed 1792 + (&packed_keys, variant.pointer, 1793 + variant.pointer + variant.length - 1, 1794 + variant.little_endian_cpu)) 1795 + goto error; 1796 + array_from_uint32_packed (&packed_keys); 1797 + } 1798 + if (variant.field_id == 3 && variant.type == READOSM_LEN_BYTES) 1799 + { 1800 + /* VALUEs are encoded as an array of StringTable index */ 1801 + if (!parse_uint32_packed 1802 + (&packed_values, variant.pointer, 1803 + variant.pointer + variant.length - 1, 1804 + variant.little_endian_cpu)) 1805 + goto error; 1806 + array_from_uint32_packed (&packed_values); 1807 + } 1808 + if (variant.field_id == 4 && variant.type == READOSM_LEN_BYTES) 1809 + { 1810 + /* WAY-INFO block */ 1811 + if (!parse_pbf_way_info 1812 + (way, strings, variant.pointer, 1813 + variant.pointer + variant.length - 1, 1814 + variant.little_endian_cpu)) 1815 + goto error; 1816 + } 1817 + if (variant.field_id == 8 && variant.type == READOSM_LEN_BYTES) 1818 + { 1819 + /* NODE-REFs */ 1820 + long long delta = 0; 1821 + readosm_int64 *value; 1822 + /* KEYs are encoded as an array of StringTable index */ 1823 + if (!parse_sint64_packed 1824 + (&packed_refs, variant.pointer, 1825 + variant.pointer + variant.length - 1, 1826 + variant.little_endian_cpu)) 1827 + goto error; 1828 + value = packed_refs.first; 1829 + while (value != NULL) 1830 + { 1831 + /* appending Node references to Way */ 1832 + delta += value->value; 1833 + append_reference_to_way (way, delta); 1834 + value = value->next; 1835 + } 1836 + } 1837 + if (base > stop) 1838 + break; 1839 + } 1840 + 1841 +/* reassembling a WAY object */ 1842 + if (packed_keys.count == packed_values.count) 1843 + { 1844 + int i; 1845 + for (i = 0; i < packed_keys.count; i++) 1846 + { 1847 + int i_key = *(packed_keys.values + i); 1848 + int i_val = *(packed_values.values + i); 1849 + readosm_string *s_key = *(strings->strings + i_key); 1850 + readosm_string *s_value = *(strings->strings + i_val); 1851 + append_tag_to_way (way, s_key->string, s_value->string); 1852 + } 1853 + } 1854 + else 1855 + goto error; 1856 + 1857 + finalize_uint32_packed (&packed_keys); 1858 + finalize_uint32_packed (&packed_values); 1859 + finalize_int64_packed (&packed_refs); 1860 + finalize_variant (&variant); 1861 + 1862 +/* processing the WAY */ 1863 + if (params->way_callback != NULL && params->stop == 0) 1864 + { 1865 + int ret = 1866 + call_way_callback (params->way_callback, params->user_data, way); 1867 + if (ret != READOSM_OK) 1868 + params->stop = 1; 1869 + } 1870 + destroy_internal_way (way); 1871 + return 1; 1872 + 1873 + error: 1874 + finalize_uint32_packed (&packed_keys); 1875 + finalize_uint32_packed (&packed_values); 1876 + finalize_int64_packed (&packed_refs); 1877 + finalize_variant (&variant); 1878 + destroy_internal_way (way); 1879 + return 0; 1880 +} 1881 + 1882 +static int 1883 +parse_pbf_relation_info (readosm_internal_relation * relation, 1884 + readosm_string_table * strings, unsigned char *start, 1885 + unsigned char *stop, char little_endian_cpu) 1886 +{ 1887 +/* attempting to parse a valid PBF RelationInfo */ 1888 + readosm_variant variant; 1889 + unsigned char *base = start; 1890 + 1891 +/* initializing an empty variant field */ 1892 + init_variant (&variant, little_endian_cpu); 1893 + add_variant_hints (&variant, READOSM_VAR_INT32, 1); 1894 + add_variant_hints (&variant, READOSM_VAR_INT32, 2); 1895 + add_variant_hints (&variant, READOSM_VAR_INT64, 3); 1896 + add_variant_hints (&variant, READOSM_VAR_INT32, 4); 1897 + add_variant_hints (&variant, READOSM_VAR_INT32, 5); 1898 + add_variant_hints (&variant, READOSM_VAR_INT32, 6); 1899 + 1900 +/* reading the RelationInfo */ 1901 + while (1) 1902 + { 1903 + /* resetting an empty variant field */ 1904 + reset_variant (&variant); 1905 + 1906 + base = parse_field (start, stop, &variant); 1907 + if (base == NULL && variant.valid == 0) 1908 + goto error; 1909 + start = base; 1910 + if (variant.field_id == 1 && variant.type == READOSM_VAR_INT32) 1911 + { 1912 + /* version */ 1913 + relation->version = variant.value.int32_value; 1914 + } 1915 + if (variant.field_id == 2 && variant.type == READOSM_VAR_INT32) 1916 + { 1917 + /* timestamp */ 1918 + const time_t xtime = variant.value.int32_value; 1919 + struct tm *times = gmtime (&xtime); 1920 + if (times) 1921 + { 1922 + char buf[64]; 1923 + int len; 1924 + sprintf (buf, "%04d-%02d-%02dT%02d:%02d:%02dZ", 1925 + times->tm_year + 1900, times->tm_mon + 1, 1926 + times->tm_mday, times->tm_hour, times->tm_min, 1927 + times->tm_sec); 1928 + if (relation->timestamp) 1929 + free (relation->timestamp); 1930 + len = strlen (buf); 1931 + relation->timestamp = malloc (len + 1); 1932 + strcpy (relation->timestamp, buf); 1933 + } 1934 + } 1935 + if (variant.field_id == 3 && variant.type == READOSM_VAR_INT64) 1936 + { 1937 + /* changeset */ 1938 + relation->changeset = variant.value.int64_value; 1939 + } 1940 + if (variant.field_id == 4 && variant.type == READOSM_VAR_INT32) 1941 + { 1942 + /* uid */ 1943 + relation->uid = variant.value.int32_value; 1944 + } 1945 + if (variant.field_id == 5 && variant.type == READOSM_VAR_INT32) 1946 + { 1947 + /* user-name: index to StringTable entry */ 1948 + int userid; 1949 + if (relation->user) 1950 + free (relation->user); 1951 + relation->user = NULL; 1952 + userid = variant.value.int32_value; 1953 + if (userid > 0 && userid < strings->count) 1954 + { 1955 + readosm_string *string = *(strings->strings + userid); 1956 + int len = strlen (string->string); 1957 + relation->user = malloc (len + 1); 1958 + strcpy (relation->user, string->string); 1959 + } 1960 + } 1961 + if (base > stop) 1962 + break; 1963 + } 1964 + finalize_variant (&variant); 1965 + return 1; 1966 + 1967 + error: 1968 + finalize_variant (&variant); 1969 + return 0; 1970 +} 1971 + 1972 +static int 1973 +parse_pbf_relation (readosm_string_table * strings, 1974 + unsigned char *start, unsigned char *stop, 1975 + char little_endian_cpu, struct pbf_params *params) 1976 +{ 1977 +/* attempting to parse a valid PBF Relation */ 1978 + readosm_variant variant; 1979 + unsigned char *base = start; 1980 + readosm_uint32_packed packed_keys; 1981 + readosm_uint32_packed packed_values; 1982 + readosm_uint32_packed packed_roles; 1983 + readosm_uint32_packed packed_types; 1984 + readosm_int64_packed packed_refs; 1985 + readosm_internal_relation *relation = alloc_internal_relation (); 1986 + 1987 +/* initializing empty packed objects */ 1988 + init_uint32_packed (&packed_keys); 1989 + init_uint32_packed (&packed_values); 1990 + init_uint32_packed (&packed_roles); 1991 + init_uint32_packed (&packed_types); 1992 + init_int64_packed (&packed_refs); 1993 + 1994 +/* initializing an empty variant field */ 1995 + init_variant (&variant, little_endian_cpu); 1996 + add_variant_hints (&variant, READOSM_VAR_INT64, 1); 1997 + add_variant_hints (&variant, READOSM_LEN_BYTES, 2); 1998 + add_variant_hints (&variant, READOSM_LEN_BYTES, 3); 1999 + add_variant_hints (&variant, READOSM_LEN_BYTES, 4); 2000 + add_variant_hints (&variant, READOSM_LEN_BYTES, 8); 2001 + add_variant_hints (&variant, READOSM_LEN_BYTES, 9); 2002 + add_variant_hints (&variant, READOSM_LEN_BYTES, 10); 2003 + 2004 +/* reading the Relation */ 2005 + while (1) 2006 + { 2007 + /* resetting an empty variant field */ 2008 + reset_variant (&variant); 2009 + 2010 + base = parse_field (start, stop, &variant); 2011 + if (base == NULL && variant.valid == 0) 2012 + goto error; 2013 + start = base; 2014 + if (variant.field_id == 1 && variant.type == READOSM_VAR_INT64) 2015 + { 2016 + /* RELATION ID */ 2017 + relation->id = variant.value.int64_value; 2018 + } 2019 + if (variant.field_id == 2 && variant.type == READOSM_LEN_BYTES) 2020 + { 2021 + /* KEYs are encoded as an array of StringTable index */ 2022 + if (!parse_uint32_packed 2023 + (&packed_keys, variant.pointer, 2024 + variant.pointer + variant.length - 1, 2025 + variant.little_endian_cpu)) 2026 + goto error; 2027 + array_from_uint32_packed (&packed_keys); 2028 + } 2029 + if (variant.field_id == 3 && variant.type == READOSM_LEN_BYTES) 2030 + { 2031 + /* VALUEs are encoded as an array of StringTable index */ 2032 + if (!parse_uint32_packed 2033 + (&packed_values, variant.pointer, 2034 + variant.pointer + variant.length - 1, 2035 + variant.little_endian_cpu)) 2036 + goto error; 2037 + array_from_uint32_packed (&packed_values); 2038 + } 2039 + if (variant.field_id == 4 && variant.type == READOSM_LEN_BYTES) 2040 + { 2041 + /* RELATION-INFO block */ 2042 + if (!parse_pbf_relation_info 2043 + (relation, strings, variant.pointer, 2044 + variant.pointer + variant.length - 1, 2045 + variant.little_endian_cpu)) 2046 + goto error; 2047 + } 2048 + if (variant.field_id == 8 && variant.type == READOSM_LEN_BYTES) 2049 + { 2050 + /* MEMBER-ROLEs are encoded as an array of StringTable index */ 2051 + if (!parse_uint32_packed 2052 + (&packed_roles, variant.pointer, 2053 + variant.pointer + variant.length - 1, 2054 + variant.little_endian_cpu)) 2055 + goto error; 2056 + array_from_uint32_packed (&packed_roles); 2057 + } 2058 + if (variant.field_id == 9 && variant.type == READOSM_LEN_BYTES) 2059 + { 2060 + /* MEMBER-REFs are encoded as an array */ 2061 + if (!parse_sint64_packed 2062 + (&packed_refs, variant.pointer, 2063 + variant.pointer + variant.length - 1, 2064 + variant.little_endian_cpu)) 2065 + goto error; 2066 + array_from_int64_packed (&packed_refs); 2067 + } 2068 + if (variant.field_id == 10 && variant.type == READOSM_LEN_BYTES) 2069 + { 2070 + /* MEMBER-TYPEs are encoded as an array */ 2071 + if (!parse_uint32_packed 2072 + (&packed_types, variant.pointer, 2073 + variant.pointer + variant.length - 1, 2074 + variant.little_endian_cpu)) 2075 + goto error; 2076 + array_from_uint32_packed (&packed_types); 2077 + } 2078 + if (base > stop) 2079 + break; 2080 + } 2081 + 2082 +/* reassembling a RELATION object */ 2083 + if (packed_keys.count == packed_values.count) 2084 + { 2085 + int i; 2086 + for (i = 0; i < packed_keys.count; i++) 2087 + { 2088 + int i_key = *(packed_keys.values + i); 2089 + int i_val = *(packed_values.values + i); 2090 + readosm_string *s_key = *(strings->strings + i_key); 2091 + readosm_string *s_value = *(strings->strings + i_val); 2092 + append_tag_to_relation (relation, s_key->string, 2093 + s_value->string); 2094 + } 2095 + } 2096 + else 2097 + goto error; 2098 + if (packed_roles.count == packed_refs.count 2099 + && packed_roles.count == packed_types.count) 2100 + { 2101 + int i; 2102 + long long delta = 0; 2103 + for (i = 0; i < packed_roles.count; i++) 2104 + { 2105 + int i_role = *(packed_roles.values + i); 2106 + readosm_string *s_role = *(strings->strings + i_role); 2107 + int type = *(packed_types.values + i); 2108 + delta += *(packed_refs.values + i); 2109 + append_member_to_relation (relation, type, delta, 2110 + s_role->string); 2111 + } 2112 + } 2113 + else 2114 + goto error; 2115 + 2116 + finalize_uint32_packed (&packed_keys); 2117 + finalize_uint32_packed (&packed_values); 2118 + finalize_uint32_packed (&packed_roles); 2119 + finalize_uint32_packed (&packed_types); 2120 + finalize_int64_packed (&packed_refs); 2121 + finalize_variant (&variant); 2122 + 2123 +/* processing the RELATION */ 2124 + if (params->relation_callback != NULL && params->stop == 0) 2125 + { 2126 + int ret = call_relation_callback (params->relation_callback, 2127 + params->user_data, relation); 2128 + if (ret != READOSM_OK) 2129 + params->stop = 1; 2130 + } 2131 + destroy_internal_relation (relation); 2132 + return 1; 2133 + 2134 + error: 2135 + finalize_uint32_packed (&packed_keys); 2136 + finalize_uint32_packed (&packed_values); 2137 + finalize_uint32_packed (&packed_roles); 2138 + finalize_uint32_packed (&packed_types); 2139 + finalize_int64_packed (&packed_refs); 2140 + finalize_variant (&variant); 2141 + destroy_internal_relation (relation); 2142 + return 0; 2143 +} 2144 + 2145 +static int 2146 +parse_primitive_group (readosm_string_table * strings, 2147 + unsigned char *start, unsigned char *stop, 2148 + char little_endian_cpu, struct pbf_params *params) 2149 +{ 2150 +/* 2151 + / attempting to parse a valid Primitive Group 2152 + / 2153 + / each PBF PrimitiveGroup can store only one type: 2154 + / - NODEs 2155 + / - WAYs 2156 + / - RELATIONs 2157 +*/ 2158 + readosm_variant variant; 2159 + unsigned char *base = start; 2160 + 2161 +/* initializing an empty variant field */ 2162 + init_variant (&variant, little_endian_cpu); 2163 + add_variant_hints (&variant, READOSM_LEN_BYTES, 1); 2164 + add_variant_hints (&variant, READOSM_LEN_BYTES, 2); 2165 + add_variant_hints (&variant, READOSM_LEN_BYTES, 3); 2166 + add_variant_hints (&variant, READOSM_LEN_BYTES, 4); 2167 + add_variant_hints (&variant, READOSM_LEN_BYTES, 5); 2168 + 2169 +/* reading the Primitive Group */ 2170 + while (1) 2171 + { 2172 + /* resetting an empty variant field */ 2173 + reset_variant (&variant); 2174 + 2175 + base = parse_field (start, stop, &variant); 2176 + if (base == NULL && variant.valid == 0) 2177 + goto error; 2178 + start = base; 2179 + if (variant.field_id == 2 && variant.type == READOSM_LEN_BYTES) 2180 + { 2181 + /* DenseNodes */ 2182 + if (params->node_callback == NULL) 2183 + goto skip; /* skipping: no node-callback */ 2184 + if (!parse_pbf_nodes 2185 + (strings, variant.pointer, 2186 + variant.pointer + variant.length - 1, 2187 + variant.little_endian_cpu, params)) 2188 + goto error; 2189 + } 2190 + if (variant.field_id == 3 && variant.type == READOSM_LEN_BYTES) 2191 + { 2192 + /* Way */ 2193 + if (params->way_callback == NULL) 2194 + goto skip; /* skipping: no way-callback */ 2195 + if (!parse_pbf_way 2196 + (strings, variant.pointer, 2197 + variant.pointer + variant.length - 1, 2198 + variant.little_endian_cpu, params)) 2199 + goto error; 2200 + } 2201 + if (variant.field_id == 4 && variant.type == READOSM_LEN_BYTES) 2202 + { 2203 + /* Relation */ 2204 + if (params->relation_callback == NULL) 2205 + goto skip; /* skipping: no relation-callback */ 2206 + if (!parse_pbf_relation 2207 + (strings, variant.pointer, 2208 + variant.pointer + variant.length - 1, 2209 + variant.little_endian_cpu, params)) 2210 + goto error; 2211 + } 2212 + skip: 2213 + if (base > stop) 2214 + break; 2215 + } 2216 + finalize_variant (&variant); 2217 + return 1; 2218 + 2219 + error: 2220 + finalize_variant (&variant); 2221 + return 0; 2222 +} 2223 + 2224 +static int 2225 +parse_osm_data (readosm_file * input, unsigned int sz, 2226 + struct pbf_params *params) 2227 +{ 2228 +/* expecting to retrieve a valid OSMData header */ 2229 + int ok_header = 0; 2230 + int hdsz = 0; 2231 + size_t rd; 2232 + unsigned char *buf = malloc (sz); 2233 + unsigned char *base = buf; 2234 + unsigned char *start = buf; 2235 + unsigned char *stop = buf + sz - 1; 2236 + unsigned char *zip_ptr = NULL; 2237 + int zip_sz = 0; 2238 + unsigned char *raw_ptr = NULL; 2239 + int raw_sz = 0; 2240 + readosm_variant variant; 2241 + readosm_string_table string_table; 2242 + if (buf == NULL) 2243 + goto error; 2244 + 2245 +/* initializing an empty string list */ 2246 + init_string_table (&string_table); 2247 + 2248 +/* initializing an empty variant field */ 2249 + init_variant (&variant, input->little_endian_cpu); 2250 + add_variant_hints (&variant, READOSM_LEN_BYTES, 1); 2251 + add_variant_hints (&variant, READOSM_LEN_BYTES, 2); 2252 + add_variant_hints (&variant, READOSM_VAR_INT32, 3); 2253 + 2254 + rd = fread (buf, 1, sz, input->in); 2255 + if (rd != sz) 2256 + goto error; 2257 + 2258 +/* reading the OSMData header */ 2259 + while (1) 2260 + { 2261 + /* resetting an empty variant field */ 2262 + reset_variant (&variant); 2263 + 2264 + base = parse_field (start, stop, &variant); 2265 + if (base == NULL && variant.valid == 0) 2266 + goto error; 2267 + start = base; 2268 + if (variant.field_id == 1 && variant.type == READOSM_LEN_BYTES 2269 + && variant.length == 7) 2270 + { 2271 + if (memcmp (variant.pointer, "OSMData", 7) == 0) 2272 + ok_header = 1; 2273 + } 2274 + if (variant.field_id == 3 && variant.type == READOSM_VAR_INT32) 2275 + hdsz = variant.value.int32_value; 2276 + if (base > stop) 2277 + break; 2278 + } 2279 + free (buf); 2280 + buf = NULL; 2281 + if (!ok_header || !hdsz) 2282 + goto error; 2283 + 2284 + buf = malloc (hdsz); 2285 + base = buf; 2286 + start = buf; 2287 + stop = buf + hdsz - 1; 2288 + rd = fread (buf, 1, hdsz, input->in); 2289 + if ((int) rd != hdsz) 2290 + goto error; 2291 + 2292 +/* uncompressing the OSMData zipped */ 2293 + finalize_variant (&variant); 2294 + add_variant_hints (&variant, READOSM_LEN_BYTES, 1); 2295 + add_variant_hints (&variant, READOSM_VAR_INT32, 2); 2296 + add_variant_hints (&variant, READOSM_LEN_BYTES, 3); 2297 + while (1) 2298 + { 2299 + /* resetting an empty variant field */ 2300 + reset_variant (&variant); 2301 + 2302 + base = parse_field (start, stop, &variant); 2303 + if (base == NULL && variant.valid == 0) 2304 + goto error; 2305 + start = base; 2306 + if (variant.field_id == 1 && variant.type == READOSM_LEN_BYTES) 2307 + { 2308 + /* found an uncompressed block */ 2309 + raw_sz = variant.length; 2310 + raw_ptr = malloc (raw_sz); 2311 + memcpy (raw_ptr, variant.pointer, raw_sz); 2312 + } 2313 + if (variant.field_id == 2 && variant.type == READOSM_VAR_INT32) 2314 + { 2315 + /* expected size of unZipped block */ 2316 + raw_sz = variant.value.int32_value; 2317 + } 2318 + if (variant.field_id == 3 && variant.type == READOSM_LEN_BYTES) 2319 + { 2320 + /* found a ZIP-compressed block */ 2321 + zip_ptr = variant.pointer; 2322 + zip_sz = variant.length; 2323 + } 2324 + if (base > stop) 2325 + break; 2326 + } 2327 + if (zip_ptr != NULL && zip_sz != 0 && raw_sz != 0) 2328 + { 2329 + /* unZipping a compressed block */ 2330 + raw_ptr = malloc (raw_sz); 2331 + if (!unzip_compressed_block (zip_ptr, zip_sz, raw_ptr, raw_sz)) 2332 + goto error; 2333 + } 2334 + free (buf); 2335 + buf = NULL; 2336 + if (raw_ptr == NULL || raw_sz == 0) 2337 + goto error; 2338 + 2339 +/* parsing the PrimitiveBlock */ 2340 + base = raw_ptr; 2341 + start = raw_ptr; 2342 + stop = raw_ptr + raw_sz - 1; 2343 + finalize_variant (&variant); 2344 + add_variant_hints (&variant, READOSM_LEN_BYTES, 1); 2345 + add_variant_hints (&variant, READOSM_LEN_BYTES, 2); 2346 + add_variant_hints (&variant, READOSM_VAR_INT32, 17); 2347 + add_variant_hints (&variant, READOSM_VAR_INT32, 18); 2348 + add_variant_hints (&variant, READOSM_VAR_INT64, 19); 2349 + add_variant_hints (&variant, READOSM_VAR_INT64, 20); 2350 + while (1) 2351 + { 2352 + /* resetting an empty variant field */ 2353 + reset_variant (&variant); 2354 + 2355 + base = parse_field (start, stop, &variant); 2356 + if (base == NULL && variant.valid == 0) 2357 + goto error; 2358 + start = base; 2359 + if (variant.field_id == 1 && variant.type == READOSM_LEN_BYTES) 2360 + { 2361 + /* the StringTable */ 2362 + if (!parse_string_table 2363 + (&string_table, variant.pointer, 2364 + variant.pointer + variant.length - 1, 2365 + variant.little_endian_cpu)) 2366 + goto error; 2367 + array_from_string_table (&string_table); 2368 + } 2369 + if (variant.field_id == 2 && variant.type == READOSM_LEN_BYTES) 2370 + { 2371 + /* the PrimitiveGroup to be parsed */ 2372 + if (!parse_primitive_group 2373 + (&string_table, variant.pointer, 2374 + variant.pointer + variant.length - 1, 2375 + variant.little_endian_cpu, params)) 2376 + goto error; 2377 + } 2378 + if (variant.field_id == 17 && variant.type == READOSM_VAR_INT32) 2379 + { 2380 + /* assumed to be a termination marker (???) */ 2381 + break; 2382 + } 2383 + if (base > stop) 2384 + break; 2385 + } 2386 + 2387 + if (buf != NULL) 2388 + free (buf); 2389 + if (raw_ptr != NULL) 2390 + free (raw_ptr); 2391 + finalize_variant (&variant); 2392 + finalize_string_table (&string_table); 2393 + return 1; 2394 + 2395 + error: 2396 + if (buf != NULL) 2397 + free (buf); 2398 + if (raw_ptr != NULL) 2399 + free (raw_ptr); 2400 + finalize_variant (&variant); 2401 + finalize_string_table (&string_table); 2402 + return 0; 2403 +} 2404 + 2405 +READOSM_PRIVATE int 2406 +parse_osm_pbf (readosm_file * input, const void *user_data, 2407 + readosm_node_callback node_fnct, readosm_way_callback way_fnct, 2408 + readosm_relation_callback relation_fnct) 2409 +{ 2410 +/* parsing the input file [OSM PBF format] */ 2411 + size_t rd; 2412 + unsigned char buf[8]; 2413 + unsigned int hdsz; 2414 + struct pbf_params params; 2415 + 2416 +/* initializing the PBF helper structure */ 2417 + params.user_data = user_data; 2418 + params.node_callback = node_fnct; 2419 + params.way_callback = way_fnct; 2420 + params.relation_callback = relation_fnct; 2421 + params.stop = 0; 2422 + 2423 +/* reading BlobHeader size: OSMHeader */ 2424 + rd = fread (buf, 1, 4, input->in); 2425 + if (rd != 4) 2426 + return READOSM_INVALID_PBF_HEADER; 2427 + hdsz = get_header_size (buf, input->little_endian_cpu); 2428 + 2429 +/* testing OSMHeader */ 2430 + if (!skip_osm_header (input, hdsz)) 2431 + return READOSM_INVALID_PBF_HEADER; 2432 + 2433 +/* 2434 + / the PBF file is internally organized as a collection 2435 + / of many subsequent OSMData blocks 2436 +*/ 2437 + while (1) 2438 + { 2439 + /* reading BlobHeader size: OSMData */ 2440 + if (params.stop) 2441 + return READOSM_ABORT; 2442 + rd = fread (buf, 1, 4, input->in); 2443 + if (rd == 0 && feof (input->in)) 2444 + break; 2445 + if (rd != 4) 2446 + return READOSM_INVALID_PBF_HEADER; 2447 + hdsz = get_header_size (buf, input->little_endian_cpu); 2448 + 2449 + /* parsing OSMData */ 2450 + if (!parse_osm_data (input, hdsz, ¶ms)) 2451 + return READOSM_INVALID_PBF_HEADER; 2452 + } 2453 + return READOSM_OK; 2454 +}
Added src/readosm.c.
1 +/* 2 +/ readosm.c 3 +/ 4 +/ ReadOSM main implementation (externally visible API) 5 +/ 6 +/ version 1.0, 2012 April 10 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ ------------------------------------------------------------------------------ 11 +/ 12 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 13 +/ 14 +/ The contents of this file are subject to the Mozilla Public License Version 15 +/ 1.1 (the "License"); you may not use this file except in compliance with 16 +/ the License. You may obtain a copy of the License at 17 +/ http://www.mozilla.org/MPL/ 18 +/ 19 +/ Software distributed under the License is distributed on an "AS IS" basis, 20 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 21 +/ for the specific language governing rights and limitations under the 22 +/ License. 23 +/ 24 +/ The Original Code is the ReadOSM library 25 +/ 26 +/ The Initial Developer of the Original Code is Alessandro Furieri 27 +/ 28 +/ Portions created by the Initial Developer are Copyright (C) 2012 29 +/ the Initial Developer. All Rights Reserved. 30 +/ 31 +/ Contributor(s): 32 +/ 33 +/ Alternatively, the contents of this file may be used under the terms of 34 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 35 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 36 +/ in which case the provisions of the GPL or the LGPL are applicable instead 37 +/ of those above. If you wish to allow use of your version of this file only 38 +/ under the terms of either the GPL or the LGPL, and not to allow others to 39 +/ use your version of this file under the terms of the MPL, indicate your 40 +/ decision by deleting the provisions above and replace them with the notice 41 +/ and other provisions required by the GPL or the LGPL. If you do not delete 42 +/ the provisions above, a recipient may use your version of this file under 43 +/ the terms of any one of the MPL, the GPL or the LGPL. 44 +/ 45 +*/ 46 + 47 +#include <stdlib.h> 48 +#include <stdio.h> 49 +#include <string.h> 50 + 51 +#if defined(_WIN32) && !defined(__MINGW32__) 52 +/* MSVC: avoiding to include at all config.h */ 53 +#else 54 +#include "config.h" 55 +#endif 56 + 57 +#include "readosm.h" 58 +#include "readosm_internals.h" 59 + 60 +#ifdef _WIN32 61 +#define strcasecmp _stricmp 62 +#endif /* not WIN32 */ 63 + 64 +static int 65 +test_endianness () 66 +{ 67 +/* checks the current CPU endianness */ 68 + readosm_endian4 endian4; 69 + endian4.bytes[0] = 0x01; 70 + endian4.bytes[1] = 0x00; 71 + endian4.bytes[2] = 0x00; 72 + endian4.bytes[3] = 0x00; 73 + if (endian4.uint32_value == 1) 74 + return READOSM_LITTLE_ENDIAN; 75 + return READOSM_BIG_ENDIAN; 76 +} 77 + 78 +static readosm_file * 79 +alloc_osm_file (int little_endian_cpu, int format) 80 +{ 81 +/* allocating and initializing the OSM input file struct */ 82 + readosm_file *input = malloc (sizeof (readosm_file)); 83 + if (!input) 84 + return NULL; 85 + input->magic1 = READOSM_MAGIC_START; 86 + input->file_format = format; 87 + input->little_endian_cpu = little_endian_cpu; 88 + input->magic2 = READOSM_MAGIC_END; 89 + input->in = NULL; 90 + return input; 91 +} 92 + 93 +static void 94 +destroy_osm_file (readosm_file * input) 95 +{ 96 +/* destroying the OSM input file struct */ 97 + if (input) 98 + { 99 + if (input->in) 100 + fclose (input->in); 101 + free (input); 102 + } 103 +} 104 + 105 +READOSM_DECLARE int 106 +readosm_open (const char *path, const void **osm_handle) 107 +{ 108 +/* opening and initializing the OSM input file */ 109 + readosm_file *input; 110 + int len; 111 + int format; 112 + int little_endian_cpu = test_endianness (); 113 + 114 + *osm_handle = NULL; 115 + if (path == NULL || osm_handle == NULL) 116 + return READOSM_NULL_HANDLE; 117 + 118 + len = strlen (path); 119 + if (len > 4 && strcasecmp (path + len - 4, ".osm") == 0) 120 + format = READOSM_OSM_FORMAT; 121 + else if (len > 4 && strcasecmp (path + len - 4, ".pbf") == 0) 122 + format = READOSM_PBF_FORMAT; 123 + else 124 + return READOSM_INVALID_SUFFIX; 125 + 126 +/* allocating the OSM input file struct */ 127 + input = alloc_osm_file (little_endian_cpu, format); 128 + if (!input) 129 + return READOSM_INSUFFICIENT_MEMORY; 130 + *osm_handle = input; 131 + 132 + input->in = fopen (path, "rb"); 133 + if (input->in == NULL) 134 + return READOSM_FILE_NOT_FOUND; 135 + 136 + return READOSM_OK; 137 +} 138 + 139 +READOSM_DECLARE int 140 +readosm_close (const void *osm_handle) 141 +{ 142 +/* attempting to destroy the OSM input file */ 143 + readosm_file *input = (readosm_file *) osm_handle; 144 + if (!input) 145 + return READOSM_NULL_HANDLE; 146 + if ((input->magic1 == READOSM_MAGIC_START) 147 + && input->magic2 == READOSM_MAGIC_END) 148 + ; 149 + else 150 + return READOSM_INVALID_HANDLE; 151 + 152 +/* destroying the workbook */ 153 + destroy_osm_file (input); 154 + 155 + return READOSM_OK; 156 +} 157 + 158 +READOSM_DECLARE int 159 +readosm_parse (const void *osm_handle, const void *user_data, 160 + readosm_node_callback node_fnct, readosm_way_callback way_fnct, 161 + readosm_relation_callback relation_fnct) 162 +{ 163 +/* attempting to parse the OSM input file */ 164 + int ret; 165 + readosm_file *input = (readosm_file *) osm_handle; 166 + if (!input) 167 + return READOSM_NULL_HANDLE; 168 + if ((input->magic1 == READOSM_MAGIC_START) 169 + && input->magic2 == READOSM_MAGIC_END) 170 + ; 171 + else 172 + return READOSM_INVALID_HANDLE; 173 + 174 + if (input->file_format == READOSM_OSM_FORMAT) 175 + ret = 176 + parse_osm_xml (input, user_data, node_fnct, way_fnct, 177 + relation_fnct); 178 + else if (input->file_format == READOSM_PBF_FORMAT) 179 + ret = 180 + parse_osm_pbf (input, user_data, node_fnct, way_fnct, 181 + relation_fnct); 182 + else 183 + return READOSM_INVALID_HANDLE; 184 + 185 + return ret; 186 +}
Added test-driver.
1 +#! /bin/sh 2 +# test-driver - basic testsuite driver script. 3 + 4 +scriptversion=2012-06-27.10; # UTC 5 + 6 +# Copyright (C) 2011-2013 Free Software Foundation, Inc. 7 +# 8 +# This program is free software; you can redistribute it and/or modify 9 +# it under the terms of the GNU General Public License as published by 10 +# the Free Software Foundation; either version 2, or (at your option) 11 +# any later version. 12 +# 13 +# This program is distributed in the hope that it will be useful, 14 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 15 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 +# GNU General Public License for more details. 17 +# 18 +# You should have received a copy of the GNU General Public License 19 +# along with this program. If not, see <http://www.gnu.org/licenses/>. 20 + 21 +# As a special exception to the GNU General Public License, if you 22 +# distribute this file as part of a program that contains a 23 +# configuration script generated by Autoconf, you may include it under 24 +# the same distribution terms that you use for the rest of that program. 25 + 26 +# This file is maintained in Automake, please report 27 +# bugs to <bug-automake@gnu.org> or send patches to 28 +# <automake-patches@gnu.org>. 29 + 30 +# Make unconditional expansion of undefined variables an error. This 31 +# helps a lot in preventing typo-related bugs. 32 +set -u 33 + 34 +usage_error () 35 +{ 36 + echo "$0: $*" >&2 37 + print_usage >&2 38 + exit 2 39 +} 40 + 41 +print_usage () 42 +{ 43 + cat <<END 44 +Usage: 45 + test-driver --test-name=NAME --log-file=PATH --trs-file=PATH 46 + [--expect-failure={yes|no}] [--color-tests={yes|no}] 47 + [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT 48 +The '--test-name', '--log-file' and '--trs-file' options are mandatory. 49 +END 50 +} 51 + 52 +# TODO: better error handling in option parsing (in particular, ensure 53 +# TODO: $log_file, $trs_file and $test_name are defined). 54 +test_name= # Used for reporting. 55 +log_file= # Where to save the output of the test script. 56 +trs_file= # Where to save the metadata of the test run. 57 +expect_failure=no 58 +color_tests=no 59 +enable_hard_errors=yes 60 +while test $# -gt 0; do 61 + case $1 in 62 + --help) print_usage; exit $?;; 63 + --version) echo "test-driver $scriptversion"; exit $?;; 64 + --test-name) test_name=$2; shift;; 65 + --log-file) log_file=$2; shift;; 66 + --trs-file) trs_file=$2; shift;; 67 + --color-tests) color_tests=$2; shift;; 68 + --expect-failure) expect_failure=$2; shift;; 69 + --enable-hard-errors) enable_hard_errors=$2; shift;; 70 + --) shift; break;; 71 + -*) usage_error "invalid option: '$1'";; 72 + esac 73 + shift 74 +done 75 + 76 +if test $color_tests = yes; then 77 + # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. 78 + red='[0;31m' # Red. 79 + grn='[0;32m' # Green. 80 + lgn='[1;32m' # Light green. 81 + blu='[1;34m' # Blue. 82 + mgn='[0;35m' # Magenta. 83 + std='[m' # No color. 84 +else 85 + red= grn= lgn= blu= mgn= std= 86 +fi 87 + 88 +do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' 89 +trap "st=129; $do_exit" 1 90 +trap "st=130; $do_exit" 2 91 +trap "st=141; $do_exit" 13 92 +trap "st=143; $do_exit" 15 93 + 94 +# Test script is run here. 95 +"$@" >$log_file 2>&1 96 +estatus=$? 97 +if test $enable_hard_errors = no && test $estatus -eq 99; then 98 + estatus=1 99 +fi 100 + 101 +case $estatus:$expect_failure in 102 + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 103 + 0:*) col=$grn res=PASS recheck=no gcopy=no;; 104 + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 105 + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; 106 + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; 107 + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; 108 +esac 109 + 110 +# Report outcome to console. 111 +echo "${col}${res}${std}: $test_name" 112 + 113 +# Register the test result, and other relevant metadata. 114 +echo ":test-result: $res" > $trs_file 115 +echo ":global-test-result: $res" >> $trs_file 116 +echo ":recheck: $recheck" >> $trs_file 117 +echo ":copy-in-global-log: $gcopy" >> $trs_file 118 + 119 +# Local Variables: 120 +# mode: shell-script 121 +# sh-indentation: 2 122 +# eval: (add-hook 'write-file-hooks 'time-stamp) 123 +# time-stamp-start: "scriptversion=" 124 +# time-stamp-format: "%:y-%02m-%02d.%02H" 125 +# time-stamp-time-zone: "UTC" 126 +# time-stamp-end: "; # UTC" 127 +# End:
Added tests/Makefile.am.
1 +check_PROGRAMS = check_osm check_pbf check_err 2 + 3 +AM_CFLAGS = -I@srcdir@/../headers 4 +AM_LDFLAGS = -L../src -lreadosm -lz $(GCOV_FLAGS) 5 + 6 +TESTS = $(check_PROGRAMS) 7 + 8 +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda 9 + 10 +EXTRA_DIST = testdata/test.osm testdata/test.osm.pbf \ 11 + testdata/noNodesPackedInfos.osm.pbf
Added tests/Makefile.in.
1 +# Makefile.in generated by automake 1.14.1 from Makefile.am. 2 +# @configure_input@ 3 + 4 +# Copyright (C) 1994-2013 Free Software Foundation, Inc. 5 + 6 +# This Makefile.in is free software; the Free Software Foundation 7 +# gives unlimited permission to copy and/or distribute it, 8 +# with or without modifications, as long as this notice is preserved. 9 + 10 +# This program is distributed in the hope that it will be useful, 11 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 +# PARTICULAR PURPOSE. 14 + 15 +@SET_MAKE@ 16 +VPATH = @srcdir@ 17 +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 18 +am__make_running_with_option = \ 19 + case $${target_option-} in \ 20 + ?) ;; \ 21 + *) echo "am__make_running_with_option: internal error: invalid" \ 22 + "target option '$${target_option-}' specified" >&2; \ 23 + exit 1;; \ 24 + esac; \ 25 + has_opt=no; \ 26 + sane_makeflags=$$MAKEFLAGS; \ 27 + if $(am__is_gnu_make); then \ 28 + sane_makeflags=$$MFLAGS; \ 29 + else \ 30 + case $$MAKEFLAGS in \ 31 + *\\[\ \ ]*) \ 32 + bs=\\; \ 33 + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ 34 + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ 35 + esac; \ 36 + fi; \ 37 + skip_next=no; \ 38 + strip_trailopt () \ 39 + { \ 40 + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ 41 + }; \ 42 + for flg in $$sane_makeflags; do \ 43 + test $$skip_next = yes && { skip_next=no; continue; }; \ 44 + case $$flg in \ 45 + *=*|--*) continue;; \ 46 + -*I) strip_trailopt 'I'; skip_next=yes;; \ 47 + -*I?*) strip_trailopt 'I';; \ 48 + -*O) strip_trailopt 'O'; skip_next=yes;; \ 49 + -*O?*) strip_trailopt 'O';; \ 50 + -*l) strip_trailopt 'l'; skip_next=yes;; \ 51 + -*l?*) strip_trailopt 'l';; \ 52 + -[dEDm]) skip_next=yes;; \ 53 + -[JT]) skip_next=yes;; \ 54 + esac; \ 55 + case $$flg in \ 56 + *$$target_option*) has_opt=yes; break;; \ 57 + esac; \ 58 + done; \ 59 + test $$has_opt = yes 60 +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) 61 +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 62 +pkgdatadir = $(datadir)/@PACKAGE@ 63 +pkgincludedir = $(includedir)/@PACKAGE@ 64 +pkglibdir = $(libdir)/@PACKAGE@ 65 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 66 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 67 +install_sh_DATA = $(install_sh) -c -m 644 68 +install_sh_PROGRAM = $(install_sh) -c 69 +install_sh_SCRIPT = $(install_sh) -c 70 +INSTALL_HEADER = $(INSTALL_DATA) 71 +transform = $(program_transform_name) 72 +NORMAL_INSTALL = : 73 +PRE_INSTALL = : 74 +POST_INSTALL = : 75 +NORMAL_UNINSTALL = : 76 +PRE_UNINSTALL = : 77 +POST_UNINSTALL = : 78 +build_triplet = @build@ 79 +host_triplet = @host@ 80 +check_PROGRAMS = check_osm$(EXEEXT) check_pbf$(EXEEXT) \ 81 + check_err$(EXEEXT) 82 +subdir = tests 83 +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ 84 + $(top_srcdir)/depcomp $(top_srcdir)/test-driver 85 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 86 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ 87 + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 88 + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 89 + $(top_srcdir)/configure.ac 90 +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 91 + $(ACLOCAL_M4) 92 +mkinstalldirs = $(install_sh) -d 93 +CONFIG_HEADER = $(top_builddir)/config.h 94 +CONFIG_CLEAN_FILES = 95 +CONFIG_CLEAN_VPATH_FILES = 96 +check_err_SOURCES = check_err.c 97 +check_err_OBJECTS = check_err.$(OBJEXT) 98 +check_err_LDADD = $(LDADD) 99 +AM_V_lt = $(am__v_lt_@AM_V@) 100 +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) 101 +am__v_lt_0 = --silent 102 +am__v_lt_1 = 103 +check_osm_SOURCES = check_osm.c 104 +check_osm_OBJECTS = check_osm.$(OBJEXT) 105 +check_osm_LDADD = $(LDADD) 106 +check_pbf_SOURCES = check_pbf.c 107 +check_pbf_OBJECTS = check_pbf.$(OBJEXT) 108 +check_pbf_LDADD = $(LDADD) 109 +AM_V_P = $(am__v_P_@AM_V@) 110 +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) 111 +am__v_P_0 = false 112 +am__v_P_1 = : 113 +AM_V_GEN = $(am__v_GEN_@AM_V@) 114 +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 115 +am__v_GEN_0 = @echo " GEN " $@; 116 +am__v_GEN_1 = 117 +AM_V_at = $(am__v_at_@AM_V@) 118 +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 119 +am__v_at_0 = @ 120 +am__v_at_1 = 121 +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) 122 +depcomp = $(SHELL) $(top_srcdir)/depcomp 123 +am__depfiles_maybe = depfiles 124 +am__mv = mv -f 125 +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 126 + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 127 +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ 128 + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ 129 + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ 130 + $(AM_CFLAGS) $(CFLAGS) 131 +AM_V_CC = $(am__v_CC_@AM_V@) 132 +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 133 +am__v_CC_0 = @echo " CC " $@; 134 +am__v_CC_1 = 135 +CCLD = $(CC) 136 +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ 137 + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ 138 + $(AM_LDFLAGS) $(LDFLAGS) -o $@ 139 +AM_V_CCLD = $(am__v_CCLD_@AM_V@) 140 +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 141 +am__v_CCLD_0 = @echo " CCLD " $@; 142 +am__v_CCLD_1 = 143 +SOURCES = check_err.c check_osm.c check_pbf.c 144 +DIST_SOURCES = check_err.c check_osm.c check_pbf.c 145 +am__can_run_installinfo = \ 146 + case $$AM_UPDATE_INFO_DIR in \ 147 + n|no|NO) false;; \ 148 + *) (install-info --version) >/dev/null 2>&1;; \ 149 + esac 150 +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) 151 +# Read a list of newline-separated strings from the standard input, 152 +# and print each of them once, without duplicates. Input order is 153 +# *not* preserved. 154 +am__uniquify_input = $(AWK) '\ 155 + BEGIN { nonempty = 0; } \ 156 + { items[$$0] = 1; nonempty = 1; } \ 157 + END { if (nonempty) { for (i in items) print i; }; } \ 158 +' 159 +# Make sure the list of sources is unique. This is necessary because, 160 +# e.g., the same source file might be shared among _SOURCES variables 161 +# for different programs/libraries. 162 +am__define_uniq_tagged_files = \ 163 + list='$(am__tagged_files)'; \ 164 + unique=`for i in $$list; do \ 165 + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 166 + done | $(am__uniquify_input)` 167 +ETAGS = etags 168 +CTAGS = ctags 169 +am__tty_colors_dummy = \ 170 + mgn= red= grn= lgn= blu= brg= std=; \ 171 + am__color_tests=no 172 +am__tty_colors = { \ 173 + $(am__tty_colors_dummy); \ 174 + if test "X$(AM_COLOR_TESTS)" = Xno; then \ 175 + am__color_tests=no; \ 176 + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ 177 + am__color_tests=yes; \ 178 + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ 179 + am__color_tests=yes; \ 180 + fi; \ 181 + if test $$am__color_tests = yes; then \ 182 + red='[0;31m'; \ 183 + grn='[0;32m'; \ 184 + lgn='[1;32m'; \ 185 + blu='[1;34m'; \ 186 + mgn='[0;35m'; \ 187 + brg='[1m'; \ 188 + std='[m'; \ 189 + fi; \ 190 +} 191 +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 192 +am__vpath_adj = case $$p in \ 193 + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 194 + *) f=$$p;; \ 195 + esac; 196 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; 197 +am__install_max = 40 198 +am__nobase_strip_setup = \ 199 + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` 200 +am__nobase_strip = \ 201 + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" 202 +am__nobase_list = $(am__nobase_strip_setup); \ 203 + for p in $$list; do echo "$$p $$p"; done | \ 204 + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ 205 + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ 206 + if (++n[$$2] == $(am__install_max)) \ 207 + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ 208 + END { for (dir in files) print dir, files[dir] }' 209 +am__base_list = \ 210 + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ 211 + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' 212 +am__uninstall_files_from_dir = { \ 213 + test -z "$$files" \ 214 + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ 215 + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ 216 + $(am__cd) "$$dir" && rm -f $$files; }; \ 217 + } 218 +am__recheck_rx = ^[ ]*:recheck:[ ]* 219 +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* 220 +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* 221 +# A command that, given a newline-separated list of test names on the 222 +# standard input, print the name of the tests that are to be re-run 223 +# upon "make recheck". 224 +am__list_recheck_tests = $(AWK) '{ \ 225 + recheck = 1; \ 226 + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ 227 + { \ 228 + if (rc < 0) \ 229 + { \ 230 + if ((getline line2 < ($$0 ".log")) < 0) \ 231 + recheck = 0; \ 232 + break; \ 233 + } \ 234 + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ 235 + { \ 236 + recheck = 0; \ 237 + break; \ 238 + } \ 239 + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ 240 + { \ 241 + break; \ 242 + } \ 243 + }; \ 244 + if (recheck) \ 245 + print $$0; \ 246 + close ($$0 ".trs"); \ 247 + close ($$0 ".log"); \ 248 +}' 249 +# A command that, given a newline-separated list of test names on the 250 +# standard input, create the global log from their .trs and .log files. 251 +am__create_global_log = $(AWK) ' \ 252 +function fatal(msg) \ 253 +{ \ 254 + print "fatal: making $@: " msg | "cat >&2"; \ 255 + exit 1; \ 256 +} \ 257 +function rst_section(header) \ 258 +{ \ 259 + print header; \ 260 + len = length(header); \ 261 + for (i = 1; i <= len; i = i + 1) \ 262 + printf "="; \ 263 + printf "\n\n"; \ 264 +} \ 265 +{ \ 266 + copy_in_global_log = 1; \ 267 + global_test_result = "RUN"; \ 268 + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ 269 + { \ 270 + if (rc < 0) \ 271 + fatal("failed to read from " $$0 ".trs"); \ 272 + if (line ~ /$(am__global_test_result_rx)/) \ 273 + { \ 274 + sub("$(am__global_test_result_rx)", "", line); \ 275 + sub("[ ]*$$", "", line); \ 276 + global_test_result = line; \ 277 + } \ 278 + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ 279 + copy_in_global_log = 0; \ 280 + }; \ 281 + if (copy_in_global_log) \ 282 + { \ 283 + rst_section(global_test_result ": " $$0); \ 284 + while ((rc = (getline line < ($$0 ".log"))) != 0) \ 285 + { \ 286 + if (rc < 0) \ 287 + fatal("failed to read from " $$0 ".log"); \ 288 + print line; \ 289 + }; \ 290 + printf "\n"; \ 291 + }; \ 292 + close ($$0 ".trs"); \ 293 + close ($$0 ".log"); \ 294 +}' 295 +# Restructured Text title. 296 +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } 297 +# Solaris 10 'make', and several other traditional 'make' implementations, 298 +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it 299 +# by disabling -e (using the XSI extension "set +e") if it's set. 300 +am__sh_e_setup = case $$- in *e*) set +e;; esac 301 +# Default flags passed to test drivers. 302 +am__common_driver_flags = \ 303 + --color-tests "$$am__color_tests" \ 304 + --enable-hard-errors "$$am__enable_hard_errors" \ 305 + --expect-failure "$$am__expect_failure" 306 +# To be inserted before the command running the test. Creates the 307 +# directory for the log if needed. Stores in $dir the directory 308 +# containing $f, in $tst the test, in $log the log. Executes the 309 +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and 310 +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that 311 +# will run the test scripts (or their associated LOG_COMPILER, if 312 +# thy have one). 313 +am__check_pre = \ 314 +$(am__sh_e_setup); \ 315 +$(am__vpath_adj_setup) $(am__vpath_adj) \ 316 +$(am__tty_colors); \ 317 +srcdir=$(srcdir); export srcdir; \ 318 +case "$@" in \ 319 + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ 320 + *) am__odir=.;; \ 321 +esac; \ 322 +test "x$$am__odir" = x"." || test -d "$$am__odir" \ 323 + || $(MKDIR_P) "$$am__odir" || exit $$?; \ 324 +if test -f "./$$f"; then dir=./; \ 325 +elif test -f "$$f"; then dir=; \ 326 +else dir="$(srcdir)/"; fi; \ 327 +tst=$$dir$$f; log='$@'; \ 328 +if test -n '$(DISABLE_HARD_ERRORS)'; then \ 329 + am__enable_hard_errors=no; \ 330 +else \ 331 + am__enable_hard_errors=yes; \ 332 +fi; \ 333 +case " $(XFAIL_TESTS) " in \ 334 + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ 335 + am__expect_failure=yes;; \ 336 + *) \ 337 + am__expect_failure=no;; \ 338 +esac; \ 339 +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) 340 +# A shell command to get the names of the tests scripts with any registered 341 +# extension removed (i.e., equivalently, the names of the test logs, with 342 +# the '.log' extension removed). The result is saved in the shell variable 343 +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, 344 +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", 345 +# since that might cause problem with VPATH rewrites for suffix-less tests. 346 +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. 347 +am__set_TESTS_bases = \ 348 + bases='$(TEST_LOGS)'; \ 349 + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ 350 + bases=`echo $$bases` 351 +RECHECK_LOGS = $(TEST_LOGS) 352 +AM_RECURSIVE_TARGETS = check recheck 353 +TEST_SUITE_LOG = test-suite.log 354 +TEST_EXTENSIONS = @EXEEXT@ .test 355 +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver 356 +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) 357 +am__set_b = \ 358 + case '$@' in \ 359 + */*) \ 360 + case '$*' in \ 361 + */*) b='$*';; \ 362 + *) b=`echo '$@' | sed 's/\.log$$//'`; \ 363 + esac;; \ 364 + *) \ 365 + b='$*';; \ 366 + esac 367 +am__test_logs1 = $(TESTS:=.log) 368 +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) 369 +TEST_LOGS = $(am__test_logs2:.test.log=.log) 370 +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver 371 +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ 372 + $(TEST_LOG_FLAGS) 373 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 374 +ACLOCAL = @ACLOCAL@ 375 +AMTAR = @AMTAR@ 376 +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 377 +AR = @AR@ 378 +AS = @AS@ 379 +AUTOCONF = @AUTOCONF@ 380 +AUTOHEADER = @AUTOHEADER@ 381 +AUTOMAKE = @AUTOMAKE@ 382 +AWK = @AWK@ 383 +CC = @CC@ 384 +CCDEPMODE = @CCDEPMODE@ 385 +CFLAGS = @CFLAGS@ 386 +CPP = @CPP@ 387 +CPPFLAGS = @CPPFLAGS@ 388 +CXX = @CXX@ 389 +CXXCPP = @CXXCPP@ 390 +CXXDEPMODE = @CXXDEPMODE@ 391 +CXXFLAGS = @CXXFLAGS@ 392 +CYGPATH_W = @CYGPATH_W@ 393 +DEFS = @DEFS@ 394 +DEPDIR = @DEPDIR@ 395 +DLLTOOL = @DLLTOOL@ 396 +DSYMUTIL = @DSYMUTIL@ 397 +DUMPBIN = @DUMPBIN@ 398 +ECHO_C = @ECHO_C@ 399 +ECHO_N = @ECHO_N@ 400 +ECHO_T = @ECHO_T@ 401 +EGREP = @EGREP@ 402 +EXEEXT = @EXEEXT@ 403 +FGREP = @FGREP@ 404 +GREP = @GREP@ 405 +INSTALL = @INSTALL@ 406 +INSTALL_DATA = @INSTALL_DATA@ 407 +INSTALL_PROGRAM = @INSTALL_PROGRAM@ 408 +INSTALL_SCRIPT = @INSTALL_SCRIPT@ 409 +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 410 +LD = @LD@ 411 +LDFLAGS = @LDFLAGS@ 412 +LIBOBJS = @LIBOBJS@ 413 +LIBS = @LIBS@ 414 +LIBTOOL = @LIBTOOL@ 415 +LIPO = @LIPO@ 416 +LN_S = @LN_S@ 417 +LTLIBOBJS = @LTLIBOBJS@ 418 +MAINT = @MAINT@ 419 +MAKEINFO = @MAKEINFO@ 420 +MANIFEST_TOOL = @MANIFEST_TOOL@ 421 +MKDIR_P = @MKDIR_P@ 422 +NM = @NM@ 423 +NMEDIT = @NMEDIT@ 424 +OBJDUMP = @OBJDUMP@ 425 +OBJEXT = @OBJEXT@ 426 +OTOOL = @OTOOL@ 427 +OTOOL64 = @OTOOL64@ 428 +PACKAGE = @PACKAGE@ 429 +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 430 +PACKAGE_NAME = @PACKAGE_NAME@ 431 +PACKAGE_STRING = @PACKAGE_STRING@ 432 +PACKAGE_TARNAME = @PACKAGE_TARNAME@ 433 +PACKAGE_URL = @PACKAGE_URL@ 434 +PACKAGE_VERSION = @PACKAGE_VERSION@ 435 +PATH_SEPARATOR = @PATH_SEPARATOR@ 436 +RANLIB = @RANLIB@ 437 +SED = @SED@ 438 +SET_MAKE = @SET_MAKE@ 439 +SHELL = @SHELL@ 440 +STRIP = @STRIP@ 441 +VERSION = @VERSION@ 442 +abs_builddir = @abs_builddir@ 443 +abs_srcdir = @abs_srcdir@ 444 +abs_top_builddir = @abs_top_builddir@ 445 +abs_top_srcdir = @abs_top_srcdir@ 446 +ac_ct_AR = @ac_ct_AR@ 447 +ac_ct_CC = @ac_ct_CC@ 448 +ac_ct_CXX = @ac_ct_CXX@ 449 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 450 +am__include = @am__include@ 451 +am__leading_dot = @am__leading_dot@ 452 +am__quote = @am__quote@ 453 +am__tar = @am__tar@ 454 +am__untar = @am__untar@ 455 +bindir = @bindir@ 456 +build = @build@ 457 +build_alias = @build_alias@ 458 +build_cpu = @build_cpu@ 459 +build_os = @build_os@ 460 +build_vendor = @build_vendor@ 461 +builddir = @builddir@ 462 +datadir = @datadir@ 463 +datarootdir = @datarootdir@ 464 +docdir = @docdir@ 465 +dvidir = @dvidir@ 466 +exec_prefix = @exec_prefix@ 467 +host = @host@ 468 +host_alias = @host_alias@ 469 +host_cpu = @host_cpu@ 470 +host_os = @host_os@ 471 +host_vendor = @host_vendor@ 472 +htmldir = @htmldir@ 473 +includedir = @includedir@ 474 +infodir = @infodir@ 475 +install_sh = @install_sh@ 476 +libdir = @libdir@ 477 +libexecdir = @libexecdir@ 478 +localedir = @localedir@ 479 +localstatedir = @localstatedir@ 480 +mandir = @mandir@ 481 +mkdir_p = @mkdir_p@ 482 +oldincludedir = @oldincludedir@ 483 +pdfdir = @pdfdir@ 484 +prefix = @prefix@ 485 +program_transform_name = @program_transform_name@ 486 +psdir = @psdir@ 487 +sbindir = @sbindir@ 488 +sharedstatedir = @sharedstatedir@ 489 +srcdir = @srcdir@ 490 +sysconfdir = @sysconfdir@ 491 +target_alias = @target_alias@ 492 +top_build_prefix = @top_build_prefix@ 493 +top_builddir = @top_builddir@ 494 +top_srcdir = @top_srcdir@ 495 +AM_CFLAGS = -I@srcdir@/../headers 496 +AM_LDFLAGS = -L../src -lreadosm -lz $(GCOV_FLAGS) 497 +TESTS = $(check_PROGRAMS) 498 +MOSTLYCLEANFILES = *.gcna *.gcno *.gcda 499 +EXTRA_DIST = testdata/test.osm testdata/test.osm.pbf \ 500 + testdata/noNodesPackedInfos.osm.pbf 501 + 502 +all: all-am 503 + 504 +.SUFFIXES: 505 +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs 506 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 507 + @for dep in $?; do \ 508 + case '$(am__configure_deps)' in \ 509 + *$$dep*) \ 510 + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ 511 + && { if test -f $@; then exit 0; else break; fi; }; \ 512 + exit 1;; \ 513 + esac; \ 514 + done; \ 515 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ 516 + $(am__cd) $(top_srcdir) && \ 517 + $(AUTOMAKE) --gnu tests/Makefile 518 +.PRECIOUS: Makefile 519 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 520 + @case '$?' in \ 521 + *config.status*) \ 522 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 523 + *) \ 524 + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ 525 + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 526 + esac; 527 + 528 +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 529 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 530 + 531 +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 532 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 533 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 534 + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 535 +$(am__aclocal_m4_deps): 536 + 537 +clean-checkPROGRAMS: 538 + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ 539 + echo " rm -f" $$list; \ 540 + rm -f $$list || exit $$?; \ 541 + test -n "$(EXEEXT)" || exit 0; \ 542 + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ 543 + echo " rm -f" $$list; \ 544 + rm -f $$list 545 + 546 +check_err$(EXEEXT): $(check_err_OBJECTS) $(check_err_DEPENDENCIES) $(EXTRA_check_err_DEPENDENCIES) 547 + @rm -f check_err$(EXEEXT) 548 + $(AM_V_CCLD)$(LINK) $(check_err_OBJECTS) $(check_err_LDADD) $(LIBS) 549 + 550 +check_osm$(EXEEXT): $(check_osm_OBJECTS) $(check_osm_DEPENDENCIES) $(EXTRA_check_osm_DEPENDENCIES) 551 + @rm -f check_osm$(EXEEXT) 552 + $(AM_V_CCLD)$(LINK) $(check_osm_OBJECTS) $(check_osm_LDADD) $(LIBS) 553 + 554 +check_pbf$(EXEEXT): $(check_pbf_OBJECTS) $(check_pbf_DEPENDENCIES) $(EXTRA_check_pbf_DEPENDENCIES) 555 + @rm -f check_pbf$(EXEEXT) 556 + $(AM_V_CCLD)$(LINK) $(check_pbf_OBJECTS) $(check_pbf_LDADD) $(LIBS) 557 + 558 +mostlyclean-compile: 559 + -rm -f *.$(OBJEXT) 560 + 561 +distclean-compile: 562 + -rm -f *.tab.c 563 + 564 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_err.Po@am__quote@ 565 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_osm.Po@am__quote@ 566 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_pbf.Po@am__quote@ 567 + 568 +.c.o: 569 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 570 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 571 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 572 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 573 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< 574 + 575 +.c.obj: 576 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 577 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 578 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 579 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 580 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 581 + 582 +.c.lo: 583 +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 584 +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo 585 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ 586 +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 587 +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< 588 + 589 +mostlyclean-libtool: 590 + -rm -f *.lo 591 + 592 +clean-libtool: 593 + -rm -rf .libs _libs 594 + 595 +ID: $(am__tagged_files) 596 + $(am__define_uniq_tagged_files); mkid -fID $$unique 597 +tags: tags-am 598 +TAGS: tags 599 + 600 +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 601 + set x; \ 602 + here=`pwd`; \ 603 + $(am__define_uniq_tagged_files); \ 604 + shift; \ 605 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 606 + test -n "$$unique" || unique=$$empty_fix; \ 607 + if test $$# -gt 0; then \ 608 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 609 + "$$@" $$unique; \ 610 + else \ 611 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 612 + $$unique; \ 613 + fi; \ 614 + fi 615 +ctags: ctags-am 616 + 617 +CTAGS: ctags 618 +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) 619 + $(am__define_uniq_tagged_files); \ 620 + test -z "$(CTAGS_ARGS)$$unique" \ 621 + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 622 + $$unique 623 + 624 +GTAGS: 625 + here=`$(am__cd) $(top_builddir) && pwd` \ 626 + && $(am__cd) $(top_srcdir) \ 627 + && gtags -i $(GTAGS_ARGS) "$$here" 628 +cscopelist: cscopelist-am 629 + 630 +cscopelist-am: $(am__tagged_files) 631 + list='$(am__tagged_files)'; \ 632 + case "$(srcdir)" in \ 633 + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ 634 + *) sdir=$(subdir)/$(srcdir) ;; \ 635 + esac; \ 636 + for i in $$list; do \ 637 + if test -f "$$i"; then \ 638 + echo "$(subdir)/$$i"; \ 639 + else \ 640 + echo "$$sdir/$$i"; \ 641 + fi; \ 642 + done >> $(top_builddir)/cscope.files 643 + 644 +distclean-tags: 645 + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 646 + 647 +# Recover from deleted '.trs' file; this should ensure that 648 +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create 649 +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells 650 +# to avoid problems with "make -n". 651 +.log.trs: 652 + rm -f $< $@ 653 + $(MAKE) $(AM_MAKEFLAGS) $< 654 + 655 +# Leading 'am--fnord' is there to ensure the list of targets does not 656 +# expand to empty, as could happen e.g. with make check TESTS=''. 657 +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) 658 +am--force-recheck: 659 + @: 660 + 661 +$(TEST_SUITE_LOG): $(TEST_LOGS) 662 + @$(am__set_TESTS_bases); \ 663 + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ 664 + redo_bases=`for i in $$bases; do \ 665 + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ 666 + done`; \ 667 + if test -n "$$redo_bases"; then \ 668 + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ 669 + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ 670 + if $(am__make_dryrun); then :; else \ 671 + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ 672 + fi; \ 673 + fi; \ 674 + if test -n "$$am__remaking_logs"; then \ 675 + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ 676 + "recursion detected" >&2; \ 677 + else \ 678 + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ 679 + fi; \ 680 + if $(am__make_dryrun); then :; else \ 681 + st=0; \ 682 + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ 683 + for i in $$redo_bases; do \ 684 + test -f $$i.trs && test -r $$i.trs \ 685 + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ 686 + test -f $$i.log && test -r $$i.log \ 687 + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ 688 + done; \ 689 + test $$st -eq 0 || exit 1; \ 690 + fi 691 + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ 692 + ws='[ ]'; \ 693 + results=`for b in $$bases; do echo $$b.trs; done`; \ 694 + test -n "$$results" || results=/dev/null; \ 695 + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ 696 + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ 697 + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ 698 + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ 699 + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ 700 + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ 701 + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ 702 + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ 703 + success=true; \ 704 + else \ 705 + success=false; \ 706 + fi; \ 707 + br='==================='; br=$$br$$br$$br$$br; \ 708 + result_count () \ 709 + { \ 710 + if test x"$$1" = x"--maybe-color"; then \ 711 + maybe_colorize=yes; \ 712 + elif test x"$$1" = x"--no-color"; then \ 713 + maybe_colorize=no; \ 714 + else \ 715 + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ 716 + fi; \ 717 + shift; \ 718 + desc=$$1 count=$$2; \ 719 + if test $$maybe_colorize = yes && test $$count -gt 0; then \ 720 + color_start=$$3 color_end=$$std; \ 721 + else \ 722 + color_start= color_end=; \ 723 + fi; \ 724 + echo "$${color_start}# $$desc $$count$${color_end}"; \ 725 + }; \ 726 + create_testsuite_report () \ 727 + { \ 728 + result_count $$1 "TOTAL:" $$all "$$brg"; \ 729 + result_count $$1 "PASS: " $$pass "$$grn"; \ 730 + result_count $$1 "SKIP: " $$skip "$$blu"; \ 731 + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ 732 + result_count $$1 "FAIL: " $$fail "$$red"; \ 733 + result_count $$1 "XPASS:" $$xpass "$$red"; \ 734 + result_count $$1 "ERROR:" $$error "$$mgn"; \ 735 + }; \ 736 + { \ 737 + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ 738 + $(am__rst_title); \ 739 + create_testsuite_report --no-color; \ 740 + echo; \ 741 + echo ".. contents:: :depth: 2"; \ 742 + echo; \ 743 + for b in $$bases; do echo $$b; done \ 744 + | $(am__create_global_log); \ 745 + } >$(TEST_SUITE_LOG).tmp || exit 1; \ 746 + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ 747 + if $$success; then \ 748 + col="$$grn"; \ 749 + else \ 750 + col="$$red"; \ 751 + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ 752 + fi; \ 753 + echo "$${col}$$br$${std}"; \ 754 + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ 755 + echo "$${col}$$br$${std}"; \ 756 + create_testsuite_report --maybe-color; \ 757 + echo "$$col$$br$$std"; \ 758 + if $$success; then :; else \ 759 + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ 760 + if test -n "$(PACKAGE_BUGREPORT)"; then \ 761 + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ 762 + fi; \ 763 + echo "$$col$$br$$std"; \ 764 + fi; \ 765 + $$success || exit 1 766 + 767 +check-TESTS: 768 + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list 769 + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list 770 + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) 771 + @set +e; $(am__set_TESTS_bases); \ 772 + log_list=`for i in $$bases; do echo $$i.log; done`; \ 773 + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ 774 + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ 775 + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ 776 + exit $$?; 777 +recheck: all $(check_PROGRAMS) 778 + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) 779 + @set +e; $(am__set_TESTS_bases); \ 780 + bases=`for i in $$bases; do echo $$i; done \ 781 + | $(am__list_recheck_tests)` || exit 1; \ 782 + log_list=`for i in $$bases; do echo $$i.log; done`; \ 783 + log_list=`echo $$log_list`; \ 784 + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ 785 + am__force_recheck=am--force-recheck \ 786 + TEST_LOGS="$$log_list"; \ 787 + exit $$? 788 +check_osm.log: check_osm$(EXEEXT) 789 + @p='check_osm$(EXEEXT)'; \ 790 + b='check_osm'; \ 791 + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ 792 + --log-file $$b.log --trs-file $$b.trs \ 793 + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ 794 + "$$tst" $(AM_TESTS_FD_REDIRECT) 795 +check_pbf.log: check_pbf$(EXEEXT) 796 + @p='check_pbf$(EXEEXT)'; \ 797 + b='check_pbf'; \ 798 + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ 799 + --log-file $$b.log --trs-file $$b.trs \ 800 + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ 801 + "$$tst" $(AM_TESTS_FD_REDIRECT) 802 +check_err.log: check_err$(EXEEXT) 803 + @p='check_err$(EXEEXT)'; \ 804 + b='check_err'; \ 805 + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ 806 + --log-file $$b.log --trs-file $$b.trs \ 807 + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ 808 + "$$tst" $(AM_TESTS_FD_REDIRECT) 809 +.test.log: 810 + @p='$<'; \ 811 + $(am__set_b); \ 812 + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ 813 + --log-file $$b.log --trs-file $$b.trs \ 814 + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ 815 + "$$tst" $(AM_TESTS_FD_REDIRECT) 816 +@am__EXEEXT_TRUE@.test$(EXEEXT).log: 817 +@am__EXEEXT_TRUE@ @p='$<'; \ 818 +@am__EXEEXT_TRUE@ $(am__set_b); \ 819 +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ 820 +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ 821 +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ 822 +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) 823 + 824 +distdir: $(DISTFILES) 825 + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 826 + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 827 + list='$(DISTFILES)'; \ 828 + dist_files=`for file in $$list; do echo $$file; done | \ 829 + sed -e "s|^$$srcdirstrip/||;t" \ 830 + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 831 + case $$dist_files in \ 832 + */*) $(MKDIR_P) `echo "$$dist_files" | \ 833 + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 834 + sort -u` ;; \ 835 + esac; \ 836 + for file in $$dist_files; do \ 837 + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 838 + if test -d $$d/$$file; then \ 839 + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 840 + if test -d "$(distdir)/$$file"; then \ 841 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 842 + fi; \ 843 + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 844 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 845 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 846 + fi; \ 847 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 848 + else \ 849 + test -f "$(distdir)/$$file" \ 850 + || cp -p $$d/$$file "$(distdir)/$$file" \ 851 + || exit 1; \ 852 + fi; \ 853 + done 854 +check-am: all-am 855 + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) 856 + $(MAKE) $(AM_MAKEFLAGS) check-TESTS 857 +check: check-am 858 +all-am: Makefile 859 +installdirs: 860 +install: install-am 861 +install-exec: install-exec-am 862 +install-data: install-data-am 863 +uninstall: uninstall-am 864 + 865 +install-am: all-am 866 + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 867 + 868 +installcheck: installcheck-am 869 +install-strip: 870 + if test -z '$(STRIP)'; then \ 871 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 872 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 873 + install; \ 874 + else \ 875 + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 876 + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 877 + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ 878 + fi 879 +mostlyclean-generic: 880 + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) 881 + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) 882 + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) 883 + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) 884 + 885 +clean-generic: 886 + 887 +distclean-generic: 888 + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 889 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 890 + 891 +maintainer-clean-generic: 892 + @echo "This command is intended for maintainers to use" 893 + @echo "it deletes files that may require special tools to rebuild." 894 +clean: clean-am 895 + 896 +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ 897 + mostlyclean-am 898 + 899 +distclean: distclean-am 900 + -rm -rf ./$(DEPDIR) 901 + -rm -f Makefile 902 +distclean-am: clean-am distclean-compile distclean-generic \ 903 + distclean-tags 904 + 905 +dvi: dvi-am 906 + 907 +dvi-am: 908 + 909 +html: html-am 910 + 911 +html-am: 912 + 913 +info: info-am 914 + 915 +info-am: 916 + 917 +install-data-am: 918 + 919 +install-dvi: install-dvi-am 920 + 921 +install-dvi-am: 922 + 923 +install-exec-am: 924 + 925 +install-html: install-html-am 926 + 927 +install-html-am: 928 + 929 +install-info: install-info-am 930 + 931 +install-info-am: 932 + 933 +install-man: 934 + 935 +install-pdf: install-pdf-am 936 + 937 +install-pdf-am: 938 + 939 +install-ps: install-ps-am 940 + 941 +install-ps-am: 942 + 943 +installcheck-am: 944 + 945 +maintainer-clean: maintainer-clean-am 946 + -rm -rf ./$(DEPDIR) 947 + -rm -f Makefile 948 +maintainer-clean-am: distclean-am maintainer-clean-generic 949 + 950 +mostlyclean: mostlyclean-am 951 + 952 +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ 953 + mostlyclean-libtool 954 + 955 +pdf: pdf-am 956 + 957 +pdf-am: 958 + 959 +ps: ps-am 960 + 961 +ps-am: 962 + 963 +uninstall-am: 964 + 965 +.MAKE: check-am install-am install-strip 966 + 967 +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ 968 + clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ 969 + ctags ctags-am distclean distclean-compile distclean-generic \ 970 + distclean-libtool distclean-tags distdir dvi dvi-am html \ 971 + html-am info info-am install install-am install-data \ 972 + install-data-am install-dvi install-dvi-am install-exec \ 973 + install-exec-am install-html install-html-am install-info \ 974 + install-info-am install-man install-pdf install-pdf-am \ 975 + install-ps install-ps-am install-strip installcheck \ 976 + installcheck-am installdirs maintainer-clean \ 977 + maintainer-clean-generic mostlyclean mostlyclean-compile \ 978 + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 979 + recheck tags tags-am uninstall uninstall-am 980 + 981 + 982 +# Tell versions [3.59,3.63) of GNU make to not export all variables. 983 +# Otherwise a system limit (for SysV at least) may be exceeded. 984 +.NOEXPORT:
Added tests/check_err.c.
1 +/* 2 +/ check_err.c 3 +/ 4 +/ Test cases for BAD file 5 +/ 6 +/ Author: Sandro Furieri a.furieri@lqt.it 7 +/ 8 +/ ------------------------------------------------------------------------------ 9 +/ 10 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 11 +/ 12 +/ The contents of this file are subject to the Mozilla Public License Version 13 +/ 1.1 (the "License"); you may not use this file except in compliance with 14 +/ the License. You may obtain a copy of the License at 15 +/ http://www.mozilla.org/MPL/ 16 +/ 17 +/ Software distributed under the License is distributed on an "AS IS" basis, 18 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 19 +/ for the specific language governing rights and limitations under the 20 +/ License. 21 +/ 22 +/ The Original Code is the ReadOSM library 23 +/ 24 +/ The Initial Developer of the Original Code is Alessandro Furieri 25 +/ 26 +/ Portions created by the Initial Developer are Copyright (C) 2012 27 +/ the Initial Developer. All Rights Reserved. 28 +/ 29 +/ Contributor(s): 30 +/ 31 +/ Alternatively, the contents of this file may be used under the terms of 32 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 33 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 34 +/ in which case the provisions of the GPL or the LGPL are applicable instead 35 +/ of those above. If you wish to allow use of your version of this file only 36 +/ under the terms of either the GPL or the LGPL, and not to allow others to 37 +/ use your version of this file under the terms of the MPL, indicate your 38 +/ decision by deleting the provisions above and replace them with the notice 39 +/ and other provisions required by the GPL or the LGPL. If you do not delete 40 +/ the provisions above, a recipient may use your version of this file under 41 +/ the terms of any one of the MPL, the GPL or the LGPL. 42 +/ 43 +*/ 44 + 45 +#include <stdio.h> 46 +#include <memory.h> 47 + 48 +#include "readosm.h" 49 + 50 +struct osm_count 51 +{ 52 + int nodes; 53 + int nd_tags; 54 + int ways; 55 + int way_nds; 56 + int way_tags; 57 + int relations; 58 + int rel_members; 59 + int rel_tags; 60 +}; 61 + 62 +static int 63 +zero_count (struct osm_count *cnt) 64 +{ 65 +/* resetting the osm_count struct */ 66 + cnt->nodes = 0; 67 + cnt->nd_tags = 0; 68 + cnt->ways = 0; 69 + cnt->way_nds = 0; 70 + cnt->way_tags = 0; 71 + cnt->relations = 0; 72 + cnt->rel_members = 0; 73 + cnt->rel_tags = 0; 74 +} 75 + 76 +static int 77 +parse_node (const void *user_data, const readosm_node * node) 78 +{ 79 +/* Node callback function */ 80 + struct osm_count *cnt = (struct osm_count *) user_data; 81 + cnt->nodes++; 82 + cnt->nd_tags += node->tag_count; 83 + return READOSM_OK; 84 +} 85 + 86 +static int 87 +parse_way (const void *user_data, const readosm_way * way) 88 +{ 89 +/* Way callback function */ 90 + struct osm_count *cnt = (struct osm_count *) user_data; 91 + cnt->ways++; 92 + cnt->way_nds += way->node_ref_count; 93 + cnt->way_tags += way->tag_count; 94 + return READOSM_OK; 95 +} 96 + 97 +static int 98 +parse_relation (const void *user_data, const readosm_relation * relation) 99 +{ 100 +/* Relation callback function */ 101 + struct osm_count *cnt = (struct osm_count *) user_data; 102 + cnt->relations++; 103 + cnt->rel_members += relation->member_count; 104 + cnt->rel_tags += relation->tag_count; 105 + return READOSM_OK; 106 +} 107 + 108 +int 109 +main (int argc, char *argv[]) 110 +{ 111 + const void *handle; 112 + int ret; 113 + struct osm_count count; 114 + char buffer[128]; 115 + memset (buffer, '\0', 128); 116 + 117 + ret = readosm_open ("testdata/not-exists.osm", &handle); 118 + readosm_close (handle); 119 + if (ret != READOSM_FILE_NOT_FOUND) 120 + { 121 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 122 + READOSM_FILE_NOT_FOUND, ret); 123 + return -1; 124 + } 125 + 126 + ret = readosm_open ("testdata/test.foo", &handle); 127 + readosm_close (handle); 128 + if (ret != READOSM_INVALID_SUFFIX) 129 + { 130 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 131 + READOSM_INVALID_SUFFIX, ret); 132 + return -2; 133 + } 134 + 135 + ret = readosm_open ("testdata/test.osm", &handle); 136 + if (ret != READOSM_OK) 137 + { 138 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 139 + return -3; 140 + } 141 + 142 + ret = readosm_close (NULL); 143 + if (ret != READOSM_NULL_HANDLE) 144 + { 145 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 146 + READOSM_NULL_HANDLE, ret); 147 + return -4; 148 + } 149 + 150 + ret = readosm_close (buffer); 151 + if (ret != READOSM_INVALID_HANDLE) 152 + { 153 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 154 + READOSM_INVALID_HANDLE, ret); 155 + return -5; 156 + } 157 + 158 + ret = readosm_parse (NULL, NULL, NULL, NULL, NULL); 159 + if (ret != READOSM_NULL_HANDLE) 160 + { 161 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 162 + READOSM_NULL_HANDLE, ret); 163 + return -6; 164 + } 165 + 166 + ret = readosm_parse (buffer, NULL, NULL, NULL, NULL); 167 + if (ret != READOSM_INVALID_HANDLE) 168 + { 169 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 170 + READOSM_INVALID_HANDLE, ret); 171 + return -7; 172 + } 173 + 174 + zero_count (&count); 175 + ret = readosm_parse (handle, &count, parse_node, parse_way, parse_relation); 176 + if (ret != READOSM_OK) 177 + { 178 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 179 + READOSM_OK, ret); 180 + return -8; 181 + } 182 + if (count.nodes != 1060 || count.nd_tags != 1052 || count.ways != 112 183 + || count.way_nds != 785 || count.way_tags != 241 184 + || count.relations != 13 || count.rel_members != 66 185 + || count.rel_tags != 199) 186 + { 187 + fprintf (stderr, 188 + "XML-ALL: unexpected results: expected 1060/1052/112/785/241/13/66/19, found %d/%d/%d/%d/%d/%d/%d/%d\n", 189 + count.nodes, count.nd_tags, count.ways, count.way_nds, 190 + count.way_tags, count.relations, count.rel_members, 191 + count.rel_tags); 192 + return -9; 193 + } 194 + 195 + ret = readosm_close (handle); 196 + if (ret != READOSM_OK) 197 + { 198 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 199 + return -10; 200 + } 201 + 202 + ret = readosm_open ("testdata/test.osm", &handle); 203 + if (ret != READOSM_OK) 204 + { 205 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 206 + return -11; 207 + } 208 + 209 + zero_count (&count); 210 + ret = readosm_parse (handle, &count, parse_node, NULL, NULL); 211 + if (ret != READOSM_OK) 212 + { 213 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 214 + READOSM_OK, ret); 215 + return -12; 216 + } 217 + if (count.nodes != 1060 || count.nd_tags != 1052 || count.ways != 0 218 + || count.way_nds != 0 || count.way_tags != 0 || count.relations != 0 219 + || count.rel_members != 0 || count.rel_tags != 0) 220 + { 221 + fprintf (stderr, 222 + "XML-NODE: unexpected results: expected 1060/1052/0/0/0/0/0/0, found %d/%d/%d/%d/%d/%d/%d/%d\n", 223 + count.nodes, count.nd_tags, count.ways, count.way_nds, 224 + count.way_tags, count.relations, count.rel_members, 225 + count.rel_tags); 226 + return -13; 227 + } 228 + 229 + ret = readosm_close (handle); 230 + if (ret != READOSM_OK) 231 + { 232 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 233 + return -14; 234 + } 235 + 236 + ret = readosm_open ("testdata/test.osm", &handle); 237 + if (ret != READOSM_OK) 238 + { 239 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 240 + return -15; 241 + } 242 + 243 + zero_count (&count); 244 + ret = readosm_parse (handle, &count, NULL, parse_way, NULL); 245 + if (ret != READOSM_OK) 246 + { 247 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 248 + READOSM_OK, ret); 249 + return -16; 250 + } 251 + if (count.nodes != 0 || count.nd_tags != 0 || count.ways != 112 252 + || count.way_nds != 785 || count.way_tags != 241 || count.relations != 0 253 + || count.rel_members != 0 || count.rel_tags != 0) 254 + { 255 + fprintf (stderr, 256 + "XML-WAY: unexpected results: expected 0/0/113/785/241/0/0/0, found %d/%d/%d/%d/%d/%d/%d/%d\n", 257 + count.nodes, count.nd_tags, count.ways, count.way_nds, 258 + count.way_tags, count.relations, count.rel_members, 259 + count.rel_tags); 260 + return -17; 261 + } 262 + 263 + ret = readosm_close (handle); 264 + if (ret != READOSM_OK) 265 + { 266 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 267 + return -18; 268 + } 269 + 270 + ret = readosm_open ("testdata/test.osm", &handle); 271 + if (ret != READOSM_OK) 272 + { 273 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 274 + return -19; 275 + } 276 + 277 + zero_count (&count); 278 + ret = readosm_parse (handle, &count, NULL, NULL, parse_relation); 279 + if (ret != READOSM_OK) 280 + { 281 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 282 + READOSM_OK, ret); 283 + return -20; 284 + } 285 + if (count.nodes != 0 || count.nd_tags != 0 || count.ways != 0 286 + || count.way_nds != 0 || count.way_tags != 0 || count.relations != 13 287 + || count.rel_members != 66 || count.rel_tags != 199) 288 + { 289 + fprintf (stderr, 290 + "XML-RELATION: unexpected results: expected 0/0/0/0/0/13/66/19, found %d/%d/%d/%d/%d/%d/%d/%d\n", 291 + count.nodes, count.nd_tags, count.ways, count.way_nds, 292 + count.way_tags, count.relations, count.rel_members, 293 + count.rel_tags); 294 + return -21; 295 + } 296 + 297 + ret = readosm_close (handle); 298 + if (ret != READOSM_OK) 299 + { 300 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 301 + return -22; 302 + } 303 + 304 + ret = readosm_open ("testdata/test.osm", &handle); 305 + if (ret != READOSM_OK) 306 + { 307 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 308 + return -23; 309 + } 310 + 311 + zero_count (&count); 312 + ret = readosm_parse (handle, &count, NULL, NULL, NULL); 313 + if (ret != READOSM_OK) 314 + { 315 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 316 + READOSM_OK, ret); 317 + return -24; 318 + } 319 + if (count.nodes != 0 || count.nd_tags != 0 || count.ways != 0 320 + || count.way_nds != 0 || count.way_tags != 0 || count.relations != 0 321 + || count.rel_members != 0 || count.rel_tags != 0) 322 + { 323 + fprintf (stderr, 324 + "XML-NONE: unexpected results: expected 0/0/0/0/0/0/0/0, found %d/%d/%d/%d/%d/%d/%d/%d\n", 325 + count.nodes, count.nd_tags, count.ways, count.way_nds, 326 + count.way_tags, count.relations, count.rel_members, 327 + count.rel_tags); 328 + return -25; 329 + } 330 + 331 + ret = readosm_close (handle); 332 + if (ret != READOSM_OK) 333 + { 334 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 335 + return -26; 336 + } 337 + 338 + ret = readosm_open ("testdata/test.osm.pbf", &handle); 339 + if (ret != READOSM_OK) 340 + { 341 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 342 + return -27; 343 + } 344 + 345 + zero_count (&count); 346 + ret = readosm_parse (handle, &count, parse_node, parse_way, parse_relation); 347 + if (ret != READOSM_OK) 348 + { 349 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 350 + READOSM_OK, ret); 351 + return -28; 352 + } 353 + if (count.nodes != 8000 || count.nd_tags != 3162 || count.ways != 12336 354 + || count.way_nds != 221627 || count.way_tags != 24904 355 + || count.relations != 1520 || count.rel_members != 5723 356 + || count.rel_tags != 10081) 357 + { 358 + fprintf (stderr, 359 + "PBF-ALL: unexpected results: expected 8000/3162/12336/221627/24904/1520/5723/10081, found %d/%d/%d/%d/%d/%d/%d/%d\n", 360 + count.nodes, count.nd_tags, count.ways, count.way_nds, 361 + count.way_tags, count.relations, count.rel_members, 362 + count.rel_tags); 363 + return -29; 364 + } 365 + 366 + ret = readosm_close (handle); 367 + if (ret != READOSM_OK) 368 + { 369 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 370 + return -30; 371 + } 372 + 373 + ret = readosm_open ("testdata/test.osm.pbf", &handle); 374 + if (ret != READOSM_OK) 375 + { 376 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 377 + return -31; 378 + } 379 + 380 + zero_count (&count); 381 + ret = readosm_parse (handle, &count, parse_node, NULL, NULL); 382 + if (ret != READOSM_OK) 383 + { 384 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 385 + READOSM_OK, ret); 386 + return -32; 387 + } 388 + if (count.nodes != 8000 || count.nd_tags != 3162 || count.ways != 0 389 + || count.way_nds != 0 || count.way_tags != 0 390 + || count.relations != 0 || count.rel_members != 0 391 + || count.rel_tags != 0) 392 + { 393 + fprintf (stderr, 394 + "PBF-NODE: unexpected results: expected 8000/3162/0/0/0/0/0/0, found %d/%d/%d/%d/%d/%d/%d/%d\n", 395 + count.nodes, count.nd_tags, count.ways, count.way_nds, 396 + count.way_tags, count.relations, count.rel_members, 397 + count.rel_tags); 398 + return -33; 399 + } 400 + 401 + ret = readosm_close (handle); 402 + if (ret != READOSM_OK) 403 + { 404 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 405 + return -34; 406 + } 407 + 408 + ret = readosm_open ("testdata/test.osm.pbf", &handle); 409 + if (ret != READOSM_OK) 410 + { 411 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 412 + return -35; 413 + } 414 + 415 + zero_count (&count); 416 + ret = readosm_parse (handle, &count, NULL, parse_way, NULL); 417 + if (ret != READOSM_OK) 418 + { 419 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 420 + READOSM_OK, ret); 421 + return -36; 422 + } 423 + if (count.nodes != 0 || count.nd_tags != 0 || count.ways != 12336 424 + || count.way_nds != 221627 || count.way_tags != 24904 425 + || count.relations != 0 || count.rel_members != 0 426 + || count.rel_tags != 0) 427 + { 428 + fprintf (stderr, 429 + "PBF-WAY: unexpected results: expected 0/0/12336/221627/24904/0/0/0, found %d/%d/%d/%d/%d/%d/%d/%d\n", 430 + count.nodes, count.nd_tags, count.ways, count.way_nds, 431 + count.way_tags, count.relations, count.rel_members, 432 + count.rel_tags); 433 + return -37; 434 + } 435 + 436 + ret = readosm_close (handle); 437 + if (ret != READOSM_OK) 438 + { 439 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 440 + return -38; 441 + } 442 + 443 + ret = readosm_open ("testdata/test.osm.pbf", &handle); 444 + if (ret != READOSM_OK) 445 + { 446 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 447 + return -39; 448 + } 449 + 450 + zero_count (&count); 451 + ret = readosm_parse (handle, &count, NULL, NULL, parse_relation); 452 + if (ret != READOSM_OK) 453 + { 454 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 455 + READOSM_OK, ret); 456 + return -40; 457 + } 458 + if (count.nodes != 0 || count.nd_tags != 0 || count.ways != 0 459 + || count.way_nds != 0 || count.way_tags != 0 460 + || count.relations != 1520 || count.rel_members != 5723 461 + || count.rel_tags != 10081) 462 + { 463 + fprintf (stderr, 464 + "PBF-RELATION: unexpected results: expected 0/0/0/0/0/1520/5723/10081, found %d/%d/%d/%d/%d/%d/%d/%d\n", 465 + count.nodes, count.nd_tags, count.ways, count.way_nds, 466 + count.way_tags, count.relations, count.rel_members, 467 + count.rel_tags); 468 + return -41; 469 + } 470 + 471 + ret = readosm_close (handle); 472 + if (ret != READOSM_OK) 473 + { 474 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 475 + return -42; 476 + } 477 + 478 + ret = readosm_open ("testdata/test.osm.pbf", &handle); 479 + if (ret != READOSM_OK) 480 + { 481 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 482 + return -43; 483 + } 484 + 485 + zero_count (&count); 486 + ret = readosm_parse (handle, &count, NULL, NULL, NULL); 487 + if (ret != READOSM_OK) 488 + { 489 + fprintf (stderr, "Unexpected result: expected %d, found %d\n", 490 + READOSM_OK, ret); 491 + return -44; 492 + } 493 + if (count.nodes != 0 || count.nd_tags != 0 || count.ways != 0 494 + || count.way_nds != 0 || count.way_tags != 0 495 + || count.relations != 0 || count.rel_members != 0 496 + || count.rel_tags != 0) 497 + { 498 + fprintf (stderr, 499 + "PBF-NONE: unexpected results: expected 0/0/0/0/0/0/0/0, found %d/%d/%d/%d/%d/%d/%d/%d\n", 500 + count.nodes, count.nd_tags, count.ways, count.way_nds, 501 + count.way_tags, count.relations, count.rel_members, 502 + count.rel_tags); 503 + return -45; 504 + } 505 + 506 + ret = readosm_close (handle); 507 + if (ret != READOSM_OK) 508 + { 509 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 510 + return -46; 511 + } 512 + 513 + return 0; 514 +}
Added tests/check_osm.c.
1 +/* 2 +/ check_osm.c 3 +/ 4 +/ Test cases for OSM XML input file 5 +/ 6 +/ Author: Sandro Furieri a.furieri@lqt.it 7 +/ 8 +/ ------------------------------------------------------------------------------ 9 +/ 10 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 11 +/ 12 +/ The contents of this file are subject to the Mozilla Public License Version 13 +/ 1.1 (the "License"); you may not use this file except in compliance with 14 +/ the License. You may obtain a copy of the License at 15 +/ http://www.mozilla.org/MPL/ 16 +/ 17 +/ Software distributed under the License is distributed on an "AS IS" basis, 18 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 19 +/ for the specific language governing rights and limitations under the 20 +/ License. 21 +/ 22 +/ The Original Code is the ReadOSM library 23 +/ 24 +/ The Initial Developer of the Original Code is Alessandro Furieri 25 +/ 26 +/ Portions created by the Initial Developer are Copyright (C) 2012 27 +/ the Initial Developer. All Rights Reserved. 28 +/ 29 +/ Contributor(s): 30 +/ 31 +/ Alternatively, the contents of this file may be used under the terms of 32 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 33 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 34 +/ in which case the provisions of the GPL or the LGPL are applicable instead 35 +/ of those above. If you wish to allow use of your version of this file only 36 +/ under the terms of either the GPL or the LGPL, and not to allow others to 37 +/ use your version of this file under the terms of the MPL, indicate your 38 +/ decision by deleting the provisions above and replace them with the notice 39 +/ and other provisions required by the GPL or the LGPL. If you do not delete 40 +/ the provisions above, a recipient may use your version of this file under 41 +/ the terms of any one of the MPL, the GPL or the LGPL. 42 +/ 43 +*/ 44 + 45 +#include <stdio.h> 46 + 47 +#include "readosm.h" 48 + 49 +static int 50 +check_node (const void *user_data, const readosm_node * node) 51 +{ 52 +/* Node callback function: does absolutely nothing */ 53 + return READOSM_OK; 54 +} 55 + 56 +static int 57 +check_way (const void *user_data, const readosm_way * way) 58 +{ 59 +/* Way callback function: does absolutely nothing */ 60 + return READOSM_OK; 61 +} 62 + 63 +static 64 +check_relation (const void *user_data, const readosm_relation * relation) 65 +{ 66 +/* Relation callback function: does absolutely nothing */ 67 + return READOSM_OK; 68 +} 69 + 70 +int 71 +main (int argc, char *argv[]) 72 +{ 73 + const void *handle; 74 + int ret; 75 + 76 + ret = readosm_open ("testdata/test.osm", &handle); 77 + if (ret != READOSM_OK) 78 + { 79 + fprintf (stderr, "OPEN ERROR: %d\n", ret); 80 + return -1; 81 + } 82 + 83 + 84 + ret = 85 + readosm_parse (handle, (const void *) 0, check_node, check_way, 86 + check_relation); 87 + if (ret != READOSM_OK) 88 + { 89 + fprintf (stderr, ".osm PARSE error: %d\n", ret); 90 + return -2; 91 + } 92 + 93 + ret = readosm_close (handle); 94 + if (ret != READOSM_OK) 95 + { 96 + fprintf (stderr, "CLOSE ERROR: %d\n", ret); 97 + return -3; 98 + } 99 + 100 + return 0; 101 +}
Added tests/check_pbf.c.
1 +/* 2 +/ check_pbf.c 3 +/ 4 +/ Test cases for OSM .pbf (Protocol Buffer) input file 5 +/ 6 +/ Author: Sandro Furieri a.furieri@lqt.it 7 +/ 8 +/ ------------------------------------------------------------------------------ 9 +/ 10 +/ Version: MPL 1.1/GPL 2.0/LGPL 2.1 11 +/ 12 +/ The contents of this file are subject to the Mozilla Public License Version 13 +/ 1.1 (the "License"); you may not use this file except in compliance with 14 +/ the License. You may obtain a copy of the License at 15 +/ http://www.mozilla.org/MPL/ 16 +/ 17 +/ Software distributed under the License is distributed on an "AS IS" basis, 18 +/ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 19 +/ for the specific language governing rights and limitations under the 20 +/ License. 21 +/ 22 +/ The Original Code is the ReadOSM library 23 +/ 24 +/ The Initial Developer of the Original Code is Alessandro Furieri 25 +/ 26 +/ Portions created by the Initial Developer are Copyright (C) 2012 27 +/ the Initial Developer. All Rights Reserved. 28 +/ 29 +/ Contributor(s): 30 +/ 31 +/ Alternatively, the contents of this file may be used under the terms of 32 +/ either the GNU General Public License Version 2 or later (the "GPL"), or 33 +/ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 34 +/ in which case the provisions of the GPL or the LGPL are applicable instead 35 +/ of those above. If you wish to allow use of your version of this file only 36 +/ under the terms of either the GPL or the LGPL, and not to allow others to 37 +/ use your version of this file under the terms of the MPL, indicate your 38 +/ decision by deleting the provisions above and replace them with the notice 39 +/ and other provisions required by the GPL or the LGPL. If you do not delete 40 +/ the provisions above, a recipient may use your version of this file under 41 +/ the terms of any one of the MPL, the GPL or the LGPL. 42 +/ 43 +*/ 44 + 45 +#include <stdio.h> 46 + 47 +#include "readosm.h" 48 + 49 +static int 50 +check_node (const void *user_data, const readosm_node * node) 51 +{ 52 +/* Node callback function: does absolutely nothing */ 53 + return READOSM_OK; 54 +} 55 + 56 +static int 57 +check_way (const void *user_data, const readosm_way * way) 58 +{ 59 +/* Way callback function: does absolutely nothing */ 60 + return READOSM_OK; 61 +} 62 + 63 +static int 64 +check_relation (const void *user_data, const readosm_relation * relation) 65 +{ 66 +/* Relation callback function: does absolutely nothing */ 67 + return READOSM_OK; 68 +} 69 + 70 +int 71 +main (int argc, char *argv[]) 72 +{ 73 + const void *handle; 74 + int ret; 75 + 76 + ret = readosm_open ("testdata/test.osm.pbf", &handle); 77 + if (ret != READOSM_OK) 78 + { 79 + fprintf (stderr, "OPEN ERROR #1: %d\n", ret); 80 + return -1; 81 + } 82 + 83 + ret = 84 + readosm_parse (handle, (const void *) 0, check_node, check_way, 85 + check_relation); 86 + if (ret != READOSM_OK) 87 + { 88 + fprintf (stderr, ".pbf PARSE error #1: %d\n", ret); 89 + return -2; 90 + } 91 + 92 + ret = readosm_close (handle); 93 + if (ret != READOSM_OK) 94 + { 95 + fprintf (stderr, "CLOSE ERROR #1: %d\n", ret); 96 + return -3; 97 + } 98 + 99 + ret = readosm_open ("testdata/noNodesPackedInfos.osm.pbf", &handle); 100 + if (ret != READOSM_OK) 101 + { 102 + fprintf (stderr, "OPEN ERROR #2: %d\n", ret); 103 + return -4; 104 + } 105 + 106 + ret = 107 + readosm_parse (handle, (const void *) 0, check_node, check_way, 108 + check_relation); 109 + if (ret != READOSM_OK) 110 + { 111 + fprintf (stderr, ".pbf PARSE error #2: %d\n", ret); 112 + return -5; 113 + } 114 + 115 + ret = readosm_close (handle); 116 + if (ret != READOSM_OK) 117 + { 118 + fprintf (stderr, "CLOSE ERROR #2: %d\n", ret); 119 + return -6; 120 + } 121 + 122 + return 0; 123 +}
Added tests/testdata/noNodesPackedInfos.osm.pbf.
cannot compute difference between binary files
Added tests/testdata/test.osm.
1 +<?xml version='1.0' encoding='UTF-8'?> 2 +<osm version="0.6" generator="pbf2osm"> 3 + <node id="14468314" lat="41.5494188" lon="9.3076645" version="1" changeset="113913" timestamp="2006-09-18T15:15:02Z"> 4 + <tag k="created_by" v="JOSM" /> 5 + </node> 6 + <node id="14468315" lat="41.5498185" lon="9.3071208" version="2" changeset="1797942" user="Andreas Wissinger" uid="77430" timestamp="2009-07-11T15:38:13Z"/> 7 + <node id="14468318" lat="41.5502498" lon="9.3064952" version="1" changeset="98534" timestamp="2006-08-30T16:42:13Z"> 8 + <tag k="created_by" v="JOSM" /> 9 + </node> 10 + <node id="14468319" lat="41.5501734" lon="9.3061536" version="1" changeset="519484" user="LHCarsten" uid="6168" timestamp="2007-09-26T15:33:27Z"> 11 + <tag k="created_by" v="JOSM" /> 12 + </node> 13 + <node id="14468321" lat="41.5516343" lon="9.3037460" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:01Z"/> 14 + <node id="14468322" lat="41.5517659" lon="9.3028608" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:01Z"/> 15 + <node id="14468323" lat="41.5527219" lon="9.3017699" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:01Z"/> 16 + <node id="14468324" lat="41.5519884" lon="9.3010675" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 17 + <node id="14468325" lat="41.5506986" lon="9.3008478" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 18 + <node id="14468326" lat="41.5504463" lon="9.2998388" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 19 + <node id="14468327" lat="41.5487692" lon="9.2973741" version="1" changeset="519484" user="LHCarsten" uid="6168" timestamp="2007-09-26T15:33:31Z"> 20 + <tag k="created_by" v="JOSM" /> 21 + </node> 22 + <node id="14468328" lat="41.5475514" lon="9.2969774" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 23 + <node id="14468329" lat="41.5467741" lon="9.2977991" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 24 + <node id="14468330" lat="41.5460156" lon="9.2976950" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 25 + <node id="14468331" lat="41.5458205" lon="9.2972498" version="1" changeset="519484" user="LHCarsten" uid="6168" timestamp="2007-09-26T15:33:26Z"> 26 + <tag k="created_by" v="JOSM" /> 27 + </node> 28 + <node id="14468332" lat="41.5437405" lon="9.2943254" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 29 + <node id="14468333" lat="41.5428111" lon="9.2922358" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 30 + <node id="14468334" lat="41.5434519" lon="9.2907657" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 31 + <node id="14468335" lat="41.5436880" lon="9.2907034" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 32 + <node id="14468336" lat="41.5441739" lon="9.2910326" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 33 + <node id="14468337" lat="41.5451859" lon="9.2907875" version="2" changeset="9313584" user="corse09" uid="519341" timestamp="2011-09-16T07:15:46Z"/> 34 + <node id="14468339" lat="41.5459970" lon="9.2901322" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 35 + <node id="14468340" lat="41.5462410" lon="9.2891908" version="2" changeset="2651403" user="LHCarsten" uid="6168" timestamp="2009-09-27T12:24:02Z"/> 36 + <node id="14468341" lat="41.5453573" lon="9.2865853" version="1" changeset="519484" user="LHCarsten" uid="6168" timestamp="2007-09-26T15:33:27Z"> 37 + <tag k="created_by" v="JOSM" /> 38 + </node> 39 + <node id="14468342" lat="41.5451737" lon="9.2858054" version="2" changeset="2650522" user="LHCarsten" uid="6168" timestamp="2009-09-27T11:02:19Z"/> 40 + <node id="14468343" lat="41.5455279" lon="9.2838155" version="2" changeset="2650522" user="LHCarsten" uid="6168" timestamp="2009-09-27T11:02:19Z"/> 41 + <node id="14468344" lat="41.5438060" lon="9.2817348" version="2" changeset="2650522" user="LHCarsten" uid="6168" timestamp="2009-09-27T11:02:19Z"/> 42 + <node id="14468345" lat="41.5432966" lon="9.2789868" version="2" changeset="2650522" user="LHCarsten" uid="6168" timestamp="2009-09-27T11:02:19Z"/> 43 + <node id="14468346" lat="41.5429598" lon="9.2780654" version="2" changeset="2650522" user="LHCarsten" uid="6168" timestamp="2009-09-27T11:02:19Z"/> 44 + <node id="14468347" lat="41.5463969" lon="9.2740656" version="2" changeset="2650522" user="LHCarsten" uid="6168" timestamp="2009-09-27T11:02:19Z"/> 45 + <node id="14468348" lat="41.5472626" lon="9.2705926" version="2" changeset="2650522" user="LHCarsten" uid="6168" timestamp="2009-09-27T11:02:19Z"/> 46 + <node id="14468349" lat="41.5466690" lon="9.2700949" version="2" changeset="2650522" user="LHCarsten" uid="6168" timestamp="2009-09-27T11:02:19Z"/> 47 + <node id="14468350" lat="41.5467810" lon="9.2692612" version="4" changeset="9313584" user="corse09" uid="519341" timestamp="2011-09-16T07:15:46Z"/> 48 + <node id="14468351" lat="41.5469465" lon="9.2691374" version="4" changeset="9313584" user="corse09" uid="519341" timestamp="2011-09-16T07:15:46Z"/> 49 + <node id="14468352" lat="41.5466993" lon="9.2690674" version="5" changeset="9313584" user="corse09" uid="519341" timestamp="2011-09-16T07:15:46Z"/> 50 + <node id="14468353" lat="41.5441041" lon="9.2683746" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:40Z"/> 51 + <node id="14468354" lat="41.4998965" lon="9.2514418" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:39Z"/> 52 + <node id="14468356" lat="41.4933480" lon="9.2462806" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:39Z"/> 53 + <node id="14468357" lat="41.4929560" lon="9.2460394" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:39Z"/> 54 + <node id="14468358" lat="41.4915689" lon="9.2457077" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:39Z"/> 55 + <node id="14468359" lat="41.4912223" lon="9.2455602" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:39Z"/> 56 + <node id="14468360" lat="41.4909624" lon="9.2450923" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:39Z"/> 57 + <node id="14468361" lat="41.4908401" lon="9.2445143" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:39Z"/> 58 + <node id="14468362" lat="41.4907575" lon="9.2435116" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 59 + <node id="14468363" lat="41.4900901" lon="9.2427934" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 60 + <node id="14468364" lat="41.4886439" lon="9.2425716" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 61 + <node id="14468365" lat="41.4817083" lon="9.2379278" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 62 + <node id="14468366" lat="41.4730841" lon="9.2267706" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 63 + <node id="14468368" lat="41.4665405" lon="9.2229711" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 64 + <node id="14468369" lat="41.4484176" lon="9.2069288" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 65 + <node id="14468371" lat="41.4316818" lon="9.1886250" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 66 + <node id="14468372" lat="41.4292694" lon="9.1879013" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:38Z"/> 67 + <node id="14468374" lat="41.4279818" lon="9.1871981" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:37Z"/> 68 + <node id="14468375" lat="41.4267666" lon="9.1849159" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:37Z"/> 69 + <node id="14468376" lat="41.4267099" lon="9.1834553" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:37Z"/> 70 + <node id="14468377" lat="41.4261418" lon="9.1825749" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:37Z"/> 71 + <node id="14468379" lat="41.4238452" lon="9.1809567" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:37Z"/> 72 + <node id="14468380" lat="41.4225317" lon="9.1812579" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:36Z"/> 73 + <node id="14468381" lat="41.4211578" lon="9.1809958" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:36Z"/> 74 + <node id="14468383" lat="41.4150967" lon="9.1767139" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:36Z"/> 75 + <node id="14468384" lat="41.4136846" lon="9.1739600" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:36Z"/> 76 + <node id="14468385" lat="41.4137570" lon="9.1718411" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:35Z"/> 77 + <node id="14468386" lat="41.4132573" lon="9.1700196" version="2" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:35Z"/> 78 + <node id="14468387" lat="41.4130047" lon="9.1701754" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:19:14Z"/> 79 + <node id="14468388" lat="41.4128176" lon="9.1715675" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:19:14Z"/> 80 + <node id="14468391" lat="41.4119124" lon="9.1735684" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:34Z"/> 81 + <node id="14468392" lat="41.4110776" lon="9.1737618" version="7" changeset="11164863" user="Vlad" uid="24247" timestamp="2012-03-31T11:12:46Z"/> 82 + <node id="14468393" lat="41.4073259" lon="9.1717284" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:21:52Z"/> 83 + <node id="14468394" lat="41.4036395" lon="9.1685250" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:34Z"/> 84 + <node id="14468396" lat="41.4020359" lon="9.1683250" version="3" changeset="5974345" user="Marcussacapuces91" uid="37548" timestamp="2010-10-06T23:18:33Z"/> 85 + <node id="14468397" lat="41.3999615" lon="9.1662821" version="5" changeset="11164863" user="Vlad" uid="24247" timestamp="2012-03-31T11:12:46Z"/> 86 + <node id="14468399" lat="41.3991936" lon="9.1651574" version="4" changeset="11164863" user="Vlad" uid="24247" timestamp="2012-03-31T11:12:46Z"/> 87 + <node id="14468401" lat="41.3978181" lon="9.1636569" version="1" changeset="98534" timestamp="2006-08-30T16:42:21Z"> 88 + <tag k="created_by" v="JOSM" /> 89 + </node> 90 + <node id="14468409" lat="41.3911425" lon="9.1650704" version="2" changeset="11164863" user="Vlad" uid="24247" timestamp="2012-03-31T11:12:46Z"/> 91 + <node id="14468411" lat="41.3894758" lon="9.1655168" version="4" changeset="7146557" user="Markus B" uid="49111" timestamp="2011-01-31T16:47:14Z"/> 92 + <node id="14468412" lat="41.3886607" lon="9.1658845" version="3" changeset="267472" user="pingoo" uid="25996" timestamp="2008-08-15T07:20:54Z"> 93 + <tag k="created_by" v="JOSM" /> 94 + </node> 95 + <node id="14468413" lat="41.3879057" lon="9.1676260" version="2" changeset="7146557" user="Markus B" uid="49111" timestamp="2011-01-31T16:47:10Z"/> 96 + <node id="14468414" lat="41.3881373" lon="9.1680344" version="3" changeset="7146557" user="Markus B" uid="49111" timestamp="2011-01-31T16:47:12Z"/> 97 + <node id="14468415" lat="41.3887587" lon="9.1678132" version="5" changeset="7146557" user="Markus B" uid="49111" timestamp="2011-01-31T16:47:33Z"/> 98 + <node id="14468416" lat="41.3893424" lon="9.1673960" version="3" changeset="4650192" user="Freek" uid="5446" timestamp="2010-05-09T15:59:05Z"/> 99 + <node id="14468418" lat="41.3880541" lon="9.1630420" version="3" changeset="249048" user="pingoo" uid="25996" timestamp="2008-08-14T19:02:07Z"> 100 + <tag k="created_by" v="JOSM" /> 101 + </node> 102 + <node id="14468419" lat="41.3882028" lon="9.1619111" version="3" changeset="1005955" user="aikon" uid="44329" timestamp="2009-04-28T17:31:26Z"> 103 + <tag k="created_by" v="JOSM" /> 104 + </node> 105 + <node id="14468420" lat="41.3870658" lon="9.1606543" version="2" changeset="119673" timestamp="2008-04-12T14:41:02Z"> 106 + <tag k="created_by" v="JOSM" /> 107 + </node> 108 + <node id="14468421" lat="41.3876178" lon="9.1608651" version="3" changeset="7146557" user="Markus B" uid="49111" timestamp="2011-01-31T16:47:09Z"/> 109 + <node id="14468422" lat="41.3882411" lon="9.1604250" version="3" changeset="249048" user="pingoo" uid="25996" timestamp="2008-08-14T19:02:07Z"> 110 + <tag k="created_by" v="JOSM" /> 111 + </node> 112 + <node id="14468462" lat="41.3876852" lon="9.1641790" version="3" changeset="1005955" user="aikon" uid="44329" timestamp="2009-04-28T17:31:26Z"> 113 + <tag k="created_by" v="JOSM" /> 114 + </node> 115 + <node id="14468463" lat="41.3877597" lon="9.1620927" version="3" changeset="1005955" user="aikon" uid="44329" timestamp="2009-04-28T17:31:26Z"> 116 + <tag k="created_by" v="JOSM" /> 117 + </node> 118 + <node id="14468464" lat="41.3878305" lon="9.1679166" version="3" changeset="7146557" user="Markus B" uid="49111" timestamp="2011-01-31T16:47:18Z"/> 119 + <node id="14468465" lat="41.3877683" lon="9.1711672" version="1" changeset="98534" timestamp="2006-08-30T16:42:27Z"> 120 + <tag k="created_by" v="JOSM" /> 121 + </node> 122 + <node id="14468466" lat="41.3881375" lon="9.1725670" version="2" changeset="494111" user="frausuhrbier" uid="8226" timestamp="2008-05-21T17:00:15Z"> 123 + <tag k="created_by" v="JOSM" /> 124 + </node> 125 + <node id="14468467" lat="41.3886537" lon="9.1724886" version="1" changeset="98534" timestamp="2006-08-30T16:42:27Z"> 126 + <tag k="created_by" v="JOSM" /> 127 + </node> 128 + <node id="14468468" lat="41.3886991" lon="9.1723434" version="2" changeset="494111" user="frausuhrbier" uid="8226" timestamp="2008-05-21T17:00:15Z"> 129 + <tag k="created_by" v="JOSM" /> 130 + </node> 131 + <node id="14468476" lat="41.3878261" lon="9.1714750" version="2" changeset="494111" user="frausuhrbier" uid="8226" timestamp="2008-05-21T17:00:15Z"> 132 + <tag k="created_by" v="JOSM" /> 133 + </node> 134 + <node id="14468944" lat="41.3995122" lon="9.1654285" version="5" changeset="11164863" user="Vlad" uid="24247" timestamp="2012-03-31T11:12:46Z"/> 135 + <node id="14469407" lat="41.6151920" lon="8.9497550" version="2" changeset="2526305" user="Jens Wilke" uid="85443" timestamp="2009-09-18T17:58:27Z"/> 136 + <node id="14469844" lat="41.5515410" lon="8.8969224" version="1" changeset="98534" timestamp="2006-08-30T17:16:06Z"> 137 + <tag k="created_by" v="JOSM" /> 138 + </node> 139 + <node id="14469847" lat="41.5469986" lon="8.8821384" version="1" changeset="98534" timestamp="2006-08-30T17:16:06Z"> 140 + <tag k="created_by" v="JOSM" /> 141 + </node> 142 + <node id="14469848" lat="41.5498326" lon="8.8828343" version="2" changeset="1894061" user="math" uid="39620" timestamp="2009-07-21T12:17:19Z"> 143 + <tag k="created_by" v="JOSM" /> 144 + </node> 145 + <node id="14469849" lat="41.5561110" lon="8.8871460" version="2" changeset="1894061" user="math" uid="39620" timestamp="2009-07-21T12:17:19Z"> 146 + <tag k="created_by" v="JOSM" /> 147 + </node> 148 + <node id="14469851" lat="41.5570474" lon="8.8868069" version="3" changeset="1894061" user="math" uid="39620" timestamp="2009-07-21T12:17:19Z"> 149 + <tag k="created_by" v="JOSM" /> 150 + <tag k="historic" v="archaeological_site" /> 151 + <tag k="name" v="U Pagliaju" /> 152 + </node> 153 + <node id="14469854" lat="41.5413125" lon="8.8670474" version="2" changeset="2526553" user="Jens Wilke" uid="85443" timestamp="2009-09-18T18:31:25Z"/> 154 + <node id="14469855" lat="41.5407548" lon="8.8686307" version="2" changeset="10474687" user="ligamaister" uid="70161" timestamp="2012-01-23T12:14:07Z"/> 155 + <node id="14469856" lat="41.5370199" lon="8.8674350" version="2" changeset="10474687" user="ligamaister" uid="70161" timestamp="2012-01-23T12:14:07Z"/> 156 + <node id="14469858" lat="41.5350519" lon="8.8668630" version="2" changeset="10474687" user="ligamaister" uid="70161" timestamp="2012-01-23T12:14:07Z"/> 157 + <node id="14469859" lat="41.5344199" lon="8.8668385" version="2" changeset="10474687" user="ligamaister" uid="70161" timestamp="2012-01-23T12:14:07Z"/> 158 + <node id="14469860" lat="41.5345426" lon="8.8650882" version="1" changeset="98534" timestamp="2006-08-30T17:16:07Z"> 159 + <tag k="created_by" v="JOSM" /> 160 + </node> 161 + <node id="14469861" lat="41.5353890" lon="8.8645556" version="1" changeset="98534" timestamp="2006-08-30T17:16:07Z"> 162 + <tag k="created_by" v="JOSM" /> 163 + </node> 164 + <node id="14469862" lat="41.5352516" lon="8.8640611" version="1" changeset="98534" timestamp="2006-08-30T17:16:07Z"> 165 + <tag k="created_by" v="JOSM" /> 166 + </node> 167 + <node id="14469863" lat="41.5348945" lon="8.8637315" version="1" changeset="98534" timestamp="2006-08-30T17:16:08Z"> 168 + <tag k="created_by" v="JOSM" /> 169 + </node> 170 + <node id="14469864" lat="41.5344000" lon="8.8637864" version="1" changeset="98534" timestamp="2006-08-30T17:16:08Z"> 171 + <tag k="created_by" v="JOSM" /> 172 + </node> 173 + <node id="14469865" lat="41.5340956" lon="8.8635491" version="2" changeset="1894169" user="math" uid="39620" timestamp="2009-07-21T12:29:58Z"> 174 + <tag k="created_by" v="JOSM" /> 175 + <tag k="name" v="Arepos Avena" /> 176 + <tag k="tourism" v="camp_site" /> 177 + </node> 178 + <node id="14469882" lat="41.5339113" lon="8.8664393" version="1" changeset="98534" timestamp="2006-08-30T17:16:09Z"> 179 + <tag k="created_by" v="JOSM" /> 180 + </node> 181 + <node id="14469883" lat="41.5335031" lon="8.8653441" version="1" changeset="98534" timestamp="2006-08-30T17:16:09Z"> 182 + <tag k="created_by" v="JOSM" /> 183 + </node> 184 + <node id="14469884" lat="41.5331328" lon="8.8651417" version="1" changeset="98534" timestamp="2006-08-30T17:16:09Z"> 185 + <tag k="created_by" v="JOSM" /> 186 + </node> 187 + <node id="14469885" lat="41.5328162" lon="8.8650554" version="1" changeset="98534" timestamp="2006-08-30T17:16:09Z"> 188 + <tag k="created_by" v="JOSM" /> 189 + </node> 190 + <node id="14469886" lat="41.5321339" lon="8.8645623" version="1" changeset="98534" timestamp="2006-08-30T17:16:10Z"> 191 + <tag k="created_by" v="JOSM" /> 192 + </node> 193 + <node id="14469887" lat="41.5320496" lon="8.8641893" version="1" changeset="98534" timestamp="2006-08-30T17:16:10Z"> 194 + <tag k="created_by" v="JOSM" /> 195 + </node> 196 + <node id="14469888" lat="41.5314323" lon="8.8633132" version="1" changeset="98534" timestamp="2006-08-30T17:16:10Z"> 197 + <tag k="created_by" v="JOSM" /> 198 + </node> 199 + <node id="14469889" lat="41.5314622" lon="8.8630743" version="1" changeset="98534" timestamp="2006-08-30T17:16:10Z"> 200 + <tag k="created_by" v="JOSM" /> 201 + </node> 202 + <node id="14469890" lat="41.5314523" lon="8.8630206" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:10Z"> 203 + <tag k="created_by" v="JOSM" /> 204 + </node> 205 + <node id="14469891" lat="41.5309271" lon="8.8629475" version="3" changeset="10494697" user="ligamaister" uid="70161" timestamp="2012-01-25T15:34:08Z"/> 206 + <node id="14469892" lat="41.5306359" lon="8.8633690" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:11Z"> 207 + <tag k="created_by" v="JOSM" /> 208 + </node> 209 + <node id="14469893" lat="41.5302078" lon="8.8632993" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:11Z"> 210 + <tag k="created_by" v="JOSM" /> 211 + </node> 212 + <node id="14469894" lat="41.5297399" lon="8.8634288" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:11Z"> 213 + <tag k="created_by" v="JOSM" /> 214 + </node> 215 + <node id="14469895" lat="41.5291525" lon="8.8634586" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:11Z"> 216 + <tag k="created_by" v="JOSM" /> 217 + </node> 218 + <node id="14469896" lat="41.5287941" lon="8.8636776" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:11Z"> 219 + <tag k="created_by" v="JOSM" /> 220 + </node> 221 + <node id="14469897" lat="41.5282565" lon="8.8643546" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:12Z"> 222 + <tag k="created_by" v="JOSM" /> 223 + </node> 224 + <node id="14469898" lat="41.5282565" lon="8.8647966" version="1" changeset="98534" timestamp="2006-08-30T17:16:11Z"> 225 + <tag k="created_by" v="JOSM" /> 226 + </node> 227 + <node id="14469899" lat="41.5285850" lon="8.8651948" version="1" changeset="98534" timestamp="2006-08-30T17:16:11Z"> 228 + <tag k="created_by" v="JOSM" /> 229 + </node> 230 + <node id="14469900" lat="41.5285870" lon="8.8652751" version="1" changeset="98534" timestamp="2006-08-30T17:16:11Z"> 231 + <tag k="created_by" v="JOSM" /> 232 + </node> 233 + <node id="14469901" lat="41.5290032" lon="8.8655837" version="1" changeset="98534" timestamp="2006-08-30T17:16:11Z"> 234 + <tag k="created_by" v="JOSM" /> 235 + </node> 236 + <node id="14469902" lat="41.5289634" lon="8.8657822" version="1" changeset="98534" timestamp="2006-08-30T17:16:11Z"> 237 + <tag k="created_by" v="JOSM" /> 238 + </node> 239 + <node id="14469903" lat="41.5289932" lon="8.8659216" version="1" changeset="98534" timestamp="2006-08-30T17:16:11Z"> 240 + <tag k="created_by" v="JOSM" /> 241 + </node> 242 + <node id="14469904" lat="41.5288339" lon="8.8664293" version="1" changeset="98534" timestamp="2006-08-30T17:16:11Z"> 243 + <tag k="created_by" v="JOSM" /> 244 + </node> 245 + <node id="14469905" lat="41.5287941" lon="8.8666881" version="1" changeset="98534" timestamp="2006-08-30T17:16:11Z"> 246 + <tag k="created_by" v="JOSM" /> 247 + </node> 248 + <node id="14469906" lat="41.5287344" lon="8.8668076" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 249 + <tag k="created_by" v="JOSM" /> 250 + </node> 251 + <node id="14469907" lat="41.5286746" lon="8.8672158" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 252 + <tag k="created_by" v="JOSM" /> 253 + </node> 254 + <node id="14469908" lat="41.5287344" lon="8.8674647" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 255 + <tag k="created_by" v="JOSM" /> 256 + </node> 257 + <node id="14469909" lat="41.5287842" lon="8.8678928" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 258 + <tag k="created_by" v="JOSM" /> 259 + </node> 260 + <node id="14469910" lat="41.5287941" lon="8.8682313" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 261 + <tag k="created_by" v="JOSM" /> 262 + </node> 263 + <node id="14469911" lat="41.5287045" lon="8.8694359" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 264 + <tag k="created_by" v="JOSM" /> 265 + </node> 266 + <node id="14469912" lat="41.5287145" lon="8.8698042" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 267 + <tag k="created_by" v="JOSM" /> 268 + </node> 269 + <node id="14469913" lat="41.5287842" lon="8.8703618" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 270 + <tag k="created_by" v="JOSM" /> 271 + </node> 272 + <node id="14469914" lat="41.5290131" lon="8.8711084" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 273 + <tag k="created_by" v="JOSM" /> 274 + </node> 275 + <node id="14469915" lat="41.5292023" lon="8.8715465" version="1" changeset="98534" timestamp="2006-08-30T17:16:12Z"> 276 + <tag k="created_by" v="JOSM" /> 277 + </node> 278 + <node id="14469916" lat="41.5298897" lon="8.8739591" version="1" changeset="98534" timestamp="2006-08-30T17:16:13Z"> 279 + <tag k="created_by" v="JOSM" /> 280 + </node> 281 + <node id="14469917" lat="41.5299328" lon="8.8743110" version="1" changeset="98534" timestamp="2006-08-30T17:16:13Z"> 282 + <tag k="created_by" v="JOSM" /> 283 + </node> 284 + <node id="14469919" lat="41.5300908" lon="8.8746988" version="1" changeset="98534" timestamp="2006-08-30T17:16:13Z"> 285 + <tag k="created_by" v="JOSM" /> 286 + </node> 287 + <node id="14469920" lat="41.5306869" lon="8.8753236" version="1" changeset="98534" timestamp="2006-08-30T17:16:13Z"> 288 + <tag k="created_by" v="JOSM" /> 289 + </node> 290 + <node id="14469921" lat="41.5311968" lon="8.8761783" version="1" changeset="98534" timestamp="2006-08-30T17:16:13Z"> 291 + <tag k="created_by" v="JOSM" /> 292 + </node> 293 + <node id="14469922" lat="41.5314338" lon="8.8764656" version="1" changeset="98534" timestamp="2006-08-30T17:16:13Z"> 294 + <tag k="created_by" v="JOSM" /> 295 + </node> 296 + <node id="14469923" lat="41.5322468" lon="8.8768074" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:05Z"> 297 + <tag k="created_by" v="JOSM" /> 298 + </node> 299 + <node id="14469924" lat="41.5323617" lon="8.8770659" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:06Z"> 300 + <tag k="created_by" v="JOSM" /> 301 + </node> 302 + <node id="14469925" lat="41.5322468" lon="8.8772311" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:06Z"> 303 + <tag k="created_by" v="JOSM" /> 304 + </node> 305 + <node id="14469927" lat="41.5321391" lon="8.8777195" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:05Z"> 306 + <tag k="created_by" v="JOSM" /> 307 + </node> 308 + <node id="14469928" lat="41.5322181" lon="8.8783084" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:06Z"> 309 + <tag k="created_by" v="JOSM" /> 310 + </node> 311 + <node id="14469929" lat="41.5321965" lon="8.8784305" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:07Z"> 312 + <tag k="created_by" v="JOSM" /> 313 + </node> 314 + <node id="14469931" lat="41.5319164" lon="8.8790338" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:06Z"> 315 + <tag k="created_by" v="JOSM" /> 316 + </node> 317 + <node id="14469932" lat="41.5318446" lon="8.8791630" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:07Z"> 318 + <tag k="created_by" v="JOSM" /> 319 + </node> 320 + <node id="14469933" lat="41.5314281" lon="8.8797160" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:07Z"> 321 + <tag k="created_by" v="JOSM" /> 322 + </node> 323 + <node id="14469934" lat="41.5303436" lon="8.8813176" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:07Z"> 324 + <tag k="created_by" v="JOSM" /> 325 + </node> 326 + <node id="14469936" lat="41.5300707" lon="8.8810303" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:08Z"> 327 + <tag k="created_by" v="JOSM" /> 328 + </node> 329 + <node id="14469937" lat="41.5298409" lon="8.8806712" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:08Z"> 330 + <tag k="created_by" v="JOSM" /> 331 + </node> 332 + <node id="14469938" lat="41.5293094" lon="8.8805563" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:08Z"> 333 + <tag k="created_by" v="JOSM" /> 334 + </node> 335 + <node id="14469939" lat="41.5291730" lon="8.8806353" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:07Z"> 336 + <tag k="created_by" v="JOSM" /> 337 + </node> 338 + <node id="14469941" lat="41.5287995" lon="8.8810016" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:09Z"> 339 + <tag k="created_by" v="JOSM" /> 340 + </node> 341 + <node id="14469942" lat="41.5286200" lon="8.8811883" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:08Z"> 342 + <tag k="created_by" v="JOSM" /> 343 + </node> 344 + <node id="14469943" lat="41.5279880" lon="8.8813535" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:08Z"> 345 + <tag k="created_by" v="JOSM" /> 346 + </node> 347 + <node id="14469944" lat="41.5262571" lon="8.8812027" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:09Z"> 348 + <tag k="created_by" v="JOSM" /> 349 + </node> 350 + <node id="14469946" lat="41.5259627" lon="8.8811021" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:09Z"> 351 + <tag k="created_by" v="JOSM" /> 352 + </node> 353 + <node id="14469947" lat="41.5250506" lon="8.8811093" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:09Z"> 354 + <tag k="created_by" v="JOSM" /> 355 + </node> 356 + <node id="14469948" lat="41.5248926" lon="8.8810447" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:10Z"> 357 + <tag k="created_by" v="JOSM" /> 358 + </node> 359 + <node id="14469949" lat="41.5248567" lon="8.8805419" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:10Z"> 360 + <tag k="created_by" v="JOSM" /> 361 + </node> 362 + <node id="14469951" lat="41.5245766" lon="8.8804199" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:10Z"> 363 + <tag k="created_by" v="JOSM" /> 364 + </node> 365 + <node id="14469952" lat="41.5244258" lon="8.8800679" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:12Z"> 366 + <tag k="created_by" v="JOSM" /> 367 + </node> 368 + <node id="14469954" lat="41.5243970" lon="8.8798166" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:12Z"> 369 + <tag k="created_by" v="JOSM" /> 370 + </node> 371 + <node id="14469955" lat="41.5240523" lon="8.8795078" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:13Z"> 372 + <tag k="created_by" v="JOSM" /> 373 + </node> 374 + <node id="14469956" lat="41.5238584" lon="8.8792636" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T17:33:12Z"> 375 + <tag k="created_by" v="JOSM" /> 376 + </node> 377 + <node id="14470088" lat="41.5303119" lon="8.9217200" version="6" changeset="2652635" user="vmeurisse" uid="15489" timestamp="2009-09-27T15:44:43Z"> 378 + <tag k="historic" v="archaeological_site" /> 379 + <tag k="name" v="Alignement d'i Stantari" /> 380 + </node> 381 + <node id="14470092" lat="41.5294908" lon="8.9181414" version="3" changeset="2507036" user="Jens Wilke" uid="85443" timestamp="2009-09-16T22:08:13Z"> 382 + <tag k="historic" v="archaeological_site" /> 383 + <tag k="name" v="Le Dolmen de Funtanaccia" /> 384 + </node> 385 + <node id="14470544" lat="41.6972047" lon="8.8995123" version="1" changeset="515694" user="LHCarsten" uid="6168" timestamp="2007-09-25T16:40:45Z"> 386 + <tag k="created_by" v="JOSM" /> 387 + </node> 388 + <node id="14470545" lat="41.6974700" lon="8.8964578" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T16:10:04Z"> 389 + <tag k="created_by" v="JOSM" /> 390 + </node> 391 + <node id="14470546" lat="41.6945523" lon="8.8959581" version="3" changeset="859959" user="aikon" uid="44329" timestamp="2009-01-31T22:56:52Z"> 392 + <tag k="created_by" v="JOSM" /> 393 + </node> 394 + <node id="14470547" lat="41.6944732" lon="8.8946147" version="4" changeset="859959" user="aikon" uid="44329" timestamp="2009-01-31T22:56:52Z"> 395 + <tag k="created_by" v="JOSM" /> 396 + </node> 397 + <node id="14470548" lat="41.6953134" lon="8.8916514" version="3" changeset="859959" user="aikon" uid="44329" timestamp="2009-01-31T22:56:52Z"> 398 + <tag k="created_by" v="JOSM" /> 399 + </node> 400 + <node id="14470549" lat="41.6965061" lon="8.8908264" version="3" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T16:10:04Z"> 401 + <tag k="created_by" v="JOSM" /> 402 + </node> 403 + <node id="14470550" lat="41.6957064" lon="8.8888961" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T16:10:04Z"> 404 + <tag k="created_by" v="JOSM" /> 405 + </node> 406 + <node id="14470552" lat="41.6966710" lon="8.8878842" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T16:10:05Z"> 407 + <tag k="created_by" v="JOSM" /> 408 + </node> 409 + <node id="14470553" lat="41.6957868" lon="8.8845340" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T16:10:06Z"> 410 + <tag k="created_by" v="JOSM" /> 411 + </node> 412 + <node id="14470554" lat="41.6964160" lon="8.8817687" version="1" changeset="98534" timestamp="2006-08-30T17:28:04Z"> 413 + <tag k="created_by" v="JOSM" /> 414 + </node> 415 + <node id="14470555" lat="41.6994279" lon="8.8807616" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T16:10:06Z"> 416 + <tag k="created_by" v="JOSM" /> 417 + </node> 418 + <node id="14470556" lat="41.6984848" lon="8.8778815" version="4" changeset="859959" user="aikon" uid="44329" timestamp="2009-01-31T22:56:52Z"> 419 + <tag k="created_by" v="JOSM" /> 420 + </node> 421 + <node id="14470557" lat="41.6995489" lon="8.8758231" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T16:10:05Z"> 422 + <tag k="created_by" v="JOSM" /> 423 + </node> 424 + <node id="14470558" lat="41.6974661" lon="8.8729802" version="2" changeset="859959" user="aikon" uid="44329" timestamp="2009-01-31T23:22:02Z"> 425 + <tag k="created_by" v="JOSM" /> 426 + </node> 427 + <node id="14470559" lat="41.6983027" lon="8.8710377" version="2" changeset="818087" user="aikon" uid="44329" timestamp="2009-01-20T16:10:05Z"> 428 + <tag k="created_by" v="JOSM" /> 429 + </node> 430 + <node id="14470560" lat="41.6973775" lon="8.8655217" version="3" changeset="859959" user="aikon" uid="44329" timestamp="2009-01-31T23:22:02Z"> 431 + <tag k="created_by" v="JOSM" /> 432 + </node> 433 + <node id="14470561" lat="41.7007685" lon="8.8577325" version="4" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:30:33Z"/> 434 + <node id="14470562" lat="41.6974893" lon="8.8455455" version="3" changeset="859959" user="aikon" uid="44329" timestamp="2009-01-31T23:21:57Z"> 435 + <tag k="created_by" v="JOSM" /> 436 + </node> 437 + <node id="14470563" lat="41.7001969" lon="8.8383162" version="3" changeset="858786" user="aikon" uid="44329" timestamp="2009-01-31T19:19:28Z"> 438 + <tag k="created_by" v="JOSM" /> 439 + </node> 440 + <node id="14470564" lat="41.7094604" lon="8.8303085" version="1" changeset="98534" timestamp="2006-08-30T17:28:05Z"> 441 + <tag k="created_by" v="JOSM" /> 442 + </node> 443 + <node id="14470565" lat="41.7212301" lon="8.8382569" version="3" changeset="8549691" user="ckol" uid="162465" timestamp="2011-06-26T09:12:32Z"/> 444 + <node id="14470568" lat="41.7389312" lon="8.8513338" version="3" changeset="8549691" user="ckol" uid="162465" timestamp="2011-06-26T09:11:47Z"/> 445 + <node id="14470569" lat="41.7400778" lon="8.8581404" version="3" changeset="8549691" user="ckol" uid="162465" timestamp="2011-06-26T09:12:37Z"/> 446 + <node id="14470570" lat="41.7454962" lon="8.8617719" version="3" changeset="8549691" user="ckol" uid="162465" timestamp="2011-06-26T09:11:34Z"/> 447 + <node id="14470571" lat="41.7449755" lon="8.8691896" version="3" changeset="8549691" user="ckol" uid="162465" timestamp="2011-06-26T09:12:30Z"/> 448 + <node id="14470572" lat="41.7451896" lon="8.8694730" version="2" changeset="6016039" user="Medulove" uid="46751" timestamp="2010-10-11T20:55:23Z"/> 449 + <node id="14470573" lat="41.7452395" lon="8.8699096" version="3" changeset="8549691" user="ckol" uid="162465" timestamp="2011-06-26T09:11:36Z"/> 450 + <node id="14470574" lat="41.7443344" lon="8.8718972" version="3" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:29Z"/> 451 + <node id="14470575" lat="41.7425373" lon="8.8726139" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:26Z"/> 452 + <node id="14470576" lat="41.7462759" lon="8.8856751" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:26Z"/> 453 + <node id="14470577" lat="41.7447385" lon="8.8866996" version="1" changeset="98534" timestamp="2006-08-30T17:28:07Z"> 454 + <tag k="created_by" v="JOSM" /> 455 + </node> 456 + <node id="14470578" lat="41.7418545" lon="8.8850658" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:26Z"/> 457 + <node id="14470579" lat="41.7392781" lon="8.8879146" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:29Z"/> 458 + <node id="14470580" lat="41.7427182" lon="8.8941406" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:26Z"/> 459 + <node id="14470582" lat="41.7399906" lon="8.8958574" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:28Z"/> 460 + <node id="14470583" lat="41.7451716" lon="8.9003291" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:31Z"/> 461 + <node id="14470585" lat="41.7467566" lon="8.9125341" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:43:31Z"/> 462 + <node id="14470586" lat="41.7492592" lon="8.9142283" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:30:43Z"/> 463 + <node id="14470587" lat="41.7508342" lon="8.9121503" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:30:29Z"/> 464 + <node id="14470588" lat="41.7504527" lon="8.9144378" version="2" changeset="8574560" user="ckol" uid="162465" timestamp="2011-06-28T19:30:45Z"/> 465 + <node id="14470589" lat="41.7469493" lon="8.9164399" version="2" changeset="5480928" user="murmel" uid="8710" timestamp="2010-08-13T11:14:55Z"/> 466 + <node id="14470590" lat="41.7484590" lon="8.9168094" version="1" changeset="98534" timestamp="2006-08-30T17:28:08Z"> 467 + <tag k="created_by" v="JOSM" /> 468 + </node> 469 + <node id="14470592" lat="41.7490187" lon="8.9202109" version="2" changeset="5491108" user="murmel" uid="8710" timestamp="2010-08-14T14:12:05Z"/> 470 + <node id="14470593" lat="41.7477515" lon="8.9211338" version="2" changeset="5491108" user="murmel" uid="8710" timestamp="2010-08-14T14:12:05Z"/> 471 + <node id="14470594" lat="41.7465763" lon="8.9282533" version="1" changeset="98534" timestamp="2006-08-30T17:28:08Z"> 472 + <tag k="created_by" v="JOSM" /> 473 + </node> 474 + <node id="14470595" lat="41.7476206" lon="8.9293886" version="1" changeset="98534" timestamp="2006-08-30T17:28:08Z"> 475 + <tag k="created_by" v="JOSM" /> 476 + </node> 477 + <node id="14470596" lat="41.7434495" lon="8.9300610" version="1" changeset="98534" timestamp="2006-08-30T17:28:08Z"> 478 + <tag k="created_by" v="JOSM" /> 479 + </node> 480 + <node id="14470597" lat="41.7449955" lon="8.9310661" version="2" changeset="133964" timestamp="2008-04-13T19:00:38Z"> 481 + <tag k="created_by" v="JOSM" /> 482 + </node> 483 + <node id="14470598" lat="41.7470046" lon="8.9304348" version="1" changeset="515694" user="LHCarsten" uid="6168" timestamp="2007-09-25T16:08:25Z"> 484 + <tag k="created_by" v="JOSM" /> 485 + </node> 486 + <node id="14470599" lat="41.7486301" lon="8.9320675" version="2" changeset="133964" timestamp="2008-04-13T19:00:31Z"> 487 + <tag k="created_by" v="JOSM" /> 488 + </node> 489 + <node id="14470600" lat="41.7481849" lon="8.9336475" version="2" changeset="133964" timestamp="2008-04-13T19:00:36Z"> 490 + <tag k="created_by" v="JOSM" /> 491 + </node> 492 + <node id="14470602" lat="41.7505646" lon="8.9337549" version="2" changeset="133964" timestamp="2008-04-13T19:00:40Z"> 493 + <tag k="created_by" v="JOSM" /> 494 + </node> 495 + <node id="14470603" lat="41.7508973" lon="8.9388215" version="2" changeset="133964" timestamp="2008-04-13T19:00:30Z"> 496 + <tag k="created_by" v="JOSM" /> 497 + </node> 498 + <node id="14470604" lat="41.7541439" lon="8.9385018" version="1" changeset="515694" user="LHCarsten" uid="6168" timestamp="2007-09-25T16:08:31Z"> 499 + <tag k="created_by" v="JOSM" /> 500 + </node> 501 + <node id="14470605" lat="41.7561850" lon="8.9346262" version="1" changeset="515694" user="LHCarsten" uid="6168" timestamp="2007-09-25T16:08:30Z"> 502 + <tag k="created_by" v="JOSM" /> 503 + </node> 504 + <node id="14470606" lat="41.7589845" lon="8.9338361" version="1" changeset="515694" user="LHCarsten" uid="6168" timestamp="2007-09-25T16:08:30Z"> 505 + <tag k="created_by" v="JOSM" /> 506 + </node> 507 + <node id="14470607" lat="41.7619681" lon="8.9381484" version="1" changeset="515694" user="LHCarsten" uid="6168" timestamp="2007-09-25T16:08:29Z"> 508 + <tag k="created_by" v="JOSM" /> 509 + </node> 510 + <node id="14470608" lat="41.7610873" lon="8.9405959" version="1" changeset="515694" user="LHCarsten" uid="6168" timestamp="2007-09-25T16:08:30Z"> 511 + <tag k="created_by" v="JOSM" /> 512 + </node> 513 + <node id="340127254" lat="41.8504956" lon="8.8351217" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:30Z"> 514 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 515 + </node> 516 + <node id="340127257" lat="41.8506432" lon="8.8365657" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:30Z"> 517 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 518 + </node> 519 + <node id="340127260" lat="41.8508284" lon="8.8368740" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:30Z"> 520 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 521 + </node> 522 + <node id="340127262" lat="41.8515473" lon="8.8370740" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:30Z"> 523 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 524 + </node> 525 + <node id="340127264" lat="41.8518753" lon="8.8372522" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:30Z"> 526 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 527 + </node> 528 + <node id="340127266" lat="41.8522250" lon="8.8375230" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:30Z"> 529 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 530 + </node> 531 + <node id="340127268" lat="41.8524027" lon="8.8375375" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:30Z"> 532 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 533 + </node> 534 + <node id="340127269" lat="41.8524729" lon="8.8372553" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 535 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 536 + </node> 537 + <node id="340127271" lat="41.8524314" lon="8.8370340" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 538 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 539 + </node> 540 + <node id="340127273" lat="41.8526218" lon="8.8355918" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 541 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 542 + </node> 543 + <node id="340127275" lat="41.8527127" lon="8.8353261" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 544 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 545 + </node> 546 + <node id="340127277" lat="41.8529700" lon="8.8351787" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 547 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 548 + </node> 549 + <node id="340127279" lat="41.8535267" lon="8.8349027" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 550 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 551 + </node> 552 + <node id="340127281" lat="41.8535911" lon="8.8347211" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 553 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 554 + </node> 555 + <node id="340127282" lat="41.8534524" lon="8.8335493" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 556 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 557 + </node> 558 + <node id="340127284" lat="41.8535753" lon="8.8329106" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 559 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 560 + </node> 561 + <node id="340127286" lat="41.8537520" lon="8.8320893" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 562 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 563 + </node> 564 + <node id="340127288" lat="41.8536350" lon="8.8314840" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 565 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 566 + </node> 567 + <node id="340127290" lat="41.8534377" lon="8.8290617" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 568 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 569 + </node> 570 + <node id="340127291" lat="41.8535682" lon="8.8286698" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 571 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 572 + </node> 573 + <node id="340127293" lat="41.8536984" lon="8.8277135" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 574 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 575 + </node> 576 + <node id="340127295" lat="41.8538205" lon="8.8270892" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 577 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 578 + </node> 579 + <node id="340127298" lat="41.8546453" lon="8.8268549" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 580 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 581 + </node> 582 + <node id="340127299" lat="41.8555801" lon="8.8265883" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 583 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 584 + </node> 585 + <node id="340127301" lat="41.8560837" lon="8.8261042" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 586 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 587 + </node> 588 + <node id="340127303" lat="41.8562854" lon="8.8242723" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 589 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 590 + </node> 591 + <node id="340127305" lat="41.8564049" lon="8.8235030" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:31Z"> 592 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 593 + </node> 594 + <node id="340127306" lat="41.8576034" lon="8.8227857" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:32Z"> 595 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 596 + </node> 597 + <node id="340127308" lat="41.8578466" lon="8.8226947" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:32Z"> 598 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 599 + </node> 600 + <node id="340127310" lat="41.8584180" lon="8.8221595" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:32Z"> 601 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 602 + </node> 603 + <node id="340127313" lat="41.8586488" lon="8.8220962" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 604 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 605 + </node> 606 + <node id="340127314" lat="41.8587128" lon="8.8211620" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 607 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 608 + </node> 609 + <node id="340127316" lat="41.8581240" lon="8.8189602" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 610 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 611 + </node> 612 + <node id="340127318" lat="41.8580730" lon="8.8181446" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 613 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 614 + </node> 615 + <node id="340127319" lat="41.8576247" lon="8.8157545" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 616 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 617 + </node> 618 + <node id="340127321" lat="41.8570501" lon="8.8138726" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 619 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 620 + </node> 621 + <node id="340127323" lat="41.8572997" lon="8.8134783" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 622 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 623 + </node> 624 + <node id="340127324" lat="41.8575720" lon="8.8124929" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 625 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 626 + </node> 627 + <node id="340127326" lat="41.8579809" lon="8.8113912" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 628 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 629 + </node> 630 + <node id="340127328" lat="41.8581850" lon="8.8110357" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 631 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 632 + </node> 633 + <node id="340127330" lat="41.8580042" lon="8.8104095" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 634 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 635 + </node> 636 + <node id="340127333" lat="41.8577890" lon="8.8103876" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 637 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 638 + </node> 639 + <node id="340127335" lat="41.8575889" lon="8.8104831" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 640 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 641 + </node> 642 + <node id="340127337" lat="41.8572852" lon="8.8104956" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 643 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 644 + </node> 645 + <node id="340127338" lat="41.8569906" lon="8.8103499" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 646 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 647 + </node> 648 + <node id="340127340" lat="41.8568993" lon="8.8100512" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 649 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 650 + </node> 651 + <node id="340127342" lat="41.8569107" lon="8.8096616" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 652 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 653 + </node> 654 + <node id="340127344" lat="41.8567968" lon="8.8089988" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 655 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 656 + </node> 657 + <node id="340127346" lat="41.8565517" lon="8.8087423" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:33Z"> 658 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 659 + </node> 660 + <node id="340127347" lat="41.8563373" lon="8.8085179" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 661 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 662 + </node> 663 + <node id="340127349" lat="41.8560897" lon="8.8083047" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 664 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 665 + </node> 666 + <node id="340127351" lat="41.8558756" lon="8.8073133" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 667 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 668 + </node> 669 + <node id="340127353" lat="41.8557646" lon="8.8071718" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 670 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 671 + </node> 672 + <node id="340127355" lat="41.8554898" lon="8.8070571" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 673 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 674 + </node> 675 + <node id="340127357" lat="41.8552802" lon="8.8067463" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 676 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 677 + </node> 678 + <node id="340127359" lat="41.8552503" lon="8.8065118" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 679 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 680 + </node> 681 + <node id="340127361" lat="41.8550169" lon="8.8064302" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 682 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 683 + </node> 684 + <node id="340127363" lat="41.8548952" lon="8.8062876" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 685 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 686 + </node> 687 + <node id="340127365" lat="41.8544192" lon="8.8049513" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 688 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 689 + </node> 690 + <node id="340127367" lat="41.8543454" lon="8.8047267" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 691 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 692 + </node> 693 + <node id="340127369" lat="41.8544040" lon="8.8044577" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 694 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 695 + </node> 696 + <node id="340127371" lat="41.8541596" lon="8.8039988" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 697 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 698 + </node> 699 + <node id="340127373" lat="41.8539535" lon="8.8040068" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 700 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 701 + </node> 702 + <node id="340127375" lat="41.8536699" lon="8.8042385" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 703 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 704 + </node> 705 + <node id="340127376" lat="41.8533785" lon="8.8040352" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 706 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 707 + </node> 708 + <node id="340127378" lat="41.8524734" lon="8.8030172" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 709 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 710 + </node> 711 + <node id="340127381" lat="41.8525093" lon="8.8023842" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 712 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 713 + </node> 714 + <node id="340127383" lat="41.8525412" lon="8.8018230" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:34Z"> 715 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 716 + </node> 717 + <node id="340127385" lat="41.8524348" lon="8.8012189" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 718 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 719 + </node> 720 + <node id="340127387" lat="41.8522415" lon="8.8006205" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 721 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 722 + </node> 723 + <node id="340127389" lat="41.8522867" lon="8.8002054" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 724 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 725 + </node> 726 + <node id="340127391" lat="41.8523527" lon="8.7999951" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 727 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 728 + </node> 729 + <node id="340127394" lat="41.8527933" lon="8.7994754" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 730 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 731 + </node> 732 + <node id="340127396" lat="41.8524819" lon="8.7990531" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 733 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 734 + </node> 735 + <node id="340127400" lat="41.8523110" lon="8.7984425" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 736 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 737 + </node> 738 + <node id="340127402" lat="41.8522471" lon="8.7982334" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 739 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 740 + </node> 741 + <node id="340127405" lat="41.8523172" lon="8.7979511" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 742 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 743 + </node> 744 + <node id="340127409" lat="41.8524013" lon="8.7976124" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 745 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 746 + </node> 747 + <node id="340127416" lat="41.8526815" lon="8.7972501" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 748 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 749 + </node> 750 + <node id="340127418" lat="41.8526871" lon="8.7969612" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 751 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 752 + </node> 753 + <node id="340127421" lat="41.8524550" lon="8.7964746" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 754 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 755 + </node> 756 + <node id="340127424" lat="41.8523763" lon="8.7963364" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 757 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 758 + </node> 759 + <node id="340127426" lat="41.8524638" lon="8.7961282" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 760 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 761 + </node> 762 + <node id="340127429" lat="41.8525487" lon="8.7957751" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 763 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 764 + </node> 765 + <node id="340127432" lat="41.8524518" lon="8.7955771" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 766 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 767 + </node> 768 + <node id="340127435" lat="41.8522655" lon="8.7954280" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 769 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 770 + </node> 771 + <node id="340127438" lat="41.8521758" lon="8.7951006" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 772 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 773 + </node> 774 + <node id="340127441" lat="41.8521408" lon="8.7947642" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 775 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 776 + </node> 777 + <node id="340127443" lat="41.8522316" lon="8.7944985" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:35Z"> 778 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 779 + </node> 780 + <node id="340127447" lat="41.8521379" lon="8.7942430" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 781 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 782 + </node> 783 + <node id="340127452" lat="41.8520020" lon="8.7939687" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 784 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 785 + </node> 786 + <node id="340127456" lat="41.8517458" lon="8.7933350" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 787 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 788 + </node> 789 + <node id="340127461" lat="41.8513988" lon="8.7929670" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 790 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 791 + </node> 792 + <node id="340127464" lat="41.8514421" lon="8.7923926" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 793 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 794 + </node> 795 + <node id="340127470" lat="41.8516283" lon="8.7923536" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 796 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 797 + </node> 798 + <node id="340127474" lat="41.8520209" lon="8.7919158" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 799 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 800 + </node> 801 + <node id="340127479" lat="41.8522475" lon="8.7917362" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 802 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 803 + </node> 804 + <node id="340127481" lat="41.8524476" lon="8.7916407" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 805 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 806 + </node> 807 + <node id="340127484" lat="41.8524796" lon="8.7912677" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 808 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 809 + </node> 810 + <node id="340127487" lat="41.8523363" lon="8.7911230" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 811 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 812 + </node> 813 + <node id="340127489" lat="41.8521252" lon="8.7910292" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 814 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 815 + </node> 816 + <node id="340127491" lat="41.8519208" lon="8.7910085" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 817 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 818 + </node> 819 + <node id="340127494" lat="41.8518273" lon="8.7909412" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 820 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 821 + </node> 822 + <node id="340127497" lat="41.8518393" lon="8.7905372" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 823 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 824 + </node> 825 + <node id="340127500" lat="41.8519326" lon="8.7892733" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 826 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 827 + </node> 828 + <node id="340127502" lat="41.8519935" lon="8.7889611" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 829 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 830 + </node> 831 + <node id="340132803" lat="41.8507531" lon="8.7916745" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 832 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 833 + </node> 834 + <node id="340132819" lat="41.8508186" lon="8.7932983" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:36Z"> 835 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 836 + </node> 837 + <node id="340132821" lat="41.8510592" lon="8.7941186" version="3" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 838 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 839 + </node> 840 + <node id="340132823" lat="41.8514263" lon="8.7952553" version="3" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 841 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 842 + </node> 843 + <node id="340132837" lat="41.8515199" lon="8.7959233" version="3" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 844 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 845 + </node> 846 + <node id="340132839" lat="41.8517460" lon="8.7963976" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 847 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 848 + </node> 849 + <node id="340132842" lat="41.8526620" lon="8.8057811" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 850 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 851 + </node> 852 + <node id="340132846" lat="41.8525838" lon="8.8060970" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 853 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 854 + </node> 855 + <node id="340132851" lat="41.8353888" lon="8.8459949" version="5" changeset="5289842" user="Ziaou" uid="134812" timestamp="2010-07-22T18:27:25Z"> 856 + <tag k="is_in" v="Europe,France,Corse" /> 857 + <tag k="name" v="Pietrosella" /> 858 + <tag k="place" v="village" /> 859 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 860 + </node> 861 + <node id="340132854" lat="41.9040282" lon="8.8027663" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 862 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 863 + </node> 864 + <node id="340132857" lat="41.9039852" lon="8.8035250" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 865 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 866 + </node> 867 + <node id="340132859" lat="41.9038251" lon="8.8042317" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 868 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 869 + </node> 870 + <node id="340132861" lat="41.9035800" lon="8.8048495" version="3" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 871 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 872 + </node> 873 + <node id="340132866" lat="41.9039615" lon="8.8055309" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 874 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 875 + </node> 876 + <node id="340132869" lat="41.9048614" lon="8.8060641" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 877 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 878 + </node> 879 + <node id="340132872" lat="41.9049282" lon="8.8064726" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 880 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 881 + </node> 882 + <node id="340132875" lat="41.9045041" lon="8.8070721" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 883 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 884 + </node> 885 + <node id="340132879" lat="41.9039698" lon="8.8074998" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 886 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 887 + </node> 888 + <node id="340132882" lat="41.9039381" lon="8.8080588" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 889 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 890 + </node> 891 + <node id="340132885" lat="41.9041640" lon="8.8088656" version="3" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:37Z"> 892 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 893 + </node> 894 + <node id="340132888" lat="41.9047716" lon="8.8094209" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 895 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 896 + </node> 897 + <node id="340132892" lat="41.9058493" lon="8.8103531" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 898 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 899 + </node> 900 + <node id="340132895" lat="41.9069044" lon="8.8110362" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 901 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 902 + </node> 903 + <node id="340132897" lat="41.9075702" lon="8.8116469" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 904 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 905 + </node> 906 + <node id="340132900" lat="41.9080876" lon="8.8122754" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 907 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 908 + </node> 909 + <node id="340132903" lat="41.9087502" lon="8.8135932" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 910 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 911 + </node> 912 + <node id="340132907" lat="41.9089696" lon="8.8142736" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 913 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 914 + </node> 915 + <node id="340132910" lat="41.9090498" lon="8.8148083" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 916 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 917 + </node> 918 + <node id="340132915" lat="41.9089421" lon="8.8154061" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 919 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 920 + </node> 921 + <node id="340132918" lat="41.9086275" lon="8.8157525" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 922 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 923 + </node> 924 + <node id="340132922" lat="41.9082029" lon="8.8160877" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 925 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 926 + </node> 927 + <node id="340132929" lat="41.9079823" lon="8.8165094" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 928 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 929 + </node> 930 + <node id="340132933" lat="41.9077881" lon="8.8171148" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 931 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 932 + </node> 933 + <node id="340132939" lat="41.9076107" lon="8.8174258" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 934 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 935 + </node> 936 + <node id="340132943" lat="41.9073309" lon="8.8180531" version="3" changeset="5727171" user="Pieren" uid="17286" timestamp="2010-09-08T19:32:35Z"> 937 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 938 + </node> 939 + <node id="340132950" lat="41.9072377" lon="8.8188102" version="3" changeset="5727171" user="Pieren" uid="17286" timestamp="2010-09-08T19:32:32Z"> 940 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 941 + </node> 942 + <node id="340132955" lat="41.9073979" lon="8.8198720" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 943 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 944 + </node> 945 + <node id="340132959" lat="41.9076434" lon="8.8200945" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 946 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 947 + </node> 948 + <node id="340132964" lat="41.9083059" lon="8.8198987" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:38Z"> 949 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 950 + </node> 951 + <node id="340132967" lat="41.9084326" lon="8.8196155" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 952 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 953 + </node> 954 + <node id="340132968" lat="41.9085084" lon="8.8191461" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 955 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 956 + </node> 957 + <node id="340132972" lat="41.9087649" lon="8.8189583" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 958 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 959 + </node> 960 + <node id="340132974" lat="41.9090996" lon="8.8191240" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 961 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 962 + </node> 963 + <node id="340132975" lat="41.9097090" lon="8.8196468" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 964 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 965 + </node> 966 + <node id="340132979" lat="41.9100522" lon="8.8198792" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 967 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 968 + </node> 969 + <node id="340132986" lat="41.9102385" lon="8.8202766" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 970 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 971 + </node> 972 + <node id="340132991" lat="41.9104080" lon="8.8207545" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 973 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 974 + </node> 975 + <node id="340132996" lat="41.9102945" lon="8.8212366" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 976 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 977 + </node> 978 + <node id="340132998" lat="41.9101334" lon="8.8221251" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 979 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 980 + </node> 981 + <node id="340133001" lat="41.9103366" lon="8.8224419" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 982 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 983 + </node> 984 + <node id="340133005" lat="41.9107639" lon="8.8233575" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 985 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 986 + </node> 987 + <node id="340133008" lat="41.9115115" lon="8.8240425" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 988 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 989 + </node> 990 + <node id="340133011" lat="41.9116856" lon="8.8244387" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 991 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 992 + </node> 993 + <node id="340133014" lat="41.9120813" lon="8.8261244" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 994 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 995 + </node> 996 + <node id="340133017" lat="41.9125104" lon="8.8270073" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 997 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 998 + </node> 999 + <node id="340133019" lat="41.9126848" lon="8.8280452" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 1000 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1001 + </node> 1002 + <node id="340133022" lat="41.9129178" lon="8.8295663" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 1003 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1004 + </node> 1005 + <node id="340133027" lat="41.9140784" lon="8.8311985" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 1006 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1007 + </node> 1008 + <node id="340133030" lat="41.9143870" lon="8.8318224" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:39Z"> 1009 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1010 + </node> 1011 + <node id="340133035" lat="41.9144345" lon="8.8327158" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1012 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1013 + </node> 1014 + <node id="340133037" lat="41.9143708" lon="8.8331864" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1015 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1016 + </node> 1017 + <node id="340133040" lat="41.9132961" lon="8.8304770" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1018 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1019 + </node> 1020 + <node id="340133044" lat="41.9141812" lon="8.8337101" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1021 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1022 + </node> 1023 + <node id="340133046" lat="41.9135896" lon="8.8348179" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1024 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1025 + </node> 1026 + <node id="340133050" lat="41.9129856" lon="8.8354967" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1027 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1028 + </node> 1029 + <node id="340133052" lat="41.9124304" lon="8.8359665" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1030 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1031 + </node> 1032 + <node id="340133053" lat="41.9120067" lon="8.8364991" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1033 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1034 + </node> 1035 + <node id="340133056" lat="41.9116678" lon="8.8372708" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1036 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1037 + </node> 1038 + <node id="340133059" lat="41.9116268" lon="8.8379905" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1039 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1040 + </node> 1041 + <node id="340133066" lat="41.9118873" lon="8.8383791" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1042 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1043 + </node> 1044 + <node id="340133070" lat="41.9122154" lon="8.8386595" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:40Z"> 1045 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1046 + </node> 1047 + <node id="340133074" lat="41.9125351" lon="8.8388731" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1048 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1049 + </node> 1050 + <node id="340133076" lat="41.9129816" lon="8.8390175" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1051 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1052 + </node> 1053 + <node id="340133079" lat="41.9134366" lon="8.8392285" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1054 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1055 + </node> 1056 + <node id="340133081" lat="41.9138466" lon="8.8397969" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1057 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1058 + </node> 1059 + <node id="340133083" lat="41.9142333" lon="8.8405605" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1060 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1061 + </node> 1062 + <node id="340133085" lat="41.9145513" lon="8.8414486" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1063 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1064 + </node> 1065 + <node id="340133087" lat="41.9149698" lon="8.8420838" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1066 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1067 + </node> 1068 + <node id="340133090" lat="41.9153102" lon="8.8423654" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1069 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1070 + </node> 1071 + <node id="340133092" lat="41.9157247" lon="8.8424242" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1072 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1073 + </node> 1074 + <node id="340133094" lat="41.9165029" lon="8.8423557" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:41Z"> 1075 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1076 + </node> 1077 + <node id="340133096" lat="41.9169053" lon="8.8426272" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1078 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1079 + </node> 1080 + <node id="340133098" lat="41.9170436" lon="8.8430033" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1081 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1082 + </node> 1083 + <node id="340133101" lat="41.9171955" lon="8.8444340" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1084 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1085 + </node> 1086 + <node id="340133103" lat="41.9174564" lon="8.8456883" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1087 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1088 + </node> 1089 + <node id="340133106" lat="41.9176828" lon="8.8466327" version="3" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1090 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1091 + </node> 1092 + <node id="340133109" lat="41.9180847" lon="8.8476293" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1093 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1094 + </node> 1095 + <node id="340133111" lat="41.9186113" lon="8.8486727" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1096 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1097 + </node> 1098 + <node id="340133113" lat="41.9193015" lon="8.8495282" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1099 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1100 + </node> 1101 + <node id="340133115" lat="41.9197916" lon="8.8502459" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1102 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1103 + </node> 1104 + <node id="340133118" lat="41.9198671" lon="8.8507804" version="2" changeset="3141372" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:16:42Z"> 1105 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1106 + </node> 1107 + <node id="340133120" lat="41.9201540" lon="8.8520041" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1108 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1109 + </node> 1110 + <node id="340133122" lat="41.9203277" lon="8.8525337" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1111 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1112 + </node> 1113 + <node id="340133124" lat="41.9204157" lon="8.8536688" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1114 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1115 + </node> 1116 + <node id="340133126" lat="41.9205506" lon="8.8548770" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1117 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1118 + </node> 1119 + <node id="340133129" lat="41.9206814" lon="8.8557094" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1120 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1121 + </node> 1122 + <node id="340133131" lat="41.9209427" lon="8.8560433" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1123 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1124 + </node> 1125 + <node id="340133134" lat="41.9215488" lon="8.8561395" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1126 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1127 + </node> 1128 + <node id="340133136" lat="41.9219036" lon="8.8561758" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1129 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1130 + </node> 1131 + <node id="340133139" lat="41.9223870" lon="8.8566349" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:17Z"> 1132 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1133 + </node> 1134 + <node id="340133141" lat="41.9234127" lon="8.8583097" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1135 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1136 + </node> 1137 + <node id="340133144" lat="41.9236681" lon="8.8587454" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1138 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1139 + </node> 1140 + <node id="340133147" lat="41.9240404" lon="8.8589201" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1141 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1142 + </node> 1143 + <node id="340133149" lat="41.9240854" lon="8.8594707" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1144 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1145 + </node> 1146 + <node id="340133152" lat="41.9237679" lon="8.8601207" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1147 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1148 + </node> 1149 + <node id="340133154" lat="41.9238850" lon="8.8607470" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1150 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1151 + </node> 1152 + <node id="340133156" lat="41.9242183" lon="8.8611565" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1153 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1154 + </node> 1155 + <node id="340133158" lat="41.9250995" lon="8.8622366" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1156 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1157 + </node> 1158 + <node id="340133161" lat="41.9263370" lon="8.8639934" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1159 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1160 + </node> 1161 + <node id="340133163" lat="41.9257293" lon="8.8628364" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1162 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1163 + </node> 1164 + <node id="340133165" lat="41.9267416" lon="8.8647083" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1165 + <tag k="created_by" v="JOSM" /> 1166 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1167 + </node> 1168 + <node id="340133167" lat="41.9265885" lon="8.8637060" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1169 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1170 + </node> 1171 + <node id="340133169" lat="41.9268928" lon="8.8634041" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1172 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1173 + </node> 1174 + <node id="340133171" lat="41.9270207" lon="8.8631738" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1175 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1176 + </node> 1177 + <node id="340133173" lat="41.9272087" lon="8.8628985" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:18Z"> 1178 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1179 + </node> 1180 + <node id="340133175" lat="41.9276079" lon="8.8627625" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1181 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1182 + </node> 1183 + <node id="340133177" lat="41.9279508" lon="8.8626648" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1184 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1185 + </node> 1186 + <node id="340133180" lat="41.9282284" lon="8.8626667" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1187 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1188 + </node> 1189 + <node id="340133182" lat="41.9285000" lon="8.8624289" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1190 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1191 + </node> 1192 + <node id="340133184" lat="41.9287471" lon="8.8619229" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1193 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1194 + </node> 1195 + <node id="340133186" lat="41.9293722" lon="8.8617479" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1196 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1197 + </node> 1198 + <node id="340133188" lat="41.9295845" lon="8.8615040" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1199 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1200 + </node> 1201 + <node id="340133190" lat="41.9296026" lon="8.8611870" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1202 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1203 + </node> 1204 + <node id="340133192" lat="41.9298104" lon="8.8610224" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1205 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1206 + </node> 1207 + <node id="340133194" lat="41.9300987" lon="8.8608394" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1208 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1209 + </node> 1210 + <node id="340133196" lat="41.9305870" lon="8.8602784" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1211 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1212 + </node> 1213 + <node id="340133198" lat="41.9309602" lon="8.8599978" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1214 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1215 + </node> 1216 + <node id="340133200" lat="41.9313242" lon="8.8595304" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1217 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1218 + </node> 1219 + <node id="340133202" lat="41.9315840" lon="8.8595113" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1220 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1221 + </node> 1222 + <node id="340133204" lat="41.9318985" lon="8.8591185" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1223 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1224 + </node> 1225 + <node id="340133206" lat="41.9325849" lon="8.8588828" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1226 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1227 + </node> 1228 + <node id="340133208" lat="41.9333022" lon="8.8578850" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1229 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1230 + </node> 1231 + <node id="340133211" lat="41.9335624" lon="8.8577757" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1232 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1233 + </node> 1234 + <node id="340133213" lat="41.9337575" lon="8.8576936" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:19Z"> 1235 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1236 + </node> 1237 + <node id="340133215" lat="41.9345477" lon="8.8569754" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1238 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1239 + </node> 1240 + <node id="340133217" lat="41.9354563" lon="8.8561843" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1241 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1242 + </node> 1243 + <node id="340133219" lat="41.9358174" lon="8.8558642" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1244 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1245 + </node> 1246 + <node id="340133221" lat="41.9358756" lon="8.8555130" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1247 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1248 + </node> 1249 + <node id="340133223" lat="41.9361153" lon="8.8553165" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1250 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1251 + </node> 1252 + <node id="340133225" lat="41.9364289" lon="8.8551616" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1253 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1254 + </node> 1255 + <node id="340133227" lat="41.9366677" lon="8.8549820" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1256 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1257 + </node> 1258 + <node id="340133229" lat="41.9371046" lon="8.8548908" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1259 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1260 + </node> 1261 + <node id="340133231" lat="41.9373144" lon="8.8549973" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1262 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1263 + </node> 1264 + <node id="340133234" lat="41.9375989" lon="8.8549074" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1265 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1266 + </node> 1267 + <node id="340133238" lat="41.9384308" lon="8.8541253" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1268 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1269 + </node> 1270 + <node id="340133240" lat="41.9390366" lon="8.8537453" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1271 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1272 + </node> 1273 + <node id="340133242" lat="41.9397861" lon="8.8535159" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1274 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1275 + </node> 1276 + <node id="340133244" lat="41.9404367" lon="8.8536846" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1277 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1278 + </node> 1279 + <node id="340133247" lat="41.9410970" lon="8.8536843" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1280 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1281 + </node> 1282 + <node id="340133250" lat="41.9416427" lon="8.8536892" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:20Z"> 1283 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1284 + </node> 1285 + <node id="340133253" lat="41.9422417" lon="8.8536485" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1286 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1287 + </node> 1288 + <node id="340133255" lat="41.9428418" lon="8.8535909" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1289 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1290 + </node> 1291 + <node id="340133256" lat="41.9436420" lon="8.8538090" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1292 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1293 + </node> 1294 + <node id="340133257" lat="41.9444729" lon="8.8563772" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1295 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1296 + </node> 1297 + <node id="340133258" lat="41.9452205" lon="8.8595152" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1298 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1299 + </node> 1300 + <node id="340133259" lat="41.9458174" lon="8.8621786" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1301 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1302 + </node> 1303 + <node id="340133260" lat="41.9461504" lon="8.8644374" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1304 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1305 + </node> 1306 + <node id="340133261" lat="41.9467855" lon="8.8650536" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1307 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1308 + </node> 1309 + <node id="340133262" lat="41.9476735" lon="8.8655122" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1310 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1311 + </node> 1312 + <node id="340133263" lat="41.9479275" lon="8.8655995" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1313 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1314 + </node> 1315 + <node id="340133264" lat="41.9487818" lon="8.8663811" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1316 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1317 + </node> 1318 + <node id="340133265" lat="41.9489591" lon="8.8675423" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1319 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1320 + </node> 1321 + <node id="340133266" lat="41.9491503" lon="8.8679293" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1322 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1323 + </node> 1324 + <node id="340133267" lat="41.9498345" lon="8.8692855" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1325 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1326 + </node> 1327 + <node id="340133268" lat="41.9501223" lon="8.8695804" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1328 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1329 + </node> 1330 + <node id="340133269" lat="41.9505232" lon="8.8697644" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1331 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1332 + </node> 1333 + <node id="340133270" lat="41.9507539" lon="8.8699922" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1334 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1335 + </node> 1336 + <node id="340133271" lat="41.9513086" lon="8.8701513" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:21Z"> 1337 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1338 + </node> 1339 + <node id="340133272" lat="41.9516267" lon="8.8701840" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1340 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1341 + </node> 1342 + <node id="340133273" lat="41.9524727" lon="8.8708424" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1343 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1344 + </node> 1345 + <node id="340133274" lat="41.9532943" lon="8.8716616" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1346 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1347 + </node> 1348 + <node id="340133275" lat="41.9536497" lon="8.8718411" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1349 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1350 + </node> 1351 + <node id="340133276" lat="41.9538585" lon="8.8718504" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1352 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1353 + </node> 1354 + <node id="340133277" lat="41.9545520" lon="8.8697750" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1355 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1356 + </node> 1357 + <node id="340133278" lat="41.9554534" lon="8.8669039" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1358 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1359 + </node> 1360 + <node id="340133279" lat="41.9557670" lon="8.8661964" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1361 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1362 + </node> 1363 + <node id="340133280" lat="41.9560580" lon="8.8649033" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1364 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1365 + </node> 1366 + <node id="340133281" lat="41.9561640" lon="8.8640715" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1367 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1368 + </node> 1369 + <node id="340133282" lat="41.9564557" lon="8.8635652" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1370 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1371 + </node> 1372 + <node id="340133284" lat="41.9569146" lon="8.8630526" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1373 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1374 + </node> 1375 + <node id="340133286" lat="41.9571959" lon="8.8628563" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1376 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1377 + </node> 1378 + <node id="340133289" lat="41.9574279" lon="8.8585042" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1379 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1380 + </node> 1381 + <node id="340133291" lat="41.9576346" lon="8.8549262" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:22Z"> 1382 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1383 + </node> 1384 + <node id="340133293" lat="41.9576406" lon="8.8545121" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1385 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1386 + </node> 1387 + <node id="340133295" lat="41.9573832" lon="8.8536535" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1388 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1389 + </node> 1390 + <node id="340133297" lat="41.9571697" lon="8.8526471" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1391 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1392 + </node> 1393 + <node id="340133300" lat="41.9571739" lon="8.8519921" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1394 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1395 + </node> 1396 + <node id="340133303" lat="41.9570487" lon="8.8512702" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1397 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1398 + </node> 1399 + <node id="340133305" lat="41.9571339" lon="8.8509136" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1400 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1401 + </node> 1402 + <node id="340133309" lat="41.9570733" lon="8.8504666" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1403 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1404 + </node> 1405 + <node id="340133311" lat="41.9571319" lon="8.8501557" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1406 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1407 + </node> 1408 + <node id="340133313" lat="41.9571393" lon="8.8492666" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1409 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1410 + </node> 1411 + <node id="340133315" lat="41.9573991" lon="8.8486289" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1412 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1413 + </node> 1414 + <node id="340133317" lat="41.9574928" lon="8.8478912" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1415 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1416 + </node> 1417 + <node id="340133319" lat="41.9577954" lon="8.8470927" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1418 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1419 + </node> 1420 + <node id="340133321" lat="41.9577109" lon="8.8462917" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1421 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1422 + </node> 1423 + <node id="340133323" lat="41.9580094" lon="8.8459187" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1424 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1425 + </node> 1426 + <node id="340133325" lat="41.9581278" lon="8.8453849" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1427 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1428 + </node> 1429 + <node id="340133327" lat="41.9582473" lon="8.8447313" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1430 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1431 + </node> 1432 + <node id="340133329" lat="41.9581409" lon="8.8442675" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:23Z"> 1433 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1434 + </node> 1435 + <node id="340133332" lat="41.9583501" lon="8.8424633" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1436 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1437 + </node> 1438 + <node id="340133334" lat="41.9584230" lon="8.8421607" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1439 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1440 + </node> 1441 + <node id="340133336" lat="41.9585277" lon="8.8416611" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1442 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1443 + </node> 1444 + <node id="340133338" lat="41.9580705" lon="8.8405937" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1445 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1446 + </node> 1447 + <node id="340133340" lat="41.9580922" lon="8.8401017" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1448 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1449 + </node> 1450 + <node id="340133343" lat="41.9581601" lon="8.8395375" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1451 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1452 + </node> 1453 + <node id="340133345" lat="41.9582316" lon="8.8382314" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1454 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1455 + </node> 1456 + <node id="340133347" lat="41.9582317" lon="8.8378685" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1457 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1458 + </node> 1459 + <node id="340133351" lat="41.9577801" lon="8.8370126" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1460 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1461 + </node> 1462 + <node id="340133353" lat="41.9577633" lon="8.8359273" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1463 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1464 + </node> 1465 + <node id="340133355" lat="41.9576442" lon="8.8352437" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1466 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1467 + </node> 1468 + <node id="340133358" lat="41.9577615" lon="8.8348255" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1469 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1470 + </node> 1471 + <node id="340133360" lat="41.9578281" lon="8.8344445" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1472 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1473 + </node> 1474 + <node id="340133362" lat="41.9579895" lon="8.8343278" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1475 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1476 + </node> 1477 + <node id="340133364" lat="41.9581083" lon="8.8340450" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1478 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1479 + </node> 1480 + <node id="340133367" lat="41.9583474" lon="8.8337959" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1481 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1482 + </node> 1483 + <node id="340133369" lat="41.9587552" lon="8.8330695" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:24Z"> 1484 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1485 + </node> 1486 + <node id="340133371" lat="41.9589914" lon="8.8328438" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1487 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1488 + </node> 1489 + <node id="340133373" lat="41.9593336" lon="8.8328257" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1490 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1491 + </node> 1492 + <node id="340133375" lat="41.9594389" lon="8.8323196" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1493 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1494 + </node> 1495 + <node id="340133378" lat="41.9597179" lon="8.8318268" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1496 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1497 + </node> 1498 + <node id="340133386" lat="41.9597115" lon="8.8313129" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1499 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1500 + </node> 1501 + <node id="340133395" lat="41.9599458" lon="8.8308802" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1502 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1503 + </node> 1504 + <node id="340133401" lat="41.9600028" lon="8.8305777" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1505 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1506 + </node> 1507 + <node id="340133406" lat="41.9601408" lon="8.8303007" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1508 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1509 + </node> 1510 + <node id="340133411" lat="41.9605511" lon="8.8293618" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1511 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1512 + </node> 1513 + <node id="340133417" lat="41.9609257" lon="8.8285127" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1514 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1515 + </node> 1516 + <node id="340133421" lat="41.9613661" lon="8.8282788" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1517 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1518 + </node> 1519 + <node id="340133425" lat="41.9618007" lon="8.8280104" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1520 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1521 + </node> 1522 + <node id="340133429" lat="41.9617903" lon="8.8276672" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1523 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1524 + </node> 1525 + <node id="340133433" lat="41.9616791" lon="8.8271548" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1526 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1527 + </node> 1528 + <node id="340133436" lat="41.9614608" lon="8.8264565" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1529 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1530 + </node> 1531 + <node id="340133441" lat="41.9608789" lon="8.8252963" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:25Z"> 1532 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1533 + </node> 1534 + <node id="340133445" lat="41.9604226" lon="8.8245383" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1535 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1536 + </node> 1537 + <node id="340133451" lat="41.9602495" lon="8.8239507" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1538 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1539 + </node> 1540 + <node id="340133460" lat="41.9593767" lon="8.8224575" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1541 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1542 + </node> 1543 + <node id="340133465" lat="41.9589140" lon="8.8222879" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1544 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1545 + </node> 1546 + <node id="340133476" lat="41.9576487" lon="8.8220476" version="4" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1547 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1548 + </node> 1549 + <node id="340133479" lat="41.9569267" lon="8.8219194" version="4" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1550 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1551 + </node> 1552 + <node id="340133484" lat="41.9561906" lon="8.8216835" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1553 + <tag k="created_by" v="JOSM" /> 1554 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1555 + </node> 1556 + <node id="340133489" lat="41.9556216" lon="8.8209723" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1557 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1558 + </node> 1559 + <node id="340133493" lat="41.9556295" lon="8.8205649" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1560 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1561 + </node> 1562 + <node id="340133497" lat="41.9556687" lon="8.8198749" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1563 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1564 + </node> 1565 + <node id="340133501" lat="41.9555144" lon="8.8191039" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1566 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1567 + </node> 1568 + <node id="340133506" lat="41.9553779" lon="8.8188247" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1569 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1570 + </node> 1571 + <node id="340133511" lat="41.9547787" lon="8.8183758" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1572 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1573 + </node> 1574 + <node id="340133516" lat="41.9537332" lon="8.8177385" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1575 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1576 + </node> 1577 + <node id="340133520" lat="41.9529771" lon="8.8179064" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1578 + <tag k="created_by" v="JOSM" /> 1579 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1580 + </node> 1581 + <node id="340133524" lat="41.9515352" lon="8.8173498" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:26Z"> 1582 + <tag k="created_by" v="JOSM" /> 1583 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1584 + </node> 1585 + <node id="340133529" lat="41.9050387" lon="8.8028424" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1586 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1587 + </node> 1588 + <node id="340133532" lat="41.9055716" lon="8.8028417" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1589 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1590 + </node> 1591 + <node id="340133537" lat="41.9060404" lon="8.8030525" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1592 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1593 + </node> 1594 + <node id="340133541" lat="41.9066342" lon="8.8030627" version="3" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1595 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1596 + </node> 1597 + <node id="340138309" lat="41.8225976" lon="8.8609737" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1598 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1599 + </node> 1600 + <node id="340138310" lat="41.8230729" lon="8.8613056" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1601 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1602 + </node> 1603 + <node id="340138312" lat="41.8236492" lon="8.8619311" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1604 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1605 + </node> 1606 + <node id="340138319" lat="41.8239967" lon="8.8624388" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1607 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1608 + </node> 1609 + <node id="340138320" lat="41.8243839" lon="8.8630764" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1610 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1611 + </node> 1612 + <node id="340138321" lat="41.8246109" lon="8.8636347" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1613 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1614 + </node> 1615 + <node id="340138322" lat="41.8250592" lon="8.8640268" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1616 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1617 + </node> 1618 + <node id="340138323" lat="41.8256102" lon="8.8642721" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1619 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1620 + </node> 1621 + <node id="340138324" lat="41.8261251" lon="8.8647340" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1622 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1623 + </node> 1624 + <node id="340138325" lat="41.8267804" lon="8.8648011" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1625 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1626 + </node> 1627 + <node id="340138326" lat="41.8273008" lon="8.8651692" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:27Z"> 1628 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1629 + </node> 1630 + <node id="340138327" lat="41.8269108" lon="8.8686858" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1631 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1632 + </node> 1633 + <node id="340138328" lat="41.8269847" lon="8.8690395" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1634 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1635 + </node> 1636 + <node id="340138329" lat="41.8267418" lon="8.8695812" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1637 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1638 + </node> 1639 + <node id="340138330" lat="41.8264052" lon="8.8701132" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1640 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1641 + </node> 1642 + <node id="340138331" lat="41.8260542" lon="8.8704864" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1643 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1644 + </node> 1645 + <node id="340138332" lat="41.8257392" lon="8.8706429" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1646 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1647 + </node> 1648 + <node id="340138333" lat="41.8252929" lon="8.8710377" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1649 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1650 + </node> 1651 + <node id="340138334" lat="41.8250481" lon="8.8716106" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1652 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1653 + </node> 1654 + <node id="340138335" lat="41.8249294" lon="8.8720391" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1655 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1656 + </node> 1657 + <node id="340138336" lat="41.8252339" lon="8.8741161" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1658 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1659 + </node> 1660 + <node id="340138337" lat="41.8255886" lon="8.8744986" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1661 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1662 + </node> 1663 + <node id="340138338" lat="41.8261973" lon="8.8757886" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1664 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1665 + </node> 1666 + <node id="340138339" lat="41.8293315" lon="8.8761417" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1667 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1668 + </node> 1669 + <node id="340138340" lat="41.8306815" lon="8.8751786" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1670 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1671 + </node> 1672 + <node id="340138341" lat="41.8313242" lon="8.8750557" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1673 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1674 + </node> 1675 + <node id="340138342" lat="41.8316067" lon="8.8746440" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1676 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1677 + </node> 1678 + <node id="340138343" lat="41.8319775" lon="8.8743358" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:28Z"> 1679 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1680 + </node> 1681 + <node id="340138344" lat="41.8324294" lon="8.8742563" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1682 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1683 + </node> 1684 + <node id="340138345" lat="41.8329137" lon="8.8744319" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1685 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1686 + </node> 1687 + <node id="340138346" lat="41.8332611" lon="8.8745305" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1688 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1689 + </node> 1690 + <node id="340138347" lat="41.8342532" lon="8.8757025" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1691 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1692 + </node> 1693 + <node id="340138348" lat="41.8348880" lon="8.8764193" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1694 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1695 + </node> 1696 + <node id="340138349" lat="41.8352033" lon="8.8765854" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1697 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1698 + </node> 1699 + <node id="340138350" lat="41.8355513" lon="8.8770556" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1700 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1701 + </node> 1702 + <node id="340138351" lat="41.8360196" lon="8.8776049" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1703 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1704 + </node> 1705 + <node id="340138352" lat="41.8375027" lon="8.8778909" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1706 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1707 + </node> 1708 + <node id="340138353" lat="41.8377035" lon="8.8783126" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1709 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1710 + </node> 1711 + <node id="340138354" lat="41.8379864" lon="8.8794779" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1712 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1713 + </node> 1714 + <node id="340138355" lat="41.8382522" lon="8.8809423" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1715 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1716 + </node> 1717 + <node id="340138356" lat="41.8383785" lon="8.8822253" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1718 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1719 + </node> 1720 + <node id="340138357" lat="41.8385792" lon="8.8830815" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1721 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1722 + </node> 1723 + <node id="340138358" lat="41.8391374" lon="8.8846763" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1724 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1725 + </node> 1726 + <node id="340138359" lat="41.8391393" lon="8.8859465" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:29Z"> 1727 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1728 + </node> 1729 + <node id="340138360" lat="41.8395427" lon="8.8871912" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1730 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1731 + </node> 1732 + <node id="340138361" lat="41.8400568" lon="8.8873777" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1733 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1734 + </node> 1735 + <node id="340138362" lat="41.8410984" lon="8.8879527" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1736 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1737 + </node> 1738 + <node id="340138363" lat="41.8415036" lon="8.8882952" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1739 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1740 + </node> 1741 + <node id="340138364" lat="41.8422987" lon="8.8896805" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1742 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1743 + </node> 1744 + <node id="340138365" lat="41.8430881" lon="8.8911655" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1745 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1746 + </node> 1747 + <node id="340138366" lat="41.8438258" lon="8.8922442" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1748 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1749 + </node> 1750 + <node id="340138367" lat="41.8443399" lon="8.8924308" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1751 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1752 + </node> 1753 + <node id="340138368" lat="41.8451369" lon="8.8924794" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1754 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1755 + </node> 1756 + <node id="340138369" lat="41.8454293" lon="8.8926098" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1757 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1758 + </node> 1759 + <node id="340138370" lat="41.8461289" lon="8.8926149" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1760 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1761 + </node> 1762 + <node id="340138371" lat="41.8466391" lon="8.8928680" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1763 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1764 + </node> 1765 + <node id="340138372" lat="41.8471533" lon="8.8930546" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1766 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1767 + </node> 1768 + <node id="340138373" lat="41.8475355" lon="8.8929268" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1769 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1770 + </node> 1771 + <node id="340138374" lat="41.8480210" lon="8.8931773" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1772 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1773 + </node> 1774 + <node id="340138375" lat="41.8482236" lon="8.8935659" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:30Z"> 1775 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1776 + </node> 1777 + <node id="340138376" lat="41.8486383" lon="8.8937423" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1778 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1779 + </node> 1780 + <node id="340138377" lat="41.8491295" lon="8.8938931" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1781 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1782 + </node> 1783 + <node id="340138378" lat="41.8495748" lon="8.8939724" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1784 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1785 + </node> 1786 + <node id="340138379" lat="41.8504769" lon="8.8943661" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1787 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1788 + </node> 1789 + <node id="340138380" lat="41.8509968" lon="8.8944531" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1790 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1791 + </node> 1792 + <node id="340138381" lat="41.8514459" lon="8.8949004" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1793 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1794 + </node> 1795 + <node id="340138382" lat="41.8519638" lon="8.8950206" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1796 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1797 + </node> 1798 + <node id="340138383" lat="41.8522620" lon="8.8954859" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1799 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1800 + </node> 1801 + <node id="340138384" lat="41.8528353" lon="8.8959461" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1802 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1803 + </node> 1804 + <node id="340138385" lat="41.8532539" lon="8.8964906" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1805 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1806 + </node> 1807 + <node id="340138386" lat="41.8538081" lon="8.8968486" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1808 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1809 + </node> 1810 + <node id="340138388" lat="41.8541980" lon="8.8974571" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1811 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1812 + </node> 1813 + <node id="340138390" lat="41.8545419" lon="8.8979940" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1814 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1815 + </node> 1816 + <node id="340138391" lat="41.8552586" lon="8.8990038" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1817 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1818 + </node> 1819 + <node id="340138392" lat="41.8557535" lon="8.9003921" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1820 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1821 + </node> 1822 + <node id="340138393" lat="41.8559579" lon="8.9011821" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:31Z"> 1823 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1824 + </node> 1825 + <node id="340138394" lat="41.8554437" lon="8.9022992" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1826 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1827 + </node> 1828 + <node id="340138395" lat="41.8550518" lon="8.9030277" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1829 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1830 + </node> 1831 + <node id="340138396" lat="41.8540233" lon="8.9048272" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1832 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1833 + </node> 1834 + <node id="340138397" lat="41.8534862" lon="8.9054738" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1835 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1836 + </node> 1837 + <node id="340138398" lat="41.8528707" lon="8.9057446" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1838 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1839 + </node> 1840 + <node id="340138399" lat="41.8497668" lon="8.9062602" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1841 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1842 + </node> 1843 + <node id="340138400" lat="41.8490883" lon="8.9063240" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1844 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1845 + </node> 1846 + <node id="340138401" lat="41.8478325" lon="8.9064285" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1847 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1848 + </node> 1849 + <node id="340138402" lat="41.8472458" lon="8.9066354" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1850 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1851 + </node> 1852 + <node id="340138403" lat="41.8468291" lon="8.9069266" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1853 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1854 + </node> 1855 + <node id="340138404" lat="41.8462958" lon="8.9070722" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1856 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1857 + </node> 1858 + <node id="340138409" lat="41.8460014" lon="8.9074095" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1859 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1860 + </node> 1861 + <node id="340138416" lat="41.8457128" lon="8.9076472" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1862 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1863 + </node> 1864 + <node id="340138422" lat="41.8452923" lon="8.9080049" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1865 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1866 + </node> 1867 + <node id="340138425" lat="41.8452118" lon="8.9089659" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1868 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1869 + </node> 1870 + <node id="340138429" lat="41.8443854" lon="8.9128918" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1871 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1872 + </node> 1873 + <node id="340138434" lat="41.8448366" lon="8.9124369" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1874 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1875 + </node> 1876 + <node id="340138440" lat="41.8452800" lon="8.9125496" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:32Z"> 1877 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1878 + </node> 1879 + <node id="340138443" lat="41.8458361" lon="8.9128744" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1880 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1881 + </node> 1882 + <node id="340138447" lat="41.8462718" lon="8.9131199" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1883 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1884 + </node> 1885 + <node id="340138449" lat="41.8511458" lon="8.9057847" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1886 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1887 + </node> 1888 + <node id="340138450" lat="41.8468897" lon="8.9134708" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1889 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1890 + </node> 1891 + <node id="340138451" lat="41.8476094" lon="8.9135072" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1892 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1893 + </node> 1894 + <node id="340138452" lat="41.8476677" lon="8.9139675" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1895 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1896 + </node> 1897 + <node id="340138453" lat="41.8481666" lon="8.9141515" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1898 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1899 + </node> 1900 + <node id="340138454" lat="41.8482715" lon="8.9145409" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1901 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1902 + </node> 1903 + <node id="340138455" lat="41.8496079" lon="8.9151710" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1904 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1905 + </node> 1906 + <node id="340138456" lat="41.8501468" lon="8.9153970" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1907 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1908 + </node> 1909 + <node id="340138457" lat="41.8504345" lon="8.9160514" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1910 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1911 + </node> 1912 + <node id="340138458" lat="41.8507537" lon="8.9161601" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1913 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1914 + </node> 1915 + <node id="340138459" lat="41.8511119" lon="8.9163296" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1916 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1917 + </node> 1918 + <node id="340138460" lat="41.8514820" lon="8.9162921" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1919 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1920 + </node> 1921 + <node id="340138461" lat="41.8517287" lon="8.9164312" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1922 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1923 + </node> 1924 + <node id="340138462" lat="41.8523206" lon="8.9169655" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1925 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1926 + </node> 1927 + <node id="340138463" lat="41.8528650" lon="8.9168514" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:33Z"> 1928 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1929 + </node> 1930 + <node id="340138464" lat="41.8533075" lon="8.9170296" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1931 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1932 + </node> 1933 + <node id="340138465" lat="41.8535294" lon="8.9171093" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1934 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1935 + </node> 1936 + <node id="340138466" lat="41.8541050" lon="8.9174338" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1937 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1938 + </node> 1939 + <node id="340138467" lat="41.8555195" lon="8.9174475" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1940 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1941 + </node> 1942 + <node id="340138468" lat="41.8558906" lon="8.9176373" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1943 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1944 + </node> 1945 + <node id="340138469" lat="41.8561904" lon="8.9178386" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1946 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1947 + </node> 1948 + <node id="340138470" lat="41.8564955" lon="8.9179458" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1949 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1950 + </node> 1951 + <node id="340138471" lat="41.8563743" lon="8.9180848" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1952 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1953 + </node> 1954 + <node id="340138472" lat="41.8557746" lon="8.9184203" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1955 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1956 + </node> 1957 + <node id="340138473" lat="41.8551122" lon="8.9188630" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1958 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1959 + </node> 1960 + <node id="340138474" lat="41.8549000" lon="8.9191061" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1961 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1962 + </node> 1963 + <node id="340138475" lat="41.8548119" lon="8.9208764" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1964 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1965 + </node> 1966 + <node id="340138476" lat="41.8540325" lon="8.9218748" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1967 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1968 + </node> 1969 + <node id="340138477" lat="41.8536264" lon="8.9225332" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1970 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1971 + </node> 1972 + <node id="340138478" lat="41.8535180" lon="8.9231845" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1973 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1974 + </node> 1975 + <node id="340138479" lat="41.8538500" lon="8.9240518" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1976 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1977 + </node> 1978 + <node id="340138480" lat="41.8536516" lon="8.9252806" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1979 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1980 + </node> 1981 + <node id="340138481" lat="41.8535550" lon="8.9262171" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:34Z"> 1982 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1983 + </node> 1984 + <node id="340138482" lat="41.8531845" lon="8.9274849" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 1985 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1986 + </node> 1987 + <node id="340138483" lat="41.8524435" lon="8.9295283" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 1988 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1989 + </node> 1990 + <node id="340138484" lat="41.8521848" lon="8.9298422" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 1991 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1992 + </node> 1993 + <node id="340138485" lat="41.8516772" lon="8.9300547" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 1994 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1995 + </node> 1996 + <node id="340138486" lat="41.8512583" lon="8.9302006" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 1997 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 1998 + </node> 1999 + <node id="340138487" lat="41.8511823" lon="8.9307795" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 2000 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2001 + </node> 2002 + <node id="340138488" lat="41.8516085" lon="8.9314862" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 2003 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2004 + </node> 2005 + <node id="340138489" lat="41.8514254" lon="8.9319594" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 2006 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2007 + </node> 2008 + <node id="340138490" lat="41.8510895" lon="8.9331171" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 2009 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2010 + </node> 2011 + <node id="340138491" lat="41.8507917" lon="8.9336163" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 2012 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2013 + </node> 2014 + <node id="340138492" lat="41.8505644" lon="8.9336306" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 2015 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2016 + </node> 2017 + <node id="340138493" lat="41.8500905" lon="8.9332597" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 2018 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2019 + </node> 2020 + <node id="340138494" lat="41.8493235" lon="8.9325746" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:35Z"> 2021 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2022 + </node> 2023 + <node id="340138495" lat="41.8491568" lon="8.9327655" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2024 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2025 + </node> 2026 + <node id="340138496" lat="41.8491792" lon="8.9336007" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2027 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2028 + </node> 2029 + <node id="340138497" lat="41.8489950" lon="8.9340927" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2030 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2031 + </node> 2032 + <node id="340138498" lat="41.8488845" lon="8.9345355" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2033 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2034 + </node> 2035 + <node id="340138499" lat="41.8487067" lon="8.9351607" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2036 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2037 + </node> 2038 + <node id="340138500" lat="41.8484609" lon="8.9354949" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2039 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2040 + </node> 2041 + <node id="340138501" lat="41.8482023" lon="8.9355627" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2042 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2043 + </node> 2044 + <node id="340138502" lat="41.8476190" lon="8.9353698" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2045 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2046 + </node> 2047 + <node id="340138503" lat="41.8471549" lon="8.9350756" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2048 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2049 + </node> 2050 + <node id="340138507" lat="41.8460061" lon="8.9336507" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2051 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2052 + </node> 2053 + <node id="340138508" lat="41.8457897" lon="8.9337229" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2054 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2055 + </node> 2056 + <node id="340138513" lat="41.8455600" lon="8.9342669" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2057 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2058 + </node> 2059 + <node id="340138518" lat="41.8453787" lon="8.9356866" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2060 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2061 + </node> 2062 + <node id="340138519" lat="41.8453103" lon="8.9363798" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2063 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2064 + </node> 2065 + <node id="340138520" lat="41.8446823" lon="8.9372043" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:36Z"> 2066 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2067 + </node> 2068 + <node id="340138521" lat="41.8446905" lon="8.9382840" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2069 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2070 + </node> 2071 + <node id="340138522" lat="41.8449035" lon="8.9387604" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2072 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2073 + </node> 2074 + <node id="340138523" lat="41.8446141" lon="8.9396010" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2075 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2076 + </node> 2077 + <node id="340138524" lat="41.8449199" lon="8.9406737" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2078 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2079 + </node> 2080 + <node id="340138527" lat="41.8449142" lon="8.9415059" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2081 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2082 + </node> 2083 + <node id="340138530" lat="41.8449950" lon="8.9423092" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2084 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2085 + </node> 2086 + <node id="340138531" lat="41.8451267" lon="8.9429664" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2087 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2088 + </node> 2089 + <node id="340138532" lat="41.8455225" lon="8.9434617" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2090 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2091 + </node> 2092 + <node id="340138533" lat="41.8463837" lon="8.9439864" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2093 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2094 + </node> 2095 + <node id="340138534" lat="41.8469409" lon="8.9443849" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2096 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2097 + </node> 2098 + <node id="340138535" lat="41.8475304" lon="8.9449571" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2099 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2100 + </node> 2101 + <node id="340138536" lat="41.8475356" lon="8.9453551" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2102 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2103 + </node> 2104 + <node id="340138537" lat="41.8479853" lon="8.9463861" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2105 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2106 + </node> 2107 + <node id="340138538" lat="41.8480008" lon="8.9478262" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2108 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2109 + </node> 2110 + <node id="340138539" lat="41.8479613" lon="8.9489957" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:37Z"> 2111 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2112 + </node> 2113 + <node id="340138540" lat="41.8477284" lon="8.9493501" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2114 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2115 + </node> 2116 + <node id="340138541" lat="41.8478049" lon="8.9499826" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2117 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2118 + </node> 2119 + <node id="340138542" lat="41.8477809" lon="8.9503966" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2120 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2121 + </node> 2122 + <node id="340138543" lat="41.8476703" lon="8.9508394" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2123 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2124 + </node> 2125 + <node id="340138544" lat="41.8471440" lon="8.9513715" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2126 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2127 + </node> 2128 + <node id="340138546" lat="41.8472096" lon="8.9521922" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2129 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2130 + </node> 2131 + <node id="340138547" lat="41.8472623" lon="8.9527466" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2132 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2133 + </node> 2134 + <node id="340138548" lat="41.8470532" lon="8.9531791" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2135 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2136 + </node> 2137 + <node id="340138549" lat="41.8474231" lon="8.9536340" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2138 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2139 + </node> 2140 + <node id="340138550" lat="41.8479371" lon="8.9538009" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2141 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2142 + </node> 2143 + <node id="340138551" lat="41.8484109" lon="8.9541720" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2144 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2145 + </node> 2146 + <node id="340138552" lat="41.8483534" lon="8.9544310" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2147 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2148 + </node> 2149 + <node id="340138553" lat="41.8479342" lon="8.9550689" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2150 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2151 + </node> 2152 + <node id="340138554" lat="41.8474329" lon="8.9554143" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2153 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2154 + </node> 2155 + <node id="340138555" lat="41.8472163" lon="8.9557325" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:38Z"> 2156 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2157 + </node> 2158 + <node id="340138556" lat="41.8471554" lon="8.9562940" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2159 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2160 + </node> 2161 + <node id="340138557" lat="41.8472651" lon="8.9573275" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2162 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2163 + </node> 2164 + <node id="340138558" lat="41.8470257" lon="8.9577947" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2165 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2166 + </node> 2167 + <node id="340138559" lat="41.8471987" lon="8.9579831" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2168 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2169 + </node> 2170 + <node id="340138560" lat="41.8479995" lon="8.9580853" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2171 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2172 + </node> 2173 + <node id="340138561" lat="41.8480511" lon="8.9586585" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2174 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2175 + </node> 2176 + <node id="340138562" lat="41.8479481" lon="8.9589696" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2177 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2178 + </node> 2179 + <node id="340138563" lat="41.8482770" lon="8.9591552" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2180 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2181 + </node> 2182 + <node id="340138564" lat="41.8486609" lon="8.9596115" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2183 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2184 + </node> 2185 + <node id="340138565" lat="41.8503775" lon="8.9592979" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2186 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2187 + </node> 2188 + <node id="340138566" lat="41.8509002" lon="8.9593143" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2189 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2190 + </node> 2191 + <node id="340138567" lat="41.8517575" lon="8.9589302" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2192 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2193 + </node> 2194 + <node id="340138568" lat="41.8519132" lon="8.9591736" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2195 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2196 + </node> 2197 + <node id="340138569" lat="41.8524931" lon="8.9594232" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2198 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2199 + </node> 2200 + <node id="340138570" lat="41.8532094" lon="8.9597627" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2201 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2202 + </node> 2203 + <node id="340138571" lat="41.8537902" lon="8.9602395" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2204 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2205 + </node> 2206 + <node id="340138572" lat="41.8539470" lon="8.9604641" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:39Z"> 2207 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2208 + </node> 2209 + <node id="340138576" lat="41.8542543" lon="8.9605339" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:40Z"> 2210 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2211 + </node> 2212 + <node id="340138577" lat="41.8552520" lon="8.9606566" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:40Z"> 2213 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2214 + </node> 2215 + <node id="340138578" lat="41.8554155" lon="8.9606691" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:23Z"> 2216 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2217 + </node> 2218 + <node id="340138579" lat="41.8554076" lon="8.9603989" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2219 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2220 + </node> 2221 + <node id="340138580" lat="41.8550371" lon="8.9599123" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2222 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2223 + </node> 2224 + <node id="340138581" lat="41.8551636" lon="8.9597988" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:11Z"> 2225 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2226 + </node> 2227 + <node id="340138582" lat="41.8557101" lon="8.9598483" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2228 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2229 + </node> 2230 + <node id="340138583" lat="41.8568903" lon="8.9603120" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2231 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2232 + </node> 2233 + <node id="340138584" lat="41.8577752" lon="8.9602415" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2234 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2235 + </node> 2236 + <node id="340138585" lat="41.8580629" lon="8.9603313" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2237 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2238 + </node> 2239 + <node id="340138586" lat="41.8583049" lon="8.9600450" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2240 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2241 + </node> 2242 + <node id="340138587" lat="41.8589466" lon="8.9599344" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:29Z"> 2243 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2244 + </node> 2245 + <node id="340138588" lat="41.8590878" lon="8.9600766" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:29Z"> 2246 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2247 + </node> 2248 + <node id="340138589" lat="41.8595705" lon="8.9598797" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2249 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2250 + </node> 2251 + <node id="340138590" lat="41.8598083" lon="8.9600369" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:22Z"> 2252 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2253 + </node> 2254 + <node id="340138591" lat="41.8602648" lon="8.9595099" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2255 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2256 + </node> 2257 + <node id="340138592" lat="41.8604942" lon="8.9596041" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2258 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2259 + </node> 2260 + <node id="340138593" lat="41.8607358" lon="8.9599115" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2261 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2262 + </node> 2263 + <node id="340138594" lat="41.8609793" lon="8.9600463" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2264 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2265 + </node> 2266 + <node id="340138595" lat="41.8612194" lon="8.9602245" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:30Z"> 2267 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2268 + </node> 2269 + <node id="340138596" lat="41.8614306" lon="8.9599826" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:30Z"> 2270 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2271 + </node> 2272 + <node id="340138597" lat="41.8617064" lon="8.9596790" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2273 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2274 + </node> 2275 + <node id="340138598" lat="41.8621878" lon="8.9597487" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:23Z"> 2276 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2277 + </node> 2278 + <node id="340138599" lat="41.8623344" lon="8.9598984" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2279 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2280 + </node> 2281 + <node id="340138600" lat="41.8632374" lon="8.9605146" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2282 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2283 + </node> 2284 + <node id="340138601" lat="41.8634007" lon="8.9606989" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:11Z"> 2285 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2286 + </node> 2287 + <node id="340138602" lat="41.8636208" lon="8.9601275" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2288 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2289 + </node> 2290 + <node id="340138603" lat="41.8637337" lon="8.9596479" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2291 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2292 + </node> 2293 + <node id="340138604" lat="41.8635873" lon="8.9587146" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2294 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2295 + </node> 2296 + <node id="340138605" lat="41.8630314" lon="8.9565320" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:30Z"> 2297 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2298 + </node> 2299 + <node id="340138606" lat="41.8628986" lon="8.9553084" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2300 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2301 + </node> 2302 + <node id="340138607" lat="41.8628336" lon="8.9543932" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:29Z"> 2303 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2304 + </node> 2305 + <node id="340138608" lat="41.8632108" lon="8.9544105" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2306 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2307 + </node> 2308 + <node id="340138609" lat="41.8634249" lon="8.9538623" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:29Z"> 2309 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2310 + </node> 2311 + <node id="340138610" lat="41.8633914" lon="8.9531913" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2312 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2313 + </node> 2314 + <node id="340138611" lat="41.8636505" lon="8.9527862" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:11Z"> 2315 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2316 + </node> 2317 + <node id="340138612" lat="41.8638575" lon="8.9528223" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:22Z"> 2318 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2319 + </node> 2320 + <node id="340138613" lat="41.8640221" lon="8.9531577" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2321 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2322 + </node> 2323 + <node id="340138614" lat="41.8642380" lon="8.9532847" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2324 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2325 + </node> 2326 + <node id="340138615" lat="41.8645883" lon="8.9527829" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2327 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2328 + </node> 2329 + <node id="340138616" lat="41.8649141" lon="8.9523929" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2330 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2331 + </node> 2332 + <node id="340138617" lat="41.8563418" lon="8.9602613" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2333 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2334 + </node> 2335 + <node id="340138618" lat="41.8649994" lon="8.9519103" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:29Z"> 2336 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2337 + </node> 2338 + <node id="340138619" lat="41.8650043" lon="8.9513062" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2339 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2340 + </node> 2341 + <node id="340138620" lat="41.8653937" lon="8.9506525" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2342 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2343 + </node> 2344 + <node id="340138621" lat="41.8654153" lon="8.9506300" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:22Z"> 2345 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2346 + </node> 2347 + <node id="340138622" lat="41.8659332" lon="8.9505527" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2348 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2349 + </node> 2350 + <node id="340138623" lat="41.8660853" lon="8.9504610" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2351 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2352 + </node> 2353 + <node id="340138624" lat="41.8661697" lon="8.9499100" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2354 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2355 + </node> 2356 + <node id="340138625" lat="41.8662080" lon="8.9496335" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:11Z"> 2357 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2358 + </node> 2359 + <node id="340138626" lat="41.8663700" lon="8.9491537" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2360 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2361 + </node> 2362 + <node id="340138627" lat="41.8665998" lon="8.9488453" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2363 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2364 + </node> 2365 + <node id="340138628" lat="41.8669055" lon="8.9478952" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2366 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2367 + </node> 2368 + <node id="340138629" lat="41.8667478" lon="8.9475925" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2369 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2370 + </node> 2371 + <node id="340138630" lat="41.8666338" lon="8.9473507" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2372 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2373 + </node> 2374 + <node id="340138631" lat="41.8665892" lon="8.9469603" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:29Z"> 2375 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2376 + </node> 2377 + <node id="340138632" lat="41.8662710" lon="8.9463628" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:30Z"> 2378 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2379 + </node> 2380 + <node id="340138633" lat="41.8662438" lon="8.9462431" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2381 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2382 + </node> 2383 + <node id="340138634" lat="41.8666024" lon="8.9457230" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:22Z"> 2384 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2385 + </node> 2386 + <node id="340138635" lat="41.8666121" lon="8.9452626" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2387 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2388 + </node> 2389 + <node id="340138636" lat="41.8666881" lon="8.9451376" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2390 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2391 + </node> 2392 + <node id="340138637" lat="41.8672497" lon="8.9449804" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2393 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2394 + </node> 2395 + <node id="340138638" lat="41.8677008" lon="8.9449812" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2396 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2397 + </node> 2398 + <node id="340138639" lat="41.8681722" lon="8.9445311" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2399 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2400 + </node> 2401 + <node id="340138640" lat="41.8683651" lon="8.9444414" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2402 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2403 + </node> 2404 + <node id="340138641" lat="41.8687277" lon="8.9446737" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2405 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2406 + </node> 2407 + <node id="340138642" lat="41.8689701" lon="8.9446547" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:30Z"> 2408 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2409 + </node> 2410 + <node id="340138643" lat="41.8690170" lon="8.9444589" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2411 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2412 + </node> 2413 + <node id="340138644" lat="41.8692063" lon="8.9443302" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2414 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2415 + </node> 2416 + <node id="340138645" lat="41.8693436" lon="8.9444203" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:22Z"> 2417 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2418 + </node> 2419 + <node id="340138646" lat="41.8697973" lon="8.9442398" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2420 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2421 + </node> 2422 + <node id="340138649" lat="41.8698052" lon="8.9440008" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:05Z"> 2423 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2424 + </node> 2425 + <node id="340138651" lat="41.8699835" lon="8.9435893" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:30Z"> 2426 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2427 + </node> 2428 + <node id="340138652" lat="41.8701569" lon="8.9431261" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:30Z"> 2429 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2430 + </node> 2431 + <node id="340138653" lat="41.8703560" lon="8.9426892" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2432 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2433 + </node> 2434 + <node id="340138654" lat="41.8705146" lon="8.9421610" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:29Z"> 2435 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2436 + </node> 2437 + <node id="340138655" lat="41.8705328" lon="8.9415400" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2438 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2439 + </node> 2440 + <node id="340138656" lat="41.8705620" lon="8.9411136" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:22Z"> 2441 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2442 + </node> 2443 + <node id="340138657" lat="41.8707914" lon="8.9406564" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2444 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2445 + </node> 2446 + <node id="340138658" lat="41.8709906" lon="8.9403330" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2447 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2448 + </node> 2449 + <node id="340138659" lat="41.8712107" lon="8.9402317" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2450 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2451 + </node> 2452 + <node id="340138660" lat="41.8722616" lon="8.9399976" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2453 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2454 + </node> 2455 + <node id="340138665" lat="41.8725969" lon="8.9397054" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:22Z"> 2456 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2457 + </node> 2458 + <node id="340138669" lat="41.8727214" lon="8.9397211" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:34Z"> 2459 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2460 + </node> 2461 + <node id="340138673" lat="41.8731658" lon="8.9397704" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:30Z"> 2462 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2463 + </node> 2464 + <node id="340138677" lat="41.8735505" lon="8.9397298" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2465 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2466 + </node> 2467 + <node id="340138681" lat="41.8737807" lon="8.9394137" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2468 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2469 + </node> 2470 + <node id="340138684" lat="41.8742241" lon="8.9394430" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2471 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2472 + </node> 2473 + <node id="340138686" lat="41.8744585" lon="8.9393851" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2474 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2475 + </node> 2476 + <node id="340138687" lat="41.8753463" lon="8.9392939" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:11Z"> 2477 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2478 + </node> 2479 + <node id="340138688" lat="41.8755798" lon="8.9393103" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:08Z"> 2480 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2481 + </node> 2482 + <node id="340138689" lat="41.8754086" lon="8.9385250" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:23Z"> 2483 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2484 + </node> 2485 + <node id="340138690" lat="41.8752902" lon="8.9384294" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:07Z"> 2486 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2487 + </node> 2488 + <node id="340138691" lat="41.8751224" lon="8.9381594" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:11Z"> 2489 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2490 + </node> 2491 + <node id="340138692" lat="41.8749282" lon="8.9376996" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:11Z"> 2492 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2493 + </node> 2494 + <node id="340138693" lat="41.8748714" lon="8.9373557" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:06Z"> 2495 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2496 + </node> 2497 + <node id="340138694" lat="41.8746766" lon="8.9363664" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:10Z"> 2498 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2499 + </node> 2500 + <node id="340138695" lat="41.8745679" lon="8.9360351" version="2" changeset="3141387" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:18:46Z"> 2501 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2502 + </node> 2503 + <node id="340138696" lat="41.8744463" lon="8.9357654" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:31Z"> 2504 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2505 + </node> 2506 + <node id="340138697" lat="41.8743757" lon="8.9354951" version="3" changeset="5727598" user="Pieren" uid="17286" timestamp="2010-09-08T20:13:09Z"> 2507 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2508 + </node> 2509 + <node id="340138698" lat="41.8743217" lon="8.9349331" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:16Z"> 2510 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2511 + </node> 2512 + <node id="340138699" lat="41.8741985" lon="8.9344662" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:55Z"> 2513 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2514 + </node> 2515 + <node id="340138700" lat="41.8741991" lon="8.9342099" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:55Z"> 2516 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2517 + </node> 2518 + <node id="340138701" lat="41.8746361" lon="8.9343370" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:02Z"> 2519 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2520 + </node> 2521 + <node id="340138702" lat="41.8748036" lon="8.9339707" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2522 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2523 + </node> 2524 + <node id="340138703" lat="41.8749355" lon="8.9338559" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2525 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2526 + </node> 2527 + <node id="340138704" lat="41.8752216" lon="8.9336042" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2528 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2529 + </node> 2530 + <node id="340138705" lat="41.8756944" lon="8.9334017" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2531 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2532 + </node> 2533 + <node id="340138706" lat="41.8763988" lon="8.9331051" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:19Z"> 2534 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2535 + </node> 2536 + <node id="340138707" lat="41.8766657" lon="8.9329167" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2537 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2538 + </node> 2539 + <node id="340138709" lat="41.8775591" lon="8.9325425" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:17Z"> 2540 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2541 + </node> 2542 + <node id="340138710" lat="41.8777501" lon="8.9324530" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:55Z"> 2543 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2544 + </node> 2545 + <node id="340138711" lat="41.8780250" lon="8.9324511" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:02Z"> 2546 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2547 + </node> 2548 + <node id="340138712" lat="41.8784643" lon="8.9326986" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:04Z"> 2549 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2550 + </node> 2551 + <node id="340138714" lat="41.8792545" lon="8.9328224" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2552 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2553 + </node> 2554 + <node id="340138715" lat="41.8797071" lon="8.9328864" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:20Z"> 2555 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2556 + </node> 2557 + <node id="340138716" lat="41.8797579" lon="8.9327355" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:21Z"> 2558 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2559 + </node> 2560 + <node id="340138717" lat="41.8797331" lon="8.9323280" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2561 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2562 + </node> 2563 + <node id="340138718" lat="41.8794033" lon="8.9315255" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2564 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2565 + </node> 2566 + <node id="340138719" lat="41.8790393" lon="8.9308813" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:56Z"> 2567 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2568 + </node> 2569 + <node id="340138720" lat="41.8790076" lon="8.9308085" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:16Z"> 2570 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2571 + </node> 2572 + <node id="340138721" lat="41.8789253" lon="8.9305084" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:55Z"> 2573 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2574 + </node> 2575 + <node id="340138722" lat="41.8788622" lon="8.9304540" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2576 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2577 + </node> 2578 + <node id="340138723" lat="41.8786215" lon="8.9305862" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:52Z"> 2579 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2580 + </node> 2581 + <node id="340138724" lat="41.8785069" lon="8.9306187" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2582 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2583 + </node> 2584 + <node id="340138725" lat="41.8782758" lon="8.9304729" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2585 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2586 + </node> 2587 + <node id="340138726" lat="41.8781535" lon="8.9300039" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:19Z"> 2588 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2589 + </node> 2590 + <node id="340138727" lat="41.8778628" lon="8.9294137" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2591 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2592 + </node> 2593 + <node id="340138728" lat="41.8773669" lon="8.9283155" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2594 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2595 + </node> 2596 + <node id="340138729" lat="41.8770912" lon="8.9275792" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:16Z"> 2597 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2598 + </node> 2599 + <node id="340138730" lat="41.8772055" lon="8.9272799" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:55Z"> 2600 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2601 + </node> 2602 + <node id="340138731" lat="41.8772621" lon="8.9269586" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:02Z"> 2603 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2604 + </node> 2605 + <node id="340138732" lat="41.8774556" lon="8.9263105" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:04Z"> 2606 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2607 + </node> 2608 + <node id="340138733" lat="41.8777929" lon="8.9255445" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2609 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2610 + </node> 2611 + <node id="340138734" lat="41.8779249" lon="8.9251590" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2612 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2613 + </node> 2614 + <node id="340138735" lat="41.8779462" lon="8.9250534" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:19Z"> 2615 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2616 + </node> 2617 + <node id="340138736" lat="41.8779108" lon="8.9243052" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2618 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2619 + </node> 2620 + <node id="340138737" lat="41.8780081" lon="8.9217902" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:20Z"> 2621 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2622 + </node> 2623 + <node id="340138738" lat="41.8795621" lon="8.9164811" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2624 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2625 + </node> 2626 + <node id="340138739" lat="41.8799855" lon="8.9149994" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:17Z"> 2627 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2628 + </node> 2629 + <node id="340138740" lat="41.8786911" lon="8.9119275" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2630 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2631 + </node> 2632 + <node id="340138741" lat="41.8764445" lon="8.9077791" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:56Z"> 2633 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2634 + </node> 2635 + <node id="340138742" lat="41.8763916" lon="8.9076407" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:04Z"> 2636 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2637 + </node> 2638 + <node id="340138743" lat="41.8764165" lon="8.9074587" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2639 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2640 + </node> 2641 + <node id="340138744" lat="41.8767075" lon="8.9069795" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:54Z"> 2642 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2643 + </node> 2644 + <node id="340138745" lat="41.8769717" lon="8.9062823" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2645 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2646 + </node> 2647 + <node id="340138746" lat="41.8771761" lon="8.9049113" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:21Z"> 2648 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2649 + </node> 2650 + <node id="340138748" lat="41.8770615" lon="8.9041074" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2651 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2652 + </node> 2653 + <node id="340138754" lat="41.8771818" lon="8.9033918" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:56Z"> 2654 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2655 + </node> 2656 + <node id="340138761" lat="41.8770461" lon="8.9023402" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2657 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2658 + </node> 2659 + <node id="340138771" lat="41.8771271" lon="8.9021194" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2660 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2661 + </node> 2662 + <node id="340138778" lat="41.8779612" lon="8.9012030" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:02Z"> 2663 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2664 + </node> 2665 + <node id="340138787" lat="41.8780390" lon="8.9008234" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:54Z"> 2666 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2667 + </node> 2668 + <node id="340138794" lat="41.8783929" lon="8.9005982" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2669 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2670 + </node> 2671 + <node id="340138801" lat="41.8786270" lon="8.9000317" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:52Z"> 2672 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2673 + </node> 2674 + <node id="340138808" lat="41.8788042" lon="8.8999979" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:56Z"> 2675 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2676 + </node> 2677 + <node id="340138813" lat="41.8790081" lon="8.8996140" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:20Z"> 2678 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2679 + </node> 2680 + <node id="340138823" lat="41.8801479" lon="8.8988820" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2681 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2682 + </node> 2683 + <node id="340138829" lat="41.8814255" lon="8.8966598" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2684 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2685 + </node> 2686 + <node id="340138839" lat="41.8821896" lon="8.8970176" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2687 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2688 + </node> 2689 + <node id="340138843" lat="41.8823949" lon="8.8968699" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:54Z"> 2690 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2691 + </node> 2692 + <node id="340138848" lat="41.8824553" lon="8.8963310" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:20Z"> 2693 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2694 + </node> 2695 + <node id="340138852" lat="41.8826686" lon="8.8960444" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:56Z"> 2696 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2697 + </node> 2698 + <node id="340138855" lat="41.8831370" lon="8.8955638" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2699 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2700 + </node> 2701 + <node id="340138859" lat="41.8835851" lon="8.8949893" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2702 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2703 + </node> 2704 + <node id="340138867" lat="41.8835236" lon="8.8941406" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:21Z"> 2705 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2706 + </node> 2707 + <node id="340138873" lat="41.8836220" lon="8.8930890" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:16Z"> 2708 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2709 + </node> 2710 + <node id="340138877" lat="41.8837092" lon="8.8928301" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2711 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2712 + </node> 2713 + <node id="340138882" lat="41.8843992" lon="8.8922101" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2714 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2715 + </node> 2716 + <node id="340138886" lat="41.8843640" lon="8.8919430" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:16Z"> 2717 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2718 + </node> 2719 + <node id="340138904" lat="41.8834347" lon="8.8916263" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:21Z"> 2720 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2721 + </node> 2722 + <node id="340138908" lat="41.8838216" lon="8.8899153" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2723 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2724 + </node> 2725 + <node id="340138913" lat="41.8838185" lon="8.8897282" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2726 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2727 + </node> 2728 + <node id="340138919" lat="41.8836063" lon="8.8895776" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:02Z"> 2729 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2730 + </node> 2731 + <node id="340138926" lat="41.8834346" lon="8.8893095" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:17Z"> 2732 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2733 + </node> 2734 + <node id="340138930" lat="41.8830703" lon="8.8896570" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:02Z"> 2735 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2736 + </node> 2737 + <node id="340138931" lat="41.8827255" lon="8.8895036" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2738 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2739 + </node> 2740 + <node id="340138932" lat="41.8825971" lon="8.8889822" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:54Z"> 2741 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2742 + </node> 2743 + <node id="340138933" lat="41.8832218" lon="8.8880443" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2744 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2745 + </node> 2746 + <node id="340138935" lat="41.8843709" lon="8.8883965" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2747 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2748 + </node> 2749 + <node id="340138936" lat="41.8843949" lon="8.8877089" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2750 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2751 + </node> 2752 + <node id="340138937" lat="41.8847173" lon="8.8865574" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2753 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2754 + </node> 2755 + <node id="340138938" lat="41.8846451" lon="8.8861959" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:56Z"> 2756 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2757 + </node> 2758 + <node id="340138939" lat="41.8843739" lon="8.8858668" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:05Z"> 2759 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2760 + </node> 2761 + <node id="340138940" lat="41.8844830" lon="8.8855094" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:05Z"> 2762 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2763 + </node> 2764 + <node id="340138942" lat="41.8851104" lon="8.8850459" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2765 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2766 + </node> 2767 + <node id="340138943" lat="41.8853173" lon="8.8845536" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:52Z"> 2768 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2769 + </node> 2770 + <node id="340138944" lat="41.8858823" lon="8.8838731" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:04Z"> 2771 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2772 + </node> 2773 + <node id="340138945" lat="41.8862385" lon="8.8839079" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:54Z"> 2774 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2775 + </node> 2776 + <node id="340138946" lat="41.8865313" lon="8.8834550" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2777 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2778 + </node> 2779 + <node id="340138947" lat="41.8867606" lon="8.8832574" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:20Z"> 2780 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2781 + </node> 2782 + <node id="340138948" lat="41.8865455" lon="8.8822759" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:21Z"> 2783 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2784 + </node> 2785 + <node id="340138949" lat="41.8865524" lon="8.8821306" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2786 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2787 + </node> 2788 + <node id="340138951" lat="41.8867372" lon="8.8817652" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:56Z"> 2789 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2790 + </node> 2791 + <node id="340138952" lat="41.8867000" lon="8.8814158" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2792 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2793 + </node> 2794 + <node id="340138953" lat="41.8865653" lon="8.8811823" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:05Z"> 2795 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2796 + </node> 2797 + <node id="340138954" lat="41.8863548" lon="8.8809633" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:54Z"> 2798 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2799 + </node> 2800 + <node id="340138955" lat="41.8861265" lon="8.8807982" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2801 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2802 + </node> 2803 + <node id="340138956" lat="41.8860579" lon="8.8804888" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2804 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2805 + </node> 2806 + <node id="340138958" lat="41.8865975" lon="8.8799012" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2807 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2808 + </node> 2809 + <node id="340138962" lat="41.8865973" lon="8.8796781" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2810 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2811 + </node> 2812 + <node id="340138963" lat="41.8870606" lon="8.8792389" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:05Z"> 2813 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2814 + </node> 2815 + <node id="340138968" lat="41.8873611" lon="8.8787075" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2816 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2817 + </node> 2818 + <node id="340138973" lat="41.8866628" lon="8.8782008" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:17Z"> 2819 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2820 + </node> 2821 + <node id="340138979" lat="41.8864349" lon="8.8779318" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2822 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2823 + </node> 2824 + <node id="340138983" lat="41.8862061" lon="8.8775576" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:05Z"> 2825 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2826 + </node> 2827 + <node id="340138989" lat="41.8861773" lon="8.8772764" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2828 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2829 + </node> 2830 + <node id="340138994" lat="41.8859263" lon="8.8765882" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:16Z"> 2831 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2832 + </node> 2833 + <node id="340139000" lat="41.8855948" lon="8.8759844" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2834 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2835 + </node> 2836 + <node id="340139001" lat="41.8855642" lon="8.8753884" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:20Z"> 2837 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2838 + </node> 2839 + <node id="340139002" lat="41.8877121" lon="8.8715035" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2840 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2841 + </node> 2842 + <node id="340139004" lat="41.8871740" lon="8.8685665" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2843 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2844 + </node> 2845 + <node id="340139007" lat="41.8874081" lon="8.8620125" version="2" changeset="3141405" user="EtienneChoveBot" uid="183561" timestamp="2009-11-17T14:20:31Z"> 2846 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2847 + </node> 2848 + <node id="340139010" lat="41.8876646" lon="8.8592895" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:02Z"> 2849 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2850 + </node> 2851 + <node id="340139011" lat="41.8872348" lon="8.8586115" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2852 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2853 + </node> 2854 + <node id="340139012" lat="41.8871299" lon="8.8585397" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:53Z"> 2855 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2856 + </node> 2857 + <node id="340139013" lat="41.8867214" lon="8.8580332" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2858 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2859 + </node> 2860 + <node id="340139014" lat="41.8864066" lon="8.8582167" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:20Z"> 2861 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2862 + </node> 2863 + <node id="340139015" lat="41.8859153" lon="8.8577461" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2864 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2865 + </node> 2866 + <node id="340139016" lat="41.8857335" lon="8.8575878" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2867 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2868 + </node> 2869 + <node id="340139017" lat="41.8854413" lon="8.8571725" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:17Z"> 2870 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2871 + </node> 2872 + <node id="340139018" lat="41.8846531" lon="8.8568887" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:56Z"> 2873 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2874 + </node> 2875 + <node id="340139019" lat="41.8843214" lon="8.8562955" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:04Z"> 2876 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2877 + </node> 2878 + <node id="340139020" lat="41.8838018" lon="8.8559095" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:05Z"> 2879 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2880 + </node> 2881 + <node id="340139021" lat="41.8828317" lon="8.8553617" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:54Z"> 2882 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2883 + </node> 2884 + <node id="340139022" lat="41.8823654" lon="8.8554981" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2885 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2886 + </node> 2887 + <node id="340139023" lat="41.8822476" lon="8.8556334" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:21Z"> 2888 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2889 + </node> 2890 + <node id="340139024" lat="41.8818908" lon="8.8559451" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2891 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2892 + </node> 2893 + <node id="340139025" lat="41.8816478" lon="8.8559511" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:21Z"> 2894 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2895 + </node> 2896 + <node id="340139026" lat="41.8814285" lon="8.8560752" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:58Z"> 2897 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2898 + </node> 2899 + <node id="340139027" lat="41.8808782" lon="8.8568173" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2900 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2901 + </node> 2902 + <node id="340139028" lat="41.8808716" lon="8.8576344" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:18Z"> 2903 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2904 + </node> 2905 + <node id="340139029" lat="41.8803937" lon="8.8581449" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2906 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2907 + </node> 2908 + <node id="340139030" lat="41.8799659" lon="8.8583239" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:05Z"> 2909 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2910 + </node> 2911 + <node id="340139031" lat="41.8795509" lon="8.8591756" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:54Z"> 2912 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2913 + </node> 2914 + <node id="340139032" lat="41.8791501" lon="8.8593860" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:55Z"> 2915 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2916 + </node> 2917 + <node id="340139033" lat="41.8780877" lon="8.8582903" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2918 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2919 + </node> 2920 + <node id="340139034" lat="41.8777463" lon="8.8582519" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:52Z"> 2921 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2922 + </node> 2923 + <node id="340139035" lat="41.8773463" lon="8.8580629" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2924 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2925 + </node> 2926 + <node id="340139036" lat="41.8767008" lon="8.8580021" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:59Z"> 2927 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2928 + </node> 2929 + <node id="340139037" lat="41.8763339" lon="8.8583237" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:19Z"> 2930 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2931 + </node> 2932 + <node id="340139038" lat="41.8758957" lon="8.8583387" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:43:57Z"> 2933 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2934 + </node> 2935 + <node id="340139043" lat="41.8755237" lon="8.8584560" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:00Z"> 2936 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2937 + </node> 2938 + <node id="340139044" lat="41.8752663" lon="8.8580900" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:01Z"> 2939 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2940 + </node> 2941 + <node id="340139045" lat="41.8749849" lon="8.8581272" version="3" changeset="5727930" user="Pieren" uid="17286" timestamp="2010-09-08T20:44:21Z"> 2942 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009" /> 2943 + </node> 2944 + <node id="670063590" lat="42.8069921" lon="9.3613074" version="1" changeset="4174714" user="Eric S" uid="45284" timestamp="2010-03-19T23:13:27Z"> 2945 + <tag k="description" v="Plaquette géodésique : Centre - Point vu en place en 1978" /> 2946 + <tag k="ele" v="435.17" /> 2947 + <tag k="man_made" v="survey_point" /> 2948 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 2949 + <tag k="ref" v="2B17803 - A" /> 2950 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 2951 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B17803&no_ptg=01&numero_f50=4348" /> 2952 + </node> 2953 + <node id="670063591" lat="42.8069247" lon="9.3613471" version="1" changeset="4174714" user="Eric S" uid="45284" timestamp="2010-03-19T23:13:27Z"> 2954 + <tag k="description" v="Rocher : Repère bronze PM - Point vu en place en 1978" /> 2955 + <tag k="ele" v="432.23" /> 2956 + <tag k="man_made" v="survey_point" /> 2957 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 2958 + <tag k="ref" v="2B17803 - B" /> 2959 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 2960 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B17803&no_ptg=02&numero_f50=4348" /> 2961 + </node> 2962 + <node id="670063592" lat="42.8069521" lon="9.3612712" version="1" changeset="4174714" user="Eric S" uid="45284" timestamp="2010-03-19T23:13:27Z"> 2963 + <tag k="description" v="Rocher : Tige de fer - Point vu en place en 1978" /> 2964 + <tag k="ele" v="434.51" /> 2965 + <tag k="man_made" v="survey_point" /> 2966 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 2967 + <tag k="ref" v="2B17803 - C" /> 2968 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 2969 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B17803&no_ptg=03&numero_f50=4348" /> 2970 + </node> 2971 + <node id="670063593" lat="42.8070090" lon="9.3613409" version="1" changeset="4174714" user="Eric S" uid="45284" timestamp="2010-03-19T23:13:27Z"> 2972 + <tag k="description" v="Rocher : Rivet en fer - Point vu en place en 1978" /> 2973 + <tag k="ele" v="436" /> 2974 + <tag k="man_made" v="survey_point" /> 2975 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 2976 + <tag k="ref" v="2B17803 - D" /> 2977 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 2978 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B17803&no_ptg=04&numero_f50=4348" /> 2979 + </node> 2980 + <node id="670063594" lat="42.3004079" lon="9.4011263" version="2" changeset="4184201" user="xybot" uid="70696" timestamp="2010-03-20T20:37:48Z"> 2981 + <tag k="description" v="Rocher : Rivet en fer Est - Point vu en place en 1948" /> 2982 + <tag k="ele" v="1266.51" /> 2983 + <tag k="man_made" v="survey_point" /> 2984 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 2985 + <tag k="ref" v="2B17901 -" /> 2986 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 2987 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B17901&no_ptg=01&numero_f50=4350" /> 2988 + </node> 2989 + <node id="670063595" lat="42.3004321" lon="9.4010972" version="1" changeset="4174714" user="Eric S" uid="45284" timestamp="2010-03-19T23:13:27Z"> 2990 + <tag k="description" v="Rocher : Rivet en fer Ouest - Point vu en place en 1948" /> 2991 + <tag k="ele" v="1266.67" /> 2992 + <tag k="man_made" v="survey_point" /> 2993 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 2994 + <tag k="ref" v="2B17901 - A" /> 2995 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 2996 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B17901&no_ptg=02&numero_f50=4350" /> 2997 + </node> 2998 + <node id="670063596" lat="42.3099435" lon="9.4145124" version="2" changeset="4184201" user="xybot" uid="70696" timestamp="2010-03-20T20:37:48Z"> 2999 + <tag k="description" v="Clocher : Centre boule - Point vu en place en 2004" /> 3000 + <tag k="ele" v="628.7" /> 3001 + <tag k="man_made" v="survey_point" /> 3002 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 3003 + <tag k="ref" v="2B179A -" /> 3004 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 3005 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B179A&no_ptg=01&numero_f50=4350" /> 3006 + </node> 3007 + <node id="670063597" lat="42.5765876" lon="9.0803628" version="2" changeset="4184201" user="xybot" uid="70696" timestamp="2010-03-20T20:37:49Z"> 3008 + <tag k="description" v="Borne en granit gravée IGN 1951, au ras du sol - Point vu en place en 1959" /> 3009 + <tag k="ele" v="819.9" /> 3010 + <tag k="man_made" v="survey_point" /> 3011 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 3012 + <tag k="ref" v="2B18001 -" /> 3013 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 3014 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B18001&no_ptg=01&numero_f50=4249" /> 3015 + </node> 3016 + <node id="670063598" lat="42.5765962" lon="9.0803679" version="1" changeset="4174714" user="Eric S" uid="45284" timestamp="2010-03-19T23:13:27Z"> 3017 + <tag k="description" v="Rocher : Repère bronze GM scellé Nord - Point vu en place en 1959" /> 3018 + <tag k="ele" v="820.12" /> 3019 + <tag k="man_made" v="survey_point" /> 3020 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 3021 + <tag k="ref" v="2B18001 - A" /> 3022 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 3023 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B18001&no_ptg=02&numero_f50=4249" /> 3024 + </node> 3025 + <node id="670063599" lat="42.5765782" lon="9.0803634" version="1" changeset="4174714" user="Eric S" uid="45284" timestamp="2010-03-19T23:13:27Z"> 3026 + <tag k="description" v="Rocher : Repère bronze GM scellé Sud - Point vu en place en 1959" /> 3027 + <tag k="ele" v="820.13" /> 3028 + <tag k="man_made" v="survey_point" /> 3029 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 3030 + <tag k="ref" v="2B18001 - B" /> 3031 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 3032 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B18001&no_ptg=03&numero_f50=4249" /> 3033 + </node> 3034 + <node id="670063600" lat="42.5765884" lon="9.0803408" version="1" changeset="4174714" user="Eric S" uid="45284" timestamp="2010-03-19T23:13:27Z"> 3035 + <tag k="description" v="Rocher : Repère en fer scellé Ouest - Point vu en place en 1959" /> 3036 + <tag k="ele" v="819.84" /> 3037 + <tag k="man_made" v="survey_point" /> 3038 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 3039 + <tag k="ref" v="2B18001 - C" /> 3040 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 3041 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B18001&no_ptg=04&numero_f50=4249" /> 3042 + </node> 3043 + <node id="670063601" lat="42.6345901" lon="9.1033617" version="2" changeset="4184201" user="xybot" uid="70696" timestamp="2010-03-20T20:37:49Z"> 3044 + <tag k="description" v="Borne en granit gravée IGN 1957 - Point vu en place en 1978" /> 3045 + <tag k="ele" v="238.96" /> 3046 + <tag k="man_made" v="survey_point" /> 3047 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 3048 + <tag k="ref" v="2B18002 -" /> 3049 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 3050 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B18002&no_ptg=01&numero_f50=4249" /> 3051 + </node> 3052 + <node id="670063602" lat="42.6074666" lon="9.1147003" version="2" changeset="4184201" user="xybot" uid="70696" timestamp="2010-03-20T20:37:50Z"> 3053 + <tag k="description" v="Borne en granit gravée IGN et 1957 - Point vu en place en 1959" /> 3054 + <tag k="ele" v="361.96" /> 3055 + <tag k="man_made" v="survey_point" /> 3056 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 3057 + <tag k="ref" v="2B18003 -" /> 3058 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 3059 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B18003&no_ptg=01&numero_f50=4249" /> 3060 + </node> 3061 + <node id="670063603" lat="42.5785755" lon="9.1276855" version="2" changeset="4184201" user="xybot" uid="70696" timestamp="2010-03-20T20:37:51Z"> 3062 + <tag k="description" v="Borne en granit gravée IGN et 1957 - Point vu en place en 1959" /> 3063 + <tag k="ele" v="652.04" /> 3064 + <tag k="man_made" v="survey_point" /> 3065 + <tag k="note" v="Ne pas déplacer ce point, cf. - Do not move this node, see - http://wiki.openstreetmap.org/wiki/WikiProject_France/Repères_Géodésiques#Permanence_des_rep.C3.A8res" /> 3066 + <tag k="ref" v="2B18004 -" /> 3067 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 3068 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_point.asp?num_site=2B18004&no_ptg=01&numero_f50=4249" /> 3069 + </node> 3070 + <way id="41082246" version="1" changeset="2528186" uid="44329" user="aikon" timestamp="2009-09-18T21:13:26Z"> 3071 + <nd ref="500895000"/> 3072 + <nd ref="500895003"/> 3073 + <nd ref="500895006"/> 3074 + <nd ref="500895009"/> 3075 + <nd ref="500895014"/> 3076 + <nd ref="500895017"/> 3077 + <nd ref="500895021"/> 3078 + <nd ref="500895023"/> 3079 + <nd ref="500895025"/> 3080 + <nd ref="500895029"/> 3081 + <nd ref="500895032"/> 3082 + <nd ref="500895036"/> 3083 + <nd ref="500895038"/> 3084 + <nd ref="500895042"/> 3085 + <nd ref="500895044"/> 3086 + <nd ref="500895047"/> 3087 + <nd ref="500895048"/> 3088 + <nd ref="500895049"/> 3089 + <nd ref="500895050"/> 3090 + <nd ref="500895051"/> 3091 + <nd ref="500895053"/> 3092 + <nd ref="500894926"/> 3093 + <tag k="waterway" v="stream" /> 3094 + </way> 3095 + <way id="41082248" version="2" changeset="8497828" uid="179778" user="JulienBalas" timestamp="2011-06-20T19:19:46Z"> 3096 + <nd ref="500881744"/> 3097 + <nd ref="500895056"/> 3098 + <tag k="bridge" v="yes" /> 3099 + <tag k="highway" v="tertiary" /> 3100 + <tag k="layer" v="1" /> 3101 + <tag k="ref" v="D 29" /> 3102 + </way> 3103 + <way id="41082249" version="2" changeset="8497828" uid="179778" user="JulienBalas" timestamp="2011-06-20T19:19:45Z"> 3104 + <nd ref="500895056"/> 3105 + <nd ref="258570520"/> 3106 + <nd ref="500881745"/> 3107 + <nd ref="500881746"/> 3108 + <nd ref="258570522"/> 3109 + <nd ref="258570523"/> 3110 + <nd ref="500881747"/> 3111 + <nd ref="258570524"/> 3112 + <nd ref="258570526"/> 3113 + <nd ref="500881748"/> 3114 + <nd ref="258570527"/> 3115 + <nd ref="258570528"/> 3116 + <nd ref="258570529"/> 3117 + <nd ref="500881749"/> 3118 + <nd ref="258570530"/> 3119 + <nd ref="500894809"/> 3120 + <nd ref="258570531"/> 3121 + <tag k="highway" v="tertiary" /> 3122 + <tag k="ref" v="D 29" /> 3123 + </way> 3124 + <way id="41082471" version="1" changeset="2528233" uid="44329" user="aikon" timestamp="2009-09-18T21:18:08Z"> 3125 + <nd ref="500897895"/> 3126 + <nd ref="500897896"/> 3127 + <nd ref="500897897"/> 3128 + <nd ref="500897898"/> 3129 + <nd ref="500897899"/> 3130 + <nd ref="500897900"/> 3131 + <nd ref="500897884"/> 3132 + <tag k="waterway" v="stream" /> 3133 + </way> 3134 + <way id="41082472" version="1" changeset="2528233" uid="44329" user="aikon" timestamp="2009-09-18T21:18:08Z"> 3135 + <nd ref="500897901"/> 3136 + <nd ref="500897902"/> 3137 + <nd ref="500897903"/> 3138 + <nd ref="500897904"/> 3139 + <nd ref="500897887"/> 3140 + <tag k="waterway" v="stream" /> 3141 + </way> 3142 + <way id="41082473" version="1" changeset="2528233" uid="44329" user="aikon" timestamp="2009-09-18T21:18:09Z"> 3143 + <nd ref="500897905"/> 3144 + <nd ref="500897906"/> 3145 + <nd ref="500897907"/> 3146 + <nd ref="500897908"/> 3147 + <nd ref="500897909"/> 3148 + <nd ref="500897910"/> 3149 + <nd ref="500897911"/> 3150 + <nd ref="500897912"/> 3151 + <nd ref="500897913"/> 3152 + <nd ref="500897914"/> 3153 + <nd ref="500897915"/> 3154 + <nd ref="500897916"/> 3155 + <nd ref="500897917"/> 3156 + <nd ref="500897918"/> 3157 + <nd ref="500897919"/> 3158 + <nd ref="500897920"/> 3159 + <nd ref="500897921"/> 3160 + <nd ref="500897922"/> 3161 + <nd ref="500897923"/> 3162 + <nd ref="500897924"/> 3163 + <nd ref="500897925"/> 3164 + <nd ref="500897926"/> 3165 + <nd ref="500897927"/> 3166 + <nd ref="500897928"/> 3167 + <tag k="waterway" v="stream" /> 3168 + </way> 3169 + <way id="41082474" version="1" changeset="2528233" uid="44329" user="aikon" timestamp="2009-09-18T21:18:09Z"> 3170 + <nd ref="500897934"/> 3171 + <nd ref="500897933"/> 3172 + <nd ref="500897932"/> 3173 + <nd ref="500897931"/> 3174 + <nd ref="500897930"/> 3175 + <nd ref="500897929"/> 3176 + <nd ref="500897924"/> 3177 + <tag k="waterway" v="stream" /> 3178 + </way> 3179 + <way id="41082475" version="1" changeset="2528233" uid="44329" user="aikon" timestamp="2009-09-18T21:18:09Z"> 3180 + <nd ref="500897935"/> 3181 + <nd ref="500897936"/> 3182 + <nd ref="500897937"/> 3183 + <nd ref="500897938"/> 3184 + <nd ref="500897939"/> 3185 + <nd ref="500897877"/> 3186 + <tag k="waterway" v="stream" /> 3187 + </way> 3188 + <way id="70726333" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:01Z"> 3189 + <nd ref="843485322"/> 3190 + <nd ref="843485530"/> 3191 + <nd ref="843486958"/> 3192 + <nd ref="843487346"/> 3193 + <nd ref="843485322"/> 3194 + <tag k="building" v="yes" /> 3195 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3196 + </way> 3197 + <way id="70726334" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:01Z"> 3198 + <nd ref="843488060"/> 3199 + <nd ref="843486048"/> 3200 + <nd ref="843487086"/> 3201 + <nd ref="843487613"/> 3202 + <nd ref="843487825"/> 3203 + <nd ref="843485181"/> 3204 + <nd ref="843487682"/> 3205 + <nd ref="843485378"/> 3206 + <nd ref="843488060"/> 3207 + <tag k="building" v="yes" /> 3208 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3209 + </way> 3210 + <way id="70726335" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:01Z"> 3211 + <nd ref="843485442"/> 3212 + <nd ref="843488174"/> 3213 + <nd ref="843486244"/> 3214 + <nd ref="843487492"/> 3215 + <nd ref="843485442"/> 3216 + <tag k="building" v="yes" /> 3217 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3218 + </way> 3219 + <way id="70726336" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:01Z"> 3220 + <nd ref="843484837"/> 3221 + <nd ref="843486602"/> 3222 + <nd ref="843485781"/> 3223 + <nd ref="843487408"/> 3224 + <nd ref="843484837"/> 3225 + <tag k="building" v="yes" /> 3226 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3227 + </way> 3228 + <way id="70726337" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:02Z"> 3229 + <nd ref="843486620"/> 3230 + <nd ref="843486352"/> 3231 + <nd ref="843485665"/> 3232 + <nd ref="843487778"/> 3233 + <nd ref="843486620"/> 3234 + <tag k="building" v="yes" /> 3235 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3236 + </way> 3237 + <way id="70726338" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:02Z"> 3238 + <nd ref="843487215"/> 3239 + <nd ref="843487821"/> 3240 + <nd ref="843487803"/> 3241 + <nd ref="843485694"/> 3242 + <nd ref="843487215"/> 3243 + <tag k="building" v="yes" /> 3244 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3245 + </way> 3246 + <way id="70726339" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:02Z"> 3247 + <nd ref="843486628"/> 3248 + <nd ref="843487175"/> 3249 + <nd ref="843487708"/> 3250 + <nd ref="843485190"/> 3251 + <nd ref="843486569"/> 3252 + <nd ref="843487824"/> 3253 + <nd ref="843485521"/> 3254 + <nd ref="843485503"/> 3255 + <nd ref="843486628"/> 3256 + <tag k="building" v="yes" /> 3257 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3258 + </way> 3259 + <way id="70726340" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:02Z"> 3260 + <nd ref="843486975"/> 3261 + <nd ref="843486545"/> 3262 + <nd ref="843485082"/> 3263 + <nd ref="843486800"/> 3264 + <nd ref="843487504"/> 3265 + <nd ref="843486975"/> 3266 + <tag k="building" v="yes" /> 3267 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3268 + </way> 3269 + <way id="70726343" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:02Z"> 3270 + <nd ref="843486929"/> 3271 + <nd ref="843487598"/> 3272 + <nd ref="843487515"/> 3273 + <nd ref="843487645"/> 3274 + <nd ref="843486929"/> 3275 + <tag k="building" v="yes" /> 3276 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3277 + </way> 3278 + <way id="70726344" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:03Z"> 3279 + <nd ref="843487414"/> 3280 + <nd ref="843485948"/> 3281 + <nd ref="843486639"/> 3282 + <nd ref="843487084"/> 3283 + <nd ref="843486778"/> 3284 + <nd ref="843487414"/> 3285 + <tag k="building" v="yes" /> 3286 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3287 + </way> 3288 + <way id="70726347" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:03Z"> 3289 + <nd ref="843486756"/> 3290 + <nd ref="843486442"/> 3291 + <nd ref="843486117"/> 3292 + <nd ref="843486818"/> 3293 + <nd ref="843486756"/> 3294 + <tag k="building" v="yes" /> 3295 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3296 + </way> 3297 + <way id="70726349" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:03Z"> 3298 + <nd ref="843487973"/> 3299 + <nd ref="843484824"/> 3300 + <nd ref="843484834"/> 3301 + <nd ref="843487926"/> 3302 + <nd ref="843485981"/> 3303 + <nd ref="843485202"/> 3304 + <nd ref="843487973"/> 3305 + <tag k="building" v="yes" /> 3306 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3307 + </way> 3308 + <way id="70726352" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:03Z"> 3309 + <nd ref="843486257"/> 3310 + <nd ref="843487134"/> 3311 + <nd ref="843485777"/> 3312 + <nd ref="843487727"/> 3313 + <nd ref="843486257"/> 3314 + <tag k="building" v="yes" /> 3315 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3316 + <tag k="wall" v="no" /> 3317 + </way> 3318 + <way id="70726353" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:03Z"> 3319 + <nd ref="843486836"/> 3320 + <nd ref="843485901"/> 3321 + <nd ref="843486052"/> 3322 + <nd ref="843486675"/> 3323 + <nd ref="843486836"/> 3324 + <tag k="building" v="yes" /> 3325 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3326 + </way> 3327 + <way id="70726356" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:03Z"> 3328 + <nd ref="843487298"/> 3329 + <nd ref="843484971"/> 3330 + <nd ref="843485953"/> 3331 + <nd ref="843485963"/> 3332 + <nd ref="843487298"/> 3333 + <tag k="building" v="yes" /> 3334 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3335 + </way> 3336 + <way id="70726358" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:04Z"> 3337 + <nd ref="843486812"/> 3338 + <nd ref="843488129"/> 3339 + <nd ref="843486565"/> 3340 + <nd ref="843485601"/> 3341 + <nd ref="843487888"/> 3342 + <nd ref="843487074"/> 3343 + <nd ref="843486481"/> 3344 + <nd ref="843486114"/> 3345 + <nd ref="843486812"/> 3346 + <tag k="building" v="yes" /> 3347 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3348 + </way> 3349 + <way id="70726361" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:04Z"> 3350 + <nd ref="843485036"/> 3351 + <nd ref="843487748"/> 3352 + <nd ref="843487968"/> 3353 + <nd ref="843486570"/> 3354 + <nd ref="843485036"/> 3355 + <tag k="building" v="yes" /> 3356 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3357 + </way> 3358 + <way id="70726363" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:04Z"> 3359 + <nd ref="843486855"/> 3360 + <nd ref="843487486"/> 3361 + <nd ref="843484833"/> 3362 + <nd ref="843485383"/> 3363 + <nd ref="843486855"/> 3364 + <tag k="building" v="yes" /> 3365 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3366 + </way> 3367 + <way id="70726365" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:04Z"> 3368 + <nd ref="843487293"/> 3369 + <nd ref="843485714"/> 3370 + <nd ref="843487675"/> 3371 + <nd ref="843487180"/> 3372 + <nd ref="843487361"/> 3373 + <nd ref="843485467"/> 3374 + <nd ref="843487293"/> 3375 + <tag k="building" v="yes" /> 3376 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3377 + </way> 3378 + <way id="70726367" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:04Z"> 3379 + <nd ref="843486864"/> 3380 + <nd ref="843486302"/> 3381 + <nd ref="843485349"/> 3382 + <nd ref="843487106"/> 3383 + <nd ref="843486407"/> 3384 + <nd ref="843486741"/> 3385 + <nd ref="843486864"/> 3386 + <tag k="building" v="yes" /> 3387 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3388 + </way> 3389 + <way id="70726370" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:05Z"> 3390 + <nd ref="843487410"/> 3391 + <nd ref="843487781"/> 3392 + <nd ref="843486422"/> 3393 + <nd ref="843486072"/> 3394 + <nd ref="843485625"/> 3395 + <nd ref="843485517"/> 3396 + <nd ref="843486801"/> 3397 + <nd ref="843487865"/> 3398 + <nd ref="843486096"/> 3399 + <nd ref="843484875"/> 3400 + <nd ref="843487410"/> 3401 + <tag k="building" v="yes" /> 3402 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3403 + </way> 3404 + <way id="70726371" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:05Z"> 3405 + <nd ref="843486253"/> 3406 + <nd ref="843485284"/> 3407 + <nd ref="843485866"/> 3408 + <nd ref="843487896"/> 3409 + <nd ref="843486253"/> 3410 + <tag k="building" v="yes" /> 3411 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3412 + </way> 3413 + <way id="70726373" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:03:05Z"> 3414 + <nd ref="843485357"/> 3415 + <nd ref="843485672"/> 3416 + <nd ref="843486914"/> 3417 + <nd ref="843486512"/> 3418 + <nd ref="843485712"/> 3419 + <nd ref="843487846"/> 3420 + <nd ref="843485357"/> 3421 + <tag k="building" v="yes" /> 3422 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3423 + </way> 3424 + <way id="74698718" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:35Z"> 3425 + <nd ref="882360623"/> 3426 + <nd ref="882373679"/> 3427 + <nd ref="882378707"/> 3428 + <nd ref="882381015"/> 3429 + <nd ref="882360623"/> 3430 + <tag k="building" v="yes" /> 3431 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3432 + <tag k="wall" v="no" /> 3433 + </way> 3434 + <way id="74698719" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:35Z"> 3435 + <nd ref="882361480"/> 3436 + <nd ref="882362762"/> 3437 + <tag k="building" v="yes" /> 3438 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3439 + <tag k="wall" v="no" /> 3440 + </way> 3441 + <way id="74698720" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:36Z"> 3442 + <nd ref="882366322"/> 3443 + <nd ref="882378595"/> 3444 + <nd ref="882360785"/> 3445 + <nd ref="882360975"/> 3446 + <nd ref="882366322"/> 3447 + <tag k="building" v="yes" /> 3448 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3449 + <tag k="wall" v="no" /> 3450 + </way> 3451 + <way id="74698721" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:36Z"> 3452 + <nd ref="882358007"/> 3453 + <nd ref="882367990"/> 3454 + <nd ref="882368385"/> 3455 + <nd ref="882363632"/> 3456 + <nd ref="882363402"/> 3457 + <nd ref="882379737"/> 3458 + <nd ref="882358007"/> 3459 + <tag k="building" v="yes" /> 3460 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3461 + </way> 3462 + <way id="74698722" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:36Z"> 3463 + <nd ref="882377831"/> 3464 + <nd ref="882370133"/> 3465 + <nd ref="882373079"/> 3466 + <nd ref="882362330"/> 3467 + <nd ref="882377831"/> 3468 + <tag k="building" v="yes" /> 3469 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3470 + </way> 3471 + <way id="74698723" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:36Z"> 3472 + <nd ref="882367939"/> 3473 + <nd ref="882377417"/> 3474 + <nd ref="882375269"/> 3475 + <nd ref="882364807"/> 3476 + <nd ref="882378454"/> 3477 + <nd ref="882367939"/> 3478 + <tag k="building" v="yes" /> 3479 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3480 + </way> 3481 + <way id="74698724" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:36Z"> 3482 + <nd ref="882373533"/> 3483 + <nd ref="882377363"/> 3484 + <nd ref="882364994"/> 3485 + <nd ref="882378638"/> 3486 + <nd ref="882373533"/> 3487 + <tag k="building" v="yes" /> 3488 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3489 + <tag k="wall" v="no" /> 3490 + </way> 3491 + <way id="74698725" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:36Z"> 3492 + <nd ref="882376487"/> 3493 + <nd ref="882367394"/> 3494 + <nd ref="882361735"/> 3495 + <nd ref="882378078"/> 3496 + <nd ref="882376487"/> 3497 + <tag k="building" v="yes" /> 3498 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3499 + </way> 3500 + <way id="74698726" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:37Z"> 3501 + <nd ref="882381306"/> 3502 + <nd ref="882359785"/> 3503 + <nd ref="882369713"/> 3504 + <nd ref="882363299"/> 3505 + <nd ref="882360205"/> 3506 + <nd ref="882381306"/> 3507 + <tag k="building" v="yes" /> 3508 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3509 + </way> 3510 + <way id="74698727" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:37Z"> 3511 + <nd ref="882362636"/> 3512 + <nd ref="882364828"/> 3513 + <nd ref="882367527"/> 3514 + <nd ref="882368451"/> 3515 + <nd ref="882367358"/> 3516 + <nd ref="882366004"/> 3517 + <nd ref="882368416"/> 3518 + <nd ref="882378927"/> 3519 + <nd ref="882380303"/> 3520 + <nd ref="882360378"/> 3521 + <nd ref="882366398"/> 3522 + <nd ref="882364295"/> 3523 + <nd ref="882362636"/> 3524 + <tag k="building" v="yes" /> 3525 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3526 + </way> 3527 + <way id="74698728" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:37Z"> 3528 + <nd ref="882367627"/> 3529 + <nd ref="882365641"/> 3530 + <nd ref="882368656"/> 3531 + <nd ref="882366022"/> 3532 + <nd ref="882375845"/> 3533 + <nd ref="882370949"/> 3534 + <nd ref="882368647"/> 3535 + <nd ref="882377032"/> 3536 + <nd ref="882369728"/> 3537 + <nd ref="882367445"/> 3538 + <nd ref="882367627"/> 3539 + <tag k="building" v="yes" /> 3540 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3541 + </way> 3542 + <way id="74698729" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:37Z"> 3543 + <nd ref="882380879"/> 3544 + <nd ref="882363266"/> 3545 + <nd ref="882378248"/> 3546 + <nd ref="882372534"/> 3547 + <nd ref="882373564"/> 3548 + <nd ref="882362634"/> 3549 + <nd ref="882374687"/> 3550 + <nd ref="882381134"/> 3551 + <nd ref="882380879"/> 3552 + <tag k="building" v="yes" /> 3553 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3554 + </way> 3555 + <way id="74698731" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:37Z"> 3556 + <nd ref="882369026"/> 3557 + <nd ref="882377049"/> 3558 + <nd ref="882363070"/> 3559 + <nd ref="882365731"/> 3560 + <nd ref="882369026"/> 3561 + <tag k="building" v="yes" /> 3562 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3563 + </way> 3564 + <way id="74698732" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:37Z"> 3565 + <nd ref="882364219"/> 3566 + <nd ref="882357824"/> 3567 + <nd ref="882368711"/> 3568 + <nd ref="882380353"/> 3569 + <nd ref="882369526"/> 3570 + <nd ref="882361772"/> 3571 + <nd ref="882364219"/> 3572 + <tag k="building" v="yes" /> 3573 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3574 + </way> 3575 + <way id="74698733" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:38Z"> 3576 + <nd ref="882361809"/> 3577 + <nd ref="882373445"/> 3578 + <nd ref="882365935"/> 3579 + <nd ref="882365561"/> 3580 + <nd ref="882361809"/> 3581 + <tag k="building" v="yes" /> 3582 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3583 + </way> 3584 + <way id="74698734" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:38Z"> 3585 + <nd ref="882360116"/> 3586 + <nd ref="882378355"/> 3587 + <nd ref="882366973"/> 3588 + <nd ref="882369372"/> 3589 + <nd ref="882360116"/> 3590 + <tag k="building" v="yes" /> 3591 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3592 + </way> 3593 + <way id="74698735" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:38Z"> 3594 + <nd ref="882364658"/> 3595 + <nd ref="882366546"/> 3596 + <nd ref="882365618"/> 3597 + <nd ref="882379739"/> 3598 + <nd ref="882374666"/> 3599 + <nd ref="882364658"/> 3600 + <tag k="building" v="yes" /> 3601 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3602 + </way> 3603 + <way id="74698736" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:38Z"> 3604 + <nd ref="882361950"/> 3605 + <nd ref="882367901"/> 3606 + <nd ref="882357719"/> 3607 + <nd ref="882379771"/> 3608 + <nd ref="882375451"/> 3609 + <nd ref="882371387"/> 3610 + <nd ref="882367275"/> 3611 + <nd ref="882358743"/> 3612 + <nd ref="882365105"/> 3613 + <nd ref="882363859"/> 3614 + <nd ref="882372694"/> 3615 + <nd ref="882381358"/> 3616 + <nd ref="882361950"/> 3617 + <tag k="building" v="yes" /> 3618 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3619 + </way> 3620 + <way id="74698737" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:38Z"> 3621 + <nd ref="882368822"/> 3622 + <nd ref="882376929"/> 3623 + <nd ref="882378305"/> 3624 + <nd ref="882358483"/> 3625 + <nd ref="882368822"/> 3626 + <tag k="building" v="yes" /> 3627 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3628 + </way> 3629 + <way id="74698738" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:38Z"> 3630 + <nd ref="882359554"/> 3631 + <nd ref="882370396"/> 3632 + <nd ref="882360491"/> 3633 + <nd ref="882366841"/> 3634 + <nd ref="882359554"/> 3635 + <tag k="building" v="yes" /> 3636 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3637 + </way> 3638 + <way id="74698739" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:38Z"> 3639 + <nd ref="882370837"/> 3640 + <nd ref="882377003"/> 3641 + <nd ref="882361925"/> 3642 + <nd ref="882376783"/> 3643 + <nd ref="882367014"/> 3644 + <nd ref="882370837"/> 3645 + <tag k="building" v="yes" /> 3646 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3647 + </way> 3648 + <way id="74698740" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:39Z"> 3649 + <nd ref="882366134"/> 3650 + <nd ref="882358898"/> 3651 + <nd ref="882378958"/> 3652 + <nd ref="882359652"/> 3653 + <nd ref="882363591"/> 3654 + <nd ref="882366796"/> 3655 + <nd ref="882362408"/> 3656 + <nd ref="882367869"/> 3657 + <nd ref="882366134"/> 3658 + <tag k="building" v="yes" /> 3659 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3660 + </way> 3661 + <way id="74698741" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:39Z"> 3662 + <nd ref="882371801"/> 3663 + <nd ref="882368439"/> 3664 + <nd ref="882378953"/> 3665 + <nd ref="882364017"/> 3666 + <nd ref="882363911"/> 3667 + <nd ref="882379882"/> 3668 + <nd ref="882361015"/> 3669 + <nd ref="882371801"/> 3670 + <tag k="building" v="yes" /> 3671 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3672 + <tag k="wall" v="no" /> 3673 + </way> 3674 + <way id="74698742" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:39Z"> 3675 + <nd ref="882361097"/> 3676 + <nd ref="882364593"/> 3677 + <nd ref="882372656"/> 3678 + <nd ref="882364002"/> 3679 + <nd ref="882361097"/> 3680 + <tag k="building" v="yes" /> 3681 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3682 + <tag k="wall" v="no" /> 3683 + </way> 3684 + <way id="74698743" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:39Z"> 3685 + <nd ref="882378019"/> 3686 + <nd ref="882360027"/> 3687 + <nd ref="882372361"/> 3688 + <nd ref="882380458"/> 3689 + <nd ref="882378019"/> 3690 + <tag k="building" v="yes" /> 3691 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3692 + <tag k="wall" v="no" /> 3693 + </way> 3694 + <way id="74698744" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:39Z"> 3695 + <nd ref="882381256"/> 3696 + <nd ref="882361682"/> 3697 + <nd ref="882359559"/> 3698 + <nd ref="882377304"/> 3699 + <nd ref="882367844"/> 3700 + <nd ref="882381256"/> 3701 + <tag k="building" v="yes" /> 3702 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3703 + </way> 3704 + <way id="74698745" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:40Z"> 3705 + <nd ref="882367676"/> 3706 + <nd ref="882358285"/> 3707 + <nd ref="882371234"/> 3708 + <nd ref="882375437"/> 3709 + <nd ref="882367676"/> 3710 + <tag k="building" v="yes" /> 3711 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3712 + </way> 3713 + <way id="74698746" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:40Z"> 3714 + <nd ref="882361625"/> 3715 + <nd ref="882357318"/> 3716 + <nd ref="882364802"/> 3717 + <nd ref="882363307"/> 3718 + <nd ref="882376405"/> 3719 + <nd ref="882380369"/> 3720 + <nd ref="882361625"/> 3721 + <tag k="building" v="yes" /> 3722 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3723 + </way> 3724 + <way id="74698747" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:40Z"> 3725 + <nd ref="882372262"/> 3726 + <nd ref="882357451"/> 3727 + <nd ref="882363703"/> 3728 + <nd ref="882368089"/> 3729 + <nd ref="882372262"/> 3730 + <tag k="building" v="yes" /> 3731 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3732 + <tag k="wall" v="no" /> 3733 + </way> 3734 + <way id="74698748" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:40Z"> 3735 + <nd ref="882362986"/> 3736 + <nd ref="882373645"/> 3737 + <nd ref="882364131"/> 3738 + <nd ref="882377635"/> 3739 + <nd ref="882372059"/> 3740 + <nd ref="882362986"/> 3741 + <tag k="building" v="yes" /> 3742 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3743 + </way> 3744 + <way id="74698749" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:40Z"> 3745 + <nd ref="882362108"/> 3746 + <nd ref="882368969"/> 3747 + <nd ref="882365066"/> 3748 + <nd ref="882367994"/> 3749 + <nd ref="882362108"/> 3750 + <tag k="building" v="yes" /> 3751 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3752 + </way> 3753 + <way id="74698750" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:40Z"> 3754 + <nd ref="882368135"/> 3755 + <nd ref="882366607"/> 3756 + <nd ref="882361113"/> 3757 + <nd ref="882360244"/> 3758 + <nd ref="882371755"/> 3759 + <nd ref="882368135"/> 3760 + <tag k="building" v="yes" /> 3761 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3762 + </way> 3763 + <way id="74698751" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:40Z"> 3764 + <nd ref="882380645"/> 3765 + <nd ref="882365633"/> 3766 + <nd ref="882369675"/> 3767 + <nd ref="882366725"/> 3768 + <nd ref="882362764"/> 3769 + <nd ref="882373541"/> 3770 + <nd ref="882380645"/> 3771 + <tag k="building" v="yes" /> 3772 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3773 + </way> 3774 + <way id="74698752" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:41Z"> 3775 + <nd ref="882363882"/> 3776 + <nd ref="882374102"/> 3777 + <nd ref="882381488"/> 3778 + <nd ref="882366367"/> 3779 + <nd ref="882364500"/> 3780 + <nd ref="882363882"/> 3781 + <tag k="building" v="yes" /> 3782 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3783 + </way> 3784 + <way id="74698753" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:41Z"> 3785 + <nd ref="882363168"/> 3786 + <nd ref="882377961"/> 3787 + <nd ref="882375581"/> 3788 + <nd ref="882375721"/> 3789 + <nd ref="882363168"/> 3790 + <tag k="building" v="yes" /> 3791 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3792 + <tag k="wall" v="no" /> 3793 + </way> 3794 + <way id="74698754" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:41Z"> 3795 + <nd ref="882359232"/> 3796 + <nd ref="882364414"/> 3797 + <nd ref="882369624"/> 3798 + <nd ref="882363863"/> 3799 + <nd ref="882359232"/> 3800 + <tag k="building" v="yes" /> 3801 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3802 + </way> 3803 + <way id="74698755" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:41Z"> 3804 + <nd ref="882362220"/> 3805 + <nd ref="882380881"/> 3806 + <tag k="building" v="yes" /> 3807 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3808 + </way> 3809 + <way id="74698756" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:41Z"> 3810 + <nd ref="882360302"/> 3811 + <nd ref="882374957"/> 3812 + <nd ref="882372306"/> 3813 + <nd ref="882380407"/> 3814 + <nd ref="882360302"/> 3815 + <tag k="building" v="yes" /> 3816 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3817 + </way> 3818 + <way id="74698757" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:41Z"> 3819 + <nd ref="882369908"/> 3820 + <nd ref="882358808"/> 3821 + <nd ref="882376165"/> 3822 + <nd ref="882364200"/> 3823 + <nd ref="882369908"/> 3824 + <tag k="building" v="yes" /> 3825 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3826 + </way> 3827 + <way id="74698758" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:51Z"> 3828 + <nd ref="882362701"/> 3829 + <nd ref="882358367"/> 3830 + <nd ref="882359924"/> 3831 + <nd ref="882362617"/> 3832 + <nd ref="882362701"/> 3833 + <tag k="building" v="yes" /> 3834 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3835 + </way> 3836 + <way id="74698759" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:51Z"> 3837 + <nd ref="882373222"/> 3838 + <nd ref="882373826"/> 3839 + <nd ref="882365419"/> 3840 + <nd ref="882365349"/> 3841 + <nd ref="882373222"/> 3842 + <tag k="building" v="yes" /> 3843 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3844 + </way> 3845 + <way id="74698760" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:51Z"> 3846 + <nd ref="882360934"/> 3847 + <nd ref="882368189"/> 3848 + <nd ref="882379941"/> 3849 + <nd ref="882365276"/> 3850 + <nd ref="882360934"/> 3851 + <tag k="building" v="yes" /> 3852 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3853 + </way> 3854 + <way id="74698761" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:52Z"> 3855 + <nd ref="882362973"/> 3856 + <nd ref="882358412"/> 3857 + <nd ref="882380039"/> 3858 + <nd ref="882380138"/> 3859 + <nd ref="882372338"/> 3860 + <nd ref="882359296"/> 3861 + <nd ref="882362973"/> 3862 + <tag k="building" v="yes" /> 3863 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3864 + </way> 3865 + <way id="74698762" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:52Z"> 3866 + <nd ref="882372056"/> 3867 + <nd ref="882376368"/> 3868 + <nd ref="882372063"/> 3869 + <nd ref="882365387"/> 3870 + <nd ref="882372056"/> 3871 + <tag k="building" v="yes" /> 3872 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3873 + <tag k="wall" v="no" /> 3874 + </way> 3875 + <way id="74698763" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:52Z"> 3876 + <nd ref="882374910"/> 3877 + <nd ref="882363295"/> 3878 + <nd ref="882363596"/> 3879 + <nd ref="882361688"/> 3880 + <nd ref="882374910"/> 3881 + <tag k="building" v="yes" /> 3882 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3883 + </way> 3884 + <way id="74698764" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:52Z"> 3885 + <nd ref="882377680"/> 3886 + <nd ref="882370060"/> 3887 + <nd ref="882366070"/> 3888 + <nd ref="882367370"/> 3889 + <nd ref="882368222"/> 3890 + <nd ref="882375658"/> 3891 + <nd ref="882377680"/> 3892 + <tag k="building" v="yes" /> 3893 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3894 + </way> 3895 + <way id="74698765" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:52Z"> 3896 + <nd ref="882372597"/> 3897 + <nd ref="882360144"/> 3898 + <nd ref="882374758"/> 3899 + <nd ref="882381068"/> 3900 + <nd ref="882372597"/> 3901 + <tag k="building" v="yes" /> 3902 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3903 + <tag k="wall" v="no" /> 3904 + </way> 3905 + <way id="74698766" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:52Z"> 3906 + <nd ref="882357202"/> 3907 + <nd ref="882369350"/> 3908 + <nd ref="882366405"/> 3909 + <nd ref="882364706"/> 3910 + <nd ref="882379154"/> 3911 + <nd ref="882357202"/> 3912 + <tag k="building" v="yes" /> 3913 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3914 + </way> 3915 + <way id="74698767" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:52Z"> 3916 + <nd ref="882378530"/> 3917 + <nd ref="882366941"/> 3918 + <nd ref="882363021"/> 3919 + <nd ref="882364327"/> 3920 + <nd ref="882366924"/> 3921 + <nd ref="882378530"/> 3922 + <tag k="building" v="yes" /> 3923 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3924 + </way> 3925 + <way id="74698768" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:52Z"> 3926 + <nd ref="882376128"/> 3927 + <nd ref="882366571"/> 3928 + <nd ref="882365177"/> 3929 + <nd ref="882374953"/> 3930 + <nd ref="882365269"/> 3931 + <nd ref="882376128"/> 3932 + <tag k="building" v="yes" /> 3933 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3934 + <tag k="wall" v="no" /> 3935 + </way> 3936 + <way id="74698769" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:53Z"> 3937 + <nd ref="882378562"/> 3938 + <nd ref="882372342"/> 3939 + <nd ref="882368110"/> 3940 + <nd ref="882368951"/> 3941 + <nd ref="882378562"/> 3942 + <tag k="building" v="yes" /> 3943 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3944 + </way> 3945 + <way id="74698770" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:53Z"> 3946 + <nd ref="882362783"/> 3947 + <nd ref="882373020"/> 3948 + <nd ref="882363217"/> 3949 + <nd ref="882368803"/> 3950 + <nd ref="882365518"/> 3951 + <nd ref="882379848"/> 3952 + <nd ref="882362783"/> 3953 + <tag k="building" v="yes" /> 3954 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3955 + </way> 3956 + <way id="74698771" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:53Z"> 3957 + <nd ref="882369471"/> 3958 + <nd ref="882372376"/> 3959 + <nd ref="882379786"/> 3960 + <nd ref="882380989"/> 3961 + <nd ref="882369471"/> 3962 + <tag k="building" v="yes" /> 3963 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3964 + </way> 3965 + <way id="74698772" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:53Z"> 3966 + <nd ref="882358354"/> 3967 + <nd ref="882360506"/> 3968 + <nd ref="882365035"/> 3969 + <nd ref="882372413"/> 3970 + <nd ref="882358354"/> 3971 + <tag k="building" v="yes" /> 3972 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3973 + <tag k="wall" v="no" /> 3974 + </way> 3975 + <way id="74698773" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:53Z"> 3976 + <nd ref="882360764"/> 3977 + <nd ref="882359473"/> 3978 + <nd ref="882372280"/> 3979 + <nd ref="882359066"/> 3980 + <nd ref="882360764"/> 3981 + <tag k="building" v="yes" /> 3982 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3983 + </way> 3984 + <way id="74698774" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:53Z"> 3985 + <nd ref="882362112"/> 3986 + <nd ref="882364451"/> 3987 + <nd ref="882367094"/> 3988 + <nd ref="882357533"/> 3989 + <nd ref="882362112"/> 3990 + <tag k="building" v="yes" /> 3991 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 3992 + </way> 3993 + <way id="74698775" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:54Z"> 3994 + <nd ref="882366890"/> 3995 + <nd ref="882362921"/> 3996 + <nd ref="882369149"/> 3997 + <nd ref="882363465"/> 3998 + <nd ref="882366890"/> 3999 + <tag k="building" v="yes" /> 4000 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 4001 + <tag k="wall" v="no" /> 4002 + </way> 4003 + <way id="74698776" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:54Z"> 4004 + <nd ref="882367571"/> 4005 + <nd ref="882373888"/> 4006 + <nd ref="882364766"/> 4007 + <nd ref="882366139"/> 4008 + <nd ref="882367571"/> 4009 + <tag k="building" v="yes" /> 4010 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 4011 + </way> 4012 + <way id="74698777" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:54Z"> 4013 + <nd ref="882369737"/> 4014 + <nd ref="882359763"/> 4015 + <nd ref="882364356"/> 4016 + <nd ref="882365737"/> 4017 + <nd ref="882364074"/> 4018 + <nd ref="882362503"/> 4019 + <nd ref="882369737"/> 4020 + <tag k="building" v="yes" /> 4021 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 4022 + <tag k="wall" v="no" /> 4023 + </way> 4024 + <way id="74698778" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:54Z"> 4025 + <nd ref="882362044"/> 4026 + <nd ref="882367872"/> 4027 + <nd ref="882379331"/> 4028 + <nd ref="882380748"/> 4029 + <nd ref="882362044"/> 4030 + <tag k="building" v="yes" /> 4031 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 4032 + <tag k="wall" v="no" /> 4033 + </way> 4034 + <way id="74698779" version="2" changeset="9197463" uid="201149" user="PierenBot" timestamp="2011-09-03T01:13:54Z"> 4035 + <nd ref="882359294"/> 4036 + <nd ref="882370057"/> 4037 + <nd ref="882363948"/> 4038 + <nd ref="882381382"/> 4039 + <nd ref="882359294"/> 4040 + <tag k="building" v="yes" /> 4041 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010" /> 4042 + </way> 4043 + <way id="132748431" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:12Z"> 4044 + <nd ref="1460385462"/> 4045 + <nd ref="1460385448"/> 4046 + <nd ref="1460385438"/> 4047 + <nd ref="1460385423"/> 4048 + <nd ref="1460385398"/> 4049 + <nd ref="1460385412"/> 4050 + <nd ref="1460385457"/> 4051 + <nd ref="1460385456"/> 4052 + <nd ref="1460385442"/> 4053 + <nd ref="1460385463"/> 4054 + <nd ref="1460385462"/> 4055 + <tag k="building" v="yes" /> 4056 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4057 + </way> 4058 + <way id="132748432" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:12Z"> 4059 + <nd ref="1460386082"/> 4060 + <nd ref="1460386077"/> 4061 + <nd ref="1460386054"/> 4062 + <nd ref="1460386090"/> 4063 + <nd ref="1460386105"/> 4064 + <nd ref="1460386104"/> 4065 + <nd ref="1460386117"/> 4066 + <nd ref="1460386116"/> 4067 + <nd ref="1460386115"/> 4068 + <nd ref="1460386107"/> 4069 + <nd ref="1460386082"/> 4070 + <tag k="building" v="yes" /> 4071 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4072 + </way> 4073 + <way id="132748433" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:12Z"> 4074 + <nd ref="1460385544"/> 4075 + <nd ref="1460385508"/> 4076 + <nd ref="1460385512"/> 4077 + <nd ref="1460385517"/> 4078 + <nd ref="1460385526"/> 4079 + <nd ref="1460385530"/> 4080 + <nd ref="1460385522"/> 4081 + <nd ref="1460385533"/> 4082 + <nd ref="1460385536"/> 4083 + <nd ref="1460385550"/> 4084 + <nd ref="1460385544"/> 4085 + <tag k="building" v="yes" /> 4086 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4087 + </way> 4088 + <way id="132748434" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:13Z"> 4089 + <nd ref="1460385146"/> 4090 + <nd ref="1460385048"/> 4091 + <nd ref="1460385050"/> 4092 + <nd ref="1460385054"/> 4093 + <nd ref="1460385043"/> 4094 + <nd ref="1460385045"/> 4095 + <nd ref="1460385039"/> 4096 + <nd ref="1460385046"/> 4097 + <nd ref="1460385060"/> 4098 + <nd ref="1460385066"/> 4099 + <nd ref="1460385161"/> 4100 + <nd ref="1460385146"/> 4101 + <tag k="building" v="yes" /> 4102 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4103 + </way> 4104 + <way id="132748435" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:13Z"> 4105 + <nd ref="1460385309"/> 4106 + <nd ref="1460385308"/> 4107 + <nd ref="1460385302"/> 4108 + <nd ref="1460385295"/> 4109 + <nd ref="1460385300"/> 4110 + <nd ref="1460385296"/> 4111 + <nd ref="1460385288"/> 4112 + <nd ref="1460385261"/> 4113 + <nd ref="1460385289"/> 4114 + <nd ref="1460385291"/> 4115 + <nd ref="1460385317"/> 4116 + <nd ref="1460385309"/> 4117 + <tag k="building" v="yes" /> 4118 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4119 + </way> 4120 + <way id="132748436" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:13Z"> 4121 + <nd ref="1460384990"/> 4122 + <nd ref="1460384984"/> 4123 + <nd ref="1460384972"/> 4124 + <nd ref="1460384969"/> 4125 + <nd ref="1460384978"/> 4126 + <nd ref="1460384977"/> 4127 + <nd ref="1460384967"/> 4128 + <nd ref="1460384960"/> 4129 + <nd ref="1460384966"/> 4130 + <nd ref="1460384971"/> 4131 + <nd ref="1460384991"/> 4132 + <nd ref="1460384990"/> 4133 + <tag k="building" v="yes" /> 4134 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4135 + </way> 4136 + <way id="132748438" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:13Z"> 4137 + <nd ref="1460384856"/> 4138 + <nd ref="1460384853"/> 4139 + <nd ref="1460384845"/> 4140 + <nd ref="1460384847"/> 4141 + <nd ref="1460384825"/> 4142 + <nd ref="1460384819"/> 4143 + <nd ref="1460384828"/> 4144 + <nd ref="1460384817"/> 4145 + <nd ref="1460384840"/> 4146 + <nd ref="1460384846"/> 4147 + <nd ref="1460384851"/> 4148 + <nd ref="1460384856"/> 4149 + <tag k="building" v="yes" /> 4150 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4151 + </way> 4152 + <way id="132748439" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:13Z"> 4153 + <nd ref="1460386035"/> 4154 + <nd ref="1460386016"/> 4155 + <nd ref="1460386015"/> 4156 + <nd ref="1460386020"/> 4157 + <nd ref="1460386031"/> 4158 + <nd ref="1460386029"/> 4159 + <nd ref="1460386062"/> 4160 + <nd ref="1460386072"/> 4161 + <nd ref="1460386101"/> 4162 + <nd ref="1460386106"/> 4163 + <nd ref="1460386039"/> 4164 + <nd ref="1460386035"/> 4165 + <tag k="building" v="yes" /> 4166 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4167 + </way> 4168 + <way id="132748443" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:14Z"> 4169 + <nd ref="1460385357"/> 4170 + <nd ref="1460385344"/> 4171 + <nd ref="1460385338"/> 4172 + <nd ref="1460385335"/> 4173 + <nd ref="1460385328"/> 4174 + <nd ref="1460385334"/> 4175 + <nd ref="1460385324"/> 4176 + <nd ref="1460385331"/> 4177 + <nd ref="1460385332"/> 4178 + <nd ref="1460385345"/> 4179 + <nd ref="1460385367"/> 4180 + <nd ref="1460385357"/> 4181 + <tag k="building" v="yes" /> 4182 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4183 + </way> 4184 + <way id="132748448" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:14Z"> 4185 + <nd ref="1460386213"/> 4186 + <nd ref="1460386221"/> 4187 + <nd ref="1460386218"/> 4188 + <nd ref="1460386233"/> 4189 + <nd ref="1460386231"/> 4190 + <nd ref="1460386245"/> 4191 + <nd ref="1460386251"/> 4192 + <nd ref="1460386246"/> 4193 + <nd ref="1460386247"/> 4194 + <nd ref="1460386232"/> 4195 + <nd ref="1460386234"/> 4196 + <nd ref="1460386215"/> 4197 + <nd ref="1460386213"/> 4198 + <tag k="building" v="yes" /> 4199 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4200 + </way> 4201 + <way id="132748450" version="1" changeset="9515932" uid="221846" user="eiger" timestamp="2011-10-09T18:50:14Z"> 4202 + <nd ref="1460385792"/> 4203 + <nd ref="1460385795"/> 4204 + <nd ref="1460385794"/> 4205 + <nd ref="1460385800"/> 4206 + <nd ref="1460385799"/> 4207 + <nd ref="1460385805"/> 4208 + <nd ref="1460385808"/> 4209 + <nd ref="1460385802"/> 4210 + <nd ref="1460385804"/> 4211 + <nd ref="1460385806"/> 4212 + <nd ref="1460385807"/> 4213 + <nd ref="1460385793"/> 4214 + <nd ref="1460385792"/> 4215 + <tag k="building" v="yes" /> 4216 + <tag k="source" v="cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011" /> 4217 + </way> 4218 + <way id="157687744" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:34Z"> 4219 + <nd ref="59857469"/> 4220 + <nd ref="1699482067"/> 4221 + <nd ref="727607080"/> 4222 + <tag k="highway" v="primary" /> 4223 + <tag k="oneway" v="yes" /> 4224 + <tag k="ref" v="N 198" /> 4225 + </way> 4226 + <way id="157687745" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:34Z"> 4227 + <nd ref="727607080"/> 4228 + <nd ref="1699482068"/> 4229 + <nd ref="386850835"/> 4230 + <tag k="highway" v="primary" /> 4231 + <tag k="oneway" v="yes" /> 4232 + <tag k="ref" v="N 198" /> 4233 + </way> 4234 + <way id="157687746" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:34Z"> 4235 + <nd ref="257061393"/> 4236 + <nd ref="257061396"/> 4237 + <nd ref="257061397"/> 4238 + <tag k="highway" v="residential" /> 4239 + <tag k="name" v="Quai Sotta Portigliola" /> 4240 + <tag k="oneway" v="yes" /> 4241 + </way> 4242 + <way id="157687747" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:35Z"> 4243 + <nd ref="257061397"/> 4244 + <nd ref="1699481985"/> 4245 + <nd ref="257061399"/> 4246 + <nd ref="257061400"/> 4247 + <nd ref="1699481990"/> 4248 + <nd ref="288080667"/> 4249 + <nd ref="288080666"/> 4250 + <nd ref="1699481988"/> 4251 + <nd ref="1699481987"/> 4252 + <nd ref="1699481983"/> 4253 + <tag k="highway" v="residential" /> 4254 + <tag k="name" v="Quai del Ferro" /> 4255 + <tag k="oneway" v="yes" /> 4256 + </way> 4257 + <way id="157687748" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:35Z"> 4258 + <nd ref="14468464"/> 4259 + <nd ref="1699481975"/> 4260 + <nd ref="14468414"/> 4261 + <nd ref="1129561602"/> 4262 + <nd ref="257061368"/> 4263 + <nd ref="1129561660"/> 4264 + <nd ref="945399286"/> 4265 + <nd ref="288666364"/> 4266 + <nd ref="14468415"/> 4267 + <nd ref="257061369"/> 4268 + <nd ref="257061371"/> 4269 + <nd ref="14468416"/> 4270 + <nd ref="288080197"/> 4271 + <nd ref="14468411"/> 4272 + <tag k="highway" v="tertiary" /> 4273 + <tag k="oneway" v="yes" /> 4274 + </way> 4275 + <way id="157687749" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:35Z"> 4276 + <nd ref="59857469"/> 4277 + <nd ref="386850835"/> 4278 + <nd ref="1699482070"/> 4279 + <nd ref="1699482080"/> 4280 + <nd ref="51407551"/> 4281 + <nd ref="1699482072"/> 4282 + <nd ref="841572078"/> 4283 + <nd ref="1699482069"/> 4284 + <nd ref="1699482066"/> 4285 + <nd ref="51407547"/> 4286 + <nd ref="1699482061"/> 4287 + <nd ref="14468944"/> 4288 + <nd ref="1699482063"/> 4289 + <nd ref="1699482065"/> 4290 + <nd ref="59857469"/> 4291 + <tag k="highway" v="primary" /> 4292 + <tag k="junction" v="roundabout" /> 4293 + </way> 4294 + <way id="157687750" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:36Z"> 4295 + <nd ref="51407547"/> 4296 + <nd ref="1699482052"/> 4297 + <nd ref="14468399"/> 4298 + <tag k="highway" v="primary_link" /> 4299 + <tag k="oneway" v="yes" /> 4300 + </way> 4301 + <way id="157687751" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:36Z"> 4302 + <nd ref="1699482071"/> 4303 + <nd ref="1699482082"/> 4304 + <nd ref="51407554"/> 4305 + <tag k="highway" v="primary_link" /> 4306 + <tag k="oneway" v="yes" /> 4307 + </way> 4308 + <way id="157687752" version="1" changeset="11164863" uid="24247" user="Vlad" timestamp="2012-03-31T11:12:36Z"> 4309 + <nd ref="14468412"/> 4310 + <nd ref="1699481989"/> 4311 + <nd ref="1438677859"/> 4312 + <nd ref="61155989"/> 4313 + <nd ref="257061370"/> 4314 + <nd ref="14468413"/> 4315 + <nd ref="1129561572"/> 4316 + <nd ref="14468464"/> 4317 + <tag k="highway" v="tertiary" /> 4318 + <tag k="oneway" v="yes" /> 4319 + </way> 4320 + <relation id="11980" version="692" changeset="10675769" uid="602106" user="BEECEE" timestamp="2012-02-13T18:18:27Z"> 4321 + <member type="node" ref="17807753" role="capital"/> 4322 + <member type="relation" ref="1362232" role="outer"/> 4323 + <member type="relation" ref="1263863" role="outer"/> 4324 + <member type="relation" ref="1263868" role="outer"/> 4325 + <member type="relation" ref="1401925" role="outer"/> 4326 + <member type="relation" ref="1263846" role="outer"/> 4327 + <member type="relation" ref="1628087" role="outer"/> 4328 + <tag k="admin_level" v="2" /> 4329 + <tag k="boundary" v="administrative" /> 4330 + <tag k="currency" v="EUR" /> 4331 + <tag k="ISO3166-1" v="fr" /> 4332 + <tag k="land_area" v="administrative" /> 4333 + <tag k="name" v="France" /> 4334 + <tag k="name:af" v="Frankryk" /> 4335 + <tag k="name:am" v="ፈረንሣይ" /> 4336 + <tag k="name:ar" v="فرنسا" /> 4337 + <tag k="name:az" v="Fransa" /> 4338 + <tag k="name:ba" v="Франция" /> 4339 + <tag k="name:be" v="Францыя" /> 4340 + <tag k="name:bg" v="Франция" /> 4341 + <tag k="name:bm" v="France" /> 4342 + <tag k="name:bn" v="ফ্রান্স" /> 4343 + <tag k="name:br" v="Bro-C'hall" /> 4344 + <tag k="name:co" v="Francia" /> 4345 + <tag k="name:cs" v="Francie" /> 4346 + <tag k="name:cy" v="Ffrainc" /> 4347 + <tag k="name:da" v="Frankrig" /> 4348 + <tag k="name:de" v="Frankreich" /> 4349 + <tag k="name:dv" v="ފަރަންސޭސިވިލާތް" /> 4350 + <tag k="name:ee" v="France" /> 4351 + <tag k="name:el" v="Γαλλία" /> 4352 + <tag k="name:en" v="France" /> 4353 + <tag k="name:es" v="Francia" /> 4354 + <tag k="name:et" v="Prantsusmaa" /> 4355 + <tag k="name:eu" v="Frantzia" /> 4356 + <tag k="name:fa" v="فرانسه" /> 4357 + <tag k="name:fr" v="France" /> 4358 + <tag k="name:gan" v="法國" /> 4359 + <tag k="name:gd" v="An Fhraing" /> 4360 + <tag k="name:gsw" v="Frankreich" /> 4361 + <tag k="name:gu" v="ફ્રાન્સ" /> 4362 + <tag k="name:he" v="צרפת" /> 4363 + <tag k="name:hi" v="फ़्रान्स" /> 4364 + <tag k="name:hr" v="Francuska" /> 4365 + <tag k="name:hy" v="Ֆրանսիա" /> 4366 + <tag k="name:id" v="Perancis" /> 4367 + <tag k="name:is" v="Frakkland" /> 4368 + <tag k="name:it" v="Francia" /> 4369 + <tag k="name:ja" v="フランス" /> 4370 + <tag k="name:ka" v="საფრანგეთი" /> 4371 + <tag k="name:kg" v="Fwalansa" /> 4372 + <tag k="name:kk" v="Франция" /> 4373 + <tag k="name:kl" v="Franskit Nunaat" /> 4374 + <tag k="name:km" v="បារាំង" /> 4375 + <tag k="name:kn" v="ಫ್ರಾನ್ಸ್" /> 4376 + <tag k="name:ko" v="프랑스" /> 4377 + <tag k="name:ku" v="Fransa" /> 4378 + <tag k="name:la" v="Francia" /> 4379 + <tag k="name:lb" v="Frankräich" /> 4380 + <tag k="name:li" v="Frankriek" /> 4381 + <tag k="name:lo" v="ປະເທດຝະລັ່ງ" /> 4382 + <tag k="name:mg" v="Frantsa" /> 4383 + <tag k="name:mk" v="Франција" /> 4384 + <tag k="name:ml" v="ഫ്രാൻസ്" /> 4385 + <tag k="name:mn" v="Франц" /> 4386 + <tag k="name:ms" v="Perancis" /> 4387 + <tag k="name:mt" v="Franza" /> 4388 + <tag k="name:my" v="ပြင်သစ်နိုင်ငံ" /> 4389 + <tag k="name:nan" v="Hoat-kok" /> 4390 + <tag k="name:ne" v="फ्रान्स" /> 4391 + <tag k="name:nl" v="Frankrijk" /> 4392 + <tag k="name:no" v="Frankrike" /> 4393 + <tag k="name:oc" v="França" /> 4394 + <tag k="name:os" v="Франц" /> 4395 + <tag k="name:pa" v="ਫ੍ਰਾਂਸ" /> 4396 + <tag k="name:pl" v="Francja" /> 4397 + <tag k="name:ps" v="فرانسه" /> 4398 + <tag k="name:pt" v="França" /> 4399 + <tag k="name:qu" v="Ransiya" /> 4400 + <tag k="name:rm" v="Frantscha" /> 4401 + <tag k="name:ro" v="Franța" /> 4402 + <tag k="name:ru" v="Франция" /> 4403 + <tag k="name:sa" v="फ्रांस" /> 4404 + <tag k="name:sc" v="Frantza" /> 4405 + <tag k="name:scn" v="Francia" /> 4406 + <tag k="name:sco" v="Fraunce" /> 4407 + <tag k="name:se" v="Frankriika" /> 4408 + <tag k="name:sk" v="Francúzsko" /> 4409 + <tag k="name:sl" v="Francija" /> 4410 + <tag k="name:sq" v="Franca" /> 4411 + <tag k="name:sr" v="Француска" /> 4412 + <tag k="name:su" v="Perancis" /> 4413 + <tag k="name:sv" v="Frankrike" /> 4414 + <tag k="name:sw" v="Ufaransa" /> 4415 + <tag k="name:ta" v="பிரான்சு" /> 4416 + <tag k="name:te" v="ఫ్రాన్స్" /> 4417 + <tag k="name:tg" v="Фаронса" /> 4418 + <tag k="name:th" v="ประเทศฝรั่งเศส" /> 4419 + <tag k="name:tk" v="Fransiýa" /> 4420 + <tag k="name:tl" v="Pransiya" /> 4421 + <tag k="name:tr" v="Fransa" /> 4422 + <tag k="name:tt" v="Франция" /> 4423 + <tag k="name:ug" v="فرانسىيە" /> 4424 + <tag k="name:uk" v="Франція" /> 4425 + <tag k="name:ur" v="فرانس" /> 4426 + <tag k="name:vi" v="Pháp" /> 4427 + <tag k="name:vls" v="Vrankryk" /> 4428 + <tag k="name:wo" v="Faraas" /> 4429 + <tag k="name:wuu" v="法国" /> 4430 + <tag k="name:xmf" v="საფრანგეთი" /> 4431 + <tag k="name:yi" v="פראנקרייך" /> 4432 + <tag k="name:yue" v="法國" /> 4433 + <tag k="name:za" v="Fazgoz" /> 4434 + <tag k="name:zh" v="法国" /> 4435 + <tag k="name:zu" v="IFulansi" /> 4436 + <tag k="note" v="For explanations please read http://wiki.openstreetmap.org/wiki/France_boundary_pyramidal_construction" /> 4437 + <tag k="official_name" v="République française" /> 4438 + <tag k="official_name:es" v="República francesa" /> 4439 + <tag k="official_name:fr" v="République française" /> 4440 + <tag k="official_name:it" v="Repubblica francese" /> 4441 + <tag k="official_name:nl" v="Franse Republiek" /> 4442 + <tag k="official_name:sk" v="Francúzska republika" /> 4443 + <tag k="official_name:sl" v="Francoska republika" /> 4444 + <tag k="official_name:sv" v="Republiken Frankrike" /> 4445 + <tag k="timezone" v="Europe/Paris" /> 4446 + <tag k="TMC:cid_58:tabcd_1:Class" v="Area" /> 4447 + <tag k="TMC:cid_58:tabcd_1:LCLversion" v="8.00" /> 4448 + <tag k="TMC:cid_58:tabcd_1:LocationCode" v="2" /> 4449 + <tag k="type" v="boundary" /> 4450 + </relation> 4451 + <relation id="481133" version="2" changeset="4503471" uid="183561" user="EtienneChoveBot" timestamp="2010-04-23T13:15:01Z"> 4452 + <member type="node" ref="670063590" role=""/> 4453 + <member type="node" ref="670063591" role=""/> 4454 + <member type="node" ref="670063592" role=""/> 4455 + <member type="node" ref="670063593" role=""/> 4456 + <tag k="name" v="Nonza III" /> 4457 + <tag k="network" v="NTF-4" /> 4458 + <tag k="ref" v="2B17803" /> 4459 + <tag k="site" v="geodesic" /> 4460 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 4461 + <tag k="type" v="site" /> 4462 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_geodesie.asp?num_site=2B17803&X=1220338&Y=6210693" /> 4463 + </relation> 4464 + <relation id="481134" version="2" changeset="4503471" uid="183561" user="EtienneChoveBot" timestamp="2010-04-23T13:15:01Z"> 4465 + <member type="node" ref="670063594" role=""/> 4466 + <member type="node" ref="670063595" role=""/> 4467 + <tag k="name" v="Novale I" /> 4468 + <tag k="network" v="NTF-3" /> 4469 + <tag k="ref" v="2B17901" /> 4470 + <tag k="site" v="geodesic" /> 4471 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 4472 + <tag k="type" v="site" /> 4473 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_geodesie.asp?num_site=2B17901&X=1228146&Y=6154790" /> 4474 + </relation> 4475 + <relation id="481135" version="2" changeset="4503471" uid="183561" user="EtienneChoveBot" timestamp="2010-04-23T13:15:02Z"> 4476 + <member type="node" ref="670063596" role=""/> 4477 + <tag k="name" v="Novale A" /> 4478 + <tag k="network" v="NTF-5" /> 4479 + <tag k="ref" v="2B179A" /> 4480 + <tag k="site" v="geodesic" /> 4481 + <tag k="source" v="©IGN 2010 dans le cadre de la cartographie réglementaire" /> 4482 + <tag k="type" v="site" /> 4483 + <tag k="url" v="http://ancien-geodesie.ign.fr/fiche_geodesie.asp?num_site=2B179A&X=1229165&Y=6155935" /> 4484 + </relation> 4485 + <relation id="2078256" version="1" changeset="10944124" uid="24572" user="sly" timestamp="2012-03-11T15:19:46Z"> 4486 + <member type="way" ref="154517570" role=""/> 4487 + <member type="way" ref="154517592" role=""/> 4488 + <member type="way" ref="154517576" role=""/> 4489 + <member type="way" ref="154517587" role=""/> 4490 + <member type="way" ref="151455428" role=""/> 4491 + <tag k="admin_level" v="8" /> 4492 + <tag k="boundary" v="administrative" /> 4493 + <tag k="name" v="Tasso" /> 4494 + <tag k="ref:INSEE" v="2A322" /> 4495 + <tag k="type" v="boundary" /> 4496 + </relation> 4497 + <relation id="2079808" version="1" changeset="10954753" uid="49047" user="vincent_95" timestamp="2012-03-12T13:27:35Z"> 4498 + <member type="node" ref="1671955679" role="admin_centre"/> 4499 + <member type="way" ref="154700148" role=""/> 4500 + <member type="way" ref="140046200" role=""/> 4501 + <member type="way" ref="140046196" role=""/> 4502 + <tag k="admin_level" v="8" /> 4503 + <tag k="boundary" v="administrative" /> 4504 + <tag k="name" v="Vescovato" /> 4505 + <tag k="population" v="2426" /> 4506 + <tag k="ref:INSEE" v="2B346" /> 4507 + <tag k="type" v="boundary" /> 4508 + </relation> 4509 + <relation id="2079867" version="1" changeset="10955031" uid="49047" user="vincent_95" timestamp="2012-03-12T13:53:05Z"> 4510 + <member type="way" ref="30765212" role=""/> 4511 + <member type="way" ref="154705703" role=""/> 4512 + <member type="way" ref="154705709" role=""/> 4513 + <member type="way" ref="154705695" role=""/> 4514 + <member type="node" ref="1671993532" role="admin_centre"/> 4515 + <tag k="admin_level" v="8" /> 4516 + <tag k="boundary" v="administrative" /> 4517 + <tag k="name" v="San-Martino-di-Lota" /> 4518 + <tag k="population" v="2792" /> 4519 + <tag k="ref:INSEE" v="2B305" /> 4520 + <tag k="type" v="boundary" /> 4521 + </relation> 4522 + <relation id="2079875" version="1" changeset="10955112" uid="49047" user="vincent_95" timestamp="2012-03-12T14:01:19Z"> 4523 + <member type="node" ref="1672001155" role="admin_centre"/> 4524 + <member type="way" ref="154706192" role=""/> 4525 + <tag k="admin_level" v="8" /> 4526 + <tag k="boundary" v="administrative" /> 4527 + <tag k="name" v="Alzi" /> 4528 + <tag k="population" v="18" /> 4529 + <tag k="ref:INSEE" v="2B013" /> 4530 + <tag k="type" v="boundary" /> 4531 + </relation> 4532 + <relation id="2079889" version="1" changeset="10955280" uid="49047" user="vincent_95" timestamp="2012-03-12T14:16:26Z"> 4533 + <member type="way" ref="154707799" role=""/> 4534 + <member type="way" ref="151455423" role=""/> 4535 + <member type="way" ref="154517583" role=""/> 4536 + <member type="way" ref="154517570" role=""/> 4537 + <member type="way" ref="151456299" role=""/> 4538 + <member type="way" ref="151455931" role=""/> 4539 + <member type="way" ref="151455928" role=""/> 4540 + <member type="way" ref="149186197" role=""/> 4541 + <member type="way" ref="154707792" role=""/> 4542 + <member type="way" ref="154707793" role=""/> 4543 + <member type="node" ref="1280464074" role="admin_centre"/> 4544 + <tag k="admin_level" v="8" /> 4545 + <tag k="boundary" v="administrative" /> 4546 + <tag k="name" v="Zicavo" /> 4547 + <tag k="population" v="257" /> 4548 + <tag k="ref:INSEE" v="2A359" /> 4549 + <tag k="type" v="boundary" /> 4550 + </relation> 4551 + <relation id="2079910" version="1" changeset="10955365" uid="49047" user="vincent_95" timestamp="2012-03-12T14:23:48Z"> 4552 + <member type="way" ref="154708691" role=""/> 4553 + <member type="way" ref="151455930" role=""/> 4554 + <member type="way" ref="151456301" role=""/> 4555 + <member type="way" ref="151486220" role=""/> 4556 + <member type="way" ref="151486222" role=""/> 4557 + <member type="way" ref="149428758" role=""/> 4558 + <member type="node" ref="1672040703" role="admin_centre"/> 4559 + <tag k="admin_level" v="8" /> 4560 + <tag k="boundary" v="administrative" /> 4561 + <tag k="name" v="Zévaco" /> 4562 + <tag k="population" v="61" /> 4563 + <tag k="ref:INSEE" v="2A358" /> 4564 + <tag k="type" v="boundary" /> 4565 + </relation> 4566 + <relation id="2085679" version="1" changeset="10997024" uid="49047" user="vincent_95" timestamp="2012-03-16T10:43:13Z"> 4567 + <member type="way" ref="155264117" role=""/> 4568 + <member type="way" ref="155264114" role=""/> 4569 + <member type="way" ref="34561138" role=""/> 4570 + <member type="way" ref="155264113" role=""/> 4571 + <member type="way" ref="155264116" role=""/> 4572 + <member type="way" ref="155264115" role=""/> 4573 + <member type="node" ref="1241369454" role="admin_centre"/> 4574 + <tag k="addr:postcode" v="20121" /> 4575 + <tag k="admin_level" v="8" /> 4576 + <tag k="boundary" v="administrative" /> 4577 + <tag k="name" v="Azzana" /> 4578 + <tag k="population" v="54" /> 4579 + <tag k="ref:INSEE" v="2A027" /> 4580 + <tag k="type" v="boundary" /> 4581 + </relation> 4582 + <relation id="2085778" version="1" changeset="10997944" uid="49047" user="vincent_95" timestamp="2012-03-16T12:45:20Z"> 4583 + <member type="node" ref="420154638" role="admin_centre"/> 4584 + <member type="way" ref="155275708" role=""/> 4585 + <member type="way" ref="155275707" role=""/> 4586 + <member type="way" ref="34772381" role=""/> 4587 + <member type="way" ref="34772380" role=""/> 4588 + <member type="way" ref="155275706" role=""/> 4589 + <tag k="addr:postcode" v="20121" /> 4590 + <tag k="admin_level" v="8" /> 4591 + <tag k="boundary" v="administrative" /> 4592 + <tag k="name" v="Pastricciola" /> 4593 + <tag k="population" v="85" /> 4594 + <tag k="ref:INSEE" v="2A204" /> 4595 + <tag k="type" v="boundary" /> 4596 + </relation> 4597 + <relation id="2085782" version="1" changeset="10998033" uid="49047" user="vincent_95" timestamp="2012-03-16T12:54:37Z"> 4598 + <member type="way" ref="155275710" role=""/> 4599 + <member type="way" ref="155264116" role=""/> 4600 + <member type="way" ref="155275705" role=""/> 4601 + <member type="way" ref="155275707" role=""/> 4602 + <member type="node" ref="1241369075" role="admin_centre"/> 4603 + <tag k="addr:postcode" v="20121" /> 4604 + <tag k="admin_level" v="8" /> 4605 + <tag k="boundary" v="administrative" /> 4606 + <tag k="name" v="Rezza" /> 4607 + <tag k="population" v="62" /> 4608 + <tag k="ref:INSEE" v="2A259" /> 4609 + <tag k="type" v="boundary" /> 4610 + </relation> 4611 +</osm>
Added tests/testdata/test.osm.pbf.
cannot compute difference between binary files