Skip to content
Browse files

init emacs 23.2.92

  • Loading branch information...
0 parents commit 9e7fc2f48cc416668a46799aba9349a0a7c1f63e @railwaycat committed Jan 17, 2011
Showing with 45,525 additions and 0 deletions.
  1. +12 −0 .dir-locals.el
  2. +23 −0 BUGS
  3. +674 −0 COPYING
  4. +7,943 −0 ChangeLog
  5. +766 −0 INSTALL
  6. +881 −0
  7. +105 −0 README
  8. +305 −0 config.bat
  9. +1,494 −0 config.guess
  10. +1,700 −0 config.sub
  11. +14,869 −0 configure
  12. +3,180 −0
  13. +7,370 −0 doc/emacs/ChangeLog
  14. +166 −0 doc/emacs/
  15. +461 −0 doc/emacs/abbrevs.texi
  16. +1,416 −0 doc/emacs/ack.texi
  17. +141 −0 doc/emacs/anti.texi
  18. +192 −0 doc/emacs/arevert-xtra.texi
  19. +732 −0 doc/emacs/basic.texi
  20. +680 −0 doc/emacs/buffers.texi
  21. +1,509 −0 doc/emacs/building.texi
  22. +906 −0 doc/emacs/cal-xtra.texi
Sorry, we could not display the entire diff because too many files (4,321) changed.
12 .dir-locals.el
@@ -0,0 +1,12 @@
+((nil . ((tab-width . 8)
+ (fill-column . 70)))
+ (c-mode . ((c-file-style . "GNU")))
+ ;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work.
+ ;; See admin/notes/bugtracker.
+ (log-edit-mode . ((log-edit-rewrite-fixes
+ " (bug#\\([0-9]+\\))" . "debbugs:\\1")))
+ (change-log-mode . ((add-log-time-zone-rule . t)
+ (fill-column . 74)
+ (bug-reference-url-format . "")
+ (mode . bug-reference))))
@@ -0,0 +1,23 @@
+If you think you may have found a bug in GNU Emacs, please read the
+Bugs section of the Emacs manual for advice on
+(1) how to tell when to report a bug, and
+(2) how to write a useful bug report and what information it needs to have.
+You can read the read the Bugs section of the manual from inside Emacs.
+Start Emacs, do C-h i to enter Info, then m Emacs RET to get to the
+Emacs manual, then m Bugs RET to get to the section on bugs.
+Or you can use the standalone Info program in a like manner.
+(Standalone Info is part of the Texinfo distribution, not part of the
+Emacs distribution.)
+Printed copies of the Emacs manual can be purchased from the Free
+Software Foundation's online store at <>.
+If necessary, you can read the manual without an info program:
+ cat info/emacs* | more "+/^File: emacs, Node: Bugs,"
+Please first check the file etc/PROBLEMS (e.g. with C-h C-p in Emacs) to
+make sure it isn't a known issue.
@@ -0,0 +1,674 @@
+ Version 3, 29 June 2007
+ Copyright (C) 2007 Free Software Foundation, Inc. <>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+ Preamble
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. 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
+them 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 prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. 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.
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+ The precise terms and conditions for copying, distribution and
+modification follow.
+ 0. Definitions.
+ "This License" refers to version 3 of the GNU General Public License.
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+ 1. Source Code.
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+ The Corresponding Source for a work in source code form is that
+same work.
+ 2. Basic Permissions.
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+ 4. Conveying Verbatim Copies.
+ You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+ 5. Conveying Modified Source Versions.
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+ 6. Conveying Non-Source Forms.
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+ 7. Additional Terms.
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+ 8. Termination.
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+ 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, you do not qualify to receive new licenses for the same
+material under section 10.
+ 9. Acceptance Not Required for Having Copies.
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+ 10. Automatic Licensing of Downstream Recipients.
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+ 11. Patents.
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+ 12. No Surrender of Others' Freedom.
+ If 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 convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+ 13. Use with the GNU Affero General Public License.
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+ 14. Revised Versions of this License.
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU 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 that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+ 15. Disclaimer of Warranty.
+ 16. Limitation of Liability.
+ 17. Interpretation of Sections 15 and 16.
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+ 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
+state 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) <year> <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 3 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
+ 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, see <>.
+Also add information on how to contact you by electronic and paper mail.
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+ <program> Copyright (C) <year> <name of author>
+ This program 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, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+ The GNU 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 Lesser General
+Public License instead of this License. But first, please read
7,943 ChangeLog
7,943 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
@@ -0,0 +1,766 @@
+GNU Emacs Installation Guide
+Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
+ 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ Free Software Foundation, Inc.
+See the end of the file for license conditions.
+This file contains general information on building GNU Emacs.
+For more information specific to the MS-Windows, GNUstep/Mac OS X, and
+MS-DOS ports, also read the files nt/INSTALL, nextstep/INSTALL, and
+msdos/INSTALL. For information about building from a Bazaar checkout
+(rather than a release), also read the file INSTALL.BZR.
+On most Unix systems, you build Emacs by first running the `configure'
+shell script. This attempts to deduce the correct values for
+various system-dependent variables and features, and find the
+directories where certain system headers and libraries are kept.
+In a few cases, you may need to explicitly tell configure where to
+find some things, or what options to use.
+`configure' creates a `Makefile' in several subdirectories, and a
+`src/config.h' file containing system-dependent definitions.
+Running the `make' utility then builds the package for your system.
+Here's the procedure to build Emacs using `configure' on systems which
+are supported by it. In some cases, if the simplified procedure fails,
+you might need to use various non-default options, and maybe perform
+some of the steps manually. The more detailed description in the other
+sections of this guide will help you do that, so please refer to those
+sections if you need to.
+ 1. Unpacking the Emacs 23.2 release requires about 170 MB of free
+ disk space. Building Emacs uses about another 60 MB of space.
+ The final installed Emacs uses about 120 MB of disk space.
+ This includes the space-saving that comes from automatically
+ compressing the Lisp source files on installation.
+ 2a. `cd' to the directory where you unpacked Emacs and invoke the
+ `configure' script:
+ ./configure
+ 2b. Alternatively, create a separate directory, outside the source
+ directory, where you want to build Emacs, and invoke `configure'
+ from there:
+ SOURCE-DIR/configure
+ where SOURCE-DIR is the top-level Emacs source directory.
+ This may not work unless you use GNU make.
+ 3. When `configure' finishes, it prints several lines of details
+ about the system configuration. Read those details carefully
+ looking for anything suspicious, such as wrong CPU and operating
+ system names, wrong places for headers or libraries, missing
+ libraries that you know are installed on your system, etc.
+ If you find anything wrong, you may have to pass to `configure'
+ one or more options specifying the explicit machine configuration
+ name, where to find various headers and libraries, etc.
+ Refer to the section DETAILED BUILDING AND INSTALLATION below.
+ If `configure' didn't find some (optional) image support libraries,
+ such as Xpm, jpeg, etc., and you want to use them, refer to the
+ subsection "Image support libraries" below.
+ If the details printed by `configure' don't make any sense to
+ you, but there are no obvious errors, assume that `configure' did
+ its job and proceed.
+ 4. If you need to run the `configure' script more than once (e.g.,
+ with some non-default options), always clean the source
+ directories before running `configure' again:
+ make distclean
+ ./configure
+ 5. Invoke the `make' program:
+ make
+ 6. If `make' succeeds, it will build an executable program `emacs'
+ in the `src' directory. You can try this program, to make sure
+ it works:
+ src/emacs -Q
+ 7. Assuming that the program `src/emacs' starts and displays its
+ opening screen, you can install the program and its auxiliary
+ files into their installation directories:
+ make install
+ You are now ready to use Emacs. If you wish to conserve disk space,
+ you may remove the program binaries and object files from the
+ directory where you built Emacs:
+ make clean
+ You can delete the entire build directory if you do not plan to
+ build Emacs again, but it can be useful to keep for debugging.
+ Note that the install automatically saves space by compressing
+ (provided you have the `gzip' program) those installed Lisp source (.el)
+ files that have corresponding .elc versions. You may also wish
+ to compress the installed Info files.
+* Complex Text Layout support libraries
+Emacs needs the optional libraries "m17n-db", "libm17n-flt", "libotf"
+to correctly display such complex scripts as Indic and Khmer.
+On some systems, particularly GNU/Linux, these libraries may be
+already present or available as additional packages. Note that if
+there is a separate `dev' or `devel' package, for use at compilation
+time rather than run time, you will need that as well as the
+corresponding run time package; typically the dev package will contain
+header files and a library archive. Otherwise, you can download and
+build libraries from sources.
+The sources of these libraries are available by anonymous CVS from
+ % cvs -d login
+ % cvs -d co m17n-db
+ % cvs -d co m17n-lib
+ % cvs -d co libotf
+For m17n-lib, if you have problems with making the whole package
+because you lack some other packages on which m17n-lib depends, try to
+configure it with the option "--without-gui".
+* intlfonts-VERSION.tar.gz
+The intlfonts distribution contains X11 fonts in various encodings
+that Emacs can use to display international characters. If you see a
+non-ASCII character appear as a hollow box, that means you don't have
+a font for it. You might find one in the intlfonts distribution. If
+you do have a font for a non-ASCII character, but some characters
+don't look right, or appear improperly aligned, a font from the
+intlfonts distribution might look better.
+The fonts in the intlfonts distribution are also used by the ps-print
+package for printing international characters. The file
+lisp/ps-mule.el defines the *.bdf font files required for printing
+each character set.
+The intlfonts distribution contains its own installation instructions,
+in the intlfonts/README file.
+* Image support libraries
+Emacs needs optional libraries to be able to display images (with the
+exception of PBM and XBM images whose support is built-in).
+On some systems, particularly on GNU/Linux, these libraries may
+already be present or available as additional packages. Note that if
+there is a separate `dev' or `devel' package, for use at compilation
+time rather than run time, you will need that as well as the
+corresponding run time package; typically the dev package will
+contain header files and a library archive. Otherwise, you can
+download and build libraries from sources. None of them are vital for
+running Emacs; however, note that Emacs will not be able to use
+colored icons in the toolbar if XPM support is not compiled in.
+Here's the list of some of these optional libraries, and the URLs
+where they can be found (in the unlikely event that your distribution
+does not provide them):
+ . libXaw3d
+ . libxpm for XPM:
+ . libpng for PNG:
+ . libz (for PNG):
+ . libjpeg for JPEG:
+ . libtiff for TIFF:
+ . libgif for GIF:
+Emacs will configure itself to build with these libraries if the
+`configure' script finds them on your system, unless you supply the
+appropriate --without-LIB option. In some cases, older versions of
+these libraries won't work because some routines are missing, and
+configure should avoid such old versions. If that happens, use the
+--without-LIB options to `configure', if you need to.
+* Extra fonts
+The Emacs distribution does not include fonts and does not install
+On the GNU system, Emacs supports both X fonts and local fonts
+(i.e. fonts managed by the fontconfig library). If you need more
+fonts than your distribution normally provides, you must install them
+yourself. See <URL:> for a large
+number of free Unicode fonts.
+* GNU/Linux development packages
+Many GNU/Linux systems do not come with development packages by default;
+they include the files that you need to run Emacs, but not those you
+need to compile it. For example, to compile Emacs with support for X
+and graphics libraries, you may need to install the `X development'
+package(s), and development versions of the jpeg, png, etc. packages.
+The names of the packages that you need varies according to the
+GNU/Linux distribution that you use, and the options that you want to
+configure Emacs with. On Debian-based systems, you can install all the
+packages needed to build the installed version of Emacs with a command
+like `apt-get build-dep emacs23'.
+(This is for a Unix or Unix-like system. For MS-DOS and MS Windows 3.X,
+see msdos/INSTALL. For later versions of MS Windows, see the file
+nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.)
+1) Make sure your system has enough swapping space allocated to handle
+a program whose pure code is 1.5 MB and whose data area is at
+least 2.8 MB and can reach 100 MB or more. If the swapping space is
+insufficient, you will get an error in the command `temacs -batch -l
+loadup dump', found in `./src/', or possibly when
+running the final dumped Emacs. (This should not be an issue
+on any recent system.)
+Building Emacs requires about 230 MB of disk space (including the
+Emacs sources). Once installed, Emacs occupies about 120 MB in the file
+system where it is installed; this includes the executable files, Lisp
+libraries, miscellaneous data files, and on-line documentation. If
+the building and installation take place in different directories,
+then the installation procedure momentarily requires 230+120 MB.
+2) In the unlikely event that `configure' does not detect your system
+type correctly, consult `./etc/MACHINES' to see what --host, --build
+options you should pass to `configure'. That file also offers hints
+for getting around some possible installation problems.
+3) You can build Emacs in the top-level Emacs source directory
+or in a separate directory.
+3a) To build in the top-level Emacs source directory, go to that
+directory and run the program `configure' as follows:
+ ./configure [--OPTION[=VALUE]] ...
+If `configure' cannot determine your system type, try again
+specifying the proper --build, --host options explicitly.
+If you don't want X support, specify `--with-x=no'. If you omit this
+option, `configure' will try to figure out for itself whether your
+system has X, and arrange to use it if present.
+The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build
+process where the compiler should look for the include files and
+object libraries used with the X Window System. Normally, `configure'
+is able to find them; these options are necessary if you have your X
+Window System files installed in unusual places. These options also
+accept a list of directories, separated with colons.
+To get more attractive menus, you can specify an X toolkit when you
+configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where
+TOOLKIT is `gtk' (the default), `athena', or `motif' (`yes' and
+`lucid' are synonyms for `athena'). On some systems, it does not work
+to use a toolkit with shared libraries. A free implementation of
+Motif, called LessTif, is available from <>.
+Compiling with LessTif or Motif causes a standard File Selection
+Dialog to pop up when you invoke file commands with the mouse. You
+can get fancy 3D-style scroll bars, even without Gtk or LessTif/Motif,
+if you have the Xaw3d library installed (see "Image support libraries"
+above for Xaw3d availability).
+You can tell configure where to search for GTK by specifying
+`--with-pkg-config-prog=PATH' where PATH is the pathname to
+pkg-config. Note that GTK version 2.6 or newer is required for Emacs.
+The Emacs mail reader RMAIL is configured to be able to read mail from
+a POP3 server by default. Versions of the POP protocol older than
+POP3 are not supported. For Kerberos-authenticated POP add
+`--with-kerberos', for Hesiod support add `--with-hesiod'. While POP3
+is always enabled, whether Emacs actually uses POP is controlled by
+individual users--see the Rmail chapter of the Emacs manual.
+For image support you may have to download, build, and install the
+appropriate image support libraries for image types other than XBM and
+PBM, see the list of URLs in "ADDITIONAL DISTRIBUTION FILES" above.
+(Note that PNG support requires libz in addition to libpng.)
+To disable individual types of image support in Emacs for some reason,
+even though configure finds the libraries, you can configure with one
+or more of these options:
+ --without-xpm for XPM image support
+ --without-jpeg for JPEG image support
+ --without-tiff for TIFF image support
+ --without-gif for GIF image support
+ --without-png for PNG image support
+Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d
+scroll bars.
+Use --without-xim to inhibit the default use of X Input Methods.
+In this case, the X resource useXIM can be used to turn on use of XIM.
+Use --disable-largefile to omit support for files larger than 2GB on
+systems which support that.
+Use --without-sound to disable sound support.
+The `--prefix=PREFIXDIR' option specifies where the installation process
+should put emacs and its data files. This defaults to `/usr/local'.
+- Emacs (and the other utilities users run) go in PREFIXDIR/bin
+ (unless the `--exec-prefix' option says otherwise).
+- The architecture-independent files go in PREFIXDIR/share/emacs/VERSION
+ (where VERSION is the version number of Emacs, like `23.2').
+- The architecture-dependent files go in
+ (where CONFIGURATION is the configuration name, like
+ i686-pc-linux-gnu), unless the `--exec-prefix' option says otherwise.
+The `--exec-prefix=EXECDIR' option allows you to specify a separate
+portion of the directory tree for installing architecture-specific
+files, like executables and utility programs. If specified,
+- Emacs (and the other utilities users run) go in EXECDIR/bin, and
+- The architecture-dependent files go in
+EXECDIR/bin should be a directory that is normally in users' PATHs.
+For example, the command
+ ./configure --build=i386-linux-gnu --without-sound
+configures Emacs to build for a 32-bit GNU/Linux distribution,
+without sound support.
+`configure' doesn't do any compilation or installation itself.
+It just creates the files that influence those things:
+`./Makefile' in the top-level directory and several subdirectories;
+and `./src/config.h'. For details on exactly what it does, see the
+section called `CONFIGURATION BY HAND', below.
+When it is done, `configure' prints a description of what it did and
+creates a shell script `config.status' which, when run, recreates the
+same configuration. If `configure' exits with an error after
+disturbing the status quo, it removes `config.status'. `configure'
+also creates a file `config.cache' that saves the results of its tests
+to make reconfiguring faster, and a file `config.log' containing compiler
+output (useful mainly for debugging `configure'). You can give
+`configure' the option `--cache-file=FILE' to use the results of the
+tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to
+disable caching, for debugging `configure'.
+If the description of the system configuration printed by `configure'
+is not right, or if it claims some of the features or libraries are not
+available when you know they are, look at the `config.log' file for
+the trace of the failed tests performed by `configure' to check
+whether these features are supported. Typically, some test fails
+because the compiler cannot find some function in the system
+libraries, or some macro-processor definition in the system headers.
+Some tests might fail because the compiler should look in special
+directories for some header files, or link against optional
+libraries, or use special compilation options. You can force
+`configure' and the build process which follows it to do that by
+setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, CPP and CC
+before running `configure'. CPP is the command which invokes the
+preprocessor, CPPFLAGS lists the options passed to it, CFLAGS are
+compilation options, LDFLAGS are options used when linking, LIBS are
+libraries to link against, and CC is the command which invokes the
+compiler. By default, gcc is used if available.
+Here's an example of a `configure' invocation, assuming a Bourne-like
+shell such as Bash, which uses these variables:
+ CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \
+ CFLAGS='-O3' LIBS='-lfoo -lbar' ./configure
+(this is all one long line). This tells `configure' to instruct the
+preprocessor to look in the `/foo/myinclude' directory for header
+files (in addition to the standard directories), instruct the linker
+to look in `/bar/mylib' for libraries, pass the -O3 optimization
+switch to the compiler, and link against libfoo and libbar
+libraries in addition to the standard ones.
+For some libraries, like Gtk+, fontconfig and ALSA, `configure' uses
+pkg-config to find where those libraries are installed.
+If you want pkg-config to look in special directories, you have to set
+the environment variable PKG_CONFIG_PATH to point to the directories
+where the .pc-files for those libraries are.
+For example:
+ PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig' \
+ ./configure
+The work of `configure' can be done by editing various files in the
+distribution, but using `configure' is easier. See the section called
+"CONFIGURATION BY HAND" below if you want to do the configuration
+3b) To build in a separate directory, go to that directory
+and run the program `configure' as follows:
+SOURCE-DIR refers to the top-level Emacs source directory which is
+where Emacs's configure script is located. `configure' looks for the
+Emacs source code in the directory that `configure' is in.
+To build in a separate directory, you must use a version of `make'
+that supports the `VPATH' variable, such as GNU `make'.
+(Do not try to build in a separate directory by creating many links
+to the real source directory--there is no need, and installation will
+4) Look at `./lisp/paths.el'; if some of those values are not right
+for your system, set up the file `./lisp/site-init.el' with Emacs
+Lisp code to override them; it is not a good idea to edit paths.el
+rather than `defvar', as used by `./lisp/paths.el'. For example,
+ (setq news-inews-program "/usr/bin/inews")
+is how you would override the default value of the variable
+Before you override a variable this way, *look at the value* that the
+variable gets by default! Make sure you know what kind of value the
+variable should have. If you don't pay attention to what you are
+doing, you'll make a mistake.
+5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
+Lisp code you want Emacs to load before it is dumped out. Use
+site-load.el for additional libraries if you arrange for their
+documentation strings to be in the etc/DOC file (see
+src/ if you wish to figure out how to do that). For all
+else, use site-init.el. Do not load byte-compiled code which
+was built with a non-nil value of `byte-compile-dynamic'.
+If you set load-path to a different value in site-init.el or
+site-load.el, Emacs will use *precisely* that value when it starts up
+again. If you do this, you are on your own!
+The `site-*.el' files are nonexistent in the distribution. You do not
+need to create them if you have nothing to put in them.
+6) Refer to the file `./etc/TERMS' for information on fields you may
+wish to add to various termcap entries. (This is unlikely to be necessary.)
+7) Run `make' in the top directory of the Emacs distribution to finish
+building Emacs in the standard way. The final executable file is
+named `src/emacs'. You can execute this file "in place" without
+copying it, if you wish; then it automatically uses the sibling
+directories ../lisp, ../lib-src, ../info.
+Or you can "install" the executable and the other files into their
+installed locations, with `make install'. By default, Emacs's files
+are installed in the following directories:
+`/usr/local/bin' holds the executable programs users normally run -
+ `emacs', `etags', `ctags', `b2m', `emacsclient',
+ `grep-changelog', and `rcs-checkin'.
+`/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
+ `VERSION' stands for the number of the Emacs version
+ you are installing, like `23.1' or `23.2'. Since the
+ Lisp library changes from one version of Emacs to
+ another, including the version number in the path
+ allows you to have several versions of Emacs installed
+ at the same time; in particular, you don't have to
+ make Emacs unavailable while installing a new version.
+`/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
+ file, and other architecture-independent files Emacs
+ might need while running.
+`/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable
+ programs used by Emacs that users are not expected to
+ run themselves.
+ `VERSION' is the number of the Emacs version you are
+ installing, and `CONFIGURATION-NAME' is the value
+ deduced by the `configure' program to identify the
+ architecture and operating system of your machine,
+ like `i686-pc-linux-gnu' or `sparc-sun-sunos'. Since
+ these files are specific to the version of Emacs,
+ operating system, and architecture in use, including
+ the configuration name in the path allows you to have
+ several versions of Emacs for any mix of machines and
+ operating systems installed at the same time; this is
+ useful for sites at which different kinds of machines
+ share the file system Emacs is installed on.
+`/usr/local/share/info' holds the on-line documentation for Emacs,
+ known as "info files". Many other GNU programs are
+ documented using info files as well, so this directory
+ stands apart from the other, Emacs-specific directories.
+`/usr/local/share/man/man1' holds the man pages for the programs installed
+ in `/usr/local/bin'.
+Any version of Emacs, whether installed or not, also looks for Lisp
+files in these directories.
+`/usr/local/share/emacs/VERSION/site-lisp' holds the local Emacs Lisp
+ files installed for Emacs version VERSION only.
+`/usr/local/share/emacs/site-lisp' holds the local Emacs Lisp
+ files installed for all Emacs versions.
+ When Emacs is installed, it searches for its Lisp files
+ in `/usr/local/share/emacs/VERSION/site-lisp', then in
+ `/usr/local/share/emacs/site-lisp', and finally in
+ `/usr/local/share/emacs/VERSION/lisp'.
+If these directories are not what you want, you can specify where to
+install Emacs's libraries and data files or where Emacs should search
+for its Lisp files by giving values for `make' variables as part of
+the command. See the section below called `MAKE VARIABLES' for more
+information on this.
+8) Check the file `dir' in your site's info directory (usually
+/usr/local/share/info) to make sure that it has a menu entry for the
+Emacs info files.
+9) If your system uses lock files to interlock access to mailer inbox files,
+then you might need to make the movemail program setuid or setgid
+to enable it to write the lock files. We believe this is safe.
+10) You are done! You can remove executables and object files from
+the build directory by typing `make clean'. To also remove the files
+that `configure' created (so you can compile Emacs for a different
+configuration), type `make distclean'. If you don't need some, or all
+of the input methods from the Leim package, you can remove the
+unneeded files in the leim subdirectories of your site's lisp
+directory (usually /usr/local/share/emacs/VERSION/).
+You can change where the build process installs Emacs and its data
+files by specifying values for `make' variables as part of the `make'
+command line. For example, if you type
+ make install bindir=/usr/local/gnubin
+the `bindir=/usr/local/gnubin' argument indicates that the Emacs
+executable files should go in `/usr/local/gnubin', not
+Here is a complete list of the variables you may want to set.
+`bindir' indicates where to put executable programs that users can
+ run. This defaults to /usr/local/bin.
+`datadir' indicates where to put the architecture-independent
+ read-only data files that Emacs refers to while it runs; it
+ defaults to /usr/local/share. We create the following
+ subdirectories under `datadir':
+ - `emacs/VERSION/lisp', containing the Emacs Lisp library, and
+ - `emacs/VERSION/etc', containing the tutorials, DOC file, etc.
+ `VERSION' is the number of the Emacs version you are installing,
+ like `23.1' or `23.2'. Since these files vary from one version
+ of Emacs to another, including the version number in the path
+ allows you to have several versions of Emacs installed at the
+ same time; this means that you don't have to make Emacs
+ unavailable while installing a new version.
+`libexecdir' indicates where to put architecture-specific data files that
+ Emacs refers to as it runs; it defaults to `/usr/local/libexec'.
+ We create the following subdirectories under `libexecdir':
+ - `emacs/VERSION/CONFIGURATION-NAME', containing executable
+ programs used by Emacs that users are not expected to run
+ themselves.
+ `VERSION' is the number of the Emacs version you are installing,
+ and `CONFIGURATION-NAME' is the value deduced by the
+ `configure' program to identify the architecture and operating
+ system of your machine, like `i686-pc-linux-gnu' or `sparc-sun-sunos'.
+ Since these files are specific to the version of Emacs,
+ operating system, and architecture in use, including the
+ configuration name in the path allows you to have several
+ versions of Emacs for any mix of machines and operating
+ systems installed at the same time; this is useful for sites
+ at which different kinds of machines share the file system
+ Emacs is installed on.
+`infodir' indicates where to put the info files distributed with
+ Emacs; it defaults to `/usr/local/share/info'.
+`mandir' indicates where to put the man pages for Emacs and its
+ utilities (like `etags'); it defaults to
+ `/usr/local/share/man/man1'.
+`prefix' doesn't give a path for any specific part of Emacs; instead,
+ its value is used to determine the defaults for all the
+ architecture-independent path variables - `datadir',
+ `sharedstatedir', `infodir', and `mandir'. Its default value is
+ `/usr/local'; the other variables add on `lib' or `man' to it
+ by default.
+ For example, suppose your site generally places GNU software
+ under `/usr/users/software/gnusoft' instead of `/usr/local'.
+ By including
+ `prefix=/usr/users/software/gnusoft'
+ in the arguments to `make', you can instruct the build process
+ to place all of the Emacs data files in the appropriate
+ directories under that path.
+`exec_prefix' serves the same purpose as `prefix', but instead
+ determines the default values for the architecture-dependent
+ path variables - `bindir' and `libexecdir'.
+The above variables serve analogous purposes in the makefiles for all
+GNU software; the following variable is specific to Emacs.
+`archlibdir' indicates where Emacs installs and expects the executable
+ files and other architecture-dependent data it uses while
+ running. Its default value, based on `libexecdir' (which
+ see), is `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME'
+ (where VERSION and CONFIGURATION-NAME are as described above).
+Remember that you must specify any variable values you need each time
+you run `make' in the top directory. If you run `make' once to build
+emacs, test it, and then run `make' again to install the files, you
+must provide the same variable settings each time. To make the
+settings persist, you can edit them into the `Makefile' in the top
+directory, but be aware that running the `configure' program erases
+`Makefile' and rebuilds it from `'.
+The path for finding Lisp files is specified in src/epaths.h,
+a file which is generated by running configure. To change the path,
+you can edit the definition of PATH_LOADSEARCH in that file
+before you run `make'.
+The top-level Makefile stores the variable settings it used in the
+Makefiles for the subdirectories, so you don't have to specify them
+when running make in the subdirectories.
+This should not be necessary and is not recommended. Instead of
+running the `configure' program, you have to perform the following steps.
+1) Copy `./src/' to `./src/config.h'.
+2) Consult `./etc/MACHINES' to see what configuration name you should
+use for your system. Look at the code of the `configure' script to
+see which operating system and architecture description files from
+`src/s' and `src/m' should be used for that configuration name. Edit
+`src/config.h', and change the two `#include' directives to include
+the appropriate system and architecture description files.
+2) Edit `./src/config.h' to set the right options for your system. If
+you need to override any of the definitions in the s/*.h and m/*.h
+files for your system and machine, do so by editing config.h, not by
+changing the s/*.h and m/*.h files.
+3) Create src/Makefile and lib-src/Makefile from the corresponding
+`' files. First copy `' to `Makefile.c',
+then edit in appropriate substitutions for the @...@ constructs,
+and then copy the shell commands near the end of `configure'
+that run cpp to construct `Makefile'.
+4) Create `Makefile' files in various other directories from the
+corresponding `' files. This isn't so hard, just a matter
+of editing in appropriate substitutions for the @...@ constructs.
+The `configure' script is built from `' by the `autoconf'
+program. You need at least the version of autoconf specified in the
+AC_PREREQ(...) command to rebuild `configure' from `'.
+Once Emacs is configured, running `make' in the top directory performs
+the following steps.
+1) Run `make epaths-force' in the top directory. This produces
+`./src/epaths.h' from the template file `./src/', changing
+the paths to the values specified in `./Makefile'.
+2) Go to directory `./lib-src' and run `make'. This creates
+executables named `ctags' and `etags' and `make-docfile' and
+`digest-doc' and `test-distrib'. And others.
+3) Go to directory `./src' and run `make'. This refers to files in
+the `./lisp' and `./lib-src' subdirectories using names `../lisp' and
+This creates a file `./src/emacs' which is the runnable Emacs,
+which has another name that contains a version number.
+Each time you do this, that version number increments in the last place.
+It also creates a file in `./etc' whose name is `DOC' followed by the
+current Emacs version. This file contains documentation strings for
+all the functions in Emacs. Each time you run make to make a new
+emacs, a new DOC file with a new name is made. You must keep the DOC
+file for an Emacs version as long as you keep using that Emacs version.
+The steps below are done by running `make install' in the main
+directory of the Emacs distribution.
+1) Copy `./lisp' and its subdirectories, `./etc', and the executables
+in `./lib-src' to their final destinations, as selected in `./src/epaths.h'.
+Strictly speaking, not all of the executables in `./lib-src' need be copied.
+- The programs `fakemail', `hexl', `movemail', `profile', `rcs2log',
+ and `vcdiff' are used by Emacs; they do need to be copied.
+- The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin'
+ are intended to be run by users; they are handled below.
+- The programs `make-docfile' and `test-distrib' were
+ used in building Emacs, and are not needed any more.
+- The programs `digest-doc' and `sorted-doc' convert a `DOC' file into
+ a file for users to read. There is no important reason to move them.
+2) Copy the files in `./info' to the place specified in
+`./lisp/site-init.el' or `./lisp/paths.el'. Note that if the
+destination directory already contains a file named `dir', you
+probably don't want to replace it with the `dir' file in the Emacs
+distribution. Instead, you should make sure that the existing `dir'
+file contains an appropriate menu entry for the Emacs info.
+3) Copy `./src/emacs' to `/usr/local/bin', or to some other directory
+in users' search paths. `./src/emacs' has an alternate name
+`./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
+`/usr/local/bin/emacs' pointing to that alternate name, as an easy way
+of installing different versions.
+You can delete `./src/temacs'.
+4) Copy the programs `b2m', `emacsclient', `ctags', `etags', and
+`rcs-checkin' from `./lib-src' to `/usr/local/bin'. These programs are
+intended for users to run.
+5) Copy the man pages in `./doc/man' into the appropriate man directory.
+6) The files in the `./src' subdirectory, except for `emacs', are not
+used by Emacs once it is built. However, it is very desirable to keep
+the source on line for debugging.
+See the file `./etc/PROBLEMS' for a list of various problems sometimes
+encountered, and what to do about them.
+This file is part of GNU Emacs.
+GNU Emacs 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 3 of the License, or
+(at your option) any later version.
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with GNU Emacs. If not, see <>.
@@ -0,0 +1,881 @@
+# DIST: This is the distribution Makefile for Emacs. configure can
+# DIST: make most of the changes to this file you might want, so try
+# DIST: that first.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+# Free Software Foundation, Inc.
+# This file is part of GNU Emacs.
+# GNU Emacs 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 3 of the License, or
+# (at your option) any later version.
+# GNU Emacs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs. If not, see <>.
+### Commentary:
+# make all to compile and build Emacs.
+# make install to install it.
+# make TAGS to update tags tables.
+# make clean or make mostlyclean
+# Delete all files from the current directory that are normally
+# created by building the program. Don't delete the files that
+# record the configuration. Also preserve files that could be made
+# by building, but normally aren't because the distribution comes
+# with them.
+# Delete `.dvi' files here if they are not part of the distribution.
+# make distclean
+# Delete all files from the current directory that are created by
+# configuring or building the program. If you have unpacked the
+# source and built the program without creating any other files,
+# `make distclean' should leave only the files that were in the
+# distribution.
+# make maintainer-clean
+# Delete everything from the current directory that can be
+# reconstructed with this Makefile. This typically includes
+# everything deleted by distclean, plus more: .elc files,
+# C source files produced by Bison, tags tables, info files,
+# and so on.
+# make extraclean
+# Still more severe - delete backup and autosave files, too.
+# make bootstrap
+# Removes all the compiled files to force a new bootstrap from a
+# clean slate, and then build in the normal way.
+SHELL = /bin/sh
+# This may not work with certain non-GNU make's. It only matters when
+# inheriting a CDPATH not starting with the current directory.
+# If Make doesn't predefine MAKE, set it here.
+# ==================== Things `configure' Might Edit ====================
+### These help us choose version- and architecture-specific directories
+### to install files in.
+### This should be the number of the Emacs version we're building,
+### like `18.59' or `19.0'.
+### This should be the name of the configuration we're building Emacs
+### for, like `mips-dec-ultrix' or `sparc-sun-sunos'.
+# ==================== Where To Install Things ====================
+# The default location for installation. Everything is placed in
+# subdirectories of this directory. The default values for many of
+# the variables below are expressed in terms of this one, so you may
+# not need to change them. This defaults to /usr/local.
+# Like `prefix', but used for architecture-specific files.
+# Where to install Emacs and other binaries that people will want to
+# run directly (like etags).
+# The root of the directory tree for read-only architecture-independent
+# data files. ${datadir}, ${infodir} and ${mandir} are based on this.
+# Where to install architecture-independent data files. ${lispdir}
+# and ${etcdir} are subdirectories of this.
+# Where to install and expect the files that Emacs modifies as it
+# runs. These files are all architecture-independent.
+# Right now, this is not used.
+# Where to install and expect executable files to be run by Emacs
+# rather than directly by users, and other architecture-dependent
+# data. ${archlibdir} is a subdirectory of this.
+# Where to install Emacs's man pages.
+# This used to allow choice of the numeric extension, but this made
+# little sense since the files were always installed in man1/
+# (and they contain cross-references that expect them to be there).
+MAN_PAGES=b2m.1 ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \
+ grep-changelog.1 rcs-checkin.1
+# Where to install and expect the info files describing Emacs. In the
+# past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
+# since there are now many packages documented with the texinfo
+# system, it is inappropriate to imply that it is part of Emacs.
+INFO_FILES=ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse \
+ ede ediff edt eieio efaq eintr elisp emacs emacs-mime epa erc \
+ eshell eudc flymake forms gnus idlwave info mairix-el \
+ message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc \
+ reftex remember sasl sc semantic ses sieve smtpmail speedbar \
+ tramp url vip viper widget woman
+# Directory for local state files for all programs.
+# Where to look for bitmap files.
+# Where to find the source code. The source code for Emacs's C kernel is
+# expected to be in ${srcdir}/src, and the source code for Emacs's
+# utility programs is expected to be in ${srcdir}/lib-src. This is
+# set by the configure script's `--srcdir' option.
+# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
+# Where the manpage source files are kept.
+# Tell make where to find source files; this is needed for the makefiles.
+# Where to find the application default.
+# Location to install under NeXT/Open/GNUstep / Cocoa
+# Where the etc/emacs.desktop file is to be installed.
+# Where the etc/images/icons/hicolor directory is to be installed.
+# The source directory for the icon files.
+# ==================== Emacs-specific directories ====================
+# These variables hold the values Emacs will actually use. They are
+# based on the values of the standard Make variables above.
+# Where to install the lisp files distributed with
+# Emacs. This includes the Emacs version, so that the
+# lisp files for different versions of Emacs will install
+# themselves in separate directories.
+# Directories Emacs should search for lisp files specific
+# to this site (i.e. customizations), before consulting
+# ${lispdir}. This should be a colon-separated list of
+# directories.
+# Where Emacs will search to find its lisp files. Before
+# changing this, check to see if your purpose wouldn't
+# better be served by changing locallisppath. This
+# should be a colon-separated list of directories.
+# Where Emacs will search for its lisp files while
+# building. This is only used during the process of
+# compiling Emacs, to help Emacs find its lisp files
+# before they've been installed in their final location.
+# It's usually identical to lisppath, except that
+# it does not include locallisppath, and the
+# entry for the directory containing the installed lisp
+# files has been replaced with ../lisp. This should be a
+# colon-separated list of directories.
+# Where to install the other architecture-independent
+# data files distributed with Emacs (like the tutorial,
+# the cookie recipes and the Zippy database). This path
+# usually contains the Emacs version number, so the data
+# files for multiple versions of Emacs may be installed
+# at once.
+# Where to put executables to be run by Emacs rather than
+# the user. This path usually includes the Emacs version
+# and configuration name, so that multiple configurations
+# for multiple versions of Emacs may be installed at
+# once.
+# Where to put the docstring file.
+# Where to install Emacs game score files.
+# ==================== Utility Programs for the Build ====================
+# Allow the user to specify the install program.
+# By default, we uphold the dignity of our programs.
+# We use gzip to compress installed .el files.
+# ============================= Targets ==============================
+# Program name transformation.
+TRANSFORM = @program_transform_name@
+# What emacs should be called when installed.
+EMACS = `echo emacs${EXEEXT} | sed '$(TRANSFORM)'`
+EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
+# Subdirectories to make recursively. `lisp' is not included
+# because the compiled lisp files are part of the distribution.
+# leim is not included because it needs special handling.
+# Actually, we now include `lisp' as well, since the compiled files
+# are not included any more in case of bootstrap or in case Emacs was
+# checked out from a VCS.
+SUBDIR = lib-src src lisp
+# The subdir makefiles created by config.status.
+SUBDIR_MAKEFILES = lib-src/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispref/Makefile doc/lispintro/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile leim/Makefile lisp/Makefile
+# Subdirectories to install, and where they'll go.
+# lib-src's makefile knows how to install it, so we don't do that here.
+# leim's makefile also knows how to install it, so we don't do that here.
+# When installing the info files, we need to do special things to
+# avoid nuking an existing dir file, so we don't do that here;
+# instead, we have written out explicit code in the `install' targets.
+COPYDIR = ${srcdir}/etc ${srcdir}/lisp
+COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir}
+all: ${SUBDIR} leim
+removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
+# Generate epaths.h from This target is invoked by `configure'.
+epaths-force: FRC
+ @(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \
+ buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \
+ x_default_search_path=`echo ${x_default_search_path}`; \
+ gamedir=`echo ${gamedir}`; \
+ sed < ${srcdir}/src/ > epaths.h.$$$$ \
+ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'"$${lisppath}"'";' \
+ -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'"$${buildlisppath}"'";' \
+ -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";' \
+ -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \
+ -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \
+ -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";' \
+ -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \
+ -e 's;\(#.*PATH_GAME\).*$$;\1 "${gamedir}";' \
+ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \
+ -e 's;/[*] *arch-tag:.*;/*;') && \
+ ${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
+# For parallel make, src should be built before leim.
+# "export PARALLEL=0" is for SGI's Make, to prevent it from
+# running more than 1 process in the leim directory, especially for
+# the $TIT files there.
+leim: src Makefile FRC
+ (export PARALLEL; PARALLEL=0; cd $@; $(MAKE) all $(MFLAGS) \
+src: lib-src FRC
+# We need to build `emacs' in `src' to compile the *.elc files in `lisp'.
+lisp: src
+# These targets should be "${SUBDIR} without `src'".
+lib-src lisp: Makefile FRC
+ cd $@; $(MAKE) all $(MFLAGS) \
+# Pass to src/ an additional BOOTSTRAPEMACS variable which
+# is either set to bootstrap-emacs (in case bootstrap-emacs has not been
+# constructed yet) or the empty string (otherwise).
+# src/ uses it to implement conditional dependencies, so that
+# files that need bootstrap-emacs to be built do not additionally need
+# to be kept fresher than bootstrap-emacs. Otherwise changing a single
+# file src/foo.c forces dumping a new bootstrap-emacs, then re-byte-compiling
+# all preloaded elisp files, and only then dump the actual src/emacs, which
+# is not wrong, but is overkill in 99.99% of the cases.
+src: Makefile FRC
+ boot=bootstrap-emacs$(EXEEXT); \
+ if [ ! -x "src/$$boot" ]; then \
+ cd $@; $(MAKE) all $(MFLAGS) \
+ fi;
+ cd $@; $(MAKE) all $(MFLAGS) \
+blessmail: Makefile src FRC
+ cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \
+ MAKE='${MAKE}' archlibdir='$(archlibdir)'
+# We used to have one rule per */, but that leads to race
+# conditions with parallel makes, so let's assume that the time stamp on
+# ./Makefile is representative of the time stamp on all the other Makefiles.
+Makefile: config.status $(srcdir)/src/ \
+ $(srcdir)/ \
+ $(srcdir)/src/ \
+ $(srcdir)/lib-src/ \
+ $(srcdir)/doc/emacs/ \
+ $(srcdir)/doc/misc/ \
+ $(srcdir)/doc/lispref/ \
+ $(srcdir)/doc/lispintro/ \
+ $(srcdir)/oldXMenu/ \
+ $(srcdir)/lwlib/ \
+ $(srcdir)/leim/ \
+ $(srcdir)/lisp/
+ ./config.status
+config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
+ ./config.status --recheck
+AUTOCONF_INPUTS = @MAINT@ $(srcdir)/ $(srcdir)/m4/getopt.m4
+$(srcdir)/configure: $(AUTOCONF_INPUTS)
+ cd ${srcdir} && autoconf
+$(srcdir)/src/ $(srcdir)/src/
+ @true
+$(srcdir)/src/ $(AUTOCONF_INPUTS)
+ cd ${srcdir} && autoheader
+ rm -f $(srcdir)/src/
+ echo timestamp > $(srcdir)/src/
+# ==================== Installation ====================
+## If we let lib-src do its own installation, that means we
+## don't have to duplicate the list of utilities to install in
+## this Makefile as well.
+## On AIX, use tar xBf.
+## On Xenix, use tar xpf.
+.PHONY: install mkdir
+## We delete each directory in ${COPYDESTS} before we copy into it;
+## that way, we can reinstall over directories that have been put in
+## place with their files read-only (perhaps because they are checked
+## into RCS). In order to make this safe, we make sure that the
+## source exists and is distinct from the destination.
+### We do install-arch-indep first because
+### the executable needs the Lisp files and DOC file to work properly.
+install: all install-arch-indep install-arch-dep install-leim blessmail
+ @true
+MV_DIRS = for i in $$dir; do rm -fr `basename "$$i"` ; mv "$$i" . ; done
+### Install the executables that were compiled specifically for this machine.
+### It would be nice to do something for a parallel make
+### to ensure that install-arch-indep finishes before this starts.
+install-arch-dep: mkdir
+ (cd lib-src; \
+ $(MAKE) install $(MFLAGS) prefix=${prefix} \
+ exec_prefix=${exec_prefix} bindir=${bindir} \
+ libexecdir=${libexecdir} archlibdir=${archlibdir} \
+ -chmod 1755 $(DESTDIR)${bindir}/$(EMACSFULL)
+ rm -f $(DESTDIR)${bindir}/$(EMACS)
+ -ln $(DESTDIR)${bindir}/$(EMACSFULL) $(DESTDIR)${bindir}/$(EMACS)
+ -unset CDPATH; \
+ for f in `cd lib-src && echo fns-*.el`; do \
+ if test -r lib-src/$$f ; then \
+ ${INSTALL_DATA} lib-src/$$f $(DESTDIR)${archlibdir}/$$f; \
+ else true; fi ; \
+ done
+ if test "${ns_appdir}" != ""; then \
+ ( cd ${ns_appresdir} ; \
+ if test -d share/emacs ; then dir=share/emacs/*/*; $(MV_DIRS); fi;\
+ if test -d share/info ; then dir=share/info; $(MV_DIRS) ; fi ; \
+ rm -fr share ) ; \
+ ( cd ${ns_appbindir}/libexec ; dir=emacs/*/*/* ; $(MV_DIRS); \
+ rm -fr emacs ) ; \
+ ( cd ${ns_appbindir}/bin ; rm -f emacs emacs-23* ; \
+ ln -sf ../libexec/* .) ; \
+ else true ; fi
+## Needs to be the user running install, so configure can't set it.
+set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
+ `id -un 2> /dev/null`; do \
+ [ -n "$${installuser}" ] && break ; \
+ done
+### Install the files that are machine-independent.
+### Most of them come straight from the distribution;
+### the exception is the DOC-* files, which are copied
+### from the build directory.
+## Note that we copy DOC* and then delete DOC
+## as a workaround for a bug in tar on Ultrix 4.2.
+## We install only the relevant DOC file if possible
+## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*.
+## If people complain about the h flag in tar command, take that out.
+## That flag is also used in leim/
+## Note that the Makefiles in the etc directory are potentially useful
+## in an installed Emacs, so should not be excluded.
+install-arch-indep: mkdir info install-etc
+ -set ${COPYDESTS} ; \
+ unset CDPATH; \
+ for dir in ${COPYDIR} ; do \
+ if [ `(cd $$1 && /bin/pwd)` != `(cd $${dir} && /bin/pwd)` ] ; then \
+ rm -rf $$1 ; \
+ fi ; \
+ shift ; \
+ done
+ -set ${COPYDESTS} ; \
+ mkdir ${COPYDESTS} ; \
+ chmod ugo+rx ${COPYDESTS} ; \
+ unset CDPATH; \
+ $(set_installuser); \
+ for dir in ${COPYDIR} ; do \
+ dest=$$1 ; shift ; \
+ [ -d $${dir} ] \
+ && [ `(cd $${dir} && /bin/pwd)` != `(cd $${dest} && /bin/pwd)` ] \
+ && (echo "Copying $${dir} to $${dest}..." ; \
+ (cd $${dir}; tar -chf - . ) \
+ | (cd $${dest}; umask 022; \
+ tar -xvf - && cat > /dev/null) || exit 1; \
+ find $${dest} -exec chown $${installuser} {} ';' ;\
+ for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \
+ chmod a+rx $${subdir} ; \
+ rm -rf $${subdir}/RCS ; \
+ rm -rf $${subdir}/CVS ; \
+ rm -f $${subdir}/.cvsignore ; \
+ rm -f $${subdir}/.gitignore ; \
+ rm -f $${subdir}/.arch-inventory ; \
+ rm -f $${subdir}/.DS_Store ; \
+ rm -f $${subdir}/\#* ; \
+ rm -f $${subdir}/.\#* ; \
+ rm -f $${subdir}/*~ ; \
+ rm -f $${subdir}/*.orig ; \
+ [ "$${dir}" != "${srcdir}/etc" ] && \
+ rm -f $${subdir}/[mM]akefile*.c $${subdir}/[mM]akefile*[.-]in \
+ $${subdir}/[mM]akefile ; \
+ rm -f $${subdir}/ChangeLog* ; \
+ rm -f $${subdir}/dired.todo ; \
+ done) ; \
+ done
+ -rm -f $(DESTDIR)${lispdir}/subdirs.el
+ $(srcdir)/update-subdirs $(DESTDIR)${lispdir}
+ if [ -f $(DESTDIR)${datadir}/emacs/${version}/site-lisp/subdirs.el ]; \
+ then true; \
+ else \
+ (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
+ echo " (normal-top-level-add-subdirs-to-load-path))") \
+ > $(DESTDIR)${datadir}/emacs/${version}/site-lisp/subdirs.el; \
+ fi
+ chmod a+r $(DESTDIR)${datadir}/emacs/${version}/site-lisp/subdirs.el
+ -if [ -f $(DESTDIR)${datadir}/emacs/site-lisp/subdirs.el ]; \
+ then true; \
+ else \
+ (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \
+ echo " (normal-top-level-add-subdirs-to-load-path))") \
+ > $(DESTDIR)${datadir}/emacs/site-lisp/subdirs.el; \
+ fi
+ -chmod a+r $(DESTDIR)${datadir}/emacs/site-lisp/subdirs.el
+ -unset CDPATH; \
+ if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \
+ then \
+ fullversion=`./src/emacs --version | sed -n '1 s/GNU Emacs *//p'`; \
+ if [ -f "./etc/DOC-$${fullversion}" ]; \
+ then \
+ docfile="DOC-$${fullversion}"; \
+ else \
+ docfile="DOC"; \
+ fi; \
+ echo "Copying etc/$${docfile} to $(DESTDIR)${docdir} ..." ; \
+ (cd ./etc; tar -chf - $${docfile}) \
+ |(cd $(DESTDIR)${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
+ (cd $(DESTDIR)$(docdir); \
+ $(set_installuser); \
+ chown $${installuser} DOC*; chmod a+r DOC*; \
+ if test "`echo DOC-*`" != "DOC-*"; then rm -f DOC; fi); \
+ else true; fi
+ -unset CDPATH; \
+ if [ -r ./lisp ] \
+ && [ -r ./lisp/simple.el ] \
+ && [ x`(cd ./lisp; /bin/pwd)` != x`(cd $(DESTDIR)${lispdir}; /bin/pwd)` ] \
+ && [ x`(cd ${srcdir}/lisp; /bin/pwd)` != x`(cd ./lisp; /bin/pwd)` ]; \
+ then \
+ echo "Copying lisp/*.el and lisp/*.elc to $(DESTDIR)${lispdir} ..." ; \
+ (cd lisp; tar -chf - *.el *.elc) \
+ |(cd $(DESTDIR)${lispdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
+ (cd $(DESTDIR)${lispdir}; \
+ $(set_installuser); \
+ find . -exec chown $${installuser} {} ';') ; \
+ else true; fi
+ -unset CDPATH; \
+ if [ -n "${GZIP_PROG}" ]; \
+ then \
+ echo "Compressing *.el ..." ; \
+ (cd $(DESTDIR)${lispdir}; for f in `find . -name "*.elc" -print`; do \
+ ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \
+ done) \
+ else true; fi
+ -unset CDPATH; \
+ thisdir=`/bin/pwd`; \
+ if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
+ then \
+ (cd $(DESTDIR)${infodir}; \
+ if [ -f dir ]; then true; \
+ else \
+ (cd $${thisdir}; \
+ ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir; \
+ chmod a+r $(DESTDIR)${infodir}/dir); \
+ fi; \
+ cd ${srcdir}/info ; \
+ for elt in $(INFO_FILES); do \
+ test "$(MAKEINFO)" = "off" && ! test -e $$elt && continue; \
+ for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
+ ${INSTALL_DATA} $$f $(DESTDIR)${infodir}/$$f; \
+ chmod a+r $(DESTDIR)${infodir}/$$f; \
+ done; \
+ done); \
+ else true; fi
+ -unset CDPATH; \
+ thisdir=`/bin/pwd`; \
+ if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
+ then \
+ for elt in $(INFO_FILES); do \
+ test "$(MAKEINFO)" = "off" && ! test -e $$elt && continue; \
+ (cd $${thisdir}; \
+ ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
+ done; \
+ else true; fi
+ -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS}
+ thisdir=`/bin/pwd`; \
+ cd ${mansrcdir}; \
+ for page in ${MAN_PAGES}; do \
+ (cd $${thisdir}; \
+ ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}; \
+ chmod a+r $(DESTDIR)${man1dir}/$${page}); \
+ done
+## Install those items from etc/ that need to end up elsewhere.
+install-etc: mkdir
+ ${INSTALL_DATA} ${srcdir}/etc/emacs.desktop \
+ $(DESTDIR)${desktopdir}/emacs.desktop
+ for icon in $(iconsrcdir)/*/*/apps/*.* \
+ $(iconsrcdir)/*/*/mimetypes/*.*; do \
+ if [ -r $${icon} ]; then \
+ iicon=`echo "$${icon}" | sed 's,$(srcdir)/etc/images/icons,$(DESTDIR)${icondir},'` ; \
+ ${INSTALL_DATA} $${icon} $${iicon} ; \
+ fi ; \
+ done
+### Install LEIM files. Although they are machine-independent, we
+### have separate target here instead of including it in
+### `install-arch-indep'. People who extracted LEIM files after they
+### insalled Emacs itself can install only LEIM files by this target.
+install-leim: leim/Makefile mkdir
+ cd leim; $(MAKE) install
+### Build Emacs and install it, stripping binaries while installing them.
+ $(MAKE) INSTALL_STRIP=-s install
+### Build all the directories we're going to install Emacs in. Since
+### we may be creating several layers of directories (for example,
+### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use mkinstalldirs
+### instead of mkdir. Not all systems' mkdir programs have the `-p' flag.
+### We set the umask so that any created directories are world-readable.
+### FIXME it would be good to warn about non-standard permissions of
+### pre-existing directories, but that does not seem easy.
+mkdir: FRC
+ icondirs= ; \
+ for dir in $(iconsrcdir)/*/*/apps $(iconsrcdir)/*/*/mimetypes; do \
+ if [ -d $${dir} ]; then \
+ icondirs="$${icondirs} $${dir}" ; \
+ fi ; \
+ done ; \
+ icondirs=`echo "$${icondirs}" | sed 's,$(srcdir)/etc/images/icons,$(DESTDIR)${icondir},g'` ; \
+ umask 022 ; \
+ $(srcdir)/mkinstalldirs $(DESTDIR)${datadir} ${COPYDESTS} \
+ $(DESTDIR)${infodir} $(DESTDIR)${man1dir} \
+ $(DESTDIR)${bindir} $(DESTDIR)${docdir} $(DESTDIR)${libexecdir} \
+ $(DESTDIR)${datadir}/emacs/site-lisp \
+ $(DESTDIR)${datadir}/emacs/${version}/site-lisp \
+ $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'` \
+ $(DESTDIR)${desktopdir} $${icondirs}
+### Delete all the installed files that the `install' target would
+### create (but not the noninstalled files such as `make all' would create).
+### Don't delete the lisp and etc directories if they're in the source tree.
+ (cd lib-src; \
+ $(MAKE) $(MFLAGS) uninstall \
+ prefix=${prefix} exec_prefix=${exec_prefix} \
+ bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir})
+ -unset CDPATH; \
+ for dir in $(DESTDIR)${lispdir} $(DESTDIR)${etcdir} ; do \
+ if [ -d $${dir} ]; then \
+ case `(cd $${dir} ; /bin/pwd)` in \
+ `(cd ${srcdir} ; /bin/pwd)`* ) ;; \
+ * ) rm -rf $${dir} ;; \
+ esac ; \
+ case $${dir} in \
+ $(DESTDIR)${datadir}/emacs/${version}/* ) \
+ rm -rf $(DESTDIR)${datadir}/emacs/${version} \
+ ;; \
+ esac ; \
+ fi ; \
+ done
+ (cd $(DESTDIR)${archlibdir} && rm -f fns-*)
+ -rm -rf $(DESTDIR)${libexecdir}/emacs/${version}
+ (cd $(DESTDIR)${infodir} && \
+ for elt in $(INFO_FILES); do \
+ $(INSTALL_INFO) --remove --info-dir=. $$elt; \
+ for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
+ rm -f $$f; \
+ done; \
+ done;)
+ (cd $(DESTDIR)${man1dir} && rm -f $(MAN_PAGES))
+ (cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS))
+ (cd $(DESTDIR)${icondir} && rm -f hicolor/*x*/apps/emacs.png hicolor/*x*/apps/emacs22.png hicolor/scalable/apps/emacs.svg hicolor/scalable/mimetypes/emacs-document.svg )
+ -rm -f $(DESTDIR)${desktopdir}/emacs.desktop
+ for file in snake-scores tetris-scores; do \
+ file=$(DESTDIR)${gamedir}/$${file}; \
+ [ -s $${file} ] || rm -f $$file; \
+ done
+# ==================== Cleaning up and miscellanea ====================
+.PHONY: mostlyclean clean distclean maintainer-clean extraclean
+### `mostlyclean'
+### Like `clean', but may refrain from deleting a few files that people
+### normally don't want to recompile. For example, the `mostlyclean'
+### target for GCC does not delete `libgcc.a', because recompiling it
+### is rarely necessary and takes a lot of time.
+mostlyclean: FRC
+ (cd src; $(MAKE) $(MFLAGS) mostlyclean)
+ (cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean)
+ (cd lwlib; $(MAKE) $(MFLAGS) mostlyclean)
+ (cd lib-src; $(MAKE) $(MFLAGS) mostlyclean)
+ -(cd doc/emacs && $(MAKE) $(MFLAGS) mostlyclean)
+ -(cd doc/misc && $(MAKE) $(MFLAGS) mostlyclean)
+ -(cd doc/lispref && $(MAKE) $(MFLAGS) mostlyclean)
+ -(cd doc/lispintro && $(MAKE) $(MFLAGS) mostlyclean)
+ (cd leim; $(MAKE) $(MFLAGS) mostlyclean)
+### `clean'
+### Delete all files from the current directory that are normally
+### created by building the program. Don't delete the files that
+### record the configuration. Also preserve files that could be made
+### by building, but normally aren't because the distribution comes
+### with them.
+### Delete `.dvi' files here if they are not part of the distribution.
+clean: FRC
+ (cd src; $(MAKE) $(MFLAGS) clean)
+ (cd oldXMenu; $(MAKE) $(MFLAGS) clean)
+ (cd lwlib; $(MAKE) $(MFLAGS) clean)
+ (cd lib-src; $(MAKE) $(MFLAGS) clean)
+ -(cd doc/emacs && $(MAKE) $(MFLAGS) clean)
+ -(cd doc/misc && $(MAKE) $(MFLAGS) clean)
+ -(cd doc/lispref && $(MAKE) $(MFLAGS) clean)
+ -(cd doc/lispintro && $(MAKE) $(MFLAGS) clean)
+ (cd leim; $(MAKE) $(MFLAGS) clean)
+### `bootclean'
+### Delete all files that need to be remade for a clean bootstrap.
+ rm -f config.cache config.log
+### `distclean'
+### Delete all files from the current directory that are created by
+### configuring or building the program. If you have unpacked the
+### source and built the program without creating any other files,
+### `make distclean' should leave only the files that were in the
+### distribution.
+ ${top_bootclean}; \
+ rm -f config.status Makefile ${SUBDIR_MAKEFILES}
+distclean: FRC
+ (cd src; $(MAKE) $(MFLAGS) distclean)
+ (cd oldXMenu; $(MAKE) $(MFLAGS) distclean)
+ (cd lwlib; $(MAKE) $(MFLAGS) distclean)
+ (cd lib-src; $(MAKE) $(MFLAGS) distclean)
+ (cd doc/emacs && $(MAKE) $(MFLAGS) distclean)
+ (cd doc/misc && $(MAKE) $(MFLAGS) distclean)
+ (cd doc/lispref && $(MAKE) $(MFLAGS) distclean)
+ (cd doc/lispintro && $(MAKE) $(MFLAGS) distclean)
+ (cd leim; $(MAKE) $(MFLAGS) distclean)
+ (cd lisp; $(MAKE) $(MFLAGS) distclean)
+ ${top_distclean}
+### `bootstrap-clean'
+### Delete everything that can be reconstructed by `make' and that
+### needs to be deleted in order to force a bootstrap from a clean state.
+bootstrap-clean: FRC
+ (cd src; $(MAKE) $(MFLAGS) bootstrap-clean)
+ (cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
+ (cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean)
+ (cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean)
+ -(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean)
+ -(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean)
+ -(cd doc/lispref && $(MAKE) $(MFLAGS) maintainer-clean)
+ -(cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean)
+ (cd leim; $(MAKE) $(MFLAGS) maintainer-clean)
+ (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
+ ${top_bootclean}
+### `maintainer-clean'
+### Delete everything from the current directory that can be
+### reconstructed with this Makefile. This typically includes
+### everything deleted by distclean, plus more: C source files
+### produced by Bison, tags tables, info files, and so on.
+### One exception, however: `make maintainer-clean' should not delete
+### `configure' even if `configure' can be remade using a rule in the
+### Makefile. More generally, `make maintainer-clean' should not delete
+### anything that needs to exist in order to run `configure' and then
+### begin to build the program.
+maintainer-clean: bootstrap-clean FRC
+ (cd src; $(MAKE) $(MFLAGS) maintainer-clean)
+ (cd lisp; $(MAKE) $(MFLAGS) maintainer-clean)
+ ${top_distclean}
+### This doesn't actually appear in the coding standards, but Karl
+### says GCC supports it, and that's where the configuration part of
+### the coding standards seem to come from. It's like distclean, but
+### it deletes backup and autosave files too.
+ for i in ${SUBDIR} leim; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done
+ ${top_distclean}
+ -rm -f config-tmp-*
+ -rm -f *~ \#*
+# The src subdir knows how to do the right thing
+# even when the build directory and source dir are different.
+TAGS tags: lib-src src
+ cd src; $(MAKE) tags
+ @echo "We don't have any tests for GNU Emacs yet."
+ cd ${srcdir}; ./make-dist
+.PHONY: info dvi dist check html
+ (cd doc/emacs; $(MAKE) $(MFLAGS) info)
+ (cd doc/misc; $(MAKE) $(MFLAGS) info)
+ (cd doc/lispref; $(MAKE) $(MFLAGS) info)
+ (cd doc/lispintro; $(MAKE) $(MFLAGS) info)
+# Note that man/Makefile knows how to put the info files in $(srcdir),
+# so we can do ok running make in the build dir.
+# This used to have a clause that exited with an error if MAKEINFO = no.
+# But it is inappropriate to do so without checking if makeinfo is
+# actually needed - it is not if the info files are up-to-date. (Bug#3982)
+# Only the doc/*/Makefiles can decide that, so we let those rules run
+# and give a standard error if makeinfo is needed but missing.
+# While it would be nice to give a more detailed error message, that
+# would require changing every rule in doc/ that builds an info file,
+# and it's not worth it. This case is only relevant if you download a
+# release, then change the .texi files.
+info: force-info
+ @if test "$(MAKEINFO)" = "off"; then \
+ echo "Configured --without-makeinfo, not building manuals" ; \
+ else \
+ $(MAKE) $(MFLAGS) info-real ; \
+ fi
+# The info/dir file must be updated by hand when new manuals are added.
+check-info-dir: info
+ cd info ; \
+ missing= ; \
+ for file in *; do \
+ test -f "$${file}" || continue ; \
+ case $${file} in \
+ *-[0-9]*|COPYING|dir) continue ;; \
+ esac ; \
+ grep -q -F ": ($${file})." dir || missing="$${missing} $${file}" ; \
+ done ; \
+ if test -n "$${missing}"; then \
+ echo "Missing info/dir entries: $${missing}" ; \
+ exit 1 ; \
+ fi ; \
+ echo "info/dir is OK"
+ (cd doc/emacs; $(MAKE) $(MFLAGS) dvi)
+ (cd doc/misc; $(MAKE) $(MFLAGS) dvi)
+ (cd doc/lispref; $(MAKE) $(MFLAGS) elisp.dvi)
+ (cd doc/lispintro; $(MAKE) $(MFLAGS) emacs-lisp-intro.dvi)
+#### Bootstrapping.
+### This first cleans the lisp subdirectory, removing all compiled
+### Lisp files. Then re-run make to build all the files anew.
+.PHONY: bootstrap
+bootstrap: bootstrap-clean FRC
+ if [ -x ./config.status ]; then \
+ ./config.status; \
+ else \
+ ./configure --enable-maintainer-mode; \
+ fi
+ $(MAKE) $(MFLAGS) info all
+.PHONY: check-declare
+ @if [ ! -e $(srcdir)/src/emacs ]; then \
+ echo "You must build Emacs to use this command"; \
+ exit 1; \
+ fi
+ (cd leim; $(MAKE) $(MFLAGS) $@)
+ (cd lisp; $(MAKE) $(MFLAGS) $@)
@@ -0,0 +1,105 @@
+Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+ 2010, 2011 Free Software Foundation, Inc.
+See the end of the file for license conditions.
+This directory tree holds version 23.2.92 of GNU Emacs, the extensible,
+customizable, self-documenting real-time display editor.
+The file INSTALL in this directory says how to build and install GNU
+Emacs on various systems, once you have unpacked or checked out the
+entire Emacs file tree.
+See the file etc/NEWS for information on new features and other
+user-visible changes in recent versions of Emacs.
+The file etc/PROBLEMS contains information on many common problems that
+occur in building, installing and running Emacs.
+You may encounter bugs in this release. If you do, please report
+them; your bug reports are valuable contributions to the FSF, since
+they allow us to notice and fix problems on machines we don't have, or
+in code we don't use often. Please send bug reports to the mailing
+list If possible, use M-x report-emacs-bug.
+See the "Bugs" section of the Emacs manual for more information on how
+to report bugs. (The file `BUGS' in this directory explains how you
+can find and read that section using the Info files that come with
+Emacs.) See `etc/MAILINGLISTS' for more information on mailing lists
+relating to GNU packages.
+The `etc' subdirectory contains several other files, named in capital
+letters, which you might consider looking at when installing GNU
+The file `configure' is a shell script to acclimate Emacs to the
+oddities of your processor and operating system. It creates the file
+`Makefile' (a script for the `make' program), which automates the
+process of building and installing Emacs. See INSTALL for more
+detailed information.
+The file `' is the input used by the autoconf program to
+construct the `configure' script. Since Emacs has some configuration
+requirements that autoconf can't meet directly, and for historical
+reasons, `' uses an unholy marriage of custom-baked
+configuration code and autoconf macros. If you want to rebuild
+`configure' from `', you will need to install a recent
+version of autoconf and GNU m4.
+The file `' is a template used by `configure' to create
+The file `make-dist' is a shell script to build a distribution tar
+file from the current Emacs tree, containing only those files
+appropriate for distribution. If you make extensive changes to Emacs,
+this script will help you distribute your version to others.
+There are several subdirectories:
+`src' holds the C code for Emacs (the Emacs Lisp interpreter and
+ its primitives, the redisplay code, and some basic editing
+ functions).
+`lisp' holds the Emacs Lisp code for Emacs (most everything else).
+`leim' holds the library of Emacs input methods, Lisp code and
+ auxiliary data files required to type international characters
+ which can't be directly produced by your keyboard.
+`lib-src' holds the source code for some utility programs for use by or
+ with Emacs, like movemail and etags.
+`etc' holds miscellaneous architecture-independent data files Emacs
+ uses, like the tutorial text and tool bar images.
+ The contents of the `lisp', `leim', `info', and `doc'
+ subdirectories are architecture-independent too.
+`info' holds the Info documentation tree for Emacs.
+`doc/emacs' holds the source code for the Emacs Manual. If you modify the
+ manual sources, you will need the `makeinfo' program to produce
+ an updated manual. `makeinfo' is part of the GNU Texinfo
+ package; you need a suitably recent version of Texinfo.
+`doc/lispref' holds the source code for the Emacs Lisp reference manual.
+`doc/lispintro' holds the source code for the Introduction to Programming
+ in Emacs Lisp manual.
+`msdos' holds configuration files for compiling Emacs under MSDOG.
+`nextstep' holds instructions and some other files for compiling the
+ Nextstep port of Emacs, for GNUstep and Mac OS X Cocoa.
+`nt' holds various command files and documentation files that pertain
+ to building and running Emacs on Windows 9X/ME/NT/2000/XP.
+`test' holds tests for various aspects of Emacs's functionality.
+ Building Emacs on non-Posix platforms requires tools that aren't part
+of the standard distribution of the OS. The platform-specific README
+files and installation instructions should list the required tools.
+This file is part of GNU Emacs.
+GNU Emacs 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 3 of the License, or
+(at your option) any later version.
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with GNU Emacs. If not, see <>.
305 config.bat
@@ -0,0 +1,305 @@
+@echo off
+rem ----------------------------------------------------------------------
+rem Configuration script for MSDOS
+rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003
+rem 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+rem This file is part of GNU Emacs.
+rem GNU Emacs is free software: you can redistribute it and/or modify
+rem it under the terms of the GNU General Public License as published by
+rem the Free Software Foundation, either version 3 of the License, or
+rem (at your option) any later version.
+rem GNU Emacs is distributed in the hope that it will be useful,
+rem but WITHOUT ANY WARRANTY; without even the implied warranty of
+rem GNU General Public License for more details.
+rem You should have received a copy of the GNU General Public License
+rem along with GNU Emacs. If not, see
+rem ----------------------------------------------------------------------
+rem + msdos version 3 or better.
+rem + DJGPP version 1.12maint1 or later (version 2.03 or later recommended).
+rem + make utility that allows breaking of the 128 chars limit on
+rem command lines. ndmake (as of version 4.5) won't work due to a
+rem line length limit. The make that comes with DJGPP does work (and is
+rem recommended).
+rem + rm, mv, and cp (from GNU file utilities).
+rem + sed (you can use the port that comes with DJGPP).
+rem You should be able to get all the above utilities from the DJGPP FTP
+rem site,, in the directory "pub/djgpp/current/v2gnu".
+rem ----------------------------------------------------------------------
+set X11=
+set nodebug=
+set djgpp_ver=
+set sys_malloc=
+if "%1" == "" goto usage
+rem ----------------------------------------------------------------------
+rem See if their environment is large enough. We need 28 bytes.
+set $foo$=789012345678901234567
+if not "%$foo$%" == "789012345678901234567" goto SmallEnv
+set $foo$=
+if "%1" == "" goto usage
+if "%1" == "--with-x" goto withx
+if "%1" == "--no-debug" goto nodebug
+if "%1" == "msdos" goto msdos
+if "%1" == "--with-system-malloc" goto sysmalloc
+echo Usage: config [--no-debug] [--with-system-malloc] [--with-x] msdos
+echo [Read the script before you run it.]
+goto end
+rem ----------------------------------------------------------------------