aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhillip Lord2017-10-25 22:06:50 +0100
committerPhillip Lord2017-10-25 22:06:50 +0100
commitb8cf159bbccce6393689ae969bc2e484b9b085f6 (patch)
treeea22151523c00db5a75c167145c342a86fe5aadf
parent46540a1c7adb1b89b6c2f6c9150fe8680c3a5fba (diff)
downloademacs-b8cf159bbccce6393689ae969bc2e484b9b085f6.tar.gz
emacs-b8cf159bbccce6393689ae969bc2e484b9b085f6.zip
Update documentation for windows build
* admin/nt/dist-build/README-scripts: New File.
-rw-r--r--admin/nt/dist-build/README-scripts92
1 files changed, 92 insertions, 0 deletions
diff --git a/admin/nt/dist-build/README-scripts b/admin/nt/dist-build/README-scripts
new file mode 100644
index 00000000000..a20099e4eb6
--- /dev/null
+++ b/admin/nt/dist-build/README-scripts
@@ -0,0 +1,92 @@
1Distribution Build Scripts for Windows
2======================================
3
4The scripts are used to build the binary distribution zip files for windows.
5
6File System Organisation
7------------------------
8
9
10They are relatively strict about the file system organisation. In
11general, they should work across several more than just the version of
12Emacs they come with, as the dependencies of Emacs change relatively slowly.
13
14The file system needs to be organised like so:
15
16~/emacs-build/git
17
18Contains a checkout of the Emacs git repository, organised according
19to branches, with git worktree
20
21~/emacs-build/git/emacs-$branch
22
23A branch of the git repository containing the current release
24branch. This has to be created by hand.
25
26~/emacs-build/git/emacs-$version
27
28A branch of the git repository containing the last release. The
29build-zips.sh file will create this for you.
30
31~/emacs-build/deps
32
33A location for the dependencies. This needs to contain two zip files
34with the dependencies. build-dep-zips.py will create these files for you.
35
36~/emacs-build/deps/libXpm/i686
37~/emacs-build/deps/libXpm/x86_64
38
39Contain libXpm-noX4.dll. This file is used to load images for the
40splash screen, menu items and so on. Emacs runs without it, but looks
41horrible. The x86_64 comes from msys2, while the i686 comes from
42ezwinports because it itself has no dependencies. These have to be
43placed manually (but probably never need updating).
44
45
46~/emacs-build/build/$version/i686
47~/emacs-build/build/$version/x86_64
48
49We build Emacs out-of-source here. This directory is created by
50build-zips.sh. This directory can be freely deleted after zips have
51been created
52
53
54~/emacs-build/install/$version/i686
55~/emacs-build/install/$version/x86_64
56
57We install Emacs here. This directory is created by build-zips.sh.
58This directory can and *should* be deleted after zips have been
59created.
60
61~/emacs-upload
62
63Zips are created and moved here from where they can be, well,
64uploaded.
65
66
67
68Build Process
69-------------
70
71For each major version:
72
73The dependencies files need to be created. This can be around the time
74of the pre-tests, then used for all releases of that version, to
75ensure the maximum stability.
76
77To do this:
78
79Update msys to the latest version with `pacman -Syu`.
80
81Then run build-dep-zips.py, in this directory. Three zips will be
82created, containing the 64bit and 32bit dependencies, as well as the
83source for these.
84
85For emacs release or pre-test version:
86
87Run `build-zips.sh -g` in the release branch. This will create a worktree
88with the tag of the last version.
89
90Then run `build-zips.sh` in this worktree. Eventually, four new zip
91files will be created in ~/emacs-upload from where they can be signed
92and uploaded with `gnupload`.