MKC_CHECK_DECL(1)
okay bestie, welcome to MKC_CHECK_DECL(1) β the manual page for mkc_check_decl β and itβs honestly giving βtiny detective for C declarationsβ energy. π
β¨
π NAME π
mkc_check_decl β checks for define, variable, function, type, member or function prototype. π
β¨ SYNOPSIS β¨
mkc_check_decl [OPTIONS] <check_type> <what> [headers...]
πΈ DESCRIPTION πΈ
okay so check_type is either define, variable, func[0-9], funcordefine[0-9], type, member or prototype. Depending on its value, mkc_check_decl checks respectively for a define, a variable, a function with the specified number of arguments (or the equivalent define in the case of funcordefine[0-9]), a data type, a member of a structure or a function prototype in the specified headers by compiling a test program. π§
headers is either a single header file or a list of headers, separated by comma. As a result, mkc_check_decl prints either 1 (success) or 0 (failure) to stdout. π
by default, temporary and cache files _mkc_<check_type>_<what>_<lheader_h>.{c,err,res} are created under the MKC_CACHEDIR directory. Here, lheader_h is the last header from the comma-separated list headers. no cap, that little detail matters. π«Ά
π OPTIONS π
-hβ display help message. iconic, honestly.-dβ delete cache and temporary files. clean girl behavior. π§Ή-Dβ delete cache files. cache-only cleanup, periodt.
π ENVIRONMENT π
CCβ compiler. By defaultccis used.CPPFLAGS,CFLAGSβ options passed to the compiler, for example-Ifor additional directories that contain header files. πMKC_VERBOSEβ if set to1, verbose messages are output tostderr.MKC_SHOW_CACHEDβ if set to1andMKC_VERBOSEis set to1, cached results are output tostderr. πMKC_COMMON_HEADERSβ list of header files to add to.ctest program.MKC_CACHEDIRβ directory where temporary and cache files are created. If unset, they are created in a current directory.MKC_NOCACHEβ all results are cached unlessMKC_NOCACHEvariable is set to1.MKC_DELETE_TMPFILESβ if set to1, temporary files are removed. π§Ή
π¦ EXAMPLES π¦
mkc_check_decl define __GNUC__
mkc_check_decl define RTLD_LAZY dlfcn.h
mkc_check_decl define FTS_W sys/types.h,sys/stat.h,fts.h
mkc_check_decl variable sys_errlist errno.h
mkc_check_decl variable __malloc_hook malloc.h
mkc_check_decl func3 poll poll.h
mkc_check_decl func2 fgetln stdio.h
mkc_check_decl type mbstate_t wchar.h
mkc_check_decl type long-long
mkc_check_decl member tm.tm_isdst time.h
mkc_check_decl member ifreq.ifr_addr.sa_len net/if.h
mkc_check_decl member struct-stat.st_mtimespec sys/stat.h
mkc_check_decl prototype 'int connect(int,const struct sockaddr*,socklen_t)' sys/socket.h
mkc_check_decl prototype 'int connect(int,struct sockaddr*,socklen_t)' sys/socket.h
π§ͺ C FILE CONTENT π§ͺ
these are the exact C file content blocks, bestie β WHAT is doing main character energy in every single one. π
define
#include <header1.h>
...
#include <headerN.h>
#if defined(WHAT)
int func(void)
{
return 0;
}
#else
#error "WHAT is not a define"
#endif
variable
#include <header1.h>
...
#include <headerN.h>
int func(void)
{
return sizeof ((WHAT)) && (&WHAT != 0);
}
func3 (example for function with 3 arguments)
#include <header1.h>
...
#include <headerN.h>
void func (void)
{
if (WHAT) return;
WHAT(0,0,0);
}
funcordefine3 (example for function/define with 3 arguments)
#include <header1.h>
...
#include <headerN.h>
void func (void)
{
WHAT(0,0,0);
}
type
#include <header1.h>
...
#include <headerN.h>
int func(void)
{
return sizeof (WHAT);
}
member (example for struct stat.st_mtimespec)
#include <sys/stat.h>
int func(void)
{
struct_stat var;
return sizeof (var.st_mtimespec);
}
prototype (example for void ttt(int,char**) function)
#include <header1.h>
...
#include <headerN.h>
void func (void);
void func2 (void);
void func (void)
{
if (ttt) return;
}
void ttt(int, char**);
void func2 (void)
{
if (ttt) return;
}
π AUTHOR π
Aleksey Cheusov <vle@gmx.net> β the icon behind this page. π
π thatβs the whole MKC_CHECK_DECL(1) page, bestie β footer date: Dec 2, 2023, manual/source tag: MKC_CHECK_DECL(1). go compile something iconic. π
π¦ where this page comes from
- alpine 3.24: mk-configure-doc 0.40.0-r1 Β· BSD-2-Clause
- arch rolling: mk-configure 0.40.3-1 Β· BSD
- opensuse-leap 16.0: mk-configure 0.39.3-bp160.1.12 Β· BSD-2-Clause AND MIT AND ISC
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms