@@ -8946,7 +8946,7 @@ a zero-extended absolute displacement can access from 0 to 4 GB.
8946
8946
On Unix, the 64-bit ABI as well as the x32 ABI (32-bit ABI with the
8947
8947
CPU in 64-bit mode) is defined by the documents at:
8948
8948
8949
- \W{http ://www.nasm.us/abi/unix64}\c{http ://www.nasm.us/abi/unix64}
8949
+ \W{https ://www.nasm.us/abi/unix64}\c{https ://www.nasm.us/abi/unix64}
8950
8950
8951
8951
Although written for AT&T-syntax assembly, the concepts apply equally
8952
8952
well for NASM-style assembly. What follows is a simplified summary.
@@ -8980,7 +8980,7 @@ Integer and SSE register arguments are counted separately, so for the case of
8980
8980
8981
8981
The Win64 ABI is described by the document at:
8982
8982
8983
- \W{http ://www.nasm.us/abi/win64}\c{http ://www.nasm.us/abi/win64}
8983
+ \W{https ://www.nasm.us/abi/win64}\c{https ://www.nasm.us/abi/win64}
8984
8984
8985
8985
What follows is a simplified summary.
8986
8986
@@ -9294,32 +9294,109 @@ anyway.
9294
9294
\A{source} Building NASM from Source
9295
9295
9296
9296
The source code for NASM is available from our website,
9297
- \W{http://www.nasm.us/}{http ://www.nasm.us/}, see \k{website}.
9297
+ \w{https ://www.nasm.us/}, see \k{website}.
9298
9298
9299
9299
\H{tarball} Building from a Source Archive
9300
9300
9301
9301
The source archives available on the web site should be capable of
9302
9302
building on a number of platforms. This is the recommended method for
9303
9303
building NASM to support platforms for which executables are not
9304
- available.
9304
+ available, if you do not require changing the source code .
9305
9305
9306
- On a system which has Unix shell (\c{sh}), run:
9306
+ The preferred build platforms are development environments which
9307
+ support POSIX (Unix)-style tools (a "POSIX environment"). For Windows,
9308
+ MSYS2 (\w{https://www.msys2.org/}) is such a development environment.
9309
+
9310
+ In a POSIX environment, run:
9307
9311
9308
9312
\c sh configure
9309
- \c make everything
9313
+ \c make
9310
9314
9311
9315
A number of options can be passed to \c{configure}; see
9312
- \c{sh configure --help}.
9316
+ \c{sh configure --help}. In particular, the \c{--host} option can be
9317
+ used to cross-compile NASM to run on another host system.
9318
+
9319
+ For non-POSIX environments, a set of Makefiles for some other
9320
+ environments are also available; please see the file
9321
+ \c{Mkfiles/README}.
9322
+
9323
+ The \c{.zip} version of the source archive has DOS/Windows line
9324
+ endings (\c{CR LF}), which many POSIX systems will not recognize. To
9325
+ extract the \c{.zip} version on such a system, use \c{unzip
9326
+ -a}. The \c{.tar} versions of the source archive has POSIX line
9327
+ endings (\c{LF}).
9328
+
9329
+
9330
+ \H{buildtools} Optional Build Tools
9331
+
9332
+ The following additional tools are required to build specific
9333
+ subsystems, to build from the \c{git} repository, or if the sources
9334
+ are modified.
9335
+
9336
+ Note that some of these tools will have their own dependencies.
9337
+
9338
+ Make sure all tools are available in your \c{PATH} (or equivalent.)
9339
+
9340
+ To build the installer for the Windows platform:
9341
+
9342
+ \b The \i{Nullsoft Scriptable Installer} (\i{NSIS},
9343
+ \w{https://nsis-dev.github.io/}).
9344
+
9345
+ To modify the sources, \e{or} to build the documentation:
9346
+
9347
+ \b A Perl interpreter (\w{https://www.perl.org/}).
9348
+
9349
+ \b Modules from CPAN (\w{https://www.cpan.org/}). The following Perl
9350
+ modules are currently required, some of which will be bundled with the
9351
+ Perl interpreter or into larger CPAN packages:
9352
+
9353
+ \& perlbreq.src
9354
+
9355
+ To build the documentation:
9356
+
9357
+ \b Either Ghostscript (\w{https://www.ghostscript.com/}) or Adobe
9358
+ Acrobat Distiller (untested.)
9359
+
9360
+ \b The Adobe \e{Source Sans} (or \e{Source Sans 3}) and \e{Source
9361
+ Code} fonts, which are freely available under the SIL Open Font
9362
+ License (\w{https://fonts.adobe.com/}).
9363
+
9364
+ To build the Unix man pages:
9365
+
9366
+ \b AsciiDoc (\w{https://asciidoc.org/}).
9367
+
9368
+ \b xmlto (\w{https://pagure.io/xmlto/}).
9369
+
9370
+ To build from the \c{git} repository on a POSIX platform:
9313
9371
9314
- A set of Makefiles for some other environments are also available;
9315
- please see the file \c{Mkfiles/README} .
9372
+ \b GNU \c{m4}, \c{autoconf} and \c{autoheader}
9373
+ (\w{https://www.gnu.org/}) .
9316
9374
9317
- To build the installer for the Windows platform, you will need the
9318
- \i\e{Nullsoft Scriptable Installer}, \i{NSIS}, installed.
9319
9375
9320
- To build the documentation, you will need a set of additional tools.
9321
- The documentation is not likely to be able to build on non-Unix
9322
- systems.
9376
+
9377
+ \H{buildopt} Building Optional Components
9378
+
9379
+ Install the required tools for the subsystem in question as described
9380
+ in \k{buildtools}.
9381
+
9382
+ To build the documentation:
9383
+
9384
+ \c make doc
9385
+
9386
+ Building the documentation may not work in a non-POSIX environment.
9387
+
9388
+ To build the Windows installer:
9389
+
9390
+ \c make nsis
9391
+
9392
+ To build the Unix man pages:
9393
+
9394
+ \c make manpages
9395
+
9396
+ To build everything available on the current platform:
9397
+
9398
+ \c make everything
9399
+
9323
9400
9324
9401
\H{git} Building from the \i\c{git} Repository
9325
9402
@@ -9328,30 +9405,45 @@ the \c{git} distributed source control system. The link is available
9328
9405
on the website. This is recommended only to participate in the
9329
9406
development of NASM or to assist with testing the development code.
9330
9407
9331
- To build NASM from the \c{git} repository you will need a Perl
9332
- interpreter and, if building on a Unix system, GNU autoconf installed
9333
- on your system.
9408
+ Install the required tools as described in section \k{buildtools}.
9409
+
9410
+ In a POSIX environment:
9334
9411
9335
- To build on a Unix system, run :
9412
+ Run :
9336
9413
9337
9414
\c sh autogen.sh
9338
9415
9339
- to create the \c{configure} script and then build as listed above.
9416
+ to create the \c{configure} script and then build as described in
9417
+ \k{tarball}.
9418
+
9419
+ In a non-POSIX environment, use the tool-specific Makefiles
9420
+ as described in \k{tarball}.
9421
+
9422
+
9423
+ \H{modifysrc} Modifying the Sources
9424
+
9425
+ To build modified sources, you will need the tools described in
9426
+ \k{buildtools}.
9427
+
9428
+ Some build system changes might not be possible without a POSIX
9429
+ environment.
9430
+
9431
+ If you have modified the sources to change the embedded declarations
9432
+ of warning classes, you may have to manually re-build the warning
9433
+ catalog:
9434
+
9435
+ \c make warnings
9340
9436
9341
- \H{builddoc} Building the documentation
9437
+ This is not done automatically, as the tools do not have the ability
9438
+ to automatically detect when it is necessary to do so.
9342
9439
9343
- To build the documentation, you will need a Perl interpreter, a
9344
- Postscript to PDF converter such as Ghostscript, and suitable fonts
9345
- installed on your system. The recommended (and default) fonts are
9346
- Adobe's Source Sans and Source Code fonts, which are freely available
9347
- under the SIL Open Font License.
9348
9440
9349
9441
\A{contact} Contact Information
9350
9442
9351
9443
\H{website} Website
9352
9444
9353
9445
NASM has a \i{website} at
9354
- \W{http://www.nasm.us/}\c{http ://www.nasm.us/}.
9446
+ \w{https ://www.nasm.us/}.
9355
9447
9356
9448
\i{New releases}, \i{release candidates}, and \I{snapshots, daily
9357
9449
development}\i{daily development snapshots} of NASM are available from
@@ -9374,7 +9466,7 @@ links and archives of past posts are available on the website.
9374
9466
\H{bugs} \i{Reporting Bugs}\I{bugs}
9375
9467
9376
9468
To report bugs in NASM, please use the \i{bug tracker} at
9377
- \W{http://www.nasm.us/}\c{http ://www.nasm.us/} (click on "Bug
9469
+ \w{https ://www.nasm.us/} (click on "Bug
9378
9470
Tracker"), or if that fails then through one of the contacts in
9379
9471
\k{website}.
9380
9472
0 commit comments