Compiling MediaTomb with libjs on OS X (x86)

  • John O'Shea

    John O'Shea - 2007-05-30

      Has anyone recently successfully compiled MediaTomb on OSX 10.4 against lib-js 1.60?

    I'm trying to build MediaTomb on OS X (X86)  but the configure script does not seem to like my spidermonkey header files.  I have compiled libjs 1.6 (from\) and I'm running the MediaTob configure script as follows:

    ./configure --with-js-h=/Users/joshea/js/src --with-js-lib=/Users/joshea/js/src/Darwin_DBG.OBJ

    It fails with the following error:

    configure: Will search for js (spidermonkey) headers in /Users/joshea/js/src
    checking /Users/joshea/js/src/jsapi.h usability... no
    checking /Users/joshea/js/src/jsapi.h presence... no
    checking for /Users/joshea/js/src/jsapi.h... no
    configure: error: jsapi.h not found in requested location /Users/joshea/js/src

    A look at the config.log reveals the following:

    configure:18728: g++ -c -g -O2 -DXP_MAC  -DXP_MAC conftest.cpp >&5
    In file included from /Users/joshea/js/src/jspubtd.h:45,
                     from /Users/joshea/js/src/jsapi.h:47,
                     from conftest.cpp:143:
    /Users/joshea/js/src/jstypes.h:234:6: error: #error "Must define one of XP_BEOS, XP_OS2, XP_WIN or XP_UNIX"
    /Users/joshea/js/src/jstypes.h:250:2: error: #error No suitable type for JSInt8/JSUint8
    /Users/joshea/js/src/jstypes.h:263:2: error: #error No suitable type for JSInt16/JSUint16
    /Users/joshea/js/src/jstypes.h:283:2: error: #error No suitable type for JSInt32/JSUint32
    /Users/joshea/js/src/jstypes.h:334:2: error: #error 'sizeof(int)' not sufficient for platform use

    Note that the jspubtd.h file in js 1.6 does not use XP_MAC.  It appears to be expecting XP_UNIX instead as Spidermonkey removed XP_MAC references some time ago (see v3.33 at\) in a bid to clean up their headers.

    Note I also installed the DarwinPorts version of spidermonkey1.6 ( and compiling against that but I hit the exact same problem.

    As a newb to compiling on OS X I'm not sure what the best approach is to get this to work.  I'm presuming there are other parts of the configure/make scripts that rely (heavily) on XP_MAC being set?

    Has anyone else worked around this?  Or should I switch to an older version of libjs, one that predates the removal of XP_MAC?  The install docs doesn't specify the version you guys play with...


    • Jin

      Jin - 2007-05-30


      ok, thats's interesting. Thanks for pointing that out! I will adjust the configure script; I guess  so far noone tried to compile vs. js 1.60 on OSX yet...

      I need to see how to handle that properly in configure, need to be able to provide support
      for newer and older js versions. try running configure with ./configure CFLAGS="-DXP_UNIX" CXXFLAGS="-DXP_UNIX"

      does it help?


    • John O'Shea

      John O'Shea - 2007-05-30

        Thanks for the suggestion - that appears to have worked with the DarwinPorts spidermonkey libs/headers though with a warning during configure! 

      John-OSheas-Mac-Mini:~/mediatomb-0.9.1 joshea$ ./configure --with-js-h=/opt/local/include --with-js-lib=/opt/local/lib CFLAGS="-DXP_UNIX" CXXFLAGS="-DXP_UNIX"

      configure: Will search for js (spidermonkey) headers in /opt/local/include
      checking /opt/local/include/jsapi.h usability... yes
      checking /opt/local/include/jsapi.h presence... no
      configure: WARNING: /opt/local/include/jsapi.h: accepted by the compiler, rejected by the preprocessor!
      configure: WARNING: /opt/local/include/jsapi.h: proceeding with the compiler's result
      checking for /opt/local/include/jsapi.h... yes

      sqlite3       : yes
      mysql         : missing
      libjs         : yes
      libmagic      : yes
      libexif       : yes
      id3lib        : yes
      taglib        : disabled
      libextractor  : disabled

      Subsequent 'make' and 'make install' also complete, the server starts up and I am adding music folders to its database as I type.  I'm curious, how can I verify it is using libjs successfully at runtime? The only reason I ask is the doc states that libjs is optional.  Presumably the ajax web frontend would be unusable without it?

      Now, to see if my Nokia N800(1)'s UPnP client softwares (2)(3) can stream the media!




    • Jin

      Jin - 2007-05-30


      thinks may get a lot easier on OS X now, MediaTomb is finally available via Fink:

      Please let us know if it works, thanks!



Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks