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 That's it! Installation directories for the RPM packages are /usr/bin for the binaries /usr/lib/cc65/include for include files /usr/lib/cc65/lib for libraries and startup files When using these directories, you don't need to set the CC65_INC and CC65_LIB environment variables. You may also use the /usr/local tree for installation, but the compiler and linker have no predefined search path for this directory, so you need the environment variables or change the search paths in the source. DOS using the DJGPP compiler ---------------------------- Most information in this section was provided by Keith W. Gerdes (kwg@netzero.net). 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% ------------------------------------------------------------------------- OS/2 using the EMX compiler --------------------------- If you're using OS/2 and have the EMX compiler and some GNU tools installed, you may also be able to compile the tools and libraries under OS/2. Mirco Miranda (mircomir@libero.it) sent me the following notes: ------------------------------------------------------------------------- CC65 make facilities V0.3 for OS/2 by Mirco Miranda Date: 02/01/2000 OS2HOWTO.TXT... I wrote this very fast... I hope that you can understand... Emx is a porting of gcc under OS/2. I wrote some C code that with simply (and few) preprocessor line can be compiled under OS/2 and Linux. Now for emx there are projects like P2 that let's add to OS/2 a complete Posix.1/SUS-like environment... I think that in the future the porting from bsd unix (and I hope linux) environment can be made very easy... These are the things because I tried to compile CC65 with emx/gcc... WARNING: at time that as wrote compiling with emx/gcc give some warnings. 1. What do you need ------------------- - emx/gcc 0.9D for OS/2 http://hobbes.nmsu.edu/cgi-bin/h-browse?sh=1&dir=/pub/os2/dev/emx/v0.9d - gnu make http://hobbes.nmsu.edu/pub/os2/dev/util/gnumake.zip - bash Use (ba)sh coming with this package. There are many porting of unix shell for OS/2 and some don't work propely. - and finally the source package of the CC65 http://www.cc65.org/#Download http://www.acc.umu.se/~arvid/cc65_mirror/cc65-sources-2.6.0.tar.gz I hope that's all! I have the complete emx/gnu tools installed on my OS/2 and I haven't test if you need other package. Sorry. 2. Setup environment in OS/2 ---------------------------- Unpack source package in a Directory and copy the files in src directory of source code. Install emx 0.9D following the istruction comes with it. Emx is well documented and I don't rewrite here emx documentation. Unpack the gnu make tool and copy make-os2.exe in ...\emx\gnu directory then rename it in make.exe Copy xxsh.exe in ...\emx\gnu directory If you want use my .cmd script (makeos2emx.cmd): - copy it in src directory - edit it and change the emx path(s) according with your(s). (set MYEMXPATH=c:\appos2\emx) else - add ...\emx\gnu directory on your libpath - add ...\emx\gnu directiry on your path - set comspec=...\emx\gnu\xxsh.exe - run make -f make/gcc.mak in src directory - run make in libsrc directory 3. My make files ---------------- If you use zap command, *.exe are not deleted. 4. Author & Disclaimer ---------------------- Mirco Miranda mircomir@libero.it ICQ#: 51640305 I haven't tested the generated code of cc65 executables with emx/gcc... If you use the cc65 executables compiled with emx/gcc to compile the library, please test it before hardly or productivity using. Safety solution is compile the cc65 executables with Watcom and then compile the library using gnu make and gnu (ba)sh coming with this package. If you use this last solution you must have only installed emx runtime because make.exe and xxsh.exe use it! ------------------------------------------------------------------------- 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.