* While most of SBCL is derived from the CMU CL system, many
* utilities for the build process (like this one) were written from
* scratch after the fork from CMU CL.
- *
+ *
* This software is in the public domain and is provided with
* absolutely no warranty. See the COPYING and CREDITS files for
* more information.
#include <stdio.h>
#include <sys/types.h>
-#include <sys/times.h>
+#ifdef _WIN32
+ #include <stdlib.h>
+#else
+ #include <sys/times.h>
+ #include <sys/wait.h>
+ #include <sys/ioctl.h>
+ #include <sys/termios.h>
+ #ifdef __APPLE_CC__
+ #include "../src/runtime/ppc-darwin-dlshim.h"
+ #include "../src/runtime/ppc-darwin-langinfo.h"
+ #else
+ #include <dlfcn.h>
+ #include <langinfo.h>
+ #endif
+#endif
+
#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/ioctl.h>
-#include <sys/termios.h>
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
#include <errno.h>
-#include <dlfcn.h>
#include "genesis/config.h"
defconstant(char* lisp_name, long unix_number)
{
printf("(defconstant %s %ld) ; #x%lx\n",
- lisp_name, unix_number, unix_number);
+ lisp_name, unix_number, unix_number);
}
-#define DEFERRNO(name) defconstant(#name, name)
-#define DEFSIGNAL(name) defconstant(#name, name)
+void deferrno(char* lisp_name, long unix_number)
+{
+ defconstant(lisp_name, unix_number);
+}
+
+void defsignal(char* lisp_name, long unix_number)
+{
+ defconstant(lisp_name, unix_number);
+}
int
main(int argc, char *argv[])
{
/* don't need no steenking command line arguments */
if (1 != argc) {
- fprintf(stderr, "argh! command line argument(s)\n");
- exit(1);
+ fprintf(stderr, "argh! command line argument(s)\n");
+ exit(1);
}
/* don't need no steenking hand-editing */
;;;; See the program \"grovel-headers.c\".\n\
\n\
");
-
+#ifdef _WIN32
+ printf (";;; This file is presently unused for the Windows version of sbcl.\n");
+#else
printf("(in-package \"SB!ALIEN\")\n\n");
printf (";;;flags for dlopen()\n");
-
+
defconstant ("rtld-lazy", RTLD_LAZY);
defconstant ("rtld-now", RTLD_NOW);
defconstant ("rtld-global", RTLD_GLOBAL);
-
+
printf("(in-package \"SB!UNIX\")\n\n");
+ printf(";;; langinfo\n");
+ defconstant("codeset", CODESET);
+
printf(";;; types, types, types\n");
DEFTYPE("clock-t", clock_t);
DEFTYPE("dev-t", dev_t);
defconstant("s-ifblk", S_IFBLK);
defconstant("s-ifreg", S_IFREG);
printf("\n");
-
+
defconstant("s-iflnk", S_IFLNK);
defconstant("s-ifsock", S_IFSOCK);
printf("\n");
printf(";;; error numbers\n");
- DEFERRNO(ENOENT);
- DEFERRNO(EINTR);
- DEFERRNO(EIO);
- DEFERRNO(EEXIST);
- DEFERRNO(ESPIPE);
- DEFERRNO(EWOULDBLOCK);
+ deferrno("enoent", ENOENT);
+ deferrno("eintr", EINTR);
+ deferrno("eio", EIO);
+ deferrno("eexist", EEXIST);
+ deferrno("espipe", ESPIPE);
+ deferrno("ewouldblock", EWOULDBLOCK);
printf("\n");
printf(";;; for wait3(2) in run-program.lisp\n");
printf("\n");
printf(";;; signals\n");
- DEFSIGNAL(SIGALRM);
- DEFSIGNAL(SIGBUS);
- DEFSIGNAL(SIGCHLD);
- DEFSIGNAL(SIGCONT);
+ defsignal("sigalrm", SIGALRM);
+ defsignal("sigbus", SIGBUS);
+ defsignal("sigchld", SIGCHLD);
+ defsignal("sigcont", SIGCONT);
#ifdef SIGEMT
- DEFSIGNAL(SIGEMT);
+ defsignal("sigemt", SIGEMT);
#endif
- DEFSIGNAL(SIGFPE);
- DEFSIGNAL(SIGHUP);
- DEFSIGNAL(SIGILL);
- DEFSIGNAL(SIGINT);
- DEFSIGNAL(SIGIO);
- DEFSIGNAL(SIGIOT);
- DEFSIGNAL(SIGKILL);
- DEFSIGNAL(SIGPIPE);
- DEFSIGNAL(SIGPROF);
- DEFSIGNAL(SIGQUIT);
- DEFSIGNAL(SIGSEGV);
+ defsignal("sigfpe", SIGFPE);
+ defsignal("sighup", SIGHUP);
+ defsignal("sigill", SIGILL);
+ defsignal("sigint", SIGINT);
+ defsignal("sigio", SIGIO);
+ defsignal("sigiot", SIGIOT);
+ defsignal("sigkill", SIGKILL);
+ defsignal("sigpipe", SIGPIPE);
+ defsignal("sigprof", SIGPROF);
+ defsignal("sigquit", SIGQUIT);
+ defsignal("sigsegv", SIGSEGV);
#if ((defined LISP_FEATURE_LINUX) && (defined LISP_FEATURE_X86))
- DEFSIGNAL(SIGSTKFLT);
+ defsignal("sigstkflt", SIGSTKFLT);
#endif
- DEFSIGNAL(SIGSTOP);
-#if (!((defined LISP_FEATURE_LINUX) && (defined LISP_FEATURE_X86)))
- DEFSIGNAL(SIGSYS);
+ defsignal("sigstop", SIGSTOP);
+#if (!((defined LISP_FEATURE_LINUX) && (defined LISP_FEATURE_X86)))
+ defsignal("sigsys", SIGSYS);
#endif
- DEFSIGNAL(SIGTERM);
- DEFSIGNAL(SIGTRAP);
- DEFSIGNAL(SIGTSTP);
- DEFSIGNAL(SIGTTIN);
- DEFSIGNAL(SIGTTOU);
- DEFSIGNAL(SIGURG);
- DEFSIGNAL(SIGUSR1);
- DEFSIGNAL(SIGUSR2);
- DEFSIGNAL(SIGVTALRM);
+ defsignal("sigterm", SIGTERM);
+ defsignal("sigtrap", SIGTRAP);
+ defsignal("sigtstp", SIGTSTP);
+ defsignal("sigttin", SIGTTIN);
+ defsignal("sigttou", SIGTTOU);
+ defsignal("sigurg", SIGURG);
+ defsignal("sigusr1", SIGUSR1);
+ defsignal("sigusr2", SIGUSR2);
+ defsignal("sigvtalrm", SIGVTALRM);
#ifdef LISP_FEATURE_SUNOS
- DEFSIGNAL(SIGWAITING);
+ defsignal("sigwaiting", SIGWAITING);
#endif
- DEFSIGNAL(SIGWINCH);
+ defsignal("sigwinch", SIGWINCH);
#ifndef LISP_FEATURE_HPUX
- DEFSIGNAL(SIGXCPU);
- DEFSIGNAL(SIGXFSZ);
+ defsignal("sigxcpu", SIGXCPU);
+ defsignal("sigxfsz", SIGXFSZ);
#endif
+#endif // _WIN32
return 0;
}