|
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 |