contrib/win32/win32-build.txt
author Patrick Mezard <pmezard@gmail.com>
Sat, 17 Jan 2009 15:15:26 +0100
changeset 7660 ceed5f8c4ebf
parent 5081 ea7b982b6c08
child 8058 a0555ae394b3
permissions -rw-r--r--
Document how HTML documentation is built under Windows
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     6
  Python for Windows
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
     7
      http://www.python.org/ftp/python/2.4.3/python-2.4.3.msi
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     8
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     9
  MinGW
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    10
      http://www.mingw.org/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    11
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    12
  Python for Windows Extensions
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    13
      http://sourceforge.net/projects/pywin32/
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
  mfc71.dll (just download, don't install)
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    16
      http://starship.python.net/crew/mhammond/win32/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    17
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    18
  The py2exe distutils extension
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    19
      http://sourceforge.net/projects/py2exe/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    20
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    21
  Inno Setup
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    22
      http://www.jrsoftware.org/isinfo.php
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    23
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    24
  ISTool - optional
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    25
      http://www.istool.org/default.aspx/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    26
2384
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
    27
  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
    28
      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
    29
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    30
  Asciidoc - optional
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    31
      http://www.methods.co.nz/asciidoc/
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    32
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    33
And, of course, Mercurial itself.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    34
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    35
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
    36
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
    37
C:\hg\hg-release.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    38
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    39
In a shell, build a standalone copy of the hg.exe program:
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    40
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4401
diff changeset
    41
  python setup.py build -c mingw32
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    42
  python setup.py py2exe -b 1
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    43
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    44
Note: the previously suggested combined command of "python setup.py build -c
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    45
mingw32 py2exe -b 1" doesn't work correctly anymore as it doesn't include the
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    46
extensions in the mercurial subdirectory.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    47
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    48
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
    49
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    50
[build]
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    51
compiler=mingw32
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    52
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    53
you can skip the first build step.
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    54
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    55
Copy mfc71.dll and add_path.exe into the dist directory that just got created.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    56
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    57
Before building the installer, you have to build Mercurial HTML documentation 
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    58
(or fix mercurial.iss to not reference the doc directory). Assuming you have an
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    59
"asciidoc.bat" batch file somewhere in your PATH:
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    60
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    61
  cd doc
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    62
  mingw32-make ASCIIDOC=asciidoc.bat html
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    63
  cd ..
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    64
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    65
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
    66
file and type Ctrl-F9 to compile the installer file.
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    67
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    68
Otherwise you run the Inno Setup compiler.  Assuming it's on the path you run:
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    69
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    70
  iscc contrib\win32\mercurial.iss
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    71
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    72
The actual installer will be in the C:\hg\hg-release\Output directory.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    73
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    74
To automate the steps above you may want to create a batchfile based on the
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    75
following:
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    76
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    77
  echo [build] > setup.cfg
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    78
  echo compiler=mingw32 >> setup.cfg
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    79
  python setup.py py2exe -b 1
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    80
  cd doc
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    81
  mingw32-make ASCIIDOC=asciidoc.bat html
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    82
  cd ..
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    83
  iscc contrib\win32\mercurial.iss
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    84
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    85
and run it from the root of the hg repository (c:\hg\hg-release).