mirror of
https://github.com/cc65/cc65.git
synced 2024-12-27 00:29:31 +00:00
826c11450d
git-svn-id: svn://svn.cc65.org/cc65/trunk@103 b7a2c559-68d2-44c3-8de9-860c34a00d81
160 lines
3.3 KiB
Plaintext
160 lines
3.3 KiB
Plaintext
|
|
|
|
Instructions for compiling cc65 and the ca65 binutils:
|
|
|
|
|
|
Linux (and probably most other Unices)
|
|
--------------------------------------
|
|
|
|
You need the GNU C compiler. Enter the src/ directory and do a
|
|
|
|
make -f make/gcc.mak
|
|
|
|
This will build all executables. You may use
|
|
|
|
make -f make/gcc.mak strip
|
|
|
|
to remove debugging information from the binaries.
|
|
|
|
After that, you need to compile the libraries. Do
|
|
|
|
cd libsrc
|
|
make clean atarilib
|
|
make clean c64lib
|
|
make clean c128lib
|
|
make clean plus4lib
|
|
make clean cbm610lib
|
|
make clean petlib
|
|
make clean apple2lib
|
|
|
|
Be sure to say "clean" each time, since some of the sources have a
|
|
"#ifdef <target_system>".
|
|
|
|
|
|
|
|
DOS using the DJGPP compiler
|
|
----------------------------
|
|
|
|
Most information in this section was provided by Keith W. Gerdes
|
|
(kwg@freebird.ghofn.org). Thanks a lot!
|
|
|
|
The tmpfile() function in DJGPP has a bug and will not open the scratch
|
|
file in binary mode. If you have problems with the archiver (which uses
|
|
the tmpfile() function), you have two choices:
|
|
|
|
1. Get a fix from http://www.cartsys.com/eldredge/djgpp-patches.html
|
|
and apply it. This will solve the problem once and forever.
|
|
|
|
2. For a temporary solution, in the file binutils/ar65/main.c, add the
|
|
following lines:
|
|
|
|
At top:
|
|
|
|
#include <fcntl.h>
|
|
|
|
At start of main:
|
|
|
|
_fmode = O_BINARY;
|
|
|
|
This will switch the default mode to binary and will work around the
|
|
bug.
|
|
|
|
Keith sent me the following notes how to build the tools on a DOS system
|
|
using DJGPP (add your system type to CFLAGS if needed):
|
|
|
|
-------------------------------------------------------------------------
|
|
|
|
Here's my current batch file:
|
|
|
|
cd cc65
|
|
if exist .depend goto ahead1
|
|
make -f make\gcc.mak
|
|
:ahead1
|
|
make -f make\gcc.mak
|
|
move *.exe ..\binutils
|
|
|
|
cd ..\cl65
|
|
if exist .depend goto ahead2
|
|
make -f make\gcc.mak
|
|
:ahead2
|
|
make -f make\gcc.mak
|
|
move *.exe ..\binutils
|
|
|
|
cd ..\binutils\common
|
|
if exist .depend goto ahead3
|
|
make -f make\gcc.mak
|
|
:ahead3
|
|
make -f make\gcc.mak
|
|
|
|
cd ..\ca65
|
|
if exist .depend goto ahead4
|
|
make -f make\gcc.mak
|
|
:ahead4
|
|
make -f make\gcc.mak
|
|
move *.exe ..
|
|
|
|
cd ..\ld65
|
|
if exist .depend goto ahead5
|
|
make -f make\gcc.mak
|
|
:ahead5
|
|
make -f make\gcc.mak
|
|
move *.exe ..
|
|
|
|
cd ..\ar65
|
|
if exist .depend goto ahead6
|
|
make -f make\gcc.mak
|
|
:ahead6
|
|
make -f make\gcc.mak
|
|
move *.exe ..
|
|
|
|
cd ..\..\lib\common
|
|
make 'CFLAGS=-Oi -I../../include/'
|
|
ar65 a common.lib *.o
|
|
move common.lib ..
|
|
|
|
cd ..\runtime
|
|
make 'CFLAGS=-Oi -I../../include/'
|
|
ar65 a runtime.lib *.o
|
|
move runtime.lib ..
|
|
|
|
--
|
|
|
|
In djgpp.env I use:
|
|
|
|
+LFN=Y
|
|
|
|
for the .depend file.
|
|
|
|
--
|
|
|
|
And in autoexec.bat I have:
|
|
|
|
set CC65_INC=E:\djgpp_v2\cc65\include
|
|
set CC65_LIB=E:\djgpp_v2\cc65\lib
|
|
PATH=E:\djgpp_v2\cc65\binutils;%PATH%
|
|
|
|
-------------------------------------------------------------------------
|
|
|
|
|
|
DOS, Windows, OS/2 using the Watcom Compiler
|
|
--------------------------------------------
|
|
|
|
This is what I'm using. You need the Borland make in addition to the
|
|
Watcom tools, or you have to change the makefile.
|
|
|
|
1. Copy %WATCOM%\src\startup\wildargv.c from your Watcom directory into
|
|
binutils\common.
|
|
|
|
2. Enter
|
|
|
|
make -f make\watcom.mak
|
|
|
|
in the src/ directory.
|
|
|
|
3. Use Linux to build the libraries:-) If you don't have Linux, get it
|
|
now! More serious: There is no makefile to build the libraries under
|
|
any of the DOS based operating systems. Use a batch file similar to
|
|
the one above, or rewrite the makefile.
|
|
|
|
|