##// END OF EJS Templates
win32: drop reference to python2.5
timeless -
r26805:e999ed21 default
parent child Browse files
Show More
@@ -1,133 +1,130
1 1 The standalone Windows installer for Mercurial is built in a somewhat
2 2 jury-rigged fashion.
3 3
4 4 It has the following prerequisites. Ensure to take the packages
5 5 matching the mercurial version you want to build (32-bit or 64-bit).
6 6
7 7 Python 2.6 for Windows
8 8 http://www.python.org/download/releases/
9 9
10 10 A compiler:
11 11 either MinGW
12 12 http://www.mingw.org/
13 13 or Microsoft Visual C++ 2008 SP1 Express Edition
14 14 http://www.microsoft.com/express/Downloads/Download-2008.aspx
15 15
16 16 Python for Windows Extensions
17 17 http://sourceforge.net/projects/pywin32/
18 18
19 19 mfc71.dll (just download, don't install; not needed for Python 2.6)
20 20 http://starship.python.net/crew/mhammond/win32/
21 21
22 22 Visual C++ 2008 redistributable package (needed for >= Python 2.6 or if you compile with MSVC)
23 23 for 32-bit:
24 24 http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
25 25 for 64-bit:
26 26 http://www.microsoft.com/downloads/details.aspx?familyid=bd2a6171-e2d6-4230-b809-9a8d7548c1b6
27 27
28 28 The py2exe distutils extension
29 29 http://sourceforge.net/projects/py2exe/
30 30
31 31 GnuWin32 gettext utility (if you want to build translations)
32 32 http://gnuwin32.sourceforge.net/packages/gettext.htm
33 33
34 34 Inno Setup
35 35 http://www.jrsoftware.org/isdl.php#qsp
36 36
37 37 Get and install ispack-5.3.10.exe or later (includes Inno Setup Processor),
38 38 which is necessary to package Mercurial.
39 39
40 40 ISTool - optional
41 41 http://www.istool.org/default.aspx/
42 42
43 43 add_path (you need only add_path.exe in the zip file)
44 44 http://www.barisione.org/apps.html#add_path
45 45
46 46 Docutils
47 47 http://docutils.sourceforge.net/
48 48
49 49 CA Certs file
50 50 http://curl.haxx.se/ca/cacert.pem
51 51
52 52 And, of course, Mercurial itself.
53 53
54 54 Once you have all this installed and built, clone a copy of the
55 55 Mercurial repository you want to package, and name the repo
56 56 C:\hg\hg-release.
57 57
58 58 In a shell, build a standalone copy of the hg.exe program.
59 59
60 60 Building instructions for MinGW:
61 61 python setup.py build -c mingw32
62 62 python setup.py py2exe -b 2
63 63 Note: the previously suggested combined command of "python setup.py build -c
64 64 mingw32 py2exe -b 2" doesn't work correctly anymore as it doesn't include the
65 65 extensions in the mercurial subdirectory.
66 66 If you want to create a file named setup.cfg with the contents:
67 67 [build]
68 68 compiler=mingw32
69 69 you can skip the first build step.
70 70
71 71 Building instructions with MSVC 2008 Express Edition:
72 72 for 32-bit:
73 73 "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
74 74 python setup.py py2exe -b 2
75 75 for 64-bit:
76 76 "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64
77 77 python setup.py py2exe -b 3
78 78
79 79 Copy add_path.exe and cacert.pem files into the dist directory that just got created.
80 80
81 If you are using Python up to version 2.5.4, copy mfc71.dll into the dist
82 directory that just got created.
83
84 81 If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile
85 82 mercurial, you must include the C runtime libraries in the installer. To do so,
86 83 install the Visual C++ 2008 redistributable package. Then in your windows\winsxs
87 84 folder, locate the folder containing the dlls version 9.0.21022.8.
88 85 For x86, it should be named like x86_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).
89 86 For x64, it should be named like amd64_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).
90 87 Copy the files named msvcm90.dll, msvcp90.dll and msvcr90.dll into the dist
91 88 directory.
92 89 Then in the windows\winsxs\manifests folder, locate the corresponding manifest
93 90 file (x86_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).manifest for x86,
94 91 amd64_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).manifest for x64), copy it in the
95 92 dist directory and rename it to Microsoft.VC90.CRT.manifest.
96 93
97 94 Before building the installer, you have to build Mercurial HTML documentation
98 95 (or fix mercurial.iss to not reference the doc directory):
99 96
100 97 cd doc
101 98 mingw32-make html
102 99 cd ..
103 100
104 101 If you use ISTool, you open the C:\hg\hg-release\contrib\win32\mercurial.iss
105 102 file and type Ctrl-F9 to compile the installer file.
106 103
107 104 Otherwise you run the Inno Setup compiler. Assuming it's in the path
108 105 you should execute:
109 106
110 107 iscc contrib\win32\mercurial.iss /dVERSION=foo
111 108
112 109 Where 'foo' is the version number you would like to see in the
113 110 'Add/Remove Applications' tool. The installer will be placed into
114 111 a directory named Output/ at the root of your repository.
115 112 If the /dVERSION=foo parameter is not given in the command line, the
116 113 installer will retrieve the version information from the __version__.py file.
117 114
118 115 If you want to build an installer for a 64-bit mercurial, add /dARCH=x64 to
119 116 your command line:
120 117 iscc contrib\win32\mercurial.iss /dARCH=x64
121 118
122 119 To automate the steps above you may want to create a batchfile based on the
123 120 following (MinGW build chain):
124 121
125 122 echo [build] > setup.cfg
126 123 echo compiler=mingw32 >> setup.cfg
127 124 python setup.py py2exe -b 2
128 125 cd doc
129 126 mingw32-make html
130 127 cd ..
131 128 iscc contrib\win32\mercurial.iss /dVERSION=snapshot
132 129
133 130 and run it from the root of the hg repository (c:\hg\hg-release).
General Comments 0
You need to be logged in to leave comments. Login now