summaryrefslogtreecommitdiff
path: root/pr
diff options
context:
space:
mode:
authorsrinivas%netscape.com <devnull@localhost>1999-10-14 15:09:11 +0000
committersrinivas%netscape.com <devnull@localhost>1999-10-14 15:09:11 +0000
commitf968072a0866ccebe32fb462121fb2aafb2301c7 (patch)
treec8c1844edea6f65a97b9ff480b64990c1363d5ca /pr
parente6c60572caa5d74a23132a2f08dc5eb17d66c73d (diff)
downloadnspr-hg-f968072a0866ccebe32fb462121fb2aafb2301c7.tar.gz
Add autoconf for NSPR. Check in for cls@seawood.org. Buzill 11893
Diffstat (limited to 'pr')
-rw-r--r--pr/Makefile.in29
-rw-r--r--pr/include/Makefile.in42
-rw-r--r--pr/include/md/Makefile.in190
-rw-r--r--pr/include/md/_linux.cfg7
-rw-r--r--pr/include/md/_linux.h2
-rw-r--r--pr/include/obsolete/Makefile.in40
-rw-r--r--pr/include/obsolete/protypes.h3
-rw-r--r--pr/include/private/Makefile.in41
-rw-r--r--pr/include/prlong.h2
-rw-r--r--pr/include/prtypes.h12
-rw-r--r--pr/src/Makefile.in426
-rw-r--r--pr/src/io/Makefile.in71
-rw-r--r--pr/src/linking/Makefile.in48
-rw-r--r--pr/src/malloc/Makefile.in46
-rw-r--r--pr/src/md/Makefile.in66
-rw-r--r--pr/src/md/os2/Makefile.in55
-rw-r--r--pr/src/md/unix/Makefile.in312
-rw-r--r--pr/src/md/unix/objs.mk12
-rw-r--r--pr/src/md/windows/Makefile.in86
-rw-r--r--pr/src/md/windows/ntgc.c2
-rw-r--r--pr/src/md/windows/ntinrval.c4
-rw-r--r--pr/src/md/windows/ntmisc.c75
-rw-r--r--pr/src/md/windows/objs.mk64
-rw-r--r--pr/src/md/windows/w95io.c16
-rw-r--r--pr/src/md/windows/w95thred.c4
-rw-r--r--pr/src/memory/Makefile.in49
-rw-r--r--pr/src/misc/Makefile.in86
-rw-r--r--pr/src/nspr.rc3
-rw-r--r--pr/src/pthreads/Makefile.in45
-rw-r--r--pr/src/threads/Makefile.in82
-rw-r--r--pr/src/threads/combined/Makefile.in59
-rw-r--r--pr/tests/Makefile.in563
-rw-r--r--pr/tests/dll/Makefile.in99
-rw-r--r--pr/tests/time.c2
-rw-r--r--pr/tests/w16gui/Makefile.in80
35 files changed, 2712 insertions, 11 deletions
diff --git a/pr/Makefile.in b/pr/Makefile.in
new file mode 100644
index 00000000..d5403c7d
--- /dev/null
+++ b/pr/Makefile.in
@@ -0,0 +1,29 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+DIRS = include src
+
+include $(topsrcdir)/config/rules.mk
diff --git a/pr/include/Makefile.in b/pr/include/Makefile.in
new file mode 100644
index 00000000..d3f4a846
--- /dev/null
+++ b/pr/include/Makefile.in
@@ -0,0 +1,42 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+DIRS = md private obsolete
+
+include $(topsrcdir)/config/config.mk
+
+HEADERS = $(wildcard $(srcdir)/*.h)
+
+RELEASE_HEADERS = $(HEADERS)
+RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR)
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(RELEASE_HEADERS)
+ $(INSTALL) -m 444 $(RELEASE_HEADERS) $(DIST)/include
+ifeq ($(MOZ_BITS),16)
+ $(INSTALL) -m 444 $(RELEASE_HEADERS) $(MOZ_INCL)
+endif
diff --git a/pr/include/md/Makefile.in b/pr/include/md/Makefile.in
new file mode 100644
index 00000000..70d0b1a6
--- /dev/null
+++ b/pr/include/md/Makefile.in
@@ -0,0 +1,190 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+HEADERS = $(wildcard $(srcdir)/*.h)
+CONFIGS = $(wildcard $(srcdir)/*.cfg)
+
+include $(topsrcdir)/config/rules.mk
+
+ifndef USE_AUTOCONF
+
+ifeq ($(OS_ARCH),IRIX)
+ifeq ($(USE_64), 1)
+MDCPUCFG_H = _irix64.cfg
+else
+MDCPUCFG_H = _irix32.cfg
+endif
+endif
+
+ifeq ($(OS_ARCH),WINNT)
+ifeq ($(OS_TARGET), WIN95)
+MDCPUCFG_H = _win95.cfg
+else
+ifeq ($(OS_TARGET), WIN16)
+MDCPUCFG_H = _win16.cfg
+else
+ifeq ($(OS_TARGET),OS2)
+MDCPUCFG_H = _os2.cfg
+else
+MDCPUCFG_H = _winnt.cfg
+endif
+endif
+endif
+endif
+
+ifeq ($(OS_ARCH),AIX)
+ifeq ($(USE_64),1)
+MDCPUCFG_H = _aix64.cfg
+else
+MDCPUCFG_H = _aix32.cfg
+endif
+endif
+
+ifeq ($(OS_ARCH),BSD_OS)
+MDCPUCFG_H = _bsdi.cfg
+endif
+
+ifeq ($(OS_ARCH),FreeBSD)
+MDCPUCFG_H = _freebsd.cfg
+endif
+
+ifeq ($(OS_ARCH),OpenBSD)
+MDCPUCFG_H = _openbsd.cfg
+endif
+
+ifeq ($(OS_ARCH),OpenVMS)
+MDCPUCFG_H = _openvms.cfg
+endif
+
+ifeq ($(OS_ARCH),NetBSD)
+MDCPUCFG_H = _netbsd.cfg
+endif
+
+ifeq ($(OS_ARCH),HP-UX)
+ifeq ($(USE_64), 1)
+MDCPUCFG_H = _hpux64.cfg
+else
+MDCPUCFG_H = _hpux32.cfg
+endif
+endif
+
+ifeq ($(OS_ARCH),Linux)
+MDCPUCFG_H = _linux.cfg
+endif
+
+ifeq ($(OS_ARCH),OSF1)
+MDCPUCFG_H = _osf1.cfg
+endif
+
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+MDCPUCFG_H = _sunos4.cfg
+else
+MDCPUCFG_H = _solaris.cfg
+endif
+endif
+
+ifeq ($(OS_ARCH),SINIX)
+MDCPUCFG_H = _reliantunix.cfg
+endif
+
+ifeq ($(OS_ARCH),Rhapsody)
+MDCPUCFG_H = _rhapsody.cfg
+endif
+
+ifeq ($(OS_ARCH),NEXTSTEP)
+MDCPUCFG_H = _nextstep.cfg
+endif
+
+ifeq ($(OS_ARCH),NEWS-OS)
+MDCPUCFG_H = _sony.cfg
+endif
+
+ifeq ($(OS_ARCH),NEC)
+MDCPUCFG_H = _nec.cfg
+endif
+
+ifeq ($(OS_ARCH),SCOOS)
+MDCPUCFG_H = _scoos.cfg
+endif
+
+ifeq ($(OS_ARCH),UNIXWARE)
+MDCPUCFG_H = _unixware.cfg
+endif
+
+ifeq ($(OS_ARCH),NCR)
+MDCPUCFG_H = _ncr.cfg
+endif
+
+ifeq ($(OS_ARCH),DGUX)
+MDCPUCFG_H = _dgux.cfg
+endif
+
+ifeq ($(OS_ARCH),QNX)
+MDCPUCFG_H = _qnx.cfg
+endif
+
+ifeq ($(OS_ARCH),BeOS)
+MDCPUCFG_H = _beos.cfg
+endif
+
+endif # ! USE_AUTOCONF
+
+export:: #$(MDCPUCFG_H)
+ $(INSTALL) -m 444 $(CONFIGS) $(DIST)/include/md
+#ifeq ($(MOZ_BITS),16)
+# cp $(DIST)/include/$(MDCPUCFG_H) $(DIST)/include/prcpucfg.h
+# $(INSTALL) -m 444 $(MDCPUCFG_H) $(MOZ_INCL)
+# mv -f $(DIST)/include/$(MDCPUCFG_H) $(MOZ_INCL)/prcpucfg.h
+#else
+ @if cmp -s $(srcdir)/$(MDCPUCFG_H) $(DIST)/include/prcpucfg.h; then \
+ echo $(DIST)/include/prcpucfg.h unchanged; \
+ else \
+ echo cp -f $(srcdir)/$(MDCPUCFG_H) $(DIST)/include/prcpucfg.h; \
+ cp -f $(srcdir)/$(MDCPUCFG_H) $(DIST)/include/prcpucfg.h; \
+ fi
+#endif
+ifeq ($(OS_ARCH),OpenVMS)
+# mv'ing a link causes the file itself to move, not the link, so fix it.
+ rm -f $(DIST)/include/$(MDCPUCFG_H)
+ if [ ! -L $(DIST)/include/prcpucfg.h ]; then \
+ mv -f $(DIST)/include/prcpucfg.h $(MDCPUCFG_H); \
+ ln -fs ../../../nsprpub/pr/include/md/$(MDCPUCFG_H) \
+ $(DIST)/include/prcpucfg.h; \
+ fi
+endif
+
+release:: export
+ @echo "Copying machine-dependent prcpucfg.h"
+ @if test -z "$(BUILD_NUMBER)"; then \
+ echo "BUILD_NUMBER must be defined"; \
+ false; \
+ fi
+ @if test ! -d $(RELEASE_INCLUDE_DIR); then \
+ rm -rf $(RELEASE_INCLUDE_DIR); \
+ $(NSINSTALL) -D $(RELEASE_INCLUDE_DIR);\
+ fi
+ cp $(MDCPUCFG_H) $(RELEASE_INCLUDE_DIR)/prcpucfg.h
diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg
index 39b4c25e..aa99901c 100644
--- a/pr/include/md/_linux.cfg
+++ b/pr/include/md/_linux.cfg
@@ -67,6 +67,7 @@
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_DOUBLE 4
#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD 4
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
@@ -112,6 +113,7 @@
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 8
+#define PR_ALIGN_OF_WORD 8
#define PR_BYTES_PER_WORD_LOG2 3
#define PR_BYTES_PER_DWORD_LOG2 3
@@ -156,6 +158,7 @@
#define PR_ALIGN_OF_FLOAT 2
#define PR_ALIGN_OF_DOUBLE 2
#define PR_ALIGN_OF_POINTER 2
+#define PR_ALIGN_OF_WORD 2
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
@@ -200,6 +203,7 @@
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD 4
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
@@ -244,6 +248,7 @@
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_DOUBLE 4
#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD 4
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
@@ -295,6 +300,7 @@
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD 4
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
@@ -339,6 +345,7 @@
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_DOUBLE 4
#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD 4
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index 7980934c..35fa6c44 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -59,6 +59,8 @@
#define HAVE_DLL
#define USE_DLFCN
+#define _MD_MINIMUM_STACK_SIZE (32 * 1024)
+
#define USE_SETJMP
#if defined(__GLIBC__) && __GLIBC__ >= 2
#define _PR_POLL_AVAILABLE
diff --git a/pr/include/obsolete/Makefile.in b/pr/include/obsolete/Makefile.in
new file mode 100644
index 00000000..1f7fc4b4
--- /dev/null
+++ b/pr/include/obsolete/Makefile.in
@@ -0,0 +1,40 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+HEADERS = $(wildcard $(srcdir)/*.h)
+
+RELEASE_HEADERS = $(HEADERS)
+RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR)/obsolete
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(RELEASE_HEADERS)
+ $(INSTALL) -m 444 $(RELEASE_HEADERS) $(DIST)/include/obsolete
+ifeq ($(MOZ_BITS),16)
+ $(INSTALL) -m 444 $(RELEASE_HEADERS) $(MOZ_INCL)/obsolete
+endif
diff --git a/pr/include/obsolete/protypes.h b/pr/include/obsolete/protypes.h
index bcacbee5..42cc1f1e 100644
--- a/pr/include/obsolete/protypes.h
+++ b/pr/include/obsolete/protypes.h
@@ -53,10 +53,11 @@ typedef PRIntn intn;
#include <sys/types.h>
#else
typedef PRUintn uint;
+#define HAVE_UINT
#endif
typedef PRUint64 uint64;
-#if !defined(XP_MAC) && !defined(_WIN32) && !defined(XP_OS2)
+#if !defined(XP_MAC) && !defined(_WIN32) && !defined(XP_OS2)
typedef PRUint32 uint32;
#else
typedef unsigned long uint32;
diff --git a/pr/include/private/Makefile.in b/pr/include/private/Makefile.in
new file mode 100644
index 00000000..4197dbb5
--- /dev/null
+++ b/pr/include/private/Makefile.in
@@ -0,0 +1,41 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+RELEASE_HEADERS = pprio.h pprthred.h prpriv.h
+RELEASE_HEADERS := $(addprefix $(srcdir)/, $(RELEASE_HEADERS))
+RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR)/private
+
+HEADERS = $(RELEASE_HEADERS) $(srcdir)/pprmwait.h $(srcdir)/primpl.h
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(RELEASE_HEADERS)
+ $(INSTALL) -m 444 $(RELEASE_HEADERS) $(DIST)/include/private
+ifeq ($(MOZ_BITS),16)
+ $(INSTALL) -m 444 $(RELEASE_HEADERS) $(MOZ_INCL)/private
+endif
diff --git a/pr/include/prlong.h b/pr/include/prlong.h
index 1d1755ee..b7000692 100644
--- a/pr/include/prlong.h
+++ b/pr/include/prlong.h
@@ -60,7 +60,7 @@ PR_EXTERN(PRInt64) LL_Zero(void);
#if PR_BYTES_PER_LONG == 8
#define LL_INIT(hi, lo) ((hi ## L << 32) + lo ## L)
-#elif defined(WIN32) || defined(WIN16)
+#elif (defined(WIN32) || defined(WIN16)) && !defined(__GNUC__)
#define LL_INIT(hi, lo) ((hi ## i64 << 32) + lo ## i64)
#else
#define LL_INIT(hi, lo) ((hi ## LL << 32) + lo ## LL)
diff --git a/pr/include/prtypes.h b/pr/include/prtypes.h
index 6d728f1a..cfa46eca 100644
--- a/pr/include/prtypes.h
+++ b/pr/include/prtypes.h
@@ -33,7 +33,11 @@
#ifndef prtypes_h___
#define prtypes_h___
+#ifdef MDCPUCFG
+#include MDCPUCFG
+#else
#include "prcpucfg.h"
+#endif
#include <stddef.h>
@@ -58,6 +62,12 @@
**
***********************************************************************/
#if defined(WIN32)
+
+#if defined(__GNUC__)
+#undef _declspec
+#define _declspec(x) __declspec(x)
+#endif
+
#define PR_EXTERN(__type) extern _declspec(dllexport) __type
#define PR_IMPLEMENT(__type) _declspec(dllexport) __type
#define PR_EXTERN_DATA(__type) extern _declspec(dllexport) __type
@@ -258,7 +268,7 @@ typedef unsigned long PRUint64;
#elif defined(WIN16)
typedef __int64 PRInt64;
typedef unsigned __int64 PRUint64;
-#elif defined(WIN32)
+#elif defined(WIN32) && !defined(__GNUC__)
typedef __int64 PRInt64;
typedef unsigned __int64 PRUint64;
#else
diff --git a/pr/src/Makefile.in b/pr/src/Makefile.in
new file mode 100644
index 00000000..f0b6b596
--- /dev/null
+++ b/pr/src/Makefile.in
@@ -0,0 +1,426 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+DIRS = io linking malloc md memory misc threads
+
+ifeq ($(USE_PTHREADS), 1)
+ DIRS += pthreads
+endif
+
+ifeq ($(USE_BTHREADS), 1)
+ DIRS += bthreads
+endif
+
+ifeq ($(USE_CPLUS), 1)
+ DIRS += cplus
+endif
+
+ifndef USE_AUTOCONF
+
+#
+# Define platform-dependent OS_LIBS
+#
+
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+export OPTIMIZER
+OS_LIBS = -lm
+else # 4.1.3_U1
+ifdef USE_PTHREADS
+OS_LIBS = -lpthread -lthread -lposix4 -lsocket -lnsl -ldl
+else
+ifdef LOCAL_THREADS_ONLY
+OS_LIBS = -lsocket -lnsl -ldl
+else
+OS_LIBS = -lthread -lposix4 -lsocket -lnsl -ldl
+endif # LOCAL_THREADS_ONLY
+endif # USE_PTHREADS
+endif # 4.1.3_U1
+endif # SunOS
+
+ifeq ($(OS_ARCH), IRIX)
+ifeq ($(USE_PTHREADS), 1)
+OS_LIBS = -lpthread
+endif
+endif
+
+ifeq ($(OS_ARCH),AIX)
+ifeq ($(CLASSIC_NSPR),1)
+ifeq ($(OS_RELEASE),4.1)
+OS_LIBS = -lsvld -lc
+else
+OS_LIBS = -ldl -lc
+endif
+else
+ifeq ($(OS_RELEASE),4.1)
+OS_LIBS = -lpthreads -lsvld -lC_r -lC -lc_r -lm /usr/lib/libc.a
+else
+OS_LIBS = -lpthreads -ldl -lC_r -lC -lc_r -lm /usr/lib/libc.a
+endif
+endif
+endif
+
+# On AIX, we override malloc in non-pthread versions. On AIX 4.2 or
+# above, this requires that we use the rtl-enabled version of libc.a.
+ifeq ($(OS_ARCH),AIX)
+ifneq (,$(filter-out 3.2 4.1,$(OS_RELEASE)))
+ifneq ($(USE_PTHREADS),1)
+BUILD_AIX_RTL_LIBC = 1
+AIX_RTL_LIBC = $(OBJDIR)/libc.a
+endif
+endif
+endif
+
+ifeq ($(OS_ARCH),OpenVMS)
+OS_LIBS = -lvms_jackets
+endif
+
+ifeq ($(OS_ARCH),OSF1)
+ifeq ($(USE_PTHREADS), 1)
+OS_LIBS = -lpthread -lrt
+endif
+ifneq ($(OS_RELEASE),V2.0)
+OS_LIBS += -lc_r
+endif
+ifeq ($(USE_IPV6), 1)
+OS_LIBS += -lip6
+endif
+endif
+
+ifeq ($(OS_ARCH),Linux)
+ifeq ($(USE_PTHREADS), 1)
+OS_LIBS = -lpthread -ldl -lc
+else
+OS_LIBS = -ldl -lc
+endif
+endif
+
+ifeq ($(OS_ARCH),HP-UX)
+ifeq ($(USE_PTHREADS), 1)
+ifeq (,$(filter-out B.10.10 B.10.20,$(OS_RELEASE)))
+OS_LIBS = -ldce
+else
+OS_LIBS = -lpthread
+endif
+endif
+ifeq ($(PTHREADS_USER), 1)
+OS_LIBS = -lpthread
+endif
+ifeq ($(basename $(OS_RELEASE)),A.09)
+OS_LIBS += -ldld -L/lib/pa1.1 -lm
+else
+OS_LIBS += -ldld -lm -lc
+endif
+endif
+
+ifeq ($(OS_ARCH),UNIXWARE)
+OS_LIBS = -lsocket -lc
+endif
+
+ifeq ($(OS_ARCH),NEWS-OS)
+OS_LIBS = -lsocket -lnsl -lgen -lresolv
+endif
+
+ifeq ($(OS_ARCH),WINNT)
+ifeq ($(OS_TARGET),OS2)
+# We define this in os2.mk.
+else
+ifneq ($(OS_TARGET),WIN16)
+OS_LIBS = wsock32.lib winmm.lib
+endif
+endif
+endif
+
+endif # USE_AUTOCONF
+#
+# Define platform-dependent OBJS
+#
+
+OBJS = \
+ $(OBJDIR)/prvrsion.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prfdcach.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prmwait.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prmapopt.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/priometh.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prlayer.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prlog.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prmmap.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prpolevt.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prprf.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prscanf.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prstdio.$(OBJ_SUFFIX) \
+ threads/$(OBJDIR)/prcmon.$(OBJ_SUFFIX) \
+ threads/$(OBJDIR)/prrwlock.$(OBJ_SUFFIX) \
+ threads/$(OBJDIR)/prtpd.$(OBJ_SUFFIX) \
+ linking/$(OBJDIR)/prlink.$(OBJ_SUFFIX) \
+ malloc/$(OBJDIR)/prmalloc.$(OBJ_SUFFIX) \
+ malloc/$(OBJDIR)/prmem.$(OBJ_SUFFIX) \
+ md/$(OBJDIR)/prosdep.$(OBJ_SUFFIX) \
+ memory/$(OBJDIR)/prseg.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/pralarm.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/pratom.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prcountr.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prdtoa.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prenv.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prerr.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prerror.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prerrortable.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prinit.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prinrval.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prlog2.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prlong.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prnetdb.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prolock.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prsystem.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prthinfo.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prtrace.$(OBJ_SUFFIX) \
+ misc/$(OBJDIR)/prtime.$(OBJ_SUFFIX)
+
+ifdef USE_PTHREADS
+OBJS += \
+ pthreads/$(OBJDIR)/ptsynch.$(OBJ_SUFFIX) \
+ pthreads/$(OBJDIR)/ptio.$(OBJ_SUFFIX) \
+ pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \
+ pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX)
+else
+OBJS += \
+ io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \
+ io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX)
+
+ifndef USE_BTHREADS
+OBJS += \
+ threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \
+ threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \
+ threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \
+ threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \
+ threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \
+ threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \
+ threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \
+ threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \
+ threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX)
+endif
+
+endif
+
+ifeq ($(USE_IPV6), 1)
+OBJS += io/$(OBJDIR)/pripv6.$(OBJ_SUFFIX)
+endif
+
+ifeq ($(USE_CPLUS), 1)
+OBJS += \
+ cplus/$(OBJDIR)/rcbase.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rccv.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rcfileio.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rcinrval.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rcio.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rclock.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rcnetdb.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rcnetio.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rcthread.$(OBJ_SUFFIX) \
+ cplus/$(OBJDIR)/rctime.$(OBJ_SUFFIX)
+endif
+
+ifdef USE_AUTOCONF
+
+include $(srcdir)/md/$(PR_MD_ARCH_DIR)/objs.mk
+
+else
+
+ifeq ($(OS_ARCH), WINNT)
+ifneq (,$(filter-out WIN16 OS2,$(OS_TARGET)))
+DLLBASE=/BASE:0x30000000
+RES=$(OBJDIR)/nspr.res
+RESNAME=nspr.rc
+ifdef MOZ_DEBUG
+ifdef GLOWCODE
+EXTRA_LIBS += $(GLOWDIR)/glowcode.lib
+endif
+endif
+endif
+
+ifeq ($(OS_TARGET), WIN16)
+OBJS += md/windows/$(OBJDIR)/w16null.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16proc.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16thred.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16fmem.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16sock.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16mem.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16io.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16gc.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16error.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w16callb.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntinrval.$(OBJ_SUFFIX)
+EXTRA_LIBS += $(MOD_DEPTH)/tools/winsock.lib
+W16_EXPORTS = EXPORT _malloc.2=_PR_MD_malloc RESIDENT, \
+ _realloc.3=_PR_MD_realloc RESIDENT, \
+ _calloc.4=_PR_MD_calloc RESIDENT, \
+ _free.5=_PR_MD_free RESIDENT, \
+ _getenv.9=_PR_MD_getenv RESIDENT, \
+ _printf.11=_PR_MD_printf RESIDENT, \
+ _strftime.13=_PR_MD_strftime RESIDENT, \
+ _sscanf.33=_PR_MD_sscanf RESIDENT, \
+ _putenv.10=_PR_MD_putenv RESIDENT, \
+ _fprintf.12=_PR_MD_fprintf RESIDENT
+else
+ifeq ($(OS_TARGET), WIN95)
+OBJS += md/windows/$(OBJDIR)/w95io.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w95sock.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w95thred.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w95cv.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntgc.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntmisc.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntinrval.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntsem.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/win32_errors.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w32poll.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w95dllmain.$(OBJ_SUFFIX)
+else
+ifeq ($(OS_TARGET),OS2)
+OBJS += md/os2/$(OBJDIR)/os2io.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2sock.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2thred.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2cv.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2gc.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2misc.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2inrval.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2sem.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2_errors.$(OBJ_SUFFIX) \
+ md/os2/$(OBJDIR)/os2poll.$(OBJ_SUFFIX)
+else
+OBJS += md/windows/$(OBJDIR)/ntdllmn.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntio.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntgc.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntthread.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntmisc.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntinrval.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/ntsem.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/win32_errors.$(OBJ_SUFFIX) \
+ md/windows/$(OBJDIR)/w32poll.$(OBJ_SUFFIX)
+endif
+endif
+endif
+
+else
+
+ifeq ($(OS_ARCH), BeOS)
+ include $(srcdir)/md/beos/objs.mk
+ include $(srcdir)/bthreads/objs.mk
+else
+ # Unix
+ include $(srcdir)/md/unix/objs.mk
+endif
+endif
+endif # !USE_AUTOCONF
+
+LIBRARY_NAME = nspr
+LIBRARY_VERSION = $(MOD_VERSION)
+
+RELEASE_LIBS = $(TARGETS)
+
+GARBAGE += $(TINC)
+
+include $(topsrcdir)/config/rules.mk
+
+ifeq ($(BUILD_AIX_RTL_LIBC),1)
+TARGETS += $(AIX_RTL_LIBC)
+# XXX is this a shared library?
+endif
+
+#
+# Version information generation (begin)
+#
+ECHO = echo
+INCLUDES = -I$(DIST)/include
+TINC = $(OBJDIR)/_pr_bld.h
+PROD = $(notdir $(SHARED_LIBRARY))
+NOW = $(MOD_DEPTH)/config/$(OBJDIR)/now
+SH_DATE = $(shell date)
+SH_NOW = $(shell $(NOW))
+
+ifeq ($(OS_ARCH), WINNT)
+ifeq ($(OS_TARGET),OS2)
+ SUF =
+else
+ SUF = i64
+endif
+else
+ SUF = LL
+endif
+
+$(TINC):
+ @$(MAKE_OBJDIR)
+ @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+ @if test ! -z "$(SH_NOW)"; then \
+ $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+ else \
+ true; \
+ fi
+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
+
+
+$(OBJDIR)/prvrsion.$(OBJ_SUFFIX): $(srcdir)/prvrsion.c $(TINC)
+ifeq ($(OS_ARCH), WINNT)
+ifdef XP_OS2_EMX
+ $(CC) -o $@ -c $(CFLAGS) -I$(OBJDIR) $<
+else
+ $(CC) -Fo$@ -c $(CFLAGS) -I$(OBJDIR) $<
+endif
+else
+ $(CC) -o $@ -c $(CFLAGS) -I$(OBJDIR) $<
+endif
+#
+# Version information generation (end)
+#
+
+
+#
+# The Client build wants the shared libraries in $(DIST)/bin,
+# so we also install them there.
+#
+
+export:: $(TARGETS)
+ $(INSTALL) -m 444 $(TARGETS) $(DIST)/lib
+ifdef SHARED_LIBRARY
+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(DIST)/bin
+endif
+ifeq ($(MOZ_BITS),16)
+ $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib
+ $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin
+endif
+
+ifeq ($(BUILD_AIX_RTL_LIBC),1)
+$(AIX_RTL_LIBC): /usr/ccs/lib/libc.a
+ rtl_enable -o $@ $<
+endif
+
+install:: export
+
diff --git a/pr/src/io/Makefile.in b/pr/src/io/Makefile.in
new file mode 100644
index 00000000..cf16d8b1
--- /dev/null
+++ b/pr/src/io/Makefile.in
@@ -0,0 +1,71 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+
+CSRCS = \
+ prfdcach.c \
+ prmwait.c \
+ priometh.c \
+ prmapopt.c \
+ prlayer.c \
+ prlog.c \
+ prmmap.c \
+ prpolevt.c \
+ prprf.c \
+ prscanf.c \
+ prstdio.c \
+ $(NULL)
+
+ifndef USE_PTHREADS
+ CSRCS += \
+ prdir.c \
+ prfile.c \
+ prio.c \
+ prsocket.c \
+ $(NULL)
+endif
+
+ifdef USE_IPV6
+CSRCS += pripv6.c
+endif
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
diff --git a/pr/src/linking/Makefile.in b/pr/src/linking/Makefile.in
new file mode 100644
index 00000000..af1b0449
--- /dev/null
+++ b/pr/src/linking/Makefile.in
@@ -0,0 +1,48 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+
+CSRCS = \
+ prlink.c \
+ $(NULL)
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
diff --git a/pr/src/malloc/Makefile.in b/pr/src/malloc/Makefile.in
new file mode 100644
index 00000000..4fd60862
--- /dev/null
+++ b/pr/src/malloc/Makefile.in
@@ -0,0 +1,46 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+CSRCS = prmalloc.c prmem.c
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
diff --git a/pr/src/md/Makefile.in b/pr/src/md/Makefile.in
new file mode 100644
index 00000000..68a47723
--- /dev/null
+++ b/pr/src/md/Makefile.in
@@ -0,0 +1,66 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifdef USE_AUTOCONF
+DIRS = $(PR_MD_ARCH_DIR)
+else
+ifeq ($(OS_ARCH),WINNT)
+ ifeq ($(OS_TARGET),OS2)
+ DIRS = os2
+ else
+ DIRS = windows
+ endif
+else
+ ifeq ($(OS_ARCH),BeOS)
+ DIRS = beos
+ else
+ DIRS = unix
+ endif
+endif
+
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+endif # USE_AUTOCONF
+
+CSRCS = \
+ prosdep.c \
+ $(NULL)
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
diff --git a/pr/src/md/os2/Makefile.in b/pr/src/md/os2/Makefile.in
new file mode 100644
index 00000000..4ecaf6d9
--- /dev/null
+++ b/pr/src/md/os2/Makefile.in
@@ -0,0 +1,55 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifeq ($(OS_TARGET), OS2)
+CSRCS = \
+ os2misc.c \
+ os2sem.c \
+ os2inrval.c \
+ os2gc.c \
+ os2thred.c \
+ os2io.c \
+ os2cv.c \
+ os2sock.c \
+ os2_errors.c \
+ os2poll.c \
+ $(NULL)
+endif
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(MOD_DEPTH)/pr/include -I$(MOD_DEPTH)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
+
+
+
diff --git a/pr/src/md/unix/Makefile.in b/pr/src/md/unix/Makefile.in
new file mode 100644
index 00000000..e2eb2369
--- /dev/null
+++ b/pr/src/md/unix/Makefile.in
@@ -0,0 +1,312 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+MOD_DEPTH = ../../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifndef USE_AUTOCONF
+
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+
+endif # ! USE_AUTOCONF
+
+CSRCS = \
+ unix.c \
+ unix_errors.c \
+ uxproces.c \
+ uxwrap.c \
+ uxpoll.c \
+ $(NULL)
+
+PTH_USER_CSRCS = \
+ pthreads_user.c \
+ $(NULL)
+
+ifndef USE_AUTOCONF
+
+IRIX_CSRCS = \
+ irix.c \
+ $(NULL)
+
+SUNOS4_CSRCS = \
+ sunos4.c \
+ $(NULL)
+
+SOLARIS_CSRCS = \
+ solaris.c \
+ $(NULL)
+
+AIX_CSRCS = \
+ aix.c \
+ $(NULL)
+
+FREEBSD_CSRCS = \
+ freebsd.c \
+ $(NULL)
+
+NETBSD_CSRCS = \
+ netbsd.c \
+ $(NULL)
+
+OPENBSD_CSRCS = \
+ openbsd.c \
+ $(NULL)
+
+BSDI_CSRCS = \
+ bsdi.c \
+ $(NULL)
+
+HPUX_CSRCS = \
+ hpux.c \
+ $(NULL)
+
+OPENVMS_CSRCS = \
+ openvms.c \
+ $(NULL)
+
+OSF1_CSRCS = \
+ osf1.c \
+ $(NULL)
+
+LINUX_CSRCS = \
+ linux.c \
+ $(NULL)
+
+UNIXWARE_CSRCS = \
+ unixware.c \
+ $(NULL)
+
+RELIANTUNIX_CSRCS = \
+ reliantunix.c \
+ $(NULL)
+
+RHAPSODY_CSRCS = \
+ rhapsody.c \
+ $(NULL)
+
+NEXTSTEP_CSRCS = \
+ nextstep.c \
+ $(NULL)
+
+NEC_CSRCS = \
+ nec.c \
+ $(NULL)
+
+SONY_CSRCS = \
+ sony.c \
+ $(NULL)
+
+NCR_CSRCS = \
+ ncr.c \
+ $(NULL)
+
+SCOOS_CSRCS = \
+ scoos.c \
+ $(NULL)
+
+DGUX_CSRCS = \
+ dgux.c \
+ $(NULL)
+
+QNX_CSRCS = \
+ qnx.c \
+ $(NULL)
+endif # !USE_AUTOCONF
+
+ifeq ($(PTHREADS_USER),1)
+CSRCS += $(PTH_USER_CSRCS)
+endif
+
+ifndef USE_AUTOCONF
+
+ifeq ($(OS_ARCH),IRIX)
+CSRCS += $(IRIX_CSRCS)
+endif
+
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+CSRCS += $(SUNOS4_CSRCS)
+else
+CSRCS += $(SOLARIS_CSRCS)
+endif
+endif
+
+ifeq ($(OS_ARCH),AIX)
+CSRCS += $(AIX_CSRCS)
+endif
+ifeq ($(OS_ARCH),FreeBSD)
+CSRCS += $(FREEBSD_CSRCS)
+endif
+ifeq ($(OS_ARCH),NetBSD)
+CSRCS += $(NETBSD_CSRCS)
+endif
+ifeq ($(OS_ARCH),OpenBSD)
+CSRCS += $(OPENBSD_CSRCS)
+endif
+ifeq ($(OS_ARCH),BSD_OS)
+CSRCS += $(BSDI_CSRCS)
+endif
+ifeq ($(OS_ARCH),HP-UX)
+CSRCS += $(HPUX_CSRCS)
+endif
+ifeq ($(OS_ARCH),OpenVMS)
+CSRCS += $(OPENVMS_CSRCS)
+endif
+ifeq ($(OS_ARCH),OSF1)
+CSRCS += $(OSF1_CSRCS)
+endif
+ifeq ($(OS_ARCH),Linux)
+CSRCS += $(LINUX_CSRCS)
+endif
+ifeq ($(OS_ARCH),UNIXWARE)
+CSRCS += $(UNIXWARE_CSRCS)
+endif
+ifeq ($(OS_ARCH),SINIX)
+CSRCS += $(RELIANTUNIX_CSRCS)
+endif
+ifeq ($(OS_ARCH),Rhapsody)
+CSRCS += $(RHAPSODY_CSRCS)
+endif
+ifeq ($(OS_ARCH),NEXTSTEP)
+CSRCS += $(NEXTSTEP_CSRCS)
+endif
+ifeq ($(OS_ARCH),NEC)
+CSRCS += $(NEC_CSRCS)
+endif
+ifeq ($(OS_ARCH),NEWS-OS)
+CSRCS += $(SONY_CSRCS)
+endif
+ifeq ($(OS_ARCH),NCR)
+CSRCS += $(NCR_CSRCS)
+endif
+ifeq ($(OS_ARCH),SCOOS)
+CSRCS += $(SCOOS_CSRCS)
+endif
+ifeq ($(OS_ARCH),DGUX)
+CSRCS += $(DGUX_CSRCS)
+endif
+ifeq ($(OS_ARCH),QNX)
+CSRCS += $(QNX_CSRCS)
+endif
+
+#
+# Some Unix platforms have an assembly language file.
+# E.g., AIX 3.2, Solaris (both sparc and x86).
+#
+ifeq ($(OS_ARCH), AIX)
+ ifeq ($(OS_RELEASE), 3.2)
+ ASFILES = os_$(OS_ARCH).s
+ endif
+endif
+
+ifeq ($(OS_ARCH),SunOS)
+ ifeq ($(CPU_ARCH),x86)
+ ASFILES = os_$(OS_ARCH)_x86.s
+ else
+ ifneq ($(OS_RELEASE),4.1.3_U1)
+ ifneq ($(LOCAL_THREADS_ONLY),1)
+ ASFILES = os_$(OS_ARCH).s
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(OS_ARCH), SINIX)
+ ifeq ($(CPU_ARCH),mips)
+ ASFILES = os_ReliantUNIX.s
+ endif
+endif
+
+ifeq ($(OS_ARCH)$(OS_RELEASE),BSD_OS2.1)
+ ASFILES = os_BSD_386_2.s
+endif
+
+ifeq ($(OS_ARCH), IRIX)
+ ASFILES = os_Irix.s
+endif
+
+TARGETS = $(OBJS)
+
+ifeq ($(OS_ARCH),AIX)
+ifeq (,$(filter-out 3.2 4.1,$(OS_RELEASE)))
+ifneq ($(USE_PTHREADS), 1)
+#TARGETS += $(OBJDIR)/aixwrap.$(OBJ_SUFFIX)
+endif
+endif
+endif
+
+ifeq ($(OS_ARCH),SunOS)
+ ifneq ($(OS_RELEASE),4.1.3_U1)
+ ifeq ($(OS_TEST),sun4u)
+ LIBRARY_NAME = $(ULTRASPARC_LIBRARY)
+ LIBRARY_VERSION = $(MOD_VERSION)
+ ULTRASPARC_ASFILES = os_$(OS_ARCH)_ultrasparc.s
+ ULTRASPARC_ASOBJS = $(addprefix $(OBJDIR)/,$(ULTRASPARC_ASFILES:.s=.$(OBJ_SUFFIX)))
+ TARGETS += $(ULTRASPARC_ASOBJS) $(SHARED_LIBRARY)
+ RELEASE_LIBS = $(SHARED_LIBRARY)
+ endif
+ endif
+endif
+
+else # USE_AUTOCONF
+
+CSRCS += $(PR_MD_CSRCS)
+ASFILES += $(PR_MD_ASFILES)
+
+TARGETS = $(OBJS)
+
+endif # ! USE_AUTOCONF
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+#ifeq ($(OS_ARCH),AIX)
+#ifeq (,$(filter-out 3.2 4.1,$(OS_RELEASE)))
+#ifneq ($(USE_PTHREADS), 1)
+# $(INSTALL) -m 444 $(OBJDIR)/aixwrap.$(OBJ_SUFFIX) $(DIST)/lib
+#endif
+#endif
+#endif
+
+ifndef USE_AUTOCONF
+ifeq ($(OS_ARCH),SunOS)
+ifneq ($(OS_RELEASE),4.1.3_U1)
+ifeq ($(OS_TEST),sun4u)
+$(SHARED_LIBRARY): $(ULTRASPARC_ASOBJS)
+ $(LD) -G -z text -o $@ $(ULTRASPARC_ASOBJS)
+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(DIST)/lib
+
+$(ULTRASPARC_ASOBJS): $(ULTRASPARC_ASFILES)
+ /usr/ccs/bin/as -o $@ -K PIC -P -D_ASM -D__STDC__=0 -xarch=v8plus $<
+endif
+endif
+endif
+endif #!USE_AUTOCONF
+install:: export
diff --git a/pr/src/md/unix/objs.mk b/pr/src/md/unix/objs.mk
index 951d76b8..4fc32f55 100644
--- a/pr/src/md/unix/objs.mk
+++ b/pr/src/md/unix/objs.mk
@@ -31,6 +31,12 @@ PTH_USER_CSRCS = \
pthreads_user.c \
$(NULL)
+ifdef USE_AUTOCONF
+
+CSRCS += $(PR_MD_CSRCS)
+ASFILES += $(PR_MD_ASFILES)
+
+else # ! USE_AUTOCONF
IRIX_CSRCS = \
irix.c \
$(NULL)
@@ -240,6 +246,12 @@ ifeq ($(OS_ARCH)$(OS_RELEASE),BSD_OS2.1)
ASFILES = os_BSD_386_2.s
endif
+endif # !USE_AUTOCONF
+
+ifeq ($(PTHREADS_USER),1)
+CSRCS += $(PTH_USER_CSRCS)
+endif
+
OBJS += $(addprefix md/unix/$(OBJDIR)/,$(CSRCS:.c=.$(OBJ_SUFFIX))) \
$(addprefix md/unix/$(OBJDIR)/,$(ASFILES:.s=.$(OBJ_SUFFIX)))
diff --git a/pr/src/md/windows/Makefile.in b/pr/src/md/windows/Makefile.in
new file mode 100644
index 00000000..6e462ebc
--- /dev/null
+++ b/pr/src/md/windows/Makefile.in
@@ -0,0 +1,86 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifdef USE_AUTOCONF
+OS_TARGET=$(MOZ_TARGET)
+endif
+
+ifeq ($(OS_TARGET), WIN16)
+CSRCS = \
+ w16null.c \
+ w16thred.c \
+ w16proc.c \
+ w16fmem.c \
+ w16sock.c \
+ w16mem.c \
+ w16io.c \
+ w16gc.c \
+ w16error.c \
+ w16stdio.c \
+ w16callb.c \
+ ntinrval.c \
+ $(NULL)
+else
+ifeq ($(OS_TARGET), WIN95)
+CSRCS = \
+ ntmisc.c \
+ ntsem.c \
+ ntinrval.c \
+ ntgc.c \
+ w95thred.c \
+ w95io.c \
+ w95cv.c \
+ w95sock.c \
+ win32_errors.c \
+ w32poll.c \
+ w95dllmain.c \
+ $(NULL)
+else
+CSRCS = \
+ ntdllmn.c \
+ ntmisc.c \
+ ntsem.c \
+ ntinrval.c \
+ ntgc.c \
+ ntthread.c \
+ ntio.c \
+ win32_errors.c \
+ w32poll.c \
+ $(NULL)
+endif
+endif
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
diff --git a/pr/src/md/windows/ntgc.c b/pr/src/md/windows/ntgc.c
index 52570904..6cd00005 100644
--- a/pr/src/md/windows/ntgc.c
+++ b/pr/src/md/windows/ntgc.c
@@ -88,7 +88,7 @@ PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
void *
GetMyFiberID()
{
-#if defined(_X86_)
+#if defined(_X86_) && !defined(__MINGW32__)
void *fiberData;
/* A pointer to our tib entry is found at FS:[18]
diff --git a/pr/src/md/windows/ntinrval.c b/pr/src/md/windows/ntinrval.c
index a54a4485..e61bde99 100644
--- a/pr/src/md/windows/ntinrval.c
+++ b/pr/src/md/windows/ntinrval.c
@@ -67,11 +67,15 @@ _PR_MD_GET_INTERVAL()
count.LowPart = count.LowPart + top;
return (PRUint32)count.LowPart;
} else
+#if defined(__MINGW32__)
+ return time();
+#else
#if defined(WIN16)
return clock(); /* milliseconds since application start */
#else
return timeGetTime(); /* milliseconds since system start */
#endif
+#endif
}
PRIntervalTime
diff --git a/pr/src/md/windows/ntmisc.c b/pr/src/md/windows/ntmisc.c
index e2fb696f..9afaac2e 100644
--- a/pr/src/md/windows/ntmisc.c
+++ b/pr/src/md/windows/ntmisc.c
@@ -668,7 +668,14 @@ PRStatus _MD_CloseFileMap(PRFileMap *fmap)
#pragma warning(disable: 4035)
PRInt32 _PR_MD_ATOMIC_INCREMENT(PRInt32 *val)
-{
+{
+#if defined(__GNUC__)
+ PRInt32 result;
+ asm volatile ("lock ; xadd %0, %1"
+ : "=r"(result), "=m"(*val)
+ : "0"(1), "m"(*val));
+ return result + 1;
+#else
__asm
{
mov ecx, val
@@ -676,12 +683,21 @@ PRInt32 _PR_MD_ATOMIC_INCREMENT(PRInt32 *val)
lock xadd dword ptr [ecx], eax
inc eax
}
+#endif /* __GNUC__ */
}
#pragma warning(default: 4035)
#pragma warning(disable: 4035)
PRInt32 _PR_MD_ATOMIC_DECREMENT(PRInt32 *val)
{
+#if defined(__GNUC__)
+ PRInt32 result;
+ asm volatile ("lock ; xadd %0, %1"
+ : "=r"(result), "=m"(*val)
+ : "0"(1), "m"(*val));
+ //asm volatile("lock ; xadd %0, %1" : "=m" (val), "=a" (result) : "-1" (1));
+ return result - 1;
+#else
__asm
{
mov ecx, val
@@ -689,12 +705,21 @@ PRInt32 _PR_MD_ATOMIC_DECREMENT(PRInt32 *val)
lock xadd dword ptr [ecx], eax
dec eax
}
+#endif /* __GNUC__ */
}
#pragma warning(default: 4035)
#pragma warning(disable: 4035)
PRInt32 _PR_MD_ATOMIC_ADD(PRInt32 *intp, PRInt32 val)
{
+#if defined(__GNUC__)
+ PRInt32 result;
+ //asm volatile("lock ; xadd %1, %0" : "=m" (intp), "=a" (result) : "1" (val));
+ asm volatile ("lock ; xadd %0, %1"
+ : "=r"(result), "=m"(intp)
+ : "0"(val), "m"(intp));
+ return result + val;
+#else
__asm
{
mov ecx, intp
@@ -703,6 +728,7 @@ PRInt32 _PR_MD_ATOMIC_ADD(PRInt32 *intp, PRInt32 val)
lock xadd dword ptr [ecx], eax
add eax, ebx
}
+#endif /* __GNUC__ */
}
#pragma warning(default: 4035)
@@ -712,6 +738,25 @@ PRInt32 _PR_MD_ATOMIC_ADD(PRInt32 *intp, PRInt32 val)
void
PR_StackPush(PRStack *stack, PRStackElem *stack_elem)
{
+#if defined(__GNUC__)
+ void **tos = (void **) stack;
+ void *tmp;
+
+ retry:
+ if (*tos == (void *) -1)
+ goto retry;
+
+ __asm__("lock xchg %0,%1"
+ : "=r" (tmp), "=m"(*tos)
+ : "0" (-1), "m"(*tos));
+
+ if (tmp == (void *) -1)
+ goto retry;
+
+ *(void **)stack_elem = tmp;
+ __asm__("" : : : "memory");
+ *tos = stack_elem;
+#else
__asm
{
mov ebx, stack
@@ -726,6 +771,7 @@ retry: mov eax,[ebx]
mov [ecx],eax
mov [ebx],ecx
}
+#endif /* __GNUC__ */
}
#pragma warning(default: 4035)
@@ -733,6 +779,32 @@ retry: mov eax,[ebx]
PRStackElem *
PR_StackPop(PRStack *stack)
{
+#if defined(__GNUC__)
+ void **tos = (void **) stack;
+ void *tmp;
+
+ retry:
+ if (*tos == (void *) -1)
+ goto retry;
+
+ __asm__("lock xchg %0,%1"
+ : "=r" (tmp), "=m"(*tos)
+ : "0" (-1), "m"(*tos));
+
+ if (tmp == (void *) -1)
+ goto retry;
+
+ if (tmp != (void *) 0)
+ {
+ void *next = *(void **)tmp;
+ *tos = next;
+ *(void **)tmp = 0;
+ }
+ else
+ *tos = tmp;
+
+ return tmp;
+#else
__asm
{
mov ebx, stack
@@ -753,6 +825,7 @@ empty:
mov [ebx],eax
done:
}
+#endif /* __GNUC__ */
}
#pragma warning(default: 4035)
diff --git a/pr/src/md/windows/objs.mk b/pr/src/md/windows/objs.mk
new file mode 100644
index 00000000..eff0e2b1
--- /dev/null
+++ b/pr/src/md/windows/objs.mk
@@ -0,0 +1,64 @@
+#
+# The contents of this file are subject to the Mozilla Public License
+# Version 1.1 (the "MPL"); you may not use this file except in
+# compliance with the MPL. You may obtain a copy of the MPL at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the MPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the MPL
+# for the specific language governing rights and limitations under the
+# MPL.
+#
+# The Initial Developer of this code under the MPL is Christopher
+# Seawood <cls@seawood.org>. Portions created by Christopher Seawood are
+# Copyright (C) 1999 Christopher Seawood. All Rights Reserved.
+#
+
+ifeq (WINNT,$(MOZ_TARGET))
+CSRCS = ntmisc.c \
+ ntsem.c \
+ ntinrval.c \
+ ntgc.c \
+ ntio.c \
+ ntthread.c \
+ ntdllmn.c \
+ win32_errors.c \
+ w32poll.c
+else
+ifeq (WIN95,$(MOZ_TARGET))
+CSRCS = ntmisc.c \
+ ntsem.c \
+ ntinrval.c \
+ ntgc.c \
+ w95thred.c \
+ w95io.c \
+ w95cv.c \
+ w95sock.c \
+ win32_errors.c \
+ w32poll.c \
+ w95dllmain.c
+else
+ifeq (WIN16,$(MOZ_TARGET))
+CSRCS = w16null.c \
+ w16thred.c \
+ w16proc.c \
+ w16fmem.c \
+ w16sock.c \
+ w16mem.c \
+ w16io.c \
+ w16gc.c \
+ w16error.c \
+ w16stdio.c \
+ w16callb.c \
+ ntinrval.c
+endif # win16
+endif # win95
+endif # winnt
+
+CSRCS += $(PR_MD_CSRCS)
+ASFILES += $(PR_MD_ASFILES)
+
+OBJS += $(addprefix md/windows/$(OBJDIR)/,$(CSRCS:.c=.$(OBJ_SUFFIX))) \
+ $(addprefix md/windows/$(OBJDIR)/,$(ASFILES:.s=.$(OBJ_SUFFIX)))
+
+
diff --git a/pr/src/md/windows/w95io.c b/pr/src/md/windows/w95io.c
index 7978251e..89333276 100644
--- a/pr/src/md/windows/w95io.c
+++ b/pr/src/md/windows/w95io.c
@@ -32,7 +32,11 @@ struct _MDLock _pr_ioq_lock;
* We store the value in a PRTime variable for convenience.
* This constant is used by _PR_FileTimeToPRTime().
*/
+#if defined(__MINGW32__)
+static const PRTime _pr_filetime_offset = 116444736000000000LL;
+#else
static const PRTime _pr_filetime_offset = 116444736000000000i64;
+#endif
void
_PR_MD_INIT_IO()
@@ -200,7 +204,7 @@ _PR_MD_READ(PRFileDesc *fd, void *buf, PRInt32 len)
}
PRInt32
-_PR_MD_WRITE(PRFileDesc *fd, void *buf, PRInt32 len)
+_PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 len)
{
PRInt32 f = fd->secret->md.osfd;
PRInt32 bytes;
@@ -222,7 +226,7 @@ _PR_MD_WRITE(PRFileDesc *fd, void *buf, PRInt32 len)
} /* --- end _PR_MD_WRITE() --- */
PRInt32
-_PR_MD_LSEEK(PRFileDesc *fd, PRInt32 offset, int whence)
+_PR_MD_LSEEK(PRFileDesc *fd, PRInt32 offset, PRSeekWhence whence)
{
DWORD moveMethod;
PRInt32 rv;
@@ -255,7 +259,7 @@ _PR_MD_LSEEK(PRFileDesc *fd, PRInt32 offset, int whence)
}
PRInt64
-_PR_MD_LSEEK64(PRFileDesc *fd, PRInt64 offset, int whence)
+_PR_MD_LSEEK64(PRFileDesc *fd, PRInt64 offset, PRSeekWhence whence)
{
DWORD moveMethod;
LARGE_INTEGER li;
@@ -464,7 +468,11 @@ _PR_FileTimeToPRTime(const FILETIME *filetime, PRTime *prtm)
{
PR_ASSERT(sizeof(FILETIME) == sizeof(PRTime));
CopyMemory(prtm, filetime, sizeof(PRTime));
+#if defined(__MINGW32__)
+ *prtm = (*prtm - _pr_filetime_offset) / 10LL;
+#else
*prtm = (*prtm - _pr_filetime_offset) / 10i64;
+#endif
#ifdef DEBUG
/* Doublecheck our calculation. */
@@ -818,7 +826,7 @@ _PR_MD_RENAME(const char *from, const char *to)
}
PRInt32
-_PR_MD_ACCESS(const char *name, PRIntn how)
+_PR_MD_ACCESS(const char *name, PRAccessHow how)
{
PRInt32 rv;
switch (how) {
diff --git a/pr/src/md/windows/w95thred.c b/pr/src/md/windows/w95thred.c
index feb86ea6..69ab1cd9 100644
--- a/pr/src/md/windows/w95thred.c
+++ b/pr/src/md/windows/w95thred.c
@@ -100,7 +100,11 @@ _PR_MD_CREATE_THREAD(PRThread *thread,
thread->md.handle = (HANDLE) _beginthreadex(
NULL,
thread->stack->stackSize,
+#if defined(__MINGW32__)
+ (void *)start,
+#else
(unsigned (__stdcall *)(void *))start,
+#endif
(void *)thread,
CREATE_SUSPENDED,
&(thread->id));
diff --git a/pr/src/memory/Makefile.in b/pr/src/memory/Makefile.in
new file mode 100644
index 00000000..7e4c2b7c
--- /dev/null
+++ b/pr/src/memory/Makefile.in
@@ -0,0 +1,49 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifndef USE_AUTOCONF
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+endif #!USE_AUTOCONF
+
+CSRCS = prseg.c
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
+
diff --git a/pr/src/misc/Makefile.in b/pr/src/misc/Makefile.in
new file mode 100644
index 00000000..9c036f98
--- /dev/null
+++ b/pr/src/misc/Makefile.in
@@ -0,0 +1,86 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifndef USE_AUTOCONF
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+endif #!USE_AUTOCONF
+
+CSRCS = \
+ pralarm.c \
+ pratom.c \
+ prcountr.c \
+ prdtoa.c \
+ prenv.c \
+ prerr.c \
+ prerror.c \
+ prerrortable.c \
+ prinit.c \
+ prinrval.c \
+ prlog2.c \
+ prlong.c \
+ prnetdb.c \
+ prolock.c \
+ prsystem.c \
+ prtime.c \
+ prthinfo.c \
+ prtrace.c \
+ $(NULL)
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+RELEASE_BINS = compile-et.pl prerr.properties
+
+include $(topsrcdir)/config/rules.mk
+
+ifndef USE_AUTOCONF
+# An AIX Optimization bug causes PR_dtoa() to produce wrong result.
+# This suppresses optimization for this single compilation unit.
+ifeq ($(OS_ARCH), AIX)
+$(OBJDIR)/prdtoa.o:
+ @$(MAKE_OBJDIR)
+ $(CC) -o $@ -c $(filter-out -O, $(CFLAGS)) prdtoa.c
+endif
+endif #!USE_AUTOCONF
+
+#
+# Generate prerr.h, prerr.c, and prerr.properties from prerr.et.
+#
+build_prerr:
+ $(PERL) $(srcdir)/compile-et.pl prerr.et
+
+export:: $(TARGETS)
+
+install:: export
+
diff --git a/pr/src/nspr.rc b/pr/src/nspr.rc
index 73d704b5..f64798a3 100644
--- a/pr/src/nspr.rc
+++ b/pr/src/nspr.rc
@@ -24,8 +24,9 @@
// Generated from the TEXTINCLUDE 2 resource.
//
#ifndef WIN16
+#if !defined(__MINGW32__)
#include "afxres.h"
-
+#endif
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
diff --git a/pr/src/pthreads/Makefile.in b/pr/src/pthreads/Makefile.in
new file mode 100644
index 00000000..16b1ef80
--- /dev/null
+++ b/pr/src/pthreads/Makefile.in
@@ -0,0 +1,45 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+CSRCS = \
+ ptio.c \
+ ptsynch.c \
+ ptthread.c \
+ ptmisc.c \
+ $(NULL)
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
+
diff --git a/pr/src/threads/Makefile.in b/pr/src/threads/Makefile.in
new file mode 100644
index 00000000..b935fca9
--- /dev/null
+++ b/pr/src/threads/Makefile.in
@@ -0,0 +1,82 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifdef USE_PTHREADS
+ DIRS =
+else
+ifdef USE_BTHREADS
+ DIRS =
+else
+ DIRS = combined
+endif
+endif
+
+ifndef USE_AUTOCONF
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+endif
+
+ifdef USE_PTHREADS
+CSRCS = \
+ prcmon.c \
+ prrwlock.c \
+ prtpd.c \
+ $(NULL)
+else
+ifdef USE_BTHREADS
+CSRCS = \
+ prcmon.c \
+ prrwlock.c \
+ prtpd.c \
+ $(NULL)
+else
+CSRCS = \
+ prcmon.c \
+ prdump.c \
+ prmon.c \
+ prsem.c \
+ prrwlock.c \
+ prcthr.c \
+ prtpd.c \
+ $(NULL)
+endif
+endif
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
diff --git a/pr/src/threads/combined/Makefile.in b/pr/src/threads/combined/Makefile.in
new file mode 100644
index 00000000..e4e2de37
--- /dev/null
+++ b/pr/src/threads/combined/Makefile.in
@@ -0,0 +1,59 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifndef USE_AUTOCONF
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+endif #!USE_AUTOCONF
+
+ifdef USE_PTHREADS
+CSRCS = \
+ $(NULL)
+else
+CSRCS = \
+ prucpu.c \
+ prucv.c \
+ prulock.c \
+ pruthr.c \
+ prustack.c \
+ $(NULL)
+endif
+
+TARGETS = $(OBJS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+include $(topsrcdir)/config/rules.mk
+
+export:: $(TARGETS)
+
+install:: export
diff --git a/pr/tests/Makefile.in b/pr/tests/Makefile.in
new file mode 100644
index 00000000..08b0d277
--- /dev/null
+++ b/pr/tests/Makefile.in
@@ -0,0 +1,563 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+ifeq ($(OS_TARGET), WIN16)
+OS_CFLAGS = $(OS_EXE_CFLAGS)
+W16STDIO = $(MOD_DEPTH)/pr/src/md/windows/$(OBJDIR)/w16stdio.$(OBJ_SUFFIX)
+endif
+
+ifeq ($(OS_TARGET),WIN16)
+DIRS = dll w16gui
+else
+DIRS = dll
+endif
+
+ifeq ($(OS_TARGET),OS2)
+OS_CFLAGS = $(OS_EXE_CFLAGS)
+endif
+
+CSRCS = \
+ accept.c \
+ acceptread.c \
+ alarm.c \
+ atomic.c \
+ attach.c \
+ bigfile.c \
+ bigfile2.c \
+ bigfile3.c \
+ cleanup.c \
+ cltsrv.c \
+ concur.c \
+ cvar.c \
+ cvar2.c \
+ dceemu.c \
+ dlltest.c \
+ dtoa.c \
+ errcodes.c \
+ exit.c \
+ fileio.c \
+ foreign.c \
+ forktest.c \
+ fsync.c \
+ getproto.c \
+ i2l.c \
+ initclk.c \
+ inrval.c \
+ instrumt.c \
+ intrupt.c \
+ io_timeout.c \
+ ioconthr.c \
+ ipv6.c \
+ join.c \
+ joinkk.c \
+ joinku.c \
+ joinuk.c \
+ joinuu.c \
+ layer.c \
+ lazyinit.c \
+ lltest.c \
+ lock.c \
+ lockfile.c \
+ logger.c \
+ multiacc.c \
+ multiwait.c \
+ many_cv.c \
+ nbconn.c \
+ nblayer.c \
+ nonblock.c \
+ op_2long.c \
+ op_filnf.c \
+ op_filok.c \
+ op_noacc.c \
+ op_nofil.c \
+ parent.c \
+ perf.c \
+ pipeping.c \
+ pipepong.c \
+ pipeself.c \
+ poll_er.c \
+ poll_nm.c \
+ poll_to.c \
+ pollable.c \
+ prftest.c \
+ prftest1.c \
+ prftest2.c \
+ priotest.c \
+ provider.c \
+ prpoll.c \
+ ranfile.c \
+ rwlocktest.c \
+ sel_spd.c \
+ selct_er.c \
+ selct_nm.c \
+ selct_to.c \
+ select2.c \
+ sem.c \
+ server_test.c \
+ servr_kk.c \
+ servr_ku.c \
+ servr_uk.c \
+ servr_uu.c \
+ short_thread.c \
+ sigpipe.c \
+ socket.c \
+ sockopt.c \
+ sockping.c \
+ sockpong.c \
+ sprintf.c \
+ sproc_ch.c \
+ sproc_p.c \
+ stack.c \
+ stdio.c \
+ strod.c \
+ suspend.c \
+ switch.c \
+ system.c \
+ testbit.c \
+ testfile.c \
+ threads.c \
+ thruput.c \
+ timemac.c \
+ timetest.c \
+ tmoacc.c \
+ tmocon.c \
+ tpd.c \
+ vercheck.c \
+ version.c \
+ udpsrv.c \
+ writev.c \
+ xnotify.c \
+ y2k.c \
+ $(NULL)
+
+ifeq ($(OS_TARGET),OS2)
+CSRCS += \
+ sleep.c \
+ stat.c \
+ yield.c \
+ $(NULL)
+endif
+
+ifeq ($(OS_ARCH), WINNT)
+PROG_SUFFIX = .exe
+else
+PROG_SUFFIX =
+endif
+
+PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=$(PROG_SUFFIX)))
+
+TARGETS = $(PROGS)
+
+INCLUDES = -I$(DIST)/include -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+
+# Setting the variables LDOPTS and LIBPR. We first initialize
+# them to the default values, then adjust them for some platforms.
+LDOPTS = -L$(DIST)/lib
+LIBPR = -lnspr$(MOD_VERSION)
+LIBPLC = -lplc$(MOD_VERSION)
+
+ifndef USE_AUTOCONF
+
+ifeq ($(OS_ARCH), WINNT)
+ifeq ($(OS_TARGET), WIN16)
+ LIBPR = $(DIST)/lib/nspr$(MOD_VERSION).lib
+ LIBPLC= $(DIST)/lib/plc$(MOD_VERSION).lib
+else
+ifeq ($(OS_TARGET), OS2)
+ifdef XP_OS2_VACPP
+ LDOPTS =
+ LIBPR = $(DIST)/lib/nspr$(MOD_VERSION).lib
+ LIBPLC= $(DIST)/lib/plc$(MOD_VERSION).lib
+else
+ LDOPTS = -Zlinker /PM:VIO
+endif
+else
+ LDOPTS = -NOLOGO -DEBUG -DEBUGTYPE:CV -INCREMENTAL:NO
+ ifeq ($(OS_TARGET), WIN95)
+ LIBPR = $(DIST)/lib/nspr$(MOD_VERSION).$(LIB_SUFFIX)
+ LIBPLC= $(DIST)/lib/plc$(MOD_VERSION).$(LIB_SUFFIX)
+ else
+ LIBPR = $(DIST)/lib/libnspr$(MOD_VERSION).$(LIB_SUFFIX)
+ LIBPLC= $(DIST)/lib/libplc$(MOD_VERSION).$(LIB_SUFFIX)
+ endif
+ ifdef PROFILE
+ LDOPTS += -PROFILE -MAP
+ endif # profile
+endif
+endif
+endif
+
+ifneq ($(OS_ARCH), WINNT)
+# Use an absolute pathname as the runtime library path (for the -R
+# or -rpath linker option or the LD_RUN_PATH environment variable).
+ifeq (,$(patsubst /%,,$(DIST)))
+# $(DIST) is already an absolute pathname.
+ABSOLUTE_LIB_DIR = $(DIST)/lib
+else
+# $(DIST) is a relative pathname: prepend the current directory.
+PWD = $(shell pwd)
+ABSOLUTE_LIB_DIR = $(PWD)/$(DIST)/lib
+endif
+endif
+
+ifeq ($(OS_ARCH), IRIX)
+ ifeq ($(USE_CPLUS), 1)
+ CC = CC
+ endif
+ LDOPTS += -rpath $(ABSOLUTE_LIB_DIR) -rdata_shared
+# For 6.x machines, include this flag
+ ifeq ($(basename $(OS_RELEASE)),6)
+ ifeq ($(USE_N32),1)
+ LDOPTS += -n32
+ else
+ LDOPTS += -32
+ endif
+
+ ifeq ($(USE_PTHREADS), 1)
+ ifeq ($(OS_RELEASE), 6.2)
+ LDOPTS += -Wl,-woff,85
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(OS_ARCH), OSF1)
+ ifeq ($(USE_CPLUS), 1)
+ CC = cxx
+ endif
+# I haven't figured out how to pass -rpath to cc on OSF1 V3.2, so
+# we do static linking.
+ ifeq (,$(filter-out V2.0 V3.2,$(OS_RELEASE)))
+ LIBPR = $(DIST)/lib/libnspr$(MOD_VERSION).a
+ LIBPLC = $(DIST)/lib/libplc$(MOD_VERSION).a
+ EXTRA_LIBS = -lc_r
+ else
+ LDOPTS += -rpath $(ABSOLUTE_LIB_DIR)
+ endif
+endif
+
+ifeq ($(OS_ARCH), HP-UX)
+ LDOPTS += -z -Wl,+s,+b,$(ABSOLUTE_LIB_DIR)
+ ifeq ($(USE_64),1)
+ LDOPTS += -L/usr/lib/pa20_64 -lpthread +DD64
+ endif
+endif
+
+# AIX
+ifeq ($(OS_ARCH),AIX)
+ LDOPTS += -blibpath:$(ABSOLUTE_LIB_DIR):/usr/lib:/lib
+ ifeq ($(OS_ARCH)$(OS_RELEASE),AIX4.1)
+ LIBPR = -lnspr$(MOD_VERSION)_shr
+ LIBPLC = -lplc$(MOD_VERSION)_shr
+ else
+ LDOPTS += -brtl
+ EXTRA_LIBS = -ldl
+ endif
+endif
+
+# Solaris
+ifeq ($(OS_ARCH), SunOS)
+ ifneq ($(OS_RELEASE), 4.1.3_U1)
+ ifdef NS_USE_GCC
+ LDOPTS += -Xlinker -R -Xlinker $(ABSOLUTE_LIB_DIR)
+ else
+ ifeq ($(USE_CPLUS), 1)
+ CC = CC
+ endif
+ LDOPTS += -R $(ABSOLUTE_LIB_DIR)
+ endif
+ endif
+
+ ifneq ($(LOCAL_THREADS_ONLY),1)
+# SunOS 5.4 and 5.5 need to link with -lthread or -lpthread,
+# even though we already linked with these system libraries
+# when we built libnspr.so.
+ ifeq ($(OS_RELEASE), 5.4)
+ EXTRA_LIBS = -lthread
+ endif
+
+ ifeq ($(OS_RELEASE), 5.5)
+ ifdef USE_PTHREADS
+ EXTRA_LIBS = -lpthread
+ else
+ EXTRA_LIBS = -lthread
+ endif
+ endif
+ endif # LOCAL_THREADS_ONLY
+endif # SunOS
+
+ifeq ($(OS_ARCH), NEC)
+ EXTRA_LIBS = $(OS_LIBS)
+# This hardcodes in the executable programs the directory to find
+# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
+# option for ld on other platforms.
+ export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
+endif
+
+ifeq ($(OS_ARCH), NCR)
+# NCR needs to link against -lsocket -lnsl -ldl (and -lc, which is
+# linked implicitly by $(CC)). Note that we did not link with these
+# system libraries when we built libnspr.so.
+ EXTRA_LIBS = -lsocket -lnsl -ldl
+# This hardcodes in the executable programs the directory to find
+# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
+# option for ld on other platforms.
+ export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
+endif
+
+ifeq ($(OS_ARCH), NEXTSTEP)
+# balazs.pataki@sztaki.hu: linkage is done in a different pass in the `tests'
+# modeul, so we have to pass the `-posix' flag by "hand" to `ld'
+LDOPTS += -posix
+endif
+
+ifeq ($(OS_ARCH), NEWS-OS)
+# This hardcodes in the executable programs the directory to find
+# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
+# option for ld on other platforms.
+#export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
+ LIBPR = $(DIST)/lib/libnspr$(MOD_VERSION).a
+ LIBPLC = $(DIST)/lib/libplc$(MOD_VERSION).a
+ EXTRA_LIBS = -lsocket -lnsl -lgen -lresolv
+endif
+
+ifeq ($(OS_ARCH), Linux)
+ ifeq ($(OS_RELEASE), 1.2)
+ EXTRA_LIBS = -ldl
+ else
+ LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
+ ifeq ($(USE_PTHREADS),1)
+ EXTRA_LIBS = -lpthread
+ endif
+ endif
+endif
+
+ifeq ($(OS_ARCH), SCOOS)
+# SCO Unix needs to link against -lsocket again even though we
+# already linked with these system libraries when we built libnspr.so.
+EXTRA_LIBS = -lsocket
+# This hardcodes in the executable programs the directory to find
+# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
+# option for ld on other platforms.
+export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
+endif
+
+ifeq ($(OS_ARCH),SINIX)
+EXTRA_LIBS = -lsocket -lnsl -lresolv -ldl
+# This hardcodes in the executable programs the directory to find
+# libnspr.so etc. at program startup. Equivalent to the -R or -rpath
+# option for ld on other platforms.
+export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
+endif
+
+ifeq ($(OS_ARCH), UNIXWARE)
+export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)
+endif
+
+ifeq ($(OS_ARCH),FreeBSD)
+ifeq ($(USE_PTHREADS),1)
+LDOPTS += -pthread
+endif
+LDOPTS += -Xlinker -R $(ABSOLUTE_LIB_DIR)
+endif
+
+ifeq ($(OS_ARCH),BSD_OS)
+ifneq ($(OS_RELEASE),1.1)
+EXTRA_LIBS = -ldl
+endif
+endif
+
+ifeq ($(USE_PTHREADS),1)
+ifeq ($(OS_ARCH),AIX)
+LIBPTHREAD = -lpthreads
+else
+ ifeq ($(OS_ARCH),FreeBSD)
+ LIBPTHREAD =
+ else
+ ifeq ($(OS_ARCH)$(basename $(OS_RELEASE)),HP-UXB.10)
+ LIBPTHREAD = -ldce
+ else
+ ifeq ($(OS_ARCH),BSD_OS)
+ LIBPTHREAD =
+ else
+ LIBPTHREAD = -lpthread
+ endif
+ endif
+ endif
+endif
+endif
+
+endif # !USE_AUTOCONF
+
+#####################################################
+#
+# The rules
+#
+#####################################################
+
+include $(topsrcdir)/config/rules.mk
+
+ifdef USE_AUTOCONF
+
+# Cancel this rule (force implicit)
+%: %.c
+
+%: %.$(OBJ_SUFFIX)
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPR) $(EXTRA_LIBS) -o $@
+
+else # !USE_AUTOCONF
+
+AIX_PRE_4_2 = 0
+ifeq ($(OS_ARCH),AIX)
+ifeq ($(OS_RELEASE),4.1)
+ifneq ($(USE_PTHREADS), 1)
+#AIX_PRE_4_2 = 1
+endif
+endif
+endif
+
+ifeq ($(AIX_PRE_4_2),1)
+
+# AIX releases prior to 4.2 need a special two-step linking hack
+# in order to both override the system select() and be able to
+# get at the original system select().
+#
+# We use a pattern rule in ns/nspr20/config/rules.mk to generate
+# the .$(OBJ_SUFFIX) file from the .c source file, then do the
+# two-step linking hack below.
+
+$(OBJDIR)/%: $(OBJDIR)/%.$(OBJ_SUFFIX)
+ @$(MAKE_OBJDIR)
+ rm -f $@ $(AIX_TMP)
+ $(CC) $(AIX_LINK_OPTS) -o $(AIX_TMP) $< $(DIST)/lib/libnspr$(MOD_VERSION).a
+ $(CC) -o $@ $(AIX_TMP) $(AIX_WRAP)
+ rm -f $(AIX_TMP)
+
+else
+
+# All platforms that are not AIX pre-4.2.
+
+$(OBJDIR)/%$(PROG_SUFFIX): $(OBJDIR)/%.$(OBJ_SUFFIX)
+ @$(MAKE_OBJDIR)
+ifeq ($(OS_ARCH), WINNT)
+ifeq ($(OS_TARGET),WIN16)
+ echo system windows >w16link
+ echo name $@ >>w16link
+ echo option map >>w16link
+# echo option CASEEXACT >>w16link
+ echo option stack=16K >>w16link
+ echo debug $(DEBUGTYPE) all >>w16link
+ echo file >>w16link
+ echo $< , >>w16link
+ echo $(W16STDIO) >>w16link
+ echo library >>w16link
+ echo $(LIBPR), >>w16link
+ echo $(LIBPLC), >>w16link
+ echo winsock.lib >>w16link
+ wlink @w16link.
+else
+ifeq ($(OS_TARGET),OS2)
+ $(LINK) $(EXEFLAGS) $(LDOPTS) $< $(LIBPLC) $(LIBPR) $(OS_LIBS) $(EXTRA_LIBS)
+else
+ link $(LDOPTS) $< $(LIBPLC) $(LIBPR) wsock32.lib -out:$@
+endif
+endif
+else
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPR) $(EXTRA_LIBS) -o $@
+endif
+
+endif
+
+endif # !USE_AUTOCONF
+
+export:: $(TARGETS)
+install:: export
+clean::
+ rm -f $(TARGETS)
+
+# The prpoll test calls BSD socket functions, so it needs to link
+# with -lsocket on some platforms.
+ifeq ($(OS_ARCH),SunOS)
+ifneq ($(OS_RELEASE),4.1.3_U1)
+$(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPR) -lsocket $(EXTRA_LIBS) -o $@
+endif
+endif
+
+ifeq ($(USE_PTHREADS), 1)
+$(OBJDIR)/attach: $(OBJDIR)/attach.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
+$(OBJDIR)/foreign: $(OBJDIR)/foreign.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
+$(OBJDIR)/provider: $(OBJDIR)/provider.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
+$(OBJDIR)/socket: $(OBJDIR)/socket.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
+$(OBJDIR)/testfile: $(OBJDIR)/testfile.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
+endif
+
+#
+# Run the test programs with no arguments
+#
+# Test output goes to the file pointed to by the environment variable
+# NSPR_TEST_LOGFILE, if set, else to /dev/null
+#
+ECHO = echo
+PROGRAMS = $(notdir $(PROGS))
+ifdef NSPR_TEST_LOGFILE
+LOGFILE = $(NSPR_TEST_LOGFILE)
+else
+ifeq ($(OS_ARCH), WINNT)
+LOGFILE = nul
+else
+LOGFILE = /dev/null
+endif
+endif
+
+ifeq ($(OS_TARGET),Linux)
+ECHO = /bin/echo
+endif
+
+ALWAYS:
+
+runtests:: $(PROGS) ALWAYS
+ @$(ECHO) "\nNSPR Test Results - $(OBJDIR)\n"
+ @$(ECHO) "BEGIN\t\t\t`date`"
+ @$(ECHO) "NSPR_TEST_LOGFILE\t$(LOGFILE)\n"
+ @$(ECHO) "Test\t\t\tResult\n"
+ @cd $(OBJDIR); for i in $(PROGRAMS); do \
+ $(ECHO) "$$i\c"; \
+ ./$$i >> $(LOGFILE) 2>&1 ; \
+ if [ 0 = $$? ] ; then \
+ $(ECHO) "\t\t\tPassed"; \
+ else \
+ $(ECHO) "\t\t\tFAILED"; \
+ fi; \
+ done
+ @$(ECHO) "\nEND\t\t`date`\n"
diff --git a/pr/tests/dll/Makefile.in b/pr/tests/dll/Makefile.in
new file mode 100644
index 00000000..3165224f
--- /dev/null
+++ b/pr/tests/dll/Makefile.in
@@ -0,0 +1,99 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+# Disable optimization of the nspr on SunOS4.1.3
+ifeq ($(OS_ARCH),SunOS)
+ifeq ($(OS_RELEASE),4.1.3_U1)
+OPTIMIZER =
+endif
+endif
+
+INCLUDES = -I$(DIST)/include
+
+OBJS = $(OBJDIR)/mygetval.$(OBJ_SUFFIX) \
+ $(OBJDIR)/mysetval.$(OBJ_SUFFIX)
+
+ifeq ($(OS_TARGET), WIN16)
+W16OBJS = $(subst $(space),$(comma)$(space),$(OBJS))
+endif
+
+ifeq ($(OS_ARCH), WINNT)
+ifeq (,$(filter-out WIN16 OS2,$(OS_TARGET)))
+# do nothing
+else
+DLLBASE=/BASE:0x30000000
+RES=$(OBJDIR)/my.res
+RESNAME=../../../pr/src/nspr.rc
+endif
+endif
+
+ifeq ($(OS_ARCH), WINNT)
+IMPORT_LIBRARY = $(OBJDIR)/my.lib
+SHARED_LIBRARY = $(OBJDIR)/my.dll
+ifeq ($(OS_TARGET), OS2)
+LIBRARY = $(OBJDIR)/my_s.lib
+# XXX $(LIBRARY) probably doesn't need to be added to TARGETS.
+TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
+else
+TARGETS = $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
+endif
+else
+ifdef MKSHLIB
+SHARED_LIBRARY = $(OBJDIR)/libmy.$(DLL_SUFFIX)
+endif
+TARGETS = $(SHARED_LIBRARY)
+endif
+
+#
+# To create a loadable module on Rhapsody, we must override
+# -dynamiclib with -bundle.
+#
+ifeq ($(OS_ARCH),Rhapsody)
+DSO_LDOPTS = -bundle
+endif
+
+include $(topsrcdir)/config/rules.mk
+
+ifeq ($(OS_TARGET), WIN16)
+# Note: The Win16 target: my.dll requires these macros
+# to be overridden to build the test .dll
+# default values in win16...mk are for release targets.
+#
+OS_DLL_OPTION = NOCASEEXACT
+OS_LIB_FLAGS = -irn
+endif
+
+ifdef SHARED_LIBRARY
+export:: $(TARGETS)
+ $(NSINSTALL) $(TARGETS) ../$(OBJDIR)/dll
+
+install:: export
+
+clean::
+ rm -rf $(TARGETS)
+endif
diff --git a/pr/tests/time.c b/pr/tests/time.c
index 9dc4edb8..b27dc1a1 100644
--- a/pr/tests/time.c
+++ b/pr/tests/time.c
@@ -39,6 +39,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/time.h>
#define DEFAULT_COUNT 100000
PRInt32 count;
@@ -79,7 +80,6 @@ static void timeGethrtime(void)
rv = ftime();
}
-#include <sys/time.h>
static void timeGettimeofday(void)
{
PRInt32 index = count;
diff --git a/pr/tests/w16gui/Makefile.in b/pr/tests/w16gui/Makefile.in
new file mode 100644
index 00000000..babc0fb1
--- /dev/null
+++ b/pr/tests/w16gui/Makefile.in
@@ -0,0 +1,80 @@
+#
+# The contents of this file are subject to the Netscape Public License
+# Version 1.1 (the "NPL"); you may not use this file except in
+# compliance with the NPL. You may obtain a copy of the NPL at
+# http://www.mozilla.org/NPL/
+#
+# Software distributed under the NPL is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
+# for the specific language governing rights and limitations under the
+# NPL.
+#
+# The Initial Developer of this code under the NPL is Netscape
+# Communications Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All Rights
+# Reserved.
+#
+
+#! gmake
+
+
+
+MOD_DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+include $(MOD_DEPTH)/config/autoconf.mk
+
+include $(topsrcdir)/config/config.mk
+
+W16STDIO = $(MOD_DEPTH)/pr/src/md/windows/$(OBJDIR)/w16stdio.$(OBJ_SUFFIX)
+
+CSRCS = poppad.c \
+ popfile.c \
+ popfont.c \
+ popfind.c \
+ popprnt0.c
+
+
+INCLUDES = -I$(DIST)/include
+LIBPR = $(DIST)/lib/nspr$(MOD_VERSION).lib
+LIBPLDS = $(DIST)/lib/plds$(MOD_VERSION).lib
+TARGETS = $(OBJDIR)/poppad.exe
+OS_CFLAGS = $(OS_EXE_CFLAGS)
+
+include $(topsrcdir)/config/rules.mk
+
+
+ifeq ($(OS_TARGET),WIN16)
+$(OBJDIR)/poppad.exe: $(OBJS)
+ @$(MAKE_OBJDIR)
+ echo system windows >w16link
+ echo name $@ >>w16link
+ echo option map >>w16link
+ echo option stack=16K >>w16link
+ echo debug $(DEBUGTYPE) all >>w16link
+ echo file >>w16link
+ echo $(OBJDIR)\\poppad.$(OBJ_SUFFIX), >>w16link
+ echo $(OBJDIR)\\popfile.$(OBJ_SUFFIX), >>w16link
+ echo $(OBJDIR)\\popfont.$(OBJ_SUFFIX), >>w16link
+ echo $(OBJDIR)\\popfind.$(OBJ_SUFFIX), >>w16link
+ echo $(OBJDIR)\\popprnt0.$(OBJ_SUFFIX), >>w16link
+ echo $(W16STDIO) >>w16link
+ echo library $(LIBPR) >>w16link
+ echo library $(LIBPLDS) >>w16link
+ echo library clibl, commdlg >>w16link
+ echo library winsock.lib >>w16link
+ wlink @w16link.
+ wrc -bt=windows poppad.rc $(OBJDIR)\\poppad.exe
+else
+$(OBJDIR)/poppad.exe: $(OBJS)
+ link $(LDOPTS) $< $(LIBPLC) $(LIBPR) wsock32.lib -out:$@
+endif
+
+export:: $(TARGETS)
+
+install:: export
+
+clean::
+ rm -rf $(TARGETS)