Merge branch 'master' of github.com:JeffBezanson/femtolisp
This commit is contained in:
commit
0aa1359a3e
|
@ -1,4 +1,5 @@
|
||||||
CC = gcc
|
CC ?= gcc
|
||||||
|
CARBON_HEADERS ?= "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/Developer/Headers"
|
||||||
|
|
||||||
NAME = flisp
|
NAME = flisp
|
||||||
SRCS = $(NAME).c builtins.c string.c equalhash.c table.c iostream.c
|
SRCS = $(NAME).c builtins.c string.c equalhash.c table.c iostream.c
|
||||||
|
@ -9,7 +10,7 @@ LIBTARGET = lib$(NAME)
|
||||||
LLTDIR = llt
|
LLTDIR = llt
|
||||||
LLT = $(LLTDIR)/libllt.a
|
LLT = $(LLTDIR)/libllt.a
|
||||||
|
|
||||||
CONFIG = -DMACOSX -DARCH_X86_64 -DBITS64 -D__CPU__=686
|
CONFIG = -DMACOSX -DARCH_X86_64 -DBITS64 -D__CPU__=686 -I$(CARBON_HEADERS)
|
||||||
FLAGS = -falign-functions -Wall -Wno-strict-aliasing -I$(LLTDIR) $(CFLAGS) -DUSE_COMPUTED_GOTO $(CONFIG)
|
FLAGS = -falign-functions -Wall -Wno-strict-aliasing -I$(LLTDIR) $(CFLAGS) -DUSE_COMPUTED_GOTO $(CONFIG)
|
||||||
LIBFILES = $(LLT)
|
LIBFILES = $(LLT)
|
||||||
LIBS = $(LIBFILES) -lm -framework ApplicationServices
|
LIBS = $(LIBFILES) -lm -framework ApplicationServices
|
||||||
|
|
2
flisp.c
2
flisp.c
|
@ -2304,6 +2304,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
|
@ -27,6 +27,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) {
|
||||||
|
@ -34,6 +37,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>
|
||||||
|
@ -113,8 +119,8 @@ char *get_exename(char *buf, size_t size)
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
#elif defined(MACOSX)
|
#elif defined(MACOSX)
|
||||||
#include "/Developer/Headers/FlatCarbon/Processes.h"
|
#include <FlatCarbon/Processes.h>
|
||||||
#include "/Developer/Headers/FlatCarbon/Files.h"
|
#include <FlatCarbon/Files.h>
|
||||||
char *get_exename(char *buf, size_t size)
|
char *get_exename(char *buf, size_t size)
|
||||||
{
|
{
|
||||||
ProcessSerialNumber PSN;
|
ProcessSerialNumber PSN;
|
||||||
|
|
13
llt/dtypes.h
13
llt/dtypes.h
|
@ -21,13 +21,23 @@
|
||||||
# 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)
|
||||||
#ifndef __SIZEOF_POINTER__
|
#ifndef __SIZEOF_POINTER__
|
||||||
# error "__SIZEOF_POINTER__ undefined"
|
# error "__SIZEOF_POINTER__ undefined"
|
||||||
#endif
|
#endif
|
||||||
|
@ -38,6 +48,7 @@
|
||||||
#else
|
#else
|
||||||
# error "this is one weird machine"
|
# error "this is one weird machine"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
|
@ -59,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