home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / c / CLib37x.lha / c_lib / ReadMe_First < prev    next >
Encoding:
Text File  |  1997-01-25  |  9.2 KB  |  205 lines

  1.   example.library V37.5 (24.1.97)
  2.  
  3.   An Amiga shared library in 100 % C language - coming with sources.
  4.  
  5.   Compiler Checklist:        Compiler           Support
  6.                              --------------------------
  7.    (see README.<compiler>    SAS/C 6.5x         yes
  8.     for more information)    MaxonC 3.x         yes
  9.                              StormC 2.x         yes
  10.                              DICE 3.x           (not tested)
  11.                              GCC 2.6.x          ./.
  12.                              AztecC             (not tested)
  13.                              vbcc               (not tested)
  14.  
  15.   Original SAS/C and StormC version (C) 1996-97 by Andreas R. Kleinert,
  16.   MaxonC version changes done 1996 by Helmut Hummel. All rights reserved.
  17.   ----------------------------------------------------------------------
  18.   This sample library intends to make Amiga shared library sources
  19.   compileable with any available Amiga C compiler - without any
  20.   changes to the source code.
  21.   And maybe in the future also running under any Amiga compatible
  22.   operating system with any CPU.
  23.  
  24.   The first goal seams to be easily done: nearly any noticeable compiler
  25.   for the Amiga does support generation of libraries with special
  26.   linker commands and pre-generated object files.
  27.  
  28.   But when looking into the details, one will find out, that these
  29.   linker functionality just reduces the influence of the programmer
  30.   on how his sources are handled, that the pre-generated object
  31.   files just originally were done in Assembler, and that each compiler
  32.   does define its own interface definitions and usage rules.
  33.  
  34.   But as a programmer, it is important to have control over the _complete_
  35.   source code and to be able to compiler it _anywhere_ with only
  36.   minor changes, even better without any changes.
  37.  
  38.   Since most Amiga system modules - noticeable Libraries, Devices and
  39.   Resources - do have startup-modules and other larger parts completely
  40.   written in Assembler language, the most important task for getting
  41.   inter-compiler and operating system independant sources in my opinion
  42.   is, to completely migrate the interfaces to C lanuguage (but different
  43.   to AROS, for example, it is most important, to keep the sources running
  44.   under the current 68k AmigaOS in the _first_ place).
  45.  
  46.   This goal basically has been reached already, still missing of
  47.   course are some of the less Amiga-native compilers and of course
  48.   tests with any kind "AmigaOS for PowerPC".
  49.  
  50.   But since Assembler is nearly as portability-hostile as BCPL _today_
  51.   we might be quite close to the goal defined above.
  52.  
  53.   Translate your 68k-assembler library startup-codes smartly
  54.   to C by simply using this source-code as an advice how to do it.
  55.  
  56.   For testing: install the (re)compiled example.library to LIBS: and
  57.   start the test program - it should pop up an requester, then.
  58.  
  59.   If you can submit adjustments for the other compilers as mentioned
  60.   above: feel free to send these.
  61.   ---
  62.   Feel free to use this source for own projects.
  63.  
  64.   It is allowed to be spread and distributed anywhere, as far
  65.   as my consent is concerned.
  66.  
  67.   Amiga Technologies, or the current owner of the technologie,
  68.   is allowed to always put this source on their newest
  69.   Developer CD-ROM.
  70.  
  71.   Thanks and credits will always be appreciated - for example,
  72.   you MAY, but NEED NOT:
  73.   give me credits in your program's docs, send me keyfiles for
  74.   your programs using the library, and so on.
  75.   But that's simply voluntarily.
  76.  
  77.    _________________________________________________________
  78.   |      You may reach me the following way.                |
  79.   |    Send bug-reports, money or whatever to:              |
  80.   |---------------------------------------------------------|
  81.   |        * SuperView Development & Registration *         |
  82.   |          * DRAFU Development & Registration *           |
  83.   |       * Image Engineer Registration Site Europe *       |
  84.   |                                                         |
  85.   |                                                         |
  86.   |                  PerSuaSiVe SoftWorX                    |
  87.   |                                                         |
  88.   |                  Andreas R. Kleinert                    |
  89.   |                  Sandstrasse 1                          |
  90.   |                  D-57072 Siegen                         |
  91.   |                  Germany, Europe                        |
  92.   |                                                         |
  93.   | Any snail mail to the old address will still be routed. |
  94.   |                                                         |
  95.   |                  Phone:  +49-271-22869 also FAX + AM    |
  96.   |                          +49-271-22838                  |
  97.   |                                                         |
  98.   |                  Weekdays after 17.00h.                 |
  99.   |                                                         |
  100.   |         When calling via phone you may leave a message, |
  101.   |         if I'm not available - but don't expect me      |
  102.   |         calling back to USA, Australia, ... since       |
  103.   |         german phone rates are HIGHLY expensive.        |
  104.   |_________________________________________________________|
  105.  
  106.     http://home.t-online.de/home/Andreas_Kleinert/
  107.  
  108.   eMail:
  109.  
  110.         Please send binaries via ARK@COB.wwbnet.de, and keep
  111.         them smaller than 16 KB. Please think twice before
  112.         sending them - my postbox is not unlimited in size.
  113.  
  114.            - Fido    Andreas Kleinert 2:2457/350.18
  115.            - Usenet
  116.                      Andreas_Kleinert@superview.ftn.sub.org  (Fido-Gate)
  117.                      Andreas_Kleinert@t-online.de            (T-Online)
  118.                      ARK@COB.wwbnet.de                       (Z-Netz)
  119.                      ARK@amigaworld.com                      (AmigaWorld)
  120.  
  121.            - If nothing else works, try one of these public
  122.              Fido-Usenet gateways:
  123.  
  124.                In Germany:
  125.                  Andreas_Kleinert@p18.f350.n2457.z2.fido.sub.org
  126.  
  127.                From USA or elsewhere:
  128.                  Andreas_Kleinert@p18.f350.n2457.z2.fidonet.org
  129.  
  130.         Please note, that the "superview.ftn.sub.org"
  131.         domain will perhaps be renamed soon
  132.  
  133.  
  134.  History:
  135.  
  136.  V37.5 (24.1.97) :  - rewrote docs
  137.                     - added basic support for compiler independent
  138.                       register naming and SAS/C keyword replacements
  139.                       (compiler.h). Thus sources now should be easily
  140.                       adaptable for GCC as well.
  141.  
  142.  V37.4 (8.1.97) :   - added FD file
  143.                     - added new pragma file (and dir) as
  144.                       include/pragma/example_lib.h
  145.                       which works with Aztec, Maxon, Storm,
  146.                       DICE and SAS C compilers.
  147.                       Thanks to fd2pragma and Dirk Stoecker.
  148.                     - some fixes to the readme files
  149.                     - updated eMail list
  150.  
  151.  V37.3 (3.1.97) :   - slightly changed SCOPTIONS
  152.                     - fixed some style things (APTR and library casts)
  153.                     - changed note about library opening at L_OpenLibs()
  154.                     - now compileable with StormC 2.0 as well
  155.                       (not tested with 1.1) - see readme file for StormC
  156.                     - added project file for StormC 2.0, smakefile still
  157.                       present - select, which one you'd like to use
  158.  
  159.  V37.2 (12.12.96) : - applied some more changes and fixes
  160.                       (-> suggested by Helmut Hummel)
  161.                     - added icons
  162.                       (-> from Helmut Hummel)
  163.  
  164.  V37.1 (4.12.96) : - bumped version to V37
  165.                    - added MaxonC 3.x version by applying changes
  166.                      to the SAS/C sources and adding Maxon
  167.                      specific make and configuration files
  168.                      (-> all done by Helmut Hummel, see Readme.MAXON)
  169.                    - added StormC support
  170.                    - yet missing: DICE, Aztec, GNU. Who does it ?
  171.  
  172.  V1.4 (30.11.96) : - added SAS/C specific Ctrl-C disabling code
  173.                    - made some workarounds compiler sensitive
  174.                    - redone all with SAS/C V6.57
  175.                    - 944 Bytes ;-)
  176.  
  177.  V1.3 (13.9.96) :  - when starting lib as executable, -1 must be returned
  178.                    - now caching SysBase
  179.                    - added some comments, where changes should not
  180.                      be applied
  181.                    - added note about sharing library bases
  182.                    - documented and modified sample function,
  183.                      so that correct a0/a1/d0/d1 and a6 usage becomes
  184.                      more obviously and verbose
  185.                    - still 940 bytes ;-)
  186.  
  187.  V1.2 (5.9.96)  :  - fixed some things resulting out of a
  188.                      discussion in Z-Netz
  189.  
  190.  V1.1 (1.9.96)  :  - small changes in style
  191.                      (only bumped versions of changed modules):
  192.                        o moved "examplebase.h" to include/example/
  193.                          (so also adjusted LibInit.c, StartUp.c
  194.                           and SCOPTIONS for reflecting that)
  195.                        o SampleFuncs.h did contain wrong prototype
  196.                          (did not matter, since only used for
  197.                           ULONG function table within StartUp.c)
  198.                        o explicitely __aligned ROMTag structure
  199.  
  200.  V1.0 (14.8.96) : - first release
  201.  
  202.  
  203.  ---
  204.  All mentioned trademarks are subjects to their owners.
  205.