Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Imported Upstream version 0.9.0

  • Loading branch information...
commit 5a7452515ffd9675938470e5721b9c4a6cb42a0f 0 parents
@bdonlan authored
Showing with 57,742 additions and 0 deletions.
  1. +7 −0 AUTHORS
  2. +280 −0 COPYING
  3. +454 −0 ChangeLog
  4. +236 −0 INSTALL
  5. +34 −0 Makefile.am
  6. +749 −0 Makefile.in
  7. +123 −0 NEWS
  8. +52 −0 README
  9. +7,631 −0 aclocal.m4
  10. +173 −0 config.h.in
  11. +1,516 −0 config/config.guess
  12. +1,626 −0 config/config.sub
  13. +530 −0 config/depcomp
  14. +323 −0 config/install-sh
  15. +6,938 −0 config/ltmain.sh
  16. +360 −0 config/missing
  17. +24,029 −0 configure
  18. +379 −0 configure.in
  19. +42 −0 doc/Makefile.am
  20. +570 −0 doc/Makefile.in
  21. +1,294 −0 doc/doxygen.cfg
  22. +73 −0 doc/html/annotated.html
  23. +162 −0 doc/html/classLibofxContext.html
  24. +62 −0 doc/html/classNodeParser.html
  25. +451 −0 doc/html/classOFCApplication.html
  26. +460 −0 doc/html/classOFXApplication.html
  27. +360 −0 doc/html/classOfxAccountContainer.html
  28. BIN  doc/html/classOfxAccountContainer.png
  29. +145 −0 doc/html/classOfxAccountInfoRequest.html
  30. BIN  doc/html/classOfxAccountInfoRequest.png
  31. +461 −0 doc/html/classOfxAggregate.html
  32. BIN  doc/html/classOfxAggregate.png
  33. +240 −0 doc/html/classOfxBalanceContainer.html
  34. BIN  doc/html/classOfxBalanceContainer.png
  35. +196 −0 doc/html/classOfxBankTransactionContainer.html
  36. BIN  doc/html/classOfxBankTransactionContainer.png
  37. +187 −0 doc/html/classOfxDummyContainer.html
  38. BIN  doc/html/classOfxDummyContainer.png
  39. +484 −0 doc/html/classOfxGenericContainer.html
  40. BIN  doc/html/classOfxGenericContainer.png
  41. +196 −0 doc/html/classOfxInvestmentTransactionContainer.html
  42. BIN  doc/html/classOfxInvestmentTransactionContainer.png
  43. +201 −0 doc/html/classOfxMainContainer.html
  44. BIN  doc/html/classOfxMainContainer.png
  45. +215 −0 doc/html/classOfxPaymentRequest.html
  46. BIN  doc/html/classOfxPaymentRequest.png
  47. +187 −0 doc/html/classOfxPushUpContainer.html
  48. BIN  doc/html/classOfxPushUpContainer.png
  49. +372 −0 doc/html/classOfxRequest.html
  50. BIN  doc/html/classOfxRequest.png
  51. +358 −0 doc/html/classOfxSecurityContainer.html
  52. BIN  doc/html/classOfxSecurityContainer.png
  53. +378 −0 doc/html/classOfxStatementContainer.html
  54. BIN  doc/html/classOfxStatementContainer.png
  55. +426 −0 doc/html/classOfxStatementRequest.html
  56. BIN  doc/html/classOfxStatementRequest.png
  57. +192 −0 doc/html/classOfxStatusContainer.html
  58. BIN  doc/html/classOfxStatusContainer.png
  59. +381 −0 doc/html/classOfxTransactionContainer.html
  60. BIN  doc/html/classOfxTransactionContainer.png
  61. +838 −0 doc/html/classtree.html
  62. +173 −0 doc/html/classtree_1_1fixed__depth__iterator.html
  63. BIN  doc/html/classtree_1_1fixed__depth__iterator.png
  64. +205 −0 doc/html/classtree_1_1iterator__base.html
  65. BIN  doc/html/classtree_1_1iterator__base.png
  66. +50 −0 doc/html/classtree_1_1iterator__base__less.html
  67. +166 −0 doc/html/classtree_1_1post__order__iterator.html
  68. BIN  doc/html/classtree_1_1post__order__iterator.png
  69. +154 −0 doc/html/classtree_1_1pre__order__iterator.html
  70. BIN  doc/html/classtree_1_1pre__order__iterator.png
  71. +182 −0 doc/html/classtree_1_1sibling__iterator.html
  72. BIN  doc/html/classtree_1_1sibling__iterator.png
  73. +87 −0 doc/html/classtree__node__.html
  74. +194 −0 doc/html/config_8h-source.html
  75. +227 −0 doc/html/context_8cpp-source.html
  76. +88 −0 doc/html/context_8hh-source.html
  77. +358 −0 doc/html/doxygen.css
  78. BIN  doc/html/doxygen.png
  79. +178 −0 doc/html/file__preproc_8cpp-source.html
  80. +189 −0 doc/html/file__preproc_8cpp.html
  81. +40 −0 doc/html/file__preproc_8hh-source.html
  82. +67 −0 doc/html/file__preproc_8hh.html
  83. +150 −0 doc/html/files.html
  84. BIN  doc/html/ftv2blank.png
  85. BIN  doc/html/ftv2doc.png
  86. BIN  doc/html/ftv2folderclosed.png
  87. BIN  doc/html/ftv2folderopen.png
  88. BIN  doc/html/ftv2lastnode.png
  89. BIN  doc/html/ftv2link.png
  90. BIN  doc/html/ftv2mlastnode.png
  91. BIN  doc/html/ftv2mnode.png
  92. BIN  doc/html/ftv2node.png
  93. BIN  doc/html/ftv2plastnode.png
  94. BIN  doc/html/ftv2pnode.png
  95. BIN  doc/html/ftv2vertline.png
  96. +201 −0 doc/html/functions.html
  97. +119 −0 doc/html/functions_0x62.html
  98. +106 −0 doc/html/functions_0x63.html
  99. +127 −0 doc/html/functions_0x64.html
  100. +100 −0 doc/html/functions_0x65.html
  101. +121 −0 doc/html/functions_0x66.html
  102. +89 −0 doc/html/functions_0x67.html
Sorry, we could not display the entire diff because too many files (499) changed.
7 AUTHORS
@@ -0,0 +1,7 @@
+Benoit Gr�goire <bock@step.polymtl.ca>
+Peter O'Gorman <peter@pogma.com>
+Ace Jones <acejones@users.sf.net>
+Martin Preuss<martin@aquamaniac.de>
+
+Contributors:
+
280 COPYING
@@ -0,0 +1,280 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
454 ChangeLog
@@ -0,0 +1,454 @@
+
+19/11/2007 Martin Preuss <martin@aquamaniac.de>
+ * Release 0.9.0
+
+
+12/11/2007 Martin Preuss <martin@aquamaniac.de>
+ * ofx_preproc.cpp: Increased size of file name buffer (50 was too
+ small)
+
+
+28/9/2007 Martin Preuss <martin@aquamaniac.de>
+ * libofx.h: added some fields to OfxFiLogin:
+ - header_version
+ - appid
+ - appver
+ It seems to become necessary with some new servers to modify
+ these fields by the application.
+
+27/9/2007 Martin Preuss <martin@aquamaniac.de>
+ * ofx_request_statement.cpp: Incremented versions written to the
+ request
+ * libofx.h, ofx_utilities.cpp: replaced some char* with "const char*" to make GCC happy,
+ wrapped arithmetic calculations in macro definitions in brackets
+ to avoid mathematical problems
+ * libofx.h: Removed this file, replaced it with libofx.h.in. This
+ is used to create libofx.h which now includes some subst variables
+ conveying the version of LibOFX to source files. Introduced
+ LIBOFX_BUILD_VERSION and LIBOFX_VERSION_RELEASE_STRING to
+ distinguish even CVS versions.
+ Added function libofx_set_dtd_dir() which allows to set the
+ folder in which DTD files are stored. This is needed for local
+ installations (e.g. WIN32)
+ * libofx.pc.in: depending libraries don't need to link against
+ OpenSP themselves, since LibOFX encapsulates it, no need to
+ propagate unnecessary dependencies
+ * ofx_utilities.{cpp,h}: added a function to generate a temp file name
+ (works on WIN32 and Linux)
+
+24/1/2007: Benoit Grégoire <bock@step.polymtl.ca>
+ * ofx_preproc.cpp: Now parses the OFX headers to determine the input charset and
+ encoding, and uses libiconv (if available) to convert the encoding since OpenSP
+ can't do it. The default output is now UTF-8. This will "do the right thing"
+ for Gnucash 2 and any client that uses UTF-8 strings, but we should add an interface
+ to let the client chose his prefered output encoding.
+
+9/1/2007: Benoit Grégoire <bock@step.polymtl.ca>
+ * Adapted patch by Christian Lupien <lupien @at@ physique.usherbrooke.ca> to add
+ processing of the different bank account types in OfxPaymentRequest. Took this
+ oportunity to correct an API duplication problem before it get's even more
+ complicated to fix: deleted OfxAccountInfo (OfxAccountData should be used instead)
+ and the global scopt AccountType enum (use the one in OfxAccountData).
+ Both of these changes will require source code change in aqbanking.
+ * Bump the version and soname right now so aqbanking can detect it.
+
+8/1/2007: Benoit Grégoire <bock@step.polymtl.ca>
+ * Release 0.8.3
+
+27/9/2006 Martin Preuss <martin@aquamaniac.de>
+ * lib/ofx_preproc.cpp: Make sure all results of string::find are
+ inside the string's length; make sure to erase parts of the string
+ only if the string is long enough.
+ Fixes crash http://bugzilla.gnome.org/show_bug.cgi?id=353986
+ Patch supplied by Christian Stimming from GnuCash
+
+25/8/2006: Benoit Grégoire <bock@step.polymtl.ca>
+ * Fix datatype mismatch in ofx_preproc.cpp
+ * Fix gengetopt related build problems on debian based distribution.
+ * Remove massage about dependency on Qt, qhich is no longuer true
+ * Fix ofxconnect headers not being distributed
+ * Remove cmdline.c and cmdline.h which shouldn't be versionned
+ * Release 0.8.2
+
+3/8/2006 David Resier <dbreiser@earthlink.net>
+ * Added fields used in stock splits (newunits, oldunits)
+ Patch applied by Ace Jones <acejones@users.sf.net>
+
+28/7/2006 Ace Jones <acejones@users.sf.net>
+ * Fixed a compilation bug on GCC 4.1
+
+20/7/2006: Benoit Grégoire <bock@step.polymtl.ca>
+ * Revert last change to ofxdump, as it requires a system-dependent header (plus it didn't compile on my system)
+ * Make both curl and libxml++ optional for compilation.
+ * Add some debug output.
+ * Update tree.hh
+
+15/7/2006 Ace Jones <acejones@users.sf.net>
+ * Modified build script to not build ofxconnect if libxml++1.0 is
+ missing.
+
+12/6/2006 Ace Jones <acejones@users.sf.net>
+ * Fixed a compilation bug on GCC 4.1
+
+28/3/2006 Ace Jones <acejones@users.sf.net>
+ * Fixed an improper header reference in ofxpartner.cpp/h
+ * Fixed a segfault if ofxdump is run without a file
+
+28/2/2006 Ace Jones <acejones@users.sf.net>
+ * Removed Qt requirement accidentally introduced in my last checkin
+
+20/2/2006 Ace Jones <acejones@users.sf.net>
+ * Added sample code to ofxconnect to demonstrate how to contact the
+ OFX partner server
+
+15/2/2006 Ace Jones <acejones@users.sf.net>
+ * Fixed #1408764. Buffer overrun in MESSAGE tag handling.
+ * Fixed a memory leak in OfxStatusContainer::add_attribute()
+
+20/1/2006 Ace Jones <acejones@users.sf.net>
+ * Print out bank id, branch id, and account number in ofxdump
+ * Fixed a bug under gcc 4.0.2 64-bit where errno is not found in ofxdump
+ * Fixed a build problem where @LIBOBJ@ was not being substituted
+
+16/1/2006 Ace Jones <acejones@users.sf.net>
+ * Added OfxFiServiceInfo struct. Need this for communicating with the
+ partner server. Will add the code for that next.
+ * Added broker_id to OfxAccountData
+
+17/12/2005 Ace Jones <acejones@users.sf.net>
+ * Fixed ofxdump to give a reasonable error if you run it on a file that
+ doesn't exist.
+ * Added proper libcurl.m4 to check for existence & compilability of
+ libcurl
+ * Make libcurl optional again by handling its absense in ofxconnect
+
+17/11/2005 Martin Preuss <aquamaniac@users.sf.net>
+ * added pkg-config file to spec file
+ * fixed spec file (was mentioning libraries twice)
+
+1/10/2005 Ace Jones <acejones@users.sf.net>
+ * Bumped version to 0.8.1 (due to transaction struct change)
+ * Added a pkg-config file
+
+25/9/2005 Ace Jones <acejones@users.sf.net>
+ * Brought in new tree.hh from http://www.aei.mpg.de/~peekas/tree
+ * Removed a workaround in all uses of tree::number_of_siblings().
+ This appears to work around a bug in tree.h which caused the siblings
+ to be overcounted. That bug is fixed, so this workaround is not
+ needed.
+
+24/9/2005 Ace Jones <acejones@users.sf.net>
+ * Fixed a namespace bug that's fatal on GCC4.0
+ Submitted by Christian Stimming <stimming@tuhh.de>
+
+27/8/2005 Ace Jones <acejones@users.sf.net>
+ * Added fees and commission fields to transaction structure (and fill them in)
+
+31/7/2005: Benoit Grégoire <bock@step.polymtl.ca>
+ * Release 0.8.0
+ * configure.in: Update libtool version number. Make curl check fatal untill there is code to conditionally not compile ofxconnect when CURL is unavailable.
+ * Fix the build system so that discheck will finally run properly.
+
+11/7/2005 Ace Jones <acejones@users.sf.net>
+ * Upgraded the app version for OFX Requests (some banks are denying
+ the old version now)
+ * Moved bank & broker ID's from OfxFiLogin to OfxAccountInfo, which is
+ more accurate
+ * Renamed a couple AccountType enums to be consistent with the others
+
+22/4/2005 Martin Preuss <martin@aquamaniac.de>
+ * added fields bank_id, bank_id_valid, branch_id, branch_id_valid,
+ account_number and account_number_valid to OfxAccountData
+ according to discussion on LibOFX mailinglist.
+
+19/4/2005 Ace Jones <acejones@users.sf.net>
+ * Improved ofxconnect to do the POST operation itself
+ * Improved the ofxconnect unit test to be mostly cleartext except the server login information.
+
+20/4/2005 Martin Preuss <martin@aquamaniac.de>
+ * inserted an \"#ifndef\" before definition of static variables to allow include from multiple source files of a project
+
+18/4/2005: Ace Jones <acejones@users.sf.net>
+ * Added libofx_request_statement API, and underlying support classes, to create an OFX statement request
+ * Added libofx_request_accountinfo API to create an OFX account into request
+ * Added ofxconnect sample app to demonstrate & test new API's (try "make check" in the ofxconnect folder). Read README.privateserver first.
+
+24/11/2004: Benoit Grégoire <bock@step.polymtl.ca>
+ * Apply Christian Stimming's patch for rpm building. Also adds a make rpm target.
+
+08/10/2004: Benoit Grégoire <bock@step.polymtl.ca>
+ * Release 0.7.0
+ * configure.in: Update libtool version number.
+
+21/9/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * Really remove callback.hh and callback.cpp
+ * Fix compile with gcc 3.4. This also needs to be applied to the stable branch.
+ * Fix tree handling for securities, which caused the callbacks never to be called.
+
+31/8/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * Remove obsolete files callback.hh and callback.cpp
+ * More makefile fixes in lib
+
+1/9/2004 Martin Preuss <martin@aquamaniac.de>
+ * simplified internal callback mechanism (removed CallbackRegistry, it is easier this way)
+ * protected members of LibOfxContext (you need to call methods to get/set them)
+ * added functions which allow to set each callback individually. If you are not interested in a particular
+ callback you don't need to set it
+ * removed the all-callback setter
+ * all callbacks now pass LibOfxContext which either propagates the callback or silently ignores it (for callbacks
+ which haven't been set)
+ * a few Makefile fixes in lib
+ * adjusted ofxdump and ofx2qif to these changes
+
+31/8/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * Revamp the callback architecture according to discussion with Martin Preuss. This is much cleaner and extensible, although a long way from perfect.
+ * Autoconf fixes from Martin Preuss
+
+23/4/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * At long last, a flexible and extendable command line parser is used in ofxdump. This was essential for debuging, and even more essential for developing Direct Connect. Immediate benefits are that you can set the desired debug output without recompiling. Check ofxdump --help for options.
+ * configure.in: gengetopt will be used if available.
+ * lib/Makefile.am:
+ * ofxdump/Makefile.am
+ * ofxdump/ofxdump.cpp
+ * lib/getopt.c lib/getopt1.c lib/gnugetopt.h: Required in case getopt_long() isn't available.
+ * ofxdump/cmdline.ggo: Command line argument definitions.
+ * ofxdump/cmdline.c,h: Files generated by gengetopt, must be in CVS so developers don't have to have gengetopt installed.
+
+ * Much improved file format handling. Supported file formats can now be listed and described.
+ * inc/libofx.h:
+ * lib/context.hh
+ * lib/file_preproc.cpp
+ * lib/file_preproc.hh
+
+8/4/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * Multiple files: Working (but incomplete) OFC import. Still need cleanup. Pass context everywhere. Begin cleaning up tree handling.
+ * lib/tree.hh: Upgrade to latest version
+
+31/3/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/context.cpp,hh: New files. Create a global libofx object to allow the library to cleanly keep state. This will allow much cleanup, and is needed for the move to a DOM style interface. Other files ajusted to match.
+
+7/3/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofc_sgml.cpp/hh: New files. Splits code path for OFC and OFX to keep things understandeable. Some more OFC parsing. Now waiting to implement global libofx context object passed everywhere to make further progress.
+ * lib/messages.cpp: Move the definition of the required globals for displaying line numbers there, as it's the only place they are read.
+
+3/3/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * Many...
+ * lib/file_preproc.cpp, lib/file_preproc.hh: Add file format autodetection architecture, can currently distinguish between OFX and OFC files. Note that because of this change, the main entry point of the library is now in file_preproc.cpp.
+ * dtd/ofc.dtd, lib/ofx_sgml.cpp, lib/ofx_preproc.cpp: Add embryo of OFC (Microsoft Open Financial Connectivity) to LibOFX. The SGML parses succesfully, but LibOFX does not yet know what to do with it. Big thanks to Jeremy Jongsma jeremy at jongsma.org for finally finding the required DTD. I haven't yet decided if its better to to add this support to ofx_proc_sgml.cpp (easier to maintain, less code duplication), or to create a ofc_proc_sgml.cpp (easier to understand, cleaner code).
+
+3/2/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * inc/libofx.h lib/ofx_preproc.cpp lib/tree.hh ofx2qif/ofx2qif.c ofxdump/ofxdump.cpp: Make it compile. I may have misunderstood what Ryan wanted to do with the prototypes in libofx.h. If so, sorry. Note: I don't think that the void * passed as arguments are saved in the registry yet.
+
+18/1/2004 Ryan P Bobko <ryan@ostrich-emulators.com>
+ * inc/libofx.h
+ * lib/ofx_container_statement.cpp
+ * lib/ofx_container_account.cpp
+ * lib/ofx_container_transaction.cpp
+ * lib/ofx_container_security.cpp
+ * lib/ofx_containers_misc.cpp
+ * ofxdump/ofxdump.cpp
+ * ofx2qif/ofx2qif.c: all these files: improved callback registry by including a void pointer to arbitrary data (which can be set by the client in ofx_prep_cb). The pointer gets passed to the callback function as the second argument.
+
+
+14/1/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * Merge initial Callback registration patch by Ryan P Bobko. Touches most files.
+
+14/1/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ RELEASE LibOfx 0.6.6
+ * configure.in: Change version number
+ * NEWS: Update for release
+ * Makefile.am: Add version number to docdir name
+ * libofx.spec.in: Remove known_bugs.txt
+
+14/1/2004 Benoit Grégoire <bock@step.polymtl.ca>
+ * dtd/Makefile.am, dtd/opensp.dcl, * lib/ofx_preproc.[cpp,hh],: Add SGML declaration to be parsed before the DTD. Makes us immune to changes to default settings. Should get rid of "end tag for "MEMO" omitted, but OMITTAG NO was specified" type of messages and greatly help the parser.
+ * lib/ofx_sgml.cpp: Get rid of OpenSP 1.3.1 compatibility code, which makes the code much easier to understand and debug. Combined with the change obove, it should practically eliminate the parsing ambiguity that made libofx so verbose and ocasionally miss data. More defensive coding to warn of malformed files. This probably means that compatibility with OpenSP 1.3.1 cannot come back. However with the change above it may work after all. Somebody please test this...
+ * lib/messages.cpp: Finally implement displaying line numbers in the error output. This can be turned off by the clients by setting the ofx_show_position global. These should all get setter functions in the API re-write.
+
+6/12/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_container_transaction.cpp: Fix an infinite loop when searching for a parent statement for a transaction if it isn't the immediate parent. Thanks to stephen.a.prior A T ntlworld.ie for the catch.
+
+12/9/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ RELEASE LibOfx 0.6.5
+ * configure.in: Change version number
+ * NEWS: Update for release
+ * lib/ofx_utilities.cpp: Change date handling to fix problems with the majority of banks diverging from the specs. Should fix problems with the day being off by one for some countries.
+ * doc/implementation_notes.txt: Moved contents in the doxygen docs.
+ * doc/Makefile.am: Fix the path for the html docs.
+
+2/5/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_utilities.cpp: Add #include <locale.h> to fix compile error on freebsd and possibly all gcc2 based distro.
+
+15/4/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_preproc.cpp: Fix for really broken files that do not have a newline after the ofx header. Fixes bug #721732
+
+12/4/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ RELEASE LibOfx 0.6.4
+ * configure.in: Change version number
+ * NEWS: Update for release
+ * lib/ofx_utilities.cpp: Fix bug in ofxamount_to_double() triggered by the client setting the locale. If the locale used ',' as decimal separator, it would get normalised to '.' and atof() would fail. Now normalises to (localeconv())->decimal_point. Closes gnucash bug 105481
+
+18/3/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ RELEASE LibOfx 0.6.3
+ * NEWS: Update for release
+ * Makefile.am: Remove references to known_bugx.txt
+
+16/3/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * configure.in: Remove --with-opensp-multibyte configure option (it is now the default). There is now a --with-no-opensp-multibyte instead, to force libofx to assume that OpenSP was NOT compiled with SP_MULTI_BYTE defined.
+ * doc/doxygen.cfg: Remove, this file is now generated from doc/doxygen.cfg.in
+ * known_bugx.txt: Remove file, since we now have a bugtracker.
+ * README: Update
+ * INSTALL: Delete and replace by FAQ, update content.
+
+11/3/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * ofxdump/ofxdump.cpp: Remove comand line arguments debug output.
+ * lib/ofx_container_main.cpp: Fix compiler warnings reported by Derek Atkins
+ * Misc build system cleanup
+
+24/2/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * ofx2qif/ofx2qif.c: Apply patch by Scott Gifford <sgifford@suspectclass.com> to fix ofx2qif crash.
+ * Add a bunch of .cvsignore files
+
+3/2/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * dtd/ofx160.dtd: Correct the dtd to fix the "content model is ambiguous" errors reported by opensp.
+
+27/1/2003 Thomas Frayne <TomF@sjpc.org>
+ * ofxdump/ofxdump.cpp: Add command options: --version, -V, --help
+
+3/2/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_utilities.cpp: Fix ofxdate_to_time_t() that wouldn't compile on sun.
+
+23/1/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_container_transaction.cpp: Explicitely ignore <MKTVAL> since it should always be equal to UNITS*UNITPRICE, and using it may lead to rounding errors.
+
+22/1/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * autogen.sh: Run libtoolize, and reorder the commands. The order is now: libtoolize,aclocal, autoheader, automake, autoconf and configure
+
+11/1/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_utilities.cpp: Really fix problems for big endian machines.
+ * INSTALL: Document the --with-opensp-multibyte workaround for when headers in package lie about the compile option of OpenSP (usually because they were not compiled at the same time). This is the case with the OpenJade package distributed in Mandrake cooker, and perhaps others.
+ * configure.in: add --with-opensp-multibyte option
+
+10/1/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_utilities.cpp: Try to fix problems for big endian machines.
+
+9/1/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * configure.in: Add /usr/local/include to OpenSP's include search path.
+ * INSTALL: Add FAQ for "bug" http://sourceforge.net/tracker/index.php?func=detail&aid=654591&group_id=61170&atid=496353
+
+9/1/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_utilities.cpp: Remove the ugly get_sp_char_size() hack and use SP_MULTI_BYTE in config.h instead. This probably fixes the "libofx not working on big endian machines" bug.
+
+9/1/2003 Benoit Grégoire <bock@step.polymtl.ca>
+ * configure.in: Now detect if OpenSP was compiled with SP_MULTI_BYTE, and put the result in config.
+ * INSTALL: Update for GNU build system.
+
+04/12/2002 Peter O'Gorman <ogorman@users.sourceforge.net>
+ * doc/Makefile.am: Make DESTDIR work
+ * lib/Makefile.am: Changed version_info to version-info and modified the version to be what libtool expects.
+
+24/11/2002 Chris Lyttle <chris@wilddev.net>
+ * libofx.spec.in: updated for new docs
+
+24/11/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * configure.in, doc/Makefile.am: Improve doxygen doc generation, and enable make install without the doc.
+
+24/11/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * ofx_sgml.cpp: Hopefully fix incompatibilities with BOTH OpenSP 1.3.x and OpenSP >= 1.4
+ * Makefile.am, doc/Makefile.am: Doxygen API and internal doc now integrated in the build system. It will be distributed and install with the tarballs, and can be build in libofx-cvs using make doc.
+ * autogen.sh: Re-enable maintainer-mode.
+ * doc/Makefile: Deleted
+ * doc/resume_presentation.pdf: Deleted, too outdated. See project report on the libofx website instead.
+
+23/11/2002 Chris Lyttle <chris@wilddev.net>
+ * libofx.spec.in: added for rpm builds
+ * Makefile.am: added lines spec to EXTRA_DIST
+ * configure.in: added spec.in line
+ * autogen.sh: changed configure line to see arguments
+
+18/11/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * ofx_sgml.cpp: Fix critical bug. Parsing of a file would fail and hang for users of OpenSP 1.5pre5 (and possibly others). Simplify workaround of OpenSP 1.3 bugs, more code is now shared.
+ * configure.in: Update for release 0.6.1
+
+18/11/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * Update build files for release of libofx 0.6.0
+
+30/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * inc/libofx.h lib/ofx_container_transaction.cpp ofxdump/ofxdump.cpp: Created a new invtransactiontype enum to replace the invtranstype string
+
+30/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_sgml.cpp: Added yet more spagetti code and global variables to improve the work around for OpenSP 1.3 bugs. I beg of you, please convince your distro to make openjade and the OpenSP library independently upgradable.
+
+30/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * configure.in:
+ Apply Derek Atkins <warlord@MIT.EDU> patch needed to build on
+> RH7.3 using the "distributed" version of openjade.
+
+29/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_preproc.cpp doc/tag_striper_test.txt:
+ Proprietary tag striper is now much smarter and read routines have been fixed. Importing a file written on a single line should now be possible.
+ Added a test file for the proprietary tag striper .
+
+29/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * configure.in: Work around autoconf 2.1 not supporting AC_LANG()
+
+21/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * ofxdump/ofxdump.cpp: Add support for invtranstype in ofx_proc_transaction_cb()
+
+21/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * lib/ofx_preproc.cpp: Abort if DTD was not found
+
+20/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * Fix debug output
+ * Begin fixing ofx2qif for the new transaction ordering code
+
+17/10/2002 Benoit Grégoire <bock@step.polymtl.ca>
+ * Implemented internal container trees, allowing transaction reordering and security lookups
+ * Complete investment transaction support
+ * Converted the build system to automake/autoconf, mostly contributed by "Peter O'Gorman" <peter@pogma.com>
+
+LibOFX 0.?????????:
+ -Add an account_name to the OfxAccountData struct. It contains a human readable identifier of the account.
+ -Include file location seems to have changed in recent versions of OpenSP. Included old and new case.
+ -Profiling now possible. It is now posible to use "make static". Statically linked ofxdump and ofx2qif will be created, with profiling enabled.
+LibOFX 0.3:
+ -MUCH improved documentation. Full API and internals reference in doc/html/
+ -Major update to ofx2qif. It will now generate the !Account QIF construct, which should improbe compatibility with other accounting software.
+ -gcc3.2 caused problems with ld, now use gcc to link. Should solve the "undefined symbol:__dso_handle" runtime problem with Mandrake cooker.
+ -There is now a workaround in the code to make it work with the OpenSP version (1.3.4) distributed with OpenJADE. However, this is not guaranteed to work, and it might cause errors in your financial data, and might not be present in future versions. Use at your own risk, you've been warned.
+ -LibOFX can now be installed in "unorthodox" directories, such as ~/experimental, and still find it's dtd. You must modify the prefix in common.m (recommended) or put it in the command line of BOTH make and make install.
+ -LibOFX is now officially in beta. Since one application now uses it (GnuCash), from now on, the library soname will be bumped if binary compatibility is broken.
+LibOFX 0.24:
+ -Fix include files for gcc2
+LibOFX 0.23:
+ -Hacked in runtime detection of OpenSP's SGMLApplication::Char size. This should fix the hairy problems some people were experiencing with garbled Output with some versions of OpenSP.
+ -Installation instruction have been improved.
+ -OpenSP include files are no longer distributed with LibOFX.
+LibOFX 0.22:
+ -make install will now copy libofx.h in the appropriate include directory.
+LibOFX 0.21:
+ -Files were still created in current directory. Now force /tmp to be used
+LibOFX 0.2:
+ -The input OFX file's directory no longer need to be writable, and no stale files are left behind.
+ -Prefixed all enum names with OFX to avoid collision with client software (Gnucash in particular)
+ -Changed all money amounts from float to double
+ -Fixed constructors to avoid some "holdover" data
+LibOFX 0.122:
+ -Always show two decimals for money in ofxdump.
+ -Fix dates off by two month (Scott Drennan)
+ -Fix ofx2qif account type for CREDITCARD (Scott Drennan)
+LibOFX 0.121:
+ -Fix makefiles for users who do not have ldconfig in their path to create local links.
+LibOFX 0.12:
+ -LibOFX can now be transparently used by both C and C++, using the same include file (libofx.h)
+ -ofx2qif rewritten in C, to ensure that C compatibility will be maintained and tested.
+ -Added target uninstall to all makefiles
+ -Various other makefile improvements
+LibOFX 0.11:
+ -Added ofx sample files extracted from the OFX 1.60 and 2.01 specifications in DOC.
+ -Fix compile problems with G++2.9.6
+ -Makefiles updated
+ -Require a recent version of OpenSP, doesn't work well the one included in OpenJADE (At least on Mandrake).
+ -Fixed the algorithm for proprietary tag striping.
+LibOFX 0.1:
+ -Initial public release
236 INSTALL
@@ -0,0 +1,236 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
34 Makefile.am
@@ -0,0 +1,34 @@
+if BUILD_OFXCONNECT
+ MAYBE_OFXCONNECT = ofxconnect
+endif
+SUBDIRS = m4 inc dtd lib doc . ofx2qif ofxdump $(MAYBE_OFXCONNECT)
+
+docdir = ${prefix}/share/doc/libofx
+
+doc_DATA = \
+ AUTHORS \
+ COPYING \
+ INSTALL \
+ NEWS \
+ README \
+ ChangeLog \
+ totest.txt
+
+EXTRA_DIST = \
+ libofx.spec.in \
+ libofx.spec \
+ libofx.pc \
+ totest.txt \
+ libofx.lsm
+
+pkgconfigdir=$(libdir)/pkgconfig
+pkgconfig_DATA=libofx.pc
+
+.PHONY: doc
+doc:
+ $(MAKE) -C doc doc
+
+rpm: $(PACKAGE).spec dist
+ rpmbuild="rpm" && \
+ if [ `rpm --version | awk '{ print $$3 }'` > /dev/null ]; then rpmbuild="rpmbuild"; fi && \
+ $$rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz
749 Makefile.in
@@ -0,0 +1,749 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(srcdir)/libofx.pc.in $(srcdir)/libofx.spec.in \
+ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+ config/config.guess config/config.sub config/depcomp \
+ config/install-sh config/ltmain.sh config/missing
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/os.m4 $(top_srcdir)/libcurl.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = libofx.spec libofx.pc
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)"
+docDATA_INSTALL = $(INSTALL_DATA)
+pkgconfigDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(doc_DATA) $(pkgconfig_DATA)
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = m4 inc dtd lib doc . ofx2qif ofxdump ofxconnect
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_OFXCONNECT_FALSE = @BUILD_OFXCONNECT_FALSE@
+BUILD_OFXCONNECT_TRUE = @BUILD_OFXCONNECT_TRUE@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOC_FALSE = @DOC_FALSE@
+DOC_TRUE = @DOC_TRUE@
+DOT = @DOT@
+DOXYGEN = @DOXYGEN@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_DOXYGEN_FALSE = @ENABLE_DOXYGEN_FALSE@
+ENABLE_DOXYGEN_TRUE = @ENABLE_DOXYGEN_TRUE@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GREP = @GREP@
+ICONV_LIBS = @ICONV_LIBS@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_DLL_TARGET = @INSTALL_DLL_TARGET@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBCURL = @LIBCURL@
+LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBOFX_BUILD_VERSION = @LIBOFX_BUILD_VERSION@
+LIBOFX_DTD_DIR = @LIBOFX_DTD_DIR@
+LIBOFX_MAJOR_VERSION = @LIBOFX_MAJOR_VERSION@
+LIBOFX_MICRO_VERSION = @LIBOFX_MICRO_VERSION@
+LIBOFX_MINOR_VERSION = @LIBOFX_MINOR_VERSION@
+LIBOFX_SO_AGE = @LIBOFX_SO_AGE@
+LIBOFX_SO_CURRENT = @LIBOFX_SO_CURRENT@
+LIBOFX_SO_REVISION = @LIBOFX_SO_REVISION@
+LIBOFX_VERSION = @LIBOFX_VERSION@
+LIBOFX_VERSION_RELEASE_STRING = @LIBOFX_VERSION_RELEASE_STRING@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXMLPP_CFLAGS = @LIBXMLPP_CFLAGS@
+LIBXMLPP_LIBS = @LIBXMLPP_LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MAKE_DLL_TARGET = @MAKE_DLL_TARGET@
+NO_GETOPTLONG_FALSE = @NO_GETOPTLONG_FALSE@
+NO_GETOPTLONG_TRUE = @NO_GETOPTLONG_TRUE@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OPENSPINCLUDES = @OPENSPINCLUDES@
+OPENSPLIBS = @OPENSPLIBS@
+OSYSTEM = @OSYSTEM@
+OS_TYPE = @OS_TYPE@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+QT_CFLAGS = @QT_CFLAGS@
+RANLIB = @RANLIB@
+RC = @RC@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_GENGETOPT_FALSE = @USE_GENGETOPT_FALSE@
+USE_GENGETOPT_TRUE = @USE_GENGETOPT_TRUE@
+VERSION = @VERSION@
+WITH_ICONV = @WITH_ICONV@
+_libcurl_config = @_libcurl_config@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = ${prefix}/share/doc/libofx
+dvidir = @dvidir@
+enable_dot = @enable_dot@
+enable_html_docs = @enable_html_docs@
+enable_latex_docs = @enable_latex_docs@
+exec_prefix = @exec_prefix@
+have_gengetopt = @have_gengetopt@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+ofxconnect = @ofxconnect@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+@BUILD_OFXCONNECT_TRUE@MAYBE_OFXCONNECT = ofxconnect
+SUBDIRS = m4 inc dtd lib doc . ofx2qif ofxdump $(MAYBE_OFXCONNECT)
+doc_DATA = \
+ AUTHORS \
+ COPYING \
+ INSTALL \
+ NEWS \
+ README \
+ ChangeLog \
+ totest.txt
+
+EXTRA_DIST = \
+ libofx.spec.in \
+ libofx.spec \
+ libofx.pc \
+ totest.txt \
+ libofx.lsm
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libofx.pc
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+ cd $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_srcdir) && $(AUTOHEADER)
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+libofx.spec: $(top_builddir)/config.status $(srcdir)/libofx.spec.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+libofx.pc: $(top_builddir)/config.status $(srcdir)/libofx.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+install-docDATA: $(doc_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)"
+ @list='$(doc_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \
+ $(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \
+ done
+
+uninstall-docDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(doc_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(docdir)/$$f"; \
+ done
+install-pkgconfigDATA: $(pkgconfig_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)"
+ @list='$(pkgconfig_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
+ $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+ done
+
+uninstall-pkgconfigDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+ done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ mkdir $(distdir)
+ $(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/inc $(distdir)/lib $(distdir)/m4
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r $(distdir)
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
+ chmod a-w $(distdir)
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && cd $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+ $(am__remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+distuninstallcheck:
+ @cd $(distuninstallcheck_dir) \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA) config.h
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-docDATA install-pkgconfigDATA
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-docDATA uninstall-info-am \
+ uninstall-pkgconfigDATA
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+ check-am clean clean-generic clean-libtool clean-recursive \
+ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+ dist-shar dist-tarZ dist-zip distcheck distclean \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-recursive distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-docDATA install-exec install-exec-am install-info \
+ install-info-am install-man install-pkgconfigDATA \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am uninstall-docDATA \
+ uninstall-info-am uninstall-pkgconfigDATA
+
+
+.PHONY: doc
+doc:
+ $(MAKE) -C doc doc
+
+rpm: $(PACKAGE).spec dist
+ rpmbuild="rpm" && \
+ if [ `rpm --version | awk '{ print $$3 }'` > /dev/null ]; then rpmbuild="rpmbuild"; fi && \
+ $$rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
123 NEWS
@@ -0,0 +1,123 @@
+LibOFX 0.9.0:
+ - this release now exports version information thus allowing depending applications
+ to determine the version of LibOFX to compile against
+ - some fields have been added to OfxFiLogin to allow for modification of some
+ OFX header fields in outgoing requests. Together with the latest AqBanking3 this
+ should fix the problem with servers suddenly rejecting connections from LibOFX
+ applications
+ - the calling application can now tell libofx where the data files reside. This allows
+ for relocatable binaries (most importantly on Windows)
+ - some warnings from recent versions of GCC have been fixed
+ - libOFX can now easily be cross-compiled for Windows on Linux
+ - the OFX header is now scanned for a hint regarding the encoding of the document and
+ convert the data to UTF8 if iconv is available at compile time.
+ - the API for online requests has been cleaned up
+
+LibOFX 0.8.3:
+ - Fix problem with string lengths. Fixes Gnucash bug http://bugzilla.gnome.org/show_bug.cgi?id=353986
+
+LibOFX 0.8.2:
+        - bug fixes for GCC4.x and 64-bit compatibility
+        - fix to enable OFXDirectConnect in Aqbanking
+        - improvements to ofxpartner functionality
+        - minor build system modifications
+        - new fields for fees, commissions and stock split data
+ - fix a memory leak and a potential crashing bug
+
+LibOFX 0.8.0:
+ - New DirectConnect API for statement downloads, thanks to Ace Jones and Martin Preuss
+ - Added ofxconnect sample app to demonstrate & test new API's (try "make check" in the ofxconnect folder). Read README.privateserver first.
+ - Apply Christian Stimming's patch for rpm building. Also adds a make rpm target.
+
+LibOFX 0.7.0:
+ - Fix compile with gcc 3.4. This also needs to be applied to the stable branch.
+ - Now uses a proper callback architecture (many thanks to Martin Preuss and Ryan P Bobko who contributed to it).
+ - Now uses gengetopt. You can now set the desired debug output from the command line without recompiling. Check ofxdump --help.
+ - File formet autodetection.
+ - Working (but incomplete) Open Financial Connectivity (OFC) support.
+ - Can now display line number in the debug output
+ - Add file format autodetection architecture, can currently distinguish between OFX and OFC files.
+
+LibOFX 0.6.6:
+ -Important code cleanup in the parsing code. The parser should be much more independent of OpenSP default settings. Should get rid of "end tag for "MEMO" omitted, but OMITTAG NO was specified" type messages and many other parser failures.
+ -The very old OpenSP 1.3.1 will probably no longuer work.
+ -Fix an infinite loop in some circumstances while the library was searching for a parent statement for a transaction. Would mostly manifest on complex investments transactions. Thanks to stephen.a.prior A T ntlworld.ie for the catch.
+ -Implement displaying file line numbers in the error output. Note that data won't be valid if the message occurs before the file is opened.
+
+LibOFX 0.6.5:
+ -Fix for really broken files that do not have a newline after the ofx header (bug #721732)
+ -Add #include <locale.h> to fix compile error on freebsd and possibly all gcc2 based distro.
+ -Change date handling to fix problems with the majority of banks diverging from the specs. Should fix problems with the day being off by one for some countries. (bug #778615)
+
+LibOFX 0.6.4:
+ -Fix critical bug that caused the decimals to be ignored after the decimal separator in some locale (no matter what the decimal separator was in the original file). For example, importing in gnucash with a locale of fr_FR caused an amount of 19,95 to be imported as 19,00.
+
+LibOFX 0.6.3:
+ -Fix incompatibilities with big endian machines
+ -Fix compilation on sun
+ -Fix error in the DTD that caused "content model is ambiguous" errors
+ -Fix ofx2qif crash
+ -ofxdump can now report the library version number.
+
+LibOFX 0.6.2:
+ -Hopefully fix incompatibilities with BOTH OpenSP 1.3.x and OpenSP >= 1.4
+ -Building as rpm is now available, thanks to Chris Lyttle.
+ -Doxygen API and internal doc now integrated in the build system. It will be distributed and install with the tarballs, and can be build in libofx-cvs using make doc.
+
+LibOFX 0.6.1:
+ -Fix a critical bug in 0.6.0. Parsing of a file would fail and hang for users of OpenSP 1.5pre5 (and possibly others).
+
+LibOFX 0.6:
+ -Beta version, released to accompany the new GnuCash 1.7.3 beta release.
+ -Full investment transaction support (ofx2qif not yet updated however).
+ -Now uses an Autoconf/Automake build system.
+ -Proprietary tag striper is now much smarter and read routines have been corrected. Importing a file written on a single line will no longer cause an infinite loop.
+ -Added yet more spagetti code and global variables to improve the work around for OpenSP 1.3 bugs. I beg of you, please convince your distro to make openjade and the OpenSP library independently upgradable.
+
+LibOFX 0.5:
+ -Alpha version, released to accompany the new GnuCash 1.7.1 alpha release.
+ -Add an account_name to the OfxAccountData struct. It contains a human readable identifier of the account.
+ -Include file location seems to have changed in recent versions of OpenSP. Included old and new case.
+ -Profiling now possible. It is now posible to use "make static". Statically linked ofxdump and ofx2qif will be created, with profiling enabled.
+ -Basic work for investment account and securities.
+LibOFX 0.3:
+ -MUCH improved documentation. Full API and internals reference in doc/html/
+ -Major update to ofx2qif. It will now generate the !Account QIF construct, which should improbe compatibility with other accounting software.
+ -gcc3.2 caused problems with ld, now use gcc to link. Should solve the "undefined symbol:__dso_handle" runtime problem with Mandrake cooker.
+ -There is now a workaround in the code to make it work with the OpenSP version (1.3.4) distributed with OpenJADE. However, this is not guaranteed to work, and it might cause errors in your financial data, and might not be present in future versions. Use at your own risk, you've been warned.
+ -LibOFX can now be installed in "unorthodox" directories, such as ~/experimental, and still find it's dtd. You must modify the prefix in common.m (recommended) or put it in the command line of BOTH make and make install.
+ -LibOFX is now officially in beta. Since one application now uses it (GnuCash), from now on, the library soname will be bumped if binary compatibility is broken.
+LibOFX 0.24:
+ -Fix include files for gcc2
+LibOFX 0.23:
+ -Hacked in runtime detection of OpenSP's SGMLApplication::Char size. This should fix the hairy problems some people were experiencing with garbled Output with some versions of OpenSP.
+ -Installation instruction have been improved.
+ -OpenSP include files are no longer distributed with LibOFX.
+LibOFX 0.22:
+ -make install will now copy libofx.h in the appropriate include directory.
+LibOFX 0.21:
+ -Files were still created in current directory. Now force /tmp to be used
+LibOFX 0.2:
+ -The input OFX file's directory no longer need to be writable, and no stale files are left behind.
+ -Prefixed all enum names with OFX to avoid collision with client software (Gnucash in particular)
+ -Changed all money amounts from float to double
+ -Fixed constructors to avoid some "holdover" data
+LibOFX 0.122:
+ -Always show two decimals for money in ofxdump.
+ -Fix dates off by two month (Scott Drennan)
+ -Fix ofx2qif account type for CREDITCARD (Scott Drennan)
+LibOFX 0.121:
+ -Fix makefiles for users who do not have ldconfig in their path to create local links.
+LibOFX 0.12:
+ -LibOFX can now be transparently used by both C and C++, using the same include file (libofx.h)
+ -ofx2qif rewritten in C, to ensure that C compatibility will be maintained and tested.
+ -Added target uninstall to all makefiles
+ -Various other makefile improvements
+LibOFX 0.11:
+ -Added ofx sample files extracted from the OFX 1.60 and 2.01 specifications in DOC.
+ -Fix compile problems with G++2.9.6
+ -Makefiles updated
+ -Require a recent version of OpenSP, doesn't work well the one included in OpenJADE (At least on Mandrake).
+ -Fixed the algorithm for proprietary tag striping.
+LibOFX 0.1:
+ -Initial public release
52 README
@@ -0,0 +1,52 @@
+Copyright (c) 2002-2003 Benoit Gr�goire
+
+This is the LibOFX library. It is a API designed to allow applications to very easily support OFX command responses, usually provided by financial institutions. See http://www.ofx.net/ofx/default.asp for details and specification. This project was first started as my end of degree project, with the objective to add OFX support to GnuCash http://www.gnucash.org/ If you can read French, the original project presentation is included in the doc directory. I finally decided to make it into a generic library, so all OpenSource financial software can benefit.
+
+LibOFX is based on the excellent OpenSP library written by James Clark, and now part of the OpenJADE http://openjade.sourceforge.net/ project. OpenSP by itself is not widely distributed. OpenJADE 1.3.1 includes a version on OpenSP that will link, however, it has some major problems with LibOFX and isn't recommended. Since LibOFX uses the generic interface to OpenSP, it should be compatible with all recent versions of OpenSP (It has been developed with OpenSP-1.5pre5). LibOFX is written in C++, but provides a C style interface usable transparently from both C and C++ using a single include file.
+
+In addition to the library, two utilities are included with libofx
+
+ofxdump:
+ofxdump prints to stdout, in human readable form, everything the library understands about a particular ofx response file, and sends errors to stderr. It is as C++ code example and demo of the library (it uses every functions and every structures of LibOFX)
+usage: ofxdump path_to_ofx_file/ofx_filename
+
+ofx2qif:
+ofx2qif is a OFX "file" to QIF (Quicken Interchange Format) converter. It was written as a C code example, and as a way for LibOFX to immediately provide something usefull, as an incentive for people to try out the library. It is not recommended that financial software use the output of this utility for OFX support. The QIF file format is very primitive, and much information is lost. The utility curently supports every tansaction tags of the qif format except the address lines, and supports many of the tags of !Account. It should generate QIF files that will import sucesfully in just about every software with QIF support.
+I do not plan on working on this utility much further, but I would be more than happy to accept contributions.
+usage: ofx2qif path_to_ofx_file/ofx_filename > output_filename.qif
+
+ofxconnect:
+sample app to demonstrate & test new direct connect API's (try "make check" in the ofxconnect folder). Read README.privateserver first.
+
+LibOFX strives to achieve the following design goals:
+
+-Simplicity: OFX is a VERY complex spec. However, few if any software needs all this complexity. The library tries to hide this complexity by "flattening" the data structures, doing timezone conversions, currency conversion, etc.
+-Data directly usable from C, without conversion: A date is a C time_t, money is a float, strings are char[], etc.
+-C style interface: Although LibOFX is written in C++, it provides an interface usable transparently from both C and C++, using a single header file.
+
+LibOFX was implemented directly from the full OFX 1.6 spec, and currently supports:
+
+ * Banking transactions and statements.
+ * Credit card and statements.
+ * Investment transactions.
+ * OFX 2.0
+
+Future projects for libofx include:
+
+ * Header parsing
+ * DTD autodetection
+ * Currency conversion
+ * QIF import
+ * QIF export (integrated inside the library)
+ * OFX export
+
+Full documentation of the API and library internals generated using doxygen is available. For a quick start, you should learn all you need to know to get started by reading the libofx.h file in the INC directory, and ofxdump.cpp in the ofxdump directory.
+
+Call for help:
+-Please note that despite a very detailled spec, OFX is by nature very hard to test. I only have access to the specifications examples, and
+my own bank (Desjardins). But I need people to run as many ofx files from different banks as they can thru libofx, and report the result.
+-This is my first attempt at writing an API. I need comments from financial software writers about inc/libofx.h What do YOU need?
+
+Benoit Gr�goire
+bock@step.polymtl.ca
+
7,631 aclocal.m4
7,631 additions, 0 deletions not shown
173 config.h.in
@@ -0,0 +1,173 @@
+/* config.h.in. Generated from configure.in by autoheader. */
+
+/* if DLL is to be built */
+#undef BUILDING_DLL
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <EventGenerator.h> header file. */
+#undef HAVE_EVENTGENERATOR_H
+
+/* Define to 1 if you have the <getopt.h> header file. */
+#undef HAVE_GETOPT_H
+
+/* Define to 1 if you have the `getopt_long' function. */
+#undef HAVE_GETOPT_LONG
+
+/* Defined if libxml++ is available */
+#undef HAVE_ICONV
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have a functional curl library. */
+#undef HAVE_LIBCURL
+
+/* Defined if libxml++ is available */
+#undef HAVE_LIBXMLPP
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <ParserEventGeneratorKit.h> header file. */
+#undef HAVE_PARSEREVENTGENERATORKIT_H
+
+/* Define to 1 if you have the <SGMLApplication.h> header file. */
+#undef HAVE_SGMLAPPLICATION_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Defined if libcurl supports AsynchDNS */
+#undef LIBCURL_FEATURE_ASYNCHDNS
+
+/* Defined if libcurl supports IPv6 */
+#undef LIBCURL_FEATURE_IPV6
+
+/* Defined if libcurl supports KRB4 */
+#undef LIBCURL_FEATURE_KRB4
+
+/* Defined if libcurl supports libz */
+#undef LIBCURL_FEATURE_LIBZ
+
+/* Defined if libcurl supports SSL */
+#undef LIBCURL_FEATURE_SSL
+
+/* Defined if libcurl supports DICT */
+#undef LIBCURL_PROTOCOL_DICT
+
+/* Defined if libcurl supports FILE */
+#undef LIBCURL_PROTOCOL_FILE
+
+/* Defined if libcurl supports FTP */
+#undef LIBCURL_PROTOCOL_FTP
+
+/* Defined if libcurl supports FTPS */
+#undef LIBCURL_PROTOCOL_FTPS
+
+/* Defined if libcurl supports GOPHER */
+#undef LIBCURL_PROTOCOL_GOPHER
+
+/* Defined if libcurl supports HTTP */
+#undef LIBCURL_PROTOCOL_HTTP
+
+/* Defined if libcurl supports HTTPS */
+#undef LIBCURL_PROTOCOL_HTTPS
+
+/* Defined if libcurl supports LDAP */
+#undef LIBCURL_PROTOCOL_LDAP
+
+/* Defined if libcurl supports TELNET */
+#undef LIBCURL_PROTOCOL_TELNET
+
+/* if BeOS is used */
+#undef OS_BEOS
+
+/* if Apple Darwin is used */
+#undef OS_DARWIN
+
+/* if FreeBSD is used */
+#undef OS_FREEBSD
+
+/* if linux is used */
+#undef OS_LINUX
+
+/* host system */
+#undef OS_NAME
+
+/* if NetBSD is used */
+#undef OS_NETBSD
+
+/* if OpenBSD is used */
+#undef OS_OPENBSD
+
+/* if PalmOS is used */
+#undef OS_PALMOS
+
+/* if this is a POSIX system */
+#undef OS_POSIX
+
+/* host system */
+#undef OS_SHORTNAME
+
+/* if Solaris is used */
+#undef OS_SOLARIS
+
+/* system type */
+#undef OS_TYPE
+
+/* if WIN32 is used */
+#undef OS_WIN32
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* SP_MULTI_BYTE value from when OpenSP was compiled */
+#undef SP_MULTI_BYTE
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 if your processor stores words with the most significant byte
+ first (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
+
+/* Define curl_free() as free() if our version of curl lacks curl_free. */
+#undef curl_free
1,516 config/config.guess
@@ -0,0 +1,1516 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+# Inc.
+
+timestamp='2007-07-22'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)