Initial revision
svn: r1140
							
								
								
									
										5
									
								
								.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
Makefile
 | 
			
		||||
config.cache
 | 
			
		||||
config.log
 | 
			
		||||
config.status
 | 
			
		||||
gramps.sh
 | 
			
		||||
							
								
								
									
										5
									
								
								AUTHORS
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,5 @@
 | 
			
		||||
Donald N. Allingham ** Concept and main design
 | 
			
		||||
 | 
			
		||||
David Hampton ** Autocomp.py and Report.py
 | 
			
		||||
 | 
			
		||||
Donald A. Peterson  ** Makefiles, LaTeXDoc.py
 | 
			
		||||
							
								
								
									
										339
									
								
								COPYING
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,339 @@
 | 
			
		||||
		    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
 | 
			
		||||
 | 
			
		||||
	Appendix: How to Apply These Terms to Your New Programs
 | 
			
		||||
 | 
			
		||||
  If you develop a new program, and you want it to be of the greatest
 | 
			
		||||
possible use to the public, the best way to achieve this is to make it
 | 
			
		||||
free software which everyone can redistribute and change under these terms.
 | 
			
		||||
 | 
			
		||||
  To do so, attach the following notices to the program.  It is safest
 | 
			
		||||
to attach them to the start of each source file to most effectively
 | 
			
		||||
convey the exclusion of warranty; and each file should have at least
 | 
			
		||||
the "copyright" line and a pointer to where the full notice is found.
 | 
			
		||||
 | 
			
		||||
    <one line to give the program's name and a brief idea of what it does.>
 | 
			
		||||
    Copyright (C) 19yy  <name of author>
 | 
			
		||||
 | 
			
		||||
    This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 | 
			
		||||
Also add information on how to contact you by electronic and paper mail.
 | 
			
		||||
 | 
			
		||||
If the program is interactive, make it output a short notice like this
 | 
			
		||||
when it starts in an interactive mode:
 | 
			
		||||
 | 
			
		||||
    Gnomovision version 69, Copyright (C) 19yy name of author
 | 
			
		||||
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
 | 
			
		||||
    This is free software, and you are welcome to redistribute it
 | 
			
		||||
    under certain conditions; type `show c' for details.
 | 
			
		||||
 | 
			
		||||
The hypothetical commands `show w' and `show c' should show the appropriate
 | 
			
		||||
parts of the General Public License.  Of course, the commands you use may
 | 
			
		||||
be called something other than `show w' and `show c'; they could even be
 | 
			
		||||
mouse-clicks or menu items--whatever suits your program.
 | 
			
		||||
 | 
			
		||||
You should also get your employer (if you work as a programmer) or your
 | 
			
		||||
school, if any, to sign a "copyright disclaimer" for the program, if
 | 
			
		||||
necessary.  Here is a sample; alter the names:
 | 
			
		||||
 | 
			
		||||
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
 | 
			
		||||
  `Gnomovision' (which makes passes at compilers) written by James Hacker.
 | 
			
		||||
 | 
			
		||||
  <signature of Ty Coon>, 1 April 1989
 | 
			
		||||
  Ty Coon, President of Vice
 | 
			
		||||
 | 
			
		||||
This General Public License does not permit incorporating your program into
 | 
			
		||||
proprietary programs.  If your program is a subroutine library, you may
 | 
			
		||||
consider it more useful to permit linking proprietary applications with the
 | 
			
		||||
library.  If this is what you want to do, use the GNU Library General
 | 
			
		||||
Public License instead of this License.
 | 
			
		||||
							
								
								
									
										79
									
								
								INSTALL
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,79 @@
 | 
			
		||||
For rebuilding from source, here are some guidelines to follow.  For
 | 
			
		||||
developers who may be adding functionality to the program, be sure to read
 | 
			
		||||
the last section of this documen: "FINAL WORDS".
 | 
			
		||||
 | 
			
		||||
SUPER-SHORT VERSION:
 | 
			
		||||
You should be able to just run "./configure && make". But if you make any
 | 
			
		||||
significant changes or experience any problems, you may wish to run
 | 
			
		||||
"./autogen.sh && make" to regenerate everything.
 | 
			
		||||
 | 
			
		||||
This will call aclocal if necessary, then automake, which creates
 | 
			
		||||
Makefile.in from Makefile.am rules. Then it calls autoconf, which will
 | 
			
		||||
generate configure from configure.in and the Makefile.{am,in} sources.
 | 
			
		||||
Finally, autogen calls configure to generate the final files necessary for
 | 
			
		||||
building gramps.
 | 
			
		||||
 | 
			
		||||
SHORT VERSION:
 | 
			
		||||
Execute:
 | 
			
		||||
aclocal
 | 
			
		||||
automake --add-missing --gnu && autoconf && make
 | 
			
		||||
 | 
			
		||||
HTML documentation is built from SGML sources via jw.  It is known to work
 | 
			
		||||
with docbook-utils-0.6.9.  There is a problem with 0.6.10, which seems to
 | 
			
		||||
have some messed up dsl files. If you have difficulty building the HTML
 | 
			
		||||
documentation with your version of jw, then remove "doc" from the SUBDIRS
 | 
			
		||||
list in the top-level Makefile and send a report of where the failure was to
 | 
			
		||||
the gramps-devel list.  This distribution is tested with the style sheets
 | 
			
		||||
and PNG support from the gnome-doc-tools-2-1 package.
 | 
			
		||||
 | 
			
		||||
MORE INFO: Version and package info is now set in configure.in through a
 | 
			
		||||
call to the AM_INIT_AUTOMAKE macro.  The results are stored in variables
 | 
			
		||||
PACKAGE and VERSION, which then get substituted wherever necessary. 
 | 
			
		||||
(gramps.sh, gramps.spec, src/const.py, asst. Makefiles, etc.) We also
 | 
			
		||||
manually set the RELEASE variable for setting things like "pre" or minor
 | 
			
		||||
bugfix issues. * Note: Using @VERSION@ in the manuals has the advantage that
 | 
			
		||||
the current manual always states that it describes current version of
 | 
			
		||||
gramps.  The disadvantage is that this becomes misleading if the manual
 | 
			
		||||
isn't regularly updated.  Keep in mind this is GRAMPS version and not
 | 
			
		||||
*manual* version. Another problem is that the standard GNOME SGML
 | 
			
		||||
documentation make rules (sgmldocs.make) have their own rule, but automake
 | 
			
		||||
generates its own rule and this introduces a conflict.
 | 
			
		||||
 | 
			
		||||
"make (un)install" now runs scrollkeeper-update to ensure
 | 
			
		||||
documentation database is up to date. Scrollkeeper v. > 0.1.4 should in
 | 
			
		||||
principle work, v. > 0.2 should see no problems.  
 | 
			
		||||
 | 
			
		||||
VERBOSE, UGLY DETAILS FOR DEVELOPERS:
 | 
			
		||||
Using automake/autoconf adds many, MANY build targets to the makefiles.
 | 
			
		||||
Basically, we only care about the main and "install" targets.  However,
 | 
			
		||||
there are some others that bear further notice:
 | 
			
		||||
 | 
			
		||||
* make dist -- will create a lovely gramps-{VERSION}.tar.gz archive with
 | 
			
		||||
everything needed to distribute, including the HTML documentation just in
 | 
			
		||||
case Joe User doen't know about or have a compatable jw/db2html.  After
 | 
			
		||||
running "make dist" you can create the  rpms using 
 | 
			
		||||
"rpm -ta gramps-{VERSION}.tar.gz".  How nice is that?
 | 
			
		||||
 | 
			
		||||
* make clean -- only gets rid of byte-compiled stuff like .so files.
 | 
			
		||||
 | 
			
		||||
* make distclean -- improves on clean by eliminating configuration (*.in,
 | 
			
		||||
config.*, Makefiles, and converted documentation.) stuff. This is generally
 | 
			
		||||
what you (as a developer) will want for testing "fresh" compiles.
 | 
			
		||||
 | 
			
		||||
* make trans -- We add this one on our own for building the template.po file.
 | 
			
		||||
 | 
			
		||||
Another caveat of the automake mantra is that new/overriding make
 | 
			
		||||
targets/rules/defines should generally go in the Makefile.am files rather
 | 
			
		||||
than Makefile.in.  
 | 
			
		||||
 | 
			
		||||
* Note: Another beauty of the automake mechanism (and having automake macros
 | 
			
		||||
in the configure script) is that once the scripts have been made, a change
 | 
			
		||||
to any .am file will trigger "make" to regenerate the Makefile.in/configure
 | 
			
		||||
scripts as appropriate.  It is _very_ convenient.
 | 
			
		||||
 | 
			
		||||
FINAL WORDS: automake "thinks" of a distribution in terms of "SOURCES", such
 | 
			
		||||
as raw C code, "COMPILED OBJECTS" like executables and libraries, and
 | 
			
		||||
"DATA", such as images, scripts, and documentation.  Thus, for gramps we
 | 
			
		||||
concentrate on DATA-type objects.  We must tell automake what objects are
 | 
			
		||||
important.  We do this by adding to the EXTRA_DIST variable in the various
 | 
			
		||||
Makefile.am files before running automake. 
 | 
			
		||||
							
								
								
									
										30
									
								
								Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,30 @@
 | 
			
		||||
# copyright (C) 2000 Sun Microsystems, Inc.
 | 
			
		||||
 | 
			
		||||
SUBDIRS = src doc omf-install
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST =  autogen.sh gramps.spec.in 
 | 
			
		||||
 | 
			
		||||
bin_SCRIPTS = gramps
 | 
			
		||||
 | 
			
		||||
grampsdocdir = $(datadir)/doc/gramps-$(VERSION)
 | 
			
		||||
scrollkeeper_localstate_dir = $(localstatedir)/lib/scrollkeeper
 | 
			
		||||
 | 
			
		||||
gramps: gramps.sh
 | 
			
		||||
	cp gramps.sh gramps
 | 
			
		||||
 | 
			
		||||
dist-hook: gramps.spec
 | 
			
		||||
	cp gramps.spec $(distdir)
 | 
			
		||||
 | 
			
		||||
# Build/rebuild the catalog
 | 
			
		||||
install-data-hook:
 | 
			
		||||
	rm -rf $(DESTDIR)$(scrollkeeper_localstate_dir)
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(scrollkeeper_localstate_dir)
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(localstatedir)/log
 | 
			
		||||
	scrollkeeper-rebuilddb -p $(DESTDIR)$(scrollkeeper_localstate_dir)
 | 
			
		||||
 | 
			
		||||
# Remove generated files
 | 
			
		||||
uninstall-local:
 | 
			
		||||
	-rm -rf $(DESTDIR)$(gramps_localstate_dir)
 | 
			
		||||
	-rm -f $(DESTDIR)$(localstatedir)/log/gramps.log
 | 
			
		||||
	-rm -f $(DESTDIR)$(localstatedir)/log/gramps.log.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								Makefile.comm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,18 @@
 | 
			
		||||
# Generated automatically from Makefile.comm.in by configure.
 | 
			
		||||
# Hold variable definitions needed by slave Makefiles
 | 
			
		||||
prefix		= /usr/local
 | 
			
		||||
exec_prefix	= ${prefix}
 | 
			
		||||
bindir 		= ${exec_prefix}/bin
 | 
			
		||||
datadir		= ${prefix}/share/gramps
 | 
			
		||||
INSTALL		= /usr/bin/install -c
 | 
			
		||||
sharedir        = ${prefix}/share/gramps
 | 
			
		||||
GNOMEHELP       = ${prefix}/share/gnome/help
 | 
			
		||||
GM		= gramps-manual
 | 
			
		||||
EG		= extending-gramps
 | 
			
		||||
DB2HTML         = 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Ensure the correct "/bin/sh" for interpreting commands 
 | 
			
		||||
# in case the user has some other shell environment
 | 
			
		||||
SHELL = /bin/sh
 | 
			
		||||
							
								
								
									
										490
									
								
								Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,490 @@
 | 
			
		||||
# Makefile.in generated by automake 1.6.3 from Makefile.am.
 | 
			
		||||
# @configure_input@
 | 
			
		||||
 | 
			
		||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 | 
			
		||||
# 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@
 | 
			
		||||
 | 
			
		||||
# copyright (C) 2000 Sun Microsystems, Inc.
 | 
			
		||||
SHELL = @SHELL@
 | 
			
		||||
 | 
			
		||||
srcdir = @srcdir@
 | 
			
		||||
top_srcdir = @top_srcdir@
 | 
			
		||||
VPATH = @srcdir@
 | 
			
		||||
prefix = @prefix@
 | 
			
		||||
exec_prefix = @exec_prefix@
 | 
			
		||||
 | 
			
		||||
bindir = @bindir@
 | 
			
		||||
sbindir = @sbindir@
 | 
			
		||||
libexecdir = @libexecdir@
 | 
			
		||||
datadir = @datadir@
 | 
			
		||||
sysconfdir = @sysconfdir@
 | 
			
		||||
sharedstatedir = @sharedstatedir@
 | 
			
		||||
localstatedir = @localstatedir@
 | 
			
		||||
libdir = @libdir@
 | 
			
		||||
infodir = @infodir@
 | 
			
		||||
mandir = @mandir@
 | 
			
		||||
includedir = @includedir@
 | 
			
		||||
oldincludedir = /usr/include
 | 
			
		||||
pkgdatadir = $(datadir)/@PACKAGE@
 | 
			
		||||
pkglibdir = $(libdir)/@PACKAGE@
 | 
			
		||||
pkgincludedir = $(includedir)/@PACKAGE@
 | 
			
		||||
top_builddir = .
 | 
			
		||||
 | 
			
		||||
ACLOCAL = @ACLOCAL@
 | 
			
		||||
AUTOCONF = @AUTOCONF@
 | 
			
		||||
AUTOMAKE = @AUTOMAKE@
 | 
			
		||||
AUTOHEADER = @AUTOHEADER@
 | 
			
		||||
 | 
			
		||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 | 
			
		||||
INSTALL = @INSTALL@
 | 
			
		||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
 | 
			
		||||
INSTALL_DATA = @INSTALL_DATA@
 | 
			
		||||
install_sh_DATA = $(install_sh) -c -m 644
 | 
			
		||||
install_sh_PROGRAM = $(install_sh) -c
 | 
			
		||||
install_sh_SCRIPT = $(install_sh) -c
 | 
			
		||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
 | 
			
		||||
INSTALL_HEADER = $(INSTALL_DATA)
 | 
			
		||||
transform = @program_transform_name@
 | 
			
		||||
NORMAL_INSTALL = :
 | 
			
		||||
PRE_INSTALL = :
 | 
			
		||||
POST_INSTALL = :
 | 
			
		||||
NORMAL_UNINSTALL = :
 | 
			
		||||
PRE_UNINSTALL = :
 | 
			
		||||
POST_UNINSTALL = :
 | 
			
		||||
 | 
			
		||||
EXEEXT = @EXEEXT@
 | 
			
		||||
OBJEXT = @OBJEXT@
 | 
			
		||||
PATH_SEPARATOR = @PATH_SEPARATOR@
 | 
			
		||||
AMTAR = @AMTAR@
 | 
			
		||||
AWK = @AWK@
 | 
			
		||||
BINSH = @BINSH@
 | 
			
		||||
CC = @CC@
 | 
			
		||||
DEPDIR = @DEPDIR@
 | 
			
		||||
DISABLE_SCROLLKEEPER = @DISABLE_SCROLLKEEPER@
 | 
			
		||||
GNOMEHELP = @GNOMEHELP@
 | 
			
		||||
HAVE_GNOME_CONFIG = @HAVE_GNOME_CONFIG@
 | 
			
		||||
HAVE_JW = @HAVE_JW@
 | 
			
		||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 | 
			
		||||
INTLLIBS = @INTLLIBS@
 | 
			
		||||
JW = @JW@
 | 
			
		||||
LANGUAGES = @LANGUAGES@
 | 
			
		||||
LIBS = @LIBS@
 | 
			
		||||
MOFILES = @MOFILES@
 | 
			
		||||
MSGFMT = @MSGFMT@
 | 
			
		||||
P15_INCLUDES = @P15_INCLUDES@
 | 
			
		||||
P20_INCLUDES = @P20_INCLUDES@
 | 
			
		||||
P21_INCLUDES = @P21_INCLUDES@
 | 
			
		||||
P22_INCLUDES = @P22_INCLUDES@
 | 
			
		||||
PACKAGE = @PACKAGE@
 | 
			
		||||
POFILES = @POFILES@
 | 
			
		||||
PYTHON = @PYTHON@
 | 
			
		||||
PYTHON22 = @PYTHON22@
 | 
			
		||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 | 
			
		||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
 | 
			
		||||
PYTHON_PREFIX = @PYTHON_PREFIX@
 | 
			
		||||
PYTHON_VERSION = @PYTHON_VERSION@
 | 
			
		||||
RELEASE = @RELEASE@
 | 
			
		||||
SCROLLKEEPER_CONFIG = @SCROLLKEEPER_CONFIG@
 | 
			
		||||
SCROLLKEEPER_REQUIRED = @SCROLLKEEPER_REQUIRED@
 | 
			
		||||
STRIP = @STRIP@
 | 
			
		||||
VERSION = @VERSION@
 | 
			
		||||
VERSIONSTRING = @VERSIONSTRING@
 | 
			
		||||
ZIP = @ZIP@
 | 
			
		||||
am__include = @am__include@
 | 
			
		||||
am__quote = @am__quote@
 | 
			
		||||
install_sh = @install_sh@
 | 
			
		||||
pkgpyexecdir = @pkgpyexecdir@
 | 
			
		||||
pkgpythondir = @pkgpythondir@
 | 
			
		||||
pyexecdir = @pyexecdir@
 | 
			
		||||
pythondir = @pythondir@
 | 
			
		||||
 | 
			
		||||
SUBDIRS = src doc omf-install
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = autogen.sh gramps.spec.in 
 | 
			
		||||
 | 
			
		||||
bin_SCRIPTS = gramps
 | 
			
		||||
 | 
			
		||||
grampsdocdir = $(datadir)/doc/gramps-$(VERSION)
 | 
			
		||||
scrollkeeper_localstate_dir = $(localstatedir)/lib/scrollkeeper
 | 
			
		||||
subdir = .
 | 
			
		||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 | 
			
		||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 | 
			
		||||
CONFIG_CLEAN_FILES = gramps.spec gramps.sh
 | 
			
		||||
SCRIPTS = $(bin_SCRIPTS)
 | 
			
		||||
 | 
			
		||||
DIST_SOURCES =
 | 
			
		||||
 | 
			
		||||
RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
 | 
			
		||||
	uninstall-info-recursive all-recursive install-data-recursive \
 | 
			
		||||
	install-exec-recursive installdirs-recursive install-recursive \
 | 
			
		||||
	uninstall-recursive check-recursive installcheck-recursive
 | 
			
		||||
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
 | 
			
		||||
	Makefile.in NEWS TODO aclocal.m4 configure configure.in \
 | 
			
		||||
	gramps.sh.in gramps.spec.in install-sh missing mkinstalldirs \
 | 
			
		||||
	py-compile
 | 
			
		||||
DIST_SUBDIRS = $(SUBDIRS)
 | 
			
		||||
all: all-recursive
 | 
			
		||||
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
 | 
			
		||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 | 
			
		||||
 configure.lineno
 | 
			
		||||
$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 | 
			
		||||
	cd $(top_srcdir) && \
 | 
			
		||||
	  $(AUTOMAKE) --gnu  Makefile
 | 
			
		||||
Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
 | 
			
		||||
	cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
 | 
			
		||||
 | 
			
		||||
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 | 
			
		||||
	$(SHELL) ./config.status --recheck
 | 
			
		||||
$(srcdir)/configure:  $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
 | 
			
		||||
	cd $(srcdir) && $(AUTOCONF)
 | 
			
		||||
 | 
			
		||||
$(ACLOCAL_M4):  configure.in 
 | 
			
		||||
	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 | 
			
		||||
gramps.spec: $(top_builddir)/config.status gramps.spec.in
 | 
			
		||||
	cd $(top_builddir) && $(SHELL) ./config.status $@
 | 
			
		||||
gramps.sh: $(top_builddir)/config.status gramps.sh.in
 | 
			
		||||
	cd $(top_builddir) && $(SHELL) ./config.status $@
 | 
			
		||||
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
 | 
			
		||||
install-binSCRIPTS: $(bin_SCRIPTS)
 | 
			
		||||
	@$(NORMAL_INSTALL)
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(bindir)
 | 
			
		||||
	@list='$(bin_SCRIPTS)'; for p in $$list; do \
 | 
			
		||||
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 | 
			
		||||
	  if test -f $$d$$p; then \
 | 
			
		||||
	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
 | 
			
		||||
	    echo " $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f"; \
 | 
			
		||||
	    $(binSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(bindir)/$$f; \
 | 
			
		||||
	  else :; fi; \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
uninstall-binSCRIPTS:
 | 
			
		||||
	@$(NORMAL_UNINSTALL)
 | 
			
		||||
	@list='$(bin_SCRIPTS)'; for p in $$list; do \
 | 
			
		||||
	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
 | 
			
		||||
	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
 | 
			
		||||
	  rm -f $(DESTDIR)$(bindir)/$$f; \
 | 
			
		||||
	done
 | 
			
		||||
uninstall-info-am:
 | 
			
		||||
 | 
			
		||||
# 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):
 | 
			
		||||
	@set fnord $$MAKEFLAGS; amf=$$2; \
 | 
			
		||||
	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) \
 | 
			
		||||
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 | 
			
		||||
	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:
 | 
			
		||||
	@set fnord $$MAKEFLAGS; amf=$$2; \
 | 
			
		||||
	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) \
 | 
			
		||||
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 | 
			
		||||
	done && test -z "$$fail"
 | 
			
		||||
tags-recursive:
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
ETAGS = etags
 | 
			
		||||
ETAGSFLAGS =
 | 
			
		||||
 | 
			
		||||
tags: TAGS
 | 
			
		||||
 | 
			
		||||
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-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 | 
			
		||||
		$(TAGS_FILES) $(LISP)
 | 
			
		||||
	tags=; \
 | 
			
		||||
	here=`pwd`; \
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  if test "$$subdir" = .; then :; else \
 | 
			
		||||
	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	done; \
 | 
			
		||||
	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; }'`; \
 | 
			
		||||
	test -z "$(ETAGS_ARGS)$$tags$$unique" \
 | 
			
		||||
	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_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
 | 
			
		||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 | 
			
		||||
 | 
			
		||||
top_distdir = .
 | 
			
		||||
distdir = $(PACKAGE)-$(VERSION)
 | 
			
		||||
 | 
			
		||||
am__remove_distdir = \
 | 
			
		||||
  { test ! -d $(distdir) \
 | 
			
		||||
    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
 | 
			
		||||
         && rm -fr $(distdir); }; }
 | 
			
		||||
 | 
			
		||||
GZIP_ENV = --best
 | 
			
		||||
distcleancheck_listfiles = find . -type f -print
 | 
			
		||||
 | 
			
		||||
distdir: $(DISTFILES)
 | 
			
		||||
	$(am__remove_distdir)
 | 
			
		||||
	mkdir $(distdir)
 | 
			
		||||
	$(mkinstalldirs) $(distdir)/. $(distdir)/src
 | 
			
		||||
	@list='$(DISTFILES)'; for file in $$list; do \
 | 
			
		||||
	  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"; \
 | 
			
		||||
	    $(mkinstalldirs) "$(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='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  if test "$$subdir" = .; then :; else \
 | 
			
		||||
	    test -d $(distdir)/$$subdir \
 | 
			
		||||
	    || mkdir $(distdir)/$$subdir \
 | 
			
		||||
	    || exit 1; \
 | 
			
		||||
	    (cd $$subdir && \
 | 
			
		||||
	      $(MAKE) $(AM_MAKEFLAGS) \
 | 
			
		||||
	        top_distdir="$(top_distdir)" \
 | 
			
		||||
	        distdir=../$(distdir)/$$subdir \
 | 
			
		||||
	        distdir) \
 | 
			
		||||
	      || exit 1; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	done
 | 
			
		||||
	$(MAKE) $(AM_MAKEFLAGS) \
 | 
			
		||||
	  top_distdir="${top_distdir}" distdir="$(distdir)" \
 | 
			
		||||
	  dist-hook
 | 
			
		||||
	-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
 | 
			
		||||
	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
 | 
			
		||||
	$(am__remove_distdir)
 | 
			
		||||
 | 
			
		||||
dist dist-all: distdir
 | 
			
		||||
	$(AMTAR) chof - $(distdir) | 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
 | 
			
		||||
	$(am__remove_distdir)
 | 
			
		||||
	GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
 | 
			
		||||
	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` \
 | 
			
		||||
	  && 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 \
 | 
			
		||||
	  && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
 | 
			
		||||
	      || { echo "ERROR: files left after uninstall:" ; \
 | 
			
		||||
	           find $$dc_install_base -type f -print ; \
 | 
			
		||||
	           exit 1; } >&2 ) \
 | 
			
		||||
	  && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
 | 
			
		||||
	  && rm -f $(distdir).tar.gz \
 | 
			
		||||
	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
 | 
			
		||||
	$(am__remove_distdir)
 | 
			
		||||
	@echo "$(distdir).tar.gz is ready for distribution" | \
 | 
			
		||||
	  sed 'h;s/./=/g;p;x;p;x'
 | 
			
		||||
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 after distclean:" ; \
 | 
			
		||||
	       $(distcleancheck_listfiles) ; \
 | 
			
		||||
	       exit 1; } >&2
 | 
			
		||||
check-am: all-am
 | 
			
		||||
check: check-recursive
 | 
			
		||||
all-am: Makefile $(SCRIPTS)
 | 
			
		||||
installdirs: installdirs-recursive
 | 
			
		||||
installdirs-am:
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(bindir)
 | 
			
		||||
 | 
			
		||||
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_STRIP_FLAG=-s \
 | 
			
		||||
	  `test -z '$(STRIP)' || \
 | 
			
		||||
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 | 
			
		||||
mostlyclean-generic:
 | 
			
		||||
 | 
			
		||||
clean-generic:
 | 
			
		||||
 | 
			
		||||
distclean-generic:
 | 
			
		||||
	-rm -f Makefile $(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 mostlyclean-am
 | 
			
		||||
 | 
			
		||||
distclean: distclean-recursive
 | 
			
		||||
	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
 | 
			
		||||
distclean-am: clean-am distclean-generic distclean-tags
 | 
			
		||||
 | 
			
		||||
dvi: dvi-recursive
 | 
			
		||||
 | 
			
		||||
dvi-am:
 | 
			
		||||
 | 
			
		||||
info: info-recursive
 | 
			
		||||
 | 
			
		||||
info-am:
 | 
			
		||||
 | 
			
		||||
install-data-am:
 | 
			
		||||
	@$(NORMAL_INSTALL)
 | 
			
		||||
	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
 | 
			
		||||
 | 
			
		||||
install-exec-am: install-binSCRIPTS
 | 
			
		||||
 | 
			
		||||
install-info: install-info-recursive
 | 
			
		||||
 | 
			
		||||
install-man:
 | 
			
		||||
 | 
			
		||||
installcheck-am:
 | 
			
		||||
 | 
			
		||||
maintainer-clean: maintainer-clean-recursive
 | 
			
		||||
	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
 | 
			
		||||
	-rm -rf autom4te.cache
 | 
			
		||||
maintainer-clean-am: distclean-am maintainer-clean-generic
 | 
			
		||||
 | 
			
		||||
mostlyclean: mostlyclean-recursive
 | 
			
		||||
 | 
			
		||||
mostlyclean-am: mostlyclean-generic
 | 
			
		||||
 | 
			
		||||
uninstall-am: uninstall-binSCRIPTS uninstall-info-am uninstall-local
 | 
			
		||||
 | 
			
		||||
uninstall-info: uninstall-info-recursive
 | 
			
		||||
 | 
			
		||||
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
 | 
			
		||||
	clean-generic clean-recursive dist dist-all dist-gzip distcheck \
 | 
			
		||||
	distclean distclean-generic distclean-recursive distclean-tags \
 | 
			
		||||
	distcleancheck distdir dvi dvi-am dvi-recursive info info-am \
 | 
			
		||||
	info-recursive install install-am install-binSCRIPTS \
 | 
			
		||||
	install-data install-data-am install-data-recursive \
 | 
			
		||||
	install-exec install-exec-am install-exec-recursive \
 | 
			
		||||
	install-info install-info-am install-info-recursive install-man \
 | 
			
		||||
	install-recursive install-strip installcheck installcheck-am \
 | 
			
		||||
	installdirs installdirs-am installdirs-recursive \
 | 
			
		||||
	maintainer-clean maintainer-clean-generic \
 | 
			
		||||
	maintainer-clean-recursive mostlyclean mostlyclean-generic \
 | 
			
		||||
	mostlyclean-recursive tags tags-recursive uninstall \
 | 
			
		||||
	uninstall-am uninstall-binSCRIPTS uninstall-info-am \
 | 
			
		||||
	uninstall-info-recursive uninstall-local uninstall-recursive
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
gramps: gramps.sh
 | 
			
		||||
	cp gramps.sh gramps
 | 
			
		||||
 | 
			
		||||
dist-hook: gramps.spec
 | 
			
		||||
	cp gramps.spec $(distdir)
 | 
			
		||||
 | 
			
		||||
# Build/rebuild the catalog
 | 
			
		||||
install-data-hook:
 | 
			
		||||
	rm -rf $(DESTDIR)$(scrollkeeper_localstate_dir)
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(scrollkeeper_localstate_dir)
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(localstatedir)/log
 | 
			
		||||
	scrollkeeper-rebuilddb -p $(DESTDIR)$(scrollkeeper_localstate_dir)
 | 
			
		||||
 | 
			
		||||
# Remove generated files
 | 
			
		||||
uninstall-local:
 | 
			
		||||
	-rm -rf $(DESTDIR)$(gramps_localstate_dir)
 | 
			
		||||
	-rm -f $(DESTDIR)$(localstatedir)/log/gramps.log
 | 
			
		||||
	-rm -f $(DESTDIR)$(localstatedir)/log/gramps.log.1
 | 
			
		||||
# 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:
 | 
			
		||||
							
								
								
									
										362
									
								
								NEWS
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,362 @@
 | 
			
		||||
Version 0.7.3
 | 
			
		||||
* New Russian (Alex Roitman) and Danish (Lars Lundin) translations.
 | 
			
		||||
  GRAMPS now supports English, Italian, German, French, Spanish,
 | 
			
		||||
  Brazilian-Portuguese, Swedish, Danish, and Russian.
 | 
			
		||||
* Custom filter editor allows you to create your personal complex
 | 
			
		||||
  filters that can be applied to reports to select the people that
 | 
			
		||||
  you want. Tools->Utilites->Custom Filter Editor to access the
 | 
			
		||||
  filter builder. (Thanks to Jeff Ollie for some major contributions 
 | 
			
		||||
  here).
 | 
			
		||||
* New report - Complete Individual Report. Allows you to produce a
 | 
			
		||||
  more complete form of the Individual Summary. You can use filters
 | 
			
		||||
  to select all ancestors, all decendants, or any custom filter you
 | 
			
		||||
  want to create more of a 'book' form of a report.
 | 
			
		||||
* On-the-fly document generation instead of pre-built HTML files
 | 
			
		||||
  (Thanks to Don Peterson)
 | 
			
		||||
* Web page generation now generates a two column list, along with
 | 
			
		||||
  labels.
 | 
			
		||||
* GEDCOM impovements, including the ability to use GRAMPS as a GEDCOM
 | 
			
		||||
  viewer (accepts a GEDCOM file as an argument).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Version 0.7.2
 | 
			
		||||
* New Brazilian-Portuguese translation (Marcos Bedinelli)
 | 
			
		||||
* Python Imaging Library no longer required for several report
 | 
			
		||||
  formats.
 | 
			
		||||
* Better sizing of images in reports (Bruce DeGrasse)
 | 
			
		||||
* An image subdirectory name can now be specified in the WebPage
 | 
			
		||||
  generation. This allows you to specify the subdirectory (or
 | 
			
		||||
  absence of a subdirectory) where images are placed when generating
 | 
			
		||||
  a web site.
 | 
			
		||||
* Merging allows you to choose the GRAMPS ID of the merged person.
 | 
			
		||||
* Better handling of auto completion of names, places, and other
 | 
			
		||||
  items.
 | 
			
		||||
* Ability to rerun Startup dialog when necessary
 | 
			
		||||
* More information in the Startup dialog
 | 
			
		||||
* Fewer intermediate files when handling images for reports
 | 
			
		||||
* Reports are now plugins, stored in the DocGen library
 | 
			
		||||
* Filter out control characters on GEDCOM import
 | 
			
		||||
* New document format generators for SVG and PostScript.
 | 
			
		||||
* Improved document format generators for LaTeX (Donald Peterson),
 | 
			
		||||
  KWord (Bruce DeGrasse), and AbiWord.
 | 
			
		||||
* Names now have a type (e.g. "Married Name", "Birth Name") 
 | 
			
		||||
  associated with them.
 | 
			
		||||
* Eliminated the intermediate dialog box on importing - GRAMPS
 | 
			
		||||
  now always appends to the current database.
 | 
			
		||||
* If an imported GEDCOM contains REFN tags, they are correlated
 | 
			
		||||
  to the GRAMPS ID if possible.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Version 0.7.1
 | 
			
		||||
* A database must now be open at all times. Prevents the problem of
 | 
			
		||||
  not having a place to put files.
 | 
			
		||||
* Several drop down menus for names have been replaced with
 | 
			
		||||
  autocompletion text boxes.
 | 
			
		||||
* Autosave - allows the database to be saved to a backup file
 | 
			
		||||
  periodically.
 | 
			
		||||
* New Descendant Graph dialog.
 | 
			
		||||
* Reorganization of reports.
 | 
			
		||||
* New preferences dialog.
 | 
			
		||||
* Configurable guessing of last names for new children.
 | 
			
		||||
* Slightly improved incomplete date handling.
 | 
			
		||||
* More sort columns and improved sorting in the lists.
 | 
			
		||||
* New tooltips (Don Peterson)
 | 
			
		||||
* Improved navigation in the Pedigree View (Shane Hathaway)
 | 
			
		||||
* Italian translation (Marco Molteni)
 | 
			
		||||
 | 
			
		||||
Version 0.7.0
 | 
			
		||||
* LD_PRELOAD set to handle Mandrake 8.1 shared library problems.
 | 
			
		||||
* Drag and drop copying of events, address, attributes, and URLs.
 | 
			
		||||
* Improved GEDCOM. GRAMPS now understands many more of the "quirks"
 | 
			
		||||
  of the GEDCOM produced by other programs. In addition, GRAMPS can
 | 
			
		||||
  now tailor its GEDCOM output several other programs. An XML data
 | 
			
		||||
  file is used to describe to GRAMPS the types of quirks each 
 | 
			
		||||
  format uses.
 | 
			
		||||
* Support for French Republican, Hebrew, and Julian calendars.
 | 
			
		||||
* LDS ordinance support.
 | 
			
		||||
* Cleaned up report dialog code.
 | 
			
		||||
* Bug fixes in GEDCOM reading and relationship calculator.
 | 
			
		||||
* Toolbar may display Icons and Text, Text only, or Icons only. This
 | 
			
		||||
  helps in some of the translations, where the long text forced the
 | 
			
		||||
  toolbar to be unusually large.
 | 
			
		||||
* Dragging and dropping media objects can optionally display property
 | 
			
		||||
  dialogs.
 | 
			
		||||
* All toolbar icons have tooltips.
 | 
			
		||||
* Keyboard shortcuts for bookmark saving.
 | 
			
		||||
* Find dialog supports autocompletion, and has the more standard shortcut
 | 
			
		||||
  of C-F.
 | 
			
		||||
* Change in XML database format to provides better support for dates.
 | 
			
		||||
* Added entries to the Help menu to jump to the GRAMPS home page and the
 | 
			
		||||
  GRAMPS mailing list page.
 | 
			
		||||
 | 
			
		||||
Version 0.6.2
 | 
			
		||||
* Fixed SuSE 7.3/lib-imlib problem.
 | 
			
		||||
* Improved GEDCOM import/export. Gramps now passes the GEDCHK program
 | 
			
		||||
  and can now properly handle the quirks in names, notes, and parent/child
 | 
			
		||||
  relationships from PAF, Legacy, FTW, Brother's Keeper, and Family Origins.
 | 
			
		||||
* After an Add Spouse, make the new spouse display in the Family View
 | 
			
		||||
  interface.
 | 
			
		||||
 | 
			
		||||
Version 0.6.1
 | 
			
		||||
* Fixed Family View/Pedigree View button swap
 | 
			
		||||
* Updated Spanish translation
 | 
			
		||||
 | 
			
		||||
Version 0.6.0
 | 
			
		||||
* Support for QUAY, NCHI, and CAUS on GEDCOM import. GEDCOM
 | 
			
		||||
  import is significantly faster.
 | 
			
		||||
* Support for multiple sources per item.
 | 
			
		||||
* Support for revision control. RCS based revision control is 
 | 
			
		||||
  available.
 | 
			
		||||
* Confidence level moved to SourceReference instead of object.
 | 
			
		||||
* All fields of birth and death events are editable. Clicking the
 | 
			
		||||
  Edit button brings up the event editor. Birth and death fields
 | 
			
		||||
  on the Edit Person dialog are now read only.
 | 
			
		||||
* Support for unknown gender.
 | 
			
		||||
* Central image/media repository added. All images in a gallery 
 | 
			
		||||
  are references to these media objects. Media objects can have
 | 
			
		||||
  global properties (in the repository) or local properties (in
 | 
			
		||||
  each gallery).
 | 
			
		||||
* Media types are beyond images are now supported (PDF, MP3,
 | 
			
		||||
  word processor documents, etc.)
 | 
			
		||||
* Drag and drop of images from one gallery to another. Drag and
 | 
			
		||||
  drop from file managers into the gallery. Drag and drop from a
 | 
			
		||||
  web page to a gallery.
 | 
			
		||||
* Drag and drop reordering of children in children lists.
 | 
			
		||||
* Drag and drop reordering of images in a gallery.
 | 
			
		||||
* Autocompletion support on most entry boxes with drop down menus.
 | 
			
		||||
* Plugins can be reloaded without re-starting gramps.
 | 
			
		||||
* Two people can be selected and directly merged from the main
 | 
			
		||||
  person list.
 | 
			
		||||
* Two places can be selected and directly merged from the main 
 | 
			
		||||
  place list.
 | 
			
		||||
* The "Find and Merge" functionality has been improved to make it
 | 
			
		||||
  easier to find matches. 
 | 
			
		||||
* Web page generation is significantly faster.
 | 
			
		||||
* Many plugins enhanced. Descendant browser can jump to an Edit Person
 | 
			
		||||
  display, Event Comparison can now save and load complex filters, 
 | 
			
		||||
  etc.
 | 
			
		||||
* User had significant more control over the format of the internal
 | 
			
		||||
  GRAMPS' ids. You can now set a prefix for each type (such as "I-"
 | 
			
		||||
  for individuals) or specify more powerful formatting using C-like
 | 
			
		||||
  format statements (such as "I-%04d").
 | 
			
		||||
* Adoption relationships are visible on the pedigree view (seen as
 | 
			
		||||
  a dotted line).
 | 
			
		||||
* Reordering GRAMPS' ids attempts to preserve the integer originally
 | 
			
		||||
  assigned to the object.
 | 
			
		||||
* The person view can be sorted by GRAMPS id.
 | 
			
		||||
* KWord format generated is now compatible with KWord 1.1. Images may
 | 
			
		||||
  now be included in KWord documents (requires Python Imaging Library).
 | 
			
		||||
  Tables are not working yet. I can figure out how to format a KWord
 | 
			
		||||
  table.
 | 
			
		||||
 | 
			
		||||
Version 0.5.1
 | 
			
		||||
* Bug fixes
 | 
			
		||||
* Allow gramps' ids to be edited
 | 
			
		||||
* Added Jesper Zedlitz's PAF for Palm export
 | 
			
		||||
* Progress report on GEDCOM import
 | 
			
		||||
* Add a new person from the parent selection dialog
 | 
			
		||||
* Improved configure script for FreeBSD
 | 
			
		||||
* Documenation improvements
 | 
			
		||||
* Slight performance improvements reading large databases
 | 
			
		||||
 | 
			
		||||
Version 0.5.0
 | 
			
		||||
* New pedegree form which can display 3, 4, or 5 generations
 | 
			
		||||
  depending on the screen size. Supports better navigation.
 | 
			
		||||
* Added a Find function to quickly find people.
 | 
			
		||||
* Implemented Place objects, allowing additional information
 | 
			
		||||
  to be stored about a place.
 | 
			
		||||
* New icons for Person View and Family View.
 | 
			
		||||
* Online documentation.
 | 
			
		||||
* Pressing enter on qualifier field for a filter will apply
 | 
			
		||||
  the filter.
 | 
			
		||||
* New verification tool added to look for odd things in the
 | 
			
		||||
  database.
 | 
			
		||||
* Improvements in GEDCOM import, including handling some
 | 
			
		||||
  Family Tree Maker pecularities.
 | 
			
		||||
* Spanish translation is now available. This brings the languages
 | 
			
		||||
  to English, Spanish, Swedish, German, and French.
 | 
			
		||||
 | 
			
		||||
Version 0.4.1
 | 
			
		||||
* Tool/Report menus added to top level menu bar
 | 
			
		||||
* Extract Titles and Nicknames plugin improved to provide more
 | 
			
		||||
  information
 | 
			
		||||
* Several bug fixes, including the problem of swapping father/
 | 
			
		||||
  mother relationships in families
 | 
			
		||||
* Significant improvements in speed for updating displays after
 | 
			
		||||
  adding, editing, or deleting people, and for applying filters.
 | 
			
		||||
* Added Bruce DeGrasse's Detailed Ancestral Report. This will
 | 
			
		||||
  eventually replace the current Ancestral Report.
 | 
			
		||||
 | 
			
		||||
Version 0.4.0
 | 
			
		||||
* Redesigned Family page. More complex family relationships can be
 | 
			
		||||
  handled.
 | 
			
		||||
* ISO date format supported
 | 
			
		||||
* Places are stored in a pulldown menu
 | 
			
		||||
* gramps ID can be displayed in many lists
 | 
			
		||||
* Multiple selection in Add Children box
 | 
			
		||||
* Internal gramps ID now a string instead of an integer
 | 
			
		||||
* Double clicking on a name in the Pedegree view brings up the edit
 | 
			
		||||
  box for that person
 | 
			
		||||
* Support for same sex parent families has been added
 | 
			
		||||
* Complete rework of Edit Person dialog
 | 
			
		||||
* Added privacy flag and confidence level to events, attributes, etc.
 | 
			
		||||
* Automatically detect gzip'ed XML vs. XML
 | 
			
		||||
* Added option to write either gzip'ed XML or straight XML
 | 
			
		||||
* Warn on closing the edit person and marriage/relationshp window 
 | 
			
		||||
  when modifications have been made.
 | 
			
		||||
* French translation
 | 
			
		||||
* New plugin from Jesper Zedlitz that implements a graphical   
 | 
			
		||||
  representation of the people in the database, allowing you to
 | 
			
		||||
  reposition people according to your own desires.
 | 
			
		||||
* XML is indented properly
 | 
			
		||||
* XML DTD available
 | 
			
		||||
 | 
			
		||||
Version 0.3.2
 | 
			
		||||
* Fixed Style Editor on WebPage.py, to allow styles to be edited.
 | 
			
		||||
* WebPage generator now lists more information, including sources.
 | 
			
		||||
* May have ironed out the PyXML/Python/SAX issues once and for all,
 | 
			
		||||
  cleaning up the python 1.5/2.X problems.
 | 
			
		||||
* Added the ability to set default directories for reports and
 | 
			
		||||
  databases.
 | 
			
		||||
* Fixed major bug that added a marriage and divorce to every record
 | 
			
		||||
  that was viewed in the family viewer.
 | 
			
		||||
* Fixed bug that was dropping images
 | 
			
		||||
* Many, many other bug fixes.
 | 
			
		||||
* Improved many of the translations.
 | 
			
		||||
 | 
			
		||||
Version 0.3.1
 | 
			
		||||
* Improved Web Site generation (changed from Individual Web Pages)
 | 
			
		||||
* Faster load times for XML database
 | 
			
		||||
* Fixed unicode problems with Python 2.0
 | 
			
		||||
* Improved GEDCOM exporter
 | 
			
		||||
* Use the GRAMPSDIR environment variable in the shell script to determine
 | 
			
		||||
  the root path instead of dynamically doing it by attempting to look
 | 
			
		||||
  at __file__ in const.py
 | 
			
		||||
* Added better GEDCOM importing for files  generated by Brother's 
 | 
			
		||||
  Keeper and Reunion.
 | 
			
		||||
 | 
			
		||||
Version 0.3.0
 | 
			
		||||
* Support for RTF (export to MSWord) and limited support for KWord
 | 
			
		||||
  and LaTeX added.
 | 
			
		||||
* User defined styles for reports. Allows the selection of fonts,
 | 
			
		||||
  sizes, colors, alignment, and many other features in output 
 | 
			
		||||
  reports. Styles can be saved for future use.
 | 
			
		||||
* Improved report formats
 | 
			
		||||
* Initial German translation. Please note that the German translation 
 | 
			
		||||
  is new, and it will take a while before it is fully in sync with the
 | 
			
		||||
  program. It will probably take a release or two before it is as 
 | 
			
		||||
  stable as the Swedish translation (it can take a while to provide the
 | 
			
		||||
  translations, and the code is changing, so it takes a while to flush
 | 
			
		||||
  things out).
 | 
			
		||||
* Output format preference and page size preference can be set in the
 | 
			
		||||
  preferences menu.
 | 
			
		||||
* Names can now have sources and notes.
 | 
			
		||||
* Lots of bug fixes
 | 
			
		||||
* Fixes to GEDCOM importer
 | 
			
		||||
 | 
			
		||||
Version 0.2.0
 | 
			
		||||
* New GEDCOM importer. This new importer understands the GEDCOM
 | 
			
		||||
  file structure, and intelligently parses the file.  More 
 | 
			
		||||
  information is extracted from the GEDCOM file. Guessing the 
 | 
			
		||||
  context of information is no longer done, so the data should go 
 | 
			
		||||
  into the right place.  The display dialog now displays useful and 
 | 
			
		||||
  interesting information as the file is loaded.  The importer
 | 
			
		||||
  has been checked with file generated Personal Ancestral File,
 | 
			
		||||
  Brother's Keeper, DISGEN, the GEDCOM Torture test, and even the
 | 
			
		||||
  sometimes strange output of Family Tree Maker.
 | 
			
		||||
* Better support for sources.  Source button on the main page, and
 | 
			
		||||
  sources are entered from the main screen, instead of being about 
 | 
			
		||||
  five layers deep.
 | 
			
		||||
* Events, sources, attributes, and addresses can now have both 
 | 
			
		||||
  sources and notes.
 | 
			
		||||
* Limited configurability in status bar display. Instead of just a
 | 
			
		||||
  name, you can have a name, the internal ID and a name, or a user
 | 
			
		||||
  selectable attribute and a name.
 | 
			
		||||
* A user selectable attribute can be displayed on the Edit Person
 | 
			
		||||
  display along with the gramps internal ID.  The attribute is
 | 
			
		||||
  specified in the preferences settings, and the value is taken
 | 
			
		||||
  from the person's attribute list.
 | 
			
		||||
* Images now load faster. Thumbnail images are created and maintained
 | 
			
		||||
  by gramps, eliminating the need to rescale images everytime a 
 | 
			
		||||
  gallery is displayed.
 | 
			
		||||
* Paper size preference can now be specified in the preferences 
 | 
			
		||||
  dialog. Once this is set, gramps will make this the default for
 | 
			
		||||
  report generators. Eventually, you will be able to do the same
 | 
			
		||||
  for output format preference. This button is current disabled.
 | 
			
		||||
* Generating slightly better XML. Maintaining compatibility with
 | 
			
		||||
  the older files.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Version 0.1.5
 | 
			
		||||
 | 
			
		||||
* Plenty of bug fixes in the report generators and merging due to the
 | 
			
		||||
  previous addition of date ranges.
 | 
			
		||||
* Added PDF file type generation for reports. Depends on the reportlab
 | 
			
		||||
  package (available at www.reportlab.com).  If the package is not
 | 
			
		||||
  installed, gramps will run, but without PDF generation ability.
 | 
			
		||||
* Will use the Python Imaging Library if present to handle images.  If
 | 
			
		||||
  not, it will revert to the old method of using Imagick (convert).
 | 
			
		||||
* The user can select an attribute (from the attribute list) to display
 | 
			
		||||
  on the Edit Person window.
 | 
			
		||||
* The internal gramps ID is now displayed on the Edit Person window.
 | 
			
		||||
* Marriage types can now be recorded.
 | 
			
		||||
* Addresses now use a single date instead of multiple dates, since 
 | 
			
		||||
  dates can now deal with ranges.
 | 
			
		||||
* Due to a bug in Python 2.0/GTK interaction, list colors are disabled
 | 
			
		||||
  for Python 2.0 and above.
 | 
			
		||||
* configure script now properly deals with Python include paths,
 | 
			
		||||
  eliminating the need to hand edit the src/Makefile to get gramps to
 | 
			
		||||
  run under Python 2.X.
 | 
			
		||||
* Photos are now displayed properly again in the Edit Person gallery.
 | 
			
		||||
* Family notes are now implemented.
 | 
			
		||||
 | 
			
		||||
Version 0.1.4
 | 
			
		||||
 | 
			
		||||
* Implemented date ranges.  Valid forms are "from <date> to <date>" and
 | 
			
		||||
  "between <date> and <date>".
 | 
			
		||||
* Better support for partial dates.  A question mark can optionally be 
 | 
			
		||||
  used for a placeholder for a year if the year is unknown.  Illegal 
 | 
			
		||||
  date formats issue a warning upon an attempt to save the date.
 | 
			
		||||
* Start of internationalization (i18n) support.  Had to include a single
 | 
			
		||||
  C file to allow libglade to understand translations.  This means that
 | 
			
		||||
  binary releases are no longer going to be platform independant.
 | 
			
		||||
* Start of a generic output formatter for report generation. Currently
 | 
			
		||||
  supports HTML, OpenOffice (625+), and AbiWord (0.7.13+).  Allows 
 | 
			
		||||
  control of paragraph and font styles.
 | 
			
		||||
* Added into CVS on sourceforge
 | 
			
		||||
* Fixed quite a few bugs
 | 
			
		||||
 | 
			
		||||
Version 0.1.3
 | 
			
		||||
 | 
			
		||||
* Allow the user to specifiy their preferred numerical date input format,
 | 
			
		||||
  either DD/MM/YY or MM/DD/YY on the preferences dialog box.
 | 
			
		||||
* Handles file problems a bit more gracefully.
 | 
			
		||||
* Use ISO-8859-1 character set instead of ASCII to support languages other
 | 
			
		||||
  than English.  Eventually this should go to unicode, but python 1.5.2
 | 
			
		||||
  does not have good unicode support.  Python 2.X/Gnome 2.X will be the 
 | 
			
		||||
  migration for this feature.
 | 
			
		||||
* Handle ANSEL encoding for import and exporting GEDCOM files.
 | 
			
		||||
* Fixed a bug in the selection of parents, which did not accept new parents
 | 
			
		||||
  if previous parents did not exist.
 | 
			
		||||
 | 
			
		||||
Version 0.1.2
 | 
			
		||||
 | 
			
		||||
* Allow the user the option to display alternate names in the person
 | 
			
		||||
  list. Alternate names in the list have an '*' appended to the end
 | 
			
		||||
  of the name.
 | 
			
		||||
* Merge function now gives the user the option of saving the name of
 | 
			
		||||
  the merged individual as an alternate name if the names are not 
 | 
			
		||||
  the same.
 | 
			
		||||
* Added the "Alternate Birth" and "Alternate Death" to the event list, 
 | 
			
		||||
  to allow other birthdates to be recorded. Gramps makes a distinction
 | 
			
		||||
  between the birthdate/deathdate and the alternates.
 | 
			
		||||
* GEDCOM import and export adapted to load/save alternate birth and
 | 
			
		||||
  death dates.  The first "BIRT" and "DEAT" tags are the ones used
 | 
			
		||||
  for the primary dates, the others are loaded as alternates.
 | 
			
		||||
* Added the ability to store web page addresses for each person. From
 | 
			
		||||
  the edit person page, the "Go" button brings up a web browser to
 | 
			
		||||
  display the page.
 | 
			
		||||
* Fixed a bug in the relationship calculator that caused a traceback
 | 
			
		||||
  when the person selected was a direct ancestor of the active person.
 | 
			
		||||
* Added the suffix field to the alternate name entry on the Edit Person
 | 
			
		||||
  form.
 | 
			
		||||
							
								
								
									
										65
									
								
								README
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,65 @@
 | 
			
		||||
Please read the COPYING file first.
 | 
			
		||||
If building from source, also read the INSTALL file (at least through the
 | 
			
		||||
"SUPER-SHORT VERSION") before going further.
 | 
			
		||||
 | 
			
		||||
Requirements
 | 
			
		||||
--------------------------------
 | 
			
		||||
Python 1.5.2 or greater
 | 
			
		||||
Gnome 1.2 or greater
 | 
			
		||||
PyGnome 1.0.53 or greater
 | 
			
		||||
 | 
			
		||||
If you are using python 1.5.2, you may also need PyXML 0.6.2 or
 | 
			
		||||
greater. Many distributions already provide this, but if your
 | 
			
		||||
installation does not have it, you can get it from
 | 
			
		||||
http://sourceforge.net/project/showfiles.php?group_id=6473
 | 
			
		||||
 | 
			
		||||
Documentation
 | 
			
		||||
---------------------------------
 | 
			
		||||
Gramps documentation is supplied in the form of SGML files, which will be
 | 
			
		||||
installed in the GNOME help path(*).  Recent versions of Nautilus and Galeon
 | 
			
		||||
can generate HTML on-the-fly documents from these.  For more information on
 | 
			
		||||
building HTML files (including info about packages that do and do not work
 | 
			
		||||
with the documentation) see the INSTALL file.  To generate HTML
 | 
			
		||||
documentation the following packages *MUST* installed:
 | 
			
		||||
* db2html >= 0.6.9  (jw >= 1.1)  to convert the SGML -> HTML
 | 
			
		||||
* gnome-doc-tools-2-1            for the GNOME documentation style sheets
 | 
			
		||||
The former is part of the docbook-utils package, the latter can be found
 | 
			
		||||
from the developer section at gnome.org. (note that docbook-utils 0.6.10 is
 | 
			
		||||
buggy)
 | 
			
		||||
 | 
			
		||||
One also needs png support for sgml, which should be a part of the
 | 
			
		||||
gnome-doc-tools package. The /etc/sgml/catalog file should
 | 
			
		||||
contain an entry pointing to PNG support. If configured properly, your
 | 
			
		||||
db2html should automatically look up and use the /etc/sgml/catalog file.
 | 
			
		||||
 | 
			
		||||
Of course, current HTML documentation can also be found on the gramps website,
 | 
			
		||||
http://gramps.sourceforge.net/help.html
 | 
			
		||||
 | 
			
		||||
(*) More precisely, they are installed in ${prefix}/share/gnome/help, where
 | 
			
		||||
${prefix} is given by the --prefix= option to configure.  If this is
 | 
			
		||||
different from where your standard GNOME installation looks for help files
 | 
			
		||||
and documentation, then set your GNOMEDIR environment variable to the
 | 
			
		||||
${prefix} path before starting gramps. For example, if you are installing
 | 
			
		||||
gramps in /usr/local/, then type the following:
 | 
			
		||||
in tcsh: setenv GNOMEDIR /usr/local/
 | 
			
		||||
in bash: GNOMEDIR=/usr/local/ ; export GNOMEDIR
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Building on non-Linux systems: i18n support and GNU make
 | 
			
		||||
--------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
Linux has libintl (GNU gettext) built-in the C library. Other systems
 | 
			
		||||
are likely to have libintl as a separate or optional library. Also,
 | 
			
		||||
other systems may have a different make utility.
 | 
			
		||||
 | 
			
		||||
On those systems, like FreeBSD, you must tell configure where to find
 | 
			
		||||
the libintl library and the libintl.h include file:
 | 
			
		||||
 | 
			
		||||
CPPFLAGS="-I/usr/local/include -L/usr/local/lib" ./configure --prefix=/usr/local
 | 
			
		||||
 | 
			
		||||
Once you have done this, if make fails, use gmake (the name FreeBSD
 | 
			
		||||
gives to GNU make) instead.
 | 
			
		||||
 | 
			
		||||
--------------------------------
 | 
			
		||||
Donald Allingham
 | 
			
		||||
dallingham@users.sourceforge.net
 | 
			
		||||
							
								
								
									
										31
									
								
								TODO
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,31 @@
 | 
			
		||||
* Allow for multiple notes. A tabbed interface would be really useful,
 | 
			
		||||
  since there are no titles for notes. Not all objects would necessarily
 | 
			
		||||
  need multiple notes. Determine which ones should and shouldn't.
 | 
			
		||||
* Drag and drop should display the icon we are dragging instead of just
 | 
			
		||||
  the default icon.  Nautilus does this very effectively, and GTK has
 | 
			
		||||
  support for this.
 | 
			
		||||
* Provide an "import" of a gramps package. Not too difficult to do this,
 | 
			
		||||
  since there is already a ReadTarFile class which will unpackage the
 | 
			
		||||
  file. Needs have an interface built around it.
 | 
			
		||||
* Catch uncaught exceptions at the top level, notifiy the user, and 
 | 
			
		||||
  store the results in a file that can be emailed. Have the start of
 | 
			
		||||
  this with the gramps.err file, but most users don't realize that 
 | 
			
		||||
  this file has been created. Some type of notification is needed.
 | 
			
		||||
* Speed up the reading of the database. The python XML routines are not
 | 
			
		||||
  as fast as I would like, and it can take a minute or so to read a
 | 
			
		||||
  large database. This is way too slow.
 | 
			
		||||
* Finish the generic load of revision control interfaces to allow a
 | 
			
		||||
  revision control plugin system. Most of the work is already done.
 | 
			
		||||
* Extend the gramps package exporting to export to a ISO-9660 CD-ROM
 | 
			
		||||
  image. Thumbnails would need to be exported for this as well, since
 | 
			
		||||
  the CD-ROM would be read-only after burning.
 | 
			
		||||
* Disable the save buttons if gramps database is marked read-only. Disable 
 | 
			
		||||
  the adding of media objects as well, since this will cause gramps to
 | 
			
		||||
  try to create a thumbnail in a readonly database.
 | 
			
		||||
* OpenOffice zip file is not handled very gracefully.  Uses the "system"
 | 
			
		||||
  call to generate the zip file using the hard coded path of /usr/bin/zip. 
 | 
			
		||||
  Python 2.0 provides a zip interface, so this may need to hold off until 
 | 
			
		||||
  the move is made to Python 2.0.
 | 
			
		||||
* Sort all lists
 | 
			
		||||
* Startup tips.
 | 
			
		||||
* And a whole lot more....
 | 
			
		||||
							
								
								
									
										939
									
								
								aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,939 @@
 | 
			
		||||
# aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
 | 
			
		||||
# Free Software Foundation, Inc.
 | 
			
		||||
# This file 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.
 | 
			
		||||
 | 
			
		||||
# Do all the work for Automake.                            -*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
# This macro actually does too much some checks are only needed if
 | 
			
		||||
# your package does certain things.  But this isn't really a big deal.
 | 
			
		||||
 | 
			
		||||
# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
 | 
			
		||||
# Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# serial 8
 | 
			
		||||
 | 
			
		||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 | 
			
		||||
# written in clear, in which case automake, when reading aclocal.m4,
 | 
			
		||||
# will think it sees a *use*, and therefore will trigger all it's
 | 
			
		||||
# C support machinery.  Also note that it means that autoscan, seeing
 | 
			
		||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AC_PREREQ([2.52])
 | 
			
		||||
 | 
			
		||||
# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
 | 
			
		||||
# the ones we care about.
 | 
			
		||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
 | 
			
		||||
 | 
			
		||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 | 
			
		||||
# AM_INIT_AUTOMAKE([OPTIONS])
 | 
			
		||||
# -----------------------------------------------
 | 
			
		||||
# The call with PACKAGE and VERSION arguments is the old style
 | 
			
		||||
# call (pre autoconf-2.50), which is being phased out.  PACKAGE
 | 
			
		||||
# and VERSION should now be passed to AC_INIT and removed from
 | 
			
		||||
# the call to AM_INIT_AUTOMAKE.
 | 
			
		||||
# We support both call styles for the transition.  After
 | 
			
		||||
# the next Automake release, Autoconf can make the AC_INIT
 | 
			
		||||
# arguments mandatory, and then we can depend on a new Autoconf
 | 
			
		||||
# release and drop the old call support.
 | 
			
		||||
AC_DEFUN([AM_INIT_AUTOMAKE],
 | 
			
		||||
[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
 | 
			
		||||
 AC_REQUIRE([AC_PROG_INSTALL])dnl
 | 
			
		||||
# test to see if srcdir already configured
 | 
			
		||||
if test "`cd $srcdir && pwd`" != "`pwd`" &&
 | 
			
		||||
   test -f $srcdir/config.status; then
 | 
			
		||||
  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Define the identity of the package.
 | 
			
		||||
dnl Distinguish between old-style and new-style calls.
 | 
			
		||||
m4_ifval([$2],
 | 
			
		||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
 | 
			
		||||
 AC_SUBST([PACKAGE], [$1])dnl
 | 
			
		||||
 AC_SUBST([VERSION], [$2])],
 | 
			
		||||
[_AM_SET_OPTIONS([$1])dnl
 | 
			
		||||
 AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl
 | 
			
		||||
 AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl
 | 
			
		||||
 | 
			
		||||
_AM_IF_OPTION([no-define],,
 | 
			
		||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
 | 
			
		||||
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
 | 
			
		||||
 | 
			
		||||
# Some tools Automake needs.
 | 
			
		||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
 | 
			
		||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
 | 
			
		||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
 | 
			
		||||
AM_MISSING_PROG(AUTOCONF, autoconf)
 | 
			
		||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
 | 
			
		||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
 | 
			
		||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
 | 
			
		||||
AM_MISSING_PROG(AMTAR, tar)
 | 
			
		||||
AM_PROG_INSTALL_SH
 | 
			
		||||
AM_PROG_INSTALL_STRIP
 | 
			
		||||
# We need awk for the "check" target.  The system "awk" is bad on
 | 
			
		||||
# some platforms.
 | 
			
		||||
AC_REQUIRE([AC_PROG_AWK])dnl
 | 
			
		||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 | 
			
		||||
 | 
			
		||||
_AM_IF_OPTION([no-dependencies],,
 | 
			
		||||
[AC_PROVIDE_IFELSE([AC_PROG_][CC],
 | 
			
		||||
                  [_AM_DEPENDENCIES(CC)],
 | 
			
		||||
                  [define([AC_PROG_][CC],
 | 
			
		||||
                          defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
 | 
			
		||||
AC_PROVIDE_IFELSE([AC_PROG_][CXX],
 | 
			
		||||
                  [_AM_DEPENDENCIES(CXX)],
 | 
			
		||||
                  [define([AC_PROG_][CXX],
 | 
			
		||||
                          defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
 | 
			
		||||
])
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# Copyright 2002  Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
 | 
			
		||||
# AM_AUTOMAKE_VERSION(VERSION)
 | 
			
		||||
# ----------------------------
 | 
			
		||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
 | 
			
		||||
# generated from the m4 files accompanying Automake X.Y.
 | 
			
		||||
AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.6"])
 | 
			
		||||
 | 
			
		||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
 | 
			
		||||
# -------------------------------
 | 
			
		||||
# Call AM_AUTOMAKE_VERSION so it can be traced.
 | 
			
		||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 | 
			
		||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
 | 
			
		||||
	 [AM_AUTOMAKE_VERSION([1.6.3])])
 | 
			
		||||
 | 
			
		||||
# Helper functions for option handling.                    -*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
# Copyright 2001, 2002  Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# serial 2
 | 
			
		||||
 | 
			
		||||
# _AM_MANGLE_OPTION(NAME)
 | 
			
		||||
# -----------------------
 | 
			
		||||
AC_DEFUN([_AM_MANGLE_OPTION],
 | 
			
		||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 | 
			
		||||
 | 
			
		||||
# _AM_SET_OPTION(NAME)
 | 
			
		||||
# ------------------------------
 | 
			
		||||
# Set option NAME.  Presently that only means defining a flag for this option.
 | 
			
		||||
AC_DEFUN([_AM_SET_OPTION],
 | 
			
		||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
 | 
			
		||||
 | 
			
		||||
# _AM_SET_OPTIONS(OPTIONS)
 | 
			
		||||
# ----------------------------------
 | 
			
		||||
# OPTIONS is a space-separated list of Automake options.
 | 
			
		||||
AC_DEFUN([_AM_SET_OPTIONS],
 | 
			
		||||
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
 | 
			
		||||
 | 
			
		||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
 | 
			
		||||
# -------------------------------------------
 | 
			
		||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
 | 
			
		||||
AC_DEFUN([_AM_IF_OPTION],
 | 
			
		||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Check to make sure that the build environment is sane.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# serial 3
 | 
			
		||||
 | 
			
		||||
# AM_SANITY_CHECK
 | 
			
		||||
# ---------------
 | 
			
		||||
AC_DEFUN([AM_SANITY_CHECK],
 | 
			
		||||
[AC_MSG_CHECKING([whether build environment is sane])
 | 
			
		||||
# Just in case
 | 
			
		||||
sleep 1
 | 
			
		||||
echo timestamp > conftest.file
 | 
			
		||||
# Do `set' in a subshell so we don't clobber the current shell's
 | 
			
		||||
# arguments.  Must try -L first in case configure is actually a
 | 
			
		||||
# symlink; some systems play weird games with the mod time of symlinks
 | 
			
		||||
# (eg FreeBSD returns the mod time of the symlink's containing
 | 
			
		||||
# directory).
 | 
			
		||||
if (
 | 
			
		||||
   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
 | 
			
		||||
   if test "$[*]" = "X"; then
 | 
			
		||||
      # -L didn't work.
 | 
			
		||||
      set X `ls -t $srcdir/configure conftest.file`
 | 
			
		||||
   fi
 | 
			
		||||
   rm -f conftest.file
 | 
			
		||||
   if test "$[*]" != "X $srcdir/configure conftest.file" \
 | 
			
		||||
      && test "$[*]" != "X conftest.file $srcdir/configure"; then
 | 
			
		||||
 | 
			
		||||
      # If neither matched, then we have a broken ls.  This can happen
 | 
			
		||||
      # if, for instance, CONFIG_SHELL is bash and it inherits a
 | 
			
		||||
      # broken ls alias from the environment.  This has actually
 | 
			
		||||
      # happened.  Such a system could not be considered "sane".
 | 
			
		||||
      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
 | 
			
		||||
alias in your environment])
 | 
			
		||||
   fi
 | 
			
		||||
 | 
			
		||||
   test "$[2]" = conftest.file
 | 
			
		||||
   )
 | 
			
		||||
then
 | 
			
		||||
   # Ok.
 | 
			
		||||
   :
 | 
			
		||||
else
 | 
			
		||||
   AC_MSG_ERROR([newly created file is older than distributed files!
 | 
			
		||||
Check your system clock])
 | 
			
		||||
fi
 | 
			
		||||
AC_MSG_RESULT(yes)])
 | 
			
		||||
 | 
			
		||||
#  -*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# serial 3
 | 
			
		||||
 | 
			
		||||
# AM_MISSING_PROG(NAME, PROGRAM)
 | 
			
		||||
# ------------------------------
 | 
			
		||||
AC_DEFUN([AM_MISSING_PROG],
 | 
			
		||||
[AC_REQUIRE([AM_MISSING_HAS_RUN])
 | 
			
		||||
$1=${$1-"${am_missing_run}$2"}
 | 
			
		||||
AC_SUBST($1)])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# AM_MISSING_HAS_RUN
 | 
			
		||||
# ------------------
 | 
			
		||||
# Define MISSING if not defined so far and test if it supports --run.
 | 
			
		||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
 | 
			
		||||
AC_DEFUN([AM_MISSING_HAS_RUN],
 | 
			
		||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 | 
			
		||||
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
 | 
			
		||||
# Use eval to expand $SHELL
 | 
			
		||||
if eval "$MISSING --run true"; then
 | 
			
		||||
  am_missing_run="$MISSING --run "
 | 
			
		||||
else
 | 
			
		||||
  am_missing_run=
 | 
			
		||||
  AC_MSG_WARN([`missing' script is too old or missing])
 | 
			
		||||
fi
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# AM_AUX_DIR_EXPAND
 | 
			
		||||
 | 
			
		||||
# Copyright 2001 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 | 
			
		||||
# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
 | 
			
		||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
 | 
			
		||||
#
 | 
			
		||||
# Of course, Automake must honor this variable whenever it calls a
 | 
			
		||||
# tool from the auxiliary directory.  The problem is that $srcdir (and
 | 
			
		||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
 | 
			
		||||
# depending on how configure is run.  This is pretty annoying, since
 | 
			
		||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
 | 
			
		||||
# source directory, any form will work fine, but in subdirectories a
 | 
			
		||||
# relative path needs to be adjusted first.
 | 
			
		||||
#
 | 
			
		||||
# $ac_aux_dir/missing
 | 
			
		||||
#    fails when called from a subdirectory if $ac_aux_dir is relative
 | 
			
		||||
# $top_srcdir/$ac_aux_dir/missing
 | 
			
		||||
#    fails if $ac_aux_dir is absolute,
 | 
			
		||||
#    fails when called from a subdirectory in a VPATH build with
 | 
			
		||||
#          a relative $ac_aux_dir
 | 
			
		||||
#
 | 
			
		||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 | 
			
		||||
# are both prefixed by $srcdir.  In an in-source build this is usually
 | 
			
		||||
# harmless because $srcdir is `.', but things will broke when you
 | 
			
		||||
# start a VPATH build or use an absolute $srcdir.
 | 
			
		||||
#
 | 
			
		||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
 | 
			
		||||
# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
 | 
			
		||||
#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
 | 
			
		||||
# and then we would define $MISSING as
 | 
			
		||||
#   MISSING="\${SHELL} $am_aux_dir/missing"
 | 
			
		||||
# This will work as long as MISSING is not called from configure, because
 | 
			
		||||
# unfortunately $(top_srcdir) has no meaning in configure.
 | 
			
		||||
# However there are other variables, like CC, which are often used in
 | 
			
		||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
 | 
			
		||||
#
 | 
			
		||||
# Another solution, used here, is to always expand $ac_aux_dir to an
 | 
			
		||||
# absolute PATH.  The drawback is that using absolute paths prevent a
 | 
			
		||||
# configured tree to be moved without reconfiguration.
 | 
			
		||||
 | 
			
		||||
# Rely on autoconf to set up CDPATH properly.
 | 
			
		||||
AC_PREREQ([2.50])
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([AM_AUX_DIR_EXPAND], [
 | 
			
		||||
# expand $ac_aux_dir to an absolute path
 | 
			
		||||
am_aux_dir=`cd $ac_aux_dir && pwd`
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# AM_PROG_INSTALL_SH
 | 
			
		||||
# ------------------
 | 
			
		||||
# Define $install_sh.
 | 
			
		||||
 | 
			
		||||
# Copyright 2001 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([AM_PROG_INSTALL_SH],
 | 
			
		||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 | 
			
		||||
install_sh=${install_sh-"$am_aux_dir/install-sh"}
 | 
			
		||||
AC_SUBST(install_sh)])
 | 
			
		||||
 | 
			
		||||
# AM_PROG_INSTALL_STRIP
 | 
			
		||||
 | 
			
		||||
# Copyright 2001 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# One issue with vendor `install' (even GNU) is that you can't
 | 
			
		||||
# specify the program used to strip binaries.  This is especially
 | 
			
		||||
# annoying in cross-compiling environments, where the build's strip
 | 
			
		||||
# is unlikely to handle the host's binaries.
 | 
			
		||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
 | 
			
		||||
# always use install-sh in `make install-strip', and initialize
 | 
			
		||||
# STRIPPROG with the value of the STRIP variable (set by the user).
 | 
			
		||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
 | 
			
		||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 | 
			
		||||
# Installed binaries are usually stripped using `strip' when the user
 | 
			
		||||
# run `make install-strip'.  However `strip' might not be the right
 | 
			
		||||
# tool to use in cross-compilation environments, therefore Automake
 | 
			
		||||
# will honor the `STRIP' environment variable to overrule this program.
 | 
			
		||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
 | 
			
		||||
if test "$cross_compiling" != no; then
 | 
			
		||||
  AC_CHECK_TOOL([STRIP], [strip], :)
 | 
			
		||||
fi
 | 
			
		||||
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
 | 
			
		||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
 | 
			
		||||
 | 
			
		||||
# serial 4						-*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
# Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 | 
			
		||||
# written in clear, in which case automake, when reading aclocal.m4,
 | 
			
		||||
# will think it sees a *use*, and therefore will trigger all it's
 | 
			
		||||
# C support machinery.  Also note that it means that autoscan, seeing
 | 
			
		||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# _AM_DEPENDENCIES(NAME)
 | 
			
		||||
# ----------------------
 | 
			
		||||
# See how the compiler implements dependency checking.
 | 
			
		||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
 | 
			
		||||
# We try a few techniques and use that to set a single cache variable.
 | 
			
		||||
#
 | 
			
		||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
 | 
			
		||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
 | 
			
		||||
# dependency, and given that the user is not expected to run this macro,
 | 
			
		||||
# just rely on AC_PROG_CC.
 | 
			
		||||
AC_DEFUN([_AM_DEPENDENCIES],
 | 
			
		||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
 | 
			
		||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
 | 
			
		||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 | 
			
		||||
AC_REQUIRE([AM_DEP_TRACK])dnl
 | 
			
		||||
 | 
			
		||||
ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
 | 
			
		||||
       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
 | 
			
		||||
       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
 | 
			
		||||
       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
 | 
			
		||||
                   [depcc="$$1"   am_compiler_list=])
 | 
			
		||||
 | 
			
		||||
AC_CACHE_CHECK([dependency style of $depcc],
 | 
			
		||||
               [am_cv_$1_dependencies_compiler_type],
 | 
			
		||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
 | 
			
		||||
  # We make a subdir and do the tests there.  Otherwise we can end up
 | 
			
		||||
  # making bogus files that we don't know about and never remove.  For
 | 
			
		||||
  # instance it was reported that on HP-UX the gcc test will end up
 | 
			
		||||
  # making a dummy file named `D' -- because `-MD' means `put the output
 | 
			
		||||
  # in D'.
 | 
			
		||||
  mkdir conftest.dir
 | 
			
		||||
  # Copy depcomp to subdir because otherwise we won't find it if we're
 | 
			
		||||
  # using a relative directory.
 | 
			
		||||
  cp "$am_depcomp" conftest.dir
 | 
			
		||||
  cd conftest.dir
 | 
			
		||||
 | 
			
		||||
  am_cv_$1_dependencies_compiler_type=none
 | 
			
		||||
  if test "$am_compiler_list" = ""; then
 | 
			
		||||
     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
 | 
			
		||||
  fi
 | 
			
		||||
  for depmode in $am_compiler_list; do
 | 
			
		||||
    # We need to recreate these files for each test, as the compiler may
 | 
			
		||||
    # overwrite some of them when testing with obscure command lines.
 | 
			
		||||
    # This happens at least with the AIX C compiler.
 | 
			
		||||
    echo '#include "conftest.h"' > conftest.c
 | 
			
		||||
    echo 'int i;' > conftest.h
 | 
			
		||||
    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
 | 
			
		||||
 | 
			
		||||
    case $depmode in
 | 
			
		||||
    nosideeffect)
 | 
			
		||||
      # after this tag, mechanisms are not by side-effect, so they'll
 | 
			
		||||
      # only be used when explicitly requested
 | 
			
		||||
      if test "x$enable_dependency_tracking" = xyes; then
 | 
			
		||||
	continue
 | 
			
		||||
      else
 | 
			
		||||
	break
 | 
			
		||||
      fi
 | 
			
		||||
      ;;
 | 
			
		||||
    none) break ;;
 | 
			
		||||
    esac
 | 
			
		||||
    # We check with `-c' and `-o' for the sake of the "dashmstdout"
 | 
			
		||||
    # mode.  It turns out that the SunPro C++ compiler does not properly
 | 
			
		||||
    # handle `-M -o', and we need to detect this.
 | 
			
		||||
    if depmode=$depmode \
 | 
			
		||||
       source=conftest.c object=conftest.o \
 | 
			
		||||
       depfile=conftest.Po tmpdepfile=conftest.TPo \
 | 
			
		||||
       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
 | 
			
		||||
       grep conftest.h conftest.Po > /dev/null 2>&1 &&
 | 
			
		||||
       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
 | 
			
		||||
      am_cv_$1_dependencies_compiler_type=$depmode
 | 
			
		||||
      break
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  cd ..
 | 
			
		||||
  rm -rf conftest.dir
 | 
			
		||||
else
 | 
			
		||||
  am_cv_$1_dependencies_compiler_type=none
 | 
			
		||||
fi
 | 
			
		||||
])
 | 
			
		||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# AM_SET_DEPDIR
 | 
			
		||||
# -------------
 | 
			
		||||
# Choose a directory name for dependency files.
 | 
			
		||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
 | 
			
		||||
AC_DEFUN([AM_SET_DEPDIR],
 | 
			
		||||
[rm -f .deps 2>/dev/null
 | 
			
		||||
mkdir .deps 2>/dev/null
 | 
			
		||||
if test -d .deps; then
 | 
			
		||||
  DEPDIR=.deps
 | 
			
		||||
else
 | 
			
		||||
  # MS-DOS does not allow filenames that begin with a dot.
 | 
			
		||||
  DEPDIR=_deps
 | 
			
		||||
fi
 | 
			
		||||
rmdir .deps 2>/dev/null
 | 
			
		||||
AC_SUBST([DEPDIR])
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# AM_DEP_TRACK
 | 
			
		||||
# ------------
 | 
			
		||||
AC_DEFUN([AM_DEP_TRACK],
 | 
			
		||||
[AC_ARG_ENABLE(dependency-tracking,
 | 
			
		||||
[  --disable-dependency-tracking Speeds up one-time builds
 | 
			
		||||
  --enable-dependency-tracking  Do not reject slow dependency extractors])
 | 
			
		||||
if test "x$enable_dependency_tracking" != xno; then
 | 
			
		||||
  am_depcomp="$ac_aux_dir/depcomp"
 | 
			
		||||
  AMDEPBACKSLASH='\'
 | 
			
		||||
fi
 | 
			
		||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 | 
			
		||||
AC_SUBST([AMDEPBACKSLASH])
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# Generate code to set up dependency tracking.   -*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
#serial 2
 | 
			
		||||
 | 
			
		||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
 | 
			
		||||
# ------------------------------
 | 
			
		||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 | 
			
		||||
[for mf in $CONFIG_FILES; do
 | 
			
		||||
  # Strip MF so we end up with the name of the file.
 | 
			
		||||
  mf=`echo "$mf" | sed -e 's/:.*$//'`
 | 
			
		||||
  # Check whether this is an Automake generated Makefile or not.
 | 
			
		||||
  # We used to match only the files named `Makefile.in', but
 | 
			
		||||
  # some people rename them; so instead we look at the file content.
 | 
			
		||||
  # Grep'ing the first line is not enough: some people post-process
 | 
			
		||||
  # each Makefile.in and add a new line on top of each file to say so.
 | 
			
		||||
  # So let's grep whole file.
 | 
			
		||||
  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
 | 
			
		||||
    dirpart=`AS_DIRNAME("$mf")`
 | 
			
		||||
  else
 | 
			
		||||
    continue
 | 
			
		||||
  fi
 | 
			
		||||
  grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
 | 
			
		||||
  # Extract the definition of DEP_FILES from the Makefile without
 | 
			
		||||
  # running `make'.
 | 
			
		||||
  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
 | 
			
		||||
  test -z "$DEPDIR" && continue
 | 
			
		||||
  # When using ansi2knr, U may be empty or an underscore; expand it
 | 
			
		||||
  U=`sed -n -e '/^U = / s///p' < "$mf"`
 | 
			
		||||
  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
 | 
			
		||||
  # We invoke sed twice because it is the simplest approach to
 | 
			
		||||
  # changing $(DEPDIR) to its actual value in the expansion.
 | 
			
		||||
  for file in `sed -n -e '
 | 
			
		||||
    /^DEP_FILES = .*\\\\$/ {
 | 
			
		||||
      s/^DEP_FILES = //
 | 
			
		||||
      :loop
 | 
			
		||||
	s/\\\\$//
 | 
			
		||||
	p
 | 
			
		||||
	n
 | 
			
		||||
	/\\\\$/ b loop
 | 
			
		||||
      p
 | 
			
		||||
    }
 | 
			
		||||
    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
 | 
			
		||||
       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
 | 
			
		||||
    # Make sure the directory exists.
 | 
			
		||||
    test -f "$dirpart/$file" && continue
 | 
			
		||||
    fdir=`AS_DIRNAME(["$file"])`
 | 
			
		||||
    AS_MKDIR_P([$dirpart/$fdir])
 | 
			
		||||
    # echo "creating $dirpart/$file"
 | 
			
		||||
    echo '# dummy' > "$dirpart/$file"
 | 
			
		||||
  done
 | 
			
		||||
done
 | 
			
		||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
 | 
			
		||||
# -----------------------------
 | 
			
		||||
# This macro should only be invoked once -- use via AC_REQUIRE.
 | 
			
		||||
#
 | 
			
		||||
# This code is only required when automatic dependency tracking
 | 
			
		||||
# is enabled.  FIXME.  This creates each `.P' file that we will
 | 
			
		||||
# need in order to bootstrap the dependency handling code.
 | 
			
		||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 | 
			
		||||
[AC_CONFIG_COMMANDS([depfiles],
 | 
			
		||||
     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
 | 
			
		||||
     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# Copyright 2001 Free Software Foundation, Inc.             -*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# serial 2
 | 
			
		||||
 | 
			
		||||
# AM_MAKE_INCLUDE()
 | 
			
		||||
# -----------------
 | 
			
		||||
# Check to see how make treats includes.
 | 
			
		||||
AC_DEFUN([AM_MAKE_INCLUDE],
 | 
			
		||||
[am_make=${MAKE-make}
 | 
			
		||||
cat > confinc << 'END'
 | 
			
		||||
doit:
 | 
			
		||||
	@echo done
 | 
			
		||||
END
 | 
			
		||||
# If we don't find an include directive, just comment out the code.
 | 
			
		||||
AC_MSG_CHECKING([for style of include used by $am_make])
 | 
			
		||||
am__include="#"
 | 
			
		||||
am__quote=
 | 
			
		||||
_am_result=none
 | 
			
		||||
# First try GNU make style include.
 | 
			
		||||
echo "include confinc" > confmf
 | 
			
		||||
# We grep out `Entering directory' and `Leaving directory'
 | 
			
		||||
# messages which can occur if `w' ends up in MAKEFLAGS.
 | 
			
		||||
# In particular we don't look at `^make:' because GNU make might
 | 
			
		||||
# be invoked under some other name (usually "gmake"), in which
 | 
			
		||||
# case it prints its new name instead of `make'.
 | 
			
		||||
if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
 | 
			
		||||
   am__include=include
 | 
			
		||||
   am__quote=
 | 
			
		||||
   _am_result=GNU
 | 
			
		||||
fi
 | 
			
		||||
# Now try BSD make style include.
 | 
			
		||||
if test "$am__include" = "#"; then
 | 
			
		||||
   echo '.include "confinc"' > confmf
 | 
			
		||||
   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
 | 
			
		||||
      am__include=.include
 | 
			
		||||
      am__quote="\""
 | 
			
		||||
      _am_result=BSD
 | 
			
		||||
   fi
 | 
			
		||||
fi
 | 
			
		||||
AC_SUBST(am__include)
 | 
			
		||||
AC_SUBST(am__quote)
 | 
			
		||||
AC_MSG_RESULT($_am_result)
 | 
			
		||||
rm -f confinc confmf
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# AM_CONDITIONAL                                              -*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
# Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# serial 5
 | 
			
		||||
 | 
			
		||||
AC_PREREQ(2.52)
 | 
			
		||||
 | 
			
		||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
 | 
			
		||||
# -------------------------------------
 | 
			
		||||
# Define a conditional.
 | 
			
		||||
AC_DEFUN([AM_CONDITIONAL],
 | 
			
		||||
[ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
 | 
			
		||||
        [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 | 
			
		||||
AC_SUBST([$1_TRUE])
 | 
			
		||||
AC_SUBST([$1_FALSE])
 | 
			
		||||
if $2; then
 | 
			
		||||
  $1_TRUE=
 | 
			
		||||
  $1_FALSE='#'
 | 
			
		||||
else
 | 
			
		||||
  $1_TRUE='#'
 | 
			
		||||
  $1_FALSE=
 | 
			
		||||
fi
 | 
			
		||||
AC_CONFIG_COMMANDS_PRE(
 | 
			
		||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
 | 
			
		||||
  AC_MSG_ERROR([conditional \"$1\" was never defined.
 | 
			
		||||
Usually this means the macro was only invoked conditionally.])
 | 
			
		||||
fi])])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Copyright 1999, 2000, 2001, 2002  Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# AM_PATH_PYTHON([MINIMUM-VERSION])
 | 
			
		||||
 | 
			
		||||
# Adds support for distributing Python modules and packages.  To
 | 
			
		||||
# install modules, copy them to $(pythondir), using the python_PYTHON
 | 
			
		||||
# automake variable.  To install a package with the same name as the
 | 
			
		||||
# automake package, install to $(pkgpythondir), or use the
 | 
			
		||||
# pkgpython_PYTHON automake variable.
 | 
			
		||||
 | 
			
		||||
# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
 | 
			
		||||
# locations to install python extension modules (shared libraries).
 | 
			
		||||
# Another macro is required to find the appropriate flags to compile
 | 
			
		||||
# extension modules.
 | 
			
		||||
 | 
			
		||||
# If your package is configured with a different prefix to python,
 | 
			
		||||
# users will have to add the install directory to the PYTHONPATH
 | 
			
		||||
# environment variable, or create a .pth file (see the python
 | 
			
		||||
# documentation for details).
 | 
			
		||||
 | 
			
		||||
# If the MINIUMUM-VERSION argument is passed, AM_PATH_PYTHON will
 | 
			
		||||
# cause an error if the version of python installed on the system
 | 
			
		||||
# doesn't meet the requirement.  MINIMUM-VERSION should consist of
 | 
			
		||||
# numbers and dots only.
 | 
			
		||||
 | 
			
		||||
AC_DEFUN([AM_PATH_PYTHON],
 | 
			
		||||
 [
 | 
			
		||||
  dnl Find a Python interpreter.  Python versions prior to 1.5 are not
 | 
			
		||||
  dnl supported because the default installation locations changed from
 | 
			
		||||
  dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages
 | 
			
		||||
  dnl in 1.5.
 | 
			
		||||
  m4_define([_AM_PYTHON_INTERPRETER_LIST],
 | 
			
		||||
	    [python python2 python2.2 python2.1 python2.0 python1.6 python1.5])
 | 
			
		||||
 | 
			
		||||
  m4_if([$1],[],[
 | 
			
		||||
    dnl No version check is needed.
 | 
			
		||||
    # Find any Python interpreter.
 | 
			
		||||
    AC_PATH_PROG([PYTHON], _AM_PYTHON_INTERPRETER_LIST)],[
 | 
			
		||||
    dnl A version check is needed.
 | 
			
		||||
    if test -n "$PYTHON"; then
 | 
			
		||||
      # If the user set $PYTHON, use it and don't search something else.
 | 
			
		||||
      AC_MSG_CHECKING([whether $PYTHON version >= $1])
 | 
			
		||||
      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
 | 
			
		||||
			      [AC_MSG_RESULT(yes)],
 | 
			
		||||
			      [AC_MSG_ERROR(too old)])
 | 
			
		||||
    else
 | 
			
		||||
      # Otherwise, try each interpreter until we find one that satisfies
 | 
			
		||||
      # VERSION.
 | 
			
		||||
      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
 | 
			
		||||
	[am_cv_pathless_PYTHON],[
 | 
			
		||||
	for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST : ; do
 | 
			
		||||
          if test "$am_cv_pathless_PYTHON" = : ; then
 | 
			
		||||
            AC_MSG_ERROR([no suitable Python interpreter found])
 | 
			
		||||
	  fi
 | 
			
		||||
          AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
 | 
			
		||||
        done])
 | 
			
		||||
      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
 | 
			
		||||
      AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
 | 
			
		||||
    fi
 | 
			
		||||
  ])
 | 
			
		||||
 | 
			
		||||
  dnl Query Python for its version number.  Getting [:3] seems to be
 | 
			
		||||
  dnl the best way to do this; it's what "site.py" does in the standard
 | 
			
		||||
  dnl library.
 | 
			
		||||
 | 
			
		||||
  AC_CACHE_CHECK([for $am_cv_pathless_PYTHON version], [am_cv_python_version],
 | 
			
		||||
    [am_cv_python_version=`$PYTHON -c "import sys; print sys.version[[:3]]"`])
 | 
			
		||||
  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
 | 
			
		||||
 | 
			
		||||
  dnl Use the values of $prefix and $exec_prefix for the corresponding
 | 
			
		||||
  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
 | 
			
		||||
  dnl distinct variables so they can be overridden if need be.  However,
 | 
			
		||||
  dnl general consensus is that you shouldn't need this ability.
 | 
			
		||||
 | 
			
		||||
  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
 | 
			
		||||
  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
 | 
			
		||||
 | 
			
		||||
  dnl At times (like when building shared libraries) you may want
 | 
			
		||||
  dnl to know which OS platform Python thinks this is.
 | 
			
		||||
 | 
			
		||||
  AC_CACHE_CHECK([for $am_cv_pathless_PYTHON platform],
 | 
			
		||||
	         [am_cv_python_platform],
 | 
			
		||||
    [am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`])
 | 
			
		||||
  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  dnl Set up 4 directories:
 | 
			
		||||
 | 
			
		||||
  dnl pythondir -- where to install python scripts.  This is the
 | 
			
		||||
  dnl   site-packages directory, not the python standard library
 | 
			
		||||
  dnl   directory like in previous automake betas.  This behaviour
 | 
			
		||||
  dnl   is more consistent with lispdir.m4 for example.
 | 
			
		||||
  dnl
 | 
			
		||||
  dnl Also, if the package prefix isn't the same as python's prefix,
 | 
			
		||||
  dnl then the old $(pythondir) was pretty useless.
 | 
			
		||||
 | 
			
		||||
  AC_SUBST([pythondir],
 | 
			
		||||
	   [$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages])
 | 
			
		||||
 | 
			
		||||
  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
 | 
			
		||||
  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
 | 
			
		||||
  dnl   more consistent with the rest of automake.
 | 
			
		||||
  dnl   Maybe this should be put in python.am?
 | 
			
		||||
 | 
			
		||||
  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
 | 
			
		||||
 | 
			
		||||
  dnl pyexecdir -- directory for installing python extension modules
 | 
			
		||||
  dnl   (shared libraries)  Was PYTHON_SITE_EXEC in previous betas.
 | 
			
		||||
 | 
			
		||||
  AC_SUBST([pyexecdir],
 | 
			
		||||
	   [${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages])
 | 
			
		||||
 | 
			
		||||
  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
 | 
			
		||||
  dnl   Maybe this should be put in python.am?
 | 
			
		||||
 | 
			
		||||
  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
 | 
			
		||||
# ---------------------------------------------------------------------------
 | 
			
		||||
# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
 | 
			
		||||
# Run ACTION-IF-FALSE otherwise.
 | 
			
		||||
# This test uses sys.hexversion instead of the string equivalant (first
 | 
			
		||||
# word of sys.version), in order to cope with versions such as 2.2c1.
 | 
			
		||||
# hexversion has been introduced in Python 1.5.2; it's probably not
 | 
			
		||||
# worth to support older versions (1.5.1 was released on October 31, 1998).
 | 
			
		||||
AC_DEFUN([AM_PYTHON_CHECK_VERSION],
 | 
			
		||||
 [prog="import sys, string
 | 
			
		||||
# split strings by '.' and convert to numeric.  Append some zeros
 | 
			
		||||
# because we need at least 4 digits for the hex conversion.
 | 
			
		||||
minver = map(int, string.split('$2', '.')) + [[0, 0, 0]]
 | 
			
		||||
minverhex = 0
 | 
			
		||||
for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[[i]]
 | 
			
		||||
sys.exit(sys.hexversion < minverhex)"
 | 
			
		||||
  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
 | 
			
		||||
 | 
			
		||||
# Copyright 2001 Free Software Foundation, Inc.             -*- Autoconf -*-
 | 
			
		||||
 | 
			
		||||
# This program 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, 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., 59 Temple Place - Suite 330, Boston, MA
 | 
			
		||||
# 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# AM_RUN_LOG(COMMAND)
 | 
			
		||||
# -------------------
 | 
			
		||||
# Run COMMAND, save the exit status in ac_status, and log it.
 | 
			
		||||
# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
 | 
			
		||||
AC_DEFUN([AM_RUN_LOG],
 | 
			
		||||
[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
 | 
			
		||||
   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
 | 
			
		||||
   ac_status=$?
 | 
			
		||||
   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
 | 
			
		||||
   (exit $ac_status); }])
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										96
									
								
								autogen.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						@@ -0,0 +1,96 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# Run this to generate all the initial makefiles, etc.
 | 
			
		||||
# shamelessly borrowed and hacked from the Galeon source distribution
 | 
			
		||||
 | 
			
		||||
srcdir=`dirname $0`
 | 
			
		||||
test -z "$srcdir" && srcdir=.
 | 
			
		||||
 | 
			
		||||
PKG_NAME="gramps"
 | 
			
		||||
 | 
			
		||||
(test -f $srcdir/configure.in \
 | 
			
		||||
  && test -f $srcdir/src/gramps_main.py) || {
 | 
			
		||||
    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
 | 
			
		||||
    echo " top-level $PKG_NAME directory"
 | 
			
		||||
    exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
DIE=0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
 | 
			
		||||
  echo
 | 
			
		||||
  echo "**Error**: You must have \`autoconf' installed to compile $PKG_NAME."
 | 
			
		||||
  echo "Download the appropriate package for your distribution,"
 | 
			
		||||
  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
 | 
			
		||||
  DIE=1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
(automake --version) < /dev/null > /dev/null 2>&1 || {
 | 
			
		||||
  echo
 | 
			
		||||
  echo "**Error**: You must have \`automake' installed to compile $PKG_NAME."
 | 
			
		||||
  echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.6.tar.gz"
 | 
			
		||||
  echo "(or a newer version if it is available)"
 | 
			
		||||
  DIE=1
 | 
			
		||||
  NO_AUTOMAKE=yes
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# if no automake, don't bother testing for aclocal
 | 
			
		||||
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
 | 
			
		||||
  echo
 | 
			
		||||
  echo "**Error**: Missing \`aclocal'.  The version of \`automake'"
 | 
			
		||||
  echo "installed doesn't appear recent enough."
 | 
			
		||||
  echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.6.tar.gz"
 | 
			
		||||
  echo "(or a newer version if it is available)"
 | 
			
		||||
  DIE=1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if test "$DIE" -eq 1; then
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$*"; then
 | 
			
		||||
  echo "**Warning**: I am going to run \`configure' with no arguments."
 | 
			
		||||
  echo "If you wish to pass any to it, please specify them on the"
 | 
			
		||||
  echo \`$0\'" command line."
 | 
			
		||||
  echo
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
case $CC in
 | 
			
		||||
xlc )
 | 
			
		||||
  am_opt=--include-deps;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
dr=$srcdir
 | 
			
		||||
echo processing $dr
 | 
			
		||||
( cd $dr
 | 
			
		||||
  aclocalinclude="$ACLOCAL_FLAGS"
 | 
			
		||||
  echo "Running aclocal $aclocalinclude ..."
 | 
			
		||||
  aclocal $aclocalinclude || {
 | 
			
		||||
  echo
 | 
			
		||||
  echo "**Error**: aclocal failed. This may mean that you have not"
 | 
			
		||||
  echo "installed all of the packages you need, or you may need to"
 | 
			
		||||
  echo "set ACLOCAL_FLAGS to include \"-I \$prefix/share/aclocal\""
 | 
			
		||||
  echo "for the prefix where you installed the packages whose"
 | 
			
		||||
  echo "macros were not found"
 | 
			
		||||
  exit 1
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
  echo "Running automake --gnu $am_opt ..."
 | 
			
		||||
  automake --add-missing --gnu $am_opt ||
 | 
			
		||||
    { echo "**Error**: automake failed."; exit 1; }
 | 
			
		||||
      echo "Running autoconf ..."
 | 
			
		||||
      autoconf || { echo "**Error**: autoconf failed."; exit 1; }
 | 
			
		||||
) || exit 1
 | 
			
		||||
 | 
			
		||||
  echo "Setting py-compile script executable ..."
 | 
			
		||||
  chmod 755 py-compile
 | 
			
		||||
  
 | 
			
		||||
if test x$NOCONFIGURE = x; then
 | 
			
		||||
  echo Running $srcdir/configure $conf_flags "$@" ...
 | 
			
		||||
  $srcdir/configure $conf_flags "$@" \
 | 
			
		||||
  && echo Now type \`make\' to compile $PKG_NAME || exit 1
 | 
			
		||||
else
 | 
			
		||||
  echo Skipping configure process.
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										293
									
								
								configure.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,293 @@
 | 
			
		||||
dnl Process this file with autoconf to produce a configure script.
 | 
			
		||||
dnl May need to run automake && aclocal first
 | 
			
		||||
AC_INIT(src/gramps.py)
 | 
			
		||||
AM_INIT_AUTOMAKE(gramps, 0.9.0pre1)
 | 
			
		||||
RELEASE=rc4
 | 
			
		||||
 | 
			
		||||
VERSIONSTRING=$VERSION
 | 
			
		||||
if test x"$RELEASE" != "x"
 | 
			
		||||
then
 | 
			
		||||
  VERSIONSTRING="$VERSION-$RELEASE"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AC_SUBST(PACKAGE)
 | 
			
		||||
AC_SUBST(VERSION)
 | 
			
		||||
AC_SUBST(RELEASE)
 | 
			
		||||
AC_SUBST(VERSIONSTRING)
 | 
			
		||||
 | 
			
		||||
AC_PATH_PROG(MSGFMT, msgfmt)
 | 
			
		||||
AC_SUBST(MSGFMT)
 | 
			
		||||
 | 
			
		||||
LANGUAGES="sv de fr es it pt_BR ru da_DK cs"
 | 
			
		||||
AC_SUBST(LANGUAGES)
 | 
			
		||||
 | 
			
		||||
DISTLANGS=
 | 
			
		||||
POFILES=
 | 
			
		||||
MOFILES=
 | 
			
		||||
for lang in $LANGUAGES; do
 | 
			
		||||
 POFILES="$POFILES $lang.po"
 | 
			
		||||
 MOFILES="$MOFILES $lang.mo"
 | 
			
		||||
done
 | 
			
		||||
AC_SUBST(POFILES)
 | 
			
		||||
AC_SUBST(MOFILES)
 | 
			
		||||
 | 
			
		||||
dnl Checks for programs.  
 | 
			
		||||
dnl We first only check for python >= 1.5
 | 
			
		||||
AM_PATH_PYTHON(2.2)
 | 
			
		||||
 | 
			
		||||
dnl override automatic python detection with our own place
 | 
			
		||||
pythondir=\${prefix}/share
 | 
			
		||||
pyexecdir=\${prefix}/share
 | 
			
		||||
pkgpythondir=\${prefix}/share/\${PACKAGE}
 | 
			
		||||
pkgpyexecdir=\${prefix}/share/\${PACKAGE}
 | 
			
		||||
 | 
			
		||||
AC_PATH_PROG(BINSH, sh)
 | 
			
		||||
 | 
			
		||||
changequote(<<, >>)dnl
 | 
			
		||||
PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
 | 
			
		||||
changequote([, ])dnl
 | 
			
		||||
 | 
			
		||||
if test "$PYTHON_VERSION" != "2.2" 
 | 
			
		||||
then
 | 
			
		||||
	AC_PATH_PROG(PYTHON22, python2.2)
 | 
			
		||||
else
 | 
			
		||||
	PYTHON22=$PYTHON
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AC_PATH_PROG(ZIP, zip)
 | 
			
		||||
 | 
			
		||||
AC_PROG_INSTALL
 | 
			
		||||
AC_PROG_MAKE_SET
 | 
			
		||||
 | 
			
		||||
AC_PROG_CC
 | 
			
		||||
 | 
			
		||||
AC_CHECK_HEADER(libintl.h)
 | 
			
		||||
 | 
			
		||||
AC_CHECK_LIB(c,textdomain,LIBS="",
 | 
			
		||||
 [ AC_CHECK_LIB(intl,textdomain,
 | 
			
		||||
	LIBS="-lintl",
 | 
			
		||||
	AC_MSG_ERROR("Could not find internationalization libraries"))
 | 
			
		||||
        ])
 | 
			
		||||
 | 
			
		||||
dnl Check for programs
 | 
			
		||||
 | 
			
		||||
AC_CHECK_PROG(HAVE_GNOME_CONFIG, gnome-config, "YES", "NO")
 | 
			
		||||
GNOMEHELP=`gnome-config --prefix`
 | 
			
		||||
 | 
			
		||||
dnl Check if python bindings for gtk are installed
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING(Python bindings for sax/xml)
 | 
			
		||||
changequote(,)
 | 
			
		||||
cat > conftest.py <<EOF
 | 
			
		||||
try:
 | 
			
		||||
    from xml.sax import make_parser, handler
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("YES")
 | 
			
		||||
    f.close()
 | 
			
		||||
except ImportError:
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        from _xmlplus.sax import make_parser, handler
 | 
			
		||||
        f = open("conftest.out", "w")
 | 
			
		||||
        f.write("YES")
 | 
			
		||||
        f.close()
 | 
			
		||||
    except ImportError:
 | 
			
		||||
        f = open("conftest.out", "w")
 | 
			
		||||
        f.write("NO")
 | 
			
		||||
        f.close()
 | 
			
		||||
EOF
 | 
			
		||||
changequote([, ])
 | 
			
		||||
$PYTHON conftest.py
 | 
			
		||||
has_sax=`cat conftest.out`
 | 
			
		||||
rm -f conftest.out conftest.py
 | 
			
		||||
if test "YES" != $has_sax
 | 
			
		||||
then
 | 
			
		||||
   AC_MSG_ERROR([
 | 
			
		||||
 | 
			
		||||
**** The python interpreter can't find the SAX/XML bindings.])
 | 
			
		||||
fi
 | 
			
		||||
AC_MSG_RESULT(ok)
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING(Python bindings for gtk)
 | 
			
		||||
changequote(,)
 | 
			
		||||
cat > conftest.py <<EOF
 | 
			
		||||
try:
 | 
			
		||||
    import gobject
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("YES")
 | 
			
		||||
    f.close()
 | 
			
		||||
except ImportError:
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("NO")
 | 
			
		||||
    f.close()
 | 
			
		||||
EOF
 | 
			
		||||
changequote([, ])
 | 
			
		||||
$PYTHON conftest.py
 | 
			
		||||
has_pygtk=`cat conftest.out`
 | 
			
		||||
rm -f conftest.out conftest.py
 | 
			
		||||
if test "YES" != $has_pygtk
 | 
			
		||||
then
 | 
			
		||||
   AC_MSG_ERROR([
 | 
			
		||||
 | 
			
		||||
**** The python interpreter can't find the python bindings for gtk 2.0.])
 | 
			
		||||
fi
 | 
			
		||||
AC_MSG_RESULT(ok)
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING(Python bindings for GNOME)
 | 
			
		||||
changequote(,)
 | 
			
		||||
cat > conftest.py <<EOF
 | 
			
		||||
try:
 | 
			
		||||
    import gnome, gnome.ui
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("YES")
 | 
			
		||||
    f.close()
 | 
			
		||||
except ImportError:
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("NO")
 | 
			
		||||
    f.close()
 | 
			
		||||
EOF
 | 
			
		||||
changequote([, ])
 | 
			
		||||
$PYTHON conftest.py
 | 
			
		||||
has_pygnome=`cat conftest.out`
 | 
			
		||||
rm -f conftest.out conftest.py
 | 
			
		||||
if test "YES" != $has_pygnome
 | 
			
		||||
then
 | 
			
		||||
   AC_MSG_ERROR([
 | 
			
		||||
**** The python interpreter can't find the python bindings for GNOME.])
 | 
			
		||||
fi
 | 
			
		||||
AC_MSG_RESULT(ok)
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING(Python/libglade bindings)
 | 
			
		||||
changequote(,)
 | 
			
		||||
cat > conftest.py <<EOF
 | 
			
		||||
try:
 | 
			
		||||
    import gtk.glade
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("YES")
 | 
			
		||||
    f.close()
 | 
			
		||||
except ImportError:
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("NO")
 | 
			
		||||
    f.close()
 | 
			
		||||
EOF
 | 
			
		||||
changequote([, ])
 | 
			
		||||
$PYTHON conftest.py
 | 
			
		||||
has_pygtk=`cat conftest.out`
 | 
			
		||||
rm -f conftest.out conftest.py
 | 
			
		||||
if test "YES" != $has_pygtk
 | 
			
		||||
then
 | 
			
		||||
   AC_MSG_ERROR([
 | 
			
		||||
 | 
			
		||||
**** The python interpreter can't find the python bindings for libglade.])
 | 
			
		||||
fi
 | 
			
		||||
AC_MSG_RESULT(ok)
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING(Python bindings for gconf)
 | 
			
		||||
changequote(,)
 | 
			
		||||
cat > conftest.py <<EOF
 | 
			
		||||
try:
 | 
			
		||||
    import gconf
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("YES")
 | 
			
		||||
    f.close()
 | 
			
		||||
except ImportError:
 | 
			
		||||
    f = open("conftest.out", "w")
 | 
			
		||||
    f.write("NO")
 | 
			
		||||
    f.close()
 | 
			
		||||
EOF
 | 
			
		||||
changequote([, ])
 | 
			
		||||
$PYTHON conftest.py
 | 
			
		||||
has_gconf=`cat conftest.out`
 | 
			
		||||
rm -f conftest.out conftest.py
 | 
			
		||||
if test "YES" != $has_gconf
 | 
			
		||||
then
 | 
			
		||||
   AC_MSG_ERROR([
 | 
			
		||||
 | 
			
		||||
**** The python interpreter can't find the python bindings for gconf.])
 | 
			
		||||
fi
 | 
			
		||||
AC_MSG_RESULT(ok)
 | 
			
		||||
 | 
			
		||||
dnl Checks for libraries.
 | 
			
		||||
 | 
			
		||||
dnl Checks for header files.
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING(for headers required to compile python extensions)
 | 
			
		||||
 | 
			
		||||
if test "$PYTHON22" != ""; then
 | 
			
		||||
  py_prefix=`$PYTHON22 -c "import sys; print sys.prefix"`
 | 
			
		||||
  py_exec_prefix=`$PYTHON22 -c "import sys; print sys.exec_prefix"`
 | 
			
		||||
  P22_INCLUDES="-I${py_prefix}/include/python2.2"
 | 
			
		||||
  if test "$py_prefix" != "$py_exec_prefix"; then
 | 
			
		||||
    P22_INCLUDES="$P22_INCLUDES -I${py_exec_prefix}/include/python2.2" 
 | 
			
		||||
  fi
 | 
			
		||||
  if test -f "${py_exec_prefix}/include/python2.2/Python.h"
 | 
			
		||||
  then
 | 
			
		||||
    INTLLIBS="${INTLLIBS}intl22.so "
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AC_MSG_RESULT(ok)
 | 
			
		||||
 | 
			
		||||
dnl ======================================================
 | 
			
		||||
dnl == Modern documentation tools (scrollkeeper) checks
 | 
			
		||||
dnl == We may need a more recent version (GNOME2 will use
 | 
			
		||||
dnl == scrollkeeper > 0.3) but basic scrollkeeper instructions
 | 
			
		||||
dnl == use 0.1.4 example so we'll just check for that
 | 
			
		||||
dnl ======================================================
 | 
			
		||||
SCROLLKEEPER_REQUIRED=0.1.4
 | 
			
		||||
AC_SUBST(SCROLLKEEPER_REQUIRED)
 | 
			
		||||
 | 
			
		||||
dnl First see that *some* version of scrollkeeper is installed
 | 
			
		||||
AC_PATH_PROG(SCROLLKEEPER_CONFIG, scrollkeeper-config, no)
 | 
			
		||||
if test x$SCROLLKEEPER_CONFIG = xno; then
 | 
			
		||||
  AC_MSG_ERROR(Couldn't find scrollkeeper-config.  Please install the scrollkeeper package.)
 | 
			
		||||
  DISABLE_SCROLLKEEPER=1
 | 
			
		||||
  AC_SUBST(DISABLE_SCROLLKEEPER)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
dnl ======================================================
 | 
			
		||||
dnl == GNOME modified DTD's need jw, not db2html
 | 
			
		||||
dnl ======================================================
 | 
			
		||||
AC_PATH_PROG(JW, jw, no) 
 | 
			
		||||
if test x$JW = xno; then
 | 
			
		||||
  HAVE_JW="no"
 | 
			
		||||
else
 | 
			
		||||
  HAVE_JW="yes"
 | 
			
		||||
fi
 | 
			
		||||
AC_SUBST(HAVE_JW)
 | 
			
		||||
 | 
			
		||||
dnl ======================================================
 | 
			
		||||
dnl == end of modern doc tests
 | 
			
		||||
dnl ======================================================
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AC_SUBST(BINSH)
 | 
			
		||||
AC_SUBST(PYTHON)
 | 
			
		||||
AC_SUBST(PYTHON_VERSION)
 | 
			
		||||
AC_SUBST(GNOMEHELP)
 | 
			
		||||
AC_SUBST(LIBS)
 | 
			
		||||
 | 
			
		||||
AC_SUBST(P15_INCLUDES)
 | 
			
		||||
AC_SUBST(P20_INCLUDES)
 | 
			
		||||
AC_SUBST(P21_INCLUDES)
 | 
			
		||||
AC_SUBST(P22_INCLUDES)
 | 
			
		||||
AC_SUBST(INTLLIBS)
 | 
			
		||||
 | 
			
		||||
AC_OUTPUT([
 | 
			
		||||
Makefile 
 | 
			
		||||
src/Makefile
 | 
			
		||||
src/const.py
 | 
			
		||||
src/docgen/Makefile
 | 
			
		||||
src/filters/Makefile
 | 
			
		||||
src/plugins/Makefile
 | 
			
		||||
src/data/Makefile
 | 
			
		||||
src/data/templates/Makefile
 | 
			
		||||
src/po/Makefile
 | 
			
		||||
doc/Makefile
 | 
			
		||||
doc/gramps-manual/Makefile
 | 
			
		||||
doc/gramps-manual/C/Makefile
 | 
			
		||||
doc/extending-gramps/Makefile
 | 
			
		||||
doc/extending-gramps/C/Makefile
 | 
			
		||||
omf-install/Makefile
 | 
			
		||||
gramps.spec
 | 
			
		||||
gramps.sh])
 | 
			
		||||
							
								
								
									
										11
									
								
								doc/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,11 @@
 | 
			
		||||
# Process this file with automake to produce Makefile.in
 | 
			
		||||
 | 
			
		||||
SUBDIRS = gramps-manual extending-gramps
 | 
			
		||||
 | 
			
		||||
man_IN_FILES = gramps.1.in
 | 
			
		||||
man_MANS = ${man_IN_FILES:.1.in=.1}
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = $(man_MANS) $(man_IN_FILES) sgmldocs.make
 | 
			
		||||
 | 
			
		||||
gramps.1: $(top_builddir)/config.status gramps.1.in
 | 
			
		||||
	cd $(top_builddir) && CONFIG_FILES=doc/$@ $(SHELL) ./config.status
 | 
			
		||||
							
								
								
									
										409
									
								
								doc/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,409 @@
 | 
			
		||||
# Makefile.in generated by automake 1.6.3 from Makefile.am.
 | 
			
		||||
# @configure_input@
 | 
			
		||||
 | 
			
		||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 | 
			
		||||
# 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@
 | 
			
		||||
 | 
			
		||||
# Process this file with automake to produce Makefile.in
 | 
			
		||||
SHELL = @SHELL@
 | 
			
		||||
 | 
			
		||||
srcdir = @srcdir@
 | 
			
		||||
top_srcdir = @top_srcdir@
 | 
			
		||||
VPATH = @srcdir@
 | 
			
		||||
prefix = @prefix@
 | 
			
		||||
exec_prefix = @exec_prefix@
 | 
			
		||||
 | 
			
		||||
bindir = @bindir@
 | 
			
		||||
sbindir = @sbindir@
 | 
			
		||||
libexecdir = @libexecdir@
 | 
			
		||||
datadir = @datadir@
 | 
			
		||||
sysconfdir = @sysconfdir@
 | 
			
		||||
sharedstatedir = @sharedstatedir@
 | 
			
		||||
localstatedir = @localstatedir@
 | 
			
		||||
libdir = @libdir@
 | 
			
		||||
infodir = @infodir@
 | 
			
		||||
mandir = @mandir@
 | 
			
		||||
includedir = @includedir@
 | 
			
		||||
oldincludedir = /usr/include
 | 
			
		||||
pkgdatadir = $(datadir)/@PACKAGE@
 | 
			
		||||
pkglibdir = $(libdir)/@PACKAGE@
 | 
			
		||||
pkgincludedir = $(includedir)/@PACKAGE@
 | 
			
		||||
top_builddir = ..
 | 
			
		||||
 | 
			
		||||
ACLOCAL = @ACLOCAL@
 | 
			
		||||
AUTOCONF = @AUTOCONF@
 | 
			
		||||
AUTOMAKE = @AUTOMAKE@
 | 
			
		||||
AUTOHEADER = @AUTOHEADER@
 | 
			
		||||
 | 
			
		||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 | 
			
		||||
INSTALL = @INSTALL@
 | 
			
		||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
 | 
			
		||||
INSTALL_DATA = @INSTALL_DATA@
 | 
			
		||||
install_sh_DATA = $(install_sh) -c -m 644
 | 
			
		||||
install_sh_PROGRAM = $(install_sh) -c
 | 
			
		||||
install_sh_SCRIPT = $(install_sh) -c
 | 
			
		||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
 | 
			
		||||
INSTALL_HEADER = $(INSTALL_DATA)
 | 
			
		||||
transform = @program_transform_name@
 | 
			
		||||
NORMAL_INSTALL = :
 | 
			
		||||
PRE_INSTALL = :
 | 
			
		||||
POST_INSTALL = :
 | 
			
		||||
NORMAL_UNINSTALL = :
 | 
			
		||||
PRE_UNINSTALL = :
 | 
			
		||||
POST_UNINSTALL = :
 | 
			
		||||
 | 
			
		||||
EXEEXT = @EXEEXT@
 | 
			
		||||
OBJEXT = @OBJEXT@
 | 
			
		||||
PATH_SEPARATOR = @PATH_SEPARATOR@
 | 
			
		||||
AMTAR = @AMTAR@
 | 
			
		||||
AWK = @AWK@
 | 
			
		||||
BINSH = @BINSH@
 | 
			
		||||
CC = @CC@
 | 
			
		||||
DEPDIR = @DEPDIR@
 | 
			
		||||
DISABLE_SCROLLKEEPER = @DISABLE_SCROLLKEEPER@
 | 
			
		||||
GNOMEHELP = @GNOMEHELP@
 | 
			
		||||
HAVE_GNOME_CONFIG = @HAVE_GNOME_CONFIG@
 | 
			
		||||
HAVE_JW = @HAVE_JW@
 | 
			
		||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 | 
			
		||||
INTLLIBS = @INTLLIBS@
 | 
			
		||||
JW = @JW@
 | 
			
		||||
LANGUAGES = @LANGUAGES@
 | 
			
		||||
LIBS = @LIBS@
 | 
			
		||||
MOFILES = @MOFILES@
 | 
			
		||||
MSGFMT = @MSGFMT@
 | 
			
		||||
P15_INCLUDES = @P15_INCLUDES@
 | 
			
		||||
P20_INCLUDES = @P20_INCLUDES@
 | 
			
		||||
P21_INCLUDES = @P21_INCLUDES@
 | 
			
		||||
P22_INCLUDES = @P22_INCLUDES@
 | 
			
		||||
PACKAGE = @PACKAGE@
 | 
			
		||||
POFILES = @POFILES@
 | 
			
		||||
PYTHON = @PYTHON@
 | 
			
		||||
PYTHON22 = @PYTHON22@
 | 
			
		||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 | 
			
		||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
 | 
			
		||||
PYTHON_PREFIX = @PYTHON_PREFIX@
 | 
			
		||||
PYTHON_VERSION = @PYTHON_VERSION@
 | 
			
		||||
RELEASE = @RELEASE@
 | 
			
		||||
SCROLLKEEPER_CONFIG = @SCROLLKEEPER_CONFIG@
 | 
			
		||||
SCROLLKEEPER_REQUIRED = @SCROLLKEEPER_REQUIRED@
 | 
			
		||||
STRIP = @STRIP@
 | 
			
		||||
VERSION = @VERSION@
 | 
			
		||||
VERSIONSTRING = @VERSIONSTRING@
 | 
			
		||||
ZIP = @ZIP@
 | 
			
		||||
am__include = @am__include@
 | 
			
		||||
am__quote = @am__quote@
 | 
			
		||||
install_sh = @install_sh@
 | 
			
		||||
pkgpyexecdir = @pkgpyexecdir@
 | 
			
		||||
pkgpythondir = @pkgpythondir@
 | 
			
		||||
pyexecdir = @pyexecdir@
 | 
			
		||||
pythondir = @pythondir@
 | 
			
		||||
 | 
			
		||||
SUBDIRS = gramps-manual extending-gramps
 | 
			
		||||
 | 
			
		||||
man_IN_FILES = gramps.1.in
 | 
			
		||||
man_MANS = ${man_IN_FILES:.1.in=.1}
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = $(man_MANS) $(man_IN_FILES) sgmldocs.make
 | 
			
		||||
subdir = doc
 | 
			
		||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 | 
			
		||||
CONFIG_CLEAN_FILES =
 | 
			
		||||
DIST_SOURCES =
 | 
			
		||||
 | 
			
		||||
NROFF = nroff
 | 
			
		||||
MANS = $(man_MANS)
 | 
			
		||||
 | 
			
		||||
RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
 | 
			
		||||
	uninstall-info-recursive all-recursive install-data-recursive \
 | 
			
		||||
	install-exec-recursive installdirs-recursive install-recursive \
 | 
			
		||||
	uninstall-recursive check-recursive installcheck-recursive
 | 
			
		||||
DIST_COMMON = Makefile.am Makefile.in
 | 
			
		||||
DIST_SUBDIRS = $(SUBDIRS)
 | 
			
		||||
all: all-recursive
 | 
			
		||||
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 | 
			
		||||
	cd $(top_srcdir) && \
 | 
			
		||||
	  $(AUTOMAKE) --gnu  doc/Makefile
 | 
			
		||||
Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
 | 
			
		||||
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
 | 
			
		||||
uninstall-info-am:
 | 
			
		||||
 | 
			
		||||
man1dir = $(mandir)/man1
 | 
			
		||||
install-man1: $(man1_MANS) $(man_MANS)
 | 
			
		||||
	@$(NORMAL_INSTALL)
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(man1dir)
 | 
			
		||||
	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
 | 
			
		||||
	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
 | 
			
		||||
	for i in $$l2; do \
 | 
			
		||||
	  case "$$i" in \
 | 
			
		||||
	    *.1*) list="$$list $$i" ;; \
 | 
			
		||||
	  esac; \
 | 
			
		||||
	done; \
 | 
			
		||||
	for i in $$list; do \
 | 
			
		||||
	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
 | 
			
		||||
	  else file=$$i; fi; \
 | 
			
		||||
	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
 | 
			
		||||
	  case "$$ext" in \
 | 
			
		||||
	    1*) ;; \
 | 
			
		||||
	    *) ext='1' ;; \
 | 
			
		||||
	  esac; \
 | 
			
		||||
	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
 | 
			
		||||
	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
 | 
			
		||||
	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
 | 
			
		||||
	  echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
 | 
			
		||||
	  $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
 | 
			
		||||
	done
 | 
			
		||||
uninstall-man1:
 | 
			
		||||
	@$(NORMAL_UNINSTALL)
 | 
			
		||||
	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
 | 
			
		||||
	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
 | 
			
		||||
	for i in $$l2; do \
 | 
			
		||||
	  case "$$i" in \
 | 
			
		||||
	    *.1*) list="$$list $$i" ;; \
 | 
			
		||||
	  esac; \
 | 
			
		||||
	done; \
 | 
			
		||||
	for i in $$list; do \
 | 
			
		||||
	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
 | 
			
		||||
	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
 | 
			
		||||
	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
 | 
			
		||||
	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
 | 
			
		||||
	  echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
 | 
			
		||||
	  rm -f $(DESTDIR)$(man1dir)/$$inst; \
 | 
			
		||||
	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):
 | 
			
		||||
	@set fnord $$MAKEFLAGS; amf=$$2; \
 | 
			
		||||
	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) \
 | 
			
		||||
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 | 
			
		||||
	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:
 | 
			
		||||
	@set fnord $$MAKEFLAGS; amf=$$2; \
 | 
			
		||||
	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) \
 | 
			
		||||
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 | 
			
		||||
	done && test -z "$$fail"
 | 
			
		||||
tags-recursive:
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
ETAGS = etags
 | 
			
		||||
ETAGSFLAGS =
 | 
			
		||||
 | 
			
		||||
tags: TAGS
 | 
			
		||||
 | 
			
		||||
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-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 | 
			
		||||
		$(TAGS_FILES) $(LISP)
 | 
			
		||||
	tags=; \
 | 
			
		||||
	here=`pwd`; \
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  if test "$$subdir" = .; then :; else \
 | 
			
		||||
	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	done; \
 | 
			
		||||
	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; }'`; \
 | 
			
		||||
	test -z "$(ETAGS_ARGS)$$tags$$unique" \
 | 
			
		||||
	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_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
 | 
			
		||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 | 
			
		||||
 | 
			
		||||
top_distdir = ..
 | 
			
		||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 | 
			
		||||
 | 
			
		||||
distdir: $(DISTFILES)
 | 
			
		||||
	@list='$(DISTFILES)'; for file in $$list; do \
 | 
			
		||||
	  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"; \
 | 
			
		||||
	    $(mkinstalldirs) "$(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='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  if test "$$subdir" = .; then :; else \
 | 
			
		||||
	    test -d $(distdir)/$$subdir \
 | 
			
		||||
	    || mkdir $(distdir)/$$subdir \
 | 
			
		||||
	    || exit 1; \
 | 
			
		||||
	    (cd $$subdir && \
 | 
			
		||||
	      $(MAKE) $(AM_MAKEFLAGS) \
 | 
			
		||||
	        top_distdir="$(top_distdir)" \
 | 
			
		||||
	        distdir=../$(distdir)/$$subdir \
 | 
			
		||||
	        distdir) \
 | 
			
		||||
	      || exit 1; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	done
 | 
			
		||||
check-am: all-am
 | 
			
		||||
check: check-recursive
 | 
			
		||||
all-am: Makefile $(MANS)
 | 
			
		||||
installdirs: installdirs-recursive
 | 
			
		||||
installdirs-am:
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(man1dir)
 | 
			
		||||
 | 
			
		||||
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_STRIP_FLAG=-s \
 | 
			
		||||
	  `test -z '$(STRIP)' || \
 | 
			
		||||
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 | 
			
		||||
mostlyclean-generic:
 | 
			
		||||
 | 
			
		||||
clean-generic:
 | 
			
		||||
 | 
			
		||||
distclean-generic:
 | 
			
		||||
	-rm -f Makefile $(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 mostlyclean-am
 | 
			
		||||
 | 
			
		||||
distclean: distclean-recursive
 | 
			
		||||
 | 
			
		||||
distclean-am: clean-am distclean-generic distclean-tags
 | 
			
		||||
 | 
			
		||||
dvi: dvi-recursive
 | 
			
		||||
 | 
			
		||||
dvi-am:
 | 
			
		||||
 | 
			
		||||
info: info-recursive
 | 
			
		||||
 | 
			
		||||
info-am:
 | 
			
		||||
 | 
			
		||||
install-data-am: install-man
 | 
			
		||||
 | 
			
		||||
install-exec-am:
 | 
			
		||||
 | 
			
		||||
install-info: install-info-recursive
 | 
			
		||||
 | 
			
		||||
install-man: install-man1
 | 
			
		||||
 | 
			
		||||
installcheck-am:
 | 
			
		||||
 | 
			
		||||
maintainer-clean: maintainer-clean-recursive
 | 
			
		||||
 | 
			
		||||
maintainer-clean-am: distclean-am maintainer-clean-generic
 | 
			
		||||
 | 
			
		||||
mostlyclean: mostlyclean-recursive
 | 
			
		||||
 | 
			
		||||
mostlyclean-am: mostlyclean-generic
 | 
			
		||||
 | 
			
		||||
uninstall-am: uninstall-info-am uninstall-man
 | 
			
		||||
 | 
			
		||||
uninstall-info: uninstall-info-recursive
 | 
			
		||||
 | 
			
		||||
uninstall-man: uninstall-man1
 | 
			
		||||
 | 
			
		||||
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
 | 
			
		||||
	clean-generic clean-recursive distclean distclean-generic \
 | 
			
		||||
	distclean-recursive distclean-tags distdir dvi dvi-am \
 | 
			
		||||
	dvi-recursive info info-am info-recursive install install-am \
 | 
			
		||||
	install-data install-data-am install-data-recursive \
 | 
			
		||||
	install-exec install-exec-am install-exec-recursive \
 | 
			
		||||
	install-info install-info-am install-info-recursive install-man \
 | 
			
		||||
	install-man1 install-recursive install-strip installcheck \
 | 
			
		||||
	installcheck-am installdirs installdirs-am \
 | 
			
		||||
	installdirs-recursive maintainer-clean maintainer-clean-generic \
 | 
			
		||||
	maintainer-clean-recursive mostlyclean mostlyclean-generic \
 | 
			
		||||
	mostlyclean-recursive tags tags-recursive uninstall \
 | 
			
		||||
	uninstall-am uninstall-info-am uninstall-info-recursive \
 | 
			
		||||
	uninstall-man uninstall-man1 uninstall-recursive
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
gramps.1: $(top_builddir)/config.status gramps.1.in
 | 
			
		||||
	cd $(top_builddir) && CONFIG_FILES=doc/$@ $(SHELL) ./config.status
 | 
			
		||||
# 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:
 | 
			
		||||
							
								
								
									
										10
									
								
								doc/extending-gramps/C/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,10 @@
 | 
			
		||||
SGML_FILES = 
 | 
			
		||||
 | 
			
		||||
figs = 
 | 
			
		||||
 | 
			
		||||
docname = extending-gramps
 | 
			
		||||
lang = C
 | 
			
		||||
omffile = extending-gramps-C.omf
 | 
			
		||||
sgml_ents = 
 | 
			
		||||
include ${top_srcdir}/doc/sgmldocs.make
 | 
			
		||||
dist-hook: app-dist-hook
 | 
			
		||||
							
								
								
									
										240
									
								
								doc/extending-gramps/C/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,240 @@
 | 
			
		||||
# Makefile.in generated by automake 1.6.3 from Makefile.am.
 | 
			
		||||
# @configure_input@
 | 
			
		||||
 | 
			
		||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 | 
			
		||||
# 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@
 | 
			
		||||
SHELL = @SHELL@
 | 
			
		||||
 | 
			
		||||
srcdir = @srcdir@
 | 
			
		||||
top_srcdir = @top_srcdir@
 | 
			
		||||
VPATH = @srcdir@
 | 
			
		||||
prefix = @prefix@
 | 
			
		||||
exec_prefix = @exec_prefix@
 | 
			
		||||
 | 
			
		||||
bindir = @bindir@
 | 
			
		||||
sbindir = @sbindir@
 | 
			
		||||
libexecdir = @libexecdir@
 | 
			
		||||
datadir = @datadir@
 | 
			
		||||
sysconfdir = @sysconfdir@
 | 
			
		||||
sharedstatedir = @sharedstatedir@
 | 
			
		||||
localstatedir = @localstatedir@
 | 
			
		||||
libdir = @libdir@
 | 
			
		||||
infodir = @infodir@
 | 
			
		||||
mandir = @mandir@
 | 
			
		||||
includedir = @includedir@
 | 
			
		||||
oldincludedir = /usr/include
 | 
			
		||||
pkgdatadir = $(datadir)/@PACKAGE@
 | 
			
		||||
pkglibdir = $(libdir)/@PACKAGE@
 | 
			
		||||
pkgincludedir = $(includedir)/@PACKAGE@
 | 
			
		||||
top_builddir = ../../..
 | 
			
		||||
 | 
			
		||||
ACLOCAL = @ACLOCAL@
 | 
			
		||||
AUTOCONF = @AUTOCONF@
 | 
			
		||||
AUTOMAKE = @AUTOMAKE@
 | 
			
		||||
AUTOHEADER = @AUTOHEADER@
 | 
			
		||||
 | 
			
		||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 | 
			
		||||
INSTALL = @INSTALL@
 | 
			
		||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
 | 
			
		||||
INSTALL_DATA = @INSTALL_DATA@
 | 
			
		||||
install_sh_DATA = $(install_sh) -c -m 644
 | 
			
		||||
install_sh_PROGRAM = $(install_sh) -c
 | 
			
		||||
install_sh_SCRIPT = $(install_sh) -c
 | 
			
		||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
 | 
			
		||||
INSTALL_HEADER = $(INSTALL_DATA)
 | 
			
		||||
transform = @program_transform_name@
 | 
			
		||||
NORMAL_INSTALL = :
 | 
			
		||||
PRE_INSTALL = :
 | 
			
		||||
POST_INSTALL = :
 | 
			
		||||
NORMAL_UNINSTALL = :
 | 
			
		||||
PRE_UNINSTALL = :
 | 
			
		||||
POST_UNINSTALL = :
 | 
			
		||||
 | 
			
		||||
EXEEXT = @EXEEXT@
 | 
			
		||||
OBJEXT = @OBJEXT@
 | 
			
		||||
PATH_SEPARATOR = @PATH_SEPARATOR@
 | 
			
		||||
AMTAR = @AMTAR@
 | 
			
		||||
AWK = @AWK@
 | 
			
		||||
BINSH = @BINSH@
 | 
			
		||||
CC = @CC@
 | 
			
		||||
DEPDIR = @DEPDIR@
 | 
			
		||||
DISABLE_SCROLLKEEPER = @DISABLE_SCROLLKEEPER@
 | 
			
		||||
GNOMEHELP = @GNOMEHELP@
 | 
			
		||||
HAVE_GNOME_CONFIG = @HAVE_GNOME_CONFIG@
 | 
			
		||||
HAVE_JW = @HAVE_JW@
 | 
			
		||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 | 
			
		||||
INTLLIBS = @INTLLIBS@
 | 
			
		||||
JW = @JW@
 | 
			
		||||
LANGUAGES = @LANGUAGES@
 | 
			
		||||
LIBS = @LIBS@
 | 
			
		||||
MOFILES = @MOFILES@
 | 
			
		||||
MSGFMT = @MSGFMT@
 | 
			
		||||
P15_INCLUDES = @P15_INCLUDES@
 | 
			
		||||
P20_INCLUDES = @P20_INCLUDES@
 | 
			
		||||
P21_INCLUDES = @P21_INCLUDES@
 | 
			
		||||
P22_INCLUDES = @P22_INCLUDES@
 | 
			
		||||
PACKAGE = @PACKAGE@
 | 
			
		||||
POFILES = @POFILES@
 | 
			
		||||
PYTHON = @PYTHON@
 | 
			
		||||
PYTHON22 = @PYTHON22@
 | 
			
		||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 | 
			
		||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
 | 
			
		||||
PYTHON_PREFIX = @PYTHON_PREFIX@
 | 
			
		||||
PYTHON_VERSION = @PYTHON_VERSION@
 | 
			
		||||
RELEASE = @RELEASE@
 | 
			
		||||
SCROLLKEEPER_CONFIG = @SCROLLKEEPER_CONFIG@
 | 
			
		||||
SCROLLKEEPER_REQUIRED = @SCROLLKEEPER_REQUIRED@
 | 
			
		||||
STRIP = @STRIP@
 | 
			
		||||
VERSION = @VERSION@
 | 
			
		||||
VERSIONSTRING = @VERSIONSTRING@
 | 
			
		||||
ZIP = @ZIP@
 | 
			
		||||
am__include = @am__include@
 | 
			
		||||
am__quote = @am__quote@
 | 
			
		||||
install_sh = @install_sh@
 | 
			
		||||
pkgpyexecdir = @pkgpyexecdir@
 | 
			
		||||
pkgpythondir = @pkgpythondir@
 | 
			
		||||
pyexecdir = @pyexecdir@
 | 
			
		||||
pythondir = @pythondir@
 | 
			
		||||
SGML_FILES = 
 | 
			
		||||
 | 
			
		||||
figs = 
 | 
			
		||||
 | 
			
		||||
docname = extending-gramps
 | 
			
		||||
lang = C
 | 
			
		||||
omffile = extending-gramps-C.omf
 | 
			
		||||
sgml_ents = 
 | 
			
		||||
subdir = doc/extending-gramps/C
 | 
			
		||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 | 
			
		||||
CONFIG_CLEAN_FILES =
 | 
			
		||||
DIST_SOURCES =
 | 
			
		||||
DIST_COMMON = Makefile.am Makefile.in
 | 
			
		||||
all: all-am
 | 
			
		||||
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 | 
			
		||||
	cd $(top_srcdir) && \
 | 
			
		||||
	  $(AUTOMAKE) --gnu  doc/extending-gramps/C/Makefile
 | 
			
		||||
Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
 | 
			
		||||
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
 | 
			
		||||
uninstall-info-am:
 | 
			
		||||
tags: TAGS
 | 
			
		||||
TAGS:
 | 
			
		||||
 | 
			
		||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 | 
			
		||||
 | 
			
		||||
top_distdir = ../../..
 | 
			
		||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 | 
			
		||||
 | 
			
		||||
distdir: $(DISTFILES)
 | 
			
		||||
	@list='$(DISTFILES)'; for file in $$list; do \
 | 
			
		||||
	  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"; \
 | 
			
		||||
	    $(mkinstalldirs) "$(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
 | 
			
		||||
	$(MAKE) $(AM_MAKEFLAGS) \
 | 
			
		||||
	  top_distdir="${top_distdir}" distdir="$(distdir)" \
 | 
			
		||||
	  dist-hook
 | 
			
		||||
check-am: all-am
 | 
			
		||||
check: check-am
 | 
			
		||||
all-am: Makefile
 | 
			
		||||
 | 
			
		||||
installdirs:
 | 
			
		||||
 | 
			
		||||
install: install-am
 | 
			
		||||
install-exec: install-exec-am
 | 
			
		||||
install-data: install-data-am
 | 
			
		||||
uninstall: uninstall-am
 | 
			
		||||
 | 
			
		||||
install-am: all-am
 | 
			
		||||
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 | 
			
		||||
 | 
			
		||||
installcheck: installcheck-am
 | 
			
		||||
install-strip:
 | 
			
		||||
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | 
			
		||||
	  INSTALL_STRIP_FLAG=-s \
 | 
			
		||||
	  `test -z '$(STRIP)' || \
 | 
			
		||||
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 | 
			
		||||
mostlyclean-generic:
 | 
			
		||||
 | 
			
		||||
clean-generic:
 | 
			
		||||
 | 
			
		||||
distclean-generic:
 | 
			
		||||
	-rm -f Makefile $(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-am
 | 
			
		||||
 | 
			
		||||
clean-am: clean-generic mostlyclean-am
 | 
			
		||||
 | 
			
		||||
distclean: distclean-am
 | 
			
		||||
 | 
			
		||||
distclean-am: clean-am distclean-generic
 | 
			
		||||
 | 
			
		||||
dvi: dvi-am
 | 
			
		||||
 | 
			
		||||
dvi-am:
 | 
			
		||||
 | 
			
		||||
info: info-am
 | 
			
		||||
 | 
			
		||||
info-am:
 | 
			
		||||
 | 
			
		||||
install-data-am:
 | 
			
		||||
 | 
			
		||||
install-exec-am:
 | 
			
		||||
 | 
			
		||||
install-info: install-info-am
 | 
			
		||||
 | 
			
		||||
install-man:
 | 
			
		||||
 | 
			
		||||
installcheck-am:
 | 
			
		||||
 | 
			
		||||
maintainer-clean: maintainer-clean-am
 | 
			
		||||
 | 
			
		||||
maintainer-clean-am: distclean-am maintainer-clean-generic
 | 
			
		||||
 | 
			
		||||
mostlyclean: mostlyclean-am
 | 
			
		||||
 | 
			
		||||
mostlyclean-am: mostlyclean-generic
 | 
			
		||||
 | 
			
		||||
uninstall-am: uninstall-info-am
 | 
			
		||||
 | 
			
		||||
.PHONY: all all-am check check-am clean clean-generic distclean \
 | 
			
		||||
	distclean-generic distdir dvi dvi-am info info-am install \
 | 
			
		||||
	install-am install-data install-data-am install-exec \
 | 
			
		||||
	install-exec-am install-info install-info-am install-man \
 | 
			
		||||
	install-strip installcheck installcheck-am installdirs \
 | 
			
		||||
	maintainer-clean maintainer-clean-generic mostlyclean \
 | 
			
		||||
	mostlyclean-generic uninstall uninstall-am uninstall-info-am
 | 
			
		||||
 | 
			
		||||
include ${top_srcdir}/doc/sgmldocs.make
 | 
			
		||||
dist-hook: app-dist-hook
 | 
			
		||||
# 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:
 | 
			
		||||
							
								
								
									
										14
									
								
								doc/extending-gramps/C/extending-gramps-C.omf
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
			
		||||
<?xml version="1.0" standalone="no"?>
 | 
			
		||||
<omf>
 | 
			
		||||
  <resource>
 | 
			
		||||
    <title>
 | 
			
		||||
      Writing GRAMPS Extensions
 | 
			
		||||
    </title>
 | 
			
		||||
    <subject>
 | 
			
		||||
      <category>GNOME|Applications</category>
 | 
			
		||||
    </subject>
 | 
			
		||||
    <format mime="text/sgml"/>
 | 
			
		||||
    <identifier url="extending-gramps.sgml"/>
 | 
			
		||||
    <language code="C"/>
 | 
			
		||||
  </resource>
 | 
			
		||||
</omf>
 | 
			
		||||
							
								
								
									
										774
									
								
								doc/extending-gramps/C/extending-gramps.sgml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,774 @@
 | 
			
		||||
<!DOCTYPE article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
 | 
			
		||||
<!ENTITY version "0.5.0"> <!-- replace with application version -->
 | 
			
		||||
]>
 | 
			
		||||
 | 
			
		||||
<!-- =============Document Header ============================= -->
 | 
			
		||||
 | 
			
		||||
<article id="index"> <!-- please do not change the id -->
 | 
			
		||||
 | 
			
		||||
  <artheader>
 | 
			
		||||
    <title>Writing Extentions for gramps</title>
 | 
			
		||||
    <copyright>
 | 
			
		||||
      <year>2001</year>
 | 
			
		||||
      <holder>Donald N. Allingham</holder>
 | 
			
		||||
    </copyright>
 | 
			
		||||
 | 
			
		||||
  <!-- translators: uncomment this:
 | 
			
		||||
 | 
			
		||||
  <copyright>
 | 
			
		||||
   <year>2001</year>
 | 
			
		||||
   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
 | 
			
		||||
  </copyright>
 | 
			
		||||
 | 
			
		||||
   -->
 | 
			
		||||
 | 
			
		||||
  <!-- do not put authorname in the header except in copyright - use
 | 
			
		||||
  section "authors" below -->
 | 
			
		||||
 | 
			
		||||
  <!-- Use this legal notice for online documents which depend on -->
 | 
			
		||||
  <!-- core GNOME packages.                                       -->
 | 
			
		||||
  <legalnotice id="legalnotice">
 | 
			
		||||
    <para>
 | 
			
		||||
    Permission is granted to copy, distribute and/or modify this
 | 
			
		||||
    document under the terms of the <ulink type="help"
 | 
			
		||||
    url="gnome-help:fdl"><citetitle>GNU Free Documentation
 | 
			
		||||
    License</citetitle></ulink>, Version 1.1 or any later version
 | 
			
		||||
    published by the Free Software Foundation with no Invariant
 | 
			
		||||
    Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy
 | 
			
		||||
    of the license can be found <ulink type="help"
 | 
			
		||||
    url="gnome-help:fdl">here</ulink>.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    Many of the names used by companies to distinguish their products
 | 
			
		||||
    and services are claimed as trademarks. Where those names appear
 | 
			
		||||
    in any GNOME documentation, and those trademarks are made aware to
 | 
			
		||||
    the members of the GNOME Documentation Project, the names have
 | 
			
		||||
    been printed in caps or initial caps.
 | 
			
		||||
    </para>
 | 
			
		||||
  </legalnotice>
 | 
			
		||||
 | 
			
		||||
  <!-- Use this legal notice for documents which are placed on  -->
 | 
			
		||||
  <!-- the web, shipped in any way other than online documents  -->
 | 
			
		||||
  <!-- (eg. PS, PDF, or RTF), or which do not depend on the     -->
 | 
			
		||||
  <!-- core GNOME distribution.                                 -->
 | 
			
		||||
  <!--                                                          -->
 | 
			
		||||
  <!-- If you use this version, you must place the following    -->
 | 
			
		||||
  <!-- line in the document declaration at the top of your      -->
 | 
			
		||||
  <!-- document:                                                -->
 | 
			
		||||
  <!--   <!ENTITY FDL SYSTEM "fdl.sgml">                        -->
 | 
			
		||||
  <!-- and the following line at the bottom of your document    -->
 | 
			
		||||
  <!-- after the last </sect1>.                                 -->
 | 
			
		||||
  <!--   &FDL;                                                  -->
 | 
			
		||||
  <!--
 | 
			
		||||
  <legalnotice id="legalnotice">
 | 
			
		||||
    <para>
 | 
			
		||||
    Permission is granted to copy, distribute and/or modify this
 | 
			
		||||
    document under the terms of the <link linkend="fdl"><citetitle>GNU
 | 
			
		||||
    Free Documentation License</citetitle></link>, Version 1.1 or any
 | 
			
		||||
    later version published by the Free Software Foundation with no
 | 
			
		||||
    Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
 | 
			
		||||
    A copy of the license can be found in <xref linkend="fdl">.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    Many of the names used by companies to distinguish their products
 | 
			
		||||
    and services are claimed as trademarks. Where those names appear
 | 
			
		||||
    in any GNOME documentation, and those trademarks are made aware to
 | 
			
		||||
    the members of the GNOME Documentation Project, the names have
 | 
			
		||||
    been printed in caps or initial caps.
 | 
			
		||||
    </para>
 | 
			
		||||
  </legalnotice>
 | 
			
		||||
  -->
 | 
			
		||||
 | 
			
		||||
  <!-- This is the manual version, not application version. --> 
 | 
			
		||||
    <releaseinfo>
 | 
			
		||||
       This is version 1.0 of the Writing Extentions for gramps manual.
 | 
			
		||||
    </releaseinfo>
 | 
			
		||||
 | 
			
		||||
  </artheader>
 | 
			
		||||
 | 
			
		||||
<!-- ============= Introduction ============================== -->
 | 
			
		||||
  <sect1 id="intro">
 | 
			
		||||
    <title>Introduction</title>
 | 
			
		||||
    <para>
 | 
			
		||||
    <application>gramps</application> was intended from the start to
 | 
			
		||||
    allow the user to extend it through a plugin system. Five types of
 | 
			
		||||
    plugins are supported - filters, reports, tools, import filters,
 | 
			
		||||
    and export filters. In a way, an export filter can be viewed as a
 | 
			
		||||
    special type of report, and an import filter can be viewed as a
 | 
			
		||||
    special type of tool.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    All plugins are written in the <application>python</application>
 | 
			
		||||
    language.
 | 
			
		||||
    </para>
 | 
			
		||||
    <sect2 id="intro-filter">
 | 
			
		||||
      <title>Filters</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      A filter is a plugin that be used to temporarily display or hide
 | 
			
		||||
      individuals in the <interface>People View</interface>. The
 | 
			
		||||
      filter is the simplest form of plugin, which only needs to
 | 
			
		||||
      determine if a person meets or fails to meet its criteria. It
 | 
			
		||||
      operates on a single person at a time.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      Filters should never alter a database.
 | 
			
		||||
      </para>
 | 
			
		||||
    </sect2>
 | 
			
		||||
    <sect2 id="intro-report">
 | 
			
		||||
      <title>Reports</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      A report is a plugin that generates output. The output may be in
 | 
			
		||||
      either a interactive, graphical form, or as an output
 | 
			
		||||
      file. Report plugins are passed a reference to the internal
 | 
			
		||||
      database and a reference to the active person, which allows the
 | 
			
		||||
      plugn to operate on a single person, the entire database, or
 | 
			
		||||
      anything in between.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      Plugins that conform to the reportplugin interface appear in the
 | 
			
		||||
        <menuchoice>
 | 
			
		||||
          <guimenu>Reports</guimenu>
 | 
			
		||||
        </menuchoice>
 | 
			
		||||
      menu and in the <interface>Report Selection</interface> dialog
 | 
			
		||||
      box.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      A report should never alter the database.
 | 
			
		||||
      </para>
 | 
			
		||||
    </sect2>
 | 
			
		||||
    <sect2 id="intro-tool">
 | 
			
		||||
      <title>Tools</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      A tool is a plugin that alters the database. It may perform
 | 
			
		||||
      something as small changing the case of some text to something
 | 
			
		||||
      as complex as merging redundant individuals. Tools plugins are
 | 
			
		||||
      passed a reference to the internal database, the active person,
 | 
			
		||||
      and a callback function. The callback function is used to notify
 | 
			
		||||
      the main program if it needs to update the display with any
 | 
			
		||||
      modified information.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      Plugins that conform to the tool plugin interface appear in the
 | 
			
		||||
        <menuchoice>
 | 
			
		||||
          <guimenu>Tools</guimenu>
 | 
			
		||||
        </menuchoice>
 | 
			
		||||
      menu and in the <interface>Tool Selection</interface> dialog
 | 
			
		||||
      box.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      A tool is allowed (and usually expected) to alter the database.
 | 
			
		||||
      </para>
 | 
			
		||||
    </sect2>
 | 
			
		||||
    <sect2 id="intro-import">
 | 
			
		||||
      <title>Import Filters</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      An import filter is a plugin that adds information from another
 | 
			
		||||
      source to the database. It is similar to a tool, but is called
 | 
			
		||||
      differently to allow gramps to distinguish it from a tool.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      Plugins that conform to the import filter calling syntax appear
 | 
			
		||||
      in the
 | 
			
		||||
        <menuchoice>
 | 
			
		||||
          <guimenu>File</guimenu>
 | 
			
		||||
          <guisubmenu>Import</guisubmenu>
 | 
			
		||||
        </menuchoice>
 | 
			
		||||
      menu.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      An import filter is allowed to modify the database.
 | 
			
		||||
      </para>
 | 
			
		||||
    </sect2>
 | 
			
		||||
    <sect2 id="intro-export">
 | 
			
		||||
      <title>Export Filters</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      An export filter is a plugin that translates the gramps database
 | 
			
		||||
      into the format expected by another program. Since it generates
 | 
			
		||||
      an output file, it is similar to a report generator. However,
 | 
			
		||||
      its calling syntax is different, so that gramps knows how to
 | 
			
		||||
      distiguish it from a report generator.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      Plugins that conform to the export filter calling syntax appear
 | 
			
		||||
      in the
 | 
			
		||||
        <menuchoice>
 | 
			
		||||
          <guimenu>File</guimenu>
 | 
			
		||||
          <guisubmenu>Export</guisubmenu>
 | 
			
		||||
        </menuchoice>
 | 
			
		||||
      menu.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      An export filter should not alter the database.
 | 
			
		||||
      </para>
 | 
			
		||||
    </sect2>
 | 
			
		||||
  </sect1>
 | 
			
		||||
 | 
			
		||||
<!-- ============= Writing Filters ============================= -->
 | 
			
		||||
 | 
			
		||||
  <sect1 id="writingfilters">
 | 
			
		||||
    <title>Writing Filters</title>
 | 
			
		||||
    <para>
 | 
			
		||||
    Users can create their own filters and add them to
 | 
			
		||||
    <application>gramps</application>.  By adding the filter to the
 | 
			
		||||
    user's private filter directory (<filename
 | 
			
		||||
    class="directory">~/.gramps/filters</filename>), the filter will
 | 
			
		||||
    be automatically recognized the next time that the program is
 | 
			
		||||
    started.
 | 
			
		||||
    </para>
 | 
			
		||||
    <sect2 id="createfilter">
 | 
			
		||||
      <title>Creating a filter</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      Each filter is a class derived from the
 | 
			
		||||
      <function>Filter.Filter</function> class.  The
 | 
			
		||||
      <function>__init__</function> task may be overridden, but if so,
 | 
			
		||||
      should call the <function>__init__</function> function on the
 | 
			
		||||
      <function>Filter.Filter</function> class.  The parent class
 | 
			
		||||
      provides the variable <function>self.text</function>, which
 | 
			
		||||
      contains the text string passed as the qualifier.  This string
 | 
			
		||||
      provides additional information provided by the user. For
 | 
			
		||||
      example, if the filter is used to match names, the qualifier
 | 
			
		||||
      would be used to provide the name that is being compared
 | 
			
		||||
      against.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      All filter classes must define a <function>match</function>
 | 
			
		||||
      function. The function takes one argument (other than
 | 
			
		||||
      <function>self</function>), which is an object of type
 | 
			
		||||
      <function>Person</function> to compare against. The function
 | 
			
		||||
      should return a 1 if the person matches the filter, or a zero if
 | 
			
		||||
      the person does not.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      Each filter must be registered, so that
 | 
			
		||||
      <application>gramps</application> knows about it. This is
 | 
			
		||||
      accomplished by calling the
 | 
			
		||||
      <function>Filter.register_filter</function> function. This
 | 
			
		||||
      function takes three arguments - the filter class, a
 | 
			
		||||
      description, and flag that indicates if the qualifier string is
 | 
			
		||||
      needed. The description string appears in the pull down
 | 
			
		||||
      interface within <application>gramps</application>, and helps
 | 
			
		||||
      the user choose the appropriate filter. The qualifier flag tells
 | 
			
		||||
      <application>gramps</application> whether or not the filter
 | 
			
		||||
      needs a qualifier string. If this flag is 0,
 | 
			
		||||
      <application>gramps</application> will disable the entry of a
 | 
			
		||||
      qualifier string.
 | 
			
		||||
      </para>
 | 
			
		||||
      <figure id="filtersrc">
 | 
			
		||||
        <title>Sample filter implementation</title>
 | 
			
		||||
        <programlisting>
 | 
			
		||||
 | 
			
		||||
import Filter
 | 
			
		||||
import string
 | 
			
		||||
 | 
			
		||||
# class definition
 | 
			
		||||
 | 
			
		||||
class SubString(Filter.Filter):
 | 
			
		||||
 | 
			
		||||
    def match(self,person):
 | 
			
		||||
        name = person.getPrimaryName().getName()
 | 
			
		||||
        return string.find(name,self.text) >= 0
 | 
			
		||||
 | 
			
		||||
Filter.register_filter(SubString,
 | 
			
		||||
                       description="Names that contain a substring",
 | 
			
		||||
	               qualifier=1)
 | 
			
		||||
 | 
			
		||||
        </programlisting>
 | 
			
		||||
      </figure>
 | 
			
		||||
    </sect2>
 | 
			
		||||
  </sect1>
 | 
			
		||||
 | 
			
		||||
<!-- ============= Writing Reports ============================= -->
 | 
			
		||||
 | 
			
		||||
  <sect1 id="writingreports">
 | 
			
		||||
    <title>Writing Reports</title>
 | 
			
		||||
    <para>
 | 
			
		||||
    Users can create their own report generators and add them to
 | 
			
		||||
    <application>gramps</application>.  By adding the report generator
 | 
			
		||||
    to the user's private plugin directory (<filename
 | 
			
		||||
    class="directory">~/.gramps/plugins</filename>), the report
 | 
			
		||||
    generator will be automatically recognized the next time that the
 | 
			
		||||
    program is started.
 | 
			
		||||
    </para>
 | 
			
		||||
    <sect2 id="createreport">
 | 
			
		||||
      <title>Creating a report generator</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      Fewer restrictions are made on report generators than on
 | 
			
		||||
      filters.  The report generator is passed the current
 | 
			
		||||
      <application>gramps</application> database and the active
 | 
			
		||||
      person.  The generator needs to take special care to make sure
 | 
			
		||||
      that it does not alter the database in anyway.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      A report generator is a function that takes two arguments
 | 
			
		||||
      — a database (of type <function>RelDataBase</function>)
 | 
			
		||||
      and the currently selected person (of type
 | 
			
		||||
      <function>Person</function>). When called, this task should
 | 
			
		||||
      generate the desired report.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      This function's implementation can be as simple as generating
 | 
			
		||||
      output without the user's intervention, or it could display a
 | 
			
		||||
      graphical interface to allow the user to select options and
 | 
			
		||||
      customize a report.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      As with filters, the report generator must be registered before
 | 
			
		||||
      <application>gramps</application> will understand it. The report
 | 
			
		||||
      generator is registered using the
 | 
			
		||||
      <function>Plugins.register_report</function>. This function
 | 
			
		||||
      takes five arguments.
 | 
			
		||||
      </para>
 | 
			
		||||
      <itemizedlist>
 | 
			
		||||
        <listitem>
 | 
			
		||||
	  <para>
 | 
			
		||||
	  <guilabel>The report generation task</guilabel> This task
 | 
			
		||||
	  that generates the report.
 | 
			
		||||
	  </para>
 | 
			
		||||
	</listitem>
 | 
			
		||||
	<listitem>
 | 
			
		||||
	  <para>
 | 
			
		||||
	  <guilabel>The report category</guilabel> The category in
 | 
			
		||||
	  which the report is grouped in the
 | 
			
		||||
	  <menuchoice><guimenu>Reports</guimenu></menuchoice> menu and
 | 
			
		||||
	  in the <interface>Report Selection</interface> dialog.
 | 
			
		||||
	  </para>
 | 
			
		||||
	</listitem>
 | 
			
		||||
	<listitem>
 | 
			
		||||
	  <para>
 | 
			
		||||
	  <guilabel>The report name</guilabel>
 | 
			
		||||
	  The name of the report.
 | 
			
		||||
	  </para>
 | 
			
		||||
	</listitem>
 | 
			
		||||
	<listitem>
 | 
			
		||||
	  <para>
 | 
			
		||||
	  <guilabel>A text description of the report</guilabel> The
 | 
			
		||||
	  description appears in the report selection tool to provide
 | 
			
		||||
	  the user with a description of what the tools does.
 | 
			
		||||
	  </para>
 | 
			
		||||
	</listitem>
 | 
			
		||||
	<listitem>
 | 
			
		||||
	  <para>
 | 
			
		||||
	  <guilabel>A graphic logo in XPM format</guilabel> This may
 | 
			
		||||
	  be either a path to a filename, or a list of strings
 | 
			
		||||
	  containting the XPM data. If a filename is specified, care
 | 
			
		||||
	  must be taken to make sure the file location is relocatable
 | 
			
		||||
	  and can be determined at runtime.
 | 
			
		||||
	  </para>
 | 
			
		||||
	</listitem>
 | 
			
		||||
      </itemizedlist> 
 | 
			
		||||
      <para>
 | 
			
		||||
      While only the task and report name are required, it is
 | 
			
		||||
      recommended to provide all five parameters.
 | 
			
		||||
      </para>
 | 
			
		||||
      <figure id="reportsrc">
 | 
			
		||||
        <title>Sample report implementation</title>
 | 
			
		||||
        <programlisting>
 | 
			
		||||
 | 
			
		||||
import Plugins
 | 
			
		||||
 | 
			
		||||
def report(database,person):
 | 
			
		||||
   ... actual code ...
 | 
			
		||||
 | 
			
		||||
Plugins.register_report(
 | 
			
		||||
    task=report,
 | 
			
		||||
    category="Category",
 | 
			
		||||
    name="Report Name",
 | 
			
		||||
    description="A text descripition of the report generator",
 | 
			
		||||
    xpm="%s/myfile.xpm" % os.path.dirname(__file__)
 | 
			
		||||
)
 | 
			
		||||
        </programlisting>
 | 
			
		||||
      </figure>
 | 
			
		||||
    </sect2>
 | 
			
		||||
    <sect2 id="alittlehelp">
 | 
			
		||||
      <title>A little help - Format Interfaces</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      <application>gramps</application> provides some help with
 | 
			
		||||
      writing reports.  Several generic python classes exist that aid
 | 
			
		||||
      in the writing of report generators.  These classes provide an
 | 
			
		||||
      abstract interface for a type of document, such as a drawing,
 | 
			
		||||
      word processor document, or a spreadsheet.  From these core
 | 
			
		||||
      classes, <application>gramps</application> derives interfaces to
 | 
			
		||||
      various document formats.  This means that by coding to the
 | 
			
		||||
      generic word processing class (<function>TextDoc</function>), a
 | 
			
		||||
      report generator can instant access to multiple file formats
 | 
			
		||||
      (such as HTML, OpenOffice, and AbiWord).
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      This scheme of deriving a output format from a generic base
 | 
			
		||||
      class also makes it easier to add new formats. Creating a new
 | 
			
		||||
      derivied class targeting a different format (such as
 | 
			
		||||
      <application>KWord</application> or
 | 
			
		||||
      <application>LaTeX</application>) makes it easy for existing
 | 
			
		||||
      report generators to use the new formats.
 | 
			
		||||
      </para>
 | 
			
		||||
    </sect2>
 | 
			
		||||
  </sect1>
 | 
			
		||||
 | 
			
		||||
<!-- ============= Writing Tools ============================= -->
 | 
			
		||||
 | 
			
		||||
  <sect1 id="writingtools">
 | 
			
		||||
    <title>Writing Tools</title>
 | 
			
		||||
    <para>
 | 
			
		||||
    Users can create their own tools and add them to
 | 
			
		||||
    <application>gramps</application>.  By adding the tool to the
 | 
			
		||||
    user's private plugin directory (<filename
 | 
			
		||||
    class="directory">~/.gramps/plugins</filename>), the tool will be
 | 
			
		||||
    automatically recognized the next time that
 | 
			
		||||
    <application>gramps</application> is started.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    Unlike a report generator, a tool is allowed to modify the
 | 
			
		||||
    database.  The tool is passed the current
 | 
			
		||||
    <application>gramps</application> database, the active person,
 | 
			
		||||
    and a callback function.  The callback function should be called
 | 
			
		||||
    with a non-zero argument upon completion of the tool if the
 | 
			
		||||
    database has been altered.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    As with filters and report generators, tools must be registered
 | 
			
		||||
    before <application>gramps</application> will understand it. The
 | 
			
		||||
    tool is registered using the
 | 
			
		||||
    <function>Plugins.register_tool</function>. This function takes
 | 
			
		||||
    four arguments.
 | 
			
		||||
    </para>
 | 
			
		||||
    <itemizedlist>
 | 
			
		||||
      <listitem>
 | 
			
		||||
        <para>
 | 
			
		||||
	<guilabel>The tool task</guilabel> This task
 | 
			
		||||
	that executes the tool.
 | 
			
		||||
	</para>
 | 
			
		||||
      </listitem>
 | 
			
		||||
      <listitem>
 | 
			
		||||
	<para>
 | 
			
		||||
	<guilabel>The tool category</guilabel> The category in which
 | 
			
		||||
	the tool is grouped in the
 | 
			
		||||
	<menuchoice><guimenu>Tools</guimenu></menuchoice> menu and in
 | 
			
		||||
	the <interface>Tool Selection</interface> dialog.
 | 
			
		||||
	</para>
 | 
			
		||||
      </listitem>
 | 
			
		||||
      <listitem>
 | 
			
		||||
	<para>
 | 
			
		||||
	<guilabel>The tool name</guilabel>
 | 
			
		||||
	The name of the tool.
 | 
			
		||||
	</para>
 | 
			
		||||
      </listitem>
 | 
			
		||||
      <listitem>
 | 
			
		||||
	<para>
 | 
			
		||||
	<guilabel>A text description of the tool</guilabel> The
 | 
			
		||||
	description appears in the Tool Selection dialog to provide
 | 
			
		||||
	the user with a description of what the tool does.
 | 
			
		||||
	</para>
 | 
			
		||||
      </listitem>
 | 
			
		||||
    </itemizedlist> 
 | 
			
		||||
    <para>
 | 
			
		||||
    While only the task and report name are required, it is
 | 
			
		||||
    recommended to provide all five parameters.
 | 
			
		||||
    </para>
 | 
			
		||||
    <figure id="toolsrc">
 | 
			
		||||
      <title>Sample tool implementation</title>
 | 
			
		||||
      <programlisting>
 | 
			
		||||
 | 
			
		||||
import Plugins
 | 
			
		||||
 | 
			
		||||
def tool(database,person,callback):
 | 
			
		||||
   ... actual code ...
 | 
			
		||||
   callback(1)
 | 
			
		||||
 | 
			
		||||
Plugins.register_tool(
 | 
			
		||||
    task=tool,
 | 
			
		||||
    category="Category",
 | 
			
		||||
    name="Tool Name",
 | 
			
		||||
    description="A text descripition of the tool"
 | 
			
		||||
)
 | 
			
		||||
      </programlisting>
 | 
			
		||||
    </figure>
 | 
			
		||||
  </sect1>
 | 
			
		||||
 | 
			
		||||
<!-- ============= Import Filters ============================= -->
 | 
			
		||||
 | 
			
		||||
  <sect1 id="writingimportfilters">
 | 
			
		||||
    <title>Writing Import Filters</title>
 | 
			
		||||
    <para>
 | 
			
		||||
    Import filters are similar to tools, since they are allowed to
 | 
			
		||||
    modify the databases. An import filter is a task that accepts
 | 
			
		||||
    three arguments — a database, the filename of the file that
 | 
			
		||||
    is to be imported, and a callback function.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    The database may or may not have data already in it. The import
 | 
			
		||||
    filter cannot assume that data neither already exists nor that the
 | 
			
		||||
    database is empty.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    The callback function is different from the callback function used
 | 
			
		||||
    for tools. The import filter's callback function is used to
 | 
			
		||||
    indicate progress and update the status bar during the import
 | 
			
		||||
    process. The function takes a value between 0.0 and 1.0, where 0.0
 | 
			
		||||
    represents the start of the import and 1.0 represents the
 | 
			
		||||
    completion of the import.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    As with the other plugin types, an import filter must be
 | 
			
		||||
    registered with <application>gramps</application>. This is
 | 
			
		||||
    accomplished by calling the
 | 
			
		||||
    <function>Plugins.register_import</function> task. The
 | 
			
		||||
    <function>Plugins.register_import</function> accepts two arguments
 | 
			
		||||
    — the function the performs the import and a string
 | 
			
		||||
    providing a brief description. This description is used as the
 | 
			
		||||
    menu entry under the
 | 
			
		||||
    <menuchoice>
 | 
			
		||||
      <guimenu>File</guimenu>
 | 
			
		||||
      <guisubmenu>Import</guisubmenu>
 | 
			
		||||
    </menuchoice>
 | 
			
		||||
    menu.
 | 
			
		||||
    </para>
 | 
			
		||||
    <figure id="importexample">
 | 
			
		||||
      <title>Sample Import Implementation</title>
 | 
			
		||||
      <programlisting>
 | 
			
		||||
 | 
			
		||||
import Plugins
 | 
			
		||||
 | 
			
		||||
def gedcom_import(database,filename,callback):
 | 
			
		||||
    ... actual code ...
 | 
			
		||||
 | 
			
		||||
Plugins.register_import(gedcom_import,"GEDCOM import")
 | 
			
		||||
 | 
			
		||||
      </programlisting>
 | 
			
		||||
    </figure>
 | 
			
		||||
  </sect1>
 | 
			
		||||
 | 
			
		||||
<!-- ============= Export Filters ============================= -->
 | 
			
		||||
 | 
			
		||||
  <sect1 id="writingexportfilters">
 | 
			
		||||
    <title>Writing Export Filters</title>
 | 
			
		||||
    <para>
 | 
			
		||||
    Export filters are similar to report generators. They are not
 | 
			
		||||
    allowed to modify the database. An export filter accepts three
 | 
			
		||||
    arguments — a database, the filename of the file that is to
 | 
			
		||||
    be written, and a callback function.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    The callback function is indentical from the callback function
 | 
			
		||||
    used for import filters. The export filter's callback function is
 | 
			
		||||
    used to indicate progress and update the status bar during the
 | 
			
		||||
    export process. The function takes a value between 0.0 and 1.0,
 | 
			
		||||
    where 0.0 represents the start of the export and 1.0 represents
 | 
			
		||||
    the completion of the export.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    As with the other plugin types, an export filter must be
 | 
			
		||||
    registered with <application>gramps</application>. This is
 | 
			
		||||
    accomplished by calling the
 | 
			
		||||
    <function>Plugins.register_export</function> task. The
 | 
			
		||||
    <function>Plugins.register_export</function> accepts two arguments
 | 
			
		||||
    — the function the performs the import and a string
 | 
			
		||||
    providing a brief description. This description is used as the
 | 
			
		||||
    menu entry under the
 | 
			
		||||
    <menuchoice>
 | 
			
		||||
      <guimenu>File</guimenu>
 | 
			
		||||
      <guisubmenu>Export</guisubmenu>
 | 
			
		||||
    </menuchoice>
 | 
			
		||||
    menu.
 | 
			
		||||
    </para>
 | 
			
		||||
    <figure id="exportexample">
 | 
			
		||||
      <title>Sample Export Implementation</title>
 | 
			
		||||
      <programlisting>
 | 
			
		||||
 | 
			
		||||
import Plugins
 | 
			
		||||
 | 
			
		||||
def gedcom_export(database,filename,callback):
 | 
			
		||||
    ... actual code ...
 | 
			
		||||
 | 
			
		||||
Plugins.register_export(gedcom_export,"GEDCOM export")
 | 
			
		||||
 | 
			
		||||
      </programlisting>
 | 
			
		||||
    </figure>
 | 
			
		||||
  </sect1>
 | 
			
		||||
  <sect1 id="commontasks">
 | 
			
		||||
    <title>Common tasks</title> 
 | 
			
		||||
    <para>
 | 
			
		||||
    While this manual does not document the
 | 
			
		||||
    <application>gramps</application> database interface, this section
 | 
			
		||||
    shows a few common tasks.
 | 
			
		||||
    </para>
 | 
			
		||||
    <sect2 id="gettingnames">
 | 
			
		||||
      <title>Printing names of people</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      This example shows how to display the name of people in the
 | 
			
		||||
      database. It assumes that the database is called
 | 
			
		||||
      <function>db</function>. To get a list of people, it calls the
 | 
			
		||||
      <function>getPersonMap</function> method, which returns a map of
 | 
			
		||||
      <application>gramps</application> ID to
 | 
			
		||||
      <function>Person</function> objects. Calling the
 | 
			
		||||
      <function>valus</function> method of the returned map returns a
 | 
			
		||||
      list of people. For each person, the primary name is extracted,
 | 
			
		||||
      and then the <function>Name</function> object's
 | 
			
		||||
      <function>getName</function> method is called to build a
 | 
			
		||||
      presentable name from the individual name components.
 | 
			
		||||
      </para>
 | 
			
		||||
      <figure id="displaynames">
 | 
			
		||||
        <title>Displaying names</title>
 | 
			
		||||
        <programlisting>
 | 
			
		||||
 | 
			
		||||
for person in db.getPersonMap().values():
 | 
			
		||||
    name = person.getPrimaryName()
 | 
			
		||||
    print name.getName()
 | 
			
		||||
 | 
			
		||||
	</programlisting>
 | 
			
		||||
      </figure>
 | 
			
		||||
    </sect2>
 | 
			
		||||
    <sect2 id="listingevents">
 | 
			
		||||
      <title>Displaying the events of person</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      This example shows how to display the public events associated
 | 
			
		||||
      with a person. It assumes that the person is called
 | 
			
		||||
      <function>person</function>.
 | 
			
		||||
      </para>
 | 
			
		||||
      <figure id="eventexample">
 | 
			
		||||
        <title>Displaying Event Information</title>
 | 
			
		||||
        <programlisting>
 | 
			
		||||
 | 
			
		||||
for event in person.getEventList():
 | 
			
		||||
    if event.getPrivacy() == 0:
 | 
			
		||||
        print "Event:",event.getName()
 | 
			
		||||
	print "Date:",event.getDate()
 | 
			
		||||
	print "Place:",event.getPlaceName()
 | 
			
		||||
 | 
			
		||||
	</programlisting>
 | 
			
		||||
      </figure>
 | 
			
		||||
    </sect2>
 | 
			
		||||
    <sect2 id="printfamily">
 | 
			
		||||
      <title>Print the members of each family</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      This example shows how to display the parents and children of
 | 
			
		||||
      each family in the database. It assumes that the database is called
 | 
			
		||||
      <function>db</function>.
 | 
			
		||||
      </para>
 | 
			
		||||
      <figure id="familyexample">
 | 
			
		||||
        <title>Displaying Family Information</title>
 | 
			
		||||
        <programlisting>
 | 
			
		||||
 | 
			
		||||
for family in db.getFamilyMap().values:
 | 
			
		||||
    print "-------------------"
 | 
			
		||||
    print "Family ID:",family.getId()
 | 
			
		||||
    father = family.getFather()
 | 
			
		||||
    if father != None:
 | 
			
		||||
        print "Father:",father.getPrimaryName().getName()
 | 
			
		||||
    mother = family.getMother()
 | 
			
		||||
    if mother != None:
 | 
			
		||||
        print "Mother:",mother.getPrimaryName().getName()
 | 
			
		||||
    for child in family.getChildList():
 | 
			
		||||
        print "Child:",child.getPrimaryName().getName()
 | 
			
		||||
 | 
			
		||||
	</programlisting>
 | 
			
		||||
      </figure>
 | 
			
		||||
    </sect2>
 | 
			
		||||
    <sect2 id="personsfamily">
 | 
			
		||||
      <title>Display the marriages/relationships of a person</title>
 | 
			
		||||
      <para>
 | 
			
		||||
      This example shows how to display the families and relationships
 | 
			
		||||
      in which the person is considered a spouse or parent. It assumes
 | 
			
		||||
      that the person is called <function>person</function>.
 | 
			
		||||
      </para>
 | 
			
		||||
      <para>
 | 
			
		||||
      Relationships between people can be complex. Because someone is
 | 
			
		||||
      male, does not necessarily mean that the person will be
 | 
			
		||||
      considered the "Father" of a relationship. In relationships of
 | 
			
		||||
      type "Partners", the "father" and "mother" of the relationship
 | 
			
		||||
      should be of the same gender. So to determine the spouse of a
 | 
			
		||||
      person, it is usually best to compare the person against what is
 | 
			
		||||
      returned by <function>getFather</function> and
 | 
			
		||||
      <function>getMother</function> to find the one that is not
 | 
			
		||||
      equal.  It should also be noted that the
 | 
			
		||||
      <function>getFather</function> and
 | 
			
		||||
      <function>getMother</function> methods will return None if noone
 | 
			
		||||
      has been associated with that role in the family.
 | 
			
		||||
      </para>
 | 
			
		||||
      <figure id="relexample">
 | 
			
		||||
        <title>Displaying Relationship Information</title>
 | 
			
		||||
        <programlisting>
 | 
			
		||||
 | 
			
		||||
for family in person.getFamilyList():
 | 
			
		||||
    print "-------------------"
 | 
			
		||||
    print "Family ID:",family.getId()
 | 
			
		||||
    print "Relationship Type:",family.getRelationship()
 | 
			
		||||
    father = family.getFather()
 | 
			
		||||
    if father != None and father != person:
 | 
			
		||||
        print "Spouse:",father.getPrimaryName().getName()
 | 
			
		||||
    mother = family.getMother()
 | 
			
		||||
    if mother != None and mother != person:
 | 
			
		||||
        print "Spouse:",mother.getPrimaryName().getName()
 | 
			
		||||
 | 
			
		||||
	</programlisting>
 | 
			
		||||
      </figure>
 | 
			
		||||
    </sect2>
 | 
			
		||||
  </sect1>
 | 
			
		||||
 | 
			
		||||
<!-- ============= Authors ================================ -->
 | 
			
		||||
 | 
			
		||||
  <sect1 id="authors">
 | 
			
		||||
    <title>Authors</title>
 | 
			
		||||
    <para>
 | 
			
		||||
    <application>gramps</application> was written by Don Allingham
 | 
			
		||||
    (<email>dallingham@users.sourceforge.net</email>). To find more
 | 
			
		||||
    information about <application>gramps</application>, please visit
 | 
			
		||||
    the <ulink url="http://gramps.sourceforge.net" type="http">gramps
 | 
			
		||||
    web page</ulink>.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    This manual was written by Don Allingham
 | 
			
		||||
    (<email>dallingham@users.sourceforge.net</email>).
 | 
			
		||||
    </para>
 | 
			
		||||
 | 
			
		||||
<!-- For translations: uncomment this:
 | 
			
		||||
    <para>
 | 
			
		||||
    Latin translation was done by ME
 | 
			
		||||
    (<email>MYNAME@MYADDRESS</email>). Please send all comments and
 | 
			
		||||
    suggestions regarding this translation to SOMEWHERE.
 | 
			
		||||
    </para>
 | 
			
		||||
-->
 | 
			
		||||
  </sect1>
 | 
			
		||||
 | 
			
		||||
<!-- ============= Application License ============================= -->
 | 
			
		||||
 | 
			
		||||
  <sect1 id="license">
 | 
			
		||||
    <title>License</title>
 | 
			
		||||
    <para>
 | 
			
		||||
    This program is free software; you can redistribute it and/or
 | 
			
		||||
    modify it under the terms of the <ulink type="help"
 | 
			
		||||
    url="gnome-help:gpl"> <citetitle>GNU General Public
 | 
			
		||||
    License</citetitle></ulink> as published by the Free Software
 | 
			
		||||
    Foundation; either version 2 of the License, or (at your option)
 | 
			
		||||
    any later version.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    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
 | 
			
		||||
    <citetitle>GNU General Public License</citetitle> for more
 | 
			
		||||
    details.
 | 
			
		||||
    </para>
 | 
			
		||||
    <para>
 | 
			
		||||
    A copy of the <citetitle>GNU General Public License</citetitle> is
 | 
			
		||||
    included as an appendix to the <citetitle>GNOME Users
 | 
			
		||||
    Guide</citetitle>.  You may also obtain a copy of the
 | 
			
		||||
    <citetitle>GNU General Public License</citetitle> from the Free
 | 
			
		||||
    Software Foundation by visiting <ulink type="http"
 | 
			
		||||
    url="http://www.fsf.org">their Web site</ulink> or by writing to
 | 
			
		||||
    <address>
 | 
			
		||||
    Free Software Foundation, Inc.  <street>59 Temple Place</street> -
 | 
			
		||||
    Suite 330 <city>Boston</city>, <state>MA</state>
 | 
			
		||||
    <postcode>02111-1307</postcode> <country>USA</country>
 | 
			
		||||
    </address>
 | 
			
		||||
    </para>
 | 
			
		||||
  </sect1>
 | 
			
		||||
</article>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										345
									
								
								doc/extending-gramps/C/extending-gramps/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,345 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>Writing Extentions for gramps</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Writing Filters"
 | 
			
		||||
HREF="x57.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="ARTICLE"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="ARTICLE"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="TITLEPAGE"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="TITLE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="AEN2">Writing Extentions for gramps</H1
 | 
			
		||||
><P
 | 
			
		||||
CLASS="COPYRIGHT"
 | 
			
		||||
><A
 | 
			
		||||
HREF="ln7.html"
 | 
			
		||||
>Copyright</A
 | 
			
		||||
> © 2001 by Donald N. Allingham</P
 | 
			
		||||
><HR
 | 
			
		||||
WIDTH="75%"
 | 
			
		||||
ALIGN="CENTER"
 | 
			
		||||
COLOR="#000000"
 | 
			
		||||
SIZE="1"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="TOC"
 | 
			
		||||
><DL
 | 
			
		||||
><DT
 | 
			
		||||
><B
 | 
			
		||||
>Table of Contents</B
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html#intro"
 | 
			
		||||
>Introduction</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x57.html"
 | 
			
		||||
>Writing Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x83.html"
 | 
			
		||||
>Writing Reports</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x131.html"
 | 
			
		||||
>Writing Tools</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x162.html"
 | 
			
		||||
>Writing Import Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x177.html"
 | 
			
		||||
>Writing Export Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
></DL
 | 
			
		||||
></DIV
 | 
			
		||||
> 
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  <DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro">Introduction</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> was intended from the start to
 | 
			
		||||
    allow the user to extend it through a plugin system. Five types of
 | 
			
		||||
    plugins are supported - filters, reports, tools, import filters,
 | 
			
		||||
    and export filters. In a way, an export filter can be viewed as a
 | 
			
		||||
    special type of report, and an import filter can be viewed as a
 | 
			
		||||
    special type of tool.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    All plugins are written in the <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>python</TT
 | 
			
		||||
>
 | 
			
		||||
    language.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-filter">Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A filter is a plugin that be used to temporarily display or hide
 | 
			
		||||
      individuals in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>People View</SPAN
 | 
			
		||||
>. The
 | 
			
		||||
      filter is the simplest form of plugin, which only needs to
 | 
			
		||||
      determine if a person meets or fails to meet its criteria. It
 | 
			
		||||
      operates on a single person at a time.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Filters should never alter a database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-report">Reports</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A report is a plugin that generates output. The output may be in
 | 
			
		||||
      either a interactive, graphical form, or as an output
 | 
			
		||||
      file. Report plugins are passed a reference to the internal
 | 
			
		||||
      database and a reference to the active person, which allows the
 | 
			
		||||
      plugn to operate on a single person, the entire database, or
 | 
			
		||||
      anything in between.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the reportplugin interface appear in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Reports</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu and in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>Report Selection</SPAN
 | 
			
		||||
> dialog
 | 
			
		||||
      box.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      A report should never alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-tool">Tools</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A tool is a plugin that alters the database. It may perform
 | 
			
		||||
      something as small changing the case of some text to something
 | 
			
		||||
      as complex as merging redundant individuals. Tools plugins are
 | 
			
		||||
      passed a reference to the internal database, the active person,
 | 
			
		||||
      and a callback function. The callback function is used to notify
 | 
			
		||||
      the main program if it needs to update the display with any
 | 
			
		||||
      modified information.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the tool plugin interface appear in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Tools</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu and in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>Tool Selection</SPAN
 | 
			
		||||
> dialog
 | 
			
		||||
      box.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      A tool is allowed (and usually expected) to alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-import">Import Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      An import filter is a plugin that adds information from another
 | 
			
		||||
      source to the database. It is similar to a tool, but is called
 | 
			
		||||
      differently to allow gramps to distinguish it from a tool.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the import filter calling syntax appear
 | 
			
		||||
      in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>File</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + + + -><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Import</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      An import filter is allowed to modify the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-export">Export Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      An export filter is a plugin that translates the gramps database
 | 
			
		||||
      into the format expected by another program. Since it generates
 | 
			
		||||
      an output file, it is similar to a report generator. However,
 | 
			
		||||
      its calling syntax is different, so that gramps knows how to
 | 
			
		||||
      distiguish it from a report generator.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the export filter calling syntax appear
 | 
			
		||||
      in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>File</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + + + -><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Export</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      An export filter should not alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
  </DIV
 | 
			
		||||
>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  </DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x57.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Filters</TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										133
									
								
								doc/extending-gramps/C/extending-gramps/ln7.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,133 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="HOME"
 | 
			
		||||
TITLE="Writing Extentions for gramps"
 | 
			
		||||
HREF="t1.html"><LINK
 | 
			
		||||
REL="UP"
 | 
			
		||||
TITLE="Writing Extentions for gramps"
 | 
			
		||||
HREF="t1.html#AEN2"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Writing Filters"
 | 
			
		||||
HREF="x57.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVHEADER"
 | 
			
		||||
><TABLE
 | 
			
		||||
SUMMARY="Header navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TH
 | 
			
		||||
COLSPAN="3"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
>Writing Extentions for gramps</TH
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="LEGALNOTICE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="legalnotice"><P
 | 
			
		||||
></P
 | 
			
		||||
>    <P
 | 
			
		||||
>    Permission is granted to copy, distribute and/or modify this
 | 
			
		||||
    document under the terms of the <A
 | 
			
		||||
HREF="gnome-help:fdl"
 | 
			
		||||
TARGET="_top"
 | 
			
		||||
><I
 | 
			
		||||
CLASS="CITETITLE"
 | 
			
		||||
>GNU Free Documentation
 | 
			
		||||
    License</I
 | 
			
		||||
></A
 | 
			
		||||
>, Version 1.1 or any later version
 | 
			
		||||
    published by the Free Software Foundation with no Invariant
 | 
			
		||||
    Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy
 | 
			
		||||
    of the license can be found <A
 | 
			
		||||
HREF="gnome-help:fdl"
 | 
			
		||||
TARGET="_top"
 | 
			
		||||
>here</A
 | 
			
		||||
>.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    Many of the names used by companies to distinguish their products
 | 
			
		||||
    and services are claimed as trademarks. Where those names appear
 | 
			
		||||
    in any GNOME documentation, and those trademarks are made aware to
 | 
			
		||||
    the members of the GNOME Documentation Project, the names have
 | 
			
		||||
    been printed in caps or initial caps.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
  <P
 | 
			
		||||
></P
 | 
			
		||||
></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="H"
 | 
			
		||||
>Home</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html#AEN2"
 | 
			
		||||
ACCESSKEY="U"
 | 
			
		||||
>Up</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 After Width: | Height: | Size: 995 B  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 964 B  | 
| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 After Width: | Height: | Size: 944 B  | 
| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 After Width: | Height: | Size: 95 B  | 
| 
		 After Width: | Height: | Size: 843 B  | 
| 
		 After Width: | Height: | Size: 846 B  | 
							
								
								
									
										
											BIN
										
									
								
								doc/extending-gramps/C/extending-gramps/stylesheet-images/up.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 922 B  | 
| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										345
									
								
								doc/extending-gramps/C/extending-gramps/t1.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,345 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>Writing Extentions for gramps</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Writing Filters"
 | 
			
		||||
HREF="x57.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="ARTICLE"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="ARTICLE"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="TITLEPAGE"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="TITLE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="AEN2">Writing Extentions for gramps</H1
 | 
			
		||||
><P
 | 
			
		||||
CLASS="COPYRIGHT"
 | 
			
		||||
><A
 | 
			
		||||
HREF="ln7.html"
 | 
			
		||||
>Copyright</A
 | 
			
		||||
> © 2001 by Donald N. Allingham</P
 | 
			
		||||
><HR
 | 
			
		||||
WIDTH="75%"
 | 
			
		||||
ALIGN="CENTER"
 | 
			
		||||
COLOR="#000000"
 | 
			
		||||
SIZE="1"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="TOC"
 | 
			
		||||
><DL
 | 
			
		||||
><DT
 | 
			
		||||
><B
 | 
			
		||||
>Table of Contents</B
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html#intro"
 | 
			
		||||
>Introduction</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x57.html"
 | 
			
		||||
>Writing Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x83.html"
 | 
			
		||||
>Writing Reports</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x131.html"
 | 
			
		||||
>Writing Tools</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x162.html"
 | 
			
		||||
>Writing Import Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x177.html"
 | 
			
		||||
>Writing Export Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
></DL
 | 
			
		||||
></DIV
 | 
			
		||||
> 
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  <DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro">Introduction</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> was intended from the start to
 | 
			
		||||
    allow the user to extend it through a plugin system. Five types of
 | 
			
		||||
    plugins are supported - filters, reports, tools, import filters,
 | 
			
		||||
    and export filters. In a way, an export filter can be viewed as a
 | 
			
		||||
    special type of report, and an import filter can be viewed as a
 | 
			
		||||
    special type of tool.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    All plugins are written in the <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>python</TT
 | 
			
		||||
>
 | 
			
		||||
    language.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-filter">Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A filter is a plugin that be used to temporarily display or hide
 | 
			
		||||
      individuals in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>People View</SPAN
 | 
			
		||||
>. The
 | 
			
		||||
      filter is the simplest form of plugin, which only needs to
 | 
			
		||||
      determine if a person meets or fails to meet its criteria. It
 | 
			
		||||
      operates on a single person at a time.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Filters should never alter a database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-report">Reports</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A report is a plugin that generates output. The output may be in
 | 
			
		||||
      either a interactive, graphical form, or as an output
 | 
			
		||||
      file. Report plugins are passed a reference to the internal
 | 
			
		||||
      database and a reference to the active person, which allows the
 | 
			
		||||
      plugn to operate on a single person, the entire database, or
 | 
			
		||||
      anything in between.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the reportplugin interface appear in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Reports</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu and in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>Report Selection</SPAN
 | 
			
		||||
> dialog
 | 
			
		||||
      box.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      A report should never alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-tool">Tools</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A tool is a plugin that alters the database. It may perform
 | 
			
		||||
      something as small changing the case of some text to something
 | 
			
		||||
      as complex as merging redundant individuals. Tools plugins are
 | 
			
		||||
      passed a reference to the internal database, the active person,
 | 
			
		||||
      and a callback function. The callback function is used to notify
 | 
			
		||||
      the main program if it needs to update the display with any
 | 
			
		||||
      modified information.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the tool plugin interface appear in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Tools</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu and in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>Tool Selection</SPAN
 | 
			
		||||
> dialog
 | 
			
		||||
      box.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      A tool is allowed (and usually expected) to alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-import">Import Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      An import filter is a plugin that adds information from another
 | 
			
		||||
      source to the database. It is similar to a tool, but is called
 | 
			
		||||
      differently to allow gramps to distinguish it from a tool.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the import filter calling syntax appear
 | 
			
		||||
      in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>File</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + + + -><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Import</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      An import filter is allowed to modify the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-export">Export Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      An export filter is a plugin that translates the gramps database
 | 
			
		||||
      into the format expected by another program. Since it generates
 | 
			
		||||
      an output file, it is similar to a report generator. However,
 | 
			
		||||
      its calling syntax is different, so that gramps knows how to
 | 
			
		||||
      distiguish it from a report generator.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the export filter calling syntax appear
 | 
			
		||||
      in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>File</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + + + -><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Export</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      An export filter should not alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
  </DIV
 | 
			
		||||
>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  </DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x57.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Filters</TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										282
									
								
								doc/extending-gramps/C/extending-gramps/x131.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,282 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>Writing Tools</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="HOME"
 | 
			
		||||
TITLE="Writing Extentions for gramps"
 | 
			
		||||
HREF="t1.html"><LINK
 | 
			
		||||
REL="PREVIOUS"
 | 
			
		||||
TITLE="Writing Reports"
 | 
			
		||||
HREF="x83.html"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Writing Import Filters"
 | 
			
		||||
HREF="x162.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVHEADER"
 | 
			
		||||
><TABLE
 | 
			
		||||
SUMMARY="Header navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TH
 | 
			
		||||
COLSPAN="3"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
>Writing Extentions for gramps</TH
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x83.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="80%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x162.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="writingtools">Writing Tools</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    Users can create their own tools and add them to
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
>.  By adding the tool to the
 | 
			
		||||
    user's private plugin directory (<TT
 | 
			
		||||
CLASS="FILENAME"
 | 
			
		||||
>~/.gramps/plugins</TT
 | 
			
		||||
>), the tool will be
 | 
			
		||||
    automatically recognized the next time that
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> is started.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    Unlike a report generator, a tool is allowed to modify the
 | 
			
		||||
    database.  The tool is passed the current
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> database, the active person,
 | 
			
		||||
    and a callback function.  The callback function should be called
 | 
			
		||||
    with a non-zero argument upon completion of the tool if the
 | 
			
		||||
    database has been altered.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    As with filters and report generators, tools must be registered
 | 
			
		||||
    before <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> will understand it. The
 | 
			
		||||
    tool is registered using the
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Plugins.register_tool</TT
 | 
			
		||||
>. This function takes
 | 
			
		||||
    four arguments.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
></P
 | 
			
		||||
><UL
 | 
			
		||||
><LI
 | 
			
		||||
>        <P
 | 
			
		||||
>	<TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>The tool task</B
 | 
			
		||||
></TT
 | 
			
		||||
> This task
 | 
			
		||||
	that executes the tool.
 | 
			
		||||
	</P
 | 
			
		||||
>
 | 
			
		||||
      </LI
 | 
			
		||||
><LI
 | 
			
		||||
>	<P
 | 
			
		||||
>	<TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>The tool category</B
 | 
			
		||||
></TT
 | 
			
		||||
> The category in which
 | 
			
		||||
	the tool is grouped in the
 | 
			
		||||
	<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Tools</B
 | 
			
		||||
> menu and in
 | 
			
		||||
	the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>Tool Selection</SPAN
 | 
			
		||||
> dialog.
 | 
			
		||||
	</P
 | 
			
		||||
>
 | 
			
		||||
      </LI
 | 
			
		||||
><LI
 | 
			
		||||
>	<P
 | 
			
		||||
>	<TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>The tool name</B
 | 
			
		||||
></TT
 | 
			
		||||
>
 | 
			
		||||
	The name of the tool.
 | 
			
		||||
	</P
 | 
			
		||||
>
 | 
			
		||||
      </LI
 | 
			
		||||
><LI
 | 
			
		||||
>	<P
 | 
			
		||||
>	<TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>A text description of the tool</B
 | 
			
		||||
></TT
 | 
			
		||||
> The
 | 
			
		||||
	description appears in the Tool Selection dialog to provide
 | 
			
		||||
	the user with a description of what the tool does.
 | 
			
		||||
	</P
 | 
			
		||||
>
 | 
			
		||||
      </LI
 | 
			
		||||
></UL
 | 
			
		||||
> 
 | 
			
		||||
    <P
 | 
			
		||||
>    While only the task and report name are required, it is
 | 
			
		||||
    recommended to provide all five parameters.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="FIGURE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="toolsrc">      
 | 
			
		||||
      <TABLE
 | 
			
		||||
BORDER="0"
 | 
			
		||||
BGCOLOR="#E0E0E0"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
><PRE
 | 
			
		||||
CLASS="PROGRAMLISTING"
 | 
			
		||||
>
import Plugins
 | 
			
		||||
 | 
			
		||||
def tool(database,person,callback):
 | 
			
		||||
   ... actual code ...
 | 
			
		||||
   callback(1)
 | 
			
		||||
 | 
			
		||||
Plugins.register_tool(
 | 
			
		||||
    task=tool,
 | 
			
		||||
    category="Category",
 | 
			
		||||
    name="Tool Name",
 | 
			
		||||
    description="A text descripition of the tool"
 | 
			
		||||
)
 | 
			
		||||
      </PRE
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
><B
 | 
			
		||||
>Figure 3. Sample tool implementation</B
 | 
			
		||||
></P
 | 
			
		||||
></DIV
 | 
			
		||||
>
 | 
			
		||||
  </DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x83.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="H"
 | 
			
		||||
>Home</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x162.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Reports</TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Import Filters</TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										219
									
								
								doc/extending-gramps/C/extending-gramps/x162.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,219 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>Writing Import Filters</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="HOME"
 | 
			
		||||
TITLE="Writing Extentions for gramps"
 | 
			
		||||
HREF="t1.html"><LINK
 | 
			
		||||
REL="PREVIOUS"
 | 
			
		||||
TITLE="Writing Tools"
 | 
			
		||||
HREF="x131.html"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Writing Export Filters"
 | 
			
		||||
HREF="x177.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVHEADER"
 | 
			
		||||
><TABLE
 | 
			
		||||
SUMMARY="Header navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TH
 | 
			
		||||
COLSPAN="3"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
>Writing Extentions for gramps</TH
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x131.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="80%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x177.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="writingimportfilters">Writing Import Filters</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    Import filters are similar to tools, since they are allowed to
 | 
			
		||||
    modify the databases. An import filter is a task that accepts
 | 
			
		||||
    three arguments  a database, the filename of the file that
 | 
			
		||||
    is to be imported, and a callback function.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    The database may or may not have data already in it. The import
 | 
			
		||||
    filter cannot assume that data neither already exists nor that the
 | 
			
		||||
    database is empty.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    The callback function is different from the callback function used
 | 
			
		||||
    for tools. The import filter's callback function is used to
 | 
			
		||||
    indicate progress and update the status bar during the import
 | 
			
		||||
    process. The function takes a value between 0.0 and 1.0, where 0.0
 | 
			
		||||
    represents the start of the import and 1.0 represents the
 | 
			
		||||
    completion of the import.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    As with the other plugin types, an import filter must be
 | 
			
		||||
    registered with <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
>. This is
 | 
			
		||||
    accomplished by calling the
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Plugins.register_import</TT
 | 
			
		||||
> task. The
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Plugins.register_import</TT
 | 
			
		||||
> accepts two arguments
 | 
			
		||||
     the function the performs the import and a string
 | 
			
		||||
    providing a brief description. This description is used as the
 | 
			
		||||
    menu entry under the
 | 
			
		||||
     + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>File</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + -><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Import</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + 
 | 
			
		||||
    menu.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="FIGURE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="importexample">      
 | 
			
		||||
      <TABLE
 | 
			
		||||
BORDER="0"
 | 
			
		||||
BGCOLOR="#E0E0E0"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
><PRE
 | 
			
		||||
CLASS="PROGRAMLISTING"
 | 
			
		||||
>
import Plugins
 | 
			
		||||
 | 
			
		||||
def gedcom_import(database,filename,callback):
 | 
			
		||||
    ... actual code ...
 | 
			
		||||
 | 
			
		||||
Plugins.register_import(gedcom_import,"GEDCOM import")
 | 
			
		||||
 | 
			
		||||
      </PRE
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
><B
 | 
			
		||||
>Figure 4. Sample Import Implementation</B
 | 
			
		||||
></P
 | 
			
		||||
></DIV
 | 
			
		||||
>
 | 
			
		||||
  </DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x131.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="H"
 | 
			
		||||
>Home</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x177.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Tools</TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Export Filters</TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										180
									
								
								doc/extending-gramps/C/extending-gramps/x177.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,180 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>Writing Export Filters</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="HOME"
 | 
			
		||||
TITLE="Writing Extentions for gramps"
 | 
			
		||||
HREF="t1.html"><LINK
 | 
			
		||||
REL="PREVIOUS"
 | 
			
		||||
TITLE="Writing Import Filters"
 | 
			
		||||
HREF="x162.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVHEADER"
 | 
			
		||||
><TABLE
 | 
			
		||||
SUMMARY="Header navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TH
 | 
			
		||||
COLSPAN="3"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
>Writing Extentions for gramps</TH
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x162.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="80%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
> </TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="writingexportfilters">Writing Export Filters</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    Export filters are similar to report generators. They are not
 | 
			
		||||
    allowed to modify the database. An export filter accepts three
 | 
			
		||||
    arguments  a database, the filename of the file that is to
 | 
			
		||||
    be written, and a callback function.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    The callback function is indentical from the callback function
 | 
			
		||||
    used for import filters. The export filter's callback function is
 | 
			
		||||
    used to indicate progress and update the status bar during the
 | 
			
		||||
    export process. The function takes a value between 0.0 and 1.0,
 | 
			
		||||
    where 0.0 represents the start of the export and 1.0 represents
 | 
			
		||||
    the completion of the export.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    As with the other plugin types, an export filter must be
 | 
			
		||||
    registered with <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
>. This is
 | 
			
		||||
    accomplished by calling the
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Plugins.register_export</TT
 | 
			
		||||
> task. The
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Plugins.register_export</TT
 | 
			
		||||
> accepts two arguments
 | 
			
		||||
     the function the performs the import and a string
 | 
			
		||||
    providing a brief description. This description is used as the
 | 
			
		||||
    menu entry under the
 | 
			
		||||
     + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>File</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + -><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Export</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + 
 | 
			
		||||
    menu.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="FIGURE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="exportexample">      <P
 | 
			
		||||
><B
 | 
			
		||||
>Figure 5. </B
 | 
			
		||||
></P
 | 
			
		||||
></DIV
 | 
			
		||||
></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x162.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="H"
 | 
			
		||||
>Home</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Import Filters</TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										276
									
								
								doc/extending-gramps/C/extending-gramps/x57.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,276 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>Writing Filters</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="HOME"
 | 
			
		||||
TITLE="Writing Extentions for gramps"
 | 
			
		||||
HREF="t1.html"><LINK
 | 
			
		||||
REL="PREVIOUS"
 | 
			
		||||
TITLE="Writing Extentions for gramps"
 | 
			
		||||
HREF="t1.html"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Writing Reports"
 | 
			
		||||
HREF="x83.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVHEADER"
 | 
			
		||||
><TABLE
 | 
			
		||||
SUMMARY="Header navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TH
 | 
			
		||||
COLSPAN="3"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
>Writing Extentions for gramps</TH
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="80%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x83.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="writingfilters">Writing Filters</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    Users can create their own filters and add them to
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
>.  By adding the filter to the
 | 
			
		||||
    user's private filter directory (<TT
 | 
			
		||||
CLASS="FILENAME"
 | 
			
		||||
>~/.gramps/filters</TT
 | 
			
		||||
>), the filter will
 | 
			
		||||
    be automatically recognized the next time that the program is
 | 
			
		||||
    started.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="createfilter">Creating a filter</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      Each filter is a class derived from the
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Filter.Filter</TT
 | 
			
		||||
> class.  The
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>__init__</TT
 | 
			
		||||
> task may be overridden, but if so,
 | 
			
		||||
      should call the <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>__init__</TT
 | 
			
		||||
> function on the
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Filter.Filter</TT
 | 
			
		||||
> class.  The parent class
 | 
			
		||||
      provides the variable <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>self.text</TT
 | 
			
		||||
>, which
 | 
			
		||||
      contains the text string passed as the qualifier.  This string
 | 
			
		||||
      provides additional information provided by the user. For
 | 
			
		||||
      example, if the filter is used to match names, the qualifier
 | 
			
		||||
      would be used to provide the name that is being compared
 | 
			
		||||
      against.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      All filter classes must define a <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>match</TT
 | 
			
		||||
>
 | 
			
		||||
      function. The function takes one argument (other than
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>self</TT
 | 
			
		||||
>), which is an object of type
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Person</TT
 | 
			
		||||
> to compare against. The function
 | 
			
		||||
      should return a 1 if the person matches the filter, or a zero if
 | 
			
		||||
      the person does not.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Each filter must be registered, so that
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> knows about it. This is
 | 
			
		||||
      accomplished by calling the
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Filter.register_filter</TT
 | 
			
		||||
> function. This
 | 
			
		||||
      function takes three arguments - the filter class, a
 | 
			
		||||
      description, and flag that indicates if the qualifier string is
 | 
			
		||||
      needed. The description string appears in the pull down
 | 
			
		||||
      interface within <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
>, and helps
 | 
			
		||||
      the user choose the appropriate filter. The qualifier flag tells
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> whether or not the filter
 | 
			
		||||
      needs a qualifier string. If this flag is 0,
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> will disable the entry of a
 | 
			
		||||
      qualifier string.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <DIV
 | 
			
		||||
CLASS="FIGURE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="filtersrc">        
 | 
			
		||||
        <TABLE
 | 
			
		||||
BORDER="0"
 | 
			
		||||
BGCOLOR="#E0E0E0"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
><PRE
 | 
			
		||||
CLASS="PROGRAMLISTING"
 | 
			
		||||
>
import Filter
 | 
			
		||||
import string
 | 
			
		||||
 | 
			
		||||
# class definition
 | 
			
		||||
 | 
			
		||||
class SubString(Filter.Filter):
 | 
			
		||||
 | 
			
		||||
    def match(self,person):
 | 
			
		||||
        name = person.getPrimaryName().getName()
 | 
			
		||||
        return string.find(name,self.text) >= 0
 | 
			
		||||
 | 
			
		||||
Filter.register_filter(SubString,
 | 
			
		||||
                       description="Names that contain a substring",
 | 
			
		||||
	               qualifier=1)
 | 
			
		||||
 | 
			
		||||
        </PRE
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
><B
 | 
			
		||||
>Figure 1. Sample filter implementation</B
 | 
			
		||||
></P
 | 
			
		||||
></DIV
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
  </DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="H"
 | 
			
		||||
>Home</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x83.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Extentions for gramps</TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Reports</TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										369
									
								
								doc/extending-gramps/C/extending-gramps/x83.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,369 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>Writing Reports</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="HOME"
 | 
			
		||||
TITLE="Writing Extentions for gramps"
 | 
			
		||||
HREF="t1.html"><LINK
 | 
			
		||||
REL="PREVIOUS"
 | 
			
		||||
TITLE="Writing Filters"
 | 
			
		||||
HREF="x57.html"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Writing Tools"
 | 
			
		||||
HREF="x131.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVHEADER"
 | 
			
		||||
><TABLE
 | 
			
		||||
SUMMARY="Header navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TH
 | 
			
		||||
COLSPAN="3"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
>Writing Extentions for gramps</TH
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x57.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="80%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="10%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="bottom"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x131.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="writingreports">Writing Reports</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    Users can create their own report generators and add them to
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
>.  By adding the report generator
 | 
			
		||||
    to the user's private plugin directory (<TT
 | 
			
		||||
CLASS="FILENAME"
 | 
			
		||||
>~/.gramps/plugins</TT
 | 
			
		||||
>), the report
 | 
			
		||||
    generator will be automatically recognized the next time that the
 | 
			
		||||
    program is started.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="createreport">Creating a report generator</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      Fewer restrictions are made on report generators than on
 | 
			
		||||
      filters.  The report generator is passed the current
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> database and the active
 | 
			
		||||
      person.  The generator needs to take special care to make sure
 | 
			
		||||
      that it does not alter the database in anyway.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      A report generator is a function that takes two arguments
 | 
			
		||||
       a database (of type <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>RelDataBase</TT
 | 
			
		||||
>)
 | 
			
		||||
      and the currently selected person (of type
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Person</TT
 | 
			
		||||
>). When called, this task should
 | 
			
		||||
      generate the desired report.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      This function's implementation can be as simple as generating
 | 
			
		||||
      output without the user's intervention, or it could display a
 | 
			
		||||
      graphical interface to allow the user to select options and
 | 
			
		||||
      customize a report.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      As with filters, the report generator must be registered before
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> will understand it. The report
 | 
			
		||||
      generator is registered using the
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>Plugins.register_report</TT
 | 
			
		||||
>. This function
 | 
			
		||||
      takes five arguments.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
></P
 | 
			
		||||
><UL
 | 
			
		||||
><LI
 | 
			
		||||
>	  <P
 | 
			
		||||
>	  <TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>The report generation task</B
 | 
			
		||||
></TT
 | 
			
		||||
> This task
 | 
			
		||||
	  that generates the report.
 | 
			
		||||
	  </P
 | 
			
		||||
>
 | 
			
		||||
	</LI
 | 
			
		||||
><LI
 | 
			
		||||
>	  <P
 | 
			
		||||
>	  <TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>The report category</B
 | 
			
		||||
></TT
 | 
			
		||||
> The category in
 | 
			
		||||
	  which the report is grouped in the
 | 
			
		||||
	  <B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Reports</B
 | 
			
		||||
> menu and
 | 
			
		||||
	  in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>Report Selection</SPAN
 | 
			
		||||
> dialog.
 | 
			
		||||
	  </P
 | 
			
		||||
>
 | 
			
		||||
	</LI
 | 
			
		||||
><LI
 | 
			
		||||
>	  <P
 | 
			
		||||
>	  <TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>The report name</B
 | 
			
		||||
></TT
 | 
			
		||||
>
 | 
			
		||||
	  The name of the report.
 | 
			
		||||
	  </P
 | 
			
		||||
>
 | 
			
		||||
	</LI
 | 
			
		||||
><LI
 | 
			
		||||
>	  <P
 | 
			
		||||
>	  <TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>A text description of the report</B
 | 
			
		||||
></TT
 | 
			
		||||
> The
 | 
			
		||||
	  description appears in the report selection tool to provide
 | 
			
		||||
	  the user with a description of what the tools does.
 | 
			
		||||
	  </P
 | 
			
		||||
>
 | 
			
		||||
	</LI
 | 
			
		||||
><LI
 | 
			
		||||
>	  <P
 | 
			
		||||
>	  <TT
 | 
			
		||||
CLASS="GUILABEL"
 | 
			
		||||
><B
 | 
			
		||||
>A graphic logo in XPM format</B
 | 
			
		||||
></TT
 | 
			
		||||
> This may
 | 
			
		||||
	  be either a path to a filename, or a list of strings
 | 
			
		||||
	  containting the XPM data. If a filename is specified, care
 | 
			
		||||
	  must be taken to make sure the file location is relocatable
 | 
			
		||||
	  and can be determined at runtime.
 | 
			
		||||
	  </P
 | 
			
		||||
>
 | 
			
		||||
	</LI
 | 
			
		||||
></UL
 | 
			
		||||
> 
 | 
			
		||||
      <P
 | 
			
		||||
>      While only the task and report name are required, it is
 | 
			
		||||
      recommended to provide all five parameters.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <DIV
 | 
			
		||||
CLASS="FIGURE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="reportsrc">        
 | 
			
		||||
        <TABLE
 | 
			
		||||
BORDER="0"
 | 
			
		||||
BGCOLOR="#E0E0E0"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
><PRE
 | 
			
		||||
CLASS="PROGRAMLISTING"
 | 
			
		||||
>
import Plugins
 | 
			
		||||
 | 
			
		||||
def report(database,person):
 | 
			
		||||
   ... actual code ...
 | 
			
		||||
 | 
			
		||||
Plugins.register_report(
 | 
			
		||||
    task=report,
 | 
			
		||||
    category="Category",
 | 
			
		||||
    name="Report Name",
 | 
			
		||||
    description="A text descripition of the report generator",
 | 
			
		||||
    xpm="%s/myfile.xpm" % os.path.dirname(__file__)
 | 
			
		||||
)
 | 
			
		||||
        </PRE
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
><B
 | 
			
		||||
>Figure 2. Sample report implementation</B
 | 
			
		||||
></P
 | 
			
		||||
></DIV
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="alittlehelp">A little help - Format Interfaces</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> provides some help with
 | 
			
		||||
      writing reports.  Several generic python classes exist that aid
 | 
			
		||||
      in the writing of report generators.  These classes provide an
 | 
			
		||||
      abstract interface for a type of document, such as a drawing,
 | 
			
		||||
      word processor document, or a spreadsheet.  From these core
 | 
			
		||||
      classes, <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> derives interfaces to
 | 
			
		||||
      various document formats.  This means that by coding to the
 | 
			
		||||
      generic word processing class (<TT
 | 
			
		||||
CLASS="FUNCTION"
 | 
			
		||||
>TextDoc</TT
 | 
			
		||||
>), a
 | 
			
		||||
      report generator can instant access to multiple file formats
 | 
			
		||||
      (such as HTML, OpenOffice, and AbiWord).
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      This scheme of deriving a output format from a generic base
 | 
			
		||||
      class also makes it easier to add new formats. Creating a new
 | 
			
		||||
      derivied class targeting a different format (such as
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>KWord</TT
 | 
			
		||||
> or
 | 
			
		||||
      <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>LaTeX</TT
 | 
			
		||||
>) makes it easy for existing
 | 
			
		||||
      report generators to use the new formats.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
  </DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x57.html"
 | 
			
		||||
ACCESSKEY="P"
 | 
			
		||||
><<< Previous</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="H"
 | 
			
		||||
>Home</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x131.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Filters</TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Tools</TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										345
									
								
								doc/extending-gramps/C/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,345 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>Writing Extentions for gramps</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Writing Filters"
 | 
			
		||||
HREF="x57.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="ARTICLE"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="ARTICLE"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="TITLEPAGE"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="TITLE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="AEN2">Writing Extentions for gramps</H1
 | 
			
		||||
><P
 | 
			
		||||
CLASS="COPYRIGHT"
 | 
			
		||||
><A
 | 
			
		||||
HREF="ln7.html"
 | 
			
		||||
>Copyright</A
 | 
			
		||||
> © 2001 by Donald N. Allingham</P
 | 
			
		||||
><HR
 | 
			
		||||
WIDTH="75%"
 | 
			
		||||
ALIGN="CENTER"
 | 
			
		||||
COLOR="#000000"
 | 
			
		||||
SIZE="1"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="TOC"
 | 
			
		||||
><DL
 | 
			
		||||
><DT
 | 
			
		||||
><B
 | 
			
		||||
>Table of Contents</B
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html#intro"
 | 
			
		||||
>Introduction</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x57.html"
 | 
			
		||||
>Writing Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x83.html"
 | 
			
		||||
>Writing Reports</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x131.html"
 | 
			
		||||
>Writing Tools</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x162.html"
 | 
			
		||||
>Writing Import Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x177.html"
 | 
			
		||||
>Writing Export Filters</A
 | 
			
		||||
></DT
 | 
			
		||||
></DL
 | 
			
		||||
></DIV
 | 
			
		||||
> 
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  <DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro">Introduction</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>gramps</TT
 | 
			
		||||
> was intended from the start to
 | 
			
		||||
    allow the user to extend it through a plugin system. Five types of
 | 
			
		||||
    plugins are supported - filters, reports, tools, import filters,
 | 
			
		||||
    and export filters. In a way, an export filter can be viewed as a
 | 
			
		||||
    special type of report, and an import filter can be viewed as a
 | 
			
		||||
    special type of tool.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    All plugins are written in the <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>python</TT
 | 
			
		||||
>
 | 
			
		||||
    language.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-filter">Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A filter is a plugin that be used to temporarily display or hide
 | 
			
		||||
      individuals in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>People View</SPAN
 | 
			
		||||
>. The
 | 
			
		||||
      filter is the simplest form of plugin, which only needs to
 | 
			
		||||
      determine if a person meets or fails to meet its criteria. It
 | 
			
		||||
      operates on a single person at a time.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Filters should never alter a database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-report">Reports</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A report is a plugin that generates output. The output may be in
 | 
			
		||||
      either a interactive, graphical form, or as an output
 | 
			
		||||
      file. Report plugins are passed a reference to the internal
 | 
			
		||||
      database and a reference to the active person, which allows the
 | 
			
		||||
      plugn to operate on a single person, the entire database, or
 | 
			
		||||
      anything in between.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the reportplugin interface appear in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Reports</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu and in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>Report Selection</SPAN
 | 
			
		||||
> dialog
 | 
			
		||||
      box.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      A report should never alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-tool">Tools</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      A tool is a plugin that alters the database. It may perform
 | 
			
		||||
      something as small changing the case of some text to something
 | 
			
		||||
      as complex as merging redundant individuals. Tools plugins are
 | 
			
		||||
      passed a reference to the internal database, the active person,
 | 
			
		||||
      and a callback function. The callback function is used to notify
 | 
			
		||||
      the main program if it needs to update the display with any
 | 
			
		||||
      modified information.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the tool plugin interface appear in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Tools</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu and in the <SPAN
 | 
			
		||||
CLASS="INTERFACE"
 | 
			
		||||
>Tool Selection</SPAN
 | 
			
		||||
> dialog
 | 
			
		||||
      box.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      A tool is allowed (and usually expected) to alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-import">Import Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      An import filter is a plugin that adds information from another
 | 
			
		||||
      source to the database. It is similar to a tool, but is called
 | 
			
		||||
      differently to allow gramps to distinguish it from a tool.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the import filter calling syntax appear
 | 
			
		||||
      in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>File</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + + + -><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Import</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      An import filter is allowed to modify the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
    <DIV
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><H2
 | 
			
		||||
CLASS="SECT2"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro-export">Export Filters</H2
 | 
			
		||||
>      
 | 
			
		||||
      <P
 | 
			
		||||
>      An export filter is a plugin that translates the gramps database
 | 
			
		||||
      into the format expected by another program. Since it generates
 | 
			
		||||
      an output file, it is similar to a report generator. However,
 | 
			
		||||
      its calling syntax is different, so that gramps knows how to
 | 
			
		||||
      distiguish it from a report generator.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      Plugins that conform to the export filter calling syntax appear
 | 
			
		||||
      in the
 | 
			
		||||
         + + + + + + + + + +<B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>File</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + + + -><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Export</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + + + 
 | 
			
		||||
      menu.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
      <P
 | 
			
		||||
>      An export filter should not alter the database.
 | 
			
		||||
      </P
 | 
			
		||||
>
 | 
			
		||||
    </DIV
 | 
			
		||||
>
 | 
			
		||||
  </DIV
 | 
			
		||||
>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  </DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x57.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Writing Filters</TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										0
									
								
								doc/extending-gramps/C/omf_timestamp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										4
									
								
								doc/extending-gramps/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,4 @@
 | 
			
		||||
# Process this file with automake to produce Makefile.in
 | 
			
		||||
 | 
			
		||||
SUBDIRS = C
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										352
									
								
								doc/extending-gramps/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,352 @@
 | 
			
		||||
# Makefile.in generated by automake 1.6.3 from Makefile.am.
 | 
			
		||||
# @configure_input@
 | 
			
		||||
 | 
			
		||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 | 
			
		||||
# 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@
 | 
			
		||||
 | 
			
		||||
# Process this file with automake to produce Makefile.in
 | 
			
		||||
SHELL = @SHELL@
 | 
			
		||||
 | 
			
		||||
srcdir = @srcdir@
 | 
			
		||||
top_srcdir = @top_srcdir@
 | 
			
		||||
VPATH = @srcdir@
 | 
			
		||||
prefix = @prefix@
 | 
			
		||||
exec_prefix = @exec_prefix@
 | 
			
		||||
 | 
			
		||||
bindir = @bindir@
 | 
			
		||||
sbindir = @sbindir@
 | 
			
		||||
libexecdir = @libexecdir@
 | 
			
		||||
datadir = @datadir@
 | 
			
		||||
sysconfdir = @sysconfdir@
 | 
			
		||||
sharedstatedir = @sharedstatedir@
 | 
			
		||||
localstatedir = @localstatedir@
 | 
			
		||||
libdir = @libdir@
 | 
			
		||||
infodir = @infodir@
 | 
			
		||||
mandir = @mandir@
 | 
			
		||||
includedir = @includedir@
 | 
			
		||||
oldincludedir = /usr/include
 | 
			
		||||
pkgdatadir = $(datadir)/@PACKAGE@
 | 
			
		||||
pkglibdir = $(libdir)/@PACKAGE@
 | 
			
		||||
pkgincludedir = $(includedir)/@PACKAGE@
 | 
			
		||||
top_builddir = ../..
 | 
			
		||||
 | 
			
		||||
ACLOCAL = @ACLOCAL@
 | 
			
		||||
AUTOCONF = @AUTOCONF@
 | 
			
		||||
AUTOMAKE = @AUTOMAKE@
 | 
			
		||||
AUTOHEADER = @AUTOHEADER@
 | 
			
		||||
 | 
			
		||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 | 
			
		||||
INSTALL = @INSTALL@
 | 
			
		||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
 | 
			
		||||
INSTALL_DATA = @INSTALL_DATA@
 | 
			
		||||
install_sh_DATA = $(install_sh) -c -m 644
 | 
			
		||||
install_sh_PROGRAM = $(install_sh) -c
 | 
			
		||||
install_sh_SCRIPT = $(install_sh) -c
 | 
			
		||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
 | 
			
		||||
INSTALL_HEADER = $(INSTALL_DATA)
 | 
			
		||||
transform = @program_transform_name@
 | 
			
		||||
NORMAL_INSTALL = :
 | 
			
		||||
PRE_INSTALL = :
 | 
			
		||||
POST_INSTALL = :
 | 
			
		||||
NORMAL_UNINSTALL = :
 | 
			
		||||
PRE_UNINSTALL = :
 | 
			
		||||
POST_UNINSTALL = :
 | 
			
		||||
 | 
			
		||||
EXEEXT = @EXEEXT@
 | 
			
		||||
OBJEXT = @OBJEXT@
 | 
			
		||||
PATH_SEPARATOR = @PATH_SEPARATOR@
 | 
			
		||||
AMTAR = @AMTAR@
 | 
			
		||||
AWK = @AWK@
 | 
			
		||||
BINSH = @BINSH@
 | 
			
		||||
CC = @CC@
 | 
			
		||||
DEPDIR = @DEPDIR@
 | 
			
		||||
DISABLE_SCROLLKEEPER = @DISABLE_SCROLLKEEPER@
 | 
			
		||||
GNOMEHELP = @GNOMEHELP@
 | 
			
		||||
HAVE_GNOME_CONFIG = @HAVE_GNOME_CONFIG@
 | 
			
		||||
HAVE_JW = @HAVE_JW@
 | 
			
		||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 | 
			
		||||
INTLLIBS = @INTLLIBS@
 | 
			
		||||
JW = @JW@
 | 
			
		||||
LANGUAGES = @LANGUAGES@
 | 
			
		||||
LIBS = @LIBS@
 | 
			
		||||
MOFILES = @MOFILES@
 | 
			
		||||
MSGFMT = @MSGFMT@
 | 
			
		||||
P15_INCLUDES = @P15_INCLUDES@
 | 
			
		||||
P20_INCLUDES = @P20_INCLUDES@
 | 
			
		||||
P21_INCLUDES = @P21_INCLUDES@
 | 
			
		||||
P22_INCLUDES = @P22_INCLUDES@
 | 
			
		||||
PACKAGE = @PACKAGE@
 | 
			
		||||
POFILES = @POFILES@
 | 
			
		||||
PYTHON = @PYTHON@
 | 
			
		||||
PYTHON22 = @PYTHON22@
 | 
			
		||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 | 
			
		||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
 | 
			
		||||
PYTHON_PREFIX = @PYTHON_PREFIX@
 | 
			
		||||
PYTHON_VERSION = @PYTHON_VERSION@
 | 
			
		||||
RELEASE = @RELEASE@
 | 
			
		||||
SCROLLKEEPER_CONFIG = @SCROLLKEEPER_CONFIG@
 | 
			
		||||
SCROLLKEEPER_REQUIRED = @SCROLLKEEPER_REQUIRED@
 | 
			
		||||
STRIP = @STRIP@
 | 
			
		||||
VERSION = @VERSION@
 | 
			
		||||
VERSIONSTRING = @VERSIONSTRING@
 | 
			
		||||
ZIP = @ZIP@
 | 
			
		||||
am__include = @am__include@
 | 
			
		||||
am__quote = @am__quote@
 | 
			
		||||
install_sh = @install_sh@
 | 
			
		||||
pkgpyexecdir = @pkgpyexecdir@
 | 
			
		||||
pkgpythondir = @pkgpythondir@
 | 
			
		||||
pyexecdir = @pyexecdir@
 | 
			
		||||
pythondir = @pythondir@
 | 
			
		||||
 | 
			
		||||
SUBDIRS = C
 | 
			
		||||
subdir = doc/extending-gramps
 | 
			
		||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 | 
			
		||||
CONFIG_CLEAN_FILES =
 | 
			
		||||
DIST_SOURCES =
 | 
			
		||||
 | 
			
		||||
RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
 | 
			
		||||
	uninstall-info-recursive all-recursive install-data-recursive \
 | 
			
		||||
	install-exec-recursive installdirs-recursive install-recursive \
 | 
			
		||||
	uninstall-recursive check-recursive installcheck-recursive
 | 
			
		||||
DIST_COMMON = Makefile.am Makefile.in
 | 
			
		||||
DIST_SUBDIRS = $(SUBDIRS)
 | 
			
		||||
all: all-recursive
 | 
			
		||||
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
 | 
			
		||||
	cd $(top_srcdir) && \
 | 
			
		||||
	  $(AUTOMAKE) --gnu  doc/extending-gramps/Makefile
 | 
			
		||||
Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
 | 
			
		||||
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
 | 
			
		||||
uninstall-info-am:
 | 
			
		||||
 | 
			
		||||
# 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):
 | 
			
		||||
	@set fnord $$MAKEFLAGS; amf=$$2; \
 | 
			
		||||
	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) \
 | 
			
		||||
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 | 
			
		||||
	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:
 | 
			
		||||
	@set fnord $$MAKEFLAGS; amf=$$2; \
 | 
			
		||||
	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) \
 | 
			
		||||
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 | 
			
		||||
	done && test -z "$$fail"
 | 
			
		||||
tags-recursive:
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
ETAGS = etags
 | 
			
		||||
ETAGSFLAGS =
 | 
			
		||||
 | 
			
		||||
tags: TAGS
 | 
			
		||||
 | 
			
		||||
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-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 | 
			
		||||
		$(TAGS_FILES) $(LISP)
 | 
			
		||||
	tags=; \
 | 
			
		||||
	here=`pwd`; \
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  if test "$$subdir" = .; then :; else \
 | 
			
		||||
	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	done; \
 | 
			
		||||
	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; }'`; \
 | 
			
		||||
	test -z "$(ETAGS_ARGS)$$tags$$unique" \
 | 
			
		||||
	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_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
 | 
			
		||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 | 
			
		||||
 | 
			
		||||
top_distdir = ../..
 | 
			
		||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 | 
			
		||||
 | 
			
		||||
distdir: $(DISTFILES)
 | 
			
		||||
	@list='$(DISTFILES)'; for file in $$list; do \
 | 
			
		||||
	  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"; \
 | 
			
		||||
	    $(mkinstalldirs) "$(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='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  if test "$$subdir" = .; then :; else \
 | 
			
		||||
	    test -d $(distdir)/$$subdir \
 | 
			
		||||
	    || mkdir $(distdir)/$$subdir \
 | 
			
		||||
	    || exit 1; \
 | 
			
		||||
	    (cd $$subdir && \
 | 
			
		||||
	      $(MAKE) $(AM_MAKEFLAGS) \
 | 
			
		||||
	        top_distdir="$(top_distdir)" \
 | 
			
		||||
	        distdir=../$(distdir)/$$subdir \
 | 
			
		||||
	        distdir) \
 | 
			
		||||
	      || exit 1; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	done
 | 
			
		||||
check-am: all-am
 | 
			
		||||
check: check-recursive
 | 
			
		||||
all-am: Makefile
 | 
			
		||||
installdirs: installdirs-recursive
 | 
			
		||||
installdirs-am:
 | 
			
		||||
 | 
			
		||||
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_STRIP_FLAG=-s \
 | 
			
		||||
	  `test -z '$(STRIP)' || \
 | 
			
		||||
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 | 
			
		||||
mostlyclean-generic:
 | 
			
		||||
 | 
			
		||||
clean-generic:
 | 
			
		||||
 | 
			
		||||
distclean-generic:
 | 
			
		||||
	-rm -f Makefile $(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 mostlyclean-am
 | 
			
		||||
 | 
			
		||||
distclean: distclean-recursive
 | 
			
		||||
 | 
			
		||||
distclean-am: clean-am distclean-generic distclean-tags
 | 
			
		||||
 | 
			
		||||
dvi: dvi-recursive
 | 
			
		||||
 | 
			
		||||
dvi-am:
 | 
			
		||||
 | 
			
		||||
info: info-recursive
 | 
			
		||||
 | 
			
		||||
info-am:
 | 
			
		||||
 | 
			
		||||
install-data-am:
 | 
			
		||||
 | 
			
		||||
install-exec-am:
 | 
			
		||||
 | 
			
		||||
install-info: install-info-recursive
 | 
			
		||||
 | 
			
		||||
install-man:
 | 
			
		||||
 | 
			
		||||
installcheck-am:
 | 
			
		||||
 | 
			
		||||
maintainer-clean: maintainer-clean-recursive
 | 
			
		||||
 | 
			
		||||
maintainer-clean-am: distclean-am maintainer-clean-generic
 | 
			
		||||
 | 
			
		||||
mostlyclean: mostlyclean-recursive
 | 
			
		||||
 | 
			
		||||
mostlyclean-am: mostlyclean-generic
 | 
			
		||||
 | 
			
		||||
uninstall-am: uninstall-info-am
 | 
			
		||||
 | 
			
		||||
uninstall-info: uninstall-info-recursive
 | 
			
		||||
 | 
			
		||||
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
 | 
			
		||||
	clean-generic clean-recursive distclean distclean-generic \
 | 
			
		||||
	distclean-recursive distclean-tags distdir dvi dvi-am \
 | 
			
		||||
	dvi-recursive info info-am info-recursive install install-am \
 | 
			
		||||
	install-data install-data-am install-data-recursive \
 | 
			
		||||
	install-exec install-exec-am install-exec-recursive \
 | 
			
		||||
	install-info install-info-am install-info-recursive install-man \
 | 
			
		||||
	install-recursive install-strip installcheck installcheck-am \
 | 
			
		||||
	installdirs installdirs-am installdirs-recursive \
 | 
			
		||||
	maintainer-clean maintainer-clean-generic \
 | 
			
		||||
	maintainer-clean-recursive mostlyclean mostlyclean-generic \
 | 
			
		||||
	mostlyclean-recursive tags tags-recursive uninstall \
 | 
			
		||||
	uninstall-am uninstall-info-am uninstall-info-recursive \
 | 
			
		||||
	uninstall-recursive
 | 
			
		||||
 | 
			
		||||
# 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:
 | 
			
		||||
							
								
								
									
										53
									
								
								doc/gramps-manual/C/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,53 @@
 | 
			
		||||
SGML_FILES = gramps-manual.sgml
 | 
			
		||||
 | 
			
		||||
figs = \
 | 
			
		||||
     figures/addmedia.png \
 | 
			
		||||
     figures/druidpg1.png \
 | 
			
		||||
     figures/editbookmarks.png \
 | 
			
		||||
     figures/ep-address.png \
 | 
			
		||||
     figures/ep-altname.png \
 | 
			
		||||
     figures/ep-attributes.png \
 | 
			
		||||
     figures/ep-event.png \
 | 
			
		||||
     figures/ep-gallery.png \
 | 
			
		||||
     figures/ep-general.png \
 | 
			
		||||
     figures/ep-internet.png \
 | 
			
		||||
     figures/ep-lds.png \
 | 
			
		||||
     figures/ep-notes.png \
 | 
			
		||||
     figures/familyview.png \
 | 
			
		||||
     figures/filter.png \
 | 
			
		||||
     figures/globalmedia.png \
 | 
			
		||||
     figures/gotobookmark.png \
 | 
			
		||||
     figures/localmedia.png \
 | 
			
		||||
     figures/mainwin.png \
 | 
			
		||||
     figures/mediaview.png \
 | 
			
		||||
     figures/opendb.png \
 | 
			
		||||
     figures/pedegreesel.png \
 | 
			
		||||
     figures/pedegreeview.png \
 | 
			
		||||
     figures/peoplelist.png \
 | 
			
		||||
     figures/placelist.png \
 | 
			
		||||
     figures/prefs-bars.png \
 | 
			
		||||
     figures/prefs-colors.png \
 | 
			
		||||
     figures/prefs-dates.png \
 | 
			
		||||
     figures/prefs-disp.png \
 | 
			
		||||
     figures/prefs-find.png \
 | 
			
		||||
     figures/prefs-gen.png \
 | 
			
		||||
     figures/prefs-guess.png \
 | 
			
		||||
     figures/prefs-ids.png \
 | 
			
		||||
     figures/prefs-main.png \
 | 
			
		||||
     figures/prefs-media.png \
 | 
			
		||||
     figures/prefs-report.png \
 | 
			
		||||
     figures/prefs-research.png \
 | 
			
		||||
     figures/prefs-revision.png \
 | 
			
		||||
     figures/reportsel.png \
 | 
			
		||||
     figures/revcontrol.png \
 | 
			
		||||
     figures/savecomment.png \
 | 
			
		||||
     figures/sourcelist.png \
 | 
			
		||||
     figures/sourcerefsel.png \
 | 
			
		||||
     figures/toolsel.png
 | 
			
		||||
 | 
			
		||||
docname = gramps-manual
 | 
			
		||||
lang = C
 | 
			
		||||
omffile = gramps-manual-C.omf
 | 
			
		||||
sgml_ents = 
 | 
			
		||||
include $(top_srcdir)/doc/sgmldocs.make
 | 
			
		||||
dist-hook: app-dist-hook
 | 
			
		||||
							
								
								
									
										461
									
								
								doc/gramps-manual/C/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,461 @@
 | 
			
		||||
# Makefile.in generated by automake 1.6.3 from Makefile.am.
 | 
			
		||||
# @configure_input@
 | 
			
		||||
 | 
			
		||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 | 
			
		||||
# 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@
 | 
			
		||||
 | 
			
		||||
# To use this template:
 | 
			
		||||
#     1) Define: figs, docname, lang, omffile, sgml_ents although figs, 
 | 
			
		||||
#        omffile, and sgml_ents may be empty in your Makefile.am which 
 | 
			
		||||
#        will "include" this one 
 | 
			
		||||
#     2) Figures must go under figures/ and be in PNG format
 | 
			
		||||
#     3) You should only have one document per directory 
 | 
			
		||||
#
 | 
			
		||||
#        Note that this makefile forces the directory name under
 | 
			
		||||
#        $prefix/share/gnome/help/ to be the same as the SGML filename
 | 
			
		||||
#        of the document.  This is required by GNOME. eg:
 | 
			
		||||
#        $prefix/share/gnome/help/fish_applet/C/fish_applet.sgml
 | 
			
		||||
#                                 ^^^^^^^^^^^   ^^^^^^^^^^^
 | 
			
		||||
# Definitions:
 | 
			
		||||
#   figs         A list of screenshots which will be included in EXTRA_DIST
 | 
			
		||||
#                Note that these should reside in figures/ and should be .png
 | 
			
		||||
#                files, or you will have to make modifications below.
 | 
			
		||||
#   docname      This is the name of the SGML file: <docname>.sgml
 | 
			
		||||
#   lang         This is the document locale
 | 
			
		||||
#   omffile      This is the name of the OMF file.  Convention is to name
 | 
			
		||||
#                it <docname>-<locale>.omf.
 | 
			
		||||
#   sgml_ents    This is a list of SGML entities which must be installed 
 | 
			
		||||
#                with the main SGML file and included in EXTRA_DIST. 
 | 
			
		||||
# eg:
 | 
			
		||||
#   figs = \
 | 
			
		||||
#          figures/fig1.png            \
 | 
			
		||||
#          figures/fig2.png
 | 
			
		||||
#   docname = scrollkeeper-manual
 | 
			
		||||
#   lang = C
 | 
			
		||||
#   omffile=scrollkeeper-manual-C.omf
 | 
			
		||||
#   sgml_ents = fdl.sgml
 | 
			
		||||
#   include $(top_srcdir)/help/sgmldocs.make
 | 
			
		||||
#   dist-hook: app-dist-hook
 | 
			
		||||
#
 | 
			
		||||
SHELL = @SHELL@
 | 
			
		||||
 | 
			
		||||
srcdir = @srcdir@
 | 
			
		||||
top_srcdir = @top_srcdir@
 | 
			
		||||
VPATH = @srcdir@
 | 
			
		||||
prefix = @prefix@
 | 
			
		||||
exec_prefix = @exec_prefix@
 | 
			
		||||
 | 
			
		||||
bindir = @bindir@
 | 
			
		||||
sbindir = @sbindir@
 | 
			
		||||
libexecdir = @libexecdir@
 | 
			
		||||
datadir = @datadir@
 | 
			
		||||
sysconfdir = @sysconfdir@
 | 
			
		||||
sharedstatedir = @sharedstatedir@
 | 
			
		||||
localstatedir = @localstatedir@
 | 
			
		||||
libdir = @libdir@
 | 
			
		||||
infodir = @infodir@
 | 
			
		||||
mandir = @mandir@
 | 
			
		||||
includedir = @includedir@
 | 
			
		||||
oldincludedir = /usr/include
 | 
			
		||||
pkgdatadir = $(datadir)/@PACKAGE@
 | 
			
		||||
pkglibdir = $(libdir)/@PACKAGE@
 | 
			
		||||
pkgincludedir = $(includedir)/@PACKAGE@
 | 
			
		||||
top_builddir = ../../..
 | 
			
		||||
 | 
			
		||||
ACLOCAL = @ACLOCAL@
 | 
			
		||||
AUTOCONF = @AUTOCONF@
 | 
			
		||||
AUTOMAKE = @AUTOMAKE@
 | 
			
		||||
AUTOHEADER = @AUTOHEADER@
 | 
			
		||||
 | 
			
		||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 | 
			
		||||
INSTALL = @INSTALL@
 | 
			
		||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
 | 
			
		||||
INSTALL_DATA = @INSTALL_DATA@
 | 
			
		||||
install_sh_DATA = $(install_sh) -c -m 644
 | 
			
		||||
install_sh_PROGRAM = $(install_sh) -c
 | 
			
		||||
install_sh_SCRIPT = $(install_sh) -c
 | 
			
		||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
 | 
			
		||||
INSTALL_HEADER = $(INSTALL_DATA)
 | 
			
		||||
transform = @program_transform_name@
 | 
			
		||||
NORMAL_INSTALL = :
 | 
			
		||||
PRE_INSTALL = :
 | 
			
		||||
POST_INSTALL = :
 | 
			
		||||
NORMAL_UNINSTALL = :
 | 
			
		||||
PRE_UNINSTALL = :
 | 
			
		||||
POST_UNINSTALL = :
 | 
			
		||||
 | 
			
		||||
EXEEXT = @EXEEXT@
 | 
			
		||||
OBJEXT = @OBJEXT@
 | 
			
		||||
PATH_SEPARATOR = @PATH_SEPARATOR@
 | 
			
		||||
AMTAR = @AMTAR@
 | 
			
		||||
AWK = @AWK@
 | 
			
		||||
BINSH = @BINSH@
 | 
			
		||||
CC = @CC@
 | 
			
		||||
DEPDIR = @DEPDIR@
 | 
			
		||||
DISABLE_SCROLLKEEPER = @DISABLE_SCROLLKEEPER@
 | 
			
		||||
GNOMEHELP = @GNOMEHELP@
 | 
			
		||||
HAVE_GNOME_CONFIG = @HAVE_GNOME_CONFIG@
 | 
			
		||||
HAVE_JW = @HAVE_JW@
 | 
			
		||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 | 
			
		||||
INTLLIBS = @INTLLIBS@
 | 
			
		||||
JW = @JW@
 | 
			
		||||
LANGUAGES = @LANGUAGES@
 | 
			
		||||
LIBS = @LIBS@
 | 
			
		||||
MOFILES = @MOFILES@
 | 
			
		||||
MSGFMT = @MSGFMT@
 | 
			
		||||
P15_INCLUDES = @P15_INCLUDES@
 | 
			
		||||
P20_INCLUDES = @P20_INCLUDES@
 | 
			
		||||
P21_INCLUDES = @P21_INCLUDES@
 | 
			
		||||
P22_INCLUDES = @P22_INCLUDES@
 | 
			
		||||
PACKAGE = @PACKAGE@
 | 
			
		||||
POFILES = @POFILES@
 | 
			
		||||
PYTHON = @PYTHON@
 | 
			
		||||
PYTHON22 = @PYTHON22@
 | 
			
		||||
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
 | 
			
		||||
PYTHON_PLATFORM = @PYTHON_PLATFORM@
 | 
			
		||||
PYTHON_PREFIX = @PYTHON_PREFIX@
 | 
			
		||||
PYTHON_VERSION = @PYTHON_VERSION@
 | 
			
		||||
RELEASE = @RELEASE@
 | 
			
		||||
SCROLLKEEPER_CONFIG = @SCROLLKEEPER_CONFIG@
 | 
			
		||||
SCROLLKEEPER_REQUIRED = @SCROLLKEEPER_REQUIRED@
 | 
			
		||||
STRIP = @STRIP@
 | 
			
		||||
VERSION = @VERSION@
 | 
			
		||||
VERSIONSTRING = @VERSIONSTRING@
 | 
			
		||||
ZIP = @ZIP@
 | 
			
		||||
am__include = @am__include@
 | 
			
		||||
am__quote = @am__quote@
 | 
			
		||||
install_sh = @install_sh@
 | 
			
		||||
pkgpyexecdir = @pkgpyexecdir@
 | 
			
		||||
pkgpythondir = @pkgpythondir@
 | 
			
		||||
pyexecdir = @pyexecdir@
 | 
			
		||||
pythondir = @pythondir@
 | 
			
		||||
SGML_FILES = gramps-manual.sgml
 | 
			
		||||
 | 
			
		||||
figs = \
 | 
			
		||||
     figures/addmedia.png \
 | 
			
		||||
     figures/druidpg1.png \
 | 
			
		||||
     figures/editbookmarks.png \
 | 
			
		||||
     figures/ep-address.png \
 | 
			
		||||
     figures/ep-altname.png \
 | 
			
		||||
     figures/ep-attributes.png \
 | 
			
		||||
     figures/ep-event.png \
 | 
			
		||||
     figures/ep-gallery.png \
 | 
			
		||||
     figures/ep-general.png \
 | 
			
		||||
     figures/ep-internet.png \
 | 
			
		||||
     figures/ep-lds.png \
 | 
			
		||||
     figures/ep-notes.png \
 | 
			
		||||
     figures/familyview.png \
 | 
			
		||||
     figures/filter.png \
 | 
			
		||||
     figures/globalmedia.png \
 | 
			
		||||
     figures/gotobookmark.png \
 | 
			
		||||
     figures/localmedia.png \
 | 
			
		||||
     figures/mainwin.png \
 | 
			
		||||
     figures/mediaview.png \
 | 
			
		||||
     figures/opendb.png \
 | 
			
		||||
     figures/pedegreesel.png \
 | 
			
		||||
     figures/pedegreeview.png \
 | 
			
		||||
     figures/peoplelist.png \
 | 
			
		||||
     figures/placelist.png \
 | 
			
		||||
     figures/prefs-bars.png \
 | 
			
		||||
     figures/prefs-colors.png \
 | 
			
		||||
     figures/prefs-dates.png \
 | 
			
		||||
     figures/prefs-disp.png \
 | 
			
		||||
     figures/prefs-find.png \
 | 
			
		||||
     figures/prefs-gen.png \
 | 
			
		||||
     figures/prefs-guess.png \
 | 
			
		||||
     figures/prefs-ids.png \
 | 
			
		||||
     figures/prefs-main.png \
 | 
			
		||||
     figures/prefs-media.png \
 | 
			
		||||
     figures/prefs-report.png \
 | 
			
		||||
     figures/prefs-research.png \
 | 
			
		||||
     figures/prefs-revision.png \
 | 
			
		||||
     figures/reportsel.png \
 | 
			
		||||
     figures/revcontrol.png \
 | 
			
		||||
     figures/savecomment.png \
 | 
			
		||||
     figures/sourcelist.png \
 | 
			
		||||
     figures/sourcerefsel.png \
 | 
			
		||||
     figures/toolsel.png
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
docname = gramps-manual
 | 
			
		||||
lang = C
 | 
			
		||||
omffile = gramps-manual-C.omf
 | 
			
		||||
sgml_ents = 
 | 
			
		||||
 | 
			
		||||
docdir = $(datadir)/gnome/help/$(docname)/$(lang)
 | 
			
		||||
 | 
			
		||||
doc_DATA = index.html
 | 
			
		||||
 | 
			
		||||
sgml_files = $(sgml_ents) $(docname).sgml
 | 
			
		||||
 | 
			
		||||
omf_dir = $(top_srcdir)/omf-install
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = $(sgml_files) $(doc_DATA) $(omffile) $(figs)
 | 
			
		||||
 | 
			
		||||
CLEANFILES = omf_timestamp
 | 
			
		||||
 | 
			
		||||
# when doing a distclean, we also want to clear out html files:
 | 
			
		||||
CONFIG_CLEAN_FILES = index.html $(docname)/*.html $(docname)/stylesheet-images/*.gif
 | 
			
		||||
subdir = doc/gramps-manual/C
 | 
			
		||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 | 
			
		||||
DIST_SOURCES =
 | 
			
		||||
DATA = $(doc_DATA)
 | 
			
		||||
 | 
			
		||||
DIST_COMMON = Makefile.am Makefile.in
 | 
			
		||||
all: all-am
 | 
			
		||||
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/doc/sgmldocs.make $(top_srcdir)/configure.in $(ACLOCAL_M4)
 | 
			
		||||
	cd $(top_srcdir) && \
 | 
			
		||||
	  $(AUTOMAKE) --gnu  doc/gramps-manual/C/Makefile
 | 
			
		||||
Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
 | 
			
		||||
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
 | 
			
		||||
uninstall-info-am:
 | 
			
		||||
docDATA_INSTALL = $(INSTALL_DATA)
 | 
			
		||||
install-docDATA: $(doc_DATA)
 | 
			
		||||
	@$(NORMAL_INSTALL)
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(docdir)
 | 
			
		||||
	@list='$(doc_DATA)'; for p in $$list; do \
 | 
			
		||||
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 | 
			
		||||
	  f="`echo $$p | sed -e 's|^.*/||'`"; \
 | 
			
		||||
	  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="`echo $$p | sed -e 's|^.*/||'`"; \
 | 
			
		||||
	  echo " rm -f $(DESTDIR)$(docdir)/$$f"; \
 | 
			
		||||
	  rm -f $(DESTDIR)$(docdir)/$$f; \
 | 
			
		||||
	done
 | 
			
		||||
tags: TAGS
 | 
			
		||||
TAGS:
 | 
			
		||||
 | 
			
		||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 | 
			
		||||
 | 
			
		||||
top_distdir = ../../..
 | 
			
		||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 | 
			
		||||
 | 
			
		||||
distdir: $(DISTFILES)
 | 
			
		||||
	$(mkinstalldirs) $(distdir)/figures
 | 
			
		||||
	@list='$(DISTFILES)'; for file in $$list; do \
 | 
			
		||||
	  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"; \
 | 
			
		||||
	    $(mkinstalldirs) "$(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
 | 
			
		||||
	$(MAKE) $(AM_MAKEFLAGS) \
 | 
			
		||||
	  top_distdir="${top_distdir}" distdir="$(distdir)" \
 | 
			
		||||
	  dist-hook
 | 
			
		||||
check-am: all-am
 | 
			
		||||
check: check-am
 | 
			
		||||
all-am: Makefile $(DATA)
 | 
			
		||||
 | 
			
		||||
installdirs:
 | 
			
		||||
	$(mkinstalldirs) $(DESTDIR)$(docdir)
 | 
			
		||||
 | 
			
		||||
install: install-am
 | 
			
		||||
install-exec: install-exec-am
 | 
			
		||||
install-data: install-data-am
 | 
			
		||||
uninstall: uninstall-am
 | 
			
		||||
 | 
			
		||||
install-am: all-am
 | 
			
		||||
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 | 
			
		||||
 | 
			
		||||
installcheck: installcheck-am
 | 
			
		||||
install-strip:
 | 
			
		||||
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | 
			
		||||
	  INSTALL_STRIP_FLAG=-s \
 | 
			
		||||
	  `test -z '$(STRIP)' || \
 | 
			
		||||
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 | 
			
		||||
mostlyclean-generic:
 | 
			
		||||
 | 
			
		||||
clean-generic:
 | 
			
		||||
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 | 
			
		||||
 | 
			
		||||
distclean-generic:
 | 
			
		||||
	-rm -f Makefile $(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-am
 | 
			
		||||
 | 
			
		||||
clean-am: clean-generic mostlyclean-am
 | 
			
		||||
 | 
			
		||||
distclean: distclean-am
 | 
			
		||||
 | 
			
		||||
distclean-am: clean-am distclean-generic
 | 
			
		||||
 | 
			
		||||
dvi: dvi-am
 | 
			
		||||
 | 
			
		||||
dvi-am:
 | 
			
		||||
 | 
			
		||||
info: info-am
 | 
			
		||||
 | 
			
		||||
info-am:
 | 
			
		||||
 | 
			
		||||
install-data-am: install-docDATA
 | 
			
		||||
 | 
			
		||||
install-exec-am:
 | 
			
		||||
 | 
			
		||||
install-info: install-info-am
 | 
			
		||||
 | 
			
		||||
install-man:
 | 
			
		||||
 | 
			
		||||
installcheck-am:
 | 
			
		||||
 | 
			
		||||
maintainer-clean: maintainer-clean-am
 | 
			
		||||
 | 
			
		||||
maintainer-clean-am: distclean-am maintainer-clean-generic
 | 
			
		||||
 | 
			
		||||
mostlyclean: mostlyclean-am
 | 
			
		||||
 | 
			
		||||
mostlyclean-am: mostlyclean-generic
 | 
			
		||||
 | 
			
		||||
uninstall-am: uninstall-docDATA uninstall-info-am uninstall-local
 | 
			
		||||
 | 
			
		||||
.PHONY: all all-am check check-am clean clean-generic distclean \
 | 
			
		||||
	distclean-generic distdir dvi dvi-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-strip installcheck installcheck-am \
 | 
			
		||||
	installdirs maintainer-clean maintainer-clean-generic \
 | 
			
		||||
	mostlyclean mostlyclean-generic uninstall uninstall-am \
 | 
			
		||||
	uninstall-docDATA uninstall-info-am uninstall-local
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
all: index.html omf
 | 
			
		||||
 | 
			
		||||
omf: omf_timestamp
 | 
			
		||||
 | 
			
		||||
omf_timestamp: $(omffile)
 | 
			
		||||
	-for file in $(omffile); do \
 | 
			
		||||
	  scrollkeeper-preinstall $(docdir)/$(docname).sgml $$file $(omf_dir)/$$file; \
 | 
			
		||||
	done
 | 
			
		||||
	touch omf_timestamp
 | 
			
		||||
 | 
			
		||||
index.html: $(docname)/index.html
 | 
			
		||||
	-cp $(docname)/index.html .
 | 
			
		||||
 | 
			
		||||
# The weird srcdir trick is because the db2html from the Cygnus RPMs
 | 
			
		||||
# cannot handle relative filenames.
 | 
			
		||||
# The t1 test is for certain versions of jw that create cryptic
 | 
			
		||||
# html pages, o fwhich the index is called "t1".  Also, the jw
 | 
			
		||||
# script from docbook-utils 0.6.9 does not copy the template 
 | 
			
		||||
# stylesheet-images directory like the db2html script does, so 
 | 
			
		||||
# we give it a little help (at least for now)
 | 
			
		||||
 | 
			
		||||
$(docname)/index.html: $(docname).sgml
 | 
			
		||||
	-srcdir=`cd $(srcdir) && pwd`;   \
 | 
			
		||||
	if test "$(HAVE_JW)" = 'yes' ; then \
 | 
			
		||||
	   if test -f /usr/share/sgml/docbook/dsssl-stylesheets/images/next.gif ; then \
 | 
			
		||||
	        mkdir -p $$srcdir/$(docname)/stylesheet-images ; \
 | 
			
		||||
	   	cp /usr/share/sgml/docbook/dsssl-stylesheets/images/*.gif $$srcdir/$(docname)/stylesheet-images/ ; \
 | 
			
		||||
	   fi; \
 | 
			
		||||
	   jw -c /etc/sgml/catalog $$srcdir/$(docname).sgml -o $$srcdir/$(docname); \
 | 
			
		||||
	else \
 | 
			
		||||
	   db2html $$srcdir/$(docname).sgml; \
 | 
			
		||||
	fi
 | 
			
		||||
	if test -f $(docname)/t1.html; then \
 | 
			
		||||
	   cd $(srcdir)/$(docname) && cp t1.html index.html; \
 | 
			
		||||
	   cd $(srcdir); \
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
$(docname).sgml: $(sgml_ents)
 | 
			
		||||
	-ourdir=`cd . && pwd`;  \
 | 
			
		||||
	cd $(srcdir);   \
 | 
			
		||||
	cp $(sgml_ents) $$ourdir
 | 
			
		||||
 | 
			
		||||
app-dist-hook: index.html
 | 
			
		||||
	-$(mkinstalldirs) $(distdir)/$(docname)/stylesheet-images
 | 
			
		||||
	-$(mkinstalldirs) $(distdir)/figures
 | 
			
		||||
	-cp $(srcdir)/$(docname)/*.html $(distdir)/$(docname)
 | 
			
		||||
	-for file in $(srcdir)/$(docname)/*.css; do \
 | 
			
		||||
	  basefile=`echo $$file | sed -e  's,^.*/,,'`; \
 | 
			
		||||
	  cp $$file $(distdir)/$(docname)/$$basefile ; \
 | 
			
		||||
	done
 | 
			
		||||
	-for file in $(srcdir)/$(docname)/stylesheet-images/*.gif; do \
 | 
			
		||||
	  basefile=`echo $$file | sed -e  's,^.*/,,'`; \
 | 
			
		||||
	  cp $$file $(distdir)/$(docname)/stylesheet-images/$$basefile ; \
 | 
			
		||||
	done
 | 
			
		||||
	-if [ -e topic.dat ]; then \
 | 
			
		||||
		cp $(srcdir)/topic.dat $(distdir); \
 | 
			
		||||
	 fi
 | 
			
		||||
 | 
			
		||||
install-data-am: index.html omf
 | 
			
		||||
	-$(mkinstalldirs) $(DESTDIR)$(docdir)/stylesheet-images
 | 
			
		||||
	-$(mkinstalldirs) $(DESTDIR)$(docdir)/figures
 | 
			
		||||
	-cp $(srcdir)/$(sgml_files) $(DESTDIR)$(docdir)
 | 
			
		||||
	-for file in $(srcdir)/$(docname)/*.html $(srcdir)/$(docname)/*.css; do \
 | 
			
		||||
	  basefile=`echo $$file | sed -e 's,^.*/,,'`; \
 | 
			
		||||
	  $(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/$$basefile; \
 | 
			
		||||
	done
 | 
			
		||||
	-for file in $(srcdir)/figures/*.png; do \
 | 
			
		||||
	  basefile=`echo $$file | sed -e  's,^.*/,,'`; \
 | 
			
		||||
	  $(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/figures/$$basefile; \
 | 
			
		||||
	done
 | 
			
		||||
	-for file in $(srcdir)/$(docname)/stylesheet-images/*.gif; do \
 | 
			
		||||
	  basefile=`echo $$file | sed -e  's,^.*/,,'`; \
 | 
			
		||||
	  $(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/stylesheet-images/$$basefile; \
 | 
			
		||||
	done
 | 
			
		||||
	-if [ -e $(srcdir)/topic.dat ]; then \
 | 
			
		||||
		$(INSTALL_DATA) $(srcdir)/topic.dat $(DESTDIR)$(docdir); \
 | 
			
		||||
	 fi
 | 
			
		||||
 | 
			
		||||
$(docname).ps: $(srcdir)/$(docname).sgml
 | 
			
		||||
	-srcdir=`cd $(srcdir) && pwd`; \
 | 
			
		||||
	db2ps $$srcdir/$(docname).sgml
 | 
			
		||||
 | 
			
		||||
$(docname).rtf: $(srcdir)/$(docname).sgml
 | 
			
		||||
	-srcdir=`cd $(srcdir) && pwd`; \
 | 
			
		||||
	db2ps $$srcdir/$(docname).sgml
 | 
			
		||||
 | 
			
		||||
uninstall-local:
 | 
			
		||||
	-for file in $(srcdir)/$(docname)/stylesheet-images/*.gif; do \
 | 
			
		||||
	  basefile=`echo $$file | sed -e  's,^.*/,,'`; \
 | 
			
		||||
	  rm -f $(docdir)/stylesheet-images/$$basefile; \
 | 
			
		||||
	done
 | 
			
		||||
	-for file in $(srcdir)/figures/*.png; do \
 | 
			
		||||
	  basefile=`echo $$file | sed -e  's,^.*/,,'`; \
 | 
			
		||||
	  rm -f $(docdir)/figures/$$basefile; \
 | 
			
		||||
	done
 | 
			
		||||
	-for file in $(srcdir)/$(docname)/*.html $(srcdir)/$(docname)/*.css; do \
 | 
			
		||||
	  basefile=`echo $$file | sed -e 's,^.*/,,'`; \
 | 
			
		||||
	  rm -f $(DESTDIR)$(docdir)/$$basefile; \
 | 
			
		||||
	done
 | 
			
		||||
	-for file in $(sgml_files); do \
 | 
			
		||||
	  rm -f $(DESTDIR)$(docdir)/$$file; \
 | 
			
		||||
	done
 | 
			
		||||
	-rmdir $(DESTDIR)$(docdir)/stylesheet-images
 | 
			
		||||
	-rmdir $(DESTDIR)$(docdir)/figures
 | 
			
		||||
	-rmdir $(DESTDIR)$(docdir)
 | 
			
		||||
dist-hook: app-dist-hook
 | 
			
		||||
# 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:
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/addmedia.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/druidpg1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/editbookmarks.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-address.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-altname.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-attributes.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-event.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-gallery.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-general.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-internet.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-lds.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/ep-notes.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/familyview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/filter.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/globalmedia.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/gotobookmark.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/localmedia.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/mainwin.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/mediaview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/opendb.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/pedegreesel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/pedegreeview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/peoplelist.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/placelist.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-bars.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-colors.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-dates.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-disp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-find.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-gen.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-guess.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-ids.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-main.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-media.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-report.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-research.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/prefs-revision.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/reportsel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/revcontrol.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/savecomment.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/sourcelist.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/sourcerefsel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/figures/toolsel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										14
									
								
								doc/gramps-manual/C/gramps-manual-C.omf
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
			
		||||
<?xml version="1.0" standalone="no"?>
 | 
			
		||||
<omf>
 | 
			
		||||
  <resource>
 | 
			
		||||
    <title>
 | 
			
		||||
      GRAMPS User Manual
 | 
			
		||||
    </title>
 | 
			
		||||
    <subject>
 | 
			
		||||
      <category>GNOME|Applications</category>
 | 
			
		||||
    </subject>
 | 
			
		||||
    <format mime="text/sgml"/>
 | 
			
		||||
    <identifier url="gramps-manual.sgml"/>
 | 
			
		||||
    <language code="C"/>
 | 
			
		||||
  </resource>
 | 
			
		||||
</omf>
 | 
			
		||||
							
								
								
									
										1863
									
								
								doc/gramps-manual/C/gramps-manual.sgml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										222
									
								
								doc/gramps-manual/C/gramps-manual/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,222 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><TITLE
 | 
			
		||||
>GRAMPS User Manual</TITLE
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Running GRAMPS for the first time."
 | 
			
		||||
HREF="x28.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
CLASS="ARTICLE"
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="ARTICLE"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="TITLEPAGE"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="TITLE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="AEN2">GRAMPS User Manual</H1
 | 
			
		||||
><P
 | 
			
		||||
CLASS="COPYRIGHT"
 | 
			
		||||
><A
 | 
			
		||||
HREF="ln7.html"
 | 
			
		||||
>Copyright</A
 | 
			
		||||
> © 2001 by Donald N. Allingham</P
 | 
			
		||||
><HR
 | 
			
		||||
WIDTH="75%"
 | 
			
		||||
ALIGN="CENTER"
 | 
			
		||||
COLOR="#000000"
 | 
			
		||||
SIZE="1"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="TOC"
 | 
			
		||||
><DL
 | 
			
		||||
><DT
 | 
			
		||||
><B
 | 
			
		||||
>Table of Contents</B
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html#intro"
 | 
			
		||||
>Introduction</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x28.html"
 | 
			
		||||
>Running GRAMPS for the first time.</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x41.html"
 | 
			
		||||
>Getting Started</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x84.html"
 | 
			
		||||
>People View</A
 | 
			
		||||
></DT
 | 
			
		||||
><DT
 | 
			
		||||
><A
 | 
			
		||||
HREF="x129.html"
 | 
			
		||||
>Editing a person's data</A
 | 
			
		||||
></DT
 | 
			
		||||
></DL
 | 
			
		||||
></DIV
 | 
			
		||||
> 
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
  <DIV
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><H1
 | 
			
		||||
CLASS="SECT1"
 | 
			
		||||
><A
 | 
			
		||||
NAME="intro">Introduction</H1
 | 
			
		||||
>    
 | 
			
		||||
    <P
 | 
			
		||||
>    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>GRAMPS</TT
 | 
			
		||||
> is an acronym for the
 | 
			
		||||
    Genealogical Research and Analysis Management Programming System.
 | 
			
		||||
    It was conceived under the concept that most genealogy programs
 | 
			
		||||
    were designed to provide the researcher the capability to input
 | 
			
		||||
    information related to a particular family tree.  Most of these
 | 
			
		||||
    programs have allowed for the arranging and storing of information
 | 
			
		||||
    consistent with the GEDCOM standards.  They usually provide a
 | 
			
		||||
    means for displaying descendant or ancestral relationships by
 | 
			
		||||
    means of graphical displays, charts, or reports.  These may be
 | 
			
		||||
    augmented with pictures or other media to enhance the data.  Most
 | 
			
		||||
    provide for inputting data on unconnected individuals/families
 | 
			
		||||
    that may or may not have a relationship to the primary surname
 | 
			
		||||
    being researched.  Various other enhancements may also be provided
 | 
			
		||||
    in the genealogical program that allows for different degrees of
 | 
			
		||||
    importing and exporting data from other programs and printing of
 | 
			
		||||
    the data contained in the various reports.  GRAMPS, on the other
 | 
			
		||||
    hand, attempts to provide all of the common capabilities of these
 | 
			
		||||
    programs, but, more importantly, to provide a capability not
 | 
			
		||||
    common to these programs.  This is the ability to input any bits
 | 
			
		||||
    and pieces of information directly into GRAMPS and
 | 
			
		||||
    rearrange/manipulate any/all data events in the entire data base
 | 
			
		||||
    (in any order or sequence) to assist the user in doing research,
 | 
			
		||||
    analysis and correlation with the potential of filling
 | 
			
		||||
    relationship gaps.  In short, a tool that provides a way to input
 | 
			
		||||
    all your research into one place and do your analysis and
 | 
			
		||||
    correlation using the speed, power, and accuracy of your computer
 | 
			
		||||
    instead of pencils and unmanageable reams of paper.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    To run <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>GRAMPS</TT
 | 
			
		||||
>, select
 | 
			
		||||
      	-><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Programs</B
 | 
			
		||||
>+
 | 
			
		||||
+	-><B
 | 
			
		||||
CLASS="GUISUBMENU"
 | 
			
		||||
>Applications</B
 | 
			
		||||
>+
 | 
			
		||||
+	-><B
 | 
			
		||||
CLASS="GUIMENUITEM"
 | 
			
		||||
>gramps</B
 | 
			
		||||
>+
 | 
			
		||||
+ + + + + + 
 | 
			
		||||
    from the <B
 | 
			
		||||
CLASS="GUIMENU"
 | 
			
		||||
>Main Menu</B
 | 
			
		||||
>, or type
 | 
			
		||||
    <B
 | 
			
		||||
CLASS="COMMAND"
 | 
			
		||||
>gramps</B
 | 
			
		||||
> on the command line.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    This document describes version 0.7.3 of
 | 
			
		||||
    <TT
 | 
			
		||||
CLASS="APPLICATION"
 | 
			
		||||
>GRAMPS</TT
 | 
			
		||||
>.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
  </DIV
 | 
			
		||||
>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  </DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="x28.html"
 | 
			
		||||
ACCESSKEY="N"
 | 
			
		||||
>Next >>></A
 | 
			
		||||
></TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
>Running GRAMPS for the first time.</TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										133
									
								
								doc/gramps-manual/C/gramps-manual/ln7.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,133 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | 
			
		||||
<HTML
 | 
			
		||||
><HEAD
 | 
			
		||||
><META
 | 
			
		||||
NAME="GENERATOR"
 | 
			
		||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
 | 
			
		||||
"><LINK
 | 
			
		||||
REL="HOME"
 | 
			
		||||
TITLE="GRAMPS User Manual"
 | 
			
		||||
HREF="t1.html"><LINK
 | 
			
		||||
REL="UP"
 | 
			
		||||
TITLE="GRAMPS User Manual"
 | 
			
		||||
HREF="t1.html#AEN2"><LINK
 | 
			
		||||
REL="NEXT"
 | 
			
		||||
TITLE="Running GRAMPS for the first time."
 | 
			
		||||
HREF="x28.html"></HEAD
 | 
			
		||||
><BODY
 | 
			
		||||
BGCOLOR="#FFFFFF"
 | 
			
		||||
TEXT="#000000"
 | 
			
		||||
LINK="#0000FF"
 | 
			
		||||
VLINK="#840084"
 | 
			
		||||
ALINK="#0000FF"
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVHEADER"
 | 
			
		||||
><TABLE
 | 
			
		||||
SUMMARY="Header navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TH
 | 
			
		||||
COLSPAN="3"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
>GRAMPS User Manual</TH
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="LEGALNOTICE"
 | 
			
		||||
><A
 | 
			
		||||
NAME="legalnotice"><P
 | 
			
		||||
></P
 | 
			
		||||
>    <P
 | 
			
		||||
>    Permission is granted to copy, distribute and/or modify this document
 | 
			
		||||
    under the terms of the <A
 | 
			
		||||
HREF="gnome-help:fdl"
 | 
			
		||||
TARGET="_top"
 | 
			
		||||
><I
 | 
			
		||||
CLASS="CITETITLE"
 | 
			
		||||
>GNU Free Documentation
 | 
			
		||||
    License</I
 | 
			
		||||
></A
 | 
			
		||||
>, Version 1.1 or any later version 
 | 
			
		||||
    published by the Free Software Foundation with no Invariant Sections, 
 | 
			
		||||
    no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
 | 
			
		||||
    can be found <A
 | 
			
		||||
HREF="gnome-help:fdl"
 | 
			
		||||
TARGET="_top"
 | 
			
		||||
>here</A
 | 
			
		||||
>.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
    <P
 | 
			
		||||
>    Many of the names used by companies to distinguish their products and
 | 
			
		||||
    services are claimed as trademarks. Where those names appear in any
 | 
			
		||||
    GNOME documentation, and those trademarks are made aware to the members
 | 
			
		||||
    of the GNOME Documentation Project, the names have been printed in caps
 | 
			
		||||
    or initial caps.
 | 
			
		||||
    </P
 | 
			
		||||
>
 | 
			
		||||
  <P
 | 
			
		||||
></P
 | 
			
		||||
></DIV
 | 
			
		||||
><DIV
 | 
			
		||||
CLASS="NAVFOOTER"
 | 
			
		||||
><HR
 | 
			
		||||
ALIGN="LEFT"
 | 
			
		||||
WIDTH="100%"><TABLE
 | 
			
		||||
SUMMARY="Footer navigation table"
 | 
			
		||||
WIDTH="100%"
 | 
			
		||||
BORDER="0"
 | 
			
		||||
CELLPADDING="0"
 | 
			
		||||
CELLSPACING="0"
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html"
 | 
			
		||||
ACCESSKEY="H"
 | 
			
		||||
>Home</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
></TR
 | 
			
		||||
><TR
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="left"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="34%"
 | 
			
		||||
ALIGN="center"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
><A
 | 
			
		||||
HREF="t1.html#AEN2"
 | 
			
		||||
ACCESSKEY="U"
 | 
			
		||||
>Up</A
 | 
			
		||||
></TD
 | 
			
		||||
><TD
 | 
			
		||||
WIDTH="33%"
 | 
			
		||||
ALIGN="right"
 | 
			
		||||
VALIGN="top"
 | 
			
		||||
> </TD
 | 
			
		||||
></TR
 | 
			
		||||
></TABLE
 | 
			
		||||
></DIV
 | 
			
		||||
></BODY
 | 
			
		||||
></HTML
 | 
			
		||||
>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/gramps-manual/stylesheet-images/caution.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/gramps-manual/stylesheet-images/home.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 995 B  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/gramps-manual/stylesheet-images/next.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 964 B  | 
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/gramps-manual/stylesheet-images/note.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								doc/gramps-manual/C/gramps-manual/stylesheet-images/prev.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 944 B  |