# Copyright (c) 2008 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

Import('env')

env = env.Clone(
)

if env['OS'] == 'osx':
  env.Append(
        CPPDEFINES = [
          'JS_THREADSAFE',
          'XP_UNIX',
          'DARWIN',
          'HAVE_BSD_FLOCK',
          'XP_MACOSX',
          'HAVE_LCHOWN',
          'HAVE_STRERROR',
          'FORCE_PR_LOG',
          '_PR_PTHREADS',
          'UHAVE_CVAR_BUILT_ON_SEM',
          '_NSPR_BUILD_',
          'OSARCH=Darwin',
          'STATIC_JS_API',
          'JS_USE_SAFE_ARENA',
          'TRIMMED',
          'JS_HAS_EXPORT_IMPORT'
        ],
        CPPPATH = '$MOZJS_INCLUDE_PATHS',
  )
elif env['OS'] == 'android':
  env.Append(
        CPPDEFINES = [
          'JS_THREADSAFE',
          'XP_UNIX',
          'HAVE_STRERROR',
          'FORCE_PR_LOG',
          '_PR_PTHREADS',
          'UHAVE_CVAR_BUILT_ON_SEM',
          '_NSPR_BUILD_',
          'OSARCH=Android',
          'STATIC_JS_API',
          'JS_USE_SAFE_ARENA',
          'TRIMMED',
          'JS_HAS_EXPORT_IMPORT',
        ],
        CPPPATH = '$MOZJS_INCLUDE_PATHS',
  )

input_files = [
    # Common Files
    '$MOZJS_DIR/js/src/jsapi.c', 
    '$MOZJS_DIR/js/src/jsarena.c', 
    '$MOZJS_DIR/js/src/jsarray.c', 
    '$MOZJS_DIR/js/src/jsatom.c', 
    '$MOZJS_DIR/js/src/jsbool.c', 
    '$MOZJS_DIR/js/src/jscntxt.c', 
    '$MOZJS_DIR/js/src/jsdate.c', 
    '$MOZJS_DIR/js/src/jsdbgapi.c', 
    '$MOZJS_DIR/js/src/jsdhash.c', 
    '$MOZJS_DIR/js/src/jsdtoa.c', 
    '$MOZJS_DIR/js/src/jsemit.c', 
    '$MOZJS_DIR/js/src/jsexn.c', 
    '$MOZJS_DIR/js/src/jsfun.c', 
    '$MOZJS_DIR/js/src/jsgc.c', 
    '$MOZJS_DIR/js/src/jshash.c', 
    '$MOZJS_DIR/js/src/jsinterp.c', 
    '$MOZJS_DIR/js/src/jsinvoke.c', 
    '$MOZJS_DIR/js/src/jsiter.c', 
    '$MOZJS_DIR/js/src/jskwgen.c', 
    '$MOZJS_DIR/js/src/jslock.c', 
    '$MOZJS_DIR/js/src/jslog2.c', 
    '$MOZJS_DIR/js/src/jslong.c', 
    '$MOZJS_DIR/js/src/jsmath.c', 
    '$MOZJS_DIR/js/src/jsnum.c', 
    '$MOZJS_DIR/js/src/jsobj.c', 
    '$MOZJS_DIR/js/src/jsopcode.c', 
    '$MOZJS_DIR/js/src/jsparse.c', 
    '$MOZJS_DIR/js/src/jsprf.c', 
    '$MOZJS_DIR/js/src/jsregexp.c', 
    '$MOZJS_DIR/js/src/jsscan.c', 
    '$MOZJS_DIR/js/src/jsscope.c', 
    '$MOZJS_DIR/js/src/jsscript.c', 
    '$MOZJS_DIR/js/src/jsstr.c', 
    '$MOZJS_DIR/js/src/jsutil.c', 
    '$MOZJS_DIR/js/src/jsxdrapi.c', 
    '$MOZJS_DIR/js/src/jsxml.c', 
    '$MOZJS_DIR/xpcom/glue/pldhash.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/pratom.c', 
    '$MOZJS_DIR/nspr/pr/src/threads/prcmon.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prdtoa.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prenv.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prerr.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prerror.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prerrortable.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prfdcach.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prinit.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prinrval.c', 
    '$MOZJS_DIR/nspr/pr/src/io/priometh.c', 
    '$MOZJS_DIR/nspr/pr/src/io/pripv6.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prlayer.c', 
    '$MOZJS_DIR/nspr/pr/src/linking/prlink.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prlog.c', 
    '$MOZJS_DIR/nspr/pr/src/malloc/prmalloc.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prmapopt.c', 
    '$MOZJS_DIR/nspr/pr/src/malloc/prmem.c', 
    '$MOZJS_DIR/js/src/prmjtime.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prmmap.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prmwait.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prnetdb.c', 
    '$MOZJS_DIR/nspr/pr/src/md/prosdep.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prprf.c', 
    '$MOZJS_DIR/nspr/pr/src/threads/prrwlock.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prscanf.c', 
    '$MOZJS_DIR/nspr/pr/src/memory/prseg.c', 
    '$MOZJS_DIR/nspr/pr/src/io/prstdio.c', 
    '$MOZJS_DIR/nspr/pr/src/misc/prtime.c', 
    '$MOZJS_DIR/nspr/pr/src/threads/prtpd.c', 
    '$MOZJS_DIR/nspr/pr/src/pthreads/ptio.c', 
    '$MOZJS_DIR/nspr/pr/src/pthreads/ptmisc.c', 
    '$MOZJS_DIR/nspr/pr/src/pthreads/ptsynch.c', 
    '$MOZJS_DIR/nspr/pr/src/pthreads/ptthread.c',
    '$MOZJS_DIR/nspr/pr/src/md/unix/unix.c', 
    '$MOZJS_DIR/nspr/pr/src/md/unix/unix_errors.c', 
    '$MOZJS_DIR/nspr/pr/src/md/unix/uxproces.c',
]

if env['OS'] == 'osx':
  # Safari-specific SpiderMonkey files.
  input_files += [
      '$MOZJS_DIR/nspr/pr/src/md/unix/darwin.c',
      '$MOZJS_DIR/nspr/pr/src/md/unix/os_Darwin_ppc.s',
      '$MOZJS_DIR/nspr/pr/src/md/unix/os_Darwin_x86.s',
  ]
elif env['OS'] == 'android':
  # Files needed for Android builds.
  input_files += [
      '$MOZJS_DIR/nspr/pr/src/md/unix/linux.c',
      '$MOZJS_DIR/nspr/pr/src/misc/prlog2.c',
  ]

env.GearsStaticLibrary('mozjs-gears', input_files)