<html>
<head>
<title>Notes on the operation of the GNU Free Software Foundation's C/C++ Compiler</title>
</head>
<body background="images/tile">
<center><h3>Notes on the operation of the GNU Free Software Foundation's C/C++ Compiler</h3></center>
<p>
  The GNU Free Software Foundation may produce good programs - they generally do - but, at least in my experience, are either unwilling or unable to provide comprehensible, adequate documentation. Perhaps they think that because they know how to use their software, everyone else will be able to without any help from the authors...
<p>
  Their C/C++ compiler is no exception. Faced with its interface (or lack of it - it is CLI driven), many people would experiment for a while, then abandon it. This file is just a startup guide, intended to get you familiar with at least the basic operation of the compiler.
<p>
 This program is HUGE: The C compiler, <code>gcc</code>, requires 4 megs of RAM to work in. 
To compound matters, the C++ compiler requires 8 megs. Don't panic; there exists a 
piece of PD software, Virtual, to replace the task window with another which implements 
virtual memory, allowing your hard drive to act as slow substitute RAM. I have 
no idea how to use it: for one, I've got enough memory for the C compiler as
it is and, for another, it's not RiscPC compatable (I get used to this
when every other piece of PD software I try to run requires me to reach
quickly for the reset button, which is no longer on the now PC keyboard,
but at the back of the system box with all the interfaces. Great design
work, Acorn).
<p>
You'd think GCC was written by Microsoft.
<p>
I think you may find that, however, on a 4 Mb machine,  if you drop into a 
low-memory screen mode, extinguish the RAM disc and font cache and disable 
any extrenuious modules (including ArcFS), you may be able to run the C compiler, 
<code>gcc</code> without !Virtual.
<p>
 In its current configuration, you can use !GCC from an archive, to save
hard drive space. However, if you (can) use !GCC without !Virtual, you'll
have to quit ArcFS and so keeping !GCC in a Sparkive won't be an option.
<p>
 I've moved the Absolute ARM code file <code>Drlink</code> from the <code>DRLink</code> directory
to <code>!GCC.bin.Drlink</code>, which is where GCC will expect to find it (it
handles calling the linker to assemble the final machine code from the
object code). All the documents with DrLink are still in their original
directory.
<p>
 Help can be found at <code>!GCC.!Help</code> and <code>!GCC.!Intro</code>, as well as in the
directory <code>!GCC.docs</code>. See the first few pages of <code>!GCC.docs.UsingGCC</code>
(which is actually just a normal text file, despite some wierd filetyping)
for the legality of the use of the GNU Free Software Foundation's C/C++
Compiler and the worst piece of English literature since the May 1993
Draft of the Proposed European Constitution (see APDL B115 for further
details).
<p>      
 If you're only intending to program in C and not C++, you can safely
delete <code>!GCC.bin.cc1plus</code>, <code>!GCC.bin.cpp</code> and the directory <code>!GCC.gpp</code>,
which'll save over a meg. If you ever feel inclined to venture into C++, 
you can always replace the missing directories from the original archive.
<p>            
<h4>Quick Startup:</h4>
<p>
1. Learn how to use !Virtual.<br>
2. Set up a small RAM disc, in which you might make a directory <code>c</code>.<br>
3. Place, say, <code>Examples.c.HelloW</code> in <code>c</code><br>
4. a) If you're using !Virtual, get !Virtual working and get a task window
      up and running with a WimpSlot of a minimum of 3044K.<br>
   a) If not, go onto the command line and use the <code>WimpSlot</code> command to set
      the wimpslot to a minimum of 3044K.<br>
5. Use the <code>RAM</code> command to set the current directory to the root of the RAM
   disc.<br>
6. Use the command <code>gcc -v HelloW.c</code>. You'll notice the use of <code>HelloW.c</code>,
   even though it's in <code>c.HelloW</code>; this is due to the way UNIX, the birth
   operating system of C, names its files and directories.<br>
<p>
<h4>Good luck!</h4>
</body>
</html>
