Blob Blame History Raw
#! /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