From 8d6ae849d005a0e342e4a632d061dbc26156b725 Mon Sep 17 00:00:00 2001 From: "wtc%netscape.com" Date: Wed, 31 Jan 2001 21:29:31 +0000 Subject: [PATCH] Bugzilla bug #62855: checked in OS/2 makefile patches from Javier Pedemonte . Modified Files: coreconf/OS2.mk coreconf/arch.mk coreconf/prefix.mk coreconf/rules.mk coreconf/suffix.mk nss/Makefile nss/cmd/platlibs.mk nss/lib/ckfw/builtins/config.mk --- security/coreconf/OS2.mk | 72 ++++++++++++++++++++++-- security/coreconf/arch.mk | 21 ++++--- security/coreconf/prefix.mk | 2 +- security/coreconf/rules.mk | 22 +++++++- security/coreconf/suffix.mk | 6 +- security/nss/Makefile | 6 +- security/nss/cmd/platlibs.mk | 8 +++ security/nss/lib/ckfw/builtins/config.mk | 4 +- 8 files changed, 114 insertions(+), 27 deletions(-) diff --git a/security/coreconf/OS2.mk b/security/coreconf/OS2.mk index 64360348f0e..3912f03c820 100644 --- a/security/coreconf/OS2.mk +++ b/security/coreconf/OS2.mk @@ -57,17 +57,20 @@ ASM_SUFFIX = .asm PROG_SUFFIX = .exe +ifdef XP_OS2_EMX + # # On OS/2 we proudly support gbash... # SHELL = GBASH.EXE -CCC = icc -q -DXP_OS2 -DOS2=4 -N10 -LINK = ilink +CCC = gcc +LINK = gcc AR = emxomfar -p256 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 +FILTER = emxexp ifndef NO_SHARED_LIB WRAP_MALLOC_LIB = @@ -82,7 +85,7 @@ DSO_LDOPTS = -Zomf -Zdll -Zmt -Zcrtdll -Zlinker /NOO # DLL_SUFFIX = .dll SHLIB_LDSTARTFILE = SHLIB_LDENDFILE = -endif +endif #NO_SHARED_LIB OS_CFLAGS = -Wall -W -Wno-unused -Wpointer-arith -Wcast-align -Zmtd -Zomf -Zmt -DDEBUG -DDEBUG_wintrinh -DTRACING -g @@ -92,9 +95,8 @@ NSPR_LIBS = -lplds4 -lplc4 -lnspr4 NSPR_INCLUDE_DIR = - ifdef BUILD_OPT -OPTIMIZER = -O+ -Oi +OPTIMIZER = -O6 DEFINES += -UDEBUG -U_DEBUG -DNDEBUG DLLFLAGS = -DLL -OUT:$@ -MAP:$(@:.dll=.map) EXEFLAGS = -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE @@ -106,7 +108,65 @@ DLLFLAGS = -DEBUG -DLL -OUT:$@ -MAP:$(@:.dll=.map) EXEFLAGS = -DEBUG -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE OBJDIR_TAG = _DBG LDFLAGS = -DEBUG -endif +endif # BUILD_OPT + +else # XP_OS2_VACPP + +# +# On OS/2 we proudly support gbash... +# +SHELL = GBASH.EXE +CCC = icc -q -DXP_OS2 -DOS2=4 -N10 +LINK = -ilink +AR = -ilib /NOL /NOI /O:$(subst /,\\,$@) +# Keep AR_FLAGS blank so that we do not have to change rules.mk +AR_FLAGS = +RANLIB = @echo OS2 RANLIB +BSDECHO = @echo OS2 BSDECHO +FILTER = cppfilt -b -p -q + +ifndef NO_SHARED_LIB +WRAP_MALLOC_LIB = +WRAP_MALLOC_CFLAGS = +DSO_CFLAGS = +DSO_PIC_CFLAGS = +MKSHLIB = $(LD) $(DSO_LDOPTS) +MKCSHLIB = $(LD) $(DSO_LDOPTS) +MKSHLIB_FORCE_ALL = +MKSHLIB_UNFORCE_ALL = +DSO_LDOPTS = +# DLL_SUFFIX = .dll +SHLIB_LDSTARTFILE = +SHLIB_LDENDFILE = +endif #NO_SHARED_LIB + +OS_CFLAGS = /Q /qlibansi /Gd /Gm /Su4 /Mp /Tl- +INCLUDES += -I$(CORE_DEPTH)/../dist/include +DEFINES += -DXP_OS2_VACPP -DTCPV40HDRS + +# Where the libraries are +NSPR_LIBS = $(DIST)/lib/nspr4.lib $(DIST)/lib/plc4.lib $(DIST)/lib/plds4.lib +MOZ_COMPONENT_NSPR_LIBS=-L$(DIST)/lib $(NSPR_LIBS) +NSPR_INCLUDE_DIR = + + +ifdef BUILD_OPT +OPTIMIZER = -O+ -Oi +DEFINES += -UDEBUG -U_DEBUG -DNDEBUG +DLLFLAGS = /DLL /O:$@ /INC:_dllentry /MAP:$(@:.dll=.map) +EXEFLAGS = -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE +OBJDIR_TAG = _OPT +LDFLAGS = /FREE /NODEBUG /NOE /LINENUMBERS /nologo +else +OS_CFLAGS += /Ti+ +DEFINES += -DDEBUG -D_DEBUG -DDEBUGPRINTS #HCT Need += to avoid overidding manifest.mn +DLLFLAGS = /DEBUG /DLL /O:$@ /INC:_dllentry /MAP:$(@:.dll=.map) +EXEFLAGS = -DEBUG -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE +OBJDIR_TAG = _DBG +LDFLAGS = /FREE /DE /NOE /LINENUMBERS /nologo +endif # BUILD_OPT + +endif # XP_OS2_VACPP # 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 diff --git a/security/coreconf/arch.mk b/security/coreconf/arch.mk index 57af21a2d1f..ec13b0ac9a5 100644 --- a/security/coreconf/arch.mk +++ b/security/coreconf/arch.mk @@ -138,6 +138,14 @@ ifeq ($(OS_ARCH),Linux) OS_RELEASE := $(basename $(OS_RELEASE)) endif +# +# For OS/2 +# +ifeq ($(OS_ARCH),OS_2) + OS_ARCH = OS2 + OS_RELEASE := $(shell uname -v) +endif + ####################################################################### # Master "Core Components" macros for getting the OS target # ####################################################################### @@ -226,7 +234,11 @@ endif # This variable is used to get OS_CONFIG.mk. # +ifeq ($(OS_ARCH),OS2) +OS_CONFIG = $(OS_TARGET) +else OS_CONFIG = $(OS_TARGET)$(OS_RELEASE) +endif # # OBJDIR_TAG depends on the predefined variable BUILD_OPT, @@ -290,12 +302,3 @@ endif endif endif -# -# For OS/2 -# -ifeq ($(OS_ARCH), OS_2) -OS_ARCH := OS2 -OS_RELEASE := $(shell uname -v) -OS_CONFIG := $(OS_ARCH) -endif - diff --git a/security/coreconf/prefix.mk b/security/coreconf/prefix.mk index 84da1be65a0..fd34edbd745 100644 --- a/security/coreconf/prefix.mk +++ b/security/coreconf/prefix.mk @@ -57,7 +57,7 @@ endif ifndef DLL_PREFIX - ifeq ($(OS_ARCH), WINNT) + ifeq (,$(filter-out OS2 WINNT,$(OS_ARCH))) DLL_PREFIX = else DLL_PREFIX = lib diff --git a/security/coreconf/rules.mk b/security/coreconf/rules.mk index 02eebba4db2..595c3594f53 100644 --- a/security/coreconf/rules.mk +++ b/security/coreconf/rules.mk @@ -296,9 +296,13 @@ ifeq ($(OS_TARGET),WIN16) else $(MKPROG) $(OBJS) -Fe$@ -link $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) endif +else +ifdef XP_OS2_VACPP + $(MKPROG) -Fe$@ $(CFLAGS) $(OBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) else $(MKPROG) -o $@ $(CFLAGS) $(OBJS) $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) endif +endif ifneq ($(POLICY),) -$(PLCYPATCH) $(PLCYPATCH_ARGS) $@ endif @@ -350,8 +354,20 @@ ifeq ($(OS_TARGET), WIN16) else $(LINK_DLL) -MAP $(DLLBASE) $(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS) endif +else +ifeq ($(OS_ARCH),OS2) + @cmd /C "echo LIBRARY $(notdir $(basename $(SHARED_LIBRARY))) INITINSTANCE TERMINSTANCE >$@.def" + @cmd /C "echo PROTMODE >>$@.def" + @cmd /C "echo CODE LOADONCALL MOVEABLE DISCARDABLE >>$@.def" + @cmd /C "echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >>$@.def" + @cmd /C "echo EXPORTS >>$@.def" + @cmd /C "$(FILTER) $(OBJS) >>$@.def" +endif #OS2 +ifdef XP_OS2_VACPP + $(MKSHLIB) $(DLLFLAGS) $(LDFLAGS) $(OBJS) $(SUB_SHLOBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $@.def else $(MKSHLIB) -o $@ $(OBJS) $(SUB_SHLOBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) +endif chmod +x $@ endif endif @@ -415,9 +431,13 @@ ifeq ($(OS_TARGET), WIN16) else $(CC) -Fo$@ -c $(CFLAGS) $*.c endif +else +ifdef XP_OS2_VACPP + $(CC) -Fo$@ -c $(CFLAGS) $*.c else $(CC) -o $@ -c $(CFLAGS) $*.c endif +endif ifneq ($(OS_ARCH), WINNT) $(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.s @@ -858,7 +878,7 @@ endif -include $(DEPENDENCIES) -ifneq ($(OS_ARCH),WINNT) +ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) # Can't use sed because of its 4000-char line length limit, so resort to perl .DEFAULT: @perl -e ' \ diff --git a/security/coreconf/suffix.mk b/security/coreconf/suffix.mk index d8c1f790f3d..2739f9fe6ff 100644 --- a/security/coreconf/suffix.mk +++ b/security/coreconf/suffix.mk @@ -115,13 +115,9 @@ endif # ifndef PROG_SUFFIX - ifeq ($(OS_ARCH), WINNT) + ifeq (,$(filter-out OS2 WINNT,$(OS_ARCH))) PROG_SUFFIX = .exe else - ifeq ($(OS_ARCH), OS2) - PROG_SUFFIX = .exe - else PROG_SUFFIX = - endif endif endif diff --git a/security/nss/Makefile b/security/nss/Makefile index 5b42d51680a..cff6adeedf5 100644 --- a/security/nss/Makefile +++ b/security/nss/Makefile @@ -87,9 +87,9 @@ endif mv $(DIST)/lib/dbm32.lib $(DIST)/lib/dbm.lib else ifeq ($(OS_ARCH),OS2) - cp -r $(DIST)/../include $(DIST) - cp -r $(DIST)/../lib $(DIST) - mv $(DIST)/lib/libmozdbm_s.$(LIB_SUFFIX) $(DIST)/lib/libdbm.$(LIB_SUFFIX) + cp -rf $(DIST)/../include $(DIST) + cp -rf $(DIST)/../lib $(DIST) + cp -f $(DIST)/lib/libmozdbm_s.$(LIB_SUFFIX) $(DIST)/lib/libdbm.$(LIB_SUFFIX) else $(NSINSTALL) -L ../../dist include $(DIST) $(NSINSTALL) -L ../../dist lib $(DIST) diff --git a/security/nss/cmd/platlibs.mk b/security/nss/cmd/platlibs.mk index d9279c4772d..4f486e93807 100644 --- a/security/nss/cmd/platlibs.mk +++ b/security/nss/cmd/platlibs.mk @@ -116,6 +116,13 @@ endif # $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS) # $(EXTRA_SHARED_LIBS) come before $(OS_LIBS), except on AIX. +ifdef XP_OS2_VACPP +EXTRA_SHARED_LIBS += \ + $(DIST)/lib/plc4.lib \ + $(DIST)/lib/plds4.lib \ + $(DIST)/lib/nspr4.lib \ + $(NULL) +else EXTRA_SHARED_LIBS += \ -L$(DIST)/lib/ \ -lplc4 \ @@ -123,6 +130,7 @@ EXTRA_SHARED_LIBS += \ -lnspr4 \ $(NULL) endif +endif else # can't do this in manifest.mn because OS_ARCH isn't defined there. diff --git a/security/nss/lib/ckfw/builtins/config.mk b/security/nss/lib/ckfw/builtins/config.mk index 135931c8d0b..1fc8243497b 100644 --- a/security/nss/lib/ckfw/builtins/config.mk +++ b/security/nss/lib/ckfw/builtins/config.mk @@ -30,7 +30,7 @@ # may use your version of this file under either the MPL or the # GPL. # -CONFIG_CVS_ID = "@(#) $RCSfile: config.mk,v $ $Revision: 1.2 $ $Date: 2001-01-30 19:43:21 $ $Name: $" +CONFIG_CVS_ID = "@(#) $RCSfile: config.mk,v $ $Revision: 1.3 $ $Date: 2001-01-31 21:29:31 $ $Name: $" # # Override TARGETS variable so that only shared libraries @@ -42,7 +42,7 @@ LIBRARY = IMPORT_LIBRARY = PROGRAM = -ifeq ($(OS_ARCH), WINNT) +ifeq (,$(filter-out OS2 WINNT,$(OS_ARCH))) SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).dll endif