AminetAminet
Search:
82293 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/c/SDI_headers.lha

Mirror:Random
Showing:ppc-amigaosgeneric
No screenshot available
Short:A set of C macros and defines
Author:Jens.Langner at light-speed.de (Jens Langner), soft at dstoecker.de (Dirk Stöcker)
Uploader:polluks+aminet sdf lonestar org (Stefan Haubenthal)
Type:dev/c
Version:1.7
Architecture:generic
Distribution:Aminet
Kurz:Ein Bündel von C Makros/Defines
URL:https://github.com/adtools/SDI
Date:2018-05-06
Download:http://aminet.net/dev/c/SDI_headers.lha - View contents
Readme:http://aminet.net/dev/c/SDI_headers.readme
Downloads:721
ABOUT
-----
One may ask, what are these "SDI headers" all about? So let me try to
explain the idea behind those additional headerfiles first:

The so-called "SDI headers" are a set of freely available and freely usable
C-language header files which provide different sets of macros and defines
to make the live of developers much more comfortable when it comes to
dealing with hooks, compiler specific specialities or if one have to keep C
sources compatible over different AmigaOS-like platforms.

In fact, by using the SDI headers a developer might keep his sources simple
and compatible to AmigaOS3, AmigaOS4 and also MorphOS much more easier, than
with having to clutter them with tones of #ifdef statements just because
these platforms use different approaches for the same path.

WHY?
----
Now you may ask why? The answer is quite easy. Because if you have followed
recent development pathes of AmigaOS3 and its successors AmigaOS4 and
MorphOS, you might have noticed that many parts of the original AmigaOS
API/SDK have been changed. On one hand the API changed because OS4 and
MorphOS are now PPC based, but also because of the senseless "fight" between
those Amiga-based platforms, it is much harder these days for a developer
willing to support all of these platforms at once.
Here is where the SDI headers can clearly help. They release much of the pain
when it comes to deal with Hooks, compiler differences and platform
specialities.

DIFFERENT PURPOSES
------------------
Currently the "SDI headers" consist of 4 different header files which were
developed because of different purposes:

SDI_compiler.h - This header file carries compiler independent defines and
                 macros to allow developers to keep sources compatible to
                 different compilers and make sources in all more transparent
                 to compilers.

SDI_hook.h     - Dealing with Amiga-hooks was always a bit tricky and hard,
                 but in using this header file Hook can be defined in a very
                 easy and Amiga-platform independent fashion.

SDI_lib.h      - Since AmigaOS4 a new library system has been introduced
                 which comes with a different fashion of dealing with
                 shared libraries. This header file allows to keep sources
                 compatible to the old scheme by using different types
                 of macros making it transparent for AmigaOS3 and MorphOS
                 as well.

SDI_stdarg.h   - Unfortunatly variable argument list functions has always
                 been a bit tricky and especially since we are on the PPC
                 now, developers have to be more careful in how to use
                 variable argument list functions. However, this header
                 file allows to use a simple set of macros to generate a
                 AmigaOS3/AmigaOS4 and MorphOS compatible variable
                 argument list function.

SDI_interrupt.h- Dealing with Amiga-interrupts was always a bit tricky and
                 hard, but in using this header file interrupts and handler
                 can be defined in a very easy and Amiga-platform
                 independent fashion.
                 
SDI_misc.h     - This file contains miscellaneous function definitions which
                 may be required during development like the PutChProc() for
                 RawDoFmt().
                 

So you see. The SDI headers are a global players and if you use the whole
set of these headers your sources can be much easier maintainable than
they are already. Just have a look at the included examples!

USAGE
-----
There is nothing really special about these headers and their usage. All
header files in the "includes" subdirectory of this distributions should be
perfectly commented and can be directly included in any sources.
However, for a better understanding we have worked out some examples which
should illustrate how the SDI headers have to be used and how they are able
to simplify parts of a source code, especially if this source has to be
compatible to many different AmigaOS like platforms.

ARE THEY SERIOUSLY USED YET?
----------------------------
Of course these headers are not only "theoretical stuff". In fact they are
currently used in the following well-known Amiga-based projects:

YAM (Yet Another Mailer)    - http://yam.ch
NList MUI classes           - http://www.sf.net/projects/nlist-classes
MUI (Magic User Interface)  - http://www.sasg.com
Freeciv (Amiga port)
XAD library

.. and many unknown ones :)

So if you are interested in looking into "real" working source code and not
only into the supplied example code, please feel free to have a look at
the source code of the above projects (if it is freely available of course).

COPYRIGHT
---------
The header files and sources of the SDI headers and its examples are fully
public domain. They can be reproduced and altered in any way. All we
(the authors) request is that if you find a bug or better way to deal
with something please send us a comment or hint about it so that we can
integrate this stuff in future versions.
Please share the public domain idea to make development for all us small
Amiga developer group easier and so painful in future.

AUTHORS
-------
The main/original authors of the SDI headers are:

Jens Langner <Jens.Langner at light-speed.de>
Dirk Stöcker <soft at dstoecker.de>


Contents of dev/c/SDI_headers.lha
PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[generic]                 1141    2687  42.5% -lh5- 9c02 Aug  6  2016 SDI/examples/hooks/example_hookuse.c
[generic]                  542    1395  38.9% -lh5- 6fd2 Aug  6  2016 SDI/examples/hooks/makefile.mos
[generic]                  547    1407  38.9% -lh5- 9453 Aug  6  2016 SDI/examples/hooks/makefile.os3
[generic]                  541    1396  38.8% -lh5- c85a Aug  6  2016 SDI/examples/hooks/makefile.os4
[generic]                 4217   18150  23.2% -lh5- ad41 Aug  6  2016 SDI/examples/libraries/example_lib.c
[generic]                  552    1414  39.0% -lh5- d781 Aug  6  2016 SDI/examples/libraries/makefile.mos
[generic]                  553    1416  39.1% -lh5- 6a51 Aug  6  2016 SDI/examples/libraries/makefile.os3
[generic]                  552    1412  39.1% -lh5- 0d93 Aug  6  2016 SDI/examples/libraries/makefile.os4
[generic]                 1186    2611  45.4% -lh5- ca7a Aug  6  2016 SDI/examples/misc/example_miscuse.c
[generic]                  542    1395  38.9% -lh5- f88f Aug  6  2016 SDI/examples/misc/makefile.mos
[generic]                  547    1407  38.9% -lh5- bd40 Aug  6  2016 SDI/examples/misc/makefile.os3
[generic]                  540    1396  38.7% -lh5- 598c Aug  6  2016 SDI/examples/misc/makefile.os4
[generic]                  957    2235  42.8% -lh5- 072e Aug  6  2016 SDI/examples/varargs/example_varargs.c
[generic]                  548    1412  38.8% -lh5- 7205 Aug  6  2016 SDI/examples/varargs/makefile.mos
[generic]                  547    1411  38.8% -lh5- 5f98 Aug  6  2016 SDI/examples/varargs/makefile.os3
[generic]                  541    1400  38.6% -lh5- c3a4 Aug  6  2016 SDI/examples/varargs/makefile.os4
[generic]                 2832    8238  34.4% -lh5- 613e Aug  6  2016 SDI/includes/SDI_compiler.h
[generic]                 3825   16873  22.7% -lh5- 0af4 Aug  6  2016 SDI/includes/SDI_hook.h
[generic]                 1776    5995  29.6% -lh5- e348 Aug  6  2016 SDI/includes/SDI_interrupt.h
[generic]                 2904    8305  35.0% -lh5- a14a Aug  6  2016 SDI/includes/SDI_lib.h
[generic]                 1393    3246  42.9% -lh5- 75a2 Aug  6  2016 SDI/includes/SDI_misc.h
[generic]                 2379   10080  23.6% -lh5- 28f3 Aug  6  2016 SDI/includes/SDI_stdarg.h
[generic]                 2543    5991  42.4% -lh5- 47e3 Aug  6  2016 sdi/readme
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        23 files   31705  101272  31.3%            May  6 18:46

Aminet © 1992-2018 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>