2cbd0590cd
this is heavily stripped down.
50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
#include <ansidecl.h>
|
|
|
|
#ifdef __STDC__
|
|
#include <stddef.h>
|
|
#define clock_t unsigned long
|
|
#define DEF(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (ARGS);
|
|
#define DEFFUNC(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (ARGS);
|
|
#else
|
|
#define void int
|
|
#define size_t unsigned long
|
|
#define clock_t unsigned long
|
|
#define DEF(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME ();
|
|
#define DEFFUNC(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME ();
|
|
#endif
|
|
|
|
#define DEFVAR(NAME,DECL,USE) extern DECL;
|
|
|
|
#define NOTHING /*nothing*/
|
|
|
|
#include "alloca-conf.h"
|
|
#include "functions.def"
|
|
|
|
/* Always use our: getopt.o getopt1.o obstack.o spaces.o */
|
|
|
|
int
|
|
main (argc, argv)
|
|
int argc; char **argv;
|
|
{
|
|
|
|
/* Create a dummy function call for each DEF-defined function. */
|
|
|
|
#undef DEF
|
|
#undef DEFVAR
|
|
#undef DEFFUNC
|
|
#undef AND
|
|
#define AND = 0;
|
|
/* ARGS expands into a set of declaration. NAME ARG_LIST expands
|
|
info a function call that uses those variables as actual parameters.
|
|
If the function has been DEF'ed correctly, we can pass the right
|
|
number and types of parameters, which is nice. (E.g. gcc may
|
|
otherwise complain about the wrong number of parameters to certain
|
|
builtins.) */
|
|
#define DEF(NAME, RETURN_TYPE, ARG_LIST, ARGS) { ARGS; NAME ARG_LIST; }
|
|
#define DEFVAR(NAME, DECL, USE) { USE; }
|
|
#define DEFFUNC(NAME, RETURN_TYPE, ARG_LIST, ARGS) { ARGS; NAME ARG_LIST; }
|
|
#include "functions.def"
|
|
|
|
return (0);
|
|
}
|