2010-07-14 20:52:34 -07:00
|
|
|
#
|
|
|
|
# ***** 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
|
|
|
|
# Portions created by the Initial Developer are Copyright (C) 2010
|
|
|
|
# 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 = angle
|
|
|
|
LIBRARY_NAME = angle
|
|
|
|
LIBXUL_LIBRARY = 1
|
|
|
|
EXPORT_LIBRARY = 1
|
|
|
|
|
|
|
|
EXPORTS_NAMESPACES = angle
|
|
|
|
|
|
|
|
EXPORTS_angle = \
|
|
|
|
include/GLSLANG/ShaderLang.h \
|
|
|
|
include/GLSLANG/ResourceLimits.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
LOCAL_INCLUDES += -I$(srcdir)/include -I$(srcdir)/src
|
|
|
|
|
|
|
|
VPATH += $(srcdir)/src
|
|
|
|
VPATH += $(srcdir)/src/compiler
|
|
|
|
VPATH += $(srcdir)/src/compiler/preprocessor
|
|
|
|
|
|
|
|
CPPSRCS = \
|
2010-10-09 12:44:25 -07:00
|
|
|
Compiler.cpp \
|
2010-07-14 20:52:34 -07:00
|
|
|
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 \
|
2010-10-09 12:44:25 -07:00
|
|
|
VariableInfo.cpp \
|
2010-07-14 20:52:34 -07:00
|
|
|
debug.cpp \
|
|
|
|
ossource_nspr.cpp \
|
2010-12-03 14:44:01 -08:00
|
|
|
util.cpp \
|
|
|
|
ValidateLimitations.cpp \
|
2010-07-14 20:52:34 -07:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
# flex/yacc generated files
|
|
|
|
CPPSRCS += \
|
2010-12-03 14:44:01 -08:00
|
|
|
glslang_lex.cpp \
|
2010-07-14 20:52:34 -07:00
|
|
|
glslang_tab.cpp \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
# GLSL translator backend
|
|
|
|
CPPSRCS += \
|
|
|
|
CodeGenGLSL.cpp \
|
|
|
|
OutputGLSL.cpp \
|
|
|
|
TranslatorGLSL.cpp \
|
2010-12-03 14:44:01 -08:00
|
|
|
VersionGLSL.cpp \
|
2010-07-14 20:52:34 -07:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
# Currently, only one or the other
|
|
|
|
# can be selected.
|
|
|
|
|
|
|
|
## HLSL translator backend
|
|
|
|
##CPPSRCS += \
|
|
|
|
## CodeGenHLSL.cpp \
|
|
|
|
## OutputHLSL.cpp \
|
|
|
|
## TranslatorHLSL.cpp \
|
|
|
|
## UnfoldSelect.cpp \
|
|
|
|
## $(NULL)
|
|
|
|
|
|
|
|
CSRCS = \
|
|
|
|
atom.c \
|
|
|
|
cpp.c \
|
|
|
|
cppstruct.c \
|
|
|
|
memory.c \
|
|
|
|
scanner.c \
|
|
|
|
symbols.c \
|
|
|
|
tokens.c \
|
|
|
|
$(NULL)
|
|
|
|
|
2010-07-15 12:49:09 -07:00
|
|
|
DEFINES += -DANGLE_USE_NSPR -DANGLE_BUILD
|
|
|
|
|
|
|
|
ifndef MOZ_ENABLE_LIBXUL
|
|
|
|
EXTRA_DSO_LDOPTS = $(MOZ_COMPONENT_LIBS)
|
|
|
|
endif
|
2010-07-14 20:52:34 -07:00
|
|
|
|
|
|
|
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))
|
|
|
|
|
2010-12-03 14:44:01 -08:00
|
|
|
# ANGLE only on Win32 for now, the solution isn't set up
|
2011-02-07 17:11:52 -08:00
|
|
|
# for 64-bit yet. This is handled by MOZ_ANGLE which the configure script
|
|
|
|
# leaves undefined in the 64-bit case.
|
|
|
|
ifdef MOZ_ANGLE
|
2010-10-09 12:44:25 -07:00
|
|
|
ifdef MOZ_DEBUG
|
|
|
|
ANGLE_DIR = Debug
|
|
|
|
else
|
|
|
|
ANGLE_DIR = Release
|
|
|
|
endif
|
|
|
|
|
2010-12-03 14:44:01 -08:00
|
|
|
ifdef MOZ_DIRECTX_SDK_PATH
|
2011-02-07 17:11:52 -08:00
|
|
|
# export is needed for INCLUDE and LIB because devenv //useenv will read these env vars
|
2011-01-31 17:58:02 -08:00
|
|
|
export INCLUDE := $(INCLUDE);$(MOZ_DIRECTX_SDK_PATH)\include
|
2011-02-07 17:11:52 -08:00
|
|
|
export LIB := $(LIB);$(MOZ_DIRECTX_SDK_PATH)\lib\$(MOZ_DIRECTX_SDK_CPU_SUFFIX)
|
2010-12-03 14:44:01 -08:00
|
|
|
endif
|
|
|
|
|
2010-10-09 12:44:25 -07:00
|
|
|
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)))
|
|
|
|
|
2010-12-03 14:44:01 -08:00
|
|
|
libs:: libGLESv2.dll libEGL.dll
|
2011-02-07 17:11:52 -08:00
|
|
|
$(INSTALL) $(IFLAGS2) libGLESv2.dll libEGL.dll $(MOZ_D3DX9_DLL) $(MOZ_D3DCOMPILER_DLL) $(DIST)/bin
|
2010-12-03 14:44:01 -08:00
|
|
|
|
|
|
|
# we don't want this to attempt to parallel-build these dlls;
|
|
|
|
# building one will build both.
|
|
|
|
libGLESv2.dll: libEGL.dll
|
2010-10-09 12:44:25 -07:00
|
|
|
|
2010-12-03 14:44:01 -08:00
|
|
|
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 \
|
2010-10-09 12:44:25 -07:00
|
|
|
&& echo "Upgrading solution..." \
|
|
|
|
&& devenv angle.sln //upgrade \
|
2011-03-17 12:07:16 -07:00
|
|
|
&& 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;' \
|
|
|
|
) \
|
2010-10-09 12:44:25 -07:00
|
|
|
&& echo "Building solution, target $(ANGLE_DIR)|Win32..." \
|
2011-02-07 17:11:52 -08:00
|
|
|
&& ( devenv angle.sln //useenv //build "$(ANGLE_DIR)|Win32" //out ../../angle-build-log.txt \
|
|
|
|
|| (cat ../../angle-build-log.txt && exit 1) \
|
|
|
|
) \
|
2010-10-09 12:44:25 -07:00
|
|
|
&& echo "Copying dlls..." \
|
2011-02-07 17:11:52 -08:00
|
|
|
&& 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) \
|
|
|
|
)
|
2010-10-09 12:44:25 -07:00
|
|
|
|
|
|
|
endif
|