diff --git a/mozilla/build/unix/Makefile.in b/mozilla/build/unix/Makefile.in index 5ba06498ea6..1d3176f62a0 100644 --- a/mozilla/build/unix/Makefile.in +++ b/mozilla/build/unix/Makefile.in @@ -80,6 +80,11 @@ libs:: mozilla-config libs:: $(srcdir)/run-mozilla.sh $(pkg_config_files) $(INSTALL) $< $(DIST)/bin +ifeq ($(OS_ARCH),OpenVMS) +libs:: vms/mozilla.com vms/install.com vms/getinfo.com + $(INSTALL) $? $(DIST)/bin +endif + install:: run-mozilla.sh $(SYSINSTALL) $(IFLAGS2) $< $(DESTDIR)$(mozappdir) diff --git a/mozilla/build/unix/vms/component_symvec.opt b/mozilla/build/unix/vms/component_symvec.opt new file mode 100755 index 00000000000..83a00022a33 --- /dev/null +++ b/mozilla/build/unix/vms/component_symvec.opt @@ -0,0 +1,6 @@ +! Component global symbol file, used for all true XPCOM components (those +! which have IS_COMPONENT defined in their Makefile. +! +GSMATCH=LEQUAL,1,1 +case_sensitive=YES +SYMBOL_VECTOR=(NSGetModule=PROCEDURE) diff --git a/mozilla/build/unix/vms/getinfo.com b/mozilla/build/unix/vms/getinfo.com new file mode 100755 index 00000000000..5b5107210f2 --- /dev/null +++ b/mozilla/build/unix/vms/getinfo.com @@ -0,0 +1,36 @@ +$ verify = 'f$verify(0) +$ if p1 .eqs. "DECW" then goto decw +$! +$! This command file in not used by the Mozilla/CSWB software. +$! It is here because if you report a software problem you may be asked +$! to run it and send the output back to the support specialist. +$! +$ set verify +$ set noon +$ show process /quota +$ show display +$ write sys$output f$environment("procedure") +$ show log /ful sys$disk,sys$login,tmp,home +$ show log /ful decc* +$ dir sys$login.; +$ run sys$common:[syshlp.examples.decw.utils]xdpyinfo.exe +$ show system /noprocess +$ ucx show version +$ type sys$sysroot:[sysmgr]decw$private_server_setup.com +$ set noverify +$ @sys$update:decw$versions all +$decw: +$ c = "" +$f_loop: +$ pid = f$pid(c) +$ if pid .eqs. "" +$ then +$ write sys$output "Unable to find DECW$SERVER process" +$ exit +$ endif +$ if f$getjpi(pid,"prcnam") .nes. "DECW$SERVER_0" then goto f_loop +$loop: +$ quota = f$getjpi(pid,"pgflquota") +$ inuse = f$getjpi(pid,"pagfilcnt") +$ write sys$output f$fao("!UL remaining out of !UL at !%D",inuse,quota,0) +$ if verify then set verify diff --git a/mozilla/build/unix/vms/install.com b/mozilla/build/unix/vms/install.com new file mode 100755 index 00000000000..aa91b9c0d88 --- /dev/null +++ b/mozilla/build/unix/vms/install.com @@ -0,0 +1,52 @@ +$! Command file to install/deinstall Mozilla image. +$! This command file must exist in the root Mozilla directory (where the main +$! images and shareables reside). +$! +$! P1 = INSTALL command to use. +$! Default is "ADD /OPEN /HEADER_RESIDENT /SHARE" +$! To remove previously installed images pass REMOVE as P1. +$! +$ saved_dir = f$environment("default") +$! +$ if p1 .eqs. "" then p1 = "add /open /head /share" +$ me = f$envir("procedure") +$ here = f$parse(me,,,"device") + f$parse(me,,,"directory") +$! +$! Mozilla-Bin +$! +$ call do_one "''p1'" "''here'mozilla-bin." +$! +$! All the .so files in the main directory. +$! +$ call do_many "''p1'" "''here'*.so" +$! +$! All the .so files in the components directory. +$! +$ set default 'here' +$ set default [.components] +$ me = f$envir("default") +$ here = f$parse(me,,,"device") + f$parse(me,,,"directory") +$ call do_many "''p1'" "''here'*.so" +$! +$ set default 'saved_dir' +$ exit +$! +$do_one: +$ subroutine +$ write sys$output "Doing ",p2 +$ install 'p1' 'p2' +$ endsubroutine +$! +$! +$do_many: +$ subroutine +$loop: +$ f=f$search(p2) +$ if f .nes. "" +$ then +$ v=f$parse(f,,,"version") +$ f=f-v +$ call do_one "''p1'" "''f'" +$ goto loop +$ endif +$ endsubroutine diff --git a/mozilla/build/unix/vms/libxpcom_symvec.opt b/mozilla/build/unix/vms/libxpcom_symvec.opt new file mode 100755 index 00000000000..110ae399fba --- /dev/null +++ b/mozilla/build/unix/vms/libxpcom_symvec.opt @@ -0,0 +1,26 @@ +! Fixed section of symbol vector for LIBXPCOM (non-debug) +! +GSMATCH=LEQUAL,2,2 +case_sensitive=YES +! +! -------------------------------------------------------------------------- +! Ident 2,1 introduced for M0.9.4 +! -------------------------------------------------------------------------- +! +SYMBOL_VECTOR=(CXX$assgnfrmhlpr13nsCMPt3okfmbt=PROCEDURE) +SYMBOL_VECTOR=(CXX$clk16nsQeryntrfcxnk434ulf1t=PROCEDURE) +SYMBOL_VECTOR=(CXX$clk17nsGtSrvcByCDxnk20ffnk0=PROCEDURE) +SYMBOL_VECTOR=(__dt__13nsCOMPtr_basexv=PROCEDURE) +! +! -------------------------------------------------------------------------- +! Ident 2,2 introduced for Mozilla 1.1 (and hence CSWB post 1.0). +! -------------------------------------------------------------------------- +! +SYMBOL_VECTOR=(iid__L0__GetIID__9nsIModulexv=DATA) +SYMBOL_VECTOR=(iid__L0__GetIID__10nsIFactoryxv=DATA) +SYMBOL_VECTOR=(CXX$iidL0GtID11nsRnnblxv3t05kum=DATA) +SYMBOL_VECTOR=(CXX$GtGlblSrvcMngr16nsSr1vcg2p7=PROCEDURE) +! +! -------------------------------------------------------------------------- +! End of fixed section +! -------------------------------------------------------------------------- diff --git a/mozilla/build/unix/vms/mozilla.com b/mozilla/build/unix/vms/mozilla.com new file mode 100755 index 00000000000..14d67b327cc --- /dev/null +++ b/mozilla/build/unix/vms/mozilla.com @@ -0,0 +1,151 @@ +$! Command file to run Mozilla. +$! This command file must exist in the root Mozilla directory (where the main +$! images and shareables reside). +$! +$ moz_user = f$edit(f$getjpi("","username"),"trim") +$ moz_cwd = f$environment("default") +$ moz_image = f$trnlnm("MOZILLA_IMAGE") +$ if moz_image .eqs. "" then moz_image = "mozilla-bin" +$ moz_image = f$edit(moz_image,"lowercase") +$! +$ moz_self = f$envir("procedure") +$ moz_dir = f$parse(moz_self,,,"device") + f$parse(moz_self,,,"directory") +$! +$ moz_gblpages_needed = (336 * 120/100) +$ moz_gblsects_needed = (1 * 120/100) +$ moz_gblpages_actual = f$getsyi("free_gblpages") +$ moz_gblsects_actual = f$getsyi("free_gblsects") +$ moz_wait = 0 +$ if moz_gblpages_actual .lt. moz_gblpages_needed +$ then +$ write sys$output - + f$fao("WARNING, estimated global pages needed=!UL, available=!UL",- + moz_gblpages_needed, moz_gblpages_actual) +$ moz_wait = 1 +$ endif +$ if moz_gblsects_actual .lt. moz_gblsects_needed +$ then +$ write sys$output - + f$fao("WARNING, estimated global sections needed=!UL, available=!UL",- + moz_gblsects_needed, moz_gblsects_actual) +$ moz_wait = 1 +$ endif +$ if moz_wait .and. (f$mode() .eqs. "INTERACTIVE") +$ then +$ type sys$input + + The above system parameter(s) may not be sufficient to + successfully run Mozilla. + +$ read/prompt="Do you wish to continue [NO]: " sys$command moz_ans +$ if .not. moz_ans then exit +$ endif +$! +$! We need the directory as a unix-style spec. +$! +$ moz_unix = "/" + f$parse(moz_self,,,"device") - ":" +$ moz_self_dir = f$parse(moz_self,,,"directory") - "[" - "]" - "<" - ">" +$ i=0 +$uloop: +$ e=f$element(i,".",moz_self_dir) +$ if e .nes. "." +$ then +$ moz_unix = moz_unix + "/" + e +$ i=i+1 +$ goto uloop +$ endif +$ moz_unix = f$edit(moz_unix,"lowercase") +$! +$ moz_found_one = 0 +$so_loop: +$ moz_so_file = f$search("''moz_dir'*.so") +$ if moz_so_file .nes. "" +$ then +$ name = f$parse(moz_so_file,,,"name") +$ define /user 'name' 'moz_dir''name'.so +$ moz_found_one = 1 +$ goto so_loop +$ endif +$ if .not. moz_found_one +$ then +$ write sys$output "Unable to locate Mozilla images. Most likely reason is" +$ write sys$output "because the protection on the directory" +$ write sys$output moz_dir +$ write sys$output "does not allow you READ access." +$ exit +$ endif +$! +$ ipc_shr = f$trnlnm("ucx$ipc_shr") - ".EXE" + ".EXE" +$ if (f$locate("MULTINET",ipc_shr) .ne. f$length(ipc_shr)) .or. - + (f$locate("TCPWARE",ipc_shr) .ne. f$length(ipc_shr)) +$ then +$ define /user VMS_NULL_DL_NAME 'ipc_shr' +$ else +$ define /user VMS_NULL_DL_NAME SYS$SHARE:TCPIP$IPC_SHR.EXE +$ endif +$ define /user GETIPNODEBYNAME TCPIP$GETIPNODEBYNAME +$ define /user GETIPNODEBYADDR TCPIP$GETIPNODEBYADDR +$ define /user FREEHOSTENT TCPIP$FREEHOSTENT +$! +$! These logicals define how files are created/opened. +$! The old code used: "shr=get,put", "rfm=stmlf", "deq=500", "fop=dfw,tef" +$! +$! Executables +$ define /user VMS_OPEN_ARGS_1 ".EXE.SO.SFX_AXPEXE.SFX_VAXEXE", - + "ctx=stm", "rfm=fix", "rat=none", "mrs=512" +$! +$! VMS savesets +$ define /user VMS_OPEN_ARGS_2 ".BCK.SAV", - + "ctx=stm", "rfm=fix", "rat=none", "mrs=32256" +$! +$! Binary files. STM doesn't work, needs to be STMLF. +$ define /user VMS_OPEN_ARGS_3 "..DB.GIF.JAR.JPG.MAB.MFASL.MSF.WAV.XPM.XPT", - + "ctx=stm", "rfm=stmlf", "rat=none" +$! +$! Text files - covered by the catchall +$! ".BAK.COM.CSS.DAT.DTD.HTM.HTML.JS.RDF.NET.ORG.SH.SRC.TBL.TXT.XML.XUL" +$! +$ define /user VMS_OPEN_ARGS_4 " ",- + "ctx=stm", "rfm=stmlf", "rat=cr" +$! +$ if f$trnlnm("USER") .eqs. "" then define /user user "''moz_user'" +$ if f$trnlnm("LOGNAME") .eqs. "" then define /user logname "''moz_cwd'" +$ define /user MOZILLA_FIVE_HOME "''moz_unix'" +$ define /user VMS_USE_VMS_DEF_PROT 1 +$ define /user VMS_ACCESS_FIX_WOK 1 +$! define /user VMS_FILE_OPEN_MODE 3 +$! define /user VMS_POLL_TIMER_MIN 10 +$! define /user VMS_POLL_TIMER_DELTA 0 +$! define /user VMS_POLL_TIMER_MAX 200 +$! define /user NSPR_LOG_MODULES "all:5" +$! define /user NSPR_LOG_FILE dkb100:[work]log.log +$! define /user VMS_TRACE_FILENAMES 1 +$! +$ define /user DECC$EFS_CASE_PRESERVE 0 +$! +$! GTK key mapping mode: 0=none, 1=LK, 2=PC +$ if f$trnlnm("GTK_KEY_MAPPING_MODE") .eqs. "" then - + define /user GTK_KEY_MAPPING_MODE 1 +$! +$ write sys$output "Starting ''moz_image'..." +$ mcr 'moz_dir''moz_image'. 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' +$ set default 'moz_dir' +$ if f$search("[.chrome]*.*;-1") .nes. "" +$ then +$ set default [.chrome] +$ moz_chrome = f$environment("default") +$ purge 'moz_chrome' +$ moz_ver = f$parse(f$search("''moz_chrome'all-skins.rdf"),,,"version") - ";" +$ if moz_ver .gt. 10000 then rename 'moz_chrome'*.rdf *.*;1 +$ endif +$! +$ moz_keep = f$trnlnm("MOZILLA_PURGE_KEEP") +$ if moz_keep .eqs. "" then moz_keep = "5" +$ set default sys$login +$ if f$search("[._MOZILLA.*]*.*") .nes. "" +$ then +$ purge /keep='moz_keep' [._mozilla.*...] +$ endif +$ set default 'moz_cwd' +$! +$ exit diff --git a/mozilla/config/OpenVMS.mk b/mozilla/config/OpenVMS.mk deleted file mode 100644 index cb3658cdfaf..00000000000 --- a/mozilla/config/OpenVMS.mk +++ /dev/null @@ -1,71 +0,0 @@ -# -# The contents of this file are subject to the Netscape Public -# License Version 1.1 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.mozilla.org/NPL/ -# -# Software distributed under the License is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is Netscape -# Communications Corporation. Portions created by Netscape are -# Copyright (C) 1998 Netscape Communications Corporation. All -# Rights Reserved. -# -# Contributor(s): -# -# -# Even though we use AUTOCONF, there are just too many things that need -# fixing up to do it any other way than via an architecture specific file. -# -# If we're not using NSBUILDROOT, then make sure we use multiple object -# directories. We want this name to be relatively short, and to be different -# from what NSPR uses (so that we can wipe out Mozilla objects without -# wiping NSPR objects. - -# We don't want -KPIC as it forces the compiler to generate a .i file. -DSO_PIC_CFLAGS = - -# We don't want the standard set of UNIX libraries. -OS_LIBS = - -# Define VMS -OS_CFLAGS += -DVMS -DVMS_AS_IS -Wc,names=\(short,as\) -OS_CXXFLAGS += -DVMS -DVMS_AS_IS -Wc,names=\(short,as\) - -# If we are building POSIX images, then these HOST symbols get used. -# We don't want to compile any POSIX image debug, so always remove -g. -# xpild accvio's if built with -O, so don't. -HOST_CC = c89 -HOST_CXX = cxx -ifeq ($(PROGRAM),xpidl) -HOST_CFLAGS = $(filter-out -g -O,$(OS_CFLAGS)) -DGETCWD_CANT_MALLOC -else -HOST_CFLAGS = $(filter-out -g -O,$(OS_CFLAGS)) -DGETCWD_CANT_MALLOC -O -endif -HOST_CXXFLAGS = $(filter-out -g -O,$(OS_CXXFLAGS)) -O - -# In addition, we want to lose the OS_FLAGS for POSIX builds. -ifdef INTERNAL_TOOLS -OS_LDFLAGS = -endif - -# Although IS_COMPONENT is set in the Makefile, for xpconnect it is not set -# until AFTER config.mk (and therefore this file) included, hence it appears -# as unset. So for this module only, set IS_COMPONENT here. -ifeq ($(MODULE),xpconnect) -IS_COMPONENT = 1 -endif - -# This is where our Sharable Image trickery goes. -AS = vmsas $(OS_CFLAGS) -ifdef IS_COMPONENT -OS_LDFLAGS += IS_COMPONENT SRCDIR=$(srcdir) -endif -LD = vmsld $(OS_LDFLAGS) -DSO_LDOPTS = -MKSHLIB = $(LD) diff --git a/mozilla/config/config.mk b/mozilla/config/config.mk index 5c16aac2344..7e13fbd5fbd 100644 --- a/mozilla/config/config.mk +++ b/mozilla/config/config.mk @@ -107,9 +107,8 @@ endif ifneq (,$(findstring OpenVMS,$(OS_ARCH))) OS_ARCH := OpenVMS OS_RELEASE := $(shell uname -v) -CPU_ARCH := $(shell uname -Wh) +CPU_ARCH := $(shell uname -p) CPU_ARCH_TAG := _$(CPU_ARCH) -PERL := perl endif ifeq ($(OS_ARCH),QNX) ifeq ($(OS_TARGET),NTO) @@ -502,10 +501,6 @@ XPIDL_COMPILE = $(DIST)/bin/xpidl$(BIN_SUFFIX) XPIDL_LINK = $(DIST)/bin/xpt_link$(BIN_SUFFIX) endif -ifeq ($(OS_ARCH),OpenVMS) -include $(topsrcdir)/config/$(OS_ARCH).mk -endif - REQ_INCLUDES = $(foreach d,$(REQUIRES),-I$(DIST)/include/$d) INCLUDES = $(LOCAL_INCLUDES) $(REQ_INCLUDES) -I$(PUBLIC) -I$(DIST)/include $(OS_INCLUDES) diff --git a/mozilla/config/make-jars.pl b/mozilla/config/make-jars.pl index e0636e74497..a4e77a8017b 100644 --- a/mozilla/config/make-jars.pl +++ b/mozilla/config/make-jars.pl @@ -19,6 +19,7 @@ use Cwd; use File::Copy; use File::Path; use IO::File; +use Config; require mozLock; import mozLock; @@ -31,6 +32,11 @@ if (defined($::opt_s)) { $baseFilesDir = $::opt_s; } +my $maxCmdline = 4000; +if ($Config{'archname'} =~ /VMS/) { + $maxCmdline = 200; +} + my $chromeDir = "."; if (defined($::opt_d)) { $chromeDir = $::opt_d; @@ -142,10 +148,10 @@ sub JarIt #print "zip $zipmoveopt -u ../$jarfile.jar $args\n"; - # Handle posix cmdline limits (4096) - while (length($args) > 4000) { + # Handle posix cmdline limits + while (length($args) > $maxCmdline) { #print "Exceeding POSIX cmdline limit: " . length($args) . "\n"; - my $subargs = substr($args, 0, 3999); + my $subargs = substr($args, 0, $maxCmdline-1); my $pos = rindex($subargs, " "); $subargs = substr($args, 0, $pos); $args = substr($args, $pos); @@ -167,9 +173,9 @@ sub JarIt my $err = 0; print "+++ overriding $overrides\n"; - while (length($args) > 4000) { + while (length($args) > $maxCmdline) { #print "Exceeding POSIX cmdline limit: " . length($args) . "\n"; - my $subargs = substr($args, 0, 3999); + my $subargs = substr($args, 0, $maxCmdline-1); my $pos = rindex($subargs, " "); $subargs = substr($args, 0, $pos); $args = substr($args, $pos); diff --git a/mozilla/config/nsinstall.c b/mozilla/config/nsinstall.c index 93e5b118eb1..ce0a52f3abd 100644 --- a/mozilla/config/nsinstall.c +++ b/mozilla/config/nsinstall.c @@ -199,6 +199,7 @@ copyfile( char *name, char *toname, mode_t mode, char *group, char *owner, if (ftruncate(tofd, sb.st_size) < 0) fail("cannot truncate %s", toname); +#if !defined(VMS) if (dotimes) { utb.actime = sb.st_atime; @@ -212,6 +213,7 @@ copyfile( char *name, char *toname, mode_t mode, char *group, char *owner, if (chmod(toname, mode) < 0) #endif fail("cannot change mode of %s", toname); +#endif if ((owner || group) && fchown(tofd, uid, gid) < 0) fail("cannot change owner of %s", toname); @@ -219,6 +221,17 @@ copyfile( char *name, char *toname, mode_t mode, char *group, char *owner, if (close(tofd) < 0) fail("cannot write to %s", toname); close(fromfd); +#if defined(VMS) + if (chmod(toname, (mode & (S_IREAD | S_IWRITE))) < 0) + fail("cannot change mode of %s", toname); + if (dotimes) + { + utb.actime = sb.st_atime; + utb.modtime = sb.st_mtime; + if (utime(toname, &utb) < 0) + fail("cannot set times of %s", toname); + } +#endif } static void diff --git a/mozilla/config/rules.mk b/mozilla/config/rules.mk index d88491f1d46..1a238e2882d 100644 --- a/mozilla/config/rules.mk +++ b/mozilla/config/rules.mk @@ -287,6 +287,19 @@ GARBAGE_DIRS += SunWS_cache endif endif +ifeq ($(OS_ARCH),OpenVMS) +GARBAGE += $(wildcard *.c*_defines) +ifdef SHARED_LIBRARY +VMS_SYMVEC_FILE = $(SHARED_LIBRARY:$(DLL_SUFFIX)=_symvec.opt) +VMS_SYMVEC_FILE_MODULE = $(topsrcdir)/build/unix/vms/$(notdir $(VMS_SYMVEC_FILE)) +VMS_SYMVEC_FILE_COMP = $(topsrcdir)/build/unix/vms/component_symvec.opt +GARBAGE += $(VMS_SYMVEC_FILE) +ifdef IS_COMPONENT +DSO_LDOPTS := $(filter-out -auto_symvec,$(DSO_LDOPTS)) $(VMS_SYMVEC_FILE) +endif +endif +endif + XPIDL_GEN_DIR = _xpidlgen ifdef MOZ_UPDATE_XTERM @@ -750,7 +763,7 @@ $(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_EXTRA_DEPS) Makefile Makefile.in ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH)) $(HOST_LD) /NOLOGO /OUT:$@ /PDB:$(PDBFILE) $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LIBS) $(EXTRA_LIBS) else - $(HOST_CC) -o $@ $(HOST_CFLAGS) $(HOST_PROGOBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS) + $(HOST_CC) -o $@ $(HOST_CFLAGS) $(HOST_LDFLAGS) $(HOST_PROGOBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS) endif # @@ -894,7 +907,20 @@ endif $(SHARED_LIBRARY): $(OBJS) $(LOBJS) $(DEF_FILE) $(RESFILE) $(SHARED_LIBRARY_LIBS) $(EXTRA_DEPS) Makefile Makefile.in rm -f $@ ifneq ($(OS_ARCH),OS2) -ifneq ($(OS_ARCH),OpenVMS) +ifeq ($(OS_ARCH),OpenVMS) + @if test ! -f $(VMS_SYMVEC_FILE); then \ + if test -f $(VMS_SYMVEC_FILE_MODULE); then \ + echo Creating specific component options file $(VMS_SYMVEC_FILE); \ + cp $(VMS_SYMVEC_FILE_MODULE) $(VMS_SYMVEC_FILE); \ + fi; \ + fi +ifdef IS_COMPONENT + @if test ! -f $(VMS_SYMVEC_FILE); then \ + echo Creating generic component options file $(VMS_SYMVEC_FILE); \ + cp $(VMS_SYMVEC_FILE_COMP) $(VMS_SYMVEC_FILE); \ + fi +endif +endif ifdef NO_LD_ARCHIVE_FLAGS ifdef SHARED_LIBRARY_LIBS @rm -f $(SUB_SHLOBJS) @@ -903,18 +929,6 @@ endif # SHARED_LIBRARY_LIBS endif # NO_LD_ARCHIVE_FLAGS $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(LOBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) @rm -f foodummyfilefoo $(SUB_SHLOBJS) -else - @touch no-such-file.vms; rm -f no-such-file.vms $(SUB_LOBJS) -ifndef IS_COMPONENT - @if test ! -f VMSuni.opt; then \ - echo "Creating universal symbol option file VMSuni.opt"; \ - for lib in $(SHARED_LIBRARY_LIBS); do $(AR_EXTRACT) $${lib}; $(CLEANUP2); done; \ - create_opt_uni $(OBJS) $(SUB_LOBJS); \ - fi - @touch no-such-file.vms; rm -f no-such-file.vms $(SUB_LOBJS) -endif - $(MKSHLIB) -o $@ $(OBJS) $(LOBJS) $(EXTRA_DSO_LDOPTS) $(EXTRA_LIBS) VMSuni.opt; -endif else # OS2 ifeq ($(MOZ_OS2_TOOLS),VACPP) $(MKSHLIB) /O:$@ /DLL /INC:_dllentry $(LDFLAGS) $(OBJS) $(LOBJS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) @@ -1632,6 +1646,7 @@ showbuild: showhost: @echo "HOST_CC = $(HOST_CC)" @echo "HOST_CFLAGS = $(HOST_CFLAGS)" + @echo "HOST_LDFLAGS = $(HOST_LDFLAGS)" @echo "HOST_LIBS = $(HOST_LIBS)" @echo "HOST_EXTRA_LIBS = $(HOST_EXTRA_LIBS)" @echo "HOST_EXTRA_DEPS = $(HOST_EXTRA_DEPS)" diff --git a/mozilla/configure.in b/mozilla/configure.in index c4dffe6232a..369ac68e649 100644 --- a/mozilla/configure.in +++ b/mozilla/configure.in @@ -502,10 +502,6 @@ if test -n "$CROSS_COMPILE"; then case "${target_os}" in linux*) OS_ARCH=Linux ;; solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; - openvms*) OS_TARGET=`uname -s` - OS_ARCH=`uname -s | sed -e 's|/|_|g'` - OS_RELEASE=`uname -r` - OS_TEST=`uname -Wh`;; esac else OS_TARGET=`uname -s` @@ -1187,16 +1183,18 @@ case "$target" in ;; *-openvms*) - if test "$OS_TARGET" = "POSIX_for_OpenVMS_AXP"; then - dnl Hack... - _OPENVMS_CROSS_COMPILE=1 - fi AC_DEFINE(NO_PW_GECOS) AC_DEFINE(NO_UDSOCK) AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER) USE_PTHREADS=1 MKSHLIB_FORCE_ALL='-all' MKSHLIB_UNFORCE_ALL='-none' + AS='as' + AS_DASH_C_FLAG='-Wc/names=as_is' + AR_FLAGS='c $@' + DSO_LDOPTS='-shared -auto_symvec' + DSO_PIC_CFLAGS= + COMPAQ_CXX=1 ;; @@ -4450,10 +4448,6 @@ if test -n "$CROSS_COMPILE"; then HOST_LIBIDL_CFLAGS="$LIBIDL_CFLAGS" HOST_LIBIDL_LIBS="$LIBIDL_LIBS" fi - if test "$OS_TARGET" = "POSIX_for_OpenVMS_AXP"; then - LIBIDL_CFLAGS=`${LIBIDL_CONFIG}-VMS --cflags` - LIBIDL_LIBS=`${LIBIDL_CONFIG}-VMS --libs` - fi fi if test -z "$SKIP_PATH_CHECKS" && test -z "$MOZ_ENABLE_GTK2"; then @@ -4848,7 +4842,7 @@ elif test "$OS_ARCH" = "Darwin"; then AC_DEFINE(UNIX_EMBED) AC_DEFINE(UNIX_LDAP) AC_DEFINE(UNIX_ASYNC_DNS) -elif test "$OS_ARCH" = "POSIX_for_OpenVMS_AXP"; then +elif test "$OS_ARCH" = "OpenVMS"; then AC_DEFINE(XP_UNIX) AC_DEFINE(UNIX_ASYNC_DNS) else diff --git a/mozilla/embedding/browser/gtk/tests/Makefile.in b/mozilla/embedding/browser/gtk/tests/Makefile.in index 299a7a56196..24de5700276 100644 --- a/mozilla/embedding/browser/gtk/tests/Makefile.in +++ b/mozilla/embedding/browser/gtk/tests/Makefile.in @@ -100,3 +100,7 @@ ifndef GNU_CC DEFINES += -D_TIME_H=1 endif endif + +ifeq ($(OS_ARCH), OpenVMS) +DEFINES += -DGENERIC_MOTIF_REDEFINES +endif diff --git a/mozilla/gfx/src/gtk/Makefile.in b/mozilla/gfx/src/gtk/Makefile.in index 123426f39e4..6a2c0169543 100644 --- a/mozilla/gfx/src/gtk/Makefile.in +++ b/mozilla/gfx/src/gtk/Makefile.in @@ -178,6 +178,11 @@ DEFINES += -D_TIME_H=1 endif endif +ifeq ($(OS_ARCH), OpenVMS) +DEFINES += -DGENERIC_MOTIF_REDEFINES +OS_CXXFLAGS += -Wc,warn=disa=NOSIMPINT +endif + ifdef MOZ_ENABLE_POSTSCRIPT DEFINES += -DUSE_POSTSCRIPT endif diff --git a/mozilla/js/src/Makefile.in b/mozilla/js/src/Makefile.in index a19a624690c..719a1706262 100644 --- a/mozilla/js/src/Makefile.in +++ b/mozilla/js/src/Makefile.in @@ -238,7 +238,7 @@ endif LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS)) # BeOS and HP-UX do not require the extra linking of "-lm" -ifeq (,$(filter BeOS HP-UX WINNT,$(OS_ARCH))) +ifeq (,$(filter BeOS HP-UX WINNT OpenVMS,$(OS_ARCH))) LDFLAGS += -lm endif @@ -294,7 +294,7 @@ endif # On OS/2 & win32 we are already linking against fdlibm, so don't bother # creating jsmathtemp -ifeq (,$(filter OS2 WINNT,$(OS_ARCH))) +ifeq (,$(filter OS2 WINNT OpenVMS,$(OS_ARCH))) # special rule for jsmath.o since we want to incrementally link # against fdlibm to pull in only what is needed # Do this in a single step to avoid dependency problems diff --git a/mozilla/modules/plugin/base/src/Makefile.in b/mozilla/modules/plugin/base/src/Makefile.in index eb2a62c1b06..2065b94e14e 100644 --- a/mozilla/modules/plugin/base/src/Makefile.in +++ b/mozilla/modules/plugin/base/src/Makefile.in @@ -121,6 +121,11 @@ CXXFLAGS += -GX OS_LIBS += version.lib endif +ifeq ($(OS_ARCH), OpenVMS) +DEFINES += -DGENERIC_MOTIF_REDEFINES +OS_CXXFLAGS += -Wc,warn=disa=NOSIMPINT +endif + ifeq ($(OS_ARCH),OS2) ADD_TO_DEF_FILE = cat < $(srcdir)/extradefs.os2 >> $(DEF_FILE) endif diff --git a/mozilla/modules/plugin/samples/default/unix/Makefile.in b/mozilla/modules/plugin/samples/default/unix/Makefile.in index 88f91931756..808c3e82931 100644 --- a/mozilla/modules/plugin/samples/default/unix/Makefile.in +++ b/mozilla/modules/plugin/samples/default/unix/Makefile.in @@ -61,6 +61,11 @@ CXXFLAGS += $(MOZ_GTK2_CFLAGS) CFLAGS += $(MOZ_GTK2_CFLAGS) endif +ifeq ($(OS_ARCH), OpenVMS) +DEFINES += -DGENERIC_MOTIF_REDEFINES +OS_CXXFLAGS += -Wc,warn=disa=NOSIMPINT +endif + install-plugin: $(SHARED_LIBRARY) ifdef SHARED_LIBRARY $(INSTALL) $(SHARED_LIBRARY) $(DIST)/bin/plugins diff --git a/mozilla/widget/src/gtk/Makefile.in b/mozilla/widget/src/gtk/Makefile.in index ba7722ab134..7f49f72516d 100644 --- a/mozilla/widget/src/gtk/Makefile.in +++ b/mozilla/widget/src/gtk/Makefile.in @@ -104,6 +104,10 @@ DEFINES += -D_TIME_H=1 endif endif +ifeq ($(OS_ARCH), OpenVMS) +DEFINES += -DGENERIC_MOTIF_REDEFINES +endif + LOCAL_INCLUDES = \ -I$(srcdir)/../xpwidgets \ -I$(srcdir) \ diff --git a/mozilla/widget/src/gtksuperwin/Makefile.in b/mozilla/widget/src/gtksuperwin/Makefile.in index 07fa277ed2c..2eccd421968 100644 --- a/mozilla/widget/src/gtksuperwin/Makefile.in +++ b/mozilla/widget/src/gtksuperwin/Makefile.in @@ -49,6 +49,10 @@ ifeq ($(OS_ARCH), Linux) DEFINES += -D_BSD_SOURCE endif +ifeq ($(OS_ARCH), OpenVMS) +DEFINES += -DGENERIC_MOTIF_REDEFINES +endif + INCLUDES += \ -I$(srcdir) \ $(NULL) diff --git a/mozilla/widget/src/gtkxtbin/Makefile.in b/mozilla/widget/src/gtkxtbin/Makefile.in index ab3e51be48b..f6a10acff8b 100644 --- a/mozilla/widget/src/gtkxtbin/Makefile.in +++ b/mozilla/widget/src/gtkxtbin/Makefile.in @@ -62,6 +62,10 @@ ifeq ($(OS_ARCH), Linux) DEFINES += -D_BSD_SOURCE endif +ifeq ($(OS_ARCH), OpenVMS) +DEFINES += -DGENERIC_MOTIF_REDEFINES +endif + INCLUDES += \ -I$(srcdir) \ $(NULL) diff --git a/mozilla/widget/src/xremoteclient/Makefile.in b/mozilla/widget/src/xremoteclient/Makefile.in index 46de1329600..9d8051d69ba 100644 --- a/mozilla/widget/src/xremoteclient/Makefile.in +++ b/mozilla/widget/src/xremoteclient/Makefile.in @@ -62,3 +62,7 @@ include $(topsrcdir)/config/rules.mk ifeq ($(OS_ARCH), Linux) DEFINES += -D_BSD_SOURCE endif + +ifeq ($(OS_ARCH), OpenVMS) +DEFINES += -DGENERIC_MOTIF_REDEFINES +endif diff --git a/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in b/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in index cb46469f18b..33a79052d4d 100644 --- a/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in +++ b/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in @@ -357,20 +357,11 @@ ifeq ($(OS_ARCH),OpenVMS) # syntax, so we have to massage it slightly. xptcstubs_asm_openvms_alpha.o: $(PUBLIC)/xptcstubsdef.inc $(srcdir)/xptcstubs_asm_openvms_alpha.s - @rm -f ./xptcstubsdef_asm.vms - @awk ' \ - /^.*_ENTRY\([0-9]+\)/ { \ - sub("\\("," "); \ - sub("\\)",""); \ - sub("","\t"); \ - } \ - { sub("\\/\\*",";"); \ - sub("\\*\\/",""); \ - print \ - } \ - ' \ - $(PUBLIC)/xptcstubsdef.inc > $$HOME/xptcstubsdef_asm.vms + sed \ + -e 's/^\(.*_ENTRY\)(\([0-9]*\))/ \1 \2/' \ + -e 's/\/\*\(.*\)\*\//; \1/' \ + $(PUBLIC)/xptcstubsdef.inc > ./xptcstubsdef_asm.vms $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) $(srcdir)/xptcstubs_asm_openvms_alpha.s - @rm -f $$HOME/xptcstubsdef_asm.vms + @rm -f ./xptcstubsdef_asm.vms endif