@@ -155,6 +155,69 @@ void ast_init(ast_t *ast, unsigned int cross_compile_for){
155155 // __wasm__
156156 meta_definition_add_bool (& ast -> meta_definitions , & ast -> meta_definitions_length , & ast -> meta_definitions_capacity , "__wasm__" , cross_compile_for == CROSS_COMPILE_WASM32 );
157157
158+ // __bsd__
159+ meta_definition_add_bool (& ast -> meta_definitions , & ast -> meta_definitions_length , & ast -> meta_definitions_capacity , "__bsd__" ,
160+ #if defined(__FreeBSD__ ) || defined (__NetBSD__ ) || defined (__OpenBSD__ ) || defined (__bsdi__ ) || defined (__DragonFly__ ) || defined (__MidnightBSD__ )
161+ cross_compile_for == CROSS_COMPILE_NONE
162+ #else
163+ false
164+ #endif
165+ );
166+
167+ // __freebsd__
168+ meta_definition_add_bool (& ast -> meta_definitions , & ast -> meta_definitions_length , & ast -> meta_definitions_capacity , "__freebsd__" ,
169+ #ifdef __FreeBSD__
170+ cross_compile_for == CROSS_COMPILE_NONE
171+ #else
172+ false
173+ #endif
174+ );
175+
176+ // __openbsd__
177+ meta_definition_add_bool (& ast -> meta_definitions , & ast -> meta_definitions_length , & ast -> meta_definitions_capacity , "__openbsd__" ,
178+ #ifdef __OpenBSD__
179+ cross_compile_for == CROSS_COMPILE_NONE
180+ #else
181+ false
182+ #endif
183+ );
184+
185+ // __netbsd__
186+ meta_definition_add_bool (& ast -> meta_definitions , & ast -> meta_definitions_length , & ast -> meta_definitions_capacity , "__netbsd__" ,
187+ #ifdef __NetBSD__
188+ cross_compile_for == CROSS_COMPILE_NONE
189+ #else
190+ false
191+ #endif
192+ );
193+
194+ // __dragonfly__
195+ meta_definition_add_bool (& ast -> meta_definitions , & ast -> meta_definitions_length , & ast -> meta_definitions_capacity , "__dragonfly__" ,
196+ #ifdef __DragonFly_
197+ cross_compile_for == CROSS_COMPILE_NONE
198+ #else
199+ false
200+ #endif
201+ );
202+
203+ // __illumos__
204+ meta_definition_add_bool (& ast -> meta_definitions , & ast -> meta_definitions_length , & ast -> meta_definitions_capacity , "__illumos__" ,
205+ #ifdef __illumos__
206+ cross_compile_for == CROSS_COMPILE_NONE
207+ #else
208+ false
209+ #endif
210+ );
211+
212+ // __haiku__
213+ meta_definition_add_bool (& ast -> meta_definitions , & ast -> meta_definitions_length , & ast -> meta_definitions_capacity , "__haiku__" ,
214+ #ifdef __HAIKU__
215+ cross_compile_for == CROSS_COMPILE_NONE
216+ #else
217+ false
218+ #endif
219+ );
220+
158221 unsigned short x = 0xEEFF ;
159222 if (* ((unsigned char * ) & x ) == 0xFF || cross_compile_for == CROSS_COMPILE_WINDOWS ){
160223 // Little Endian
0 commit comments