Line | |
---|
1 | ;;;; numbers.setup -*- Scheme -*- |
---|
2 | |
---|
3 | ;; The -std=c99 option is needed to avoid surprising FP behaviour in |
---|
4 | ;; bignum->flonum on x86, due to extended FP register usage. Go |
---|
5 | ;; figure. (GCC's -fexcess-precision=standard, which also works, is |
---|
6 | ;; not portable to other compilers, and older GCCs don't support it) |
---|
7 | ;; (compile -C -std=c99 -C -D_POSIX_SOURCE -s -O3 numbers.scm -j numbers) |
---|
8 | |
---|
9 | ;; Okay, that sounded better than it turned out to be in practice: |
---|
10 | ;; There seems to be no combination of feature test macros that |
---|
11 | ;; enable strlcat in the BSDs while enabling setjmp in Linux. |
---|
12 | (define maybe-precision-fix |
---|
13 | (if (try-compile "" cflags: "-c -fexcess-precision=standard") |
---|
14 | '(-C -fexcess-precision=standard) '())) |
---|
15 | |
---|
16 | (compile ,@maybe-precision-fix -s -O3 numbers.scm -j numbers) |
---|
17 | |
---|
18 | (compile -s -O3 numbers.import.scm) |
---|
19 | |
---|
20 | (install-extension |
---|
21 | 'numbers |
---|
22 | `("numbers.so" "numbers.import.so" "numbers-syntax.scm" |
---|
23 | ;; The types database uses syntax unsupported by 4.7.0 |
---|
24 | ,@(if #f '("numbers.types") '())) |
---|
25 | `((version "4.4"))) |
---|
Note: See
TracBrowser
for help on using the repository browser.