diff options
| author | Qing He <qing.he@intel.com> | 2010-08-10 13:35:21 +0800 |
|---|---|---|
| committer | Qing He <qing.he@intel.com> | 2010-08-10 15:51:59 +0800 |
| commit | f25d26de776f9927e1d2c92f031085a9b9323087 (patch) | |
| tree | 6277122cb3ed016ad04a906e7771517a1c649a57 | |
| parent | 15ecd98c5452020551472a4a7a981b0609deb537 (diff) | |
| download | poky-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>
| -rw-r--r-- | meta/packages/js/files/configure.ac | 28 | ||||
| -rw-r--r-- | meta/packages/js/files/jsautocfg.h | 104 | ||||
| -rw-r--r-- | meta/packages/js/js_1.7.0+1.8.0rc1.bb | 19 |
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 @@ | |||
| 1 | AC_INIT | ||
| 2 | |||
| 3 | AC_CHECK_SIZEOF([char]) | ||
| 4 | AC_CHECK_SIZEOF([short]) | ||
| 5 | AC_CHECK_SIZEOF([int]) | ||
| 6 | AC_CHECK_SIZEOF([int64_t]) | ||
| 7 | AC_CHECK_SIZEOF([long]) | ||
| 8 | AC_CHECK_SIZEOF([long long]) | ||
| 9 | AC_CHECK_SIZEOF([int *]) | ||
| 10 | AC_CHECK_SIZEOF([float]) | ||
| 11 | AC_CHECK_SIZEOF([double]) | ||
| 12 | |||
| 13 | AC_CHECK_ALIGNOF([char]) | ||
| 14 | AC_CHECK_ALIGNOF([short]) | ||
| 15 | AC_CHECK_ALIGNOF([int]) | ||
| 16 | AC_CHECK_ALIGNOF([int64_t]) | ||
| 17 | AC_CHECK_ALIGNOF([long]) | ||
| 18 | AC_CHECK_ALIGNOF([long long]) | ||
| 19 | AC_CHECK_ALIGNOF([int *]) | ||
| 20 | AC_CHECK_ALIGNOF([float]) | ||
| 21 | AC_CHECK_ALIGNOF([double]) | ||
| 22 | |||
| 23 | AC_C_BIGENDIAN | ||
| 24 | |||
| 25 | AC_TYPE_LONG_LONG_INT | ||
| 26 | |||
| 27 | AC_CONFIG_HEADER([conf.h]) | ||
| 28 | AC_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 |
| 6 | LICENSE = "MPL1.1 | GPLv2+ | LGPLv2.1+" | 6 | LICENSE = "MPL1.1 | GPLv2+ | LGPLv2.1+" |
| 7 | LIC_FILES_CHKSUM = "file://jsapi.c;beginline=4;endline=39;md5=347c6bbf4fb4547de1fa5ad830030063" | 7 | LIC_FILES_CHKSUM = "file://jsapi.c;beginline=4;endline=39;md5=347c6bbf4fb4547de1fa5ad830030063" |
| 8 | PR = "r0" | 8 | PR = "r1" |
| 9 | 9 | ||
| 10 | SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz \ | 10 | SRC_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 | ||
| 16 | S = "${WORKDIR}/js/src" | 17 | S = "${WORKDIR}/js/src" |
| 17 | 18 | ||
| 19 | # use local autoconf script to generate a usable jsautocfg.h | ||
| 20 | # don't bother with automake | ||
| 21 | inherit autotools | ||
| 22 | |||
| 23 | do_configure_prepend() { | ||
| 24 | cp -f ${WORKDIR}/configure.ac ${S} | ||
| 25 | cp -f ${WORKDIR}/jsautocfg.h ${S} | ||
| 26 | } | ||
| 27 | |||
| 18 | EXTRA_OEMAKE = "'CC=${CC}' 'LD=${LD}' 'XCFLAGS=${CFLAGS}' 'XLDFLAGS=${LDFLAGS} -Wl,-soname=libjs' \ | 28 | EXTRA_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 | ||
| 21 | PARALLEL_MAKE = "" | 31 | PARALLEL_MAKE = "" |
| 22 | 32 | ||
| 23 | # XXX: this is only guaranteed to work for i386 targets! | ||
| 24 | do_compile_prepend() { | ||
| 25 | cp ${WORKDIR}/jsautocfg.h ${S}/ | ||
| 26 | } | ||
| 27 | |||
| 28 | do_compile() { | 33 | do_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 | } |
