Skip to content

Instantly share code, notes, and snippets.

@dled
Last active March 7, 2016 19:13
Show Gist options
  • Save dled/141c752eeb547b49b917 to your computer and use it in GitHub Desktop.
Save dled/141c752eeb547b49b917 to your computer and use it in GitHub Desktop.
emacs source and build on git
## Deb. / Ubuntu (trusty)
`sudo apt-get build-dep emacs24` or ...
```
sudo apt-get install gcc automake autotools libmagick++-dev libxmp4-dev \
libgtk2.0-dev libxft-dev libgnutls-dev libdbus-1-dev libgif-dev
```
## RPM
`sudo yum-builddep emacs` or ...
```
sudo yum install gcc makeinfo texinfo gtk3-devel gnutls-devel\
giflib-devel ImageMagick-c++-devel autotools automake \
libXaw-devel libpng-devel ncurses-devel libxml2-devel
```
```
git clone git://git.savannah.gnu.org/emacs.git
cd emacs
./autogen.sh && ./autogen.sh git
./configure
make
./src/emacs &
```
https://github.com/emacs-mirror/emacs
http://git.savannah.gnu.org/cgit/emacs.git
A rundown of Emacs archive files
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.ac' is the input used by the autoconf program to
construct the 'configure' script.
The shell script 'autogen.sh' generates 'configure' and other files by
running the GNU build tools autoconf and automake, which in turn use
GNU m4 and Perl. If you want to use it, you will need to install
recent versions of these build tools. This should be needed only if
you edit files like 'configure.ac' that specify Emacs's autobuild
procedure.
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 original source files for the generated files
in lisp/leim. These form the library of Emacs input methods,
required to type international characters that can't be
directly produced by your keyboard.
'lib' holds source code for libraries used by Emacs and its utilities
'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 MS-DOS.
'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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment