remove patches
[platform/upstream/nss.git] / coreconf / OS2.mk
1 #
2 # This Source Code Form is subject to the terms of the Mozilla Public
3 # License, v. 2.0. If a copy of the MPL was not distributed with this
4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
6 MOZ_WIDGET_TOOLKIT = os2
7
8 # XP_PC is for Window and OS2 on Intel X86
9 # XP_OS2 is strictly for OS2 only
10 XP_DEFINE  += -DXP_PC=1  -DXP_OS2=1
11
12 # Override prefix
13 LIB_PREFIX  = $(NULL)
14
15 # Override suffix in suffix.mk
16 LIB_SUFFIX  = lib
17 # the DLL_SUFFIX must be uppercase for FIPS mode to work. bugzilla 240784
18 DLL_SUFFIX  = DLL
19 PROG_SUFFIX = .exe
20
21
22 CCC                     = gcc
23 LINK                    = gcc
24 AR                      = emxomfar r $@
25 # Keep AR_FLAGS blank so that we do not have to change rules.mk
26 AR_FLAGS                = 
27 RANLIB                  = @echo OS2 RANLIB
28 BSDECHO                 = @echo OS2 BSDECHO
29 IMPLIB                  = emximp -o
30 FILTER                  = emxexp -o
31
32 # GCC for OS/2 currently predefines these, but we don't want them
33 DEFINES                 += -Uunix -U__unix -U__unix__
34
35 DEFINES                 += -DTCPV40HDRS
36
37 ifeq ($(MOZ_OS2_HIGH_MEMORY),1)
38 HIGHMEM_LDFLAG          = -Zhigh-mem
39 endif
40
41 ifndef NO_SHARED_LIB
42 WRAP_MALLOC_LIB         = 
43 WRAP_MALLOC_CFLAGS      = 
44 DSO_CFLAGS              = 
45 DSO_PIC_CFLAGS          = 
46 MKSHLIB                 = $(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@
47 MKCSHLIB                = $(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@
48 MKSHLIB_FORCE_ALL       = 
49 MKSHLIB_UNFORCE_ALL     = 
50 DSO_LDOPTS              = -Zomf -Zdll -Zmap $(HIGHMEM_LDFLAG)
51 SHLIB_LDSTARTFILE       = 
52 SHLIB_LDENDFILE         = 
53 ifdef MAPFILE
54 MKSHLIB += $(MAPFILE)
55 endif
56 PROCESS_MAP_FILE = \
57         echo LIBRARY $(LIBRARY_NAME)$(LIBRARY_VERSION) INITINSTANCE TERMINSTANCE > $@; \
58         echo PROTMODE >> $@; \
59         echo CODE    LOADONCALL MOVEABLE DISCARDABLE >> $@; \
60         echo DATA    PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@; \
61         echo EXPORTS >> $@; \
62         grep -v ';+' $< | grep -v ';-' | \
63         sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' -e 's,\([\t ]*\),\1_,' | \
64         awk 'BEGIN {ord=1;} { print($$0 " @" ord " RESIDENTNAME"); ord++;}' >> $@
65
66 endif   #NO_SHARED_LIB
67
68 OS_CFLAGS          = -Wall -Wno-unused -Wpointer-arith -Wcast-align -Wno-switch -Zomf -DDEBUG -DTRACING -g
69
70 ifdef BUILD_OPT
71 ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE))
72         OPTIMIZER += -Os -s
73 else
74         OPTIMIZER += -O2 -s
75 endif
76 DEFINES                 += -UDEBUG -U_DEBUG -DNDEBUG
77 DLLFLAGS                = -DLL -OUT:$@ -MAP:$(@:.dll=.map) $(HIGHMEM_LDFLAG)
78 EXEFLAGS                = -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE $(HIGHMEM_LDFLAG)
79 OBJDIR_TAG              = _OPT
80 else
81 #OPTIMIZER              = -O+ -Oi
82 DEFINES                 += -DDEBUG -D_DEBUG -DDEBUGPRINTS     #HCT Need += to avoid overidding manifest.mn 
83 DLLFLAGS                = -DEBUG -DLL -OUT:$@ -MAP:$(@:.dll=.map) $(HIGHMEM_LDFLAG)
84 EXEFLAGS                = -DEBUG -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE $(HIGHMEM_LDFLAG)
85 OBJDIR_TAG              = _DBG
86 LDFLAGS                 = -DEBUG $(HIGHMEM_LDFLAG)
87 endif   # BUILD_OPT
88
89 # OS/2 use nsinstall that is included in the toolkit.
90 # since we do not wish to support and maintain 3 version of nsinstall in mozilla, nspr and nss
91
92 ifdef BUILD_TREE
93 NSINSTALL_DIR  = $(BUILD_TREE)/nss
94 else
95 NSINSTALL_DIR  = $(CORE_DEPTH)/coreconf/nsinstall
96 endif
97 # NSINSTALL      = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall
98 NSINSTALL       = nsinstall             # HCT4OS2
99 INSTALL         = $(NSINSTALL)
100
101 MKDEPEND_DIR    = $(CORE_DEPTH)/coreconf/mkdepend
102 MKDEPEND        = $(MKDEPEND_DIR)/$(OBJDIR_NAME)/mkdepend
103 MKDEPENDENCIES  = $(OBJDIR_NAME)/depend.mk
104
105 ####################################################################
106 #
107 # One can define the makefile variable NSDISTMODE to control
108 # how files are published to the 'dist' directory.  If not
109 # defined, the default is "install using relative symbolic
110 # links".  The two possible values are "copy", which copies files
111 # but preserves source mtime, and "absolute_symlink", which
112 # installs using absolute symbolic links.
113 #   - THIS IS NOT PART OF THE NEW BINARY RELEASE PLAN for 9/30/97
114 #   - WE'RE KEEPING IT ONLY FOR BACKWARDS COMPATIBILITY
115 ####################################################################
116
117 ifeq ($(NSDISTMODE),copy)
118         # copy files, but preserve source mtime
119         INSTALL  = $(NSINSTALL)
120         INSTALL += -t
121 else
122         ifeq ($(NSDISTMODE),absolute_symlink)
123                 # install using absolute symbolic links
124                 INSTALL  = $(NSINSTALL)
125                 INSTALL += -L `pwd`
126         else
127                 # install using relative symbolic links
128                 INSTALL  = $(NSINSTALL)
129                 INSTALL += -R
130         endif
131 endif
132
133 define MAKE_OBJDIR
134 if test ! -d $(@D); then rm -rf $(@D); $(NSINSTALL) -D $(@D); fi
135 endef
136
137 #
138 # override the definition of DLL_PREFIX in prefix.mk
139 #
140
141 ifndef DLL_PREFIX
142     DLL_PREFIX = $(NULL)
143 endif
144
145 #
146 # override the TARGETS defined in ruleset.mk, adding IMPORT_LIBRARY
147 #
148 ifndef TARGETS
149     TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) $(PROGRAM)
150 endif
151
152
153 ifdef LIBRARY_NAME
154     IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)$(JDK_DEBUG_SUFFIX).lib
155 endif
156