Merge pull request #8 from jturner/master
Adds support for OpenBSD and INITFILE define
This commit is contained in:
commit
6327453895
2
flisp.c
2
flisp.c
|
@ -2303,6 +2303,8 @@ static void lisp_init(size_t initial_heapsize)
|
||||||
set(symbol("*os-name*"), symbol("win32"));
|
set(symbol("*os-name*"), symbol("win32"));
|
||||||
#elif defined(MACOSX)
|
#elif defined(MACOSX)
|
||||||
set(symbol("*os-name*"), symbol("macos"));
|
set(symbol("*os-name*"), symbol("macos"));
|
||||||
|
#elif defined(OPENBSD)
|
||||||
|
set(symbol("*os-name*"), symbol("openbsd"));
|
||||||
#else
|
#else
|
||||||
set(symbol("*os-name*"), symbol("unknown"));
|
set(symbol("*os-name*"), symbol("unknown"));
|
||||||
#endif
|
#endif
|
||||||
|
|
4
flmain.c
4
flmain.c
|
@ -38,6 +38,9 @@ int main(int argc, char *argv[])
|
||||||
fl_init(512*1024);
|
fl_init(512*1024);
|
||||||
|
|
||||||
fname_buf[0] = '\0';
|
fname_buf[0] = '\0';
|
||||||
|
#ifdef INITFILE
|
||||||
|
strcat(fname_buf, INITFILE);
|
||||||
|
#else
|
||||||
value_t str = symbol_value(symbol("*install-dir*"));
|
value_t str = symbol_value(symbol("*install-dir*"));
|
||||||
char *exedir = (str == UNBOUND ? NULL : cvalue_data(str));
|
char *exedir = (str == UNBOUND ? NULL : cvalue_data(str));
|
||||||
if (exedir != NULL) {
|
if (exedir != NULL) {
|
||||||
|
@ -45,6 +48,7 @@ int main(int argc, char *argv[])
|
||||||
strcat(fname_buf, PATHSEPSTRING);
|
strcat(fname_buf, PATHSEPSTRING);
|
||||||
}
|
}
|
||||||
strcat(fname_buf, "flisp.boot");
|
strcat(fname_buf, "flisp.boot");
|
||||||
|
#endif
|
||||||
|
|
||||||
value_t args[2];
|
value_t args[2];
|
||||||
fl_gc_handle(&args[0]);
|
fl_gc_handle(&args[0]);
|
||||||
|
|
|
@ -89,6 +89,12 @@ char *get_exename(char *buf, size_t size)
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
#elif defined(OPENBSD)
|
||||||
|
char *get_exename(char *buf, size_t size)
|
||||||
|
{
|
||||||
|
/* OpenBSD currently has no way of determining a processes pathname */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
#elif defined(__FreeBSD__)
|
#elif defined(__FreeBSD__)
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
|
|
11
llt/dtypes.h
11
llt/dtypes.h
|
@ -21,12 +21,21 @@
|
||||||
# define LINUX
|
# define LINUX
|
||||||
#elif defined(__APPLE__) && defined(__MACH__)
|
#elif defined(__APPLE__) && defined(__MACH__)
|
||||||
# define MACOSX
|
# define MACOSX
|
||||||
|
#elif defined(__OpenBSD__)
|
||||||
|
# define OPENBSD
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
# define WIN32
|
# define WIN32
|
||||||
#else
|
#else
|
||||||
# error "unknown platform"
|
# error "unknown platform"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(OPENBSD)
|
||||||
|
#if defined(__x86_64__)
|
||||||
|
# define __SIZEOF_POINTER__ 8
|
||||||
|
#else
|
||||||
|
# define __SIZEOF_POINTER__ 4
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined (BITS32) && !defined (BITS64)
|
#if !defined (BITS32) && !defined (BITS64)
|
||||||
#ifndef __SIZEOF_POINTER__
|
#ifndef __SIZEOF_POINTER__
|
||||||
|
@ -61,7 +70,7 @@
|
||||||
# define BIG_ENDIAN __BIG_ENDIAN
|
# define BIG_ENDIAN __BIG_ENDIAN
|
||||||
# define PDP_ENDIAN __PDP_ENDIAN
|
# define PDP_ENDIAN __PDP_ENDIAN
|
||||||
# define BYTE_ORDER __BYTE_ORDER
|
# define BYTE_ORDER __BYTE_ORDER
|
||||||
#elif defined(MACOSX)
|
#elif defined(MACOSX) || defined(OPENBSD)
|
||||||
# include <machine/endian.h>
|
# include <machine/endian.h>
|
||||||
# define __LITTLE_ENDIAN LITTLE_ENDIAN
|
# define __LITTLE_ENDIAN LITTLE_ENDIAN
|
||||||
# define __BIG_ENDIAN BIG_ENDIAN
|
# define __BIG_ENDIAN BIG_ENDIAN
|
||||||
|
|
|
@ -106,7 +106,7 @@ void timestring(double seconds, char *buffer, size_t len)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(LINUX) || defined(MACOSX)
|
#if defined(LINUX) || defined(MACOSX) || defined(OPENBSD)
|
||||||
extern char *strptime(const char *s, const char *format, struct tm *tm);
|
extern char *strptime(const char *s, const char *format, struct tm *tm);
|
||||||
double parsetime(const char *str)
|
double parsetime(const char *str)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,9 +25,9 @@
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#define snprintf _snprintf
|
#define snprintf _snprintf
|
||||||
#else
|
#else
|
||||||
#ifndef __FreeBSD__
|
#if !defined(__FreeBSD__) && !defined(__OpenBSD__)
|
||||||
#include <alloca.h>
|
#include <alloca.h>
|
||||||
#endif /* __FreeBSD__ */
|
#endif /* __FreeBSD__ && __OpenBSD__ */
|
||||||
#endif
|
#endif
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue