1
0
mirror of https://github.com/janet-lang/janet synced 2025-02-17 17:20:01 +00:00

More small changes to help with cross compilation

via makefile. Add option to turn off built in
getline via janetconf.
This commit is contained in:
Calvin Rose 2020-06-27 12:39:16 -05:00
parent 8b96289e2f
commit 9c5e97144d
6 changed files with 30 additions and 17 deletions

View File

@ -38,8 +38,15 @@ PKG_CONFIG_PATH?=$(LIBDIR)/pkgconfig
DEBUGGER=gdb DEBUGGER=gdb
SONAME_SETTER=-Wl,-soname, SONAME_SETTER=-Wl,-soname,
CFLAGS:=$(CFLAGS) -std=c99 -Wall -Wextra -Isrc/include -Isrc/conf -fPIC -O2 -fvisibility=hidden # For cross compilation
LDFLAGS:=$(LDFLAGS) -rdynamic HOSTCC?=$(CC)
HOSTAR?=$(AR)
CFLAGS?=-fPIC -O2
LDFLAGS?=-rdynamic
COMMON_CFLAGS:=-std=c99 -Wall -Wextra -Isrc/include -Isrc/conf -fvisibility=hidden
BOOT_CFLAGS:=-DJANET_BOOTSTRAP -DJANET_BUILD=$(JANET_BUILD) -O0 -g $(COMMON_CFLAGS)
BUILD_CFLAGS:=$(CFLAGS) $(COMMON_CFLAGS)
# For installation # For installation
LDCONFIG:=ldconfig "$(LIBDIR)" LDCONFIG:=ldconfig "$(LIBDIR)"
@ -131,7 +138,6 @@ JANET_BOOT_HEADERS=src/boot/tests.h
########################################################## ##########################################################
JANET_BOOT_OBJECTS=$(patsubst src/%.c,build/%.boot.o,$(JANET_CORE_SOURCES) $(JANET_BOOT_SOURCES)) JANET_BOOT_OBJECTS=$(patsubst src/%.c,build/%.boot.o,$(JANET_CORE_SOURCES) $(JANET_BOOT_SOURCES))
BOOT_CFLAGS:=-DJANET_BOOTSTRAP -DJANET_BUILD=$(JANET_BUILD) $(CFLAGS)
$(JANET_BOOT_OBJECTS): $(JANET_BOOT_HEADERS) $(JANET_BOOT_OBJECTS): $(JANET_BOOT_HEADERS)
@ -161,24 +167,26 @@ build/janetconf.h: src/conf/janetconf.h
cp $< $@ cp $< $@
build/janet.o: build/janet.c build/janet.h build/janetconf.h build/janet.o: build/janet.c build/janet.h build/janetconf.h
$(CC) $(CFLAGS) -c $< -o $@ -I build $(HOSTCC) $(BUILD_CFLAGS) -c $< -o $@ -I build
build/shell.o: build/shell.c build/janet.h build/janetconf.h build/shell.o: build/shell.c build/janet.h build/janetconf.h
$(CC) $(CFLAGS) -c $< -o $@ -I build $(HOSTCC) $(BUILD_CFLAGS) -c $< -o $@ -I build
$(JANET_TARGET): build/janet.o build/shell.o $(JANET_TARGET): build/janet.o build/shell.o
$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ $(CLIBS) $(HOSTCC) $(LDFLAGS) $(BUILD_CFLAGS) -o $@ $^ $(CLIBS)
$(JANET_LIBRARY): build/janet.o build/shell.o $(JANET_LIBRARY): build/janet.o build/shell.o
$(CC) $(LDFLAGS) $(CFLAGS) $(SONAME_SETTER)$(SONAME) -shared -o $@ $^ $(CLIBS) $(HOSTCC) $(LDFLAGS) $(BUILD_CFLAGS) $(SONAME_SETTER)$(SONAME) -shared -o $@ $^ $(CLIBS)
$(JANET_STATIC_LIBRARY): build/janet.o build/shell.o $(JANET_STATIC_LIBRARY): build/janet.o build/shell.o
$(AR) rcs $@ $^ $(HOSTAR) rcs $@ $^
################### ###################
##### Testing ##### ##### Testing #####
################### ###################
# Testing assumes HOSTCC=CC
TEST_SCRIPTS=$(wildcard test/suite*.janet) TEST_SCRIPTS=$(wildcard test/suite*.janet)
repl: $(JANET_TARGET) repl: $(JANET_TARGET)

View File

@ -68,4 +68,7 @@
/* #define JANET_OS_NAME my-custom-os */ /* #define JANET_OS_NAME my-custom-os */
/* #define JANET_ARCH_NAME pdp-8 */ /* #define JANET_ARCH_NAME pdp-8 */
/* Main client settings, does not affect library code */
/* #define JANET_SIMPLE_GETLINE */
#endif /* end of include guard: JANETCONF_H */ #endif /* end of include guard: JANETCONF_H */

View File

@ -104,7 +104,7 @@ enum JanetInstructionType janet_instructions[JOP_INSTRUCTION_COUNT] = {
}; };
/* Verify some bytecode */ /* Verify some bytecode */
int32_t janet_verify(JanetFuncDef *def) { int janet_verify(JanetFuncDef *def) {
int vargs = !!(def->flags & JANET_FUNCDEF_FLAG_VARARG); int vargs = !!(def->flags & JANET_FUNCDEF_FLAG_VARARG);
int32_t i; int32_t i;
int32_t maxslot = def->arity + vargs; int32_t maxslot = def->arity + vargs;

View File

@ -404,9 +404,11 @@ static Janet janet_core_gcsetinterval(int32_t argc, Janet *argv) {
janet_fixarity(argc, 1); janet_fixarity(argc, 1);
size_t s = janet_getsize(argv, 0); size_t s = janet_getsize(argv, 0);
/* limit interval to 48 bits */ /* limit interval to 48 bits */
if (s > 0xFFFFFFFFFFFFUl) { #ifdef JANET_64
if (s >> 48) {
janet_panic("interval too large"); janet_panic("interval too large");
} }
#endif
janet_vm_gc_interval = s; janet_vm_gc_interval = s;
return janet_wrap_nil(); return janet_wrap_nil();
} }

View File

@ -127,6 +127,12 @@ extern "C" {
#define JANET_LITTLE_ENDIAN 1 #define JANET_LITTLE_ENDIAN 1
#endif #endif
/* Limits for converting doubles to 64 bit integers */
#define JANET_INTMAX_DOUBLE 9007199254740991.0
#define JANET_INTMIN_DOUBLE (-9007199254740991.0)
#define JANET_INTMAX_INT64 9007199254740991
#define JANET_INTMIN_INT64 (-9007199254740991)
/* Check emscripten */ /* Check emscripten */
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
#define JANET_NO_DYNAMIC_MODULES #define JANET_NO_DYNAMIC_MODULES
@ -542,12 +548,6 @@ JANET_API Janet janet_wrap_integer(int32_t x);
#include <math.h> #include <math.h>
/* Limits for converting doubles to 64 bit integers */
#define JANET_INTMAX_DOUBLE 9007199254740991.0
#define JANET_INTMIN_DOUBLE (-9007199254740991.0)
#define JANET_INTMAX_INT64 9007199254740991
#define JANET_INTMIN_INT64 (-9007199254740991)
#define janet_u64(x) ((x).u64) #define janet_u64(x) ((x).u64)
#define JANET_NANBOX_TAGBITS 0xFFFF800000000000llu #define JANET_NANBOX_TAGBITS 0xFFFF800000000000llu

View File

@ -84,7 +84,7 @@ static void simpleline(JanetBuffer *buffer) {
} }
/* Windows */ /* Windows */
#ifdef JANET_WINDOWS #if defined(JANET_WINDOWS) || defined(JANET_SIMPLE_GETLINE)
void janet_line_init() { void janet_line_init() {
; ;