@@ -8946,7 +8946,7 @@ a zero-extended absolute displacement can access from 0 to 4 GB.
89468946On Unix, the 64-bit ABI as well as the x32 ABI (32-bit ABI with the
89478947CPU in 64-bit mode) is defined by the documents at:
89488948
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}
89508950
89518951Although written for AT&T-syntax assembly, the concepts apply equally
89528952well 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
89808980
89818981The Win64 ABI is described by the document at:
89828982
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}
89848984
89858985What follows is a simplified summary.
89868986
@@ -9294,32 +9294,109 @@ anyway.
92949294\A{source} Building NASM from Source
92959295
92969296The 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}.
92989298
92999299\H{tarball} Building from a Source Archive
93009300
93019301The source archives available on the web site should be capable of
93029302building on a number of platforms. This is the recommended method for
93039303building NASM to support platforms for which executables are not
9304- available.
9304+ available, if you do not require changing the source code .
93059305
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:
93079311
93089312\c sh configure
9309- \c make everything
9313+ \c make
93109314
93119315A 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:
93139371
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/}) .
93169374
9317- To build the installer for the Windows platform, you will need the
9318- \i\e{Nullsoft Scriptable Installer}, \i{NSIS}, installed.
93199375
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+
93239400
93249401\H{git} Building from the \i\c{git} Repository
93259402
@@ -9328,30 +9405,45 @@ the \c{git} distributed source control system. The link is available
93289405on the website. This is recommended only to participate in the
93299406development of NASM or to assist with testing the development code.
93309407
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:
93349411
9335- To build on a Unix system, run :
9412+ Run :
93369413
93379414\c sh autogen.sh
93389415
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
93409436
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.
93429439
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.
93489440
93499441\A{contact} Contact Information
93509442
93519443\H{website} Website
93529444
93539445NASM has a \i{website} at
9354- \W{http://www.nasm.us/}\c{http ://www.nasm.us/}.
9446+ \w{https ://www.nasm.us/}.
93559447
93569448\i{New releases}, \i{release candidates}, and \I{snapshots, daily
93579449development}\i{daily development snapshots} of NASM are available from
@@ -9374,7 +9466,7 @@ links and archives of past posts are available on the website.
93749466\H{bugs} \i{Reporting Bugs}\I{bugs}
93759467
93769468To 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
93789470Tracker"), or if that fails then through one of the contacts in
93799471\k{website}.
93809472
0 commit comments