annotate contrib/win32/win32-build.txt @ 12262:df5386ae41b9

win32: update Inno Setup build instructions with up-to-date software
author Pascal Quantin <pascal.quantin@gmail.com>
date Sat, 11 Sep 2010 09:48:10 +0200
parents 5ff192fb09ff
children 5f19416056b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
1 The standalone Windows installer for Mercurial is built in a somewhat
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
2 jury-rigged fashion.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
3
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
4 It has the following prerequisites, at least as I build it:
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
5
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
6 Python 2.6 for Windows
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
7 http://www.python.org/download/releases/
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
8
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
9 A compiler:
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
10 either MinGW
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
11 http://www.mingw.org/
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
12 or Microsoft Visual C++ 2008 SP1 Express Edition
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
13 http://www.microsoft.com/express/Downloads/Download-2008.aspx
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
14
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
15 Python for Windows Extensions
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
16 http://sourceforge.net/projects/pywin32/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
17
8058
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
18 mfc71.dll (just download, don't install; not needed for Python 2.6)
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
19 http://starship.python.net/crew/mhammond/win32/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
20
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
21 Visual C++ 2008 SP1 redistributable package (needed for >= Python 2.6 or if you compile with MSVC)
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
22 http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2
8058
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
23
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
24 The py2exe distutils extension
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
25 http://sourceforge.net/projects/py2exe/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
26
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
27 GnuWin32 gettext utility (if you want to build translations)
9175
22979282d8ca Mention GnuWin32 gettext in win32 build instructions
Patrick Mezard <pmezard@gmail.com>
parents: 8058
diff changeset
28 http://gnuwin32.sourceforge.net/packages/gettext.htm
22979282d8ca Mention GnuWin32 gettext in win32 build instructions
Patrick Mezard <pmezard@gmail.com>
parents: 8058
diff changeset
29
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
30 Inno Setup
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
31 http://www.jrsoftware.org/isdl.php#qsp
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
32
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
33 Get and install ispack-5.3.10.exe which includes Inno Setup Processor,
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
34 which is necessary to package Mercurial.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
35
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
36 ISTool - optional
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
37 http://www.istool.org/default.aspx/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
38
2384
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
39 add_path (you need only add_path.exe in the zip file)
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
40 http://www.barisione.org/apps.html#add_path
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
41
9179
9e5e2e07cf81 Update win32 build instructions for rst2html
Patrick Mezard <pmezard@gmail.com>
parents: 9175
diff changeset
42 Docutils
9e5e2e07cf81 Update win32 build instructions for rst2html
Patrick Mezard <pmezard@gmail.com>
parents: 9175
diff changeset
43 http://docutils.sourceforge.net/
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
44
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
45 And, of course, Mercurial itself.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
46
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
47 Once you have all this installed and built, clone a copy of the
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
48 Mercurial repository you want to package, and name the repo
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
49 C:\hg\hg-release.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
50
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
51 In a shell, build a standalone copy of the hg.exe program.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
52
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
53 Building instructions for MinGW:
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4401
diff changeset
54 python setup.py build -c mingw32
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
55 python setup.py py2exe -b 2
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
56 Note: the previously suggested combined command of "python setup.py build -c
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
57 mingw32 py2exe -b 2" doesn't work correctly anymore as it doesn't include the
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
58 extensions in the mercurial subdirectory.
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
59 If you want to create a file named setup.cfg with the contents:
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
60 [build]
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
61 compiler=mingw32
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
62 you can skip the first build step.
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
63
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
64 Building instructions with MSVC 2008 SP1 Express Edition:
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
65 python setup.py py2exe -b 2
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
66
8058
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
67 Copy add_path.exe into the dist directory that just got created.
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
68
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
69 If you are using Python up to version 2.5.4, copy mfc71.dll into the dist
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
70 directory that just got created.
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
71
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
72 If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
73 mercurial, you must include the C runtime libraries in the installer. To do so,
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
74 install the Visual C++ 2008 SP1 redistributable package. Then in your
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
75 windows\winsxs folder, locate the folder containing the dlls version 9.0.30729.
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
76 For x86, it should be named like x86_Microsoft.VC90.CRT_(...)_9.0.30729(...).
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
77 Copy the files named msvcm90.dll, msvcp90.dll and msvcr90.dll into the dist
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
78 directory.
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
79 Then in the windows\winsxs\manifests folder, locate the corresponding manifest
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
80 file (x86_Microsoft.VC90.CRT_(...)_9.0.30729(...).manifest for x86), copy it in
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
81 the dist directory and rename it to Microsoft.VC90.CRT.manifest.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
82
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
83 Before building the installer, you have to build Mercurial HTML documentation
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
84 (or fix mercurial.iss to not reference the doc directory):
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
85
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
86 cd doc
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
87 mingw32-make html
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
88 cd ..
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
89
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
90 If you use ISTool, you open the C:\hg\hg-release\contrib\win32\mercurial.iss
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
91 file and type Ctrl-F9 to compile the installer file.
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
92
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
93 Otherwise you run the Inno Setup compiler. Assuming it's in the path
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
94 you should execute:
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
95
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
96 iscc contrib\win32\mercurial.iss /dVERSION=foo
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
97
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
98 Where 'foo' is the version number you would like to see in the
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
99 'Add/Remove Applications' tool. The installer will be placed into
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
100 a directory named Output/ at the root of your repository.
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
101 If the /dVERSION=foo parameter is not given in the command line, the
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
102 installer will retrieve the version information from the __version__.py file.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
103
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
104 To automate the steps above you may want to create a batchfile based on the
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
105 following (MinGW build chain):
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
106
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
107 echo [build] > setup.cfg
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
108 echo compiler=mingw32 >> setup.cfg
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
109 python setup.py py2exe -b 2
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
110 cd doc
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
111 mingw32-make html
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
112 cd ..
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
113 iscc contrib\win32\mercurial.iss /dVERSION=snapshot
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
114
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
115 and run it from the root of the hg repository (c:\hg\hg-release).