summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/js
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-09-01 19:09:11 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-09-01 19:09:57 +0100
commitd62ee7eaf2ba025c3f64b2d4e10dc7cec4637612 (patch)
treef36fe3008f36ff75cbdd31b630f8f13f1f205ebb /meta/recipes-support/js
parentcaab7fc509bf27706ff3248689f6afd04225cfda (diff)
downloadpoky-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.tar.gz
packages: Separate out most of the remaining packages into recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-support/js')
-rw-r--r--meta/recipes-support/js/files/buildcc.patch20
-rw-r--r--meta/recipes-support/js/files/configure.ac28
-rw-r--r--meta/recipes-support/js/files/jsautocfg.h74
-rw-r--r--meta/recipes-support/js/files/link_with_gcc.patch13
-rw-r--r--meta/recipes-support/js/files/usepic.patch24
-rw-r--r--meta/recipes-support/js/js_1.7.0+1.8.0rc1.bb47
6 files changed, 206 insertions, 0 deletions
diff --git a/meta/recipes-support/js/files/buildcc.patch b/meta/recipes-support/js/files/buildcc.patch
new file mode 100644
index 0000000000..26eef218d6
--- /dev/null
+++ b/meta/recipes-support/js/files/buildcc.patch
@@ -0,0 +1,20 @@
1jskwgen should be built by BUILD_CC in cross environment
2
37/23/2010 - created by Qing He <qing.he@intel.com>
4
5diff -uNr js.orig//src/Makefile.ref js/src/Makefile.ref
6--- js.orig//src/Makefile.ref 2009-02-25 21:24:29.000000000 +0800
7+++ js/src/Makefile.ref 2010-07-23 13:26:51.000000000 +0800
8@@ -303,10 +303,10 @@
9
10 $(OBJDIR)/jskwgen.o: jskwgen.c jskeyword.tbl
11 @$(MAKE_OBJDIR)
12- $(CC) -o $@ -c $(CFLAGS) $<
13+ $(BUILD_CC) -o $@ -c $(BUILD_CFLAGS) $<
14
15 $(OBJDIR)/jskwgen$(HOST_BIN_SUFFIX): $(OBJDIR)/jskwgen.$(OBJ_SUFFIX)
16- $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $^
17+ $(BUILD_CC) -o $@ $(BUILD_CFLAGS) $(BUILD_LDFLAGS) $^
18
19 endif
20
diff --git a/meta/recipes-support/js/files/configure.ac b/meta/recipes-support/js/files/configure.ac
new file mode 100644
index 0000000000..41af298455
--- /dev/null
+++ b/meta/recipes-support/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/recipes-support/js/files/jsautocfg.h b/meta/recipes-support/js/files/jsautocfg.h
new file mode 100644
index 0000000000..16e38bf8d6
--- /dev/null
+++ b/meta/recipes-support/js/files/jsautocfg.h
@@ -0,0 +1,74 @@
1#ifndef js_cpucfg___
2#define js_cpucfg___
3
4/* AUTOMATICALLY GENERATED - DO NOT EDIT */
5
6#include "../conf.h"
7
8#ifdef WORDS_BIGENDIAN
9# undef IS_LITTLE_ENDIAN
10# define IS_BIG_ENDIAN 1
11#else
12# define IS_LITTLE_ENDIAN 1
13# undef IS_BIG_ENDIAN
14#endif
15
16#define __I_LOG2(n) ( \
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
36
37#define JS_BITS_PER_BYTE 8L
38#define JS_BITS_PER_SHORT (JS_BITS_PER_BYTE * JS_BYTES_PER_SHORT)
39#define JS_BITS_PER_INT (JS_BITS_PER_BYTE * JS_BYTES_PER_INT)
40#define JS_BITS_PER_INT64 (JS_BITS_PER_BYTE * JS_BYTES_PER_INT64)
41#define JS_BITS_PER_LONG (JS_BITS_PER_BYTE * JS_BYTES_PER_LONG)
42#define JS_BITS_PER_FLOAT (JS_BITS_PER_BYTE * JS_BYTES_PER_GLOAT)
43#define JS_BITS_PER_DOUBLE (JS_BITS_PER_BYTE * JS_BYTES_PER_DOUBLE)
44#define JS_BITS_PER_WORD (JS_BITS_PER_BYTE * JS_BYTES_PER_WORD)
45
46#define JS_BITS_PER_BYTE_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
47#define JS_BITS_PER_SHORT_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
48#define JS_BITS_PER_INT_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
49#define JS_BITS_PER_INT64_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
50#define JS_BITS_PER_LONG_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
51#define JS_BITS_PER_FLOAT_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
52#define JS_BITS_PER_DOUBLE_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
53#define JS_BITS_PER_WORD_LOG2 __I_LOG2(JS_BITS_PER_BYTE)
54
55#define JS_ALIGN_OF_SHORT ALIGNOF_SHORT
56#define JS_ALIGN_OF_INT ALIGNOF_INT
57#define JS_ALIGN_OF_LONG ALIGNOF_LONG
58#define JS_ALIGN_OF_INT64 ALIGNOF_INT64_T
59#define JS_ALIGN_OF_FLOAT ALIGNOF_FLOAT
60#define JS_ALIGN_OF_DOUBLE ALIGNOF_DOUBLE
61#define JS_ALIGN_OF_POINTER ALIGNOF_INT_P
62#define JS_ALIGN_OF_WORD ALIGNOF_LONG
63
64#define JS_BYTES_PER_WORD_LOG2 __I_LOG2(JS_BYTES_PER_WORD)
65#define JS_BYTES_PER_DWORD_LOG2 __I_LOG2(JS_BYTES_PER_DWORDS)
66#define JS_WORDS_PER_DWORD_LOG2 __I_LOG2(JS_BYTES_PER_DWORDS / JS_BYTES_PER_WORD)
67
68#define JS_STACK_GROWTH_DIRECTION (-1)
69
70#ifdef HAVE_LONG_LONG_INT
71# define JS_HAVE_LONG_LONG
72#endif
73
74#endif /* js_cpucfg___ */
diff --git a/meta/recipes-support/js/files/link_with_gcc.patch b/meta/recipes-support/js/files/link_with_gcc.patch
new file mode 100644
index 0000000000..d74b94f378
--- /dev/null
+++ b/meta/recipes-support/js/files/link_with_gcc.patch
@@ -0,0 +1,13 @@
1Index: src/config/Linux_All.mk
2===================================================================
3--- src.orig/config/Linux_All.mk 2005-05-10 19:53:44.000000000 +0000
4+++ src/config/Linux_All.mk 2007-06-18 17:20:05.000000000 +0000
5@@ -47,7 +47,7 @@
6 OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R
7
8 RANLIB = echo
9-MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)
10+MKSHLIB = $(CC) -shared $(XMKSHLIBOPTS)
11
12 #.c.o:
13 # $(CC) -c -MD $*.d $(CFLAGS) $<
diff --git a/meta/recipes-support/js/files/usepic.patch b/meta/recipes-support/js/files/usepic.patch
new file mode 100644
index 0000000000..ddd31be9cb
--- /dev/null
+++ b/meta/recipes-support/js/files/usepic.patch
@@ -0,0 +1,24 @@
1Mips needs -fPIC to compile properly. These tests are broken anyway as they test
2the build system architecture, not the target. This is a hack.
3
4RP 10/6/2010
5
6Index: src/config/Linux_All.mk
7===================================================================
8--- src.orig/config/Linux_All.mk 2010-06-10 22:09:43.000000000 +0100
9+++ src/config/Linux_All.mk 2010-06-10 22:09:55.000000000 +0100
10@@ -90,14 +90,10 @@
11 # Use the editline library to provide line-editing support.
12 JS_EDITLINE = 1
13
14-ifeq ($(CPU_ARCH),x86_64)
15 # Use VA_COPY() standard macro on x86-64
16 # FIXME: better use it everywhere
17 OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
18-endif
19
20-ifeq ($(CPU_ARCH),x86_64)
21 # We need PIC code for shared libraries
22 # FIXME: better patch rules.mk & fdlibm/Makefile*
23 OS_CFLAGS += -DPIC -fPIC
24-endif
diff --git a/meta/recipes-support/js/js_1.7.0+1.8.0rc1.bb b/meta/recipes-support/js/js_1.7.0+1.8.0rc1.bb
new file mode 100644
index 0000000000..97cba90d03
--- /dev/null
+++ b/meta/recipes-support/js/js_1.7.0+1.8.0rc1.bb
@@ -0,0 +1,47 @@
1DESCRIPTION = "Spidermonkey: a javascript engine written in C"
2HOMEPAGE = "http://www.mozilla.org/js/spidermonkey/"
3SECTION = "libs"
4
5# the package is licensed under either of the following
6LICENSE = "MPL1.1 | GPLv2+ | LGPLv2.1+"
7LIC_FILES_CHKSUM = "file://jsapi.c;beginline=4;endline=39;md5=347c6bbf4fb4547de1fa5ad830030063"
8PR = "r1"
9
10SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.0-rc1.tar.gz \
11 file://link_with_gcc.patch \
12 file://usepic.patch \
13 file://buildcc.patch;striplevel=2 \
14 file://jsautocfg.h \
15 file://configure.ac"
16
17S = "${WORKDIR}/js/src"
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
28EXTRA_OEMAKE = "'CC=${CC}' 'LD=${LD}' 'XCFLAGS=${CFLAGS}' 'XLDFLAGS=${LDFLAGS} -Wl,-soname=libjs' \
29 'BUILD_CC=${BUILD_CC}' 'BUILD_CFLAGS=${BUILD_CFLAGS}' 'BUILD_LDFLAGS=${BUILD_LDFLAGS}'"
30
31PARALLEL_MAKE = ""
32
33do_compile() {
34 oe_runmake -f Makefile.ref JS_EDITLINE=1 PREBUILT_CPUCFG=1 BUILD_OPT=1
35}
36
37do_install() {
38 install -d ${D}${libdir}
39 install -d ${D}${includedir}
40 install -d ${D}${includedir}/js
41 oe_libinstall -so -C Linux_All_OPT.OBJ libjs ${D}${libdir}
42 install -m 0644 ${S}/*.h ${D}${includedir}/js
43}
44
45FILES_${PN} = "${libdir}/lib*.so"
46FILES_${PN}-dev = "${includedir} ${libdir}/lib*.a"
47