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/.
6 MOZ_WIDGET_TOOLKIT = os2
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
15 # Override suffix in suffix.mk
17 # the DLL_SUFFIX must be uppercase for FIPS mode to work. bugzilla 240784
25 # Keep AR_FLAGS blank so that we do not have to change rules.mk
27 RANLIB = @echo OS2 RANLIB
28 BSDECHO = @echo OS2 BSDECHO
32 # GCC for OS/2 currently predefines these, but we don't want them
33 DEFINES += -Uunix -U__unix -U__unix__
35 DEFINES += -DTCPV40HDRS
37 ifeq ($(MOZ_OS2_HIGH_MEMORY),1)
38 HIGHMEM_LDFLAG = -Zhigh-mem
46 MKSHLIB = $(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@
47 MKCSHLIB = $(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@
50 DSO_LDOPTS = -Zomf -Zdll -Zmap $(HIGHMEM_LDFLAG)
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 >> $@; \
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++;}' >> $@
68 OS_CFLAGS = -Wall -Wno-unused -Wpointer-arith -Wcast-align -Wno-switch -Zomf -DDEBUG -DTRACING -g
71 ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE))
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)
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)
86 LDFLAGS = -DEBUG $(HIGHMEM_LDFLAG)
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
93 NSINSTALL_DIR = $(BUILD_TREE)/nss
95 NSINSTALL_DIR = $(CORE_DEPTH)/coreconf/nsinstall
97 # NSINSTALL = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall
98 NSINSTALL = nsinstall # HCT4OS2
99 INSTALL = $(NSINSTALL)
101 MKDEPEND_DIR = $(CORE_DEPTH)/coreconf/mkdepend
102 MKDEPEND = $(MKDEPEND_DIR)/$(OBJDIR_NAME)/mkdepend
103 MKDEPENDENCIES = $(OBJDIR_NAME)/depend.mk
105 ####################################################################
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 ####################################################################
117 ifeq ($(NSDISTMODE),copy)
118 # copy files, but preserve source mtime
119 INSTALL = $(NSINSTALL)
122 ifeq ($(NSDISTMODE),absolute_symlink)
123 # install using absolute symbolic links
124 INSTALL = $(NSINSTALL)
127 # install using relative symbolic links
128 INSTALL = $(NSINSTALL)
134 if test ! -d $(@D); then rm -rf $(@D); $(NSINSTALL) -D $(@D); fi
138 # override the definition of DLL_PREFIX in prefix.mk
146 # override the TARGETS defined in ruleset.mk, adding IMPORT_LIBRARY
149 TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) $(PROGRAM)
154 IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)$(JDK_DEBUG_SUFFIX).lib