|
Main Page
Linux
News Links
Web
PHP
Game Links
Search
Google
Food
Epicurious
S.O.A.R.
Music
BMG
Play
TV/Movies
PDX
Real Estate
Funny
Health
Travel
Stores
Lighting
PIC
Misc.
About This Site
| | |
|
{Relevant Links}
{Intoduction}
After playing around with the
Abuse 2.0
source code and searching some sites,
I figured out how to compile and run it under Linux.
There are two ways to get this to work: an easy way and a hard(er) way.
I will cover the easy way first but first I need to point out a few
things.
-
To keep the program from seg-faulting,
you need to get the 2.0 data files
(See This)
which the source does not include. You will
have to get the files from the DOS 2.0 install (by installing it).
-
To keep the mouse in the SVGA version from being "jumpy", be sure to
set the mouse acceleration to "off", e.g. add/uncomment the line
in /etc/vga/libvga.conf that reads
mouse_accel_type off # No comment....
-
You will want at least these files from the abuse directory
installed in the top level directory with your 2.0 data files:
-
abuse.console -- For SVGA Playing.
-
keydrv -- Needed for SVGA Playing.
-
abuse.x11R6 -- For playing in X, [Note:] Must be 8bpp.
-
lnx_sdrv -- For sound.
{The Easy Way}
Note: I have not tried compiling this source for some time. However
I have done the "Hard Way" on a RH6.1 system.
-
Download the "fixed" 2.0 source from
ftp://ftp.freesoftware.com/pub/gnu/abuse/
and unpackit.
-
cd into the just-created source directory.
-
Edit the file imlib/port/unix/timing.c and add the code:
#ifndef DST_USA
#define DST_USA 1
#endif
after the #include lines. [Note:] Change the "1" to a "0" if
you do not recognize daylight savings time.
-
Run ./configure
-
Run make.
-
You will now have some executables under the abuse
directory.
{The Hard Way}
-
Download the "original" zipped source
abusesrc.zip.
-
Make a sub-directory abuse. This is not 100% needed but
since the configure script generates a file above the
top-level abuse source directory, this keeps it clean.
-
cd into that directory and unzip the abusesrc.zip file.
-
cd AbuseSrc
-
To remove the dos carrage-return, run:
find . -type f -exec perl -pi -e " BEGIN{ print \"\$ARGV[0]\\n\"; } s/\r//g;" {} \;
-
To make the right programs executable, run
find . -name "conf*" ! \( -name "*.in" -o -name "*.hpp" -o -name "*.c" \) -exec chmod a+x {} \;
-
Edit the file imlib/port/unix/timing.c and add the code:
#ifndef DST_USA
#define DST_USA 1
#endif
after the #include lines. [Note:] Change the "1" to a "0" if
you do not recognize daylight savings time. Or this may mean
"distribution for USA". Really I have no idea. I set it to 1.
-
If you have a glibc > 2.?.? (Redhat 6.1 and 6.2 are known to have
issues) you will probably get an error when compiling like this:
c++ ...bla bla bla... -c glread.c
In file included from /usr/include/stdlib.h:339,
from include/image.hpp:3,
from glread.c:2:
/usr/include/sys/types.h:128: abstract declarator used as declaration
/usr/include/sys/types.h:129: abstract declarator used as declaration
make[1]: *** [glread.o] Error 1
make[1]: Leaving directory `/path/to/src/AbuseSrc/imlib'
make: *** [all-recursive] Error 1
This is caused by code in imlib/include/macs.hpp that uses
#define for defining ushort and ulong while
/usr/include/sys/types.h uses typedef. The solution to
this is to edit macs.hpp and change the two needed lines. The
end of the file should look like this:
#define uchar unsigned char
#define schar signed char
//#define ushort unsigned short
typedef unsigned short int ushort;
#define sshort signed short
//#define ulong unsigned long
typedef unsigned long int ulong;
#endif
I have just commented out the old lines for clarification. You can
remove them if you want.
-
Then you can run ./configure
-
Run make. It will run for a while and then stop with an error about
not having a rule to make 'libsvgawin.a' or
-
cd into the imlib directory and then run make libsvgawin.a.
-
cd back up one level and run make again.
-
You will now have some executables under the abuse
directory.
|