diff options
author | srinivas%netscape.com <devnull@localhost> | 1999-10-14 15:09:11 +0000 |
---|---|---|
committer | srinivas%netscape.com <devnull@localhost> | 1999-10-14 15:09:11 +0000 |
commit | f968072a0866ccebe32fb462121fb2aafb2301c7 (patch) | |
tree | c8c1844edea6f65a97b9ff480b64990c1363d5ca /pr | |
parent | e6c60572caa5d74a23132a2f08dc5eb17d66c73d (diff) | |
download | nspr-hg-f968072a0866ccebe32fb462121fb2aafb2301c7.tar.gz |
Add autoconf for NSPR. Check in for cls@seawood.org. Buzill 11893
Diffstat (limited to 'pr')
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) |