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"));
|
||||
#elif defined(MACOSX)
|
||||
set(symbol("*os-name*"), symbol("macos"));
|
||||
#elif defined(OPENBSD)
|
||||
set(symbol("*os-name*"), symbol("openbsd"));
|
||||
#else
|
||||
set(symbol("*os-name*"), symbol("unknown"));
|
||||
#endif
|
||||
|
|
4
flmain.c
4
flmain.c
|
@ -38,6 +38,9 @@ int main(int argc, char *argv[])
|
|||
fl_init(512*1024);
|
||||
|
||||
fname_buf[0] = '\0';
|
||||
#ifdef INITFILE
|
||||
strcat(fname_buf, INITFILE);
|
||||
#else
|
||||
value_t str = symbol_value(symbol("*install-dir*"));
|
||||
char *exedir = (str == UNBOUND ? NULL : cvalue_data(str));
|
||||
if (exedir != NULL) {
|
||||
|
@ -45,6 +48,7 @@ int main(int argc, char *argv[])
|
|||
strcat(fname_buf, PATHSEPSTRING);
|
||||
}
|
||||
strcat(fname_buf, "flisp.boot");
|
||||
#endif
|
||||
|
||||
value_t args[2];
|
||||
fl_gc_handle(&args[0]);
|
||||
|
|
|
@ -89,6 +89,12 @@ char *get_exename(char *buf, size_t size)
|
|||
|
||||
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__)
|
||||
#include <sys/types.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
|
11
llt/dtypes.h
11
llt/dtypes.h
|
@ -21,12 +21,21 @@
|
|||
# define LINUX
|
||||
#elif defined(__APPLE__) && defined(__MACH__)
|
||||
# define MACOSX
|
||||
#elif defined(__OpenBSD__)
|
||||
# define OPENBSD
|
||||
#elif defined(_WIN32)
|
||||
# define WIN32
|
||||
#else
|
||||
# error "unknown platform"
|
||||
#endif
|
||||
|
||||
#if defined(OPENBSD)
|
||||
#if defined(__x86_64__)
|
||||
# define __SIZEOF_POINTER__ 8
|
||||
#else
|
||||
# define __SIZEOF_POINTER__ 4
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined (BITS32) && !defined (BITS64)
|
||||
#ifndef __SIZEOF_POINTER__
|
||||
|
@ -61,7 +70,7 @@
|
|||
# define BIG_ENDIAN __BIG_ENDIAN
|
||||
# define PDP_ENDIAN __PDP_ENDIAN
|
||||
# define BYTE_ORDER __BYTE_ORDER
|
||||
#elif defined(MACOSX)
|
||||
#elif defined(MACOSX) || defined(OPENBSD)
|
||||
# include <machine/endian.h>
|
||||
# define __LITTLE_ENDIAN LITTLE_ENDIAN
|
||||
# define __BIG_ENDIAN BIG_ENDIAN
|
||||
|
|
|
@ -106,7 +106,7 @@ void timestring(double seconds, char *buffer, size_t len)
|
|||
#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);
|
||||
double parsetime(const char *str)
|
||||
{
|
||||
|
|
|
@ -25,9 +25,9 @@
|
|||
#include <malloc.h>
|
||||
#define snprintf _snprintf
|
||||
#else
|
||||
#ifndef __FreeBSD__
|
||||
#if !defined(__FreeBSD__) && !defined(__OpenBSD__)
|
||||
#include <alloca.h>
|
||||
#endif /* __FreeBSD__ */
|
||||
#endif /* __FreeBSD__ && __OpenBSD__ */
|
||||
#endif
|
||||
#include <assert.h>
|
||||
|
||||
|
|
Loading…
Reference in New Issue