+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
- <TITLE>SDCC Compiler User Guide: Installation </TITLE>
- <LINK HREF="SDCCUdoc-3.html" REL=next>
- <LINK HREF="SDCCUdoc-1.html" REL=previous>
- <LINK HREF="SDCCUdoc.html#toc2" REL=contents>
-</HEAD>
-<BODY>
-<A HREF="SDCCUdoc-3.html">Next</A>
-<A HREF="SDCCUdoc-1.html">Previous</A>
-<A HREF="SDCCUdoc.html#toc2">Contents</A>
-<HR>
-<H2><A NAME="Installation"></A> <A NAME="s2">2. Installation </A> </H2>
-
-<P>What you need before you start installation of SDCC ? A C Compiler, not
-just any C Compiler, gcc to be exact, you can get adventurous and try another
-compiler , I HAVEN'T tried it. GCC is free , and is available for almost all
-major platforms, if you are using linux you probably already have it, if you
-are using Windows 95/NT go to www.cygnus.com and download CYGWIN32 you will
-need the full development version of their tool (full.exe), follow their instructions
-for installation (this is also free and is very easy to install), Windows 95/NT
-users be aware that the compiler runs substantially slower on the Windows platform,
-I am not sure why.
-<P>After you have installed gcc you are ready to build the compiler (sorry
-no binary distributions yet). SDCC is native to Linux but can be ported to
-any platform on which GCC is available . Extract the source file package (.zip
-or .tar.gz) into some directory , which we shall refer to as SDCCDIR from now
-on.
-<H2><A NAME="Components"></A> <A NAME="ss2.1">2.1 Components of SDCC</A>
- </H2>
-
-<H3>gc ( a conservative garbage collector) </H3>
-
-<P>SDCC relies on this component to do all the memory management, this excellent
-package is copyrighted by Jans J Boehm(boehm@sgi.com) and Alan J Demers but
-can be used with minimum restrictions. The GC source will be extracted into
-the directory SDCCDIR/gc.
-<H3>cpp ( C-Preprocessor) </H3>
-
-<P>The preprocessor is extracted into the directory SDCCDIR/cpp, it is a modified
-version of the GNU preprocessor.
-<H3>asxxxx & aslink ( The assembler and Linkage Editor) </H3>
-
-<P>This is retargettable assembler & linkage editor, it was developed
-by Alan Baldwin, John Hartman created the version for 8051, and I (Sandeep)
-have some enhancements and bug fixes for it to work properly with the SDCC.
-This component is extracted into the directory SDCCDIR/asxxxx.
-<H3>SDCC - The compiler. </H3>
-
-<P>This is the actual compiler, it uses gc and invokes the assembler and linkage
-editor. All files with the prefix SDCC are part of the compiler and is extracted
-into the the directory SDCCDIR.
-<H3>S51 - Simulator </H3>
-
-<P>Version 2.1.8 onwards contains s51 a freeware , opensource simulator developed
-by Daniel Drotos <drdani@mazsola.iit.uni-miskolc.hu>. The executable
-is built as part of build process, for more information visit Daniel's website
-at <http://mazsola.iit.uni-miskolc.hu/~drdani/embedded/s51/>.
-<H3>SDCDB - Source level Debugger. </H3>
-
-<P>SDCDB is the companion source level debugger . The current version of the
-debugger uses Daniel's Simulator S51, but can be easily changed to use other
-simulators.
-<H2><A NAME="ss2.2">2.2 Installation for Version <= 2.1.7</A>
- </H2>
-
-<P>After the package is extracted (Windows 95/NT users start CYGWIN shell),
-change to the directory where you extracted the package and give the command.
-<P>
-<PRE>
-./sdccbuild.sh
-
-</PRE>
-<P>This is a bash shell script, it will compile all the above mentioned components
-and install the executables into the directory SDCCDIR/bin make sure you add
-this directory to your PATH environment variable. This script will also compile
-all the support routines ( library routines ) using SDCC. The support routines
-are all developed in C and need to be compiled.
-<H2><A NAME="ss2.3">2.3 Installation for Version >= 2.1.8a</A>
- </H2>
-
-<P>The distribution method from Version 2.1.8a has been changed to be conforment
-with the "autoconf" utility. The source is now distributed as <B>sdcc-<version
-number>.tar.gz format</B> , instead of the older .zip format. The steps for
-installation are as follows.
-<H3>Unpack the sources. </H3>
-
-<P>This is usually done by the following command "<B>gunzip -c sdcc-<version
-number>.tar.gz | tar -xv -</B>"
-<H3>Change to the main source directory (usually sdcc or sdcc-<version number>) </H3>
-
-<H3>Issue command to configure your system </H3>
-
-<P>The configure command has several options the most commonly used option
-is --prefix=<directory name>, where <directory name> is the final
-location for the sdcc executables and libraries, (default location is /usr/local).
-The installation process will create the following directory structure under
-the <directory name> specified.
-<P>
-<PRE>
-bin/ - binary exectables (add to PATH environment variable)
-share/
- sdcc51inc/
- - include header files
- sdcc51lib/ -
- small/ - Object &
- Library files for small model library
- large/ - Object & library
- files for large model library
-
-</PRE>
-<P>The command
-<P><B>'./configure --prefix=/usr/local" </B>
-<P>will create configure the compiler to be installed in directory /usr/local/bin.
-<H3>make </H3>
-
-<P>After configuration step issue the command
-<P><B>"make"</B>
-<P>This will compile the compiler
-<H3>"make install" </H3>
-
-<P>Will install the compiler and libraries in the appropriate directories.
-<H3>Special Notes for Windows Users. Provided by Michael Jamet[ mjamet@computer.org] </H3>
-
-<P>
-<P> How to install SDCC from source on a Windows 95 or Windows NT 4 system
-<P>
-<P>
-<P> This document describes how to install SDCC on a Win 95 or Win NT 4 system.
-<P>
-<P> These instructions probably work for Win 98 as well, but have not been
-<P>
-<P> tested on that platform.
-<P>
-<P> There are lots of little differences between UNIX and the Win32 Cygnus
-<P>
-<P> environment which make porting more difficult than it should be. If
-<P>
-<P> you want the details, please contact me. Otherwise just follow these
-<P>
-<P> instructions.
-<P>
-<P> 1. Install the Cygnus Software
-<P> Go to http://sourceware.cygnus.com/cygwin. Cygnus provides a UNIX like
-<P>
-<P> environment for Win 32 systems. Download "full.exe" and
-install. You
-<P> MUST install it on your C drive. "full.exe" contains a shell
-AND many
-<P> common UNIX utilities.
-<P>
-<P> 2. Download and Extract the Latest SDCC
-<P> The latest version can be found at
-<P> www.geocities.com/ResearchTriange/Forum/1353.
-<P> It can be uncompressed with winzip.
-<P>
-<P> 3. Start a Cygnus Shell
-<P> There should be an entry in the Start Menu for Cygnus. Invoke the shell.
-<P>
-<P> This gives you a UNIX like environment. FROM THIS POINT ON, DIRECTORIES
-<P>
-<P> MUST BE SPECIFIED WITH FORWARD SLASHES (/) NOT THE DOS STYLE BACK
-<P> SLASHES (\) BECAUSE THIS IS WHAT UNIX EXPECTS. -
-<P> ex. "\winnt" would be "/winnt" under the
-shell.
-<P>
-<P> 4. Change Directory to Where SDCC was extracted (referred to as INSTALLDIR)
-<P>
-<P>
-<P> ex. cd /sdcc218Da. If you extracted to a drive OTHER THAN C, the drive
-<P>
-<P> must be specified as part of the path. For example, if you extracted
-to
-<P> your "g drive", type the following: "cd //g/mydir".
-You must use "//"
-<P> to specify the drive.
-<P>
-<P> 5. Make Dirs Which are Automatically Made During the UNIX Installation
-<P>
-<P> From the INSTALLDIR,
-<P>
-<P> mkdir -p bin (not a typo, just "bin")
-<P> mkdir -p /bin
-<P> mkdir -p /usr/local/bin
-<P> mkdir -p /usr/local/share
-<P> mkdir -p /usr/local/share/sdcc51lib
-<P> mkdir -p /usr/local/share/sdcc51inc
-<P> mkdir -p /tmp
-<P>
-<P> (When a path from the root directory is specified WITHOUT a drive, the
-<P>
-<P> drive defaults to c. For example /michael/newuser => c:\michael\newuser)
-<P>
-<P>
-<P> 6. Add Programs to /bin Expected by the Installation Process
-<P> - Look at your path: echo $PATH
-<P> One of the fields is the diretory with the CYGNUS programs.
-<P> ex. /CYGNUS/CYGWIN~1/H-I586/BIN
-<P>
-<P> - cd to the directory found above. You may have to fiddle with the
-<P>
-<P> case (upper or lower) here because the PATH is SHOWN as all upper
-<P>
-<P> case, but is actually mixed. To help you along, you may type
-<P> a letter or 2 followed by the escape key. The shell will fill
-<P> out the remaining letters IF THEY describe a unique directory.
-<P> If you have problems here, cd one directory and type "ls".
-"ls"
-<P> is the equivalent of "dir/w".
-<P>
-<P> - Copy the following:
-<P> cp sh.exe /bin
-<P> cp pwd.exe /bin
-<P> cp echo.exe /bin
-<P>
-<P> 7. Go back to the INSTALLDIR
-<P> cd INSTALLDIR
-<P> ex. cd //d/sdcc218Da
-<P>
-<P> 8. Run the configure Program
-<P> ./configure
-<P> The "./" is important because your current directory is NOT
-in your path.
-<P> Under DOS, your current directory was implicitly always the first entry
-<P>
-<P> in your path.
-<P>
-<P> 9. Run make
-<P> make
-<P>
-<P> This process takes quite some time under Win 32.
-<P>
-<P> 10. Install the Newly Built Software
-<P> make install
-<P>
-<P> This will partially install the software into the /usr/local directories
-<P>
-<P> created in step 5. What it actually doing is copying the .c, .h and
-<P>
-<P> library files to directories under /usr/local/share.
-<P>
-<P> It will NOT be able to install the actual programs (binaries) because
-<P>
-<P> it does not know programs on Win32 systems have ".exe" extensions.
-<P>
-<P> For example, it tries to install sdcc instead of sdcc.exe.
-<P>
-<P> After the automated part is finished, you must manually copy the binaries:
-<P>
-<P> cd bin (This is the bin directory in your INSTALLDIR)
-<P> cp * /usr/local/bin
-<P>
-<P> 11. Make sure /usr/local/bin is in Your PATH
-<P> You may add c:\usr\local\bin to your path however your
-Win32 system allows. For
-<P> example you may add it to the PATH statement in autoexec.bat.
-<P>
-<P> Good luck. If you have any questions send them to me or post them
-<P> to the list.
-<HR>
-<A HREF="SDCCUdoc-3.html">Next</A>
-<A HREF="SDCCUdoc-1.html">Previous</A>
-<A HREF="SDCCUdoc.html#toc2">Contents</A>
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
- <TITLE>SDCC Compiler User Guide: Compiling.</TITLE>
- <LINK HREF="SDCCUdoc-4.html" REL=next>
- <LINK HREF="SDCCUdoc-2.html" REL=previous>
- <LINK HREF="SDCCUdoc.html#toc3" REL=contents>
-</HEAD>
-<BODY>
-<A HREF="SDCCUdoc-4.html">Next</A>
-<A HREF="SDCCUdoc-2.html">Previous</A>
-<A HREF="SDCCUdoc.html#toc3">Contents</A>
-<HR>
-<H2><A NAME="Compiling"></A> <A NAME="s3">3. Compiling.</A> </H2>
-
-<H2><A NAME="One Source File"></A> <A NAME="ss3.1">3.1 Single Source file projects.</A>
- </H2>
-
-<P>For single source file projects the process is very simple. Compile your
-programs with the following command
-<P>
-<PRE>
-sdcc sourcefile.c
-
-</PRE>
-<P>The above command will compile ,assemble and link your source file. Output
-files are as follows.
-<P>
-<UL>
-<LI>sourcefile.asm - Assembler source file created by the compiler</LI>
-<LI>sourcefile.lst - Assembler listing file created by the Assembler</LI>
-<LI>sourcefile.rst - Assembler listing file updated with linkedit information
-, created by linkage editor</LI>
-<LI>sourcefile.sym - symbol listing for the sourcefile, created by the assembler.</LI>
-<LI>sourcefile.rel - Object file created by the assembler, input to Linkage
-editor.</LI>
-<LI>sourcefile.map - The memory map for the load module, created by the Linker.</LI>
-<LI>sourcefile.<ihx | s19> - The load module : ihx - Intel hex format
-(default ), s19 - Motorola S19 format when compiler option --out-fmt-s19 is
-used.</LI>
-</UL>
-<H2><A NAME="ss3.2">3.2 Projects with multiple source files.</A>
- </H2>
-
-<P>SDCC can compile only ONE file at a time. Let us for example assume that
-you have a project containing the following files.
-<P>
-<PRE>
-foo1.c ( contains some functions )foo2.c (contains some more functions)foomain.c (contains more functions and the function main)
-
-</PRE>
-<P>The first two files will need to be compiled separately with the commands
-<P>
-<PRE>
-sdcc -c foo1.csdcc -c foo2.c
-
-</PRE>
-<P>Then compile the source file containing main and link the other files together
-with the following command.
-<P>
-<PRE>
-sdcc foomain.c foo1.rel foo2.rel
-
-</PRE>
-<P>Alternatively foomain.c can be separately compiled as well
-<P>
-<PRE>
-sdcc -c foomain.c sdcc foomain.rel foo1.rel foo2.rel
-
-</PRE>
-<P>The file containing the main function MUST be the FIRST file specified
-in the command line , since the linkage editor processes file in the order
-they are presented to it.
-<H2><A NAME="ss3.3">3.3 Projects with additional libraries.</A>
- </H2>
-
-<P>Some reusable routines may be compiled into a library, see the documentation
-for the assembler and linkage editor in the directory SDCCDIR/asxxxx/asxhtm.htm
-this describes how to create a .lib library file, the libraries created in
-this manner may be included using the command line, make sure you include the
--L <library-path> option to tell the linker where to look for these files.
-Here is an example, assuming you have the source file 'foomain.c' and a library
-'foolib.lib' in the directory 'mylib'.
-<P>
-<PRE>
-sdcc foomain.c foolib.lib -L mylib
-
-</PRE>
-<P>Note here that 'mylib' must be an absolute path name.
-<P>The view of the way the linkage editor processes the library files, it
-is recommended that you put each source routine in a separate file and combine
-them using the .lib file. For an example see the standard library file 'libsdcc.lib'
-in the directory SDCCDIR/sdcc51lib.
-<HR>
-<A HREF="SDCCUdoc-4.html">Next</A>
-<A HREF="SDCCUdoc-2.html">Previous</A>
-<A HREF="SDCCUdoc.html#toc3">Contents</A>
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
- <TITLE>SDCC Compiler User Guide: Command Line options</TITLE>
- <LINK HREF="SDCCUdoc-5.html" REL=next>
- <LINK HREF="SDCCUdoc-3.html" REL=previous>
- <LINK HREF="SDCCUdoc.html#toc4" REL=contents>
-</HEAD>
-<BODY>
-<A HREF="SDCCUdoc-5.html">Next</A>
-<A HREF="SDCCUdoc-3.html">Previous</A>
-<A HREF="SDCCUdoc.html#toc4">Contents</A>
-<HR>
-<H2><A NAME="Command Line Options"></A> <A NAME="s4">4. Command Line options</A> </H2>
-
-<P>
-<UL>
-<LI><B>--model-large
-<A NAME="--model-large"></A> </B> Generate code for Large model programs see section Memory
-Models for more details. If this option is used all source files in the project
-should be compiled with this option. In addition the standard library routines
-are compiled with small model , they will need to be recompiled.</LI>
-<LI><B>--model-small</B>
-<A NAME="--model-small"></A> Generate code for Small Model programs see section Memory
-Models for more details. This is the default model.</LI>
-<LI><B>--model-flat24</B>
-<A HREF="SDCCUdoc-17.html#--model-flat24">--model-flat24</A>Generate code for Small Model programs see section Memory
-Models for more details. This is the default model.</LI>
-<LI><B>--stack-auto</B>
-<A NAME="--stack-auto"></A> All functions in the source file will be compiled as reentrant,
-i.e. the parameters and local variables will be allocated on the stack. see
-section Parameters and Local Variables for more details. If this option is
-used all source files in the project should be compiled with this option. </LI>
-<LI><B>--xstack</B>
-<A NAME="--xstack"></A> Uses a pseudo stack in the first 256 bytes in the external ram
-for allocating variables and passing parameters. See section on external stack
-for more details.</LI>
-<LI><B>--nogcse</B>
-<A NAME="--nogcse"></A> Will not do global subexpression elimination, this option may
-be used when the compiler creates undesirably large stack/data spaces to store
-compiler temporaries. A warning message will be generated when this happens
-and the compiler will indicate the number of extra bytes it allocated. It recommended
-that this option NOT be used , #pragma NOGCSE can be used to turn off global
-subexpression elimination for a given function only.</LI>
-<LI><B>--noinvariant</B>
-<A NAME="--noinvariant"></A> Will not do loop invariant optimizations, this may be turned
-off for reasons explained for the previous option . For more details of loop
-optimizations performed see section Loop Invariants.It recommended that this
-option NOT be used , #pragma NOINVARIANT can be used to turn off invariant
-optimizations for a given function only.</LI>
-<LI><B>--noinduction</B>
-<A NAME="--noinduction"></A> Will not do loop induction optimizations, see section Strength
-reduction for more details.It recommended that this option NOT be used , #pragma
-NOINDUCTION can be used to turn off induction optimizations for given function
-only.</LI>
-<LI><B>--nojtbound </B>
-<A NAME="--nojtbound"></A> Will not generate boundary condition check when switch statements
-are implemented using jump-tables. See section Switch Statements for more details.It
-recommended that this option NOT be used , #pragma NOJTBOUND can be used
-to turn off boundary checking for jump tables for a given function only.</LI>
-<LI><B>--noloopreverse</B>
-<A NAME="--noloopreverse"></A> Will not do loop reversal optimization</LI>
-<LI><B>--noregparms</B>
-<A NAME="--noregparms"></A> By default the first parameter is passed using global registers
-(DPL,DPH,B,ACC). This option will disable parameter passing using registers.
-NOTE: if your program uses the 16/32 bit support routines (for multiplication/division)
-these library routines will need to be recompiled with the --noregparms option
-as well.</LI>
-<LI><B>--callee-saves function1[,function2][,function3]....</B>
-<A NAME="--callee-saves"></A> The compiler by default uses a caller saves convention for register saving
-across function calls, however this can cause unneccessary register pushing
-& popping when calling small functions from larger functions. This option
-can be used to switch the register saving convention for the function names
-specified. The compiler will not save registers when calling these functions,
-extra code will be generated at the entry & exit for these functions to
-save & restore the registers used by these functions, this can SUBSTANTIALLY
-reduce code & improve run time performance of the generated code. In future
-the compiler (with interprocedural analysis) will be able to determine the
-appropriate scheme to use for each function call. DO NOT use this option for
-built-in functions such as _muluint..., if this option is used for a library
-function the appropriate library function needs to be recompiled with the same
-option. If the project consists of multiple source files then all the source
-file should be compiled with the same --callee-saves option string. Also see
-Pragma Directive
-<A HREF="SDCCUdoc-19.html#Pragmaa"></A> CALLEE-SAVES.
-<A HREF="SDCCUdoc-19.html#pragma callee-saves"></A> .</LI>
-<LI><B>--debug </B>
-<A NAME="--debug"></A> When this option is used the compiler will generate debug information
-, that can be used with the SDCDB. The debug information is collected in a
-file with .cdb extension. For more information see documentation for SDCDB.</LI>
-<LI><B>--regextend </B>
-<A NAME="--regextend"></A> This option will cause the compiler to define pseudo registers
-, if this option is used, all source files in the project should be compiled
-with this option. See section Register Extension for more details.</LI>
-<LI><B>--compile-only</B>(-c)
-<A NAME="--compile-only"></A> will compile and assemble the source only, will not
-call the linkage editor.</LI>
-<LI><B>--xram-loc </B>
-<A NAME="--xram-loc"></A> <Value> The start location of the external ram, default
-value is 0. The value entered can be in Hexadecimal or Decimal format .eg.
---xram-loc 0x8000 or --xram-loc 32768.</LI>
-<LI><B>--code-loc </B>
-<A NAME="--code-loc"></A> <Value> The start location of the code segment , default
-value 0. Note when this option is used the interrupt vector table is also relocated
-to the given address. The value entered can be in Hexadecimal or Decimal format
-.eg. --code-loc 0x8000 or --code-loc 32768.</LI>
-<LI><B>--stack-loc</B>
-<A NAME="--stack-loc"></A> <Value> The initial value of the stack pointer. The default
-value of the stack pointer is 0x07 if only register bank 0 is used, if other
-register banks are used then the stack pointer is initialized to the location
-above the highest register bank used. eg. if register banks 1 & 2 are used
-the stack pointer will default to location 0x18. The value entered can be in
-Hexadecimal or Decimal format .eg. --stack-loc 0x20 or --stack-loc 32. If all
-four register banks are used the stack will be placed after the data segment
-(equivalent to --stack-after-data)</LI>
-<LI><B>--stack-after-data</B>
-<A NAME="--stack-after-data"></A> This option will cause the stack to be located in the
-internal ram after the data segment.</LI>
-<LI><B>--data-loc</B>
-<A NAME="--data-loc"></A> <Value> The start location of the internal ram data segment,
-the default value is 0x30.The value entered can be in Hexadecimal or Decimal
-format .eg. --data-loc 0x20 or --data-loc 32.</LI>
-<LI><B>--idata-loc</B>
-<A NAME="--idata-loc"></A> <Value> The start location of the indirectly addressable
-internal ram, default value is 0x80. The value entered can be in Hexadecimal
-or Decimal format .eg. --idata-loc 0x88 or --idata-loc 136.</LI>
-<LI><B>--peep-file
-<A NAME="--peep-file"></A> </B><filename> This option can be used to use additional
-rules to be used by the peep hole optimizer. See section Peep Hole optimizations
-for details on how to write these rules.</LI>
-<LI><B>--lib-path (-L) </B>
-<A NAME="--lib-path"></A> <absolute path to additional libraries> This option
-is passed to the linkage editor, additional libraries search path. The path
-name must be absolute. Additional library files may be specified in the command
-line . See section Compiling programs for more details.</LI>
-<LI><B>-I <path>
-<A NAME="-I"></A> </B> The additional location where the pre processor will look
-for <..h> or "..h" files.</LI>
-<LI><B>-D<macro[=value]></B>
-<A NAME="-D"></A> Command line definition of macros. Passed
-to the pre processor.</LI>
-<LI><B>-E</B>
-<A NAME="-E"></A> Run only the C preprocessor. Preprocess all the C source files specified
-and output the results to standard output.</LI>
-<LI><B>-M
-<A NAME="-M"></A> </B> Tell the preprocessor to output a rule suitable for make describing
-the dependencies of each object file. For each source file, the preprocessor
-outputs one make-rule whose target is the object file name for that source
-file and whose dependencies are all the files `#include'd in it. This rule
-may be a single line or may be continued with `\'-newline if it is long.
-The list of rules is printed on standard output instead of the preprocessed
-C program. `-M' implies `-E'.</LI>
-<LI><B>-C</B>
-<A NAME="-C"></A> Tell the preprocessor not to discard comments. Used with the `-E' option.</LI>
-<LI><B>-MM </B>
-<A NAME="-MM"></A> Like `-M' but the output mentions only the user header files included
-with `#include file"'. System header files included with `#include
-<file>' are omitted.</LI>
-<LI><B>-Aquestion(answer)</B>
-<A NAME="-Aquestion(answer)"></A> Assert the answer answer for question, in case it is
-tested with a preprocessor conditional such as `#if #question(answer)'.
-`-A-' disables the standard asser- tions that normally describe the target
-machine.</LI>
-<LI><B>-Aquestion</B>
-<A NAME="-Aquestion"></A> (answer) Assert the answer answer for question, in case it is
-tested with a preprocessor conditional such as `#if #question(answer)'.
-`-A-' disables the standard assertions that normally describe the target machine.</LI>
-<LI><B>-Umacro</B>
-<A NAME="-Umacro"></A> Undefine macro macro. `-U' options are evaluated after all `-D'
-options, but before any `-include' and `-imac- ros' options.</LI>
-<LI><B>-dM</B>
-<A NAME="-dM"></A> Tell the preprocessor to output only a list of the mac- ro definitions
-that are in effect at the end of prepro- cessing. Used with the `-E' option.</LI>
-<LI><B>-dD</B>
-<A NAME="-dD"></A> Tell the preprocessor to pass all macro definitions into the output,
-in their proper sequence in the rest of the output.</LI>
-<LI><B>-dN </B>
-<A NAME="-dN"></A> Like `-dD' except that the macro arguments and contents are omitted.
-Only `#define name' is included in the output.</LI>
-<LI><B>-S </B>
-<A NAME="-S"></A> Stop after the stage of compilation proper; do not as- semble. The output
-is an assembler code file for the input file specified.</LI>
-<LI><B>-Wa asmOption[,asmOption]</B>... Pass the asmOption to the assembler</LI>
-<LI><B>-Wl linkOption[,linkOption]</B> .. Pass the linkOption to the linker.</LI>
-<LI><B>--int-long-reent</B>
-<A NAME="--int-long-rent"></A> Integer (16 bit) and long (32 bit) libraries have been
-compiled as reentrant. Note by default these libraries are compiled as non-reentrant.
-See section Installation for more details.</LI>
-<LI><B>--cyclomatic </B>
-<A NAME="--cyclomatic"></A> This option will cause the compiler to generate an information
-message for each function in the source file. The message contains some important
-information about the function. The number of edges and nodes the compiler
-detected in the control flow graph of the function, and most importantly the
-cyclomatic complexity see section on Cyclomatic Complexity for more details.</LI>
-<LI><B>--float-reent </B>
-<A NAME="--float-reent"></A> Floating point library is compiled as reentrant.See section
-Installation for more details.</LI>
-<LI><B>--out-fmt-ihx
-<A NAME="--out-fmt-ihx"></A> </B>The linker output (final object code) is in Intel Hex format.
-(This is the default option).</LI>
-<LI><B>--out-fmt-s19 </B>
-<A NAME="--out-fmt-s19"></A> The linker output (final object code) is in Motorola S19
-format.</LI>
-<LI><B>--nooverlay</B>
-<A NAME="--nooverlay"></A> The compiler will not overlay parameters and local variables
-of any function, see section Parameters and local variables for more details.</LI>
-<LI><B>--main-return</B>
-<A NAME="--main-return"></A> This option can be used when the code generated is called
-by a monitor program. The compiler will generate a 'ret' upon return from the
-'main' function. The default option is to lock up i.e. generate a 'ljmp .'
-.</LI>
-<LI><B>--no-peep</B>
-<A NAME="--no-peep"></A> Disable peep-hole optimization.</LI>
-<LI><B>--peep-asm</B>
-<A NAME="--peep-asm"></A> Pass the inline assembler code through the peep hole optimizer.
-Can cause unexpected changes to inline assembler code , please go through the
-peephole optimizer rules defnied in file 'SDCCpeeph.def' before using this
-option.</LI>
-<LI><B>--iram-size</B>
-<A NAME="--iram-size"></A> <Value> Causes the linker to check if the interal ram
-usage is within limits of the given value.</LI>
-</UL>
-<P>The following options are provided for the purpose of retargetting and
-debugging the compiler . These provided a means to dump the intermediate code
-(iCode) generated by the compiler in human readable form at various stages
-of the compilation process.
-<P>
-<UL>
-<LI><B>--dumpraw </B>
-<A NAME="--dumpraw"></A> . This option will cause the compiler to dump the intermediate
-code into a file of named <source filename>.dumpraw just after the intermediate
-code has been generated for a function , i.e. before any optimizations are
-done. The basic blocks at this stage ordered in the depth first number, so
-they may not be in sequence of execution.</LI>
-<LI><B>--dumpgcse</B>.
-<A NAME="--dumpgcse"></A> Will create a dump if iCode, after global subexpression elimination,
-into a file named <source filename>.dumpgcse.</LI>
-<LI><B>--dumpdeadcode </B>
-<A NAME="--dumpdeadcode"></A> .Will create a dump if iCode, after deadcode elimination,
-into a file named <source filename>.dumpdeadcode.</LI>
-<LI><B>--dumploop.</B>
-<A NAME="--dumploop"></A> Will create a dump if iCode, after loop optimizations, into
-a file named <source filename>.dumploop.</LI>
-<LI><B>--dumprange.</B>
-<A NAME="--dump-range"></A> Will create a dump if iCode, after live range analysis, into
-a file named <source filename>.dumprange.</LI>
-<LI><B>--dumpregassign. </B>
-<A NAME="--dumpregassign"></A> Will create a dump if iCode, after register assignment
-, into a file named <source filename>.dumprassgn.</LI>
-<LI><B>--dumpall. </B>
-<A NAME="--dumpall"></A> Will cause all the above mentioned dumps to be created.</LI>
-</UL>
-<P>Note that the files created for the dump are appended to each time. So
-the files should be deleted manually , before each dump is created.
-<P>When reporting bugs, it will be very helpful if you could include these
-dumps along with the portion of the code that is causing the problem.
-<HR>
-<A HREF="SDCCUdoc-5.html">Next</A>
-<A HREF="SDCCUdoc-3.html">Previous</A>
-<A HREF="SDCCUdoc.html#toc4">Contents</A>
-</BODY>
-</HTML>