more cleanup
diff --git a/doc/manual/python-configure.info b/doc/manual/python-configure.info deleted file mode 100644 --- a/doc/manual/python-configure.info +++ /dev/null @@ -1,914 +0,0 @@ -This is python-configure.info, produced by makeinfo version 4.13 from -/home/brandon/Projects/python-autoconfigure/doc/python-configure.texi. - -This manual is for python-configure (version 0.1, updated 02 November -2012). - - Copyright (C) 2012 Brandon Invergo - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.2 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 is included in the - section entitled "GNU Free Documentation License." - -INFO-DIR-SECTION Miscellaneous -START-INFO-DIR-ENTRY -* python-configure: (python-configure)GNU Standards-compliant Python - configuration and installation -END-INFO-DIR-ENTRY - - -File: python-configure.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) - -GNU Source Release Collection -***************************** - -This manual is for python-configure (version 0.1, 02 November 2012). - -* Menu: - -* Introduction:: -* Using python-configure:: -* Appendix:: -* GNU Free Documentation License:: - - --- The Detailed Node Listing --- - -Introduction - -* Configuring Python packages:: - -Using python-configure - -* Required macros:: -* Verifying the Python version:: -* Checking for a module or function:: -* Writing test programs:: -* Using Sphinxbuild to build documentation:: - -Appendix - -* Autoconf Macros - - -File: python-configure.info, Node: Introduction, Next: Using python-configure, Prev: Top, Up: Top - -1 Introduction -************** - -Python packages typically are configured and installed through the use -of `distutils' or one of its derivatives. The user performs necessary -actions via a Python script called `setup.py'. For simple programs, -this is straight-forward. However, for more complex software packages, -especially for those which also include code in other languages such as -C or Fortran, the limitations of the `distutils' method quickly become -apparent. - - The configuration and installation of GNU software and many other -programs, on the other hand, is done according to the use of standard -`configure' scripts and Make recipes. This method has the advantage of -being language-agnostic, very flexible, time-proven. python-configure -consists of all the files necessary to use the standard GNU build -process to configure and install Python packages. - - Without modification, python-configure provides a wrapper around -`setup.py', which allows the user to use the familiar GNU installation -commands to install a Python package. With the powerful Autoconf macros -that it provides, a Python developer can greatly extend or even replace -altogether the capabilities of `setup.py'. Plus, since this method is -language-agnostic, all the power of Autoconf for compiled languages is -gained for free. - -* Menu: - -* Configuring Python packages:: - - -File: python-configure.info, Node: Configuring Python packages, Prev: Introduction, Up: Introduction - -1.1 Configuring Python packages -=============================== - -Configuring and installing Python packages which use python-configure -follows the familiar steps of all standard GNU software: - - $ ./configure - $ make - $ make install - - In fact, since most programs do not have anything to build, the -second step could usually be skipped. - - As usual, the user may pass arguments to `configure' in order to -specify how she wants the software to be installed. By default, -`configure' takes the following useful arguments: - -Argument Description --------------------------------------------------------------------------- -`--prefix' Set the root directory in which to install files - (default=/usr/local) -`--with-virtualenv'Install to a virtualenv at `$prefix' -`PYTHON' Path to the Python interpreter to use -`PYTHONPATH' The PYTHONPATH to use during the installation - - However, as the developer is expected to customize these files, the -final `configure' script may take many more arguments. The developer is -expected to provide proper documentation in this case. - - -File: python-configure.info, Node: Using python-configure, Next: Appendix, Prev: Introduction, Up: Top - -2 Using python-configure -************************ - -While it is possible to simply copy the python-configure files into -your project's source directory and use them unmodified, it is -recommended that you customize them to more appropriately fit your -needs. In particular, you will want to customize `configure.ac' and -`Makefile.in'. `configure.ac' contains a series of macros which are -used by Autoconf to build a portable `configure' shell script. When the -user invokes `configure', it uses `Makefile.in' as a template to create -the Make recipe `Makefile'. - - Several Autoconf macros are provided in the python-configure file -`m4/python.m4' to allow the developer to write robust tests *Note -Autoconf macros::. Note that when you distribute your software, you -must include this directory and file with your distribution. - - Once you modify your `configure.ac' to your liking, you must -regenerate your `configure' script with autoreconf: - - $ autoreconf -fvi - - A full explanation of the use of Autoconf macros is beyond the scope -of this document, however it is worth presenting some examples. - -* Menu: - -* Required macros:: -* Verifying the Python version:: -* Checking for a module or function:: -* Writing test programs:: -* Using Sphinxbuild to build documentation:: - - -File: python-configure.info, Node: Required macros, Next: Verifying the Python version, Prev: Using python-configure, Up: Using python-configure - -2.1 Required macros -=================== - -Several macros are required in `configure.ac' to use python-configure. -These are: - - m4_include([m4/python.m4]) - - This macro imports all of the Python Autoconf macros. If you choose -to write your own macros for other purposes, you would also include them -in this manner. - - AC_INIT(project_name, project_version) - - This initializes Autoconf and also substitutes your project name and -version in any output that it generates. - - AC_CONFIG_MACRO_DIR([m4]) - - Now that Autoconf is initialized, we inform it of the location of our -macros. - - AC_PROG_PYTHON - - This is the key macro. It finds the highest-version Python -interpreter available on the system and saves its path in the `PYTHON' -variable. - - PC_PYTHON_SITE_PACKAGE_DIR - PC_PYTHON_EXEC_PACKAGE_DIR - - These two macros figure out where Python expects packages to be -installed (i.e. `/usr/lib/python2.7/site-packages/') and saves them in -the variables `pkgpythondir' and `pkgpyexecdir', respectively, for use -in `Makefile.in' - - -File: python-configure.info, Node: Verifying the Python version, Next: Checking for a module or function, Prev: Required macros, Up: Using python-configure - -2.2 Verifying the Python version -================================ - -As described in the previous section, `AC_PROG_PYTHON' finds the Python -interpreter with the highest version installed on the system. Often, -you will want to be sure that the user has some minimum version -installed. There is a macro available to simplify this, -`PC_PYTHON_VERIFY_VERSION'. - - m4_define(python_min_ver, 2.6.1) - PC_PYTHON_VERIFY_VERSION([$PYTHON], python_min_ver, , - [AC_MSG_ERROR(Python interpreter too old)]) - - In this example, we set the minimum version to 2.6.1 through the use -of an M4 macro. We then check if the interpreter stored in the `PYTHON' -variable (either set by the user or found by `AC_PROG_PYTHON') is at -least of that version. If it is not, the resulting `configure' script -will exit with an appropriate error message. - - Unfortunately, the divide between Python 2 and Python 3 and many -programs are only compatible with Python 2. Since `AC_PROG_PYTHON' will -find the latest Python interpreter, if the user has any Python version -3.x installed, `configure' must be able to instead find the most latest -2.x version installed. This is slightly less straight-forward, but one -possible implementation is as follows: - - PC_PYTHON_VERIFY_VERSION([$PYTHON], 3.0, - py3k=true, - py3k=false) - # If a Python 3 interpreter was found, look specifically for a Python 2 one - if test "$py3k" = "true" ; then - m4_define_default([_PYTHON2_BINS], [python2 python2.7 python2.6]) - AC_PATH_PROGS(PYTHON, [_PYTHON2_BINS]) - else - # otherwise check that the Python 2 version is sufficient - PC_PYTHON_VERIFY_VERSION([$PYTHON], python_min_ver, , - [AC_MSG_ERROR(Python interpreter too old)]) - fi - if test -z "$PYTHON"; then - AC_MSG_ERROR(No Python 2 interpreter found) - fi - - We first check to see if Python is version 3.0 or greater. If it is, -we create a list of compatible Python interpreters and manually check -for them using standard Autoconf macros. Finally, we check if the -interpreter that we found this time is of sufficient version, otherwise -`configure' will halt with an error. Likewise, if no appropriate -interpreter was found, an error message will be printed and `configure' -will stop. - - -File: python-configure.info, Node: Checking for a module or function, Next: Writing test programs, Prev: Verifying the Python version, Up: Using python-configure - -2.3 Checking for a module or function -===================================== - -It's reasonable to assume that many Python packages will have -dependencies on other, external modules. With the provided -python-configure macros, this is simple. All you have to do is use the -`PC_PYTHON_CHECK_MODULE' macro as follows: - - PC_PYTHON_CHECK_MODULE([foo]) - - If the module is a hard requirement, you may provide actions to do if -it is not present: - - PC_PYTHON_CHECK_MODULE([foo], , AC_MSG_ERROR([Module foo is not installed])) - - If you need more fine-grained control, you can also test for a -specific function: - - PC_PYTHON_CHECK_FUNC([foo], [bar], [arg1, arg2]) - - Remember that you may omit arguments to Autoconf macros: in the above -example, the final two arguments, which correspond to the action to -take if the test is successful and if it fails simply are not present -in the argument list. Similarly, if you do not need to pass arguments -to the test function, you can entirely omit the third argument to the -macro: - - PC_PYTHON_CHECK_FUNC([foo], [bar]) - - -File: python-configure.info, Node: Writing test programs, Next: Using Sphinxbuild to build documentation, Prev: Checking for a module or function, Up: Using python-configure - -2.4 Writing test programs -========================= - -One great benefit of Autoconf is the ability to embed test programs -inside `configure'. The python-configure macros allow for this by -defining Python as a language within Autoconf. You then would proceed -to write test programs as you would in any other language that Autoconf -supports like C. - - AC_LANG_PUSH(Python)[] - AC_RUN_IFELSE([AC_LANG_PROGRAM([dnl - # some code here - import foo - ], [dnl - # some more code here - foo.bar() - ])], [ACTION-IF-SUCCESSFUL], [ACTION-IF-FAILED]) - AC_LANG_POP(Python)[] - - The first argument to `AC_LANG_PROGRAM' is the so-called "prolog", -and typically will contain your `import' statements or function -definitions. The second argument contains the main body of the program, -which will be in the scope of an `if __name__=="__main__":' block. So, -you must be sure to indent the code appropriately. - - -File: python-configure.info, Node: Using Sphinxbuild to build documentation, Prev: Writing test programs, Up: Using python-configure - -2.5 Using Sphinxbuild to build documentation -============================================ - -Using python-configure and Autoconf to test for other tools is quite -easy. For example, many Python packages use Sphinxbuild to build their -documentation. If this is the case for your project, you might do -something like the following: - - AC_CHECK_PROGS([SPHINXBUILD], [sphinx-build sphinx-build3 sphinx-build2], [no]) - AS_IF([test "x$SPHINXBUILD" = xno], - AC_MSG_WARN(sphinx-build is required to build documentation)) - - We simply use Autoconf's `AC_CHECK_PROGS' macro to check for a -series of possible Sphinxbuild binaries and save the result to the -SPHINXBUILD variable, which may then be used in `Makefile.in': - - docs/build/index.html: $(wildcard $(srcdir)/docs/source/*) - ifneq ($(SPHINXBUILD),no) - $(SPHINXBUILD) -b html docs/source/ docs/build/ - endif - - -File: python-configure.info, Node: Appendix, Next: GNU Free Documentation License, Prev: Using python-configure, Up: Top - -3 Appendix -********** - -* Menu: - -* Autoconf macros:: - - -File: python-configure.info, Node: Autoconf macros, Up: Appendix - -3.1 Autoconf macros -=================== - -Macro Name & Arguments Description Variables exported ---------------------------------------------------------------------------- -`AC_PROG_PYTHON([NAME-TO-CHECK])'Find a Python `PYTHON' - interpreter -`PC_PROG_PYTHON_CONFIG([NAME-TO-CHECK])'Find a python-config `PYTHON_CONFIG' - program -`PC_PYTHON_VERIFY_VERSION(VERSION,Verify that the Python -[ACTION-IF-TRUE], interpreter is of a -[ACTION-IF-NOT-TRUE])' sufficient version - number -`PC_PYTHON_CHECK_VERSION'Get the version of the `PYTHON_VERSION' - Python interpreter -`PC_PYTHON_CHECK_PREFIX' Check what Python `PYTHON_PREFIX' - thinks is the prefix -`PC_PYTHON_CHECK_EXEC_PREFIX'Check what Python `PYTHON_EXEC_PREFIX' - thinks is the - exec_prefix -`PC_PYTHON_CHECK_INCLUDES'Check the include flags `PYTHON_INCLUDES' - ('-I[header]...') for - including the Python - header files -`PC_PYTHON_CHECK_HEADERS'Check for the Python `HAVE_PYTHON_H' - header files (i.e. - `Python.h') -`PC_PYTHON_CHECK_LIBS' Check for the proper `PYTHON_LIBS' - LIBS flags to load the - Python shared libraries -`PC_PYTHON_TEST_LIBS' Test for the presence `HAVE_LIBPYTHON' - of the Python shared - libraries -`PC_PYTHON_CHECK_CFLAGS' Find the CFLAGS that `PYTHON_CFLAGS' - Python expects -`PC_PYTHON_CHECK_LDFLAGS'Find the LDFLAGS that `PYTHON_LDFLAGS' - Python expects -`PC_PYTHON_CHECK_EXTENSION_SUFFIX'Check the extension `PYTHON_EXTENSION_SUFFIX' - suffix given to Python - extension modules - (Python 3 only) -`PC_PYTHON_CHECK_ABI_FLAGS'Check the ABI flags `PC_PYTHON_ABI_FLAGS' - used by Python (Python - 3 only) -`PC_PYTHON_CHECK_PLATFORM'Check what platform - Python thinks this is - `PYTHON_PLATFORM' -`PC_PYTHON_CHECK_SITE_DIR'Check the appropriate `pythondir' - place to install Python - packages (i.e. - `$(prefix)/lib/python2.7/site-packages') -`PC_PYTHON_SITE_PACKAGE_DIR'A convenience macro; `pkgpythondir' - adds the package's name - to `pythondir' -`PC_PYTHON_CHECK_EXEC_DIR'Check directory for `pyexecdir' - installing Python - extension modules -`PC_PYTHON_EXEC_PACKAGE_DIR'A convenience macro; `pkgpyexecdir' - adds the package's name - to `pyexecdir' -`PC_PYTHON_CHECK_MODULE' Test if a given Python - module can be - successfully loaded -`PC_PYTHON_CHECK_FUNC' Test if a given Python - function can be called - successfully. - - -File: python-configure.info, Node: GNU Free Documentation License, Prev: Appendix, Up: Top - -Appendix A GNU Free Documentation License -***************************************** - - Version 1.3, 3 November 2008 - - Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. - `http://fsf.org/' - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - functional and useful document "free" in the sense of freedom: to - assure everyone the effective freedom to copy and redistribute it, - with or without modifying it, either commercially or - noncommercially. Secondarily, this License preserves for the - author and publisher a way to get credit for their work, while not - being considered responsible for modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work, in any medium, - that contains a notice placed by the copyright holder saying it - can be distributed under the terms of this License. Such a notice - grants a world-wide, royalty-free license, unlimited in duration, - to use that work under the conditions stated herein. The - "Document", below, refers to any such manual or work. Any member - of the public is a licensee, and is addressed as "you". You - accept the license if you copy, modify or distribute the work in a - way requiring permission under copyright law. - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter section - of the Document that deals exclusively with the relationship of the - publishers or authors of the Document to the Document's overall - subject (or to related matters) and contains nothing that could - fall directly within that overall subject. (Thus, if the Document - is in part a textbook of mathematics, a Secondary Section may not - explain any mathematics.) The relationship could be a matter of - historical connection with the subject or with related matters, or - of legal, commercial, philosophical, ethical or political position - regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. If a section does not fit the above definition of - Secondary then it is not allowed to be designated as Invariant. - The Document may contain zero Invariant Sections. If the Document - does not identify any Invariant Sections then there are none. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. A - Front-Cover Text may be at most 5 words, and a Back-Cover Text may - be at most 25 words. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, that is suitable for revising the document - straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup, or absence of - markup, has been arranged to thwart or discourage subsequent - modification by readers is not Transparent. An image format is - not Transparent if used for any substantial amount of text. A - copy that is not "Transparent" is called "Opaque". - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML, PostScript or PDF designed for - human modification. Examples of transparent image formats include - PNG, XCF and JPG. Opaque formats include proprietary formats that - can be read and edited only by proprietary word processors, SGML or - XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML, PostScript or PDF - produced by some word processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - The "publisher" means any person or entity that distributes copies - of the Document to the public. - - A section "Entitled XYZ" means a named subunit of the Document - whose title either is precisely XYZ or contains XYZ in parentheses - following text that translates XYZ in another language. (Here XYZ - stands for a specific section name mentioned below, such as - "Acknowledgements", "Dedications", "Endorsements", or "History".) - To "Preserve the Title" of such a section when you modify the - Document means that it remains a section "Entitled XYZ" according - to this definition. - - The Document may include Warranty Disclaimers next to the notice - which states that this License applies to the Document. These - Warranty Disclaimers are considered to be included by reference in - this License, but only as regards disclaiming warranties: any other - implication that these Warranty Disclaimers may have is void and - has no effect on the meaning of this License. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies (or copies in media that commonly - have printed covers) of the Document, numbering more than 100, and - the Document's license notice requires Cover Texts, you must - enclose the copies in covers that carry, clearly and legibly, all - these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a computer-network location from - which the general network-using public has access to download - using public-standard network protocols a complete Transparent - copy of the Document, free of added material. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of - previous versions (which should, if there were any, be listed - in the History section of the Document). You may use the - same title as a previous version if the original publisher of - that version gives permission. - - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in - the Modified Version, together with at least five of the - principal authors of the Document (all of its principal - authors, if it has fewer than five), unless they release you - from this requirement. - - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - - D. Preserve all the copyright notices of the Document. - - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified - Version under the terms of this License, in the form shown in - the Addendum below. - - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - - H. Include an unaltered copy of this License. - - I. Preserve the section Entitled "History", Preserve its Title, - and add to it an item stating at least the title, year, new - authors, and publisher of the Modified Version as given on - the Title Page. If there is no section Entitled "History" in - the Document, create one stating the title, year, authors, - and publisher of the Document as given on its Title Page, - then add an item describing the Modified Version as stated in - the previous sentence. - - J. Preserve the network location, if any, given in the Document - for public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in - the "History" section. You may omit a network location for a - work that was published at least four years before the - Document itself, or if the original publisher of the version - it refers to gives permission. - - K. For any section Entitled "Acknowledgements" or "Dedications", - Preserve the Title of the section, and preserve in the - section all the substance and tone of each of the contributor - acknowledgements and/or dedications given therein. - - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section - titles. - - M. Delete any section Entitled "Endorsements". Such a section - may not be included in the Modified Version. - - N. Do not retitle any existing section to be Entitled - "Endorsements" or to conflict in title with any Invariant - Section. - - O. Preserve any Warranty Disclaimers. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section Entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties--for example, statements of peer review or that the text - has been approved by an organization as the authoritative - definition of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice, and that you preserve all - their Warranty Disclaimers. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections Entitled - "History" in the various original documents, forming one section - Entitled "History"; likewise combine any sections Entitled - "Acknowledgements", and any sections Entitled "Dedications". You - must delete all sections Entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, is called an "aggregate" if the - copyright resulting from the compilation is not used to limit the - legal rights of the compilation's users beyond what the individual - works permit. When the Document is included in an aggregate, this - License does not apply to the other works in the aggregate which - are not themselves derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one half - of the entire aggregate, the Document's Cover Texts may be placed - on covers that bracket the Document within the aggregate, or the - electronic equivalent of covers if the Document is in electronic - form. Otherwise they must appear on printed covers that bracket - the whole aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License, and all the license notices in the - Document, and any Warranty Disclaimers, provided that you also - include the original English version of this License and the - original versions of those notices and disclaimers. In case of a - disagreement between the translation and the original version of - this License or a notice or disclaimer, the original version will - prevail. - - If a section in the Document is Entitled "Acknowledgements", - "Dedications", or "History", the requirement (section 4) to - Preserve its Title (section 1) will typically require changing the - actual title. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided under this License. Any attempt - otherwise to copy, modify, sublicense, or distribute it is void, - and will automatically terminate your rights under this License. - - However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly - and finally terminates your license, and (b) permanently, if the - copyright holder fails to notify you of the violation by some - reasonable means prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from - that copyright holder, and you cure the violation prior to 30 days - after your receipt of the notice. - - Termination of your rights under this section does not terminate - the licenses of parties who have received copies or rights from - you under this License. If your rights have been terminated and - not permanently reinstated, receipt of a copy of some or all of - the same material does not give you any rights to use it. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation 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. See - `http://www.gnu.org/copyleft/'. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. If the Document specifies that a proxy - can decide which future versions of this License can be used, that - proxy's public statement of acceptance of a version permanently - authorizes you to choose that version for the Document. - - 11. RELICENSING - - "Massive Multiauthor Collaboration Site" (or "MMC Site") means any - World Wide Web server that publishes copyrightable works and also - provides prominent facilities for anybody to edit those works. A - public wiki that anybody can edit is an example of such a server. - A "Massive Multiauthor Collaboration" (or "MMC") contained in the - site means any set of copyrightable works thus published on the MMC - site. - - "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 - license published by Creative Commons Corporation, a not-for-profit - corporation with a principal place of business in San Francisco, - California, as well as future copyleft versions of that license - published by that same organization. - - "Incorporate" means to publish or republish a Document, in whole or - in part, as part of another Document. - - An MMC is "eligible for relicensing" if it is licensed under this - License, and if all works that were first published under this - License somewhere other than this MMC, and subsequently - incorporated in whole or in part into the MMC, (1) had no cover - texts or invariant sections, and (2) were thus incorporated prior - to November 1, 2008. - - The operator of an MMC Site may republish an MMC contained in the - site under CC-BY-SA on the same site at any time before August 1, - 2009, provided the MMC is eligible for relicensing. - - -ADDENDUM: How to use this License for your documents -==================================================== - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - 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 is included in the section entitled ``GNU - Free Documentation License''. - - If you have Invariant Sections, Front-Cover Texts and Back-Cover -Texts, replace the "with...Texts." line with this: - - with the Invariant Sections being LIST THEIR TITLES, with - the Front-Cover Texts being LIST, and with the Back-Cover Texts - being LIST. - - If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - - -Tag Table: -Node: Top832 -Node: Introduction1454 -Node: Configuring Python packages2905 -Node: Using python-configure4139 -Node: Required macros5522 -Node: Verifying the Python version6722 -Node: Checking for a module or function9249 -Node: Writing test programs10484 -Node: Using Sphinxbuild to build documentation11593 -Node: Appendix12618 -Node: Autoconf macros12799 -Node: GNU Free Documentation License16502 - -End Tag Table diff --git a/doc/manual/python-configure.info.tar.gz b/doc/manual/python-configure.info.tar.gz deleted file mode 100644 Binary file doc/manual/python-configure.info.tar.gz has changed diff --git a/texinfo.tex b/texinfo.tex --- a/texinfo.tex +++ b/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2012-09-04.17} +\def\texinfoversion{2012-11-08.11} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, @@ -2272,8 +2272,6 @@ end \gdef\markupsetcodequoteleft{\let`\codequoteleft} \gdef\markupsetcodequoteright{\let'\codequoteright} - -\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft} } \let\markupsetuplqcode \markupsetcodequoteleft @@ -2282,6 +2280,9 @@ end \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright % +\let\markupsetuplqkbd \markupsetcodequoteleft +\let\markupsetuprqkbd \markupsetcodequoteright +% \let\markupsetuplqsamp \markupsetcodequoteleft \let\markupsetuprqsamp \markupsetcodequoteright % @@ -2291,8 +2292,6 @@ end \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright -\let\markupsetuplqkbd \markupsetnoligaturesquoteleft - % Allow an option to not use regular directed right quote/apostrophe % (char 0x27), but instead the undirected quote from cmtt (char 0x0d). % The undirected quote is ugly, so don't make it the default, but it @@ -2382,8 +2381,7 @@ end \aftersmartic } -% like \smartslanted except unconditionally uses \ttsl, and no ic. -% @var is set to this for defun arguments. +% Unconditional use \ttsl, and no ic. @var is set to this for defuns. \def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want @@ -2695,10 +2693,6 @@ end \let\email=\uref \fi -% @kbd is like @code, except that if the argument is just one @key command, -% then @kbd has no effect. -\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} - % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). @@ -2722,11 +2716,17 @@ end % Default is `distinct'. \kbdinputstyle distinct +% @kbd is like @code, except that if the argument is just one @key command, +% then @kbd has no effect. +\def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}} + \def\xkey{\key} -\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% -\ifx\one\xkey\ifx\threex\three \key{#2}% -\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi -\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} +\def\kbdsub#1#2#3\par{% + \def\one{#1}\def\three{#3}\def\threex{??}% + \ifx\one\xkey\ifx\threex\three \key{#2}% + \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi + \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi +} % definition of @key that produces a lozenge. Doesn't adjust to text size. %\setfont\keyrm\rmshape{8}{1000}{OT1} @@ -3272,7 +3272,8 @@ end % Settings used for typesetting titles: no hyphenation, no indentation, % don't worry much about spacing, ragged right. This should be used % inside a \vbox, and fonts need to be set appropriately first. Because -% it is always used for titles, nothing else, we call \rmisbold. +% it is always used for titles, nothing else, we call \rmisbold. \par +% should be specified before the end of the \vbox, since a vbox is a group. % \def\raggedtitlesettings{% \rmisbold @@ -3289,7 +3290,7 @@ end \parseargdef\title{% \checkenv\titlepage - \vbox{\titlefonts \raggedtitlesettings #1} + \vbox{\titlefonts \raggedtitlesettings #1\par}% % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt @@ -4256,7 +4257,7 @@ end } \def\ifcmddefinedfail{\doignore{ifcommanddefined}} -% @ifcommandnotdefined CMD ... handlded similar to @ifclear above. +% @ifcommandnotdefined CMD ... handled similar to @ifclear above. \makecond{ifcommandnotdefined} \def\ifcommandnotdefined{% \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} @@ -5592,14 +5593,6 @@ end % Define @majorheading, @heading and @subheading -% NOTE on use of \vbox for chapter headings, section headings, and such: -% 1) We use \vbox rather than the earlier \line to permit -% overlong headings to fold. -% 2) \hyphenpenalty is set to 10000 because hyphenation in a -% heading is obnoxious; this forbids it. -% 3) Likewise, headings look best if no \parindent is used, and -% if justification is not attempted. Hence \raggedright. - \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz @@ -5607,10 +5600,8 @@ end \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% - {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\ptexraggedright - \rmisbold #1\hfill}}% - \bigskip \par\penalty 200\relax + \vbox{\chapfonts \raggedtitlesettings #1\par}% + \nobreak\bigskip \nobreak \suppressfirstparagraphindent } @@ -5769,8 +5760,7 @@ end % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright - \hangindent=\wd0 \centerparametersmaybe + \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title @@ -5792,18 +5782,18 @@ end \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} % \def\unnchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\ptexraggedright - \rmisbold #1\hfill}}\bigskip \par\nobreak + \chapoddpage + \vbox{\chapfonts \raggedtitlesettings #1\par}% + \nobreak\bigskip\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt - \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak + \chapoddpage + \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% + \nobreak\bigskip \nobreak } \def\CHAPFopen{% \global\let\chapmacro=\chfopen @@ -6569,16 +6559,9 @@ end \makedispenvdef{quotation}{\quotationstart} % \def\quotationstart{% - {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \parindent=0pt - % - % @cartouche defines \nonarrowing to inhibit narrowing at next level down. + \indentedblockstart % same as \indentedblock, but increase right margin too. \ifx\nonarrowing\relax - \advance\leftskip by \lispnarrowing \advance\rightskip by \lispnarrowing - \exdentamount = \lispnarrowing - \else - \let\nonarrowing = \relax \fi \parsearg\quotationlabel } @@ -6604,6 +6587,32 @@ end \fi } +% @indentedblock is like @quotation, but indents only on the left and +% has no optional argument. +% +\makedispenvdef{indentedblock}{\indentedblockstart} +% +\def\indentedblockstart{% + {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip + \parindent=0pt + % + % @cartouche defines \nonarrowing to inhibit narrowing at next level down. + \ifx\nonarrowing\relax + \advance\leftskip by \lispnarrowing + \exdentamount = \lispnarrowing + \else + \let\nonarrowing = \relax + \fi +} + +% Keep a nonzero parskip for the environment, since we're doing normal filling. +% +\def\Eindentedblock{% + \par + {\parskip=0pt \afterenvbreak}% +} +\def\Esmallindentedblock{\Eindentedblock} + % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>} % If we want to allow any <char> as delimiter, @@ -7082,7 +7091,10 @@ end \df \sl \hyphenchar\font=0 % % On the other hand, if an argument has two dashes (for instance), we - % want a way to get ttsl. Let's try @var for that. + % want a way to get ttsl. We used to recommend @var for that, so + % leave the code in, but it's strange for @var to lead to typewriter. + % Nowadays we recommend @code, since the difference between a ttsl hyphen + % and a tt hyphen is pretty tiny. @code also disables ?` !`. \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45