|
1 | 1 | # |
2 | 2 | # QuickJS Javascript Engine |
3 | 3 | # |
4 | | -# Copyright (c) 2017-2019 Fabrice Bellard |
5 | | -# Copyright (c) 2017-2019 Charlie Gordon |
| 4 | +# Copyright (c) 2017-2020 Fabrice Bellard |
| 5 | +# Copyright (c) 2017-2020 Charlie Gordon |
6 | 6 | # |
7 | 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy |
8 | 8 | # of this software and associated documentation files (the "Software"), to deal |
@@ -47,6 +47,8 @@ prefix=/usr/local |
47 | 47 | #CONFIG_PROFILE=y |
48 | 48 | # use address sanitizer |
49 | 49 | #CONFIG_ASAN=y |
| 50 | +# include the code for BigInt/BigFloat/BigDecimal and math mode |
| 51 | +CONFIG_BIGNUM=y |
50 | 52 |
|
51 | 53 | OBJDIR=.obj |
52 | 54 |
|
@@ -94,6 +96,9 @@ ifdef CONFIG_WERROR |
94 | 96 | CFLAGS+=-Werror |
95 | 97 | endif |
96 | 98 | DEFINES:=-D_GNU_SOURCE -DCONFIG_VERSION=\"$(shell cat VERSION)\" |
| 99 | +ifdef CONFIG_BIGNUM |
| 100 | +DEFINES+=-DCONFIG_BIGNUM |
| 101 | +endif |
97 | 102 | CFLAGS+=$(DEFINES) |
98 | 103 | CFLAGS_DEBUG=$(CFLAGS) -O0 |
99 | 104 | CFLAGS_SMALL=$(CFLAGS) -Os |
@@ -153,9 +158,13 @@ endif |
153 | 158 |
|
154 | 159 | all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS) |
155 | 160 |
|
156 | | -QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDIR)/libregexp.o $(OBJDIR)/libunicode.o $(OBJDIR)/libbf.o $(OBJDIR)/cutils.o $(OBJDIR)/quickjs-libc.o |
| 161 | +QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDIR)/libregexp.o $(OBJDIR)/libunicode.o $(OBJDIR)/cutils.o $(OBJDIR)/quickjs-libc.o |
157 | 162 |
|
158 | | -QJS_OBJS=$(OBJDIR)/qjs.o $(OBJDIR)/repl.o $(OBJDIR)/qjscalc.o $(QJS_LIB_OBJS) |
| 163 | +QJS_OBJS=$(OBJDIR)/qjs.o $(OBJDIR)/repl.o $(QJS_LIB_OBJS) |
| 164 | +ifdef CONFIG_BIGNUM |
| 165 | +QJS_LIB_OBJS+=$(OBJDIR)/libbf.o |
| 166 | +QJS_OBJS+=$(OBJDIR)/qjscalc.o |
| 167 | +endif |
159 | 168 |
|
160 | 169 | LIBS=-lm |
161 | 170 | ifndef CONFIG_WIN32 |
@@ -215,7 +224,7 @@ libquickjs.a: $(patsubst %.o, %.nolto.o, $(QJS_LIB_OBJS)) |
215 | 224 | $(AR) rcs $@ $^ |
216 | 225 | endif # CONFIG_LTO |
217 | 226 |
|
218 | | -repl.c: $(QJSC) repl.js |
| 227 | +repl.c: $(QJSC) repl.js |
219 | 228 | $(QJSC) -c -o $@ -m repl.js |
220 | 229 |
|
221 | 230 | qjscalc.c: $(QJSC) qjscalc.js |
@@ -301,7 +310,10 @@ endif |
301 | 310 | HELLO_SRCS=examples/hello.js |
302 | 311 | HELLO_OPTS=-fno-string-normalize -fno-map -fno-promise -fno-typedarray \ |
303 | 312 | -fno-typedarray -fno-regexp -fno-json -fno-eval -fno-proxy \ |
304 | | - -fno-date -fno-module-loader -fno-bigint |
| 313 | + -fno-date -fno-module-loader |
| 314 | +ifdef CONFIG_BIGNUM |
| 315 | +HELLO_OPTS+=-fno-bigint |
| 316 | +endif |
305 | 317 |
|
306 | 318 | hello.c: $(QJSC) $(HELLO_SRCS) |
307 | 319 | $(QJSC) -e $(HELLO_OPTS) -o $@ $(HELLO_SRCS) |
@@ -372,20 +384,30 @@ test: qjs |
372 | 384 | ./qjs tests/test_loop.js |
373 | 385 | ./qjs tests/test_std.js |
374 | 386 | ifndef CONFIG_DARWIN |
| 387 | +ifdef CONFIG_BIGNUM |
375 | 388 | ./qjs --bignum tests/test_bjson.js |
| 389 | +else |
| 390 | + ./qjs tests/test_bjson.js |
| 391 | +endif |
376 | 392 | ./qjs examples/test_point.js |
377 | 393 | endif |
| 394 | +ifdef CONFIG_BIGNUM |
| 395 | + ./qjs --bignum tests/test_op_overloading.js |
378 | 396 | ./qjs --bignum tests/test_bignum.js |
379 | 397 | ./qjs --qjscalc tests/test_qjscalc.js |
| 398 | +endif |
380 | 399 | ifdef CONFIG_M32 |
381 | 400 | ./qjs32 tests/test_closure.js |
382 | 401 | ./qjs32 tests/test_op.js |
383 | 402 | ./qjs32 tests/test_builtin.js |
384 | 403 | ./qjs32 tests/test_loop.js |
385 | 404 | ./qjs32 tests/test_std.js |
| 405 | +ifdef CONFIG_BIGNUM |
| 406 | + ./qjs32 --bignum tests/test_op_overloading.js |
386 | 407 | ./qjs32 --bignum tests/test_bignum.js |
387 | 408 | ./qjs32 --qjscalc tests/test_qjscalc.js |
388 | 409 | endif |
| 410 | +endif |
389 | 411 |
|
390 | 412 | stats: qjs qjs32 |
391 | 413 | ./qjs -qd |
|
0 commit comments