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 default cc is used.
  • CPPFLAGS, CFLAGS β€” options passed to the compiler, for example -I for additional directories that contain header files. πŸŽ€
  • MKC_VERBOSE β€” if set to 1, verbose messages are output to stderr.
  • MKC_SHOW_CACHED β€” if set to 1 and MKC_VERBOSE is set to 1, cached results are output to stderr. πŸ’–
  • MKC_COMMON_HEADERS β€” list of header files to add to .c test 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 unless MKC_NOCACHE variable is set to 1.
  • MKC_DELETE_TMPFILES β€” if set to 1, 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