- clean up compile section and add subsections with platform specific hints
This commit is contained in:
parent
9111c33167
commit
33da4882f2
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
================================================================
|
||||
doc/docbook/user/user.dbk
|
||||
$Id: user.dbk,v 1.24 2001-11-17 17:20:29 bdenney Exp $
|
||||
$Id: user.dbk,v 1.25 2001-11-17 22:04:33 bdenney Exp $
|
||||
|
||||
This is the top level file for the Bochs Users Manual.
|
||||
================================================================
|
||||
@ -705,7 +705,6 @@ version. If you trying to get things working for the first time, a release
|
||||
version is recommended since it has been tested the most. The development
|
||||
versions (sometimes called snapshots) may have some newer bug fixes and new
|
||||
features, but have not been tested as much as the releases.
|
||||
See the <link linkend="linuxrpm">Linux RPM Section</link> for more information.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -715,9 +714,9 @@ install, and most include a small demo of a guest operating system called DLX
|
||||
Linux to get you started. However, some features can only be enabled if you
|
||||
compile Bochs yourself, for example the Bochs debugger. For multiuser systems,
|
||||
you will probably need system administrator privileges (root) to install a
|
||||
binary package. If you decide to get a binary, download it to your hard disk
|
||||
and then go to the section called <link linkend="install-binary">Installing a
|
||||
Binary</link> for more information.
|
||||
binary package. If you decide to get a binary, download it to your hard disk,
|
||||
uncompress it, then go to the section called <link
|
||||
linkend="install-binary">Installing a Binary</link> for more information.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -731,7 +730,12 @@ A TAR file is a single file that contains many files packed inside. Bochs
|
||||
TAR files are compressed with a program called gzip, and another program
|
||||
called gunzip is used to uncompress them.
|
||||
</para>
|
||||
</footnote>, type
|
||||
</footnote> on a Unix machine<footnote>
|
||||
<para>
|
||||
On Windows, look for software called WinZip to unpack the TAR.
|
||||
</para>
|
||||
</footnote>
|
||||
, type
|
||||
<screen>
|
||||
gunzip -c bochs-<replaceable>version</replaceable>.tar.gz | tar -xvf -
|
||||
</screen>
|
||||
@ -739,8 +743,7 @@ This creates a directory called
|
||||
<filename>bochs-<replaceable>version</replaceable></filename> full of
|
||||
files. This directory will be referred to as &bochsdir;. Go into
|
||||
&bochsdir; and you are ready to compile. Instructions for compiling
|
||||
Bochs are in
|
||||
<xref linkend="compiling">.
|
||||
Bochs are in the section, <link linkend="compiling">Compiling Bochs</link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -1099,6 +1102,18 @@ need to compile Bochs in your home directory.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<tip>
|
||||
<para>
|
||||
If RPM installation fails, try running <command>rpm -e bochs</command> first to
|
||||
erase any old bochs RPMs.
|
||||
|
||||
VGA Font failure? For now, look at old bochs docs for now for instructions on
|
||||
installing the VGA font by hand. &FIXME;
|
||||
|
||||
Missing RPM dependencies? Try --nodeps option.
|
||||
</para>
|
||||
</tip>
|
||||
|
||||
<para>
|
||||
The Bochs RPM installs three new commands and associated manual pages: bochs,
|
||||
bochs-dlx, and bximage. First, let's try out the DLX Linux demo by typing
|
||||
@ -1144,37 +1159,30 @@ Point to all the files that get installed with the RPM: binaries,
|
||||
BIOSes, DLX linux, HTML docs and man pages, etc.
|
||||
</para>
|
||||
|
||||
<tip>
|
||||
<para>
|
||||
&FIXME; not complete!
|
||||
If RPM installation fails.... Try rpm -e bochs to erase any old bochs RPMs.
|
||||
font failure? look at old bochs docs for now for instructions on installing
|
||||
the VGA font by hand. Missing RPM dependencies? Try --nodeps option.
|
||||
</para>
|
||||
</tip>
|
||||
|
||||
</section> <!-- end of Installing a Binary:Linux section -->
|
||||
|
||||
</section> <!-- end of Installing a Binary -->
|
||||
|
||||
<section id="compiling"><title>Compiling Bochs</title>
|
||||
|
||||
<section><title>Instructions for Unix</title>
|
||||
<section><title>Standard Compile</title>
|
||||
<para>
|
||||
Bochs is written in C++, so you need a C++ compiler to compile. Most platforms
|
||||
have been tested with GNU gcc/g++, but other compilers should work as well.
|
||||
By now, you should have unpacked your source TAR file or checked out Bochs
|
||||
from CVS. If not, you can return to <link linkend="downloading">Downloading
|
||||
Bochs is written in C++, so you need a C++ compiler on your system. Most
|
||||
platforms have been tested with GNU gcc/g++, but other compilers also work.
|
||||
By now, you should have unpacked your source TAR file or checked out Bochs from
|
||||
CVS. If not, you can return to <link linkend="downloading">Downloading
|
||||
Bochs</link> for details. The top level directory of the source code will be
|
||||
referred to as &bochsdir;. (&bochsdir; contains the files
|
||||
<filename>bochs.h</filename> and <filename>main.cc</filename> and
|
||||
subdirectories <filename>cpu</filename> and <filename>bios</filename>.)
|
||||
<filename>bochs.h</filename> and <filename>main.cc</filename> and
|
||||
subdirectories <filename>cpu</filename> and <filename>bios</filename>.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The compile process has three basic steps: configure, make, and make install.
|
||||
The next three sections describe each of the steps. A fourth section is
|
||||
a transcript of a successful compilation from start to finish.
|
||||
The standard compile process has three basic steps:
|
||||
<command>configure</command>, <command>make</command>, and <command>make
|
||||
install</command>. Each step is described in a separate section below. The
|
||||
standard compile process is used on all Unix machines, MacOS X, BeOS, and Win32
|
||||
with Cygwin. There are separate instructions for <link linkend="compiling-win32">compiling for Win32 with Microsoft VC++</link>.
|
||||
</para>
|
||||
|
||||
<section id="configure"><title>Configure</title>
|
||||
@ -1184,24 +1192,30 @@ There is a script called <command>configure</command> which tests your
|
||||
machine, C/C++ compiler and libraries to discover what settings should work on
|
||||
your system. If you run <command>configure</command> with no arguments after
|
||||
it, defaults will be used for all settings. To change the settings, you can
|
||||
run <command>configure</command> again with options that override the
|
||||
run <command>configure</command> with options that override the
|
||||
defaults. You can get a list of valid configure options by typing
|
||||
<command>configure --help</command>. All configure options are documented in a
|
||||
<link linkend="config-opts">later section</link>. </para>
|
||||
<link linkend="config-opts">later section</link>. One useful configure
|
||||
option is --prefix=<replaceable>directory</replaceable>, which sets
|
||||
the directory in which Bochs will be installed.
|
||||
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Among other things, the configure script tries to guess your compiler and
|
||||
a set of compile options that work. If you want to control this,
|
||||
set these environment variables before running configure:
|
||||
<varname>CC</varname>, <varname>CXX</varname>, <varname>CFLAGS</varname>,
|
||||
<varname>CXXFLAGS</varname>. The bash/ksh<footnote>
|
||||
<varname>CXXFLAGS</varname>. Here is an example that sets the environment
|
||||
variables, using bash/ksh<footnote>
|
||||
<para>
|
||||
In csh and variants, use the syntax <command>setenv <replaceable>VARIABLE</replaceable> <replaceable>value</replaceable></command> to change environment
|
||||
variables.
|
||||
The syntax for bash and ksh is given. In csh and variants, use the syntax
|
||||
<command>setenv <replaceable>VARIABLE</replaceable>
|
||||
<replaceable>value</replaceable></command> to change environment variables.
|
||||
Do not use an equal sign for csh!
|
||||
</para>
|
||||
</footnote>
|
||||
commands for setting the
|
||||
environment variables are:
|
||||
syntax:
|
||||
<screen>
|
||||
export CC=egcs
|
||||
export CXX="$CC"
|
||||
@ -1217,26 +1231,43 @@ it creates a Makefile in every source code directory, and creates
|
||||
as preprocessor #defines. The sources are ready to compile.
|
||||
</para>
|
||||
|
||||
<section><title>Configure Shortcut Scripts (optional)</title>
|
||||
<section><title>Configure Shortcut Scripts</title>
|
||||
<para>
|
||||
In the Bochs sources, there are a series of scripts called
|
||||
In the Bochs source directory, there is a series of scripts called
|
||||
<filename>.conf.<replaceable>platform</replaceable></filename>.
|
||||
These scripts run <command>configure</command> script for you, with a set of
|
||||
options that appropriate for that platform. Examples include
|
||||
<filename>.conf.linux</filename>,
|
||||
<filename>.conf.win32-vcpp</filename>,
|
||||
<filename>.conf.win32-cygwin</filename>,
|
||||
<filename>.conf.AIX.4.3.1</filename>, and
|
||||
<filename>.conf.beos-x86-R4</filename>.
|
||||
options that appropriate for that platform. On some platforms, configure
|
||||
cannot guess all the right options, so it is necessary to use the shortcut
|
||||
scripts instead of a plain configure command. If a
|
||||
<filename>.conf.<replaceable>platform</replaceable></filename> file exists for
|
||||
your platform, you should probably use it.
|
||||
|
||||
<tip>
|
||||
<para>
|
||||
If a shortcut script is "almost right" for you, just edit it and then run it!
|
||||
If you use a shortcut script, you don't need to run configure manually.
|
||||
</para>
|
||||
</tip>
|
||||
|
||||
Run a shortcut script using Bourne shell, like this:
|
||||
<screen>
|
||||
sh .conf.win32-vcpp
|
||||
</screen>
|
||||
If you use a shortcut script, you don't need to run configure manually.
|
||||
If a shortcut script is "almost right" for you, just edit it and then run
|
||||
it!
|
||||
|
||||
These <filename>.conf.<replaceable>platform</replaceable></filename> have
|
||||
been tested in recent Bochs versions:
|
||||
<screen>
|
||||
.conf.linux
|
||||
.conf.sparc
|
||||
.conf.macosx
|
||||
.conf.win32-vcpp
|
||||
.conf.win32-cygwin
|
||||
.conf.AIX.4.3.1
|
||||
.conf.beos-x86-R4
|
||||
</screen>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
</section> <!-- end of Configure Shortcut Scripts -->
|
||||
|
||||
</section> <!-- end of Compiling:Unix:Configure -->
|
||||
|
||||
@ -1304,62 +1335,269 @@ other required files into a public place so that all users can use it.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section><title>Compile Problems</title>
|
||||
<para>
|
||||
&FIXME;
|
||||
</para>
|
||||
</section> <!-- end of Compiling:Unix section -->
|
||||
|
||||
<section><title>Transcript of Successful Compilation</title>
|
||||
<para>
|
||||
<screen>
|
||||
what if configure fails?
|
||||
- tar up config.* and send to bochs-testing@tlw.com
|
||||
- report the problem with a source forge bug report.
|
||||
|
||||
what if make fails?
|
||||
- try make dist-clean, and run configure and make again
|
||||
- use configure options to disable options. For example, if errors in
|
||||
fpu/fpu_system.h, you could try --disable-fpu.
|
||||
- search for the error on the Bochs website (bug reports, patches)
|
||||
- if familiar with C++, many minor problems can be corrected
|
||||
- move to more stable code. if it's CVS, see if a release version will
|
||||
compile. Report problem to bochs-developers.
|
||||
- report the problem with a source forge bug report.
|
||||
user$ <command>ls -l bochs-1.2.1.tar.gz</command>
|
||||
-rw-rw-r-- 1 user user 887993 Sep 15 23:24 bochs-1.2.1.tar.gz
|
||||
user$ <command>gunzip -c bochs-1.2.1.tar.gz | tar -xvf -</command>
|
||||
bochs-1.2.1/
|
||||
bochs-1.2.1/bios/
|
||||
bochs-1.2.1/bios/BIOS-bochs-2-processors
|
||||
bochs-1.2.1/bios/Makefile.in
|
||||
.
|
||||
.
|
||||
.
|
||||
bochs-1.2.1/patches/NOTES
|
||||
bochs-1.2.1/patches/patch.4meg-pages
|
||||
bochs-1.2.1/patches/patch.goswin-changes
|
||||
user$ <command>cd bochs-1.2.1</command>
|
||||
user$ <command>./configure --enable-cdrom</command>
|
||||
creating cache ./config.cache
|
||||
checking for gcc... gcc
|
||||
checking whether the C compiler (gcc ) works... yes
|
||||
checking whether the C compiler (gcc ) is a cross-compiler... no
|
||||
checking whether we are using GNU C... yes
|
||||
checking whether gcc accepts -g... yes
|
||||
.
|
||||
.
|
||||
.
|
||||
creating misc/Makefile
|
||||
creating dynamic/Makefile
|
||||
creating fpu/Makefile
|
||||
creating config.h
|
||||
user$ <command>make</command>
|
||||
cd iodev && \
|
||||
make CC="gcc" CXX="c++" CFLAGS="-g -O2 " CXXFLAGS="-g -O2 " LDFLAGS="" LIBS="" X_LIBS="-L/usr/X11R6/lib" X_PRE_LIBS="-lSM -lICE" prefix="/usr/local" exec_prefix="/usr/local" bindir="/usr/local/bin" infodir="" libiodev.a
|
||||
make[1]: Entering directory `/tmp/bochs-1.2.1/iodev'
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs devices.cc -o devices.o
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs pic.cc -o pic.o
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs pit.cc -o pit.o
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs unmapped.cc -o unmapped.o
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs cmos.cc -o cmos.o
|
||||
.
|
||||
.
|
||||
.
|
||||
echo done
|
||||
done
|
||||
c++ -o bochs -g -O2 main.o load32bitOShack.o state_file.o pc_system.o osdep.o \
|
||||
iodev/libiodev.a \
|
||||
cpu/libcpu.a memory/libmemory.a gui/libgui.a \
|
||||
fpu/libfpu.a \
|
||||
-L/usr/X11R6/lib -lSM -lICE -lX11
|
||||
gcc -c -g -O2 -I. -Iinstrument/stubs misc/bximage.c -o misc/bximage.o
|
||||
c++ -o bximage -g -O2 misc/bximage.o
|
||||
user$ <command>su</command>
|
||||
root# <command>make install</command>
|
||||
cd iodev && \
|
||||
make CC="gcc" CXX="c++" CFLAGS="-g -O2 " CXXFLAGS="-g -O2 " LDFLAGS="" LIBS="" X_LIBS="-L/usr/X11R6/lib" X_PRE_LIBS="-lSM -lICE" prefix="/usr/local" exec_prefix="/usr/local" bindir="/usr/local/bin" infodir="" libiodev.a
|
||||
make[1]: Entering directory `/tmp/bochs-1.2.1/iodev'
|
||||
.
|
||||
.
|
||||
.
|
||||
/usr/local/bochs/1.2.1/install-x11-fonts
|
||||
Looking for fonts to install... font/
|
||||
Looking for X11 Font Path... /usr/lib/X11/fonts
|
||||
Installing vga.pcf... ok (it was already there)
|
||||
Running mkfontdir...
|
||||
Done installing Bochs fonts for X11.
|
||||
root# <command>exit</command>
|
||||
user$ _
|
||||
</screen>
|
||||
</para>
|
||||
</section> <!-- end of Transcript -->
|
||||
|
||||
|
||||
<section id="compiling-win32"><title>Compiling on Win32 with Microsoft VC++</title>
|
||||
<para>
|
||||
The standard compile uses the configure script, but the Windows platform
|
||||
cannot run the configure script natively.
|
||||
The currently solution to this problem is that the Bochs
|
||||
configure script can be run on a different platform that does support
|
||||
shell scripts, with options that cause it to configure for a Win32
|
||||
platform instead of the native one. Many people have access to a UNIX
|
||||
machine that could run the configure script, or you can use Cygwin to
|
||||
run the configure script
|
||||
<footnote>
|
||||
<para>
|
||||
Because Bochs depends so much on the configure script, if you are doing
|
||||
much win32 Bochs development, you should consider downloading cygwin
|
||||
so that you can run the configure step natively.
|
||||
</para>
|
||||
</footnote>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Download the Bochs sources on a machine that can run shell scripts.
|
||||
Edit the configure shortcut script <filename>.conf.win32-vcpp</filename>
|
||||
if you want to adjust configure options. Then type these commands
|
||||
in the Bochs source directory:
|
||||
<screen>
|
||||
sh .conf.win32-vcpp
|
||||
make win32_snap
|
||||
</screen>
|
||||
These commands will run the configure step, produce VC++ makefiles and
|
||||
workspace files, and pack it all into a .zip file in the directory above the
|
||||
source directory <footnote>
|
||||
<para>
|
||||
If the source directory is <filename>/home/joe/bochs-win32</filename>, the
|
||||
resulting .zip file is in <filename>/home/joe/bochs-win32.zip</filename>.
|
||||
</para>
|
||||
</footnote>. The .zip file is all ready to transfer to the target Windows
|
||||
machine to be unzipped and compiled. Or, if you run the sh/make steps in
|
||||
Cygwin, you are already on the target machine so you don't need the .zip
|
||||
file.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When you have the Win32 sources transferred to a Windows machine with VC++,
|
||||
find the workspace file called <filename>bochs.dsw</filename> and load it in
|
||||
VC++. Choose <command>Project:Set Active Project</command> and be sure that
|
||||
"bochs" is selected. Then choose <command>Build:Build bochs.exe</command>.
|
||||
This will build all the required libraries (iodev, cpu, etc.) and the
|
||||
auxilliary programs <filename>bximage.exe</filename> and
|
||||
<filename>niclist.exe</filename>. The workspace compile method is new
|
||||
in version 1.3, so it has not had very long to be tested and tuned. Using
|
||||
workspaces is easy and intuitive, but there is one caveat. The workspaces
|
||||
are not currently integrated with configure. Some configure options such
|
||||
as --enable-debugger need to add additional source files to the Makefile to be
|
||||
compiled, but they do not alter the workspace file. If you add configure
|
||||
options and start having compile problems, try the nmake method (below)
|
||||
instead. These problems should be fixed in future versions.
|
||||
</para>
|
||||
|
||||
<tip>
|
||||
<para>
|
||||
To compile with the debugger enabled, add "--enable-debugger" to the
|
||||
configure line in <filename>.conf.win32-vcpp</filename> before running it.
|
||||
Then when you have loaded the workspace file, you must add the debug and disasm
|
||||
libraries to the project dependency list. Choose
|
||||
<command>Project:Dependencies</command> and make sure that debug and disasm are
|
||||
checked.
|
||||
</para> </tip>
|
||||
|
||||
<para>
|
||||
An alternative way to compile is to run <filename>nmake.exe</filename> in an
|
||||
MS-DOS window. Instead of using the workspace files, nmake uses the Bochs
|
||||
makefiles that are generated by configure. The workspace file is new in
|
||||
version 1.3; before that, nmake was the only way to compile Bochs in VC++.
|
||||
If you are having trouble with the workspace, try the nmake compile instead.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <command>make install</command> for Win32 is presently broken. In the
|
||||
future, a <command>make install</command> that runs in Cygwin may be provided.
|
||||
</para>
|
||||
|
||||
</section> <!-- end of Compiling:win32 -->
|
||||
|
||||
<section id="compile-cygwin"><title>Compiling on Win32 with Cygwin</title>
|
||||
<para>
|
||||
<para>Cygwin is a free Unix-like environment for Windows written by
|
||||
Steve Chamberlain and now maintained by RedHat, Inc. You can download
|
||||
it from <ulink url="http://www.cygwin.com">www.cygwin.com</ulink>. Because
|
||||
Cygwin supports the configure script and uses GNU gcc/g++, you can use the
|
||||
standard compile process. A few compiler options are needed, so it is
|
||||
best to use the configure shortcut script called
|
||||
<filename>.conf.win32-cygwin</filename>. Edit the shortcut script if you
|
||||
want to modify the configure options. Then, to compile in Cygwin, just type:
|
||||
<screen>
|
||||
sh .conf.win32-cygwin
|
||||
make
|
||||
</screen>
|
||||
These options are known to work in cygwin, so they are enabled in the configure shortcut file:
|
||||
<screen>
|
||||
--enable-cdrom
|
||||
--enable-sb16=win
|
||||
</screen>
|
||||
</para>
|
||||
</section> <!-- end of cygwin -->
|
||||
|
||||
<section><title>Compiling on MacOS 9 with CodeWarrior</title>
|
||||
<para>
|
||||
Possibly hasn't been tried since 1999. In theory, you run
|
||||
<filename>sh .conf.macos</filename> on a unix box to build the
|
||||
makefiles and headers, copy the whole thing over to a Mac, and then
|
||||
use CodeWarrior to compile. Since it hasn't been tested in so long,
|
||||
it is quite likely that some work is needed to bring the Mac port up
|
||||
to date.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section><title>Building an RPM</title>
|
||||
<para> &FIXME; </para>
|
||||
<section><title>Compiling on MacOS X</title>
|
||||
<para>
|
||||
How to build an RPM in Linux
|
||||
The port to MacOS X with Carbon API by Emmanuel Mailliard is quite new, and the
|
||||
configure and makefile support was added by Bryce Denney. You need to install
|
||||
the compiler and libraries from the development tools CD. It should configure
|
||||
and compile ok if you use the <filename>.conf.macosx</filename> configure
|
||||
shortcut script. MacOS X has a special format for an application bundle, which
|
||||
looks like a directory that contains the required resource files and binaries.
|
||||
The Makefile currently creates this application bundle "by hand" using mkdir
|
||||
and copy, which is surely the wrong way to do it. Bryce doesn't know the
|
||||
official way to create an application from a Makefile, so this hack will remain
|
||||
until a real Mac developer helps to clean it up.
|
||||
<screen>
|
||||
sh .conf.macosx
|
||||
make
|
||||
</screen>
|
||||
</para>
|
||||
</section> <!-- end of Other -->
|
||||
|
||||
</section> <!-- end of Compiling:Unix section -->
|
||||
<note>
|
||||
<para>
|
||||
If you have X windows installed, you should also be able to build Bochs
|
||||
with X windows GUI. To try it, just run <command>configure</command>
|
||||
instead of the <filename>.conf.macosx</filename> shortcut script.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
</section>
|
||||
|
||||
<section><title>Compiling on BeOS</title>
|
||||
<para>
|
||||
Kevin Lawton ported Bochs to BeOS. Bernd Korz has taken over the port,
|
||||
and is working on raw cdrom and raw floppy support. It should compile if you
|
||||
configure with --with-beos or use the <filename>.conf.beos-x86-R4</filename>
|
||||
script.
|
||||
</para>
|
||||
</section> <!-- end BeOS -->
|
||||
|
||||
<section><title>Compiling on Amiga/MorphOS</title>
|
||||
<para>
|
||||
Nicholai Benalal created this port to MorphOS running on Amiga. It should
|
||||
compile with <screen>
|
||||
./configure --with-amigaos; make
|
||||
</screen>
|
||||
Bryce also made an (untested) <filename>.conf.amigaos</filename> script that
|
||||
enables FPU and CDROM.
|
||||
</para>
|
||||
</section> <!-- end Amiga/MorphOS -->
|
||||
|
||||
<section><title>Building an RPM on Linux</title>
|
||||
<para>
|
||||
Linux is based on Unix, so it uses the standard compile. Several
|
||||
Linux distributions use the Redhat Package Manager (RPM) to make it
|
||||
easier to install and uninstall software. If you want to build an
|
||||
RPM of Bochs, here are the commands. Edit .conf.linux first if you want
|
||||
to adjust the configure options.
|
||||
|
||||
<screen>
|
||||
su root
|
||||
Password: <replaceable>type root password</replaceable>
|
||||
sh .conf.linux
|
||||
make rpm
|
||||
</screen>
|
||||
|
||||
When this command completes, you will have a source RPM and a binary RPM
|
||||
of Bochs, probably under <filename>/usr/src/redhat/RPMS</filename>. The
|
||||
output of the <command>make rpm</command> will tell you the exact location
|
||||
of these new files. Instructions for installing an RPM are <link
|
||||
linkend="linuxrpm">here</link>.
|
||||
</para>
|
||||
</section> <!-- end of Building an RPM -->
|
||||
|
||||
|
||||
<section id="compiling-win32"><title>Instructions for win32 VC++</title>
|
||||
<para> &FIXME; </para>
|
||||
<para>
|
||||
<screen>
|
||||
Getting the makefiles
|
||||
Download them from web site in a zip, install them on top
|
||||
of the source directory
|
||||
Run configure on a unix box, copy the Makefiles and config.h
|
||||
to your windows machine
|
||||
RUN CONFIGURE IN BOCHS! This would be awesome.
|
||||
Cygwin?
|
||||
Building it with NMAKE
|
||||
Installation? Maybe download an existing windows binary package
|
||||
and drop in your new binary. There is no make install, though
|
||||
this may be added some day.
|
||||
</screen>
|
||||
</para>
|
||||
</section> <!-- end of Compiling:win32 -->
|
||||
|
||||
<section><title>Instructions for cygwin?</title>
|
||||
<para>&FIXME;</para>
|
||||
</section> <!-- end of Compiling:Instructions for cygwin? -->
|
||||
|
||||
<section id="config-opts"><title>Configure Options</title>
|
||||
<para>
|
||||
@ -1770,77 +2008,31 @@ turn it off.
|
||||
|
||||
</section> <!-- end of Configure Options -->
|
||||
|
||||
<section><title>Transcript of Successful Compilation</title>
|
||||
<section><title>Compile Problems</title>
|
||||
<para>
|
||||
&FIXME;
|
||||
</para>
|
||||
<para>
|
||||
<screen>
|
||||
user$ <command>ls -l bochs-1.2.1.tar.gz</command>
|
||||
-rw-rw-r-- 1 user user 887993 Sep 15 23:24 bochs-1.2.1.tar.gz
|
||||
user$ <command>gunzip -c bochs-1.2.1.tar.gz | tar -xvf -</command>
|
||||
bochs-1.2.1/
|
||||
bochs-1.2.1/bios/
|
||||
bochs-1.2.1/bios/BIOS-bochs-2-processors
|
||||
bochs-1.2.1/bios/Makefile.in
|
||||
.
|
||||
.
|
||||
.
|
||||
bochs-1.2.1/patches/NOTES
|
||||
bochs-1.2.1/patches/patch.4meg-pages
|
||||
bochs-1.2.1/patches/patch.goswin-changes
|
||||
user$ <command>cd bochs-1.2.1</command>
|
||||
user$ <command>./configure --enable-cdrom</command>
|
||||
creating cache ./config.cache
|
||||
checking for gcc... gcc
|
||||
checking whether the C compiler (gcc ) works... yes
|
||||
checking whether the C compiler (gcc ) is a cross-compiler... no
|
||||
checking whether we are using GNU C... yes
|
||||
checking whether gcc accepts -g... yes
|
||||
.
|
||||
.
|
||||
.
|
||||
creating misc/Makefile
|
||||
creating dynamic/Makefile
|
||||
creating fpu/Makefile
|
||||
creating config.h
|
||||
user$ <command>make</command>
|
||||
cd iodev && \
|
||||
make CC="gcc" CXX="c++" CFLAGS="-g -O2 " CXXFLAGS="-g -O2 " LDFLAGS="" LIBS="" X_LIBS="-L/usr/X11R6/lib" X_PRE_LIBS="-lSM -lICE" prefix="/usr/local" exec_prefix="/usr/local" bindir="/usr/local/bin" infodir="" libiodev.a
|
||||
make[1]: Entering directory `/tmp/bochs-1.2.1/iodev'
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs devices.cc -o devices.o
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs pic.cc -o pic.o
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs pit.cc -o pit.o
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs unmapped.cc -o unmapped.o
|
||||
c++ -c -g -O2 -I.. -I../instrument/stubs cmos.cc -o cmos.o
|
||||
.
|
||||
.
|
||||
.
|
||||
echo done
|
||||
done
|
||||
c++ -o bochs -g -O2 main.o load32bitOShack.o state_file.o pc_system.o osdep.o \
|
||||
iodev/libiodev.a \
|
||||
cpu/libcpu.a memory/libmemory.a gui/libgui.a \
|
||||
fpu/libfpu.a \
|
||||
-L/usr/X11R6/lib -lSM -lICE -lX11
|
||||
gcc -c -g -O2 -I. -Iinstrument/stubs misc/bximage.c -o misc/bximage.o
|
||||
c++ -o bximage -g -O2 misc/bximage.o
|
||||
user$ <command>su</command>
|
||||
root# <command>make install</command>
|
||||
cd iodev && \
|
||||
make CC="gcc" CXX="c++" CFLAGS="-g -O2 " CXXFLAGS="-g -O2 " LDFLAGS="" LIBS="" X_LIBS="-L/usr/X11R6/lib" X_PRE_LIBS="-lSM -lICE" prefix="/usr/local" exec_prefix="/usr/local" bindir="/usr/local/bin" infodir="" libiodev.a
|
||||
make[1]: Entering directory `/tmp/bochs-1.2.1/iodev'
|
||||
.
|
||||
.
|
||||
.
|
||||
/usr/local/bochs/1.2.1/install-x11-fonts
|
||||
Looking for fonts to install... font/
|
||||
Looking for X11 Font Path... /usr/lib/X11/fonts
|
||||
Installing vga.pcf... ok (it was already there)
|
||||
Running mkfontdir...
|
||||
Done installing Bochs fonts for X11.
|
||||
root# <command>exit</command>
|
||||
user$ _
|
||||
what if configure fails?
|
||||
- tar up config.* and send to bochs-testing@tlw.com
|
||||
- report the problem with a source forge bug report.
|
||||
|
||||
what if make fails?
|
||||
- try make dist-clean, and run configure and make again
|
||||
- use configure options to disable options. For example, if errors in
|
||||
fpu/fpu_system.h, you could try --disable-fpu.
|
||||
- search for the error on the Bochs website (bug reports, patches)
|
||||
- if familiar with C++, many minor problems can be corrected
|
||||
- move to more stable code. if it's CVS, see if a release version will
|
||||
compile. Report problem to bochs-developers.
|
||||
- report the problem with a source forge bug report.
|
||||
</screen>
|
||||
|
||||
</para>
|
||||
</section> <!-- end of Transcript -->
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</section> <!-- end of Compiling Bochs -->
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user