Start of port of AsyncIO library.
[AROS-Contrib.git] / workbench / libs / asyncio / src / DMakeFile
blob0f84ef3ca59dde107bd957b85e0ef39e18430634
2 # DMakeFile for asyncio library. Both shared library and normal library models.
5 # Does not generate all flavors; only the basic ones:
6 #   Normal arguments, smalldata
7 #   Registered arguments, smalldata
9 # Should be easy to modify below to generate other flavors, if needed.
12 SRC = CloseAsync.c OpenAsync.c OpenAsyncFH.c OpenAsyncFromFH.c PeekAsync.c \
13       ReadAsync.c ReadCharAsync.c ReadLineAsync.c RecordAsyncFailure.c     \
14       RequeuePacket.c SeekAsync.c SendPacket.c WaitPacket.c WriteAsync.c   \
15       WriteCharAsync.c WriteLineAsync.c FGetsLenAsync.c
17 OBJ = $(SRC:*.?:o/*.o)
19 PRAGMA = /include/pragmas/asyncio_pragmas.h
20 FD     = /include/fd/asyncio_lib.fd
22 # Generate all "normal" flavors
24 All : /libs/asyncio.library $(PRAGMA) \
25       /dlib/asynciolibs.lib /dlib/asynciolibsr.lib /dlib/asyncios.lib /dlib/asynciosr.lib \
26       /lib/asyncio.lib /lib/asyncior.lib
28 asio : /libs/asyncio.library
30 Rev.h :
31         Rev -s -i -p -t -b
33 Lib.c : Rev.h
35 # The only difference when making the shared library is that Lib.c is included
36 # (MUST be first), and that ASIO_SHARED_LIB is defined. It only affects another
37 # define in the (private) include file async.h
39 /libs/asyncio.library : Lib.o $(OBJ)
40         Sc LINK TO %(left) %(right)
42 Lib.o $(OBJ) : Lib.c $(SRC)
43         Sc DEF ASIO_SHARED_LIB UTILLIB OBJNAME %(left) %(right)
46 # Normal link libraries
48 /lib/asyncio.lib : $(SRC:*.c:ol/*.o) AsyncLib.o AsyncLibVer.o
49         Sc OBJLIB %(left) %(right)
51 $(SRC:*.c:ol/*.o) : $(SRC)
52         Sc PARAMS STACK OBJNAME %(left) %(right)
54 /lib/asyncior.lib : $(SRC:*.c:olr/*.o) AsyncLib.o AsyncLibVer.o
55         Sc OBJLIB %(left) %(right)
57 $(SRC:*.c:olr/*.o) AsyncLib.o AsyncLibVer.o : $(SRC) AsyncLib.c AsyncLibVer.c
58         Sc DEF ASIO_REGARGS OBJNAME %(left) %(right)
60 $(OBJ) : async.h
63 # Keep the pragma file up to date
65 $(PRAGMA) : $(FD)
66         FDTOPragma -o%(left) %(right)
69 # Link libraries for use with the shared version of the library. Only needed if
70 # the -mi option isn't used, or you use the autoinit stuff.
72 /dlib/asynciolibs.lib : $(FD)
73         FDToLib -o%(left) %(right) -auto asyncio.library
75 /dlib/asynciolibsr.lib : $(FD)
76         FDToLib -o%(left) %(right) -mr -hasynciolibsr.h -auto asyncio.library
78 # Large data models of the above two libraries. Not generated per default.
80 /dlib/asynciolibs.lib : $(FD)
81         FDToLib -o%(left) %(right) -auto asyncio.library -md
83 /dlib/asynciolibsr.lib : $(FD)
84         FDToLib -o%(left) %(right) -mr -hasynciolibsr.h -auto asyncio.library -md
87 # Here the normal link library versions are generated. See lib.def for more information.
89 /dlib/asyncios.lib :
90         LbMake asyncio s
92 /dlib/asynciosr.lib :
93         LbMake asyncio s r
95 # Other flavours, not generated per default
97 /dlib/asynciol.lib :
98         LbMake asyncio l
100 /dlib/asynciorl.lib :
101         LbMake asyncio l r
103 /dlib/asyncioes.lib :
104         LbMake asyncio s e
106 /dlib/asyncioesr.lib :
107         LbMake asyncio s r e
109 /dlib/asyncioel.lib :
110         LbMake asyncio l e
112 /dlib/asyncioelr.lib :
113         LbMake asyncio l r e
115 /dlib/asynciolp.lib :
116         LbMake asyncio l p
118 /dlib/asynciolrp.lib :
119         LbMake asyncio l r p
121 /dlib/asyncioesp.lib :
122         LbMake asyncio s p e
124 /dlib/asyncioesrp.lib :
125         LbMake asyncio s r p e
127 /dlib/asyncioelp.lib :
128         LbMake asyncio l p e
130 /dlib/asyncioelrp.lib :
131         LbMake asyncio l r p e
133 /dlib/asynciosp.lib :
134         LbMake asyncio s p
136 /dlib/asynciosrp.lib :
137         LbMake asyncio s r p
140 # SAS versions of some of the above
142 /lib/asyncioer.lib : $(SRC:*.c:oler/*.o) AsyncLib.o
143         Sc OBJLIB %(left) %(right)
145 $(SRC:*.c:oler/*.o) : $(SRC)
146         Sc DEF ASIO_NOEXTERNALS DEF ASIO_REGARGS OBJNAME %(left) %(right)
148 /lib/asyncioe.lib : $(SRC:*.c:ole/*.o) AsyncLib.o
149         Sc OBJLIB %(left) %(right)
151 $(SRC:*.c:ole/*.o) : $(SRC)
152         Sc PARAMS STACK DEF ASIO_NOEXTERNALS OBJNAME %(left) %(right)
155 # Some other "odd" SAS/C link library versions. "u" means that UtilityBase
156 # is needed, and "2" means 020+ compiled.
158 /lib/asyncioru.lib : $(SRC:*.c:olru/*.o) AsyncLib.o
159         Sc OBJLIB %(left) %(right)
161 $(SRC:*.c:olru/*.o) : $(SRC)
162         Sc UTILLIB DEF ASIO_REGARGS OBJNAME %(left) %(right)
164 /lib/asyncioru2.lib : $(SRC:*.c:olru2/*.o) AsyncLib.o
165         Sc DEF ASIO_REGARGS OBJLIB %(left) %(right)
167 $(SRC:*.c:olru2/*.o) : $(SRC)
168         Sc UTILLIB CPU 68020 DEF ASIO_REGARGS OBJNAME %(left) %(right)