#! /bin/sh /usr/share/dpatch/dpatch-run
## 315-fixes-for-MacOSX.dpatch by <kmccarty@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Patch set (mostly due to Keisuke Fujii) to allow Cernlib to compile
## DP: and run on OS X.
@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/Imakefile cernlib-2005.05.09.dfsg/src/Imakefile
--- cernlib-2005.05.09.dfsg~/src/Imakefile 1996-12-16 10:08:41.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/Imakefile 2005-12-07 14:47:34.141148558 -0500
@@ -7,8 +7,12 @@
SUBDIRS= $(LIBDIRS) patchy cfortran
#ifdef CERNLIB_UNIX
+#ifdef CERNLIB_MACOSX
+SUBDIRS:= $(SUBDIRS) scripts
+#else
SUBDIRS:= $(SUBDIRS) scripts mgr
#endif
+#endif
InstallLibSubdirs($(LIBDIRS))
diff -urNad cernlib-2005.05.09.dfsg~/src/config/Imake.rules cernlib-2005.05.09.dfsg/src/config/Imake.rules
--- cernlib-2005.05.09.dfsg~/src/config/Imake.rules 2005-04-18 11:39:25.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/config/Imake.rules 2005-12-07 14:47:34.139148983 -0500
@@ -2171,7 +2171,7 @@
#define CppScriptTarget(dst,src,defs,deplist) @@\
dst:: src deplist @@\
RemoveFile($@) @@\
- $(CPP) defs <src | CppSedMagic >$@ @@\
+ $(CPP) defs src | CppSedMagic >$@ @@\
chmod a+x $@ @@\
@@\
clean:: @@\
@@ -2203,7 +2203,7 @@
#define CppFileTarget(dst,src,defs,deplist) @@\
dst:: src deplist @@\
RemoveFile($@) @@\
- $(CPP) defs <src | CppSedMagic >$@ @@\
+ $(CPP) defs src | CppSedMagic >$@ @@\
@@\
clean:: @@\
RemoveFiles(dst)
diff -urNad cernlib-2005.05.09.dfsg~/src/config/MacOSX.cf cernlib-2005.05.09.dfsg/src/config/MacOSX.cf
--- cernlib-2005.05.09.dfsg~/src/config/MacOSX.cf 1969-12-31 19:00:00.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/config/MacOSX.cf 2005-12-07 14:47:34.140148771 -0500
@@ -0,0 +1,170 @@
+XCOMM platform: $SFO: MOSXS.cf,v 1.0 95/11/19 23:21:00 sl Exp $
+
+#define OSVendor Apple Computer, Inc.
+#ifdef MacOSXArchitecture
+#define OSName MacOSX
+#define OSMajorVersion DefaultOSMajorVersion
+#define OSMinorVersion DefaultOSMinorVersion
+#define OSTeenyVersion 0
+#endif
+
+#define ProjectRulesFile <MacOSX.rules>
+#define ProjectTmplFile <MacOSX.tmpl>
+
+#define InstKmemFlags -m 2755 -g kmem
+/* #define ConstructMFLAGS NO */
+
+#define HasNdbm YES
+#define SetTtyGroup YES
+#define HasBsearch YES
+#ifdef MacOSXArchitecture
+#define HasPutenv YES
+#define MathLibrary /**/
+#define DBMLibrary /**/
+#define TermcapLibrary /**/
+#define HasBSD44Sockets YES
+#define HAS_SNPRINTF YES
+#endif
+
+#define NeedConstPrototypes YES
+#define NeedVarargsPrototypes YES
+#define NeedFunctionPrototypes YES
+#define NeedWidePrototypes NO
+
+#define GzipFontCompression YES
+#define CompressAllFonts YES
+
+#ifndef HasShm
+# define HasShm YES
+#endif
+#ifndef BuildGlxExt
+# define BuildGlxExt YES
+# define GlxUseNSGL YES
+#endif
+#define BuildServer YES
+#define BuildXprint NO
+#define BuildFonts YES
+#define BuildDPMS NO
+
+#define TenonServer YES
+#define XprtServer NO
+#define XVendorString "Tenon Intersystems Xtools"
+#define XVendorRelease 1000
+#ifndef UseRgbTxt
+#define UseRgbTxt YES
+#endif
+
+#define BuildPexExt NO
+
+#ifndef BuildGLXLibrary
+# define BuildGLXLibrary YES
+#endif
+
+/* no direct graphics extension */
+#define BuildXF86DGA NO
+
+/* no extra tablets and weird input devices */
+#define BuildXInputExt NO
+
+/* Build Xinerama (aka panoramiX) extension */
+#define BuildXinerama YES
+
+/* no Display Power Management extension */
+#define BuildDPMSExt NO
+
+# define BuildXvExt NO
+
+#ifndef OptimizationLevel
+# define OptimizationLevel -O
+#endif
+#define OptimizedCDebugFlags OptimizationLevel -fPIC -pipe
+#define ExtraLoadFlags -L/usr/X11R6/lib -L/sw/lib -L/usr/lib -lc
+
+#define BuildExamples YES
+
+#define StandardDefines -DCERNLIB_LINUX -DCERNLIB_PPC -DCERNLIB_MACOSX \
+ -Dunix=unix -D__powerpc__ -D__DARWIN__
+/* -DX_NOT_POSIX -DX_LOCALE */
+
+#define HasVoidSignalReturn YES
+
+#ifndef DependFlags
+#define DependFlags -I/usr/include/ansi -I/usr/include/bsd -I/sw/include
+#endif
+
+#define StandardIncludes -I/sw/include
+
+#define InstallCmd install /* unlink old */
+
+/* #define ArCmd libtool -a -o */
+#define ArCmd ar -r
+
+#ifndef RanlibCmd
+#define RanlibCmd ranlib -c -s
+#endif
+
+/* see below for ServerDefines */
+
+#define PrimaryScreenResolution 95 /* for 17 inch screen */
+
+#define ServerCDebugFlags OptimizationLevel -fPIC -g -pipe
+
+#ifndef HasGcc
+#define HasGcc YES
+#endif
+
+#undef CcCmd
+#undef CplusplusCmd
+#ifdef MacOSXArchitecture
+#define CcCmd cc -g -arch "ppc" -no-cpp-precomp
+#define CplusplusCmd c++ -g -no-cpp-precomp
+#endif
+#ifndef CcCmd
+#define CcCmd cc -g
+#endif
+
+#define CppCmd /usr/bin/cpp
+
+#include <MacOSX.rules>
+#include <xf86.rules>
+#undef XFree86Server
+/* #define GLX_DIRECT_RENDERING */
+
+#define f2cFortran YES
+#define FortranCmd g77 -g
+#define XargsCmd xargs
+#define FortranSaveFlags /* */ /* Everything static !? */
+#define OptimisedFortranFlags OptimizationLevel -fPIC -funroll-loops \
+ -fomit-frame-pointer
+#define DefaultCCOptions OptimizationLevel
+#define DefaultFCOptions -fno-automatic \
+ -fno-second-underscore \
+ -fno-f90 -fugly-complex -fno-globals \
+ -fugly-init -Wno-globals OptimizationLevel
+
+#ifndef CernlibLocalDefines
+# define CernlibLocalDefines
+#endif
+#define CernlibSystem -DCERNLIB_LINUX -DCERNLIB_UNIX -DCERNLIB_LNX \
+ -DCERNLIB_PPC -DCERNLIB_QMGLIBC \
+ -DCERNLIB_MACOSX CernlibLocalDefines
+
+#undef CERNLIB_SHIFT
+
+#define CERNLIB_LINUX
+#define CERNLIB_UNIX
+#define CERNLIB_LNX
+#define CERNLIB_PPC
+#define CERNLIB_QMGLIBC
+#define CERNLIB_MACOSX
+
+#define X11Includes -I/usr/X11R6/include
+
+/*
+ * Create a Make Variable to allow building with/out Motif
+ */
+#undef MotifDependantMakeVar
+#define MotifDependantMakeVar(variable,value) variable=value
+/* End CERNLIB changes */
+
+
diff -urNad cernlib-2005.05.09.dfsg~/src/config/MacOSX.rules cernlib-2005.05.09.dfsg/src/config/MacOSX.rules
--- cernlib-2005.05.09.dfsg~/src/config/MacOSX.rules 1969-12-31 19:00:00.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/config/MacOSX.rules 2005-12-07 14:47:34.140148771 -0500
@@ -0,0 +1,123 @@
+XCOMM $XConsortium: MOSXS.rules,v 1.1 97/12/12 15:34:45 sl Exp $
+
+/*
+ * MacOSX shared library rules
+ */
+
+#define HasSharedLibraries YES
+
+#define ForceNormalLib NO
+
+#ifndef SharedDataSeparation
+#define SharedDataSeparation YES
+#endif
+#ifndef SharedCodeDef
+#define SharedCodeDef
+#endif
+#ifndef SharedLibraryDef
+#define SharedLibraryDef -fno-common
+#endif
+
+#define ShLibIncludeFile <MacOSX.tmpl>
+
+#ifndef SharedLibraryLoadFlags
+#define SharedLibraryLoadFlags
+#endif
+#ifndef PositionIndependentCFlags
+#define PositionIndependentCFlags
+#endif
+
+
+/*
+ * InstallSharedLibrary - generate rules to install the shared library.
+ * Edited 2003-05-09 by Kevin McCarty to add an install.shlib target.
+ */
+#ifndef InstallSharedLibrary
+#define InstallSharedLibrary(libname,rev,dest) @@\
+.PHONY: install.shlib shlib/libname @@\
+shlib/libname:: $(DESTDIR)dest/SharedLibraryTargetName(libname) @@\
+ @@\
+install.shlib:: $(DESTDIR)dest/SharedLibraryTargetName(libname) @@\
+ @@\
+$(DESTDIR)dest/SharedLibraryTargetName(libname): SharedLibraryTargetName(libname) @@\
+ MakeDir($(DESTDIR)dest) @@\
+ $(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.rev.dylib) $(DESTDIR)dest @@\
+ (T=`echo Concat($(DESTDIR)dest/lib,libname.rev.dylib) | sed 's/\.[^\.d]*\.dylib/\.dylib/'`;\ @@\
+ $(RM) $$T && $(LN) Concat(lib,libname.rev.dylib) $$T) @@\
+ $(RM) Concat($(DESTDIR)dest/lib,libname.dylib) @@\
+ $(LN) Concat(lib,libname.rev.dylib) Concat($(DESTDIR)dest/lib,libname.dylib)
+#endif /* InstallSharedLibrary */
+
+/*
+ * NormalSharedLibraryTarget - generate rules to create a shared library;
+ * build it into a different name so that the we do not hose people by having
+ * the library gone for long periods.
+ */
+#ifndef SharedLibraryTarget
+#define SharedLibraryTarget(libname,rev,solist,down,up) @@\
+AllTarget(Concat(lib,libname.dylib)) @@\
+ @@\
+Concat(lib,libname.dylib): solist $(EXTRALIBRARYDEPS) @@\
+ $(RM) $@~ @@\
+ (cd down; $(CC) -I/usr/X11R6/lib -dynamiclib -undefined suppress -install_name /usr/X11R6/lib/$@ -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\
+ $(MV) $@~ $@ @@\
+ LinkBuildLibrary($@) @@\
+ @@\
+clean:: @@\
+ $(RM) Concat(lib,libname.dylib)
+
+#endif /* SharedLibraryTarget */
+
+/*
+ * SharedDepLibraryTarget - generate rules to create a shared library.
+ */
+#ifndef SharedDepLibraryTarget
+#define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\
+AllTarget(Concat(lib,libname.dylib)) @@\
+ @@\
+Concat(lib,libname.dylib): deplist $(EXTRALIBRARYDEPS) @@\
+ $(RM) $@~ @@\
+ (cd down; $(CC) -I/usr/X11R6/lib -dynamiclib -undefined suppress -install_name /usr/X11R6/lib/$@ -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\
+ $(RM) $@ @@\
+ $(MV) $@~ $@ @@\
+ LinkBuildLibrary($@) @@\
+ @@\
+clean:: @@\
+ $(RM) Concat(lib,libname.dylib)
+
+#endif /* SharedDepLibraryTarget */
+
+/*
+ * SharedLibraryDataTarget - generate rules to create shlib data file;
+ */
+#ifndef SharedLibraryDataTarget
+#define SharedLibraryDataTarget(libname,rev,salist)
+#endif /* SharedLibraryDataTarget */
+
+#ifndef InstallSharedLibraryData
+#define InstallSharedLibraryData(libname,rev,dest)
+#endif /* InstallSharedLibraryData */
+
+/*
+ * SharedLibReferences - variables for shared libraries
+ */
+#ifndef SharedLibReferences
+#define SharedLibReferences(varname,libname,libsource,revname,rev) @@\
+revname = rev @@\
+Concat3(DEP,varname,LIB) = SharedLibDependencies(libname,libsource,revname) @@\
+Concat(varname,LIB) = LoaderLibPrefix Concat(-l,libname) @@\
+LintLibReferences(varname,libname,libsource)
+#endif
+
+/*
+ * SharedDSLibReferences - variables for shared libraries
+ */
+#ifndef SharedDSLibReferences
+#define SharedDSLibReferences(varname,libname,libsource,revname,rev) @@\
+revname = rev @@\
+Concat3(DEP,varname,LIB) = SharedDSLibDependencies(libname,libsource,revname) @@\
+Concat(varname,LIB) = LoaderLibPrefix Concat(-l,libname) Concat3(Shared,libname,Reqs) @@\
+LintLibReferences(varname,libname,libsource)
+#endif
+
+
diff -urNad cernlib-2005.05.09.dfsg~/src/config/MacOSX.tmpl cernlib-2005.05.09.dfsg/src/config/MacOSX.tmpl
--- cernlib-2005.05.09.dfsg~/src/config/MacOSX.tmpl 1969-12-31 19:00:00.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/config/MacOSX.tmpl 2005-12-07 14:47:34.140148771 -0500
@@ -0,0 +1,67 @@
+XCOMM $XConsortium: MOSXS.tmpl,v 1.2 97/12/12 19:07:12 sl Exp $
+
+/*
+ * Xnext shared library template
+ */
+
+
+
+#ifndef SharedXtReqs
+#define SharedXtReqs /**/
+#endif
+#ifndef SharedXawReqs
+#define SharedXawReqs /**/
+#endif
+#ifndef SharedXmuReqs
+#define SharedXmuReqs $(LDPRELIB) $(XTOOLONLYLIB) $(XONLYLIB)
+#endif
+
+#define SharedLibX11 YES
+#define SharedX11Rev F
+SharedLibReferences(XONLY,X11,$(XLIBSRC),SOXLIBREV,SharedX11Rev)
+
+#define SharedLibXau NO /* don't need shared form */
+#define SharedLibXdmcp NO /* don't need shared form */
+
+#define SharedLibXmu YES
+#define SharedXmuRev F
+
+#define SharedOldXRev F
+
+#define SharedLibXext YES
+#define SharedXextRev F
+
+#define SharedLibXt YES
+#define SharedXtRev F
+SharedDSLibReferences(XTOOLONLY,Xt,$(TOOLKITSRC),SOXTREV,SharedXtRev)
+
+#define SharedXawRev F
+
+#define SharedXtfRev A
+
+#define SharedLibXi YES
+#define SharedXiRev F
+SharedLibReferences(XI,Xi,$(XILIBSRC),SOXINPUTREV,SharedXiRev)
+
+#define SharedLibXtst YES
+#define SharedXtstRev F
+SharedLibReferences(XTEST,Xtst,$(XTESTLIBSRC),SOXTESTREV,SharedXtstRev)
+
+
+#define SharedPexRev F
+SharedLibReferences(PEX,PEX5,$(PEXLIBSRC),SOPEXREV,SharedPexRev)
+
+#define SharedLibXie YES
+#define SharedXieRev F
+
+#define SharedLibICE YES
+#define SharedICERev F
+SharedLibReferences(ICE,ICE,$(ICESRC),SOICEREV,SharedICERev)
+
+#define SharedLibSM YES
+#define SharedSMRev F
+SharedLibReferences(SM,SM,$(SMSRC),SOSMREV,SharedSMRev)
+
+#define SharedFSRev F
+SharedLibReferences(FS,FS,$(FSLIBSRC),SOFSREV,SharedFSRev)
+
diff -urNad cernlib-2005.05.09.dfsg~/src/config/site.def cernlib-2005.05.09.dfsg/src/config/site.def
--- cernlib-2005.05.09.dfsg~/src/config/site.def 2002-04-26 10:46:04.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/config/site.def 2005-12-07 14:47:34.140148771 -0500
@@ -99,9 +99,7 @@
/* if it is already defined and false, undef it! */
/* do not use shift by default
#if defined(CERNLIB_UNIX) && !defined(CERNLIB_WINNT)
-#if ! defined(CERNLIB_SHIFT)
-#define CERNLIB_SHIFT
-#elif ! CERNLIB_SHIFT
+#if defined(CERNLIB_SHIFT) && !CERNLIB_SHIFT
#undef CERNLIB_SHIFT
#endif
#endif
diff -urNad cernlib-2005.05.09.dfsg~/src/geant321/gxint/Imakefile cernlib-2005.05.09.dfsg/src/geant321/gxint/Imakefile
--- cernlib-2005.05.09.dfsg~/src/geant321/gxint/Imakefile 1997-01-29 11:37:40.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/geant321/gxint/Imakefile 2005-12-07 14:47:34.140148771 -0500
@@ -30,7 +30,7 @@
gxint321.f: gxint.F
RemoveFile($@)
- $(CPP) $(FORTRANALLDEFMDEPEND) < $^ | sed -e '/^$$/d' | CppSedMagic >$@
+ FortranCmd -E $(FORTRANALLDEFMDEPEND) $^ | sed -e '/^$$/d' | CppSedMagic >$@
install.lib:: $(CERN_LIBDIR)/gxint.f
diff -urNad cernlib-2005.05.09.dfsg~/src/mathlib/gen/tests/c327m.F cernlib-2005.05.09.dfsg/src/mathlib/gen/tests/c327m.F
--- cernlib-2005.05.09.dfsg~/src/mathlib/gen/tests/c327m.F 1996-04-01 10:01:17.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/mathlib/gen/tests/c327m.F 2005-12-07 14:47:34.141148558 -0500
@@ -92,7 +92,11 @@
#endif
ENDIF
WRITE(Z,'(2D26.16)') H,T
+#if defined(CERNLIB_MACOSX)
+ READ(Z,'(2(4X,D22.16))') H1,T1
+#else
READ(Z,'(2(D22.16,4X))') H1,T1
+#endif
IF(IDS .EQ. 1) THEN
ERRMAX=MAX(ERRMAX,ABS(H1-T1))
LTEST= LTEST .AND. ERRMAX .LE. TSTERR
diff -urNad cernlib-2005.05.09.dfsg~/src/mathlib/gen/tests/c342m.F cernlib-2005.05.09.dfsg/src/mathlib/gen/tests/c342m.F
--- cernlib-2005.05.09.dfsg~/src/mathlib/gen/tests/c342m.F 1996-04-01 10:01:19.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/mathlib/gen/tests/c342m.F 2005-12-07 14:47:34.141148558 -0500
@@ -70,7 +70,11 @@
#endif
END IF
WRITE(Z,'(2D26.16)') R,T
+#if defined(CERNLIB_MACOSX)
+ READ(Z,'(2(4X,D22.16))') R1,T1
+#else
READ(Z,'(2(D22.16,4X))') R1,T1
+#endif
ERMAX= MAX(ERMAX,ABS(R1-T1))
IF(IDS .EQ. 3 .OR. IDS .EQ. 4) THEN
WRITE(LOUT,'(1X,F10.3,2F25.16,1P,D10.1)') SX,R,T,ABS(R1-T1)
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/cojets/data/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/cojets/data/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/cojets/data/Imakefile 1996-03-27 04:31:06.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/mclibs/cojets/data/Imakefile 2005-12-07 14:47:34.141148558 -0500
@@ -1,11 +1,11 @@
.SUFFIXES:
-CopyFile(cojets.cpp,cojets.cin)
+CopyFile(cojets.cpp,cojets.s)
CopyFile(decay.cpp,decay.cin)
CopyFile(table.cpp,table.cin)
-CppFileTarget(cojets.dat,cojets.cin,NullParameter,table.cin decay.cin)
+CppFileTarget(cojets.dat,cojets.s,-E -traditional,table.cin decay.cin)
PackageDirFileTarget(cojets.dat)
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/isajet/data/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/isajet/data/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/isajet/data/Imakefile 1996-03-27 04:33:19.000000000 -0500
+++ cernlib-2005.05.09.dfsg/src/mclibs/isajet/data/Imakefile 2005-12-07 14:47:34.141148558 -0500
@@ -1,9 +1,9 @@
.SUFFIXES:
-CopyFile(decay.cpp,decay.cin)
+CopyFile(decay.cpp,decay.s)
-CppFileTarget(isajet.dat,decay.cin,NullParameter,NullParameter)
+CppFileTarget(isajet.dat,decay.s,-E -traditional ,NullParameter)
PackageDirFileTarget(isajet.dat)
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/cspack/sysreq/log.c cernlib-2005.05.09.dfsg/src/packlib/cspack/sysreq/log.c
--- cernlib-2005.05.09.dfsg~/src/packlib/cspack/sysreq/log.c 2003-09-02 08:47:16.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/cspack/sysreq/log.c 2005-12-07 14:47:34.142148345 -0500
@@ -80,7 +80,7 @@
static int pid; /* process identifier */
static int logfd ; /* logging file descriptor */
#if !defined(SOLARIS) && !defined(linux) && !defined(_AIX) \
- && !defined(IRIX5) && !defined(apollo)
+ && !defined(IRIX5) && !defined(apollo) && !defined(__DARWIN__)
extern int syslog();
#endif /* !SOLARIS && !IRIX5 && !apollo && !linux && !AIX */
extern char *getenv();
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/cspack/tcpaw/tcpaw.c cernlib-2005.05.09.dfsg/src/packlib/cspack/tcpaw/tcpaw.c
--- cernlib-2005.05.09.dfsg~/src/packlib/cspack/tcpaw/tcpaw.c 2005-12-07 14:47:25.920897902 -0500
+++ cernlib-2005.05.09.dfsg/src/packlib/cspack/tcpaw/tcpaw.c 2005-12-07 14:47:34.146147494 -0500
@@ -2569,7 +2569,7 @@
#if !defined(IBM) && !defined(_WIN32)
/* I provide "getpass" myself as standard version truncates to 8 characters */
#include <sys/ioctl.h>
-#ifdef CBREAK
+#if defined(CBREAK) || defined(CERNLIB_MACOSX)
#define BSDTTY /* First find out if BSD or SYSV terminal handling.. */
#endif
@@ -2577,6 +2577,10 @@
#include <termio.h>
#else
#include <sgtty.h>
+# if defined(CERNLIB_MACOSX)
+# define gtty(x,y) ioctl(x,TIOCGETP,y)
+# define stty(x,y) ioctl(x,TIOCSETP,y)
+# endif
#endif
/* Fails with gcc 3.4.3
@@ -3540,3 +3544,20 @@
}
#endif
+
+#if defined(CERNLIB_MACOSX)
+ /* need to define cuserid() for OS X */
+
+char * getlogin();
+
+char *
+cuserid(char *string)
+{
+ static char cuserid_str[L_cuserid];
+ char *result = (string ? string : cuserid_str);
+
+ strncpy(result, getlogin(), L_cuserid - 1);
+ result[L_cuserid - 1] = '\0';
+ return result;
+}
+#endif /* CERNLIB_MACOSX */
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernbit/z268/systems.c cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernbit/z268/systems.c
--- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernbit/z268/systems.c 1998-08-25 08:45:56.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernbit/z268/systems.c 2005-12-07 14:47:34.146147494 -0500
@@ -200,7 +200,7 @@
|| defined(_IBMR2) \
|| defined(__convexc__) \
|| defined(_OSK) \
-|| defined(__linux) || defined(__FreeBSD__)
+|| defined(__linux) || defined(__FreeBSD__) || defined(__DARWIN__)
void systems_( command, buf, buflen, l, chars, rc, ovflw )
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/d704fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/d704fort/Imakefile
--- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/d704fort/Imakefile 1996-06-12 06:03:53.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/d704fort/Imakefile 2005-12-07 14:47:34.146147494 -0500
@@ -4,6 +4,10 @@
FDEBUGFLAGS=NoOpFortranDebugFlags
#endif
+#if defined(CERNLIB_MACOSX)
+FDEBUGFLAGS=-O0 -fPIC
+#endif
+
FORTRANSAVEOPTION=FortranSaveFlags
SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f002fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f002fort/Imakefile
--- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f002fort/Imakefile 1996-06-12 06:04:09.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f002fort/Imakefile 2005-12-07 14:47:34.146147494 -0500
@@ -10,6 +10,10 @@
FDEBUGFLAGS=NoOpFortranDebugFlags
#endif
+#if defined(CERNLIB_MACOSX)
+FDEBUGFLAGS=-O0 -fPIC
+#endif
+
FORTRANSAVEOPTION=FortranSaveFlags
SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f003fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f003fort/Imakefile
--- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f003fort/Imakefile 1996-06-12 06:04:12.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f003fort/Imakefile 2005-12-07 14:47:34.147147281 -0500
@@ -11,6 +11,10 @@
FDEBUGFLAGS=NoOpFortranDebugFlags
#endif
+#if defined(CERNLIB_MACOSX)
+FDEBUGFLAGS=-O0 -fPIC
+#endif
+
FORTRANSAVEOPTION=FortranSaveFlags
SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f004fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f004fort/Imakefile
--- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f004fort/Imakefile 1996-06-12 06:04:16.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f004fort/Imakefile 2005-12-07 14:47:34.147147281 -0500
@@ -6,6 +6,10 @@
FDEBUGFLAGS=NoOpFortranDebugFlags
#endif
+#if defined(CERNLIB_MACOSX)
+FDEBUGFLAGS=-O0 -fPIC
+#endif
+
FORTRANSAVEOPTION=FortranSaveFlags
SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f010fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f010fort/Imakefile
--- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f010fort/Imakefile 1996-06-12 06:04:19.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f010fort/Imakefile 2005-12-07 14:47:34.147147281 -0500
@@ -7,6 +7,10 @@
FDEBUGFLAGS=NoOpFortranDebugFlags
#endif
+#if defined(CERNLIB_MACOSX)
+FDEBUGFLAGS=-O0 -fPIC
+#endif
+
FORTRANSAVEOPTION=FortranSaveFlags
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f011fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f011fort/Imakefile
--- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f011fort/Imakefile 1996-06-12 06:04:24.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f011fort/Imakefile 2005-12-07 14:47:34.147147281 -0500
@@ -7,6 +7,10 @@
FDEBUGFLAGS=NoOpFortranDebugFlags
#endif
+#if defined(CERNLIB_MACOSX)
+FDEBUGFLAGS=-O0 -fPIC
+#endif
+
FORTRANSAVEOPTION=FortranSaveFlags
SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kuip/kuip/ksys.h cernlib-2005.05.09.dfsg/src/packlib/kuip/kuip/ksys.h
--- cernlib-2005.05.09.dfsg~/src/packlib/kuip/kuip/ksys.h 1997-09-02 10:50:01.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/packlib/kuip/kuip/ksys.h 2005-12-07 14:47:34.147147281 -0500
@@ -188,6 +188,17 @@
#endif
+#ifdef CERNLIB_MACOSX
+# define MACOSX
+# define MACHINE_NAME "MACOSX"
+# define UNIX
+# define HAVE_MEMMOVE
+# define HAVE_STRCASECMP
+# define HAVE_SELECT
+# define MATCH_REGCOMP /* use regcomp/regexec */
+#endif
+
+
#ifdef MSDOS
# define MACHINE_NAME "IBMPC"
# define OS_NAME "MSDOS"
diff -urNad cernlib-2005.05.09.dfsg~/src/pawlib/comis/code/csaddr.F cernlib-2005.05.09.dfsg/src/pawlib/comis/code/csaddr.F
--- cernlib-2005.05.09.dfsg~/src/pawlib/comis/code/csaddr.F 2005-12-07 14:47:25.807921944 -0500
+++ cernlib-2005.05.09.dfsg/src/pawlib/comis/code/csaddr.F 2005-12-07 14:55:23.810167859 -0500
@@ -38,7 +38,12 @@
IFCS=-2
CALL CSRTGPL(I)
#else
+c thanks to Keisuke Fujii for this patch for OS X
+#if defined (CERNLIB_MACOSX)
+ IADGP=CS_GET_FUNC('_'//NAME(1:NC)//'_')
+#else
IADGP=CS_GET_FUNC(NAME(1:NC)//'_')
+#endif
IF(IADGP.NE.0)THEN
IFCS=-2
CALL CSRTGP(I)
@@ -58,7 +63,11 @@
I=CSITGPL(IPVS)
ENDIF
#else
+#if defined (CERNLIB_MACOSX)
+ IADGP=CS_GET_FUNC('_'//NAME(1:NC)//'_')
+#else
IADGP=CS_GET_FUNC(NAME(1:NC)//'_')
+#endif
IF(IADGP.NE.0)THEN
IFCS=-2
ITYPGP=-2
diff -urNad cernlib-2005.05.09.dfsg~/src/pawlib/comis/code/cscrexec.F cernlib-2005.05.09.dfsg/src/pawlib/comis/code/cscrexec.F
--- cernlib-2005.05.09.dfsg~/src/pawlib/comis/code/cscrexec.F 2005-12-07 14:47:25.687947476 -0500
+++ cernlib-2005.05.09.dfsg/src/pawlib/comis/code/cscrexec.F 2005-12-07 14:47:34.148147068 -0500
@@ -82,11 +82,19 @@
IF(FEXT.EQ.'.c')THEN
L=LENOCC(CHCC)
* 'cc -c .... -fPIC name.c'
+#if defined(CERNLIB_MACOSX)
+ CHLINE=CHCC(:L)//' -fPIC -fno-common '//NAME(:LN)// '.c'
+#else
CHLINE=CHCC(:L)//' -fPIC '//NAME(:LN)// '.c'
+#endif
ELSE
L=LENOCC(CHF77)
* 'f77 -c .... -fPIC name.f'
+#if defined(CERNLIB_MACOSX)
+ CHLINE=CHF77(:L)//' -fPIC -fno-common '//NAME(:LN)// '.f'
+#else
CHLINE=CHF77(:L)//' -fPIC '//NAME(:LN)// '.f'
+#endif
ENDIF
L=LENOCC(CHLINE)
WRITE(LUNOUT,'(A)')CHLINE(:L)
@@ -176,8 +184,15 @@
ENDIF
#endif
#if defined(CERNLIB_LINUX)
+# if defined(CERNLIB_MACOSX)
+ CHLINE= 'g77 -bundle -bind_at_load -bundle_loader '
+ + '`/usr/bin/which pawX11` -o '
+ + // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
+C thanks to Keisuke Fujii for the above compiler command
+# else
CHLINE= 'g77 -shared -o '
+ // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
+# endif
#endif
#if defined(CERNLIB_ALPHA_OSF)
CHLINE= 'ld -shared -o '
diff -urNad cernlib-2005.05.09.dfsg~/src/pawlib/paw/programs/Imakefile cernlib-2005.05.09.dfsg/src/pawlib/paw/programs/Imakefile
--- cernlib-2005.05.09.dfsg~/src/pawlib/paw/programs/Imakefile 2002-04-25 06:20:11.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/pawlib/paw/programs/Imakefile 2005-12-07 14:47:34.148147068 -0500
@@ -9,7 +9,7 @@
EXTRA_LDOPTIONS=-Wl,-E
#endif
-#if defined(CERNLIB_LINUX)
+#if defined(CERNLIB_LINUX) && !defined(CERNLIB_MACOSX)
EXTRA_LDOPTIONS=-Wl,-E
#endif