|
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