Browse Source

Fix Javascript build.

V.VamsiKrishna 10 years ago
parent
commit
1d45cd0ff1
3 changed files with 87 additions and 73 deletions
  1. 3 0
      .gitignore
  2. 7 0
      drivers/etc1/rg_etc1.cpp
  3. 77 73
      platform/javascript/detect.py

+ 3 - 0
.gitignore

@@ -23,6 +23,9 @@ tools/editor/editor_icons.cpp
 make.bat
 make.bat
 log.txt
 log.txt
 
 
+# Javascript specific
+*.bc
+
 # Android specific
 # Android specific
 platform/android/java/local.properties
 platform/android/java/local.properties
 platform/android/java/project.properties
 platform/android/java/project.properties

+ 7 - 0
drivers/etc1/rg_etc1.cpp

@@ -24,6 +24,9 @@
 namespace rg_etc1
 namespace rg_etc1
 {
 {
 
 
+   inline long labs(long val) {
+        return val < 0 ? -val : val;
+   }
 
 
    inline int intabs(int val) {
    inline int intabs(int val) {
 
 
@@ -1915,7 +1918,11 @@ done:
                      int v = etc1_decode_value(diff, inten, selector, packed_c);
                      int v = etc1_decode_value(diff, inten, selector, packed_c);
              uint err = intabs(v - color);
              uint err = intabs(v - color);
 		     //printf("err: %d - %u = %u\n",v,color,err);
 		     //printf("err: %d - %u = %u\n",v,color,err);
+                    #ifdef JAVASCRIPT_ENABLED
+                     if (err < best_error || best_error == cUINT32_MAX)
+                    #else
                      if (err < best_error)
                      if (err < best_error)
+                    #endif 
                      {
                      {
                         best_error = err;
                         best_error = err;
                         best_packed_c = packed_c;
                         best_packed_c = packed_c;

+ 77 - 73
platform/javascript/detect.py

@@ -3,91 +3,95 @@ import sys
 import string
 import string
 
 
 def is_active():
 def is_active():
-	return True
-	
+    return True
+    
 def get_name():
 def get_name():
-	return "JavaScript"
+    return "JavaScript"
 
 
 def can_build():
 def can_build():
 
 
-        import os
-        if (not os.environ.has_key("EMSCRIPTEN_ROOT")):
-        	return False
-	return True
+    import os
+    if (not os.environ.has_key("EMSCRIPTEN_ROOT")):
+        return False
+    return True
 
 
 def get_opts():
 def get_opts():
 
 
-	return [
-		['compress','Compress JS Executable','no']
-	]
+    return [
+        ['compress','Compress JS Executable','no']
+    ]
 
 
 def get_flags():
 def get_flags():
 
 
-	return [
-		('lua', 'no'),
-		('tools', 'no'),
-		('nedmalloc', 'no'),
-		('theora', 'no'),
-		('tools', 'no'),
-		('nedmalloc', 'no'),
-		('vorbis', 'no'),
-		('musepack', 'no'),
-		('squirrel', 'no'),
-		('squish', 'no'),
-		('speex', 'no'),
-		('old_scenes', 'no'),
-#		('default_gui_theme', 'no'),
+    return [
+        ('lua', 'no'),
+        ('tools', 'no'),
+        ('nedmalloc', 'no'),
+        ('theora', 'no'),
+        ('tools', 'no'),
+        ('nedmalloc', 'no'),
+        ('vorbis', 'no'),
+        ('musepack', 'no'),
+        ('squirrel', 'no'),
+        ('squish', 'no'),
+        ('speex', 'no'),
+        ('old_scenes', 'no'),
+#        ('default_gui_theme', 'no'),
 
 
-		#('builtin_zlib', 'no'),
-	]
+        #('builtin_zlib', 'no'),
+    ]
 
 
 
 
 
 
 def configure(env):
 def configure(env):
-
-
-	env.Append(CPPPATH=['#platform/javascript'])
-	
-	em_path=os.environ["EMSCRIPTEN_ROOT"]
-	
-	env['ENV']['PATH'] = em_path+":"+env['ENV']['PATH']
-
-	env['CC'] = em_path+'/emcc'
-	env['CXX'] = em_path+'/emcc'
-	env['AR'] = em_path+"/emar"
-	env['RANLIB'] = em_path+"/emranlib"
-
-#	env.Append(LIBS=['c','m','stdc++','log','GLESv1_CM','GLESv2'])
-
-#	env["LINKFLAGS"]= string.split(" -g --sysroot="+ld_sysroot+" -Wl,--no-undefined -Wl,-z,noexecstack ")
-
-	if (env["target"]=="release"):
-
-		env.Append(CCFLAGS=['-O2'])
-
-	elif (env["target"]=="release_debug"):
-
-		env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
-
-	elif (env["target"]=="debug"):
-		env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-O2', '-DDEBUG_ENABLED'])
-		env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
-
-	env.Append(CPPFLAGS=["-fno-exceptions",'-DNO_SAFE_CAST','-fno-rtti'])
-	env.Append(CPPFLAGS=['-DJAVASCRIPT_ENABLED', '-DUNIX_ENABLED', '-DNO_FCNTL','-DMPC_FIXED_POINT','-DTYPED_METHOD_BIND','-DNO_THREADS'])
-	env.Append(CPPFLAGS=['-DGLES2_ENABLED'])
-	env.Append(CPPFLAGS=['-DGLES_NO_CLIENT_ARRAYS'])
-	env.Append(CPPFLAGS=['-s','ASM_JS=1'])
-	env.Append(CPPFLAGS=['-s','FULL_ES2=1'])
-#	env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED','-DMPC_FIXED_POINT'])
-	if (env["compress"]=="yes"):
-		lzma_binpath = em_path+"/third_party/lzma.js/lzma-native"
-		lzma_decoder = em_path+"/third_party/lzma.js/lzma-decoder.js"
-		lzma_dec = "LZMA.decompress"
-
-		env.Append(LINKFLAGS=['--compression',lzma_binpath+","+lzma_decoder+","+lzma_dec])
-
-	env.Append(LINKFLAGS=['-s','ASM_JS=1'])
-	env.Append(LINKFLAGS=['-O2'])
-
-
+    env.Append(CPPPATH=['#platform/javascript'])
+
+    em_path=os.environ["EMSCRIPTEN_ROOT"]
+
+    env['ENV']['PATH'] = em_path+":"+env['ENV']['PATH']
+
+    env['CC'] = em_path+'/emcc'
+    env['CXX'] = em_path+'/emcc'
+    #env['AR'] = em_path+"/emar"
+    env['AR'] = em_path+"/emcc"
+    env['ARFLAGS'] = "-o"
+
+#    env['RANLIB'] = em_path+"/emranlib"
+    env['RANLIB'] = em_path + "/emcc"
+    env['OBJSUFFIX'] = '.bc'
+    env['LIBSUFFIX'] = '.bc'
+    env['CCCOM'] = "$CC -o $TARGET $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"
+    env['CXXCOM'] = "$CC -o $TARGET $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"
+
+#    env.Append(LIBS=['c','m','stdc++','log','GLESv1_CM','GLESv2'])
+
+#    env["LINKFLAGS"]= string.split(" -g --sysroot="+ld_sysroot+" -Wl,--no-undefined -Wl,-z,noexecstack ")
+
+    if (env["target"]=="release"):
+        env.Append(CCFLAGS=['-O2'])
+    elif (env["target"]=="release_debug"):
+        env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
+    elif (env["target"]=="debug"):
+        env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-O2', '-DDEBUG_ENABLED'])
+        #env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-g4', '-DDEBUG_ENABLED'])
+        env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
+
+    env.Append(CPPFLAGS=["-fno-exceptions",'-DNO_SAFE_CAST','-fno-rtti'])
+    env.Append(CPPFLAGS=['-DJAVASCRIPT_ENABLED', '-DUNIX_ENABLED', '-DNO_FCNTL','-DMPC_FIXED_POINT','-DTYPED_METHOD_BIND','-DNO_THREADS'])
+    env.Append(CPPFLAGS=['-DGLES2_ENABLED'])
+    env.Append(CPPFLAGS=['-DGLES_NO_CLIENT_ARRAYS'])
+    env.Append(CPPFLAGS=['-s','ASM_JS=1'])
+    env.Append(CPPFLAGS=['-s','FULL_ES2=1'])
+#    env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED','-DMPC_FIXED_POINT'])
+    if (env["compress"]=="yes"):
+        lzma_binpath = em_path+"/third_party/lzma.js/lzma-native"
+        lzma_decoder = em_path+"/third_party/lzma.js/lzma-decoder.js"
+        lzma_dec = "LZMA.decompress"
+        env.Append(LINKFLAGS=['--compression',lzma_binpath+","+lzma_decoder+","+lzma_dec])
+
+    env.Append(LINKFLAGS=['-s','ASM_JS=1'])
+    env.Append(LINKFLAGS=['-O2'])
+    #env.Append(LINKFLAGS=['-g4'])
+    
+    #print "CCCOM is:", env.subst('$CCCOM')
+    #print "P: ", env['p'], " Platofrm: ", env['platform']