• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..01-Jan-2022-

README-scriptsH A D01-Jan-20224.3 KiB14591

README-windows-binariesH A D01-Jan-20223 KiB9564

build-dep-zips.pyH A D01-Jan-20227.5 KiB277166

build-zips.shH A D01-Jan-20224.8 KiB211147

emacs.nsiH A D01-Jan-20222.1 KiB7849

README-scripts

1Distribution Build Scripts for Windows
2======================================
3
4The scripts are used to build the binary distribution zip files for windows.
5
6Environment
7-----------
8
9A full installation of msys2 is required along for the build. The
10various dependencies of Emacs need to be installed also. These change
11over time, but are listed in build-deps-zips.py.
12
13
14
15File System Organization
16------------------------
17
18
19They are relatively strict about the file system organization. In
20general, they should work across several more than just the version of
21Emacs they come with, as the dependencies of Emacs change relatively slowly.
22
23The file system needs to be organized like so:
24
25~/emacs-build/git
26
27Contains checkouts and worktrees of the Emacs git repository,
28organized according to branches.
29
30~/emacs-build/git/master
31
32A checkout out of the master branch of the Emacs git repository.
33
34~/emacs-build/git/emacs-$major-version
35
36A worktree of the git repository containing the current release
37branch. This has to be created by hand.
38
39~/emacs-build/git/emacs-$release-version
40
41A branch of the git repository containing the last release. The
42build-zips.sh file will create this for you.
43
44~/emacs-build/deps
45
46A location for the dependencies. This needs to contain two zip files
47with the dependencies. build-dep-zips.py will create these files for you.
48
49~/emacs-build/deps/libXpm
50
51Contain libXpm-noX4.dll. This file is used to load images for the
52splash screen, menu items and so on. Emacs runs without it, but looks
53horrible. The files came original from msys2, and contains no
54dependencies. It has to be placed manually (but probably never
55need updating).
56
57~/emacs-build/build/$version
58
59We build Emacs out-of-source here. This directory is created by
60build-zips.sh. This directory can be freely deleted after zips have
61been created
62
63~/emacs-build/install/$version
64
65We install Emacs here. This directory is created by build-zips.sh.
66This directory can and *should* be deleted after zips have been
67created.
68
69~/emacs-upload
70
71Zips are created and moved here from where they can be, well,
72uploaded.
73
74
75
76Build Process
77-------------
78
79
80### For each major version
81
82The dependencies files need to be created. This can be around the time
83of the pre-tests, then used for all releases of that version, to
84ensure the maximum stability.
85
86To do this:
87
88Update msys to the latest version with `pacman -Syu`.
89
90Then run build-dep-zips.py, in the ~/emacs-build/deps directory. Two
91zips will be created, containing the dependencies, as well as the
92source for these.
93
94For emacs release or pre-test version:
95
96Run `build-zips.sh -g` in the release branch. This will create a worktree
97with the tag of the last version.
98
99Then run `build-zips.sh` in this worktree. Eventually, four new zip
100files will be created in ~/emacs-upload from where they can be signed
101and uploaded with `gnupload`.
102
103
104### For snapshots from Master
105
106Snapshots are generally created from master when there is a release
107branch on which a release has already been created. At this point,
108only pre-tests or full releases need to happen from the release
109branch.
110
111To do this:
112
113Update msys to the latest version with `pacman -Syu`.
114
115Then run build-dep-zips.py, in ~/emacs-build/deps directory. Two zips
116will be created, containing the dependencies, as well as the source
117for these. These deps files contain the date of creation in their
118name. The deps file can be reused as desired, or a new version
119created. Where multiple deps files exist, the most recent will be
120used.
121
122Now, run `build-zips.sh -s` to build a snapshot release.
123
124
125### For snapshots from a Release Branch
126
127Snapshots can be built from a release branch; this is really only
128useful before a pre-test has happened.
129
130The process is the same as for building from the master branch, except
131that the release branch should already exist as a worktree, and the
132version number must be added to the command line with `build-zips.sh
133-V 27 -s`.  The final zips will be named after the branch rather than
134the version (e.g emacs-27-2019-12-26.zip) rather than than the Emacs
135version (e.g emacs-27.0.50.zip).
136
137
138### For snapshots from another branch
139
140Snapshots can be build from any other branch.  There is rarely a need
141to do this, except where some significant, wide-ranging feature is
142being added on a feature branch.  In this case, the branch can be
143given using `build-zips.sh -b pdumper -s` for example. Any "/"
144characters in the branch title are replaced.
145

README-windows-binaries

1Copyright (C) 2001-2021 Free Software Foundation, Inc.
2See the end of the file for license conditions.
3
4		      Precompiled Distributions of
5			   Emacs for Windows
6
7                           Jan 14, 2021
8
9  This directory contains precompiled distributions for GNU Emacs on
10  Windows
11
12IMPORTANT LEGAL REMINDER
13========================
14
15If you want to redistribute any of the precompiled distributions of
16Emacs, be careful to check the implications of the GPL.  For instance,
17if you put the compiled file from this directory on an Internet site,
18you must arrange to distribute the source files of the SAME version.
19
20Making a link to our copy of the source is NOT sufficient, since we
21might upgrade to a new version while you are still distributing the
22old binaries.
23
24
25Windows Binaries
26================
27
28Currently, we provide three different binary packages for Emacs, which
29are:
30
31emacs-$VERSION-installer.exe
32
33Contains Emacs with dependencies as an installer
34package.  Mostly, this is the best one to install.
35
36emacs-$VERSION.zip
37
38Contains Emacs with dependencies.  This contains the same files as the
39installer but as a zip file which some users may prefer.
40
41emacs-$VERSION-no-deps.zip
42
43Contains Emacs without any dependencies. This may be useful if you
44wish to install where the dependencies are already available, or if
45you want the small possible Emacs.
46
47In addition, we provide the following files which will not be useful
48for most end-users.
49
50emacs-$VERSION-deps.zip
51
52The dependencies. Unzipping this file on top of
53emacs-$VERSION-no-deps.zip should result in the same install as
54emacs-$VERSION.zip.
55
56emacs-$VERSION-deps-mingw-w64-src.zip
57
58The source for the dependencies.  Source for Emacs itself is available
59in the main distribution tarball.  These dependencies were produced
60from an updated msys2 at the point of the first pre-test.  It is not
61intended that these will be updated after that point.
62
63Source for Emacs itself is found in the directory above.
64
65Snapshots
66=========
67
68We also distribute "snapshots" of Emacs built at points throughout the
69development cycle, for those interested in following this cycle.  They
70are not recommended for normal users; however, they are useful for
71people who want to report bugs against the current master.
72
73The files follow the same naming convention, but also include a date
74(and sometimes information about their branch).  The Emacs source at
75the time of these builds is also distributed.
76
77
78LICENSE
79======
80
81This file is part of GNU Emacs.
82
83GNU Emacs is free software: you can redistribute it and/or modify
84it under the terms of the GNU General Public License as published by
85the Free Software Foundation, either version 3 of the License, or
86(at your option) any later version.
87
88GNU Emacs is distributed in the hope that it will be useful,
89but WITHOUT ANY WARRANTY; without even the implied warranty of
90MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
91GNU General Public License for more details.
92
93You should have received a copy of the GNU General Public License
94along with GNU Emacs.  If not, see https://www.gnu.org/licenses/.
95