Home > Uncategorized > How to install libjs (SpiderMonkey)

How to install libjs (SpiderMonkey)

In Ubuntu 10.04 (Lucid) there’s no deb package for libjs. I needed to use version 1.8 of libjs with MediaTomb. Normally this would mean you download the source code for libjs and “./configure; make; make install” but the source code for libjs 1.8 doesn’t come with a configure script, or with an install target in the Makefile.ref file.

The SpiderMonkey Build Documentation is helpful in getting a build done, but points to some SpiderMonkey manual installation instructions that are no longer available. If you create a file called Makefile in the js/src directory with the contents shown below, you can issue the normal “make install” to install libjs. Better yet, you should install the “checkinstall” package and use:

checkinstall -D make install

This will create a debian package (-D) that does the same thing as “make install”.

Make sure you use a hard tab to indent the lines below “install:” target or else the Makefile won’t work. Since the build result is placed in a subdirectory named based on the system, you might have to adjust the BLD (look for the location of the libjs.so file). The PREFIX should probably be /usr when used with checkinstall, and /usr/local otherwise.

1
2
3
4
5
6
7
8
9
10
11
12
13
BLD := Linux_All_OPT.OBJ
#PREFIX := /usr/local
PREFIX := /usr

install:
        cp ${BLD}/libjs.so ${PREFIX}/lib
        cp ${BLD}/js ${PREFIX}/bin
        cp ${BLD}/jscpucfg ${PREFIX}/bin
        cp ${BLD}/jskwgen ${PREFIX}/bin
        mkdir -p ${PREFIX}/include/js
        cp *.h ${PREFIX}/include/js
        cp *.tbl ${PREFIX}/include/js
        cp ${BLD}/*.h ${PREFIX}/include/js
Categories: Uncategorized Tags:
  1. Sergio
    November 8th, 2010 at 03:59 | #1

    I Use fedora to build the spidermonket js
    but have a problem
    i paste the code in a Makefile.ref and run
    “make -f Makefile.ref”

    Makefile:5: *** faltando o separador (você pensou em TAB ao invés de 8 espaços?). Pare.

    • Gabriel Burca
      November 8th, 2010 at 20:59 | #2

      If you did a copy-n-paste, you’ll need to change the spaces to real tabs as I explicitly stated in the paragraph right above the makefile.

  2. December 7th, 2010 at 17:49 | #3

    You my friend just saved me hours and hours of work.

    So thankful!!

  3. Dan
    December 7th, 2010 at 21:54 | #4

    The above method did not work for me with with Spider Monkey 1.8.0 RC1

    cp: cannot stat `Linux_All_OPT.OBJ/libjs.so’: No such file or directory

    This did:
    cd js/src
    make BUILD_OPT=1 -f Makefile.ref
    checkinstall -D make BUILD_OPT=1 JS_DIST=/usr -f Makefile.ref export

  4. Adam
    July 18th, 2011 at 01:38 | #5

    For the 1.8.0 RC1, you need to change Linux_All_OPT.OBJ to Linux_All_DBG.OBJ

  5. Steve
    July 29th, 2011 at 12:40 | #6

    Why is build always static? I didn’t configure to be. I’m missing the libjs.so, the output is libjs-static.a

  1. May 10th, 2011 at 15:06 | #1