1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
Building the Windows Installer for GNU units
Jeff Conrad 2 December 2024
This procedure requires Microsoft Visual Studio; Unix-like utilities,
including a Bourne-compatible shell, cp, expr, mv, ls, rm, and sed;
MikTeX or equivalent; Inno Setup, and GnuPG or equivalent. It was most
recently run using the following packages:
* Microsoft Visual Studio 2022
* PTC MKS Toolkit for Developers 10.4
* MikTeX 24.1
* Inno Setup 6.6.3
* GnuPG 2.4.5
* rmbom (optional)
Notes:
------
For the Windows build, the data file and the locale map are installed in
the same directory as the executable, and are found with relative
pathnames. A typical build for a Unix-like environment--such as the PTC
MKS Toolkit--uses absolute pathnames for these files. This makefile
removes the compiled files with the absolute pathnames and recompiles
them with relative pathnames.
The file 'lwords' is a list of words for spell(1) to ignore; the file
'ex.rc' is the equivalent of '.exrc' for PTC MKS vi/viw, _not_ a
Resource Compiler file. Two programs--spellx and adjust--are mapped in
ex.rc. The spellx program is an interactive front end to spell(1);
adjust is a line-filling program similar to fmt(1). The standard
programs can be used to much the same effect.
'rmbom' is a program that removes a UTF-8 marker ("BOM") from one or
more files. The program used here is an executable but some versions of
sed(1) will also work. A "BOM" can also be removed interactively using
vim, notepad, notepad++, and perhaps some other editors.
Procedure
=========
1. If necessary, update Readme.txt and UnitsForWindows.texinfo,
including edition, version, copyright date, and build date.
2. Before running configure in the source directory, examine
Makefile.in in the Windows directory and ensure the correct values
for
ProgFiles32
ProgFiles64
GPG (GnuPG or equivalent)
ISCC (Inno Setup)
FLIP (program to convert LF to CRLF)
RMBOM (program to remove UTF-8 marker; optional)
TEXI2PDF
ZIP (WinZip command line)
Be aware that Makefile will be overwritten every time the configure
script is run. If you wish to make changes without running
configure again, make the changes to Makefile.in, copy it to
"Makefile", and change the line
VERSION = @PACKAGE_VERSION@
so it gives the proper version, e.g.,
VERSION = 2.24a
This version must match the version in the units executable in the
source directory, which can be obtained by running "../units -V".
3. If you have not already done so, run "./configure" in the source
directory to create Makefile in the Windows directory.
4. Ensure that the proper Visual Studio variables are set, such as by
running "source setvcvars".
5. From the Windows directory, run "make" to build the Windows version
of units, generate or copy the other files, and create the
installer.
The process will abort if any of the text files have UTF-8 markers;
if any are found, do what is necessary to remove the markers. If
you have a program that will do this, assign it to RMBOM and run
"make rmbom".
6. Open UnitsForWindows.pdf and verify that the Table of Contents has
been properly generated; if not, run "make -u pdf" to recreate it;
open and confirm that it's OK, and run "make" again. The TEXI2PDF
program is run twice, so the ToC should usually be correct.
7. Run "make check" and verify that the data file and the locale map
include only the filenames. These are checked before building the
installer, so there should seldom be a problem.
8. Run the installer to confirm that it works by running "make install".
Note the output of units -I and verify that the paths for the data
file and the locale map are correct; as with the previous step,
there should seldom be a problem.
9. Run "make winsig" to create the Directive and signature. If the
call to gpg fails, you may need to run "gpgconf --launch gpg-agent".
10. Upload the installer:
# for release:
Run "make upload" to upload the installer.
# for alpha:
Run "make alpha" to upload the installer to the alpha site.
# for zipped version (e.g., for 2.24):
put units-2.24-*.zip
or
put units-2.24-setup.zip
put units-2.24-setup.zip.directive.asc
put units-2.24-setup.zip.sig
# to archive
put units-2.24-setup.zip.archive.directive.asc
|