Updated PCI IDs to latest snapshot.
[tangerine.git] / workbench / libs / reqtools / COMPILE.README
blob51fe5a8d64c5f8ab7580e7a69ff6f54ddb600ac1
1 How to compile reqtools.library for Amiga:
3 NOTES:
5 - This will compile a C only version. No assembly files are used.
8 REQUIREMENTS:
10 - Geek Gadgets. Might also work with older versions of GCC, but
11   you need at least one which supports registerized parameters.
13   
14 COMPILING:
16 - Make sure the GG environment is "initialized":
18     stack 500000
19     execute GG:Sys/S/GG-Startup
20   
21 - First install the include files:
23     cd amigaincludesforgcc
24     multiview README
25     execute README
27   You also have to add the following macro to GG:include/inline/macros.h,
28   because it is missing in there (-> there does not seem to be any other
29   library function in any other library which takes 5 parameters and one
30   of the parameters is in register A4):
31   
32   #define LP5A4(offs, rt, name, t1, v1, r1, t2, v2, r2, t3, v3, r3, t4, v4, r4, t5, v5, r5, bt, bn) \
33   ({                                \
34      t1 _##name##_v1 = (v1);                    \
35      t2 _##name##_v2 = (v2);                    \
36      t3 _##name##_v3 = (v3);                    \
37      t4 _##name##_v4 = (v4);                    \
38      t5 _##name##_v5 = (v5);                    \
39      {                                \
40         register rt _##name##_re __asm("d0");            \
41         register struct Library *const _##name##_bn __asm("a6") = (struct Library*)(bn); \
42         register t1 _n1 __asm(#r1) = _##name##_v1;        \
43         register t2 _n2 __asm(#r2) = _##name##_v2;        \
44         register t3 _n3 __asm(#r3) = _##name##_v3;        \
45         register t4 _n4 __asm(#r4) = _##name##_v4;        \
46         register t5 _n5 __asm(#r5) = _##name##_v5;        \
47         __asm volatile ("exg d7,a4\n\tjsr a6@(-"#offs":W)\n\texg d7,a4" \
48         : "=r" (_##name##_re)                    \
49         : "r" (_##name##_bn), "rf"(_n1), "rf"(_n2), "rf"(_n3), "rf"(_n4), "rf"(_n5) \
50         : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");    \
51         _##name##_re;                        \
52      }                                \
53   })
56 - Then compile the library
58     cd /
59     make -f Makefile.gcc
61 - This will create the reqtools.library file in RAM:
65 Georg Steger <georg.steger@rolmail.net>