зеркало из https://github.com/mozilla/pjs.git
180 строки
5.0 KiB
Makefile
180 строки
5.0 KiB
Makefile
#
|
|
# ***** 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 the Netscape Portable Runtime (NSPR).
|
|
#
|
|
# The Initial Developer of the Original Code is
|
|
# Netscape Communications Corporation.
|
|
# Portions created by the Initial Developer are Copyright (C) 1998-2000
|
|
# 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 *****
|
|
|
|
#
|
|
# Configuration common to all (supported) versions of OS/2
|
|
#
|
|
# OS_CFLAGS is the command line options for the compiler when
|
|
# building the .DLL object files.
|
|
# OS_EXE_CFLAGS is the command line options for the compiler
|
|
# when building the .EXE object files; this is for the test
|
|
# programs.
|
|
# the macro OS_CFLAGS is set to OS_EXE_CFLAGS inside of the
|
|
# makefile for the pr/tests directory. ... Hack.
|
|
|
|
# Specify toolset. Default to EMX.
|
|
ifeq ($(MOZ_OS2_TOOLS),VACPP)
|
|
XP_OS2_VACPP = 1
|
|
else
|
|
ifeq ($(MOZ_OS2_TOOLS),PGCC)
|
|
XP_OS2_EMX = 1
|
|
else
|
|
MOZ_OS2_TOOLS = EMX
|
|
XP_OS2_EMX = 1
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(XP_OS2_EMX),1)
|
|
MOZ_EMXTAG = $(subst .,,$(MOZ_OS2_EMX_OBJECTFORMAT))
|
|
endif
|
|
|
|
#
|
|
# On OS/2 we proudly support gbash...
|
|
#
|
|
SHELL = GBASH.EXE
|
|
|
|
CC = icc -q -DXP_OS2 -N10
|
|
CCC = icc -q -DXP_OS2 -DOS2=4 -N10
|
|
LINK = -ilink
|
|
AR = -ilib /noignorecase /nologo /Out:$(subst /,\\,$@)
|
|
RANLIB = @echo RANLIB
|
|
BSDECHO = @echo BSDECHO
|
|
NSINSTALL = nsinstall
|
|
INSTALL = $(NSINSTALL)
|
|
MAKE_OBJDIR = if test ! -d $(OBJDIR); then mkdir $(OBJDIR); fi
|
|
IMPLIB = implib -nologo -noignorecase
|
|
FILTER = cppfilt -b -p -q
|
|
RC = rc.exe
|
|
|
|
GARBAGE =
|
|
|
|
XP_DEFINE = -DXP_PC
|
|
LIB_SUFFIX = lib
|
|
DLL_SUFFIX = dll
|
|
OBJ_SUFFIX = obj
|
|
|
|
OS_CFLAGS = -W3 -Wcnd- -gm -gd+ -sd- -su4 -ge- -Mp
|
|
OS_EXE_CFLAGS = -W3 -Wcnd- -gm -gd+ -sd- -su4 -Mp
|
|
AR_EXTRA_ARGS =
|
|
|
|
ifdef BUILD_OPT
|
|
OPTIMIZER = -O+ -Oi
|
|
DEFINES = -UDEBUG -U_DEBUG -DNDEBUG
|
|
DLLFLAGS = -DLL -OUT:$@ -MAP:$(@:.dll=.map)
|
|
EXEFLAGS = -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE
|
|
OBJDIR_TAG = _OPT
|
|
else
|
|
OPTIMIZER = -Ti+ -DE
|
|
DEFINES = -DDEBUG -D_DEBUG -DDEBUGPRINTS
|
|
DLLFLAGS = -DEBUG -DLL -OUT:$@ -MAP:$(@:.dll=.map)
|
|
EXEFLAGS = -DEBUG -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE
|
|
OBJDIR_TAG = _DBG
|
|
LDFLAGS = -DEBUG
|
|
endif
|
|
|
|
DEFINES += -DOS2=4
|
|
DEFINES += -D_X86_
|
|
DEFINES += -D_PR_GLOBAL_THREADS_ONLY -DBSD_SELECT
|
|
|
|
# Name of the binary code directories
|
|
ifdef MOZ_LITE
|
|
OBJDIR_NAME = $(subst OS2,NAV,$(OS_CONFIG))_$(MOZ_OS2_TOOLS)$(MOZ_EMXTAG)$(OBJDIR_TAG).OBJ
|
|
else
|
|
OBJDIR_NAME = $(OS_CONFIG)_$(MOZ_OS2_TOOLS)$(MOZ_EMXTAG)$(OBJDIR_TAG).OBJ
|
|
endif
|
|
|
|
OS_DLLFLAGS = -nologo -DLL -FREE -NOE
|
|
|
|
ifdef XP_OS2_VACPP
|
|
|
|
OS_LIBS = so32dll.lib tcp32dll.lib
|
|
|
|
DEFINES += -DXP_OS2_VACPP -DTCPV40HDRS
|
|
|
|
else
|
|
CC = gcc
|
|
CCC = gcc
|
|
LINK = gcc
|
|
RC = rc.exe
|
|
FILTER = emxexp
|
|
IMPLIB = emximp -o
|
|
|
|
# Determine which object format to use. Two choices:
|
|
# a.out and omf. We default to omf.
|
|
ifeq ($(MOZ_OS2_EMX_OBJECTFORMAT), A.OUT)
|
|
AR = ar -q $@
|
|
LIB_SUFFIX = a
|
|
else
|
|
OMF_FLAG = -Zomf
|
|
AR = emxomfar r $@
|
|
LIB_SUFFIX = lib
|
|
endif
|
|
|
|
# if we compile with GCC we can also use the high-memory flag if specified
|
|
ifeq ($(MOZ_OS2_HIGH_MEMORY),1)
|
|
HIGHMEM_LDFLAG = -Zhigh-mem
|
|
endif
|
|
|
|
OS_LIBS = -lsocket -lemxio
|
|
|
|
DEFINES += -DXP_OS2 -DXP_OS2_EMX -DOS2EMX_PLAIN_CHAR
|
|
|
|
OS_CFLAGS = $(OMF_FLAG) -Wall -Wno-unused -Zmtd
|
|
OS_EXE_CFLAGS = $(OMF_FLAG) -Wall -Wno-unused -Zmtd
|
|
OS_DLLFLAGS = $(OMF_FLAG) -Zmt -Zdll -Zcrtdll $(HIGHMEM_LDFLAG) -o $@
|
|
ifeq ($(MOZ_OS2_EMX_OBJECTFORMAT),OMF)
|
|
EXEFLAGS += -Zlinker /DE
|
|
endif
|
|
|
|
ifdef BUILD_OPT
|
|
OPTIMIZER = -O3
|
|
DLLFLAGS = $(HIGHMEM_LDFLAG)
|
|
EXEFLAGS = $(HIGHMEM_LDFLAG) -Zmtd -o $@
|
|
else
|
|
OPTIMIZER = -g #-s
|
|
DLLFLAGS = -g $(HIGHMEM_LDFLAG) #-s
|
|
EXEFLAGS = -g $(HIGHMEM_LDFLAG) $(OMF_FLAG) -Zmtd -L$(DIST)/lib -o $@ # -s
|
|
ifeq ($(MOZ_OS2_EMX_OBJECTFORMAT),OMF)
|
|
EXEFLAGS += -Zlinker /DE
|
|
endif
|
|
endif
|
|
|
|
AR_EXTRA_ARGS =
|
|
endif
|
|
|
|
|