gecko-dev/config/WIN32

224 строки
6.7 KiB
Plaintext

# ***** 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 mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either 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 *****
#//------------------------------------------------------------------------
#//
#// Win32 Configuration file
#//
#//------------------------------------------------------------------------
#//------------------------------------------------------------------------
#//
#// Define the OS dependent commands used by MAKE
#//
#//------------------------------------------------------------------------
CC=cl
LD=link
AR=lib
RC=rc
#RM=del /F /Q
#RM_R=del /F /S /Q
RM=rm -f
RM_R=rm -fr
CP=cp
AWK=$(MOZ_TOOLS)\bin\gawk.exe
RANLIB=$(DEPTH)\config\true.bat
JAVAH=$(DIST)\bin\javah.exe
JAVA=$(MOZ_TOOLS)\bin\java.exe
!ifndef JAVAH_IN_JAVA
JAVAH_PROG = $(DIST)\bin\javah.exe
!else
JAVAH_PROG = $(JAVA) netscape.tools.jric.Main
!endif
#//------------------------------------------------------------------------
#//
#// Define Debug and optimization flags
#//
#//------------------------------------------------------------------------
!ifdef MOZ_DEBUG
#
# Uncomment for MSVC debug malloc logging...
#
#OPTIMIZER=-Zi -DDEBUG -UNDEBUG -D_DEBUG -D_CRTDBG_MAP_ALLOC
OPTIMIZER=-Zi -DDEBUG -UNDEBUG -D_DEBUG
!if defined(GLOWCODE) && "$(MOZ_BITS)"=="32"
OS_LFLAGS=/DEBUG /DEBUGTYPE:BOTH /INCLUDE:_GlowCode /PDB:NONE
!else
OS_LFLAGS=/DEBUG /DEBUGTYPE:CV /PDB:$(PDBFILE)
!endif
!else
# Initialize to non-profile, non-coverage optimization
OPTIMIZER=-O1 -UDEBUG -DNDEBUG
OS_LFLAGS=/OPT:nowin98
# if MOZ_DEBUG is not set and MOZ_PROFILE is set, then we generate
# an optimized build with debugging symbols. Useful for debugging
# compiler optimization bugs, as well as running with Quantify.
!if defined (MOZ_PROFILE)
OS_LFLAGS=/DEBUG /DEBUGTYPE:CV /PDB:NONE /OPT:REF /OPT:nowin98
OPTIMIZER=-Zi -O1 -UDEBUG -DNDEBUG
!endif
# MOZ_PROFILE
# if MOZ_COVERAGE is set, we handle pdb files slightly differently
!if defined(MOZ_COVERAGE)
OS_LFLAGS=/DEBUG /DEBUGTYPE:CV /PDB:$(PDBFILE) /OPT:REF /OPT:nowin98
OPTIMIZER=-Zi -O1 -UDEBUG -DNDEBUG
!endif
# MOZ_COVERAGE
#
# Handle trace-malloc in optimized builds.
# No opt to give sane callstacks.
#
!if defined(MOZ_TRACE_MALLOC)
OPTIMIZER=-Zi -Od -UDEBUG -DNDEBUG
OS_LFLAGS=/DEBUG /DEBUGTYPE:CV /PDB:NONE /OPT:REF /OPT:nowin98
!endif
# MOZ_TRACE_MALLOC
# if MOZ_DEBUG is not set and MOZ_MAPINFO
!if defined (MOZ_MAPINFO)
OS_LFLAGS=$(OS_LFLAGS) /MAP:$(MAPFILE) /MAPINFO:LINES
!endif
#MOZ_MAPINFO
!endif
# MOZ_DEBUG
#//------------------------------------------------------------------------
#//
#// Select the correct RTL to link...
#//
#// Currently, unless USE_STATIC_LIBS is defined, the multithreaded
#// DLL version of the RTL is used...
#//
#//------------------------------------------------------------------------
!ifdef USE_STATIC_LIBS
RTL_FLAGS=-MT # Statically linked multithreaded RTL
!if defined(MOZ_DEBUG) || defined(MOZ_TRACE_MALLOC)
RTL_FLAGS=-MTd # Statically linked multithreaded MSVC4.0 debug RTL
!endif
!else ifdef USE_NON_MT_LIBS
RTL_FLAGS=-ML # Statically linked non-multithreaded LIBC RTL
!if defined(MOZ_DEBUG) || defined(MOZ_TRACE_MALLOC)
RTL_FLAGS=-MLd # Statically linked non-multithreaded LIBC debug RTL
!endif
!else
RTL_FLAGS=-MD # Dynamically linked, multithreaded RTL
!if defined(MOZ_DEBUG) || defined(MOZ_TRACE_MALLOC)
!ifndef MOZ_NO_DEBUG_RTL
RTL_FLAGS=-MDd # Dynamically linked, multithreaded MSVC4.0 debug RTL
!endif
!endif
!endif
#//------------------------------------------------------------------------
#//
#// Specify the OS dependent compiler flags, linker flags and libraries
#//
#//------------------------------------------------------------------------
OS_CFLAGS=$(OPTIMIZER) $(RTL_FLAGS) -W3 -nologo -D_X86_ -D_WINDOWS -DWIN32 \
-DXP_PC -DXP_WIN -DXP_WIN32 -DHW_THREADS -DWINVER=0x400 -Gy
OS_CFLAGS=$(OS_CFLAGS) -DMSVC4
!ifdef MOZ_DEBUG
# Enable browse info in VC++
!ifdef MOZ_BROWSE_INFO
OS_CFLAGS=$(OS_CFLAGS) /FR
!endif
!endif
## Removed MOZ_LITE/MOZ_MEDIUM stuff from OS_CFLAGS
OS_LFLAGS=$(OS_LFLAGS)
OS_LIBS=kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib
#//------------------------------------------------------------------------
#//
#// Specify the special flags for creating EXEs
#//
#//------------------------------------------------------------------------
!if defined(SWAPTUNER) || (defined(GLOWCODE) && defined(GLOWPROF) && "$(MOZ_BITS)"=="32")
# this seems to get lost
EXE_CFLAGS=/Gh
!else
EXE_CFLAGS=/Gy
!endif
!if defined(MOZ_PROFILE)
EXE_LFLAGS=/FIXED:NO
!else
EXE_LFLAGS=
!endif
EXE_LIBS=
!if defined(MOZ_COVERAGE) && !defined(MOZ_NO_COVERAGE)
EXE_LIBS=$(EXE_LIBS) $(DIST)/lib/trace.lib
!endif
#//------------------------------------------------------------------------
#//
#// Specify the special flags for creating DLLs
#//
#//------------------------------------------------------------------------
DLL_CFLAGS=
DLL_LFLAGS=/SUBSYSTEM:WINDOWS
DLL_LIBS=
!if defined(MOZ_COVERAGE) && !defined(MOZ_NO_COVERAGE)
DLL_LIBS=$(DLL_LIBS) $(DIST)/lib/trace.lib
!endif
#//------------------------------------------------------------------------
#//
#// rebase setting, msvc systems better have this
#//
#//------------------------------------------------------------------------
REBASE=rebase.exe