home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Programming / vbcc_MorphOS / README.FIRST < prev    next >
Text File  |  2000-08-20  |  8KB  |  232 lines

  1.  
  2.                           --- VBCC FOR MORPHOS ---
  3.  
  4.  
  5.     This is a prerelease of vbcc for MorphOS, which runs native under this
  6.     operating system. It is based on a development snapshot of the
  7.     current, still unreleased, vbcc 0.7d compiler and comes with config
  8.     files to create programs for AmigaOS/68k, PowerUp/PPC and MorphOS/PPC.
  9.  
  10.     The following config files have to be selected when compiling with
  11.     the frontend "vc":
  12.  
  13.     +vc.config (or none): MorphOS native
  14.     +ppc                : PowerUp
  15.     +m68k               : AmigaOS/68k
  16.  
  17.  
  18.  
  19. INTRODUCTION
  20.  
  21.     vbcc is a free portable and retargetable ANSI C compiler.
  22.  
  23.     This archive contains the compiler, preprocessor, assembler, linker,
  24.     frontend, startup codes, C-libraries, amiga.lib replacements as
  25.     well as several other tools for M68k, PowerUp and MorphOS.
  26.  
  27.     This gives you a complete system that allows to develop programs in
  28.     ANSI C as well as Amiga-specific programs (provided you obtain the
  29.     OS-includes) running on MorphOS.
  30.  
  31.     Note that most of the programs in this archive all run natively
  32.     under MorphOS. There are only two exceptions:
  33.  
  34.       vbcc/bin/make
  35.       vbcc/bin/phxass
  36.     which will run emulated on the M68k. PhxAss isn't portable and
  37.     I didn't want to compile a new GNU-make for now.
  38.  
  39.  
  40.  
  41. INSTALLATION
  42.  
  43.     Copy the vbcc directory whereever you want on your MorphOS partition
  44.     (e.g. MorphOS:vbcc), then add the following assignments to your
  45.     S:User-Startup :
  46.  
  47.     ;BEGIN vbcc
  48.     assign >NIL: vbcc: MorphOS:vbcc/machines/amiga
  49.     assign >NIL: vbccmorph: vbcc:/morphos
  50.     assign >NIL: vbccm68k: vbcc:/amiga68k
  51.     assign >NIL: vbccppc: vbcc:/amigappc
  52.     assign >NIL: vincludemorph: vbccmorph:include
  53.     assign >NIL: vincludemorph: <os-include-path> ADD
  54.     assign >NIL: vincludem68k: vbccm68k:include
  55.     assign >NIL: vincludem68k: <os-include-path> ADD
  56.     assign >NIL: vincludeppc: vbccppc:include
  57.     assign >NIL: vincludeppc: <os-include-path> ADD
  58.     assign >NIL: vlibmorph: vbccmorph:lib
  59.     assign >NIL: vlibm68k: vbccm68k:lib
  60.     assign >NIL: vlibppc: vbccppc:lib
  61.     assign >NIL: C: vbcc://bin ADD
  62.     assign >NIL: C: vbcc:bin ADD
  63.     ;END vbcc
  64.  
  65.     Replace <os-include-path> by the path to the directory which contains
  66.     your AmigaOS and/or MorphOS header files.
  67.  
  68.  
  69.  
  70. FEATURES
  71.  
  72.     vbcc..
  73.  
  74.     - comes with source (but not in this prerelease!)
  75.     - is free
  76.     - is portable and retargetable
  77.     - comes with a global optimizer that can e.g. do global common
  78.       subexpression elimination, constant propagation, function inlining
  79.       and several other optimizations (but is not yet finished and may
  80.       have some bugs)
  81.     - should be ANSI compliant
  82.     - can generate code that runs on a plain 68000 CPU
  83.     - can generate code optimized for 020/030, 040 or 060
  84.     - can generate code that uses the 68881/2, 68040/060 FPUs directly
  85.       and comes with appropriate math-libraries
  86.     - can generate code that runs on PowerUp-boards
  87.     - generates standard Amiga-68k-objects, PPC-ELF-objects or
  88.       WarpOS-EHF-objects
  89.     - does not need too much memory
  90.     - offers a lot of error/warning messages that can be turned on/off
  91.       separately
  92.  
  93.  
  94.  
  95. WHAT'S NEW
  96.  
  97.     Some changes since the last release:
  98.  
  99.     - bug fixes
  100.     - a better optimizer (-O3 for PPC and -O3 and -O2 for M68k are
  101.       still unstable, use on own risk)
  102.     - MorphOS support
  103.     - pragmas for Amiga-alignment
  104.       You can use them to switch to Amiga-alignment while including
  105.       AmigaOS header files and compile the rest of your program in
  106.       optimal PowerPC alignment. Following pragmas were defined:
  107.       #pragma amiga-align
  108.           switches to 16-bit alignment as used by AmigaOS
  109.       #pragma natural-align
  110.           switches to best alignment for CPU, which is 32-bit for PowerPC
  111.       #pragma default-align
  112.           switches to the alignment defined by the command line, which
  113.           is natural-alignment or amiga-alignment, when the option
  114.           -amiga-align is given
  115.     - stack checking (currently not supported by vc.lib)
  116.  
  117.  
  118.  
  119. REQUIREMENTS
  120.  
  121.     To use vbcc you need:
  122.  
  123.     - an Amiga with OS 2.0 or higher
  124.     - enough RAM (it is possible to translate small programs with 1MB, but
  125.       for larger programs much more will be needed)
  126.  
  127.     Stuff that is not needed, but may be very useful:
  128.     - harddisk
  129.     - editor
  130.     - make, touch etc.
  131.     - the Amiga OS-includes (they can be found on certain CDs)
  132.     - pipe-command (to use the message browser)
  133.  
  134.     Also you should know how to use the shell and you should know ANSI C
  135.     (if you need a book I recommend (like everyone) "The C Programming
  136.     Language, Second Edition, ANSI C" by Kernighan and Ritchie).
  137.  
  138.  
  139.  
  140. LEGAL
  141.  
  142.     vbcc is (c) in 1995-2000 by Volker Barthelmann.
  143.     This is a development snapshot which must not be distributed.
  144.     Commercial usage is forbidden.
  145.  
  146.     Note that this distribution contains several programs, libraries etc.
  147.     that are from different authors and are under different legal status.
  148.     So always read the corresponding doc/guide-file to find out under
  149.     what conditions a certain file may be used, distributed etc.
  150.  
  151.     For the most part you can assume that you may use everything for
  152.     non-commercial purposes and may distribute the unchanged archive
  153.     in whole.
  154.  
  155.     Changing any parts from this archive, distributing parts of it or
  156.     using it commercially might be legal for certain parts, but illegal
  157.     for others, so read all docs carefully before doing any of the above.
  158.  
  159.     This archive contains code written by (this list may be incomplete):
  160.  
  161.     Volker Barthelmann, Frank Wille, Thorsten Schaaps, Dennis Ritchie,
  162.     Matthias Fleischer, Gunther Nikl, Kasper Graversen, Johnny Tevessen
  163.  
  164.  
  165.  
  166. CONFIGURATION
  167.  
  168.     The frontend searches for a file vc.config in ENV: and vbcc: to read
  169.     preferences. The provided sample vc.config should be usable and does
  170.     not have to be changed but you can add something to suit your personal
  171.     preferences - read
  172.  
  173.         vbcc/doc/vc.doc
  174.  
  175.     to find out more.
  176.  
  177.  
  178.  
  179. TUTORIAL
  180.  
  181.     If you want to compile and link the program hello.c you can type
  182.  
  183.         vc hello.c
  184.  
  185.     This will compile and link the file hello.c and create the executable
  186.     a.out in the current directory.
  187.  
  188.         vc hello.c -o hello
  189.  
  190.     will do the same, but the created executable will be called hello.
  191.  
  192.         vc -c t1.c t2.c
  193.  
  194.     will compile t1.c and t2.c without linking, creating the object files
  195.     t1.o and t2.o.
  196.  
  197.         vc t1.o t2.o -o tt
  198.  
  199.     will link them together and create the executable tt.
  200.  
  201.     If your program uses floating point add -lm to the commandline
  202.     to link with the math-library, e.g.:
  203.  
  204.         vc calc.c -o calc -lm
  205.  
  206.     If your program uses AmigaOS functions, you have to link with the
  207.     amiga-library and take care for correct alignment of header files,
  208.     either by using the option -amiga-align or by using #pragma
  209.     amiga-align:
  210.  
  211.         vc -amiga-align myOsPrg.c -lvc -lamiga
  212.  
  213.     Note that you should also specify -lvc before -lamiga to avoid
  214.     that sprintf() etc. are replaced by versions from amiga-lib.
  215.  
  216.  
  217.  
  218. BUGREPORTS/COMMENTS
  219.  
  220.     Please send all bug reports concerning this MorphOS-native release
  221.     to
  222.         frank@phoenix.owl.de
  223.  
  224.     Should I find out that it is not a problem of the MorphOS-port, but
  225.     of the compiler itself, I will forward your mail to Volker
  226.     Barthelmann <volker@vb.franken.de>.
  227.  
  228.  
  229.  
  230. Frank Wille                     20-Aug-2000             frank@phoenix.owl.de
  231. Volker Barthelmann                                      volker@vb.franken.de
  232.