mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-31 20:02:42 +00:00
gnus-demon.el (gnus-demon-init): Fix time computing when time is nil.
This commit is contained in:
parent
3e972d981f
commit
19b9c467ea
23
BUGS
23
BUGS
@ -1,23 +0,0 @@
|
||||
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 <http://shop.fsf.org/>.
|
||||
|
||||
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.
|
674
COPYING
674
COPYING
@ -1,674 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
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.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
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
|
||||
Source.
|
||||
|
||||
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
|
||||
measures.
|
||||
|
||||
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.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
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.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
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
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
756
INSTALL
756
INSTALL
@ -1,756 +0,0 @@
|
||||
GNU Emacs Installation Guide
|
||||
Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
|
||||
2005, 2006, 2007, 2008, 2009, 2010
|
||||
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.
|
||||
|
||||
|
||||
BASIC INSTALLATION
|
||||
|
||||
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, as well as the Info files.
|
||||
|
||||
|
||||
ADDITIONAL DISTRIBUTION 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.m17n.org.
|
||||
|
||||
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n login
|
||||
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-db
|
||||
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n co m17n-lib
|
||||
% cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/m17n 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 http://directory.fsf.org/project/xaw3d/
|
||||
. libxpm for XPM: http://www.x.org/releases/current/src/lib/
|
||||
. libpng for PNG: http://www.libpng.org/
|
||||
. libz (for PNG): http://www.zlib.net/
|
||||
. libjpeg for JPEG: http://www.ijg.org/
|
||||
. libtiff for TIFF: http://www.libtiff.org/
|
||||
. libgif for GIF: http://sourceforge.net/projects/giflib/
|
||||
|
||||
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
|
||||
them.
|
||||
|
||||
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:http://www.gnu.org/software/freefont/> 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'.
|
||||
|
||||
|
||||
DETAILED BUILDING AND INSTALLATION:
|
||||
|
||||
(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/Makefile.in', 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 <http://www.lesstif.org>.
|
||||
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
|
||||
PREFIXDIR/libexec/emacs/VERSION/CONFIGURATION
|
||||
(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/libexec/emacs/VERSION/CONFIGURATION.
|
||||
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
|
||||
yourself.
|
||||
|
||||
3b) To build in a separate directory, go to that directory
|
||||
and run the program `configure' as follows:
|
||||
|
||||
SOURCE-DIR/configure CONFIGURATION-NAME [--OPTION[=VALUE]] ...
|
||||
|
||||
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
|
||||
fail.)
|
||||
|
||||
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
|
||||
itself. YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES,
|
||||
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
|
||||
news-inews-program.
|
||||
|
||||
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/Makefile.in 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', `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/).
|
||||
|
||||
|
||||
|
||||
MAKE VARIABLES
|
||||
|
||||
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
|
||||
`/usr/local/bin'.
|
||||
|
||||
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 `Makefile.in'.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
CONFIGURATION BY HAND
|
||||
|
||||
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/config.in' 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 `Makefile' files in various directories from the
|
||||
corresponding `Makefile.in' files. This isn't so hard, just a matter
|
||||
of editing in appropriate substitutions for the @...@ constructs.
|
||||
|
||||
The `configure' script is built from `configure.in' by the `autoconf'
|
||||
program. You need at least the version of autoconf specified in the
|
||||
AC_PREREQ(...) command to rebuild `configure' from `configure.in'.
|
||||
|
||||
BUILDING GNU EMACS BY HAND
|
||||
|
||||
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/epaths.in', changing
|
||||
the paths to the values specified in `./Makefile'.
|
||||
|
||||
2) Go to directory `./lib-src' and run `make'. This creates
|
||||
executables named `etags', `make-docfile', 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
|
||||
`../lib-src'.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
INSTALLATION BY HAND
|
||||
|
||||
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', 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.
|
||||
|
||||
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 `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.
|
||||
|
||||
|
||||
PROBLEMS
|
||||
|
||||
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
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
73
INSTALL.BZR
73
INSTALL.BZR
@ -1,73 +0,0 @@
|
||||
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
Building and Installing Emacs from Bazaar
|
||||
|
||||
If this is the first time you go through it, you'll need to configure
|
||||
before bootstrapping:
|
||||
|
||||
$ ./configure
|
||||
|
||||
Some of the files that are included in the Emacs tarball, such as
|
||||
byte-compiled Lisp files, are not stored in Bazaar. Therefore, to
|
||||
build from Bazaar you must run "make bootstrap" instead of just "make":
|
||||
|
||||
$ bzr pull
|
||||
$ make bootstrap
|
||||
|
||||
Normally, it is not necessary to use "make bootstrap" after every
|
||||
update from Bazaar. "make" should work in 90% of the cases and be
|
||||
much quicker.
|
||||
|
||||
$ make
|
||||
|
||||
(If you want to install the Emacs binary, type "make install" instead
|
||||
of "make" in the last command.)
|
||||
|
||||
Occasionally the file "lisp/loaddefs.el" (and similar automatically
|
||||
generated files, such as esh-groups.el, and *-loaddefs.el in some
|
||||
subdirectories of lisp/, e.g. mh-e/ and calendar/) will need to be
|
||||
updated to reflect new autoloaded functions. If you see errors (rather
|
||||
than warnings) about undefined lisp functions during compilation, that
|
||||
may be the reason. Finally, sometimes there can be build failures
|
||||
related to *loaddefs.el (e.g. "required feature `esh-groups' was not
|
||||
provided"). In that case, follow the instructions below.
|
||||
|
||||
To update loaddefs.el (and similar files), do:
|
||||
|
||||
$ cd lisp
|
||||
$ make autoloads
|
||||
|
||||
If either of the above partial procedures fails, try "make bootstrap".
|
||||
If CPU time is not an issue, the most thorough way to rebuild, and
|
||||
avoid any spurious problems, is always to use this method.
|
||||
|
||||
Users of non-Posix systems (MS-Windows etc.) should run the
|
||||
platform-specific configuration scripts (nt/configure.bat, config.bat,
|
||||
etc.) before "make bootstrap" or "make"; the rest of the procedure is
|
||||
applicable to those systems as well.
|
||||
|
||||
Because the Bazaar version of Emacs is a work in progress, it will
|
||||
sometimes fail to build. Please wait a day or so (and check the bug
|
||||
and development mailing list archives) before reporting such problems.
|
||||
In most cases, the problem is known about and is just waiting for
|
||||
someone to fix it.
|
||||
|
||||
|
||||
|
||||
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
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
898
Makefile.in
898
Makefile.in
@ -1,898 +0,0 @@
|
||||
# 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
|
||||
# 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
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
### 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.
|
||||
CDPATH=
|
||||
|
||||
# If Make doesn't predefine MAKE, set it here.
|
||||
@SET_MAKE@
|
||||
|
||||
# ==================== Things `configure' Might Edit ====================
|
||||
|
||||
CC=@CC@
|
||||
CFLAGS=@CFLAGS@
|
||||
LDFLAGS=@LDFLAGS@
|
||||
CPPFLAGS=@CPPFLAGS@
|
||||
EXEEXT=@EXEEXT@
|
||||
MAKEINFO=@MAKEINFO@
|
||||
|
||||
### 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'.
|
||||
version=@version@
|
||||
|
||||
### This should be the name of the configuration we're building Emacs
|
||||
### for, like `mips-dec-ultrix' or `sparc-sun-sunos'.
|
||||
configuration=@configuration@
|
||||
|
||||
# ==================== 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.
|
||||
prefix=@prefix@
|
||||
|
||||
# Like `prefix', but used for architecture-specific files.
|
||||
exec_prefix=@exec_prefix@
|
||||
|
||||
# Where to install Emacs and other binaries that people will want to
|
||||
# run directly (like etags).
|
||||
bindir=@bindir@
|
||||
|
||||
# The root of the directory tree for read-only architecture-independent
|
||||
# data files. ${datadir}, ${infodir} and ${mandir} are based on this.
|
||||
datarootdir=@datarootdir@
|
||||
|
||||
# Where to install architecture-independent data files. ${lispdir}
|
||||
# and ${etcdir} are subdirectories of this.
|
||||
datadir=@datadir@
|
||||
|
||||
# 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.
|
||||
sharedstatedir=@sharedstatedir@
|
||||
|
||||
# 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.
|
||||
libexecdir=@libexecdir@
|
||||
|
||||
# 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).
|
||||
mandir=@mandir@
|
||||
man1dir=$(mandir)/man1
|
||||
MAN_PAGES=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.
|
||||
infodir=@infodir@
|
||||
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.
|
||||
localstatedir=@localstatedir@
|
||||
|
||||
# Where to look for bitmap files.
|
||||
bitmapdir=@bitmapdir@
|
||||
|
||||
# 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.
|
||||
srcdir=@srcdir@
|
||||
|
||||
# Where the manpage source files are kept.
|
||||
mansrcdir=$(srcdir)/doc/man
|
||||
|
||||
# Tell make where to find source files; this is needed for the makefiles.
|
||||
VPATH=@srcdir@
|
||||
|
||||
# Where to find the application default.
|
||||
x_default_search_path=@x_default_search_path@
|
||||
|
||||
# Location to install Emacs.app under NeXT/Open/GNUstep / Cocoa
|
||||
ns_appbindir=@ns_appbindir@
|
||||
ns_appresdir=@ns_appresdir@
|
||||
|
||||
# Where the etc/emacs.desktop file is to be installed.
|
||||
desktopdir=$(datarootdir)/applications
|
||||
|
||||
# Where the etc/images/icons/hicolor directory is to be installed.
|
||||
icondir=$(datarootdir)/icons
|
||||
|
||||
# The source directory for the icon files.
|
||||
iconsrcdir=$(srcdir)/etc/images/icons
|
||||
|
||||
# ==================== 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.
|
||||
lispdir=@lispdir@
|
||||
|
||||
# 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.
|
||||
locallisppath=@locallisppath@
|
||||
|
||||
# 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.
|
||||
lisppath=@lisppath@
|
||||
|
||||
# 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.
|
||||
buildlisppath=${srcdir}/lisp
|
||||
|
||||
# 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.
|
||||
etcdir=@etcdir@
|
||||
|
||||
# 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.
|
||||
archlibdir=@archlibdir@
|
||||
|
||||
# Where to put the docstring file.
|
||||
docdir=@docdir@
|
||||
|
||||
# Where to install Emacs game score files.
|
||||
gamedir=@gamedir@
|
||||
|
||||
# ==================== Utility Programs for the Build ====================
|
||||
|
||||
# Allow the user to specify the install program.
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_INFO = @INSTALL_INFO@
|
||||
# By default, we uphold the dignity of our programs.
|
||||
INSTALL_STRIP =
|
||||
|
||||
# We use gzip to compress installed .el files.
|
||||
GZIP_PROG = @GZIP_PROG@
|
||||
# If non-nil, gzip the installed Info and man pages.
|
||||
GZIP_INFO = @GZIP_INFO@
|
||||
|
||||
# ============================= 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 epaths.in. This target is invoked by `configure'.
|
||||
# See comments in configure.in for why it is done this way, as opposed
|
||||
# to just letting configure generate epaths.h from epaths.in in a
|
||||
# similar way to how Makefile is made from Makefile.in.
|
||||
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.in > 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) \
|
||||
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
|
||||
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
|
||||
|
||||
src: lib-src FRC
|
||||
|
||||
.RECURSIVE: ${SUBDIR} leim
|
||||
|
||||
# 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) \
|
||||
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
|
||||
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
|
||||
|
||||
# Pass to src/Makefile.in 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/Makefile.in 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) \
|
||||
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
|
||||
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot"; \
|
||||
fi;
|
||||
if [ -r .bzr/checkout/dirstate ]; then \
|
||||
vcswitness="$$(pwd)/.bzr/checkout/dirstate"; \
|
||||
fi; \
|
||||
cd $@; $(MAKE) all $(MFLAGS) \
|
||||
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
|
||||
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="" \
|
||||
VCSWITNESS="$$vcswitness"
|
||||
|
||||
blessmail: Makefile src FRC
|
||||
cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \
|
||||
MAKE='${MAKE}' archlibdir='$(archlibdir)'
|
||||
|
||||
# We used to have one rule per */Makefile.in, 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/config.in \
|
||||
$(srcdir)/Makefile.in \
|
||||
$(srcdir)/src/Makefile.in \
|
||||
$(srcdir)/lib-src/Makefile.in \
|
||||
$(srcdir)/doc/emacs/Makefile.in \
|
||||
$(srcdir)/doc/misc/Makefile.in \
|
||||
$(srcdir)/doc/lispref/Makefile.in \
|
||||
$(srcdir)/doc/lispintro/Makefile.in \
|
||||
$(srcdir)/oldXMenu/Makefile.in \
|
||||
$(srcdir)/lwlib/Makefile.in \
|
||||
$(srcdir)/leim/Makefile.in \
|
||||
$(srcdir)/lisp/Makefile.in
|
||||
./config.status
|
||||
|
||||
config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
|
||||
./config.status --recheck
|
||||
|
||||
AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/m4/getopt.m4
|
||||
|
||||
$(srcdir)/configure: $(AUTOCONF_INPUTS)
|
||||
cd ${srcdir} && autoconf
|
||||
|
||||
$(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in
|
||||
@ # Usually, there's no need to rebuild src/config.in just
|
||||
@ # because stamp-h.in has changed (since building stamp-h.in
|
||||
@ # refreshes config.in as well), but if config.in is missing
|
||||
@ # then we really need to do something more.
|
||||
[ -r "$@" ] || ( cd ${srcdir} && autoheader )
|
||||
$(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS)
|
||||
cd ${srcdir} && autoheader
|
||||
rm -f $(srcdir)/src/stamp-h.in
|
||||
echo timestamp > $(srcdir)/src/stamp-h.in
|
||||
|
||||
# ==================== 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} \
|
||||
INSTALL_STRIP=${INSTALL_STRIP})
|
||||
${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} $(DESTDIR)${bindir}/$(EMACSFULL)
|
||||
-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_appresdir}" != ""; 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-24* ; \
|
||||
ln -sf ../libexec/* .) ; \
|
||||
else true ; fi
|
||||
|
||||
## FIXME is the emacs-24* bit above really necessary and correct?
|
||||
## What if I have 24.1 and 24.2 installed at the same time?
|
||||
## In any case, it should use something like echo $version | sed 's/\..*//'
|
||||
## instead of hard-coding a version.
|
||||
|
||||
## http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg01672.html
|
||||
## 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/Makefile.in
|
||||
|
||||
## 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 -print` ; do \
|
||||
chmod a+rx $${subdir} ; \
|
||||
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* ; \
|
||||
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; \
|
||||
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
|
||||
rm -f $(DESTDIR)${infodir}/$$f.gz; \
|
||||
${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \
|
||||
else true; fi; \
|
||||
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}; \
|
||||
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
|
||||
rm -f $(DESTDIR)${man1dir}/$${page}.gz; \
|
||||
${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${page}; \
|
||||
else true; fi ); \
|
||||
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.
|
||||
install-strip:
|
||||
$(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.
|
||||
uninstall:
|
||||
(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
|
||||
if [ -d $(DESTDIR)${archlibdir} ]; then \
|
||||
(cd $(DESTDIR)${archlibdir} && rm -f fns-*) \
|
||||
fi
|
||||
-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
|
||||
|
||||
FRC:
|
||||
|
||||
# ==================== 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.
|
||||
top_bootclean=\
|
||||
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_distclean=\
|
||||
${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.
|
||||
extraclean:
|
||||
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
|
||||
|
||||
check:
|
||||
@echo "We don't have any tests for GNU Emacs yet."
|
||||
|
||||
dist:
|
||||
cd ${srcdir}; ./make-dist
|
||||
|
||||
.PHONY: info dvi dist check html
|
||||
|
||||
info-real:
|
||||
(cd doc/emacs; $(MAKE) $(MFLAGS) info)
|
||||
(cd doc/misc; $(MAKE) $(MFLAGS) info)
|
||||
(cd doc/lispref; $(MAKE) $(MFLAGS) info)
|
||||
(cd doc/lispintro; $(MAKE) $(MFLAGS) info)
|
||||
|
||||
force-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"
|
||||
|
||||
dvi:
|
||||
(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
|
||||
|
||||
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) $@)
|
105
README
105
README
@ -1,105 +0,0 @@
|
||||
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||||
2010 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
This directory tree holds version 24.0.50 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 bug-gnu-emacs@gnu.org. 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
|
||||
Emacs.
|
||||
|
||||
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 `configure.in' 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, `configure.in' uses an unholy marriage of custom-baked
|
||||
configuration code and autoconf macros. If you want to rebuild
|
||||
`configure' from `configure.in', you will need to install a recent
|
||||
version of autoconf and GNU m4.
|
||||
|
||||
The file `Makefile.in' is a template used by `configure' to create
|
||||
`Makefile'.
|
||||
|
||||
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
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
@ -1,9 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "Please read INSTALL.BZR for instructions on how to build Emacs from Bazaar."
|
||||
|
||||
# Exit with failure, since people may have generic build scripts that
|
||||
# try things like "autogen.sh && ./configure && make".
|
||||
exit 1
|
||||
|
||||
# arch-tag: a123408c-fada-4bf7-98a0-a786cff918f0
|
321
config.bat
321
config.bat
@ -1,321 +0,0 @@
|
||||
@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 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 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
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 http://www.gnu.org/licenses/.
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
|
||||
rem
|
||||
rem + msdos version 3 or better.
|
||||
rem + DJGPP version 2.0 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
|
||||
rem You should be able to get all the above utilities from the DJGPP FTP
|
||||
rem site, ftp.delorie.com, in the directory "pub/djgpp/current/v2gnu".
|
||||
rem ----------------------------------------------------------------------
|
||||
set X11=
|
||||
set nodebug=
|
||||
set djgpp_ver=
|
||||
set sys_malloc=
|
||||
set libxml=
|
||||
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$=
|
||||
:again
|
||||
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
|
||||
:usage
|
||||
echo Usage: config [--no-debug] [--with-system-malloc] [--with-x] msdos
|
||||
echo [Read the script before you run it.]
|
||||
goto end
|
||||
rem ----------------------------------------------------------------------
|
||||
:withx
|
||||
set X11=Y
|
||||
shift
|
||||
goto again
|
||||
rem ----------------------------------------------------------------------
|
||||
:nodebug
|
||||
set nodebug=Y
|
||||
shift
|
||||
goto again
|
||||
rem ----------------------------------------------------------------------
|
||||
:sysmalloc
|
||||
set sys_malloc=Y
|
||||
shift
|
||||
goto again
|
||||
rem ----------------------------------------------------------------------
|
||||
:msdos
|
||||
Echo Checking whether 'sed' is available...
|
||||
sed -e "w junk.$$$" <Nul
|
||||
If Exist junk.$$$ Goto sedOk
|
||||
Echo To configure 'Emacs' you need to have 'sed'!
|
||||
Goto End
|
||||
:sedOk
|
||||
Echo Checking whether 'rm' is available...
|
||||
rm -f junk.$$$
|
||||
If Not Exist junk.$$$ Goto rmOk
|
||||
Echo To configure 'Emacs' you need to have 'rm'!
|
||||
Goto End
|
||||
:rmOk
|
||||
Echo Checking whether 'mv' is available...
|
||||
rm -f junk.1 junk.2
|
||||
echo foo >junk.1
|
||||
mv junk.1 ./junk.2
|
||||
If Exist junk.2 Goto mvOk
|
||||
Echo To configure 'Emacs' you need to have 'mv'!
|
||||
rm -f junk.1
|
||||
Goto End
|
||||
:mvOk
|
||||
rm -f junk.2
|
||||
Echo Checking whether 'gcc' is available...
|
||||
echo main(){} >junk.c
|
||||
gcc -c junk.c
|
||||
if exist junk.o goto gccOk
|
||||
Echo To configure 'Emacs' you need to have 'gcc'!
|
||||
rm -f junk.c
|
||||
Goto End
|
||||
:gccOk
|
||||
rm -f junk.c junk.o junk junk.exe
|
||||
Echo Checking what version of DJGPP is installed...
|
||||
If Not "%DJGPP%" == "" goto djgppOk
|
||||
Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!
|
||||
Goto End
|
||||
:djgppOk
|
||||
echo int main() >junk.c
|
||||
echo #ifdef __DJGPP__ >>junk.c
|
||||
echo {return (__DJGPP__)*10;} >>junk.c
|
||||
echo #else >>junk.c
|
||||
echo #ifdef __GO32__ >>junk.c
|
||||
echo {return 10;} >>junk.c
|
||||
echo #else >>junk.c
|
||||
echo {return 0;} >>junk.c
|
||||
echo #endif >>junk.c
|
||||
echo #endif >>junk.c
|
||||
gcc -o junk junk.c
|
||||
if not exist junk.exe coff2exe junk
|
||||
junk
|
||||
If ErrorLevel 10 Goto go32Ok
|
||||
rm -f junk.c junk junk.exe
|
||||
Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!
|
||||
Goto End
|
||||
:go32Ok
|
||||
set djgpp_ver=2
|
||||
If Not ErrorLevel 20 Echo To build 'Emacs' you need DJGPP v2.0 or later!
|
||||
If Not ErrorLevel 20 Goto End
|
||||
rm -f junk.c junk junk.exe
|
||||
rem DJECHO is used by the top-level Makefile in the v2.x build
|
||||
Echo Checking whether 'djecho' is available...
|
||||
redir -o Nul -eo djecho -o junk.$$$ foo
|
||||
If Exist junk.$$$ Goto djechoOk
|
||||
Echo To build 'Emacs' you need the 'djecho.exe' program!
|
||||
Echo 'djecho.exe' is part of 'djdevNNN.zip' basic DJGPP development kit.
|
||||
Echo Versions of DJGPP before 2.02 called this program 'echo.exe'.
|
||||
Echo Either unpack 'djecho.exe' from the 'djdevNNN.zip' archive,
|
||||
Echo or, if you have 'echo.exe', copy it to 'djecho.exe'.
|
||||
Echo Then run CONFIG.BAT again with the same arguments you did now.
|
||||
Goto End
|
||||
:djechoOk
|
||||
rm -f junk.$$$
|
||||
Echo Configuring for DJGPP Version %DJGPP_VER% ...
|
||||
Rem ----------------------------------------------------------------------
|
||||
Echo Configuring the source directory...
|
||||
cd src
|
||||
|
||||
rem Create "epaths.h"
|
||||
sed -f ../msdos/sed4.inp <epaths.in >epaths.tmp
|
||||
update epaths.tmp epaths.h >nul
|
||||
rm -f epaths.tmp
|
||||
|
||||
rem Create "config.h"
|
||||
rm -f config.h2 config.tmp
|
||||
sed -e '' config.in > config.tmp
|
||||
if "%X11%" == "" goto src4
|
||||
sed -f ../msdos/sed2x.inp <config.in >config.tmp
|
||||
:src4
|
||||
sed -f ../msdos/sed2v2.inp <config.tmp >config.h2
|
||||
Rem See if DECL_ALIGN can be supported with this GCC
|
||||
rm -f junk.c junk.o junk junk.exe
|
||||
echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >junk.c
|
||||
rem Two percent signs because it is a special character for COMMAND.COM/CMD
|
||||
rem Filter thru Sed because "&" is special for CMD.EXE
|
||||
echo int main(void) { return (unsigned long)"&"foo %% 8; } | sed "s/.&./\&/" >>junk.c
|
||||
gcc -o junk junk.c
|
||||
if not exist junk.exe coff2exe junk
|
||||
junk
|
||||
If Not ErrorLevel 1 Goto alignOk
|
||||
Echo WARNING: Your GCC does not support 8-byte aligned variables.
|
||||
Echo WARNING: Therefore Emacs cannot support buffers larger than 128MB.
|
||||
rem The following line disables DECL_ALIGN which in turn disables USE_LSB_TAG
|
||||
rem For details see lisp.h where it defines USE_LSB_TAG
|
||||
echo #define NO_DECL_ALIGN >>config.h2
|
||||
:alignOk
|
||||
Rem See if they have libxml2 later than v2.2.0 installed
|
||||
Echo Checking whether libxml2 v2.2.1 or later is installed ...
|
||||
rm -f junk.c junk.o junk junk.exe
|
||||
rem Use djecho here because we need to quote brackets
|
||||
djecho "#include <libxml/xmlversion.h>" >junk.c
|
||||
djecho "int main()" >>junk.c
|
||||
djecho "{return (LIBXML_VERSION > 20200 ? 0 : 1);}" >>junk.c
|
||||
redir -o Nul -eo gcc -I/dev/env/DJDIR/include/libxml2 -o junk junk.c
|
||||
if not exist junk Goto xmlDone
|
||||
if not exist junk.exe coff2exe junk
|
||||
junk
|
||||
If ErrorLevel 1 Goto xmlDone
|
||||
Echo Configuring with libxml2 ...
|
||||
sed -e "/#undef HAVE_LIBXML2/s/^.*$/#define HAVE_LIBXML2 1/" <config.h2 >config.h3
|
||||
mv config.h3 config.h2
|
||||
set libxml=1
|
||||
:xmlDone
|
||||
rm -f junk.c junk junk.exe
|
||||
Rem See if they requested a SYSTEM_MALLOC build
|
||||
if "%sys_malloc%" == "" Goto cfgDone
|
||||
rm -f config.tmp
|
||||
ren config.h2 config.tmp
|
||||
sed -f ../msdos/sedalloc.inp <config.tmp >config.h2
|
||||
|
||||
:cfgDone
|
||||
rm -f junk.c junk junk.exe
|
||||
update config.h2 config.h >nul
|
||||
rm -f config.tmp config.h2
|
||||
|
||||
rem On my system dir.h gets in the way. It's a VMS file so who cares.
|
||||
if exist dir.h ren dir.h vmsdir.h
|
||||
|
||||
rem Create "makefile" from "makefile.in".
|
||||
rm -f Makefile makefile.tmp
|
||||
copy Makefile.in+deps.mk makefile.tmp
|
||||
sed -f ../msdos/sed1v2.inp <makefile.tmp >Makefile
|
||||
rm -f makefile.tmp
|
||||
|
||||
if "%X11%" == "" goto src5
|
||||
mv Makefile makefile.tmp
|
||||
sed -f ../msdos/sed1x.inp <makefile.tmp >Makefile
|
||||
rm -f makefile.tmp
|
||||
:src5
|
||||
|
||||
if "%sys_malloc%" == "" goto src5a
|
||||
sed -e "/^GMALLOC_OBJ *=/s/gmalloc.o//" <Makefile >makefile.tmp
|
||||
sed -e "/^VMLIMIT_OBJ *=/s/vm-limit.o//" <makefile.tmp >makefile.tmp2
|
||||
sed -e "/^RALLOC_OBJ *=/s/ralloc.o//" <makefile.tmp2 >Makefile
|
||||
rm -f makefile.tmp makefile.tmp2
|
||||
:src5a
|
||||
|
||||
if "%nodebug%" == "" goto src6
|
||||
sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
|
||||
sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >Makefile
|
||||
rm -f makefile.tmp
|
||||
:src6
|
||||
|
||||
if "%libxml%" == "" goto src7
|
||||
sed -e "/^LIBXML2_LIBS *=/s/=/= -lxml2 -lz -liconv/" <Makefile >makefile.tmp
|
||||
sed -e "/^LIBXML2_CFLAGS *=/s|=|= -I/dev/env/DJDIR/include/libxml2|" <makefile.tmp >Makefile
|
||||
rm -f makefile.tmp
|
||||
:src7
|
||||
cd ..
|
||||
rem ----------------------------------------------------------------------
|
||||
Echo Configuring the library source directory...
|
||||
cd lib-src
|
||||
sed -f ../msdos/sed3v2.inp <Makefile.in >Makefile
|
||||
if "%X11%" == "" goto libsrc2a
|
||||
mv Makefile makefile.tmp
|
||||
sed -f ../msdos/sed3x.inp <makefile.tmp >Makefile
|
||||
rm -f makefile.tmp
|
||||
:libsrc2a
|
||||
if "%nodebug%" == "" goto libsrc3
|
||||
sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
|
||||
sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >Makefile
|
||||
rm -f makefile.tmp
|
||||
:libsrc3
|
||||
cd ..
|
||||
rem ----------------------------------------------------------------------
|
||||
if "%X11%" == "" goto oldx1
|
||||
Echo Configuring the oldxmenu directory...
|
||||
cd oldxmenu
|
||||
sed -f ../msdos/sed5x.inp <Makefile.in >Makefile
|
||||
if "%nodebug%" == "" goto oldx2
|
||||
sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
|
||||
mv -f makefile.tmp Makefile
|
||||
:oldx2
|
||||
cd ..
|
||||
:oldx1
|
||||
rem ----------------------------------------------------------------------
|
||||
Echo Configuring the doc directory, expect one "File not found" message...
|
||||
cd doc
|
||||
Rem The two variants for lispintro below is for when the shell
|
||||
Rem supports long file names but DJGPP does not
|
||||
for %%d in (emacs lispref lispintro lispintr misc) do sed -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\Makefile
|
||||
cd ..
|
||||
rem ----------------------------------------------------------------------
|
||||
Echo Configuring the lisp directory...
|
||||
cd lisp
|
||||
If Exist gnus\.dir-locals.el update gnus/.dir-locals.el gnus/_dir-locals.el
|
||||
sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile
|
||||
cd ..
|
||||
rem ----------------------------------------------------------------------
|
||||
If not Exist leim\quail\latin-pre.el goto maindir
|
||||
Echo Configuring the leim directory...
|
||||
cd leim
|
||||
sed -f ../msdos/sedleim.inp < Makefile.in > Makefile
|
||||
cd ..
|
||||
rem ----------------------------------------------------------------------
|
||||
:maindir
|
||||
Echo Configuring the main directory...
|
||||
If Exist .dir-locals.el update .dir-locals.el _dir-locals.el
|
||||
If Exist src\.dbxinit update src/.dbxinit src/_dbxinit
|
||||
Echo Looking for the GDB init file...
|
||||
If Exist src\.gdbinit update src/.gdbinit src/_gdbinit
|
||||
If Exist src\_gdbinit goto gdbinitOk
|
||||
Echo ERROR:
|
||||
Echo I cannot find the GDB init file. It was called ".gdbinit" in
|
||||
Echo the Emacs distribution, but was probably renamed to some other
|
||||
Echo name without the leading dot when you untarred the archive.
|
||||
Echo It should be in the "src/" subdirectory. Please make sure this
|
||||
Echo file exists and is called "_gdbinit" with a leading underscore.
|
||||
Echo Then run CONFIG.BAT again with the same arguments you did now.
|
||||
goto End
|
||||
:gdbinitOk
|
||||
Echo Looking for the GDB init file...found
|
||||
copy msdos\mainmake.v2 Makefile >nul
|
||||
rem ----------------------------------------------------------------------
|
||||
goto End
|
||||
:SmallEnv
|
||||
echo Your environment size is too small. Please enlarge it and run me again.
|
||||
echo For example, type "command.com /e:2048" to have 2048 bytes available.
|
||||
set $foo$=
|
||||
:end
|
||||
set X11=
|
||||
set nodebug=
|
||||
set djgpp_ver=
|
||||
set sys_malloc=
|
||||
set libxml=
|
||||
|
||||
goto skipArchTag
|
||||
arch-tag: 2d2fed23-4dc6-4006-a2e4-49daf0031f33
|
||||
:skipArchTag
|
1494
config.guess
vendored
1494
config.guess
vendored
File diff suppressed because it is too large
Load Diff
1700
config.sub
vendored
1700
config.sub
vendored
File diff suppressed because it is too large
Load Diff
3780
configure.in
3780
configure.in
File diff suppressed because it is too large
Load Diff
250
install-sh
250
install-sh
@ -1,250 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||
#
|
||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||
# documentation for any purpose is hereby granted without fee, provided that
|
||||
# the above copyright notice appear in all copies and that both that
|
||||
# copyright notice and this permission notice appear in supporting
|
||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||
# publicity pertaining to distribution of the software without specific,
|
||||
# written prior permission. M.I.T. makes no representations about the
|
||||
# suitability of this software for any purpose. It is provided "as is"
|
||||
# without express or implied warranty.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=""
|
||||
transform_arg=""
|
||||
instcmd="$mvprog"
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
dir_arg=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case $1 in
|
||||
-c) instcmd="$cpprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd="$stripprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
# this colon is to work around a 386BSD /bin/sh bug
|
||||
:
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "install: no input file specified"
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]; then
|
||||
dst=$src
|
||||
src=""
|
||||
|
||||
if [ -d $dst ]; then
|
||||
instcmd=:
|
||||
else
|
||||
instcmd=mkdir
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
|
||||
if [ -f $src -o -d $src ]
|
||||
then
|
||||
true
|
||||
else
|
||||
echo "install: $src does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified"
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d $dst ]
|
||||
then
|
||||
dst="$dst"/`basename $src`
|
||||
else
|
||||
true
|
||||
fi
|
||||
fi
|
||||
|
||||
## this sed command emulates the dirname command
|
||||
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if [ ! -d "$dstdir" ]; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-${defaultIFS}}"
|
||||
|
||||
oIFS="${IFS}"
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS="${oIFS}"
|
||||
|
||||
pathcomp=''
|
||||
|
||||
while [ $# -ne 0 ] ; do
|
||||
pathcomp="${pathcomp}${1}"
|
||||
shift
|
||||
|
||||
if [ ! -d "${pathcomp}" ] ;
|
||||
then
|
||||
$mkdirprog "${pathcomp}"
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
pathcomp="${pathcomp}/"
|
||||
done
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]
|
||||
then
|
||||
$doit $instcmd $dst &&
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
||||
else
|
||||
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
|
||||
if [ x"$transformarg" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
dstfile=`basename $dst $transformbasename |
|
||||
sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename
|
||||
|
||||
if [ x"$dstfile" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# Make a temp file name in the proper directory.
|
||||
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd $src $dsttmp &&
|
||||
|
||||
trap "rm -f ${dsttmp}" 0 &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $rmcmd -f $dstdir/$dstfile &&
|
||||
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
||||
|
||||
fi &&
|
||||
|
||||
|
||||
exit 0
|
@ -1,3 +1,7 @@
|
||||
2010-12-03 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* gnus-demon.el (gnus-demon-init): Fix time computing when time is nil.
|
||||
|
||||
2010-12-03 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus-util.el (gnus-macroexpand-all): Don't modify argument;
|
||||
|
@ -121,7 +121,7 @@ Emacs has been idle for IDLE `gnus-demon-timestep's."
|
||||
;; If t, replace by 1
|
||||
(time (cond ((eq time t)
|
||||
gnus-demon-timestep)
|
||||
((null time))
|
||||
((null time) nil)
|
||||
(t (* time gnus-demon-timestep))))
|
||||
(timer
|
||||
(cond
|
||||
|
527
make-dist
527
make-dist
@ -1,527 +0,0 @@
|
||||
#!/bin/sh
|
||||
### make-dist: create an Emacs distribution tar file from current srcdir
|
||||
|
||||
## Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
## 2006, 2007, 2008, 2009, 2010 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
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
|
||||
## You should have received a copy of the GNU General Public License
|
||||
## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
### Commentary:
|
||||
|
||||
## This basically creates a duplicate directory structure, and then
|
||||
## hard links into it only those files that should be distributed.
|
||||
## This means that if you add a file with an odd name, you should make
|
||||
## sure that this script will include it.
|
||||
|
||||
### Code:
|
||||
|
||||
progname="$0"
|
||||
|
||||
### Exit if a command fails.
|
||||
#set -e
|
||||
|
||||
### Print out each line we read, for debugging's sake.
|
||||
#set -v
|
||||
|
||||
LANGUAGE=C
|
||||
LC_ALL=C
|
||||
LC_MESSAGES=
|
||||
LANG=
|
||||
export LANGUAGE LC_ALL LC_MESSAGES LANG
|
||||
|
||||
## Don't restrict access to any files.
|
||||
umask 0
|
||||
|
||||
update=yes
|
||||
check=yes
|
||||
clean_up=no
|
||||
make_tar=no
|
||||
default_gzip=gzip
|
||||
newer=""
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
## This option tells make-dist to delete the staging directory
|
||||
## when done. It is useless to use this unless you make a tar file.
|
||||
"--clean-up" )
|
||||
clean_up=yes
|
||||
;;
|
||||
## This option tells make-dist to make a tar file.
|
||||
"--tar" )
|
||||
make_tar=yes
|
||||
;;
|
||||
## This option tells make-dist not to recompile or do analogous things.
|
||||
"--no-update" )
|
||||
update=no
|
||||
;;
|
||||
## This option says don't check for bad file names, etc.
|
||||
"--no-check" )
|
||||
check=no
|
||||
;;
|
||||
## This option tells make-dist to make the distribution normally, then
|
||||
## remove all files older than the given timestamp file. This is useful
|
||||
## for creating incremental or patch distributions.
|
||||
"--newer")
|
||||
newer="$2"
|
||||
new_extension=".new"
|
||||
shift
|
||||
;;
|
||||
## This option tells make-dist to use `bzip2' instead of gzip.
|
||||
"--bzip2")
|
||||
default_gzip="bzip2"
|
||||
;;
|
||||
## Same with lzma.
|
||||
"--lzma")
|
||||
default_gzip="lzma"
|
||||
;;
|
||||
|
||||
"--snapshot")
|
||||
clean_up=yes
|
||||
make_tar=yes
|
||||
update=no
|
||||
check=no
|
||||
;;
|
||||
|
||||
"--help")
|
||||
echo "Usage: ${progname} [options]"
|
||||
echo ""
|
||||
echo " --bzip2 use bzip2 instead of gzip"
|
||||
echo " --clean-up delete staging directories when done"
|
||||
echo " --lzma use lzma instead of gzip"
|
||||
echo " --newer=TIME don't include files older than TIME"
|
||||
echo " --no-check don't check for bad file names etc."
|
||||
echo " --no-update don't recompile or do analogous things"
|
||||
echo " --snapshot same as --clean-up --no-update --tar --no-check"
|
||||
echo " --tar make a tar file"
|
||||
echo ""
|
||||
exit 0
|
||||
;;
|
||||
|
||||
* )
|
||||
echo "${progname}: Unrecognized argument: $1" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
### Make sure we're running in the right place.
|
||||
if [ ! -d src -o ! -f src/lisp.h -o ! -d lisp -o ! -f lisp/subr.el ]; then
|
||||
echo "${progname}: Can't find \`src/lisp.h' and \`lisp/subr.el'." >&2
|
||||
echo "${progname} must be run in the top directory of the Emacs" >&2
|
||||
echo "distribution tree. cd to that directory and try again." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Find where to run Emacs.
|
||||
### (Accept only absolute file names.)
|
||||
if [ $update = yes ];
|
||||
then
|
||||
if [ -f src/emacs ];
|
||||
then
|
||||
EMACS=`pwd`/src/emacs
|
||||
else
|
||||
case $EMACS in
|
||||
/*) ;;
|
||||
*)
|
||||
if [ ! -f "$EMACS" ]; then
|
||||
echo "$0: You must set the EMACS environment variable " \
|
||||
"to an absolute file name." 2>&1
|
||||
exit 1
|
||||
fi;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
### Find out which version of Emacs this is.
|
||||
version=`sed -n '/char emacs_version/ s/^[^"]*"\([^"]*\)".*$/\1/p' src/emacs.c`
|
||||
if [ ! "${version}" ]; then
|
||||
echo "${progname}: can't find current Emacs version in \`./src/emacs.c'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo Version number is $version
|
||||
|
||||
if [ $update = yes ]; then
|
||||
if ! grep -q "@set EMACSVER *${version}" doc/emacs/emacsver.texi || \
|
||||
! grep -q "tree holds version *${version}" README; then
|
||||
echo "WARNING: README and/or emacsver.texi have the wrong version number"
|
||||
echo "Consider running M-x set-version from admin/admin.el"
|
||||
sleep 5
|
||||
fi
|
||||
fi
|
||||
|
||||
### Make sure we don't already have a directory emacs-${version}.
|
||||
|
||||
emacsname="emacs-${version}${new_extension}"
|
||||
|
||||
if [ -d ${emacsname} ]
|
||||
then
|
||||
echo Directory "${emacsname}" already exists >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Make sure the subdirectory is available.
|
||||
tempparent="make-dist.tmp.$$"
|
||||
if [ -d ${tempparent} ]; then
|
||||
echo "${progname}: staging directory \`${tempparent}' already exists.
|
||||
Perhaps a previous invocation of \`${progname}' failed to clean up after
|
||||
itself. Check that directories whose names are of the form
|
||||
\`make-dist.tmp.NNNNN' don't contain any important information, remove
|
||||
them, and try again." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $check = yes ]; then
|
||||
ls -1 lisp/[a-zA-Z]*.el lisp/[a-z]*/[a-zA-Z0-9]*.el \
|
||||
lisp/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \
|
||||
lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \
|
||||
leim/[a-z]*/[a-z]*.el > /tmp/el
|
||||
|
||||
ls -1 lisp/[a-zA-Z]*.elc lisp/[a-z]*/[a-zA-Z0-9]*.elc \
|
||||
lisp/[a-z]*/[a-z]*/[a-zA-Z0-9]*.elc \
|
||||
lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.elc \
|
||||
leim/[a-z]*/[a-z]*.elc > /tmp/elc
|
||||
|
||||
## Check for .elc files with no corresponding .el file.
|
||||
sed 's/\.el$/.elc/' /tmp/el > /tmp/elelc
|
||||
|
||||
bogosities="`comm -13 /tmp/elelc /tmp/elc`"
|
||||
if [ x"${bogosities}" != x"" ]; then
|
||||
echo "The following .elc files have no corresponding .el files:"
|
||||
echo "${bogosities}"
|
||||
fi
|
||||
|
||||
### Check for .el files with no corresponding .elc file.
|
||||
sed 's/\.elc$/.el/' /tmp/elc > /tmp/elcel
|
||||
losers="`comm -23 /tmp/el /tmp/elcel`"
|
||||
|
||||
rm -f /tmp/el /tmp/elc /tmp/elcel /tmp/elelc
|
||||
|
||||
bogosities=
|
||||
for file in $losers; do
|
||||
grep -q "no-byte-compile: t" $file && continue
|
||||
case $file in
|
||||
site-init.el | site-load.el | site-start.el | default.el) continue ;;
|
||||
esac
|
||||
|
||||
bogosities="$file $bogosities"
|
||||
|
||||
done
|
||||
if [ x"${bogosities}" != x"" ]; then
|
||||
echo "The following .el files have no corresponding .elc files:"
|
||||
echo "${bogosities}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $update = yes ]; then
|
||||
|
||||
## Make sure configure is newer than configure.in.
|
||||
if [ "x`ls -t configure configure.in | sed q`" != "xconfigure" ]; then
|
||||
echo "\`./configure.in' is newer than \`./configure'" >&2
|
||||
echo "Running autoconf" >&2
|
||||
autoconf || { x=$?; echo Autoconf FAILED! >&2; exit $x; }
|
||||
fi
|
||||
|
||||
## Make sure src/stamp-h.in is newer than configure.in.
|
||||
if [ "x`ls -t src/stamp-h.in configure.in | sed q`" != "xsrc/stamp-h.in" ]; then
|
||||
echo "\`./configure.in' is newer than \`./src/stamp-h.in'" >&2
|
||||
echo "Running autoheader" >&2
|
||||
autoheader || { x=$?; echo Autoheader FAILED! >&2; exit $x; }
|
||||
rm -f src/stamp-h.in
|
||||
echo timestamp > src/stamp-h.in
|
||||
fi
|
||||
|
||||
echo "Updating Info files"
|
||||
(cd doc/emacs; make info)
|
||||
(cd doc/misc; make info)
|
||||
(cd doc/lispref; make info)
|
||||
(cd doc/lispintro; make info)
|
||||
|
||||
echo "Updating finder, custom and autoload data"
|
||||
(cd lisp; make updates EMACS="$EMACS")
|
||||
|
||||
if test -f leim/leim-list.el; then
|
||||
echo "Updating leim-list.el"
|
||||
(cd leim; make leim-list.el EMACS="$EMACS")
|
||||
fi
|
||||
|
||||
echo "Recompiling Lisp files"
|
||||
$EMACS -batch -f batch-byte-recompile-directory lisp leim
|
||||
fi # $update = yes
|
||||
|
||||
echo "Creating staging directory: \`${tempparent}'"
|
||||
|
||||
mkdir ${tempparent}
|
||||
tempdir="${tempparent}/${emacsname}"
|
||||
|
||||
### This trap ensures that the staging directory will be cleaned up even
|
||||
### when the script is interrupted in mid-career.
|
||||
if [ "${clean_up}" = yes ]; then
|
||||
trap "echo 'Cleaning up the staging directory'; rm -rf ${tempparent}" EXIT
|
||||
fi
|
||||
|
||||
echo "Creating top directory: \`${tempdir}'"
|
||||
mkdir ${tempdir}
|
||||
|
||||
### We copy in the top-level files before creating the subdirectories in
|
||||
### hopes that this will make the top-level files appear first in the
|
||||
### tar file; this means that people can start reading the INSTALL and
|
||||
### README while the rest of the tar file is still unpacking. Whoopee.
|
||||
echo "Making links to top-level files"
|
||||
ln INSTALL README BUGS move-if-change ${tempdir}
|
||||
ln ChangeLog Makefile.in configure configure.in ${tempdir}
|
||||
ln config.bat make-dist update-subdirs vpath.sed .dir-locals.el ${tempdir}
|
||||
ln mkinstalldirs config.sub config.guess install-sh ${tempdir}
|
||||
|
||||
echo "Creating subdirectories"
|
||||
for subdir in site-lisp \
|
||||
leim leim/CXTERM-DIC leim/MISC-DIC \
|
||||
leim/SKK-DIC leim/ja-dic leim/quail \
|
||||
src src/m src/s src/bitmaps lib-src oldXMenu lwlib \
|
||||
nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
|
||||
`find etc lisp -type d` \
|
||||
doc doc/emacs doc/misc doc/man doc/lispref doc/lispintro \
|
||||
info m4 msdos \
|
||||
nextstep nextstep/Cocoa nextstep/Cocoa/Emacs.base \
|
||||
nextstep/Cocoa/Emacs.base/Contents \
|
||||
nextstep/Cocoa/Emacs.base/Contents/Resources \
|
||||
nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj \
|
||||
nextstep/Cocoa/Emacs.xcodeproj \
|
||||
nextstep/GNUstep \
|
||||
nextstep/GNUstep/Emacs.base \
|
||||
nextstep/GNUstep/Emacs.base/Resources
|
||||
do
|
||||
## site-lisp for in-place installs (?).
|
||||
[ "$subdir" = "site-lisp" ] || [ -d "$subdir" ] || \
|
||||
echo "WARNING: $subdir not found, making anyway"
|
||||
echo " ${tempdir}/${subdir}"
|
||||
mkdir ${tempdir}/${subdir}
|
||||
done
|
||||
|
||||
echo "Making links to \`lisp' and its subdirectories"
|
||||
files=`find lisp \( -name '*.el' -o -name '*.elc' -o -name 'ChangeLog*' \
|
||||
-o -name 'README*' \)`
|
||||
|
||||
### Don't distribute site-init.el, site-load.el, or default.el.
|
||||
for file in lisp/Makefile.in lisp/makefile.w32-in $files; do
|
||||
case $file in
|
||||
*/site-init*|*/site-load*|*/default*) continue ;;
|
||||
esac
|
||||
ln $file $tempdir/$file
|
||||
done
|
||||
|
||||
echo "Making links to \`leim' and its subdirectories"
|
||||
(cd leim
|
||||
ln makefile.w32-in ../${tempdir}/leim
|
||||
ln ChangeLog README ../${tempdir}/leim
|
||||
ln CXTERM-DIC/README CXTERM-DIC/*.tit ../${tempdir}/leim/CXTERM-DIC
|
||||
ln SKK-DIC/README SKK-DIC/SKK-JISYO.L ../${tempdir}/leim/SKK-DIC
|
||||
ln MISC-DIC/README MISC-DIC/*.* ../${tempdir}/leim/MISC-DIC
|
||||
ln ja-dic/*.el ja-dic/*.elc ../${tempdir}/leim/ja-dic
|
||||
ln Makefile.in ../${tempdir}/leim/Makefile.in
|
||||
ln leim-ext.el ../${tempdir}/leim/leim-ext.el
|
||||
## Lisp files that start with a capital (also 4Corner.el) are
|
||||
## generated from TIT dictionaries so we don't distribute them.
|
||||
ln quail/[a-z]*.el quail/[a-z]*.elc ../${tempdir}/leim/quail
|
||||
rm -f ../${tempdir}/leim/quail/quick-b5.*
|
||||
rm -f ../${tempdir}/leim/quail/quick-cns.*
|
||||
rm -f ../${tempdir}/leim/quail/tsang-b5.*
|
||||
rm -f ../${tempdir}/leim/quail/tsang-cns.*)
|
||||
|
||||
echo "Making links to \`src'"
|
||||
### Don't distribute the configured versions of
|
||||
### config.in, paths.in, buildobj.h, or Makefile.in.
|
||||
(cd src
|
||||
echo " (It is ok if ln fails in some cases.)"
|
||||
ln [a-zA-Z]*.[chm] ../${tempdir}/src
|
||||
ln [a-zA-Z]*.in ../${tempdir}/src
|
||||
ln [a-zA-Z]*.mk ../${tempdir}/src
|
||||
ln README ChangeLog ChangeLog.*[0-9] ../${tempdir}/src
|
||||
ln makefile.w32-in ../${tempdir}/src
|
||||
ln .gdbinit .dbxinit ../${tempdir}/src
|
||||
cd ../${tempdir}/src
|
||||
rm -f config.h epaths.h Makefile buildobj.h)
|
||||
|
||||
echo "Making links to \`src/bitmaps'"
|
||||
(cd src/bitmaps
|
||||
ln README *.xbm ../../${tempdir}/src/bitmaps)
|
||||
|
||||
echo "Making links to \`src/m'"
|
||||
(cd src/m
|
||||
ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/m)
|
||||
|
||||
echo "Making links to \`src/s'"
|
||||
(cd src/s
|
||||
ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/s)
|
||||
|
||||
echo "Making links to \`lib-src'"
|
||||
(cd lib-src
|
||||
ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src
|
||||
ln ChangeLog Makefile.in README testfile vcdiff ../${tempdir}/lib-src
|
||||
ln grep-changelog rcs2log rcs-checkin ../${tempdir}/lib-src
|
||||
ln makefile.w32-in ../${tempdir}/lib-src
|
||||
cd ../${tempdir}/lib-src
|
||||
rm -f getopt.h)
|
||||
|
||||
echo "Making links to \`m4'"
|
||||
(cd m4
|
||||
ln *.m4 ../${tempdir}/m4)
|
||||
|
||||
## Exclude README.W32 because it is specific to pre-built binaries(?).
|
||||
echo "Making links to \`nt'"
|
||||
(cd nt
|
||||
ln emacs.manifest emacs.rc emacsclient.rc config.nt ../${tempdir}/nt
|
||||
ln emacs-src.tags nmake.defs gmake.defs subdirs.el ../${tempdir}/nt
|
||||
ln [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt
|
||||
ln ChangeLog INSTALL README makefile.w32-in ../${tempdir}/nt)
|
||||
|
||||
echo "Making links to \`nt/inc' and its subdirectories"
|
||||
for f in `find nt/inc -type f -name '[a-z]*.h'`; do
|
||||
ln $f $tempdir/$f
|
||||
done
|
||||
|
||||
echo "Making links to \`nt/icons'"
|
||||
(cd nt/icons
|
||||
ln README [a-z]*.ico ../../${tempdir}/nt/icons
|
||||
ln [a-z]*.cur ../../${tempdir}/nt/icons)
|
||||
|
||||
echo "Making links to \`msdos'"
|
||||
(cd msdos
|
||||
ln ChangeLog INSTALL README emacs.ico emacs.pif ../${tempdir}/msdos
|
||||
ln is_exec.c sigaction.c mainmake.v2 sed*.inp ../${tempdir}/msdos)
|
||||
|
||||
echo "Making links to \`nextstep'"
|
||||
(cd nextstep
|
||||
ln ChangeLog README INSTALL ../${tempdir}/nextstep)
|
||||
|
||||
echo "Making links to \`nextstep/Cocoa/Emacs.base/Contents'"
|
||||
(cd nextstep/Cocoa/Emacs.base/Contents
|
||||
ln Info.plist PkgInfo ../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents)
|
||||
|
||||
echo "Making links to \`nextstep/Cocoa/Emacs.base/Contents/Resources'"
|
||||
(cd nextstep/Cocoa/Emacs.base/Contents/Resources
|
||||
ln Credits.html *.icns ../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources)
|
||||
|
||||
echo "Making links to \`nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj'"
|
||||
(cd nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj
|
||||
ln InfoPlist.strings ../../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj)
|
||||
|
||||
echo "Making links to \`nextstep/Cocoa/Emacs.xcodeproj'"
|
||||
(cd nextstep/Cocoa/Emacs.xcodeproj
|
||||
ln project.pbxproj ../../../${tempdir}/nextstep/Cocoa/Emacs.xcodeproj)
|
||||
|
||||
echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources'"
|
||||
(cd nextstep/GNUstep/Emacs.base/Resources
|
||||
ln Emacs.desktop Info-gnustep.plist README emacs.tiff ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources )
|
||||
|
||||
echo "Making links to \`oldXMenu'"
|
||||
(cd oldXMenu
|
||||
ln *.[ch] *.in ../${tempdir}/oldXMenu
|
||||
ln README ChangeLog ../${tempdir}/oldXMenu)
|
||||
|
||||
echo "Making links to \`lwlib'"
|
||||
(cd lwlib
|
||||
ln *.[ch] *.in ../${tempdir}/lwlib
|
||||
ln README ChangeLog ../${tempdir}/lwlib)
|
||||
|
||||
echo "Making links to \`etc' and its subdirectories"
|
||||
for f in `find etc -type f`; do
|
||||
case $f in
|
||||
etc/DOC*) continue ;;
|
||||
esac
|
||||
ln $f $tempdir/$f
|
||||
done
|
||||
|
||||
echo "Making links to \`info'"
|
||||
ln `find info -type f -print` ${tempdir}/info
|
||||
|
||||
echo "Making links to \`doc/emacs'"
|
||||
(cd doc/emacs
|
||||
ln *.texi *.in makefile.w32-in ChangeLog* ../../${tempdir}/doc/emacs)
|
||||
|
||||
echo "Making links to \`doc/misc'"
|
||||
(cd doc/misc
|
||||
ln *.texi *.tex *.in makefile.w32-in gnus-news.el ChangeLog* ../../${tempdir}/doc/misc)
|
||||
|
||||
echo "Making links to \`doc/lispref'"
|
||||
(cd doc/lispref
|
||||
ln *.texi *.in makefile.w32-in README ChangeLog* ../../${tempdir}/doc/lispref
|
||||
ln *.txt *.el spellfile tindex.pl ../../${tempdir}/doc/lispref
|
||||
ln two-volume.make ../../${tempdir}/doc/lispref)
|
||||
|
||||
echo "Making links to \`doc/lispintro'"
|
||||
(cd doc/lispintro
|
||||
ln *.texi *.in makefile.w32-in *.eps *.pdf ../../${tempdir}/doc/lispintro
|
||||
ln README ChangeLog* ../../${tempdir}/doc/lispintro
|
||||
cd ../../${tempdir}/doc/lispintro)
|
||||
|
||||
echo "Making links to \`doc/man'"
|
||||
(cd doc/man
|
||||
ln ChangeLog* *.1 ../../${tempdir}/doc/man
|
||||
cd ../../${tempdir}/doc/man)
|
||||
|
||||
### It would be nice if they could all be symlinks to top-level copy, but
|
||||
### you're not supposed to have any symlinks in distribution tar files.
|
||||
echo "Making sure copying notices are all copies of \`COPYING'"
|
||||
for subdir in . etc info leim lib-src lisp lwlib msdos nt src; do
|
||||
rm -f ${tempdir}/${subdir}/COPYING
|
||||
cp COPYING ${tempdir}/${subdir}
|
||||
done
|
||||
|
||||
if [ "${newer}" ]; then
|
||||
echo "Removing files older than $newer"
|
||||
## We remove .elc files unconditionally, on the theory that anyone picking
|
||||
## up an incremental distribution already has a running Emacs to byte-compile
|
||||
## them with.
|
||||
find ${tempparent} \( -name '*.elc' -o ! -newer ${newer} \) -exec rm -f {} \;
|
||||
fi
|
||||
|
||||
## Don't distribute backups, autosaves, etc.
|
||||
echo "Removing unwanted files"
|
||||
find ${tempparent} \( -name '*~' -o -name '#*#' -o -name '.*ignore' -o -name '=*' -o -name 'TAGS' \) -exec rm -f {} \;
|
||||
|
||||
if [ "${make_tar}" = yes ]; then
|
||||
echo "Looking for $default_gzip"
|
||||
found=0
|
||||
temppath=`echo $PATH | sed -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \
|
||||
-e 's/:/ /g'`
|
||||
for dir in ${temppath}; do
|
||||
[ -x ${dir}/$default_gzip ] || continue
|
||||
found=1; break
|
||||
done
|
||||
if [ "$found" = "0" ]; then
|
||||
echo "WARNING: \`$default_gzip' not found, will not compress" >&2
|
||||
default_gzip=cat
|
||||
fi
|
||||
case "${default_gzip}" in
|
||||
bzip2) gzip_extension=.bz2 ;;
|
||||
lzma) gzip_extension=.lzma ;;
|
||||
gzip) gzip_extension=.gz ; default_gzip="gzip --best";;
|
||||
*) gzip_extension= ;;
|
||||
esac
|
||||
echo "Creating tar file"
|
||||
(cd ${tempparent} ; tar cvf - ${emacsname} ) \
|
||||
| ${default_gzip} \
|
||||
> ${emacsname}.tar${gzip_extension}
|
||||
fi
|
||||
|
||||
if [ "${clean_up}" != yes ]; then
|
||||
(cd ${tempparent}; mv ${emacsname} ..)
|
||||
rm -rf ${tempparent}
|
||||
fi
|
||||
|
||||
### make-dist ends here
|
152
mkinstalldirs
152
mkinstalldirs
@ -1,152 +0,0 @@
|
||||
#! /bin/sh
|
||||
# mkinstalldirs --- make directory hierarchy
|
||||
|
||||
scriptversion=2006-05-11.19
|
||||
|
||||
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||
# Created: 1993-05-16
|
||||
# Public domain.
|
||||
#
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
errstatus=0
|
||||
dirmode=
|
||||
|
||||
usage="\
|
||||
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
||||
|
||||
Create each directory DIR (with mode MODE, if specified), including all
|
||||
leading file name components.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>."
|
||||
|
||||
# process command line arguments
|
||||
while test $# -gt 0 ; do
|
||||
case $1 in
|
||||
-h | --help | --h*) # -h for help
|
||||
echo "$usage"
|
||||
exit $?
|
||||
;;
|
||||
-m) # -m PERM arg
|
||||
shift
|
||||
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
||||
dirmode=$1
|
||||
shift
|
||||
;;
|
||||
--version)
|
||||
echo "$0 $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
--) # stop option processing
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*) # unknown option
|
||||
echo "$usage" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*) # first non-opt arg
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
for file
|
||||
do
|
||||
if test -d "$file"; then
|
||||
shift
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
case $# in
|
||||
0) exit 0 ;;
|
||||
esac
|
||||
|
||||
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
|
||||
# mkdir -p a/c at the same time, both will detect that a is missing,
|
||||
# one will create a, then the other will try to create a and die with
|
||||
# a "File exists" error. This is a problem when calling mkinstalldirs
|
||||
# from a parallel make. We use --version in the probe to restrict
|
||||
# ourselves to GNU mkdir, which is thread-safe.
|
||||
case $dirmode in
|
||||
'')
|
||||
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||
echo "mkdir -p -- $*"
|
||||
exec mkdir -p -- "$@"
|
||||
else
|
||||
# On NextStep and OpenStep, the `mkdir' command does not
|
||||
# recognize any option. It will interpret all options as
|
||||
# directories to create, and then abort because `.' already
|
||||
# exists.
|
||||
test -d ./-p && rmdir ./-p
|
||||
test -d ./--version && rmdir ./--version
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
|
||||
test ! -d ./--version; then
|
||||
echo "mkdir -m $dirmode -p -- $*"
|
||||
exec mkdir -m "$dirmode" -p -- "$@"
|
||||
else
|
||||
# Clean up after NextStep and OpenStep mkdir.
|
||||
for d in ./-m ./-p ./--version "./$dirmode";
|
||||
do
|
||||
test -d $d && rmdir $d
|
||||
done
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
for file
|
||||
do
|
||||
case $file in
|
||||
/*) pathcomp=/ ;;
|
||||
*) pathcomp= ;;
|
||||
esac
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
set fnord $file
|
||||
shift
|
||||
IFS=$oIFS
|
||||
|
||||
for d
|
||||
do
|
||||
test "x$d" = x && continue
|
||||
|
||||
pathcomp=$pathcomp$d
|
||||
case $pathcomp in
|
||||
-*) pathcomp=./$pathcomp ;;
|
||||
esac
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
echo "mkdir $pathcomp"
|
||||
|
||||
mkdir "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
errstatus=$lasterr
|
||||
else
|
||||
if test ! -z "$dirmode"; then
|
||||
echo "chmod $dirmode $pathcomp"
|
||||
lasterr=
|
||||
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -z "$lasterr"; then
|
||||
errstatus=$lasterr
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
pathcomp=$pathcomp/
|
||||
done
|
||||
done
|
||||
|
||||
exit $errstatus
|
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
if
|
||||
test -r $2
|
||||
then
|
||||
if
|
||||
cmp $1 $2 > /dev/null
|
||||
then
|
||||
echo $2 is unchanged
|
||||
rm -f $1
|
||||
else
|
||||
mv -f $1 $2
|
||||
fi
|
||||
else
|
||||
mv -f $1 $2
|
||||
fi
|
@ -1,59 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Write into $1/subdirs.el a list of subdirs of directory $1.
|
||||
|
||||
# Copyright (C) 1994, 1995, 1997, 1999, 2001, 2002, 2003, 2004, 2005,
|
||||
# 2006, 2007, 2008, 2009, 2010 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
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
cd $1
|
||||
for file in *; do
|
||||
case $file in
|
||||
*.elc | *.el | term | RCS | CVS | Old | . | .. | =* | *~ | *.orig | *.rej)
|
||||
;;
|
||||
*)
|
||||
if [ -d $file ]; then
|
||||
if [ "$file" = "obsolete" ]; then
|
||||
subdirs="$subdirs \"$file\""
|
||||
else
|
||||
subdirs="\"$file\" $subdirs"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "x$subdirs" = x ]; then
|
||||
rm -f subdirs.el
|
||||
else
|
||||
rm -f subdirs.el~
|
||||
echo ";; -*- no-byte-compile: t -*-
|
||||
;; In load-path, after this directory should come
|
||||
;; certain of its subdirectories. Here we specify them.
|
||||
(normal-top-level-add-to-load-path '($subdirs))
|
||||
;; Local" "Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; End:" > subdirs.el~
|
||||
if cmp "subdirs.el" "subdirs.el~" >/dev/null 2>&1; then
|
||||
:; # echo "subdirs.el unchanged";
|
||||
else
|
||||
mv subdirs.el~ subdirs.el
|
||||
fi
|
||||
fi
|
||||
|
||||
# arch-tag: 56ebcf1b-5c30-4934-b0b4-72d374064704
|
@ -1,9 +0,0 @@
|
||||
/^VPATH *=/c\
|
||||
# This works only in GNU make. Using the patterns avoids\
|
||||
# object files being found by VPATH, and thus permits building\
|
||||
# when $srcdir is configured itself.\
|
||||
vpath %.c $(srcdir)\
|
||||
vpath %.h $(srcdir)\
|
||||
\
|
||||
|
||||
# arch-tag: 56a64b50-e4e8-443a-960f-f13af0f1a545
|
Loading…
Reference in New Issue
Block a user