summaryrefslogtreecommitdiffstats
path: root/meta/packages/js
diff options
context:
space:
mode:
authorQing He <qing.he@intel.com>2010-08-10 13:35:21 +0800
committerQing He <qing.he@intel.com>2010-08-10 15:51:59 +0800
commitf25d26de776f9927e1d2c92f031085a9b9323087 (patch)
tree6277122cb3ed016ad04a906e7771517a1c649a57 /meta/packages/js
parent15ecd98c5452020551472a4a7a981b0609deb537 (diff)
downloadpoky-f25d26de776f9927e1d2c92f031085a9b9323087.tar.gz
js: fix configure
use autoconf to generate jsautocfg.h instead of preparing different headers for different archs size_of and align_of tests also work under cross-compilation. Signed-off-by: Qing He <qing.he@intel.com>
Diffstat (limited to 'meta/packages/js')
-rw-r--r--meta/packages/js/files/configure.ac28
-rw-r--r--meta/packages/js/files/jsautocfg.h104
-rw-r--r--meta/packages/js/js_1.7.0+1.8.0rc1.bb19
3 files changed, 102 insertions, 49 deletions
diff --git a/meta/packages/js/files/configure.ac b/meta/packages/js/files/configure.ac
new file mode 100644
index 0000000000..41af298455
--- /dev/null
+++ b/meta/packages/js/files/configure.ac
@@ -0,0 +1,28 @@
1AC_INIT
2
3AC_CHECK_SIZEOF([char])
4AC_CHECK_SIZEOF([short])
5AC_CHECK_SIZEOF([int])
6AC_CHECK_SIZEOF([int64_t])
7AC_CHECK_SIZEOF([long])
8AC_CHECK_SIZEOF([long long])
9AC_CHECK_SIZEOF([int *])
10AC_CHECK_SIZEOF([float])
11AC_CHECK_SIZEOF([double])
12
13AC_CHECK_ALIGNOF([char])
14AC_CHECK_ALIGNOF([short])
15AC_CHECK_ALIGNOF([int])
16AC_CHECK_ALIGNOF([int64_t])
17AC_CHECK_ALIGNOF([long])
18AC_CHECK_ALIGNOF([long long])
19AC_CHECK_ALIGNOF([int *])
20AC_CHECK_ALIGNOF([float])
21AC_CHECK_ALIGNOF([double])
22
23AC_C_BIGENDIAN
24
25AC_TYPE_LONG_LONG_INT
26
27AC_CONFIG_HEADER([conf.h])
28AC_OUTPUT
diff --git a/meta/packages/js/files/jsautocfg.h b/meta/packages/js/files/jsautocfg.h
index efaf807acc..16e38bf8d6 100644
--- a/meta/packages/js/files/jsautocfg.h
+++ b/meta/packages/js/files/jsautocfg.h
@@ -3,52 +3,72 @@
3 3
4/* AUTOMATICALLY GENERATED - DO NOT EDIT */ 4/* AUTOMATICALLY GENERATED - DO NOT EDIT */
5 5
6#define IS_LITTLE_ENDIAN 1 6#include "../conf.h"
7#undef IS_BIG_ENDIAN 7
8 8#ifdef WORDS_BIGENDIAN
9#define JS_BYTES_PER_BYTE 1L 9# undef IS_LITTLE_ENDIAN
10#define JS_BYTES_PER_SHORT 2L 10# define IS_BIG_ENDIAN 1
11#define JS_BYTES_PER_INT 4L 11#else
12#define JS_BYTES_PER_INT64 8L 12# define IS_LITTLE_ENDIAN 1
13#define JS_BYTES_PER_LONG 8L 13# undef IS_BIG_ENDIAN
14#define JS_BYTES_PER_FLOAT 4L 14#endif
15#define JS_BYTES_PER_DOUBLE 8L 15
16#define JS_BYTES_PER_WORD 4L 16#define __I_LOG2(n) ( \
17#define JS_BYTES_PER_DWORD 8L 17 ((n) == 1)? 0: \
18 ((n) == 2)? 1: \
19 ((n) == 4)? 2: \
20 ((n) == 8)? 3: \
21 ((n) == 16)? 4: \
22 ((n) == 32)? 5: \
23 ((n) == 64)? 6: \
24 ((n) == 128)? 7: \
25 -1)
26
27#define JS_BYTES_PER_BYTE SIZEOF_CHAR
28#define JS_BYTES_PER_SHORT SIZEOF_SHORT
29#define JS_BYTES_PER_INT SIZEOF_INT
30#define JS_BYTES_PER_INT64 SIZEOF_INT64_T
31#define JS_BYTES_PER_LONG SIZEOF_LONG
32#define JS_BYTES_PER_FLOAT SIZEOF_FLOAT
33#define JS_BYTES_PER_DOUBLE SIZEOF_DOUBLE
34#define JS_BYTES_PER_WORD SIZEOF_LONG
35#define JS_BYTES_PER_DWORD SIZEOF_LONG_LONG
18 36
19#define JS_BITS_PER_BYTE 8L 37#define JS_BITS_PER_BYTE 8L
20#define JS_BITS_PER_SHORT 16L 38#define JS_BITS_PER_SHORT (JS_BITS_PER_BYTE * JS_BYTES_PER_SHORT)
21#define JS_BITS_PER_INT 32L 39#define JS_BITS_PER_INT (JS_BITS_PER_BYTE * JS_BYTES_PER_INT)
22#define JS_BITS_PER_INT64 64L 40#define JS_BITS_PER_INT64 (JS_BITS_PER_BYTE * JS_BYTES_PER_INT64)
23#define JS_BITS_PER_LONG 64L 41#define JS_BITS_PER_LONG (JS_BITS_PER_BYTE * JS_BYTES_PER_LONG)
24#define JS_BITS_PER_FLOAT 32L 42#define JS_BITS_PER_FLOAT (JS_BITS_PER_BYTE * JS_BYTES_PER_GLOAT)
25#define JS_BITS_PER_DOUBLE 64L 43#define JS_BITS_PER_DOUBLE (JS_BITS_PER_BYTE * JS_BYTES_PER_DOUBLE)
26#define JS_BITS_PER_WORD 32L 44#define JS_BITS_PER_WORD (JS_BITS_PER_BYTE * JS_BYTES_PER_WORD)
27 45
28#define JS_BITS_PER_BYTE_LOG2 3L 46#define JS_BITS_PER_BYTE_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
29#define JS_BITS_PER_SHORT_LOG2 4L 47#define JS_BITS_PER_SHORT_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
30#define JS_BITS_PER_INT_LOG2 5L 48#define JS_BITS_PER_INT_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
31#define JS_BITS_PER_INT64_LOG2 6L 49#define JS_BITS_PER_INT64_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
32#define JS_BITS_PER_LONG_LOG2 6L 50#define JS_BITS_PER_LONG_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
33#define JS_BITS_PER_FLOAT_LOG2 5L 51#define JS_BITS_PER_FLOAT_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
34#define JS_BITS_PER_DOUBLE_LOG2 6L 52#define JS_BITS_PER_DOUBLE_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
35#define JS_BITS_PER_WORD_LOG2 3L 53#define JS_BITS_PER_WORD_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
36 54
37#define JS_ALIGN_OF_SHORT 2L 55#define JS_ALIGN_OF_SHORT ALIGNOF_SHORT
38#define JS_ALIGN_OF_INT 4L 56#define JS_ALIGN_OF_INT ALIGNOF_INT
39#define JS_ALIGN_OF_LONG 8L 57#define JS_ALIGN_OF_LONG ALIGNOF_LONG
40#define JS_ALIGN_OF_INT64 8L 58#define JS_ALIGN_OF_INT64 ALIGNOF_INT64_T
41#define JS_ALIGN_OF_FLOAT 4L 59#define JS_ALIGN_OF_FLOAT ALIGNOF_FLOAT
42#define JS_ALIGN_OF_DOUBLE 8L 60#define JS_ALIGN_OF_DOUBLE ALIGNOF_DOUBLE
43#define JS_ALIGN_OF_POINTER 8L 61#define JS_ALIGN_OF_POINTER ALIGNOF_INT_P
44#define JS_ALIGN_OF_WORD 4L 62#define JS_ALIGN_OF_WORD ALIGNOF_LONG
45 63
46#define JS_BYTES_PER_WORD_LOG2 2L 64#define JS_BYTES_PER_WORD_LOG2 __I_LOG2(JS_BYTES_PER_WORD)
47#define JS_BYTES_PER_DWORD_LOG2 3L 65#define JS_BYTES_PER_DWORD_LOG2 __I_LOG2(JS_BYTES_PER_DWORDS)
48#define JS_WORDS_PER_DWORD_LOG2 0L 66#define JS_WORDS_PER_DWORD_LOG2 __I_LOG2(JS_BYTES_PER_DWORDS / JS_BYTES_PER_WORD)
49 67
50#define JS_STACK_GROWTH_DIRECTION (-1) 68#define JS_STACK_GROWTH_DIRECTION (-1)
51 69
52#define JS_HAVE_LONG_LONG 70#ifdef HAVE_LONG_LONG_INT
71# define JS_HAVE_LONG_LONG
72#endif
53 73
54#endif /* js_cpucfg___ */ 74#endif /* js_cpucfg___ */
diff --git a/meta/packages/js/js_1.7.0+1.8.0rc1.bb b/meta/packages/js/js_1.7.0+1.8.0rc1.bb
index 36ad11d1f6..97cba90d03 100644
--- a/meta/packages/js/js_1.7.0+1.8.0rc1.bb
+++ b/meta/packages/js/js_1.7.0+1.8.0rc1.bb
@@ -5,26 +5,31 @@ SECTION = "libs"
5# the package is licensed under either of the following 5# the package is licensed under either of the following
6LICENSE = "MPL1.1 | GPLv2+ | LGPLv2.1+" 6LICENSE = "MPL1.1 | GPLv2+ | LGPLv2.1+"
7LIC_FILES_CHKSUM = "file://jsapi.c;beginline=4;endline=39;md5=347c6bbf4fb4547de1fa5ad830030063" 7LIC_FILES_CHKSUM = "file://jsapi.c;beginline=4;endline=39;md5=347c6bbf4fb4547de1fa5ad830030063"
8PR = "r0" 8PR = "r1"
9 9
10SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz \ 10SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz \
11 file://link_with_gcc.patch \ 11 file://link_with_gcc.patch \
12 file://usepic.patch \ 12 file://usepic.patch \
13 file://buildcc.patch;striplevel=2 \ 13 file://buildcc.patch;striplevel=2 \
14 file://jsautocfg.h" 14 file://jsautocfg.h \
15 file://configure.ac"
15 16
16S = "${WORKDIR}/js/src" 17S = "${WORKDIR}/js/src"
17 18
19# use local autoconf script to generate a usable jsautocfg.h
20# don't bother with automake
21inherit autotools
22
23do_configure_prepend() {
24 cp -f ${WORKDIR}/configure.ac ${S}
25 cp -f ${WORKDIR}/jsautocfg.h ${S}
26}
27
18EXTRA_OEMAKE = "'CC=${CC}' 'LD=${LD}' 'XCFLAGS=${CFLAGS}' 'XLDFLAGS=${LDFLAGS} -Wl,-soname=libjs' \ 28EXTRA_OEMAKE = "'CC=${CC}' 'LD=${LD}' 'XCFLAGS=${CFLAGS}' 'XLDFLAGS=${LDFLAGS} -Wl,-soname=libjs' \
19 'BUILD_CC=${BUILD_CC}' 'BUILD_CFLAGS=${BUILD_CFLAGS}' 'BUILD_LDFLAGS=${BUILD_LDFLAGS}'" 29 'BUILD_CC=${BUILD_CC}' 'BUILD_CFLAGS=${BUILD_CFLAGS}' 'BUILD_LDFLAGS=${BUILD_LDFLAGS}'"
20 30
21PARALLEL_MAKE = "" 31PARALLEL_MAKE = ""
22 32
23# XXX: this is only guaranteed to work for i386 targets!
24do_compile_prepend() {
25 cp ${WORKDIR}/jsautocfg.h ${S}/
26}
27
28do_compile() { 33do_compile() {
29 oe_runmake -f Makefile.ref JS_EDITLINE=1 PREBUILT_CPUCFG=1 BUILD_OPT=1 34 oe_runmake -f Makefile.ref JS_EDITLINE=1 PREBUILT_CPUCFG=1 BUILD_OPT=1
30} 35}