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 ". 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 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.