@@ -1,30 +1,28 @@ ---- kcore/def.h.m → ---- ~ lexi hale ---- this file gathers information on the environment it's ---- being compiled in, setting macros that other headers ---- need. it will be emitted as . ---- vim: ft=c +dnl kcore/def.h.m → +dnl ~ lexi hale +dnl this file gathers information on the environment it's +dnl being compiled in, setting macros that other headers +dnl need. it will be emitted as . +dnl vim: ft=c #ifndef KIdef #define KIdef +define(`def',`#define $1 $2') + +ifdef(`atom_target_bits',` + define(`target',`atom_target_arch.atom_target_os.atom_target_bits') + def(KVbits,atom_target_bits)',` + define(`target',atom_target_arch.atom_target_os)') + +def(KVtarget,target) +def(KVos,atom_target_os) +def(KVarch,atom_target_arch) -[ifdef atom_target_bits] - [define target: [atom_target_arch].[atom_target_os].[atom_target_bits]] - #define KVbits [atom_target_bits] -[else] - [define target: [atom_target_arch].[atom_target_os]] -[endif] -#define KVtarget [target] -#define KVos [atom_target_os] -#define KVarch [atom_target_arch] -[if [target_unix] == yes] - #define KFenv_unix - #define KFenv_posix -[else] - [if [target_posix] == yes] - #define KFenv_posix - [endif] -[endif] +ifelse(target_unix,`yes', + `def(`KFenv_unix',) + def(`KFenv_posix',)',` + ifelse(target_posix,`yes', + `def(KFenv_posix)')') #define Kpragma(p) _Pragma(#p) #if defined(__GNUC__) || defined(__clang__) # define Kerror(msg) Kpragma(GCC error #msg)