| # |
| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| MOZ_WIDGET_TOOLKIT = os2 |
| |
| # XP_PC is for Window and OS2 on Intel X86 |
| # XP_OS2 is strictly for OS2 only |
| XP_DEFINE += -DXP_PC=1 -DXP_OS2=1 |
| |
| # Override prefix |
| LIB_PREFIX = $(NULL) |
| |
| # Override suffix in suffix.mk |
| LIB_SUFFIX = lib |
| # the DLL_SUFFIX must be uppercase for FIPS mode to work. bugzilla 240784 |
| DLL_SUFFIX = DLL |
| PROG_SUFFIX = .exe |
| |
| |
| CCC = gcc |
| LD = gcc |
| AR = emxomfar r $@ |
| # Keep AR_FLAGS blank so that we do not have to change rules.mk |
| AR_FLAGS = |
| RANLIB = @echo OS2 RANLIB |
| BSDECHO = @echo OS2 BSDECHO |
| IMPLIB = emximp -o |
| FILTER = emxexp -o |
| |
| # GCC for OS/2 currently predefines these, but we don't want them |
| DEFINES += -Uunix -U__unix -U__unix__ |
| |
| DEFINES += -DTCPV40HDRS |
| |
| ifeq ($(MOZ_OS2_HIGH_MEMORY),1) |
| HIGHMEM_LDFLAG = -Zhigh-mem |
| endif |
| |
| ifndef NO_SHARED_LIB |
| DSO_CFLAGS = |
| DSO_PIC_CFLAGS = |
| MKSHLIB = $(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@ |
| MKCSHLIB = $(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@ |
| MKSHLIB_FORCE_ALL = |
| MKSHLIB_UNFORCE_ALL = |
| DSO_LDOPTS = -Zomf -Zdll -Zmap $(HIGHMEM_LDFLAG) |
| SHLIB_LDSTARTFILE = |
| SHLIB_LDENDFILE = |
| ifdef MAPFILE |
| MKSHLIB += $(MAPFILE) |
| endif |
| PROCESS_MAP_FILE = \ |
| echo LIBRARY $(LIBRARY_NAME)$(LIBRARY_VERSION) INITINSTANCE TERMINSTANCE > $@; \ |
| echo PROTMODE >> $@; \ |
| echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $@; \ |
| echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@; \ |
| echo EXPORTS >> $@; \ |
| grep -v ';+' $< | grep -v ';-' | \ |
| sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' -e 's,\([\t ]*\),\1_,' | \ |
| awk 'BEGIN {ord=1;} { print($$0 " @" ord " RESIDENTNAME"); ord++;}' >> $@ |
| |
| endif #NO_SHARED_LIB |
| |
| OS_CFLAGS = -Wall -Wno-unused -Wpointer-arith -Wcast-align -Wno-switch -Zomf -DDEBUG -DTRACING -g |
| |
| ifdef BUILD_OPT |
| ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE)) |
| OPTIMIZER += -Os -s |
| else |
| OPTIMIZER += -O2 -s |
| endif |
| DEFINES += -UDEBUG -U_DEBUG -DNDEBUG |
| DLLFLAGS = -DLL -OUT:$@ -MAP:$(@:.dll=.map) $(HIGHMEM_LDFLAG) |
| EXEFLAGS = -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE $(HIGHMEM_LDFLAG) |
| OBJDIR_TAG = _OPT |
| else |
| #OPTIMIZER = -O+ -Oi |
| DEFINES += -DDEBUG -D_DEBUG -DDEBUGPRINTS #HCT Need += to avoid overidding manifest.mn |
| DLLFLAGS = -DEBUG -DLL -OUT:$@ -MAP:$(@:.dll=.map) $(HIGHMEM_LDFLAG) |
| EXEFLAGS = -DEBUG -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE $(HIGHMEM_LDFLAG) |
| OBJDIR_TAG = _DBG |
| LDFLAGS = -DEBUG $(HIGHMEM_LDFLAG) |
| endif # BUILD_OPT |
| |
| # OS/2 use nsinstall that is included in the toolkit. |
| # since we do not wish to support and maintain 3 version of nsinstall in mozilla, nspr and nss |
| |
| ifdef BUILD_TREE |
| NSINSTALL_DIR = $(BUILD_TREE)/nss |
| else |
| NSINSTALL_DIR = $(CORE_DEPTH)/coreconf/nsinstall |
| endif |
| # NSINSTALL = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall |
| NSINSTALL = nsinstall # HCT4OS2 |
| INSTALL = $(NSINSTALL) |
| |
| #################################################################### |
| # |
| # One can define the makefile variable NSDISTMODE to control |
| # how files are published to the 'dist' directory. If not |
| # defined, the default is "install using relative symbolic |
| # links". The two possible values are "copy", which copies files |
| # but preserves source mtime, and "absolute_symlink", which |
| # installs using absolute symbolic links. |
| # - THIS IS NOT PART OF THE NEW BINARY RELEASE PLAN for 9/30/97 |
| # - WE'RE KEEPING IT ONLY FOR BACKWARDS COMPATIBILITY |
| #################################################################### |
| |
| ifeq ($(NSDISTMODE),copy) |
| # copy files, but preserve source mtime |
| INSTALL = $(NSINSTALL) |
| INSTALL += -t |
| else |
| ifeq ($(NSDISTMODE),absolute_symlink) |
| # install using absolute symbolic links |
| INSTALL = $(NSINSTALL) |
| INSTALL += -L `pwd` |
| else |
| # install using relative symbolic links |
| INSTALL = $(NSINSTALL) |
| INSTALL += -R |
| endif |
| endif |
| |
| define MAKE_OBJDIR |
| if test ! -d $(@D); then rm -rf $(@D); $(NSINSTALL) -D $(@D); fi |
| endef |
| |
| # |
| # override the definition of DLL_PREFIX in prefix.mk |
| # |
| |
| ifndef DLL_PREFIX |
| DLL_PREFIX = $(NULL) |
| endif |
| |
| ifndef IMPORT_LIB_SUFFIX |
| IMPORT_LIB_SUFFIX = .$(LIB_SUFFIX) |
| endif |
| |
| # |
| # override the TARGETS defined in ruleset.mk, adding IMPORT_LIBRARY |
| # |
| ifndef TARGETS |
| TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) $(PROGRAM) |
| endif |
| |