/arg/ - arguments (user input) cc/ - C compiler related settings cc - C compiler (find_cc won't try to detect the compiler) cflags - default compile flags (find_cc won't try to detect compiler flags) ldflags - default link flags (find_cc won't try to detect link flags) ldflags_dynlib - link flags for dynamic libraries (for example -shared -dynamic) so_undefined - on some systems (OSX+clang) extra flags are needed to produce a .so that references external symbols that shall be resolved run-time (e.g. .so referencing host app symbols) argstd/ ansi - set to -ansi if that argument is supported, else to empty string pedantic - set to -pedantic if that argument is supported, else to empty string Wall - set to -Wall if that argument is supported, else to empty string std_c99 - set to -std=c99 if available, else to empty string func_attr/ unused/presents - true if the compiler accepts the "unused" attribute libs/ ldl - force -ldl lpthread - force -lpthread printf_x - force printf %x prefix printf_ptrcast - force printf %x pointer to integer cast dl-compat - prefix for dl-compat installation fstools/ cp - force shell copy command ln - force shell symlink command mv - force shell move command rm - force shell remove command mkdir - force shell mkdir command (should create all parent dirs!) ar - force shell command for handling archives ranlib - force shell command for indexing archives awk - force awk command chmodx - force shell command for marking a file executable find - force find command (for filelist functionality) sys/ target - target system (cross compilation if not empty); use with target-name target-name - name of the target system (we can't run target uname) shell - shell used for running config commands (/bin/sh -c) /internal/ filelist/ cmd - [find_filelist] command to get raw file listing (usually find or ls) method - [find_filelist] method to parse the output of internal/filelist/cmd ("word" or "line" splitting) *** The following subtrees present under both /host and /target: sys/ cross - true if target != host (we are doing cross compilation) cross_blind - true if doing cross compilation without an emulator cc/ - C compiler cc - [find_cc] the actual compiler command cflags - [find_cc] default flags to be used when compiling c sources ldflags - [find_cc] default flags to be used when linking inline - [find_inline] true if inline works varargmacro - [find_varargmacro] true if vararg macros with "x..." notation work funcmacro - [find_funcmacro] true if __func__ macros work constructor - [find_constructor] true if constructor attribute works destructor - [find_destructor] true if destructor attribute works rdynamic - [find_rdynamic] set to -rdynamic if supported by the platform or empty string fpic - [find_fpic] set to -fPIC or -fpic if supported by the platform or empty string alloca/ presents - [find_alloca] true if compiler supports alloca() _exit/ presents - [find__exit] true if compiler supports _exit() signal/ raise presents - [find_signal_raise] true if system supports raise() names SIG* presents - [find_signal_names] true if system supports the given signal terminates - [find_signal_names] true if the signal terminates the process by default std/ - standards c99/ - which c99 features work on the system longlong - [find_c99_longlong] whether long long int is supported stdc - [find_c99_stdc] __STDC_VERSION__ macro emptymacro - [find_c99_emptymacro] true if calling macros with empty arguments work variadicmacro - [find_c99_variadicmacro] true if the "..." and __VA_ARGS__ notation for variadic macros work funcmacro - [find_c99_funcmacro] true if __func__ substitutes the name of the current function stdint - [find_c99_stdint] true if and works wchar - [find_c99_wchar] true if wchar is supported bool - [find_c99_bool] true if bool is supported () inline !!! del restrict - [find_c99_restrict] true if restrict pointer qualifier presents comment - [find_c99_comment] true if // commenting works endcomma - [find_c99_endcomma] true if traling commas in enums work nonconstinit - [find_c99_nonconstinit] true if non-constant initializers are allowed init - [find_c99_init] true if designated initializers work compoundlit - [find_c99_compoundlit] true if compound literals work decl - [find_c99_decl] true if declaration and statement mixing works for - [find_c99_for] true if "for (int i = 0; i < 1; i++)" loop can be compiled divmod - [find_c99_divmod] true if negative div rounds towards 0 incomparray - [find_c99_incomparray] true if incomplete array member (at the end of a struct) works snprintf - [find_c99_snprintf] true if snprintf is available in floatfmt - [find_c99_floatfmt] true if %lf %LF %a and %A float format strings are supported posix/ - which posix features are supported libs/ ldl - [find_lib_ldl] LDFLAGS to be used to get dlopen() and friends (usually -ldl or empty) includes - [find_lib_ldl] #includes for dlopen() (usually dlfcn) LoadLibrary/* - [find_lib_LoadLibrary] icl subtree for windows LoadLibrary dl-compat - [find_lib_ldl] true if dl-compat lib is used instead of normal -ldl lpthread - [find_lib_lpthread] LDFLAGS to be used to get posix threads (usually -lpthread) lpthread-recursive - [find_lib_pthread] True if recursive thread-locking is available printf_x - [find_printf_x] find prefix for %x (empty or "0x") printf_ptrcast - [find_printf_ptrcast] find pointer to int cast for printf %x snprintf - [find_snprintf] true, if system provides snprintf snprintf_safe - [find_snprintf] true, if snprintf is safe dprintf - [find_dprintf] true, if system provides dprintf vdprintf - [find_vdprintf] true, if system provides vdprintf vsnprintf - [find_vsnprintf] true, if system provides vsnprintf ; snprintf_safe should be considered env/ - how to access environmental variables main_3arg - [find_main_3args] main() with 3 arguments, 3rd argument is the env array presents environ - [find_environ] extern char **environ presents putenv - [find_putenv] putenv() includes presents setenv - [find_setenv] setenv() includes presents types/ stdint/presents - [find_types_stdint] true, if system provides stdint.h with at least uint8_t size_t/ includes - [find_sys_size_t] include token broken - [find_sys_size_t] true if sizeof(size_t) != sizeof(void *) presents - [find_sys_size_t] type exists off_t/ includes - [find_sys_off_t] include token broken - [find_sys_off_t] true if sizeof(ofs_t) != sizeof(void *) presents - [find_sys_off_t] type exists ptrdiff_t/ includes - [find_sys_ptrdiff_t] include token broken - [find_sys_ptrdiff_t] true if sizeof(ptrdiff_t) != sizeof(void *) presents - [find_sys_ptrdiff_t] type exists proc/ fork/* - [find_proc_fork] icl subtree for fork() wait/* - [find_proc_wait] icl subtree for wait() - needs fork() and checks for proper return value _spawnvp/* - [find_proc__spawnvp] icl subtree for windows _spawnvp fs/ realpath/presents readdir/presents findnextfile/presents getcwd/presents _getcwd/presents getwd/presents mkdir/presents _mkdir/presents mkdtemp/presents parser/ expat/ldflags expat/cflags expat/presents script/ tcl/ldflags tcl/cflags tcl/presents stutter/ldflags stutter/cflags stutter/presents python/ldflags python/cflags python/presents perl/ldflags perl/cflags perl/presents mawk/ldflags mawk/cflags mawk/presents lua/ldflags lua/cflags lua/presents guile/ldflags guile/cflags guile/presents ruby/ldflags ruby/cflags ruby/presents gpmi/ldflags gpmi/cflags gpmi/presents gpmi/version - gpmi lib version gpmi/configapi - gpmi-config API version gpmi/gpmi-config - full path to gpmi-config math/ minpack/ ldflags cflags present nan/ includes ldflags cflags present isnan/ includes ldflags cflags present isinf/ includes ldflags cflags present isnormal/ includes ldflags cflags present expf/ includes ldflags cflags present logf/ includes ldflags cflags present rint/ includes ldflags cflags present round/ includes ldflags cflags present nanop/ whether NaN exists and propagates properly in operations add the result of NaN + number (should be "nan") sub the result of NaN - number (should be "nan") divide the result of NaN / number (should be "nan") multiply the result of NaN * number (should be "nan") allok true if all the above are "nan" present the test could be done if true cc/ corner cases log/*/return return value of log() on some corner cases log/*/errno errno value of log() on some corner cases io/ pipe/ presents time/ usleep/ presents Sleep/ normally windows specific presents includes gettimeofday/ presents ftime/ presents sul/ glib/ gettext/ socket/ socket/ Should be a standard feature - but see also WSASocket() includes cflags ldflags presents init_code execute this code before any network call (normally empty but is required for win32 for example) uninit_code execute this code after last network call (normally empty but is required for win32 for example) select/ wsasocket/ On win32, WSASocket() needs to be used instead of socket() in many cases includes cflags ldflags presents select/ In reality, select() has nothing to do with sockets, but fds; there may be systems supporting select() but not supporting socket() includes cflags ldflags presents poll/ Much less standard than select() includes cflags ldflags presents socketpair/ includes cflags ldflags presents af_local address family (or protocol family) to use to get a local socket pair closesocket/ on win32, this is the preferred way of closing sockets over close() on them presents fionbio/ presents whether FIONBIO with socket ioctl is used to set socket nonblocking ioctl/ ioctl call name for socket ioctl() presents whether there is a socket ioctl() at all lac/ presents if listen()-accept()-connect() is accessible (tested on IPv4/TCP) includes cflags ldflags recvsend/ presents true if recv() and send() are supported includes cflags ldflags readwrite/ presents true if read() and write() work on sockets includes cflags ldflags SHUT/ presents true if SHUT_RD, SHUT_WR and SHUT_RDWR are all accessible on the system includes cflags ldflags shutdown/ presents whether shutdown(2) is available includes cflags ldflags ntoh/ presents wheter ntohs, ntohl, htons and htonl are accessible and work includes include string for ntoh* and hton* macros userpass getpwnam presents whether getpwnam(3) is available includes getpwuid presents whether getpwuid(3) is available includes gui gtk2 presents ldflags cflags gd presents ldflags cflags fstools/ cp - [find_fstools_cp] shell command for recursive copy ln - [find_fstools_ln] shell command for symlink mv - [find_fstools_mv] shell command for move rm - [find_fstools_rm] shell command for remove mkdir - [find_fstools_mkdir] shell command for recursive mkdir ar - [find_fstools_ar] shell command for handling archives ranlib - [find_fstools_ranlib] shell command for indexing archives awk - [find_fstools_awk] name of awk executable with gsub cat - [find_fstools_cat] name of cat/type command sed - [find_fstools_sed] name of sed executable that supports s//g file - [find_fstools_file] command line for the file command (without -L) file_l - [find_fstools_file] command line for a symlink-following file command (often file -L) chmodx - [find_fstools_chmodx] shell command for marking a file executable sys/ - system specific settings emulator - default emulator program for crosscompilation tmp - temp dir; a directory where we can create directories, store outputs, even executables path_sep - path separator (normally / or \ on windows) shell_eats_backslash- whether shell interprets the \ character (in some cases this forces us to double it, especially as path_sep on windows) ext_exe - [find_uname] file name extension (suffix) for executables ext_dynlib - [find_uname] file name extension (suffix) for dynamic libraries (used with cc/ldflags_dynlib) ext_dynlib_native - [find_uname] file name extension (suffix) for dynamic libraries (used with cc/ldflags_so and cc/ldflags_dll) ext_stalib - [find_uname] file name extension (suffix) for static libraries shell - [find_shell] shell to use for running scripts shell_needs_quote - [find_shell] whether shell needs the command line quoted (may also depend on the emulator) name - name of the system (i.e. Linux, NetBSD, cygwin) class - [find_uname] system class (i.e. UNIX, win32dlc) uname - [find_uname] system's uname - don't rely on this^1 system_name - [find_uname] system's name (uname -o or uname -s or a guess) machine_name - [find_uname] machine or CPU name (uname -m or a guess) triplet - [find_triplet] the classic machine-vendor-system string with all the confusion that sorrunds it sysid - [find_sysid] machine-vendor without confusion: always two tokens separated by a dash ptrwidth - [find_sys_ptr_width] width of pointers byte_order - [find_sys_byte_order] "LSB" or "MSB" (for LSB-first or MSB-first hosts) -------------------------------------------------------------------------------- Footnotes: ^1 don't rely on sys/uname because it's acquired only when necessary. In some situation it's even impossible to get, for example for the target system in crosscompilation. Use primarily sys/class instead.