gfx/angle/angle-makefiles.patch
author Ehsan Akhgari <ehsan@mozilla.com>
Wed, 01 Jun 2011 16:18:15 -0400
changeset 70259 749feb2a61a4c09a62a5dd513e4d445e0168e72a
parent 70227 478015023b8aad08073980ee1a8a6bd118d60601
permissions -rw-r--r--
Back out bug 10209 and bug 656875 (its regression fix) from Aurora because the work on this bug has not been finished yet

# HG changeset patch
# Parent 855fadd845692a09149ece53933c65113e05bb4f

diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
--- a/gfx/angle/Makefile.in
+++ b/gfx/angle/Makefile.in
@@ -76,16 +76,18 @@ CPPSRCS = \
         RemoveTree.cpp \
         ShaderLang.cpp \
         SymbolTable.cpp \
 	VariableInfo.cpp \
 	compilerdebug.cpp \
 	ossource_nspr.cpp \
 	util.cpp \
 	ValidateLimitations.cpp \
+	ForLoopUnroll.cpp \
+	MapLongVariableNames.cpp \
 	$(NULL)
 
 # flex/yacc generated files
 CPPSRCS += \
 	glslang_lex.cpp \
 	glslang_tab.cpp \
 	$(NULL)
 
@@ -101,16 +103,17 @@ CPPSRCS += \
 # can be selected.
 
 ## HLSL translator backend
 ##CPPSRCS += \
 ##	CodeGenHLSL.cpp \
 ##	OutputHLSL.cpp \
 ##	TranslatorHLSL.cpp \
 ##	UnfoldSelect.cpp \
+##	SearchSymbol.cpp \
 ##	$(NULL)
 
 CSRCS   = \
         atom.c \
         cpp.c \
         cppstruct.c \
         memory.c \
         scanner.c \
@@ -119,77 +122,29 @@ CSRCS   = \
 	$(NULL)
 
 DEFINES += -DANGLE_USE_NSPR -DANGLE_BUILD
 
 ifndef MOZ_ENABLE_LIBXUL
 EXTRA_DSO_LDOPTS = $(MOZ_COMPONENT_LIBS)
 endif
 
+# ANGLE only on Win32 for now, the solution isn't set up
+# for 64-bit yet. This is handled by MOZ_ANGLE which the configure script
+# leaves undefined in the 64-bit case.
+ifdef MOZ_ANGLE
+
+# libEGL depends on (links against!) libGLESv2!
+DIRS = src/libGLESv2 src/libEGL
+
+libs::
+	expand "$(MOZ_D3DX9_CAB)" -F:$(MOZ_D3DX9_DLL) "$(DIST)/bin"
+	expand "$(MOZ_D3DCOMPILER_CAB)" -F:$(MOZ_D3DCOMPILER_DLL) "$(DIST)/bin"
+
+endif
+
 include $(topsrcdir)/config/rules.mk
 
 # We have to filter out -pedantic, because of
 # comma-at-end-of-enumerator list failures.  We can try to get this fixed
 # upstream at some point.
 CXXFLAGS := $(filter-out -pedantic,$(CXXFLAGS))
 CFLAGS := $(filter-out -pedantic,$(CFLAGS))
-
-# ANGLE only on Win32 for now, the solution isn't set up
-# for 64-bit yet. This is handled by MOZ_ANGLE which the configure script
-# leaves undefined in the 64-bit case.
-ifdef MOZ_ANGLE
-ifdef MOZ_DEBUG
-ANGLE_DIR = Debug
-else
-ANGLE_DIR = Release
-endif
-
-ifdef MOZ_DIRECTX_SDK_PATH
-# export is needed for INCLUDE and LIB because devenv //useenv will read these env vars
-export INCLUDE := $(INCLUDE);$(MOZ_DIRECTX_SDK_PATH)\include
-export LIB := $(LIB);$(MOZ_DIRECTX_SDK_PATH)\lib\$(MOZ_DIRECTX_SDK_CPU_SUFFIX)
-endif
-
-ANGLE_DEP_PATTERNS = \
-	src/common/*.cpp src/common/*.h \
-	src/compiler/*.cpp src/compiler/*.h \
-	src/compiler/preprocessor/*.cpp src/compiler/preprocessor/*.h \
-	src/libEGL/*.cpp src/libEGL/*.h \
-	src/libGLESv2/*.cpp src/libGLESv2/*.h \
-	$(NULL)
-
-ANGLE_DEPS = $(filter-out Gen_glslang.cpp Gen_glslang_tab.cpp glslang_tab.h,$(wildcard $(ANGLE_DEP_PATTERNS)))
-
-libs:: libGLESv2.dll libEGL.dll
-	$(INSTALL) $(IFLAGS2) libGLESv2.dll libEGL.dll $(MOZ_D3DX9_DLL) $(MOZ_D3DCOMPILER_DLL) $(DIST)/bin
-
-# we don't want this to attempt to parallel-build these dlls;
-# building one will build both.
-libGLESv2.dll: libEGL.dll
-
-libEGL.dll: $(GLOBAL_DEPS) $(ANGLE_DEPS)
-	@(echo "=== Building ANGLE via devenv.exe ===" \
-	&& rm -rf angle-build && mkdir angle-build \
-	&& cp -r $(srcdir)/src $(srcdir)/include angle-build \
-	&& cd angle-build/src \
-	&& echo "Upgrading solution..." \
-	&& devenv angle.sln //upgrade \
-	&& echo "Tweaking project files to use ASLR and DEP..." \
-	&& ( find . -name '*proj' | xargs \
-	     perl -i.bak -p \
-	          -e 'BEGIN{undef $/;} s/<RandomizedBaseAddress>([^<^>])*<\/RandomizedBaseAddress>/<RandomizedBaseAddress>true<\/RandomizedBaseAddress>/sgmi;' \
-	          -e 'BEGIN{undef $/;} s/<DataExecutionPrevention>([^<^>])*<\/DataExecutionPrevention>/<DataExecutionPrevention>true<\/DataExecutionPrevention>/sgmi;' \
-		  -e 's/RandomizedBaseAddress\=\"0\"/RandomizedBaseAddress\=\"1\"/g;' \
-		  -e 's/DataExecutionPrevention\=\"0\"/DataExecutionPrevention\=\"1\"/g;' \
-	   ) \
-	&& echo "Building solution, target $(ANGLE_DIR)|Win32..." \
-	&& ( devenv angle.sln //useenv //build "$(ANGLE_DIR)|Win32" //out ../../angle-build-log.txt \
-	       || (cat ../../angle-build-log.txt && exit 1) \
-	   ) \
-	&& echo "Copying dlls..." \
-	&& cp $(ANGLE_DIR)/*.dll ../.. \
-	&& cd ../.. \
-	&& echo "Extracting dlls from cab file..." \
-	&& expand "$(MOZ_D3DX9_CAB)" . -F:$(MOZ_D3DX9_DLL) \
-	&& expand "$(MOZ_D3DCOMPILER_CAB)" . -F:$(MOZ_D3DCOMPILER_DLL) \
-	)
-
-endif
diff --git a/gfx/angle/src/libEGL/Makefile.in b/gfx/angle/src/libEGL/Makefile.in
new file mode 100644
--- /dev/null
+++ b/gfx/angle/src/libEGL/Makefile.in
@@ -0,0 +1,142 @@
+# 
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is gecko.
+#
+# The Initial Developer of the Original Code is Mozilla Foundation.
+# Portions created by the Initial Developer are Copyright (C) 2011
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either of the GNU General Public License Version 2 or later (the "GPL"),
+# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+DEPTH    = ../../../..
+topsrcdir  = @top_srcdir@
+srcdir    = @srcdir@
+VPATH    = @srcdir@
+
+include $(DEPTH)/config/autoconf.mk
+
+MODULE = libegl
+# On Windows, we don't automatically get "lib" prepended, but we need it.
+LIBRARY_NAME = libEGL
+MODULE_NAME = libegl
+FORCE_SHARED_LIB=1
+
+# ANGLE uses the STL, so we can't use our derpy STL wrappers.
+STL_FLAGS=
+
+# ANGLE uses exceptions internally, so we need to have exception handling
+# support
+ENABLE_CXX_EXCEPTIONS=1
+
+# Since we're building off in our own world, we don't want to have
+# mozilla-config.h and -DMOZILLA_CLIENT automatically included and defined, so
+# we just overwrite OS_COMPILE_C(XX)FLAGS.
+OS_COMPILE_CFLAGS = $(OS_CPPFLAGS)
+OS_COMPILE_CXXFLAGS = $(OS_CPPFLAGS)
+
+LOCAL_INCLUDES += -I$(srcdir)/../../include -I$(srcdir)/.. -I"$(DXSDK_DIR)/include"
+
+VPATH += $(srcdir)/.. \
+  $(srcdir)/../compiler \
+  $(srcdir)/../compiler/preprocessor \
+  $(srcdir)/../common \
+  $(NULL)
+
+# Translator/compiler first
+
+CPPSRCS = \
+  Compiler.cpp \
+  InfoSink.cpp \
+  Initialize.cpp \
+  InitializeDll.cpp \
+  Intermediate.cpp \
+  intermOut.cpp \
+  IntermTraverse.cpp \
+  MozAngleLink.cpp \
+  parseConst.cpp \
+  ParseHelper.cpp \
+  PoolAlloc.cpp \
+  QualifierAlive.cpp \
+  RemoveTree.cpp \
+  ShaderLang.cpp \
+  SymbolTable.cpp \
+  VariableInfo.cpp \
+  compilerdebug.cpp \
+  ossource_win.cpp \
+  util.cpp \
+  ValidateLimitations.cpp \
+  ForLoopUnroll.cpp \
+  MapLongVariableNames.cpp \
+  $(NULL)
+
+# flex/yacc generated files
+CPPSRCS += \
+  glslang_lex.cpp \
+  glslang_tab.cpp \
+  $(NULL)
+
+# HLSL translator backend
+CPPSRCS += \
+  CodeGenHLSL.cpp \
+  OutputHLSL.cpp \
+  TranslatorHLSL.cpp \
+  UnfoldSelect.cpp \
+  SearchSymbol.cpp \
+  $(NULL)
+
+CSRCS   = \
+  atom.c \
+  cpp.c \
+  cppstruct.c \
+  memory.c \
+  scanner.c \
+  symbols.c \
+  tokens.c \
+  $(NULL)
+
+DEFINES += -DANGLE_BUILD -DNOMINMAX -DLIBEGL_EXPORTS -D_CRT_SECURE_NO_DEPRECATE
+
+ifndef MOZ_DEBUG
+DEFINES += -D_SECURE_SCL=0
+endif
+
+CPPSRCS += \
+  debug.cpp \
+  Config.cpp \
+  Display.cpp \
+  libEGL.cpp \
+  main.cpp \
+  Surface.cpp \
+  $(NULL)
+
+DEFFILE = $(srcdir)/libEGL.def
+
+include $(topsrcdir)/config/rules.mk
+
+EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/d3d9.lib" "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/dxguid.lib" $(DIST)/lib/libGLESv2.lib
diff --git a/gfx/angle/src/libGLESv2/Makefile.in b/gfx/angle/src/libGLESv2/Makefile.in
new file mode 100644
--- /dev/null
+++ b/gfx/angle/src/libGLESv2/Makefile.in
@@ -0,0 +1,157 @@
+# 
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is gecko.
+#
+# The Initial Developer of the Original Code is Mozilla Foundation.
+# Portions created by the Initial Developer are Copyright (C) 2011
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either of the GNU General Public License Version 2 or later (the "GPL"),
+# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+DEPTH		= ../../../..
+topsrcdir	= @top_srcdir@
+srcdir		= @srcdir@
+VPATH		= @srcdir@
+
+include $(DEPTH)/config/autoconf.mk
+
+MODULE = libglesv2
+# On Windows, we don't automatically get "lib" prepended, but we need it.
+LIBRARY_NAME = libGLESv2
+MODULE_NAME = libglesv2
+FORCE_SHARED_LIB=1
+
+# ANGLE uses the STL, so we can't use our derpy STL wrappers.
+STL_FLAGS=
+
+# ANGLE uses exceptions internally, so we need to have exception handling
+# support
+ENABLE_CXX_EXCEPTIONS=1
+
+# Since we're building off in our own world, we don't want to have
+# mozilla-config.h and -DMOZILLA_CLIENT automatically included and defined, so
+# we just overwrite OS_COMPILE_C(XX)FLAGS.
+OS_COMPILE_CFLAGS = $(OS_CPPFLAGS)
+OS_COMPILE_CXXFLAGS = $(OS_CPPFLAGS)
+
+LOCAL_INCLUDES = -I$(srcdir)/../../include -I$(srcdir)/.. -I"$(DXSDK_DIR)/include"
+
+VPATH += $(srcdir)/..
+VPATH += $(srcdir)/../compiler
+VPATH += $(srcdir)/../compiler/preprocessor
+VPATH += $(srcdir)/../common
+VPATH += $(srcdir)/geometry
+
+# Translator/compiler first
+
+CPPSRCS = \
+	Compiler.cpp \
+        InfoSink.cpp \
+        Initialize.cpp \
+        InitializeDll.cpp \
+        Intermediate.cpp \
+        intermOut.cpp \
+        IntermTraverse.cpp \
+        MozAngleLink.cpp \
+        parseConst.cpp \
+        ParseHelper.cpp \
+        PoolAlloc.cpp \
+        QualifierAlive.cpp \
+        RemoveTree.cpp \
+        ShaderLang.cpp \
+        SymbolTable.cpp \
+        VariableInfo.cpp \
+        compilerdebug.cpp \
+        ossource_win.cpp \
+        util.cpp \
+        ValidateLimitations.cpp \
+	ForLoopUnroll.cpp \
+	MapLongVariableNames.cpp \
+	$(NULL)
+
+# flex/yacc generated files
+CPPSRCS += \
+	glslang_lex.cpp \
+	glslang_tab.cpp \
+	$(NULL)
+
+# HLSL translator backend
+CPPSRCS += \
+	CodeGenHLSL.cpp \
+	OutputHLSL.cpp \
+	TranslatorHLSL.cpp \
+	UnfoldSelect.cpp \
+	SearchSymbol.cpp \
+	$(NULL)
+
+CSRCS   = \
+        atom.c \
+        cpp.c \
+        cppstruct.c \
+        memory.c \
+        scanner.c \
+        symbols.c \
+        tokens.c \
+	$(NULL)
+
+DEFINES += -DANGLE_BUILD -DNOMINMAX -DLIBGLESV2_EXPORTS -D_CRT_SECURE_NO_DEPRECATE
+
+ifndef MOZ_DEBUG
+DEFINES += -D_SECURE_SCL=0
+endif
+
+CPPSRCS	+= \
+	debug.cpp \
+	IndexDataManager.cpp \
+	VertexDataManager.cpp \
+	Blit.cpp \
+	Buffer.cpp \
+	Context.cpp \
+	Fence.cpp \
+	Framebuffer.cpp \
+	libGLESv2.cpp \
+	main.cpp \
+	Program.cpp \
+	RefCountObject.cpp \
+	Renderbuffer.cpp \
+	ResourceManager.cpp \
+	Shader.cpp \
+	Texture.cpp \
+	utilities.cpp \
+	HandleAllocator.cpp \
+	IndexDataManager.cpp \
+	VertexDataManager.cpp \
+	$(NULL)
+
+DEFFILE = $(srcdir)/libGLESv2.def
+
+
+include $(topsrcdir)/config/rules.mk
+
+EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/d3d9.lib" "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/d3dx9.lib"
diff --git a/toolkit/toolkit-makefiles.sh b/toolkit/toolkit-makefiles.sh
--- a/toolkit/toolkit-makefiles.sh
+++ b/toolkit/toolkit-makefiles.sh
@@ -123,16 +123,18 @@ MAKEFILES_gfx="
   gfx/Makefile
   gfx/ycbcr/Makefile
   gfx/layers/Makefile
   gfx/src/Makefile
   gfx/tests/Makefile
   gfx/thebes/Makefile
   gfx/qcms/Makefile
   gfx/angle/Makefile
+  gfx/angle/src/libGLESv2/Makefile
+  gfx/angle/src/libEGL/Makefile
 "
 
 MAKEFILES_htmlparser="
   parser/htmlparser/Makefile
   parser/htmlparser/public/Makefile
   parser/htmlparser/src/Makefile
   parser/htmlparser/tests/Makefile
   parser/htmlparser/tests/grabpage/Makefile