changeset 17264:b62c2fdbcde9

AIX PPC port patch by "Derek E. Lewis" < -- dlewis -- @ -- solnetworks -- . -- net -- >
author diego
date Thu, 29 Dec 2005 18:01:22 +0000
parents 3946ba73d26b
children 9f846713f3e7
files Makefile configure osdep/getch2.c
diffstat 3 files changed, 31 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Thu Dec 29 17:03:27 2005 +0000
+++ b/Makefile	Thu Dec 29 18:01:22 2005 +0000
@@ -395,6 +395,7 @@
                $(ARCH_LIB) \
                $(I18NLIBS) \
                $(MATH_LIB) \
+               $(LIBC_LIB) \
 
 $(PRG):	$(MPLAYER_DEP)
     ifeq ($(TARGET_WIN32),yes)
@@ -424,6 +425,7 @@
                 $(ARCH_LIB) \
                 $(I18NLIBS) \
                 $(MATH_LIB) \
+                $(LIBC_LIB) \
 
 $(PRG_MENCODER): $(MENCODER_DEP)
 	$(CC) $(CFLAGS) -o $(PRG_MENCODER) $(OBJS_MENCODER) $(LIBS_MENCODER)
--- a/configure	Thu Dec 29 17:03:27 2005 +0000
+++ b/configure	Thu Dec 29 18:01:22 2005 +0000
@@ -75,6 +75,7 @@
 sunos()   { issystem "SunOS"   ; return "$?" ; }
 hpux()    { issystem "HP-UX"   ; return "$?" ; }
 irix()    { issystem "IRIX"    ; return "$?" ; }
+aix()     { issystem "AIX"     ; return "$?" ; }
 cygwin()  { issystem "CYGWIN"  ; return "$?" ; }
 freebsd() { issystem "FreeBSD" ; return "$?" ; }
 netbsd()  { issystem "NetBSD"  ; return "$?" ; }
@@ -479,7 +480,7 @@
   # OS name
   system_name=`uname -s 2>&1`
   case "$system_name" in
-  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS)
+  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS|AIX)
     ;;
   IRIX*)
     system_name=IRIX
@@ -597,6 +598,12 @@
   _ldd="otool -L"
 fi
 
+if aix ; then
+  _ld_libC="-lC"
+else
+  _ld_libC=""
+fi
+
 # Check how to call 'head' and 'tail'. Newer versions spit out warnings
 # if used as 'head -1' instead of 'head -n 1', but older versions don't
 # know about '-n'.
@@ -760,6 +767,9 @@
 elif darwin ; then
   # use hostinfo on Darwin
   _cpuinfo="hostinfo"
+elif aix; then
+  # use 'lsattr' on AIX
+  _cpuinfo="lsattr -E -l proc0"
 elif x86; then
   # all other OSes try to extract CPU information from a small helper
   # program TOOLS/cpuinfo instead
@@ -1181,6 +1191,9 @@
 		;;
 	esac
         ;;
+      AIX)
+	proc=`$_cpuinfo | grep 'type' | cut -f 7 -d ' ' | sed 's/PowerPC_//'`
+	;;
     esac
     if test "$_altivec" = yes; then
         echores "$proc altivec"
@@ -1198,6 +1211,9 @@
 	    604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
 	    740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
 	    750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
+	    POWER)  _march='-mcpu=power'  _mcpu='-mtune=power'  ;;
+	    POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
+	    POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
     	    *) ;;
         esac
 	# gcc 3.1(.1) and up supports 7400 and 7450
@@ -1216,6 +1232,14 @@
     		*) ;;
     	    esac
 	fi
+	# gcc 3.3 and up supports POWER4
+	if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
+	    case "$proc" in
+		POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4'
+			_def_dcbzl='#undef NO_DCBZL' ;;
+		*) ;;
+	    esac
+	fi
     fi
 
     if test -n "$_mcpu"; then
@@ -7095,6 +7119,7 @@
 ENCA_LIB = $_ld_enca
 HAVE_PTHREADS = $_pthreads
 MATH_LIB = $_ld_lm
+LIBC_LIB = $_ld_libC
 
 X11_INC = $_inc_x11
 X11DIR = $_ld_x11
--- a/osdep/getch2.c	Thu Dec 29 17:03:27 2005 +0000
+++ b/osdep/getch2.c	Thu Dec 29 18:01:22 2005 +0000
@@ -220,7 +220,7 @@
 void getch2_enable(){
 #ifdef HAVE_TERMIOS
 struct termios tio_new;
-#if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) || defined(__OS2__) || defined(__GLIBC__)
+#if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) || defined(__OS2__) || defined(__GLIBC__) || defined(_AIX)
     tcgetattr(0,&tio_orig);
 #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__APPLE__) || defined(__DragonFly__)
     ioctl(0,TIOCGETA,&tio_orig);
@@ -231,7 +231,7 @@
     tio_new.c_lflag &= ~(ICANON|ECHO); /* Clear ICANON and ECHO. */
     tio_new.c_cc[VMIN] = 1;
     tio_new.c_cc[VTIME] = 0;
-#if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) || defined(__OS2__) || defined(__GLIBC__)
+#if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) || defined(__OS2__) || defined(__GLIBC__) || defined(_AIX)
     tcsetattr(0,TCSANOW,&tio_new);
 #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__APPLE__) || defined(__DragonFly__)
     ioctl(0,TIOCSETA,&tio_new);
@@ -245,7 +245,7 @@
 void getch2_disable(){
     if(!getch2_status) return; // already disabled / never enabled
 #ifdef HAVE_TERMIOS
-#if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) || defined(__OS2__) || defined(__GLIBC__)
+#if defined(__NetBSD__) || defined(__svr4__) || defined(__CYGWIN__) || defined(__OS2__) || defined(__GLIBC__) || defined(_AIX)
     tcsetattr(0,TCSANOW,&tio_orig);
 #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__APPLE__) || defined(__DragonFly__)
     ioctl(0,TIOCSETA,&tio_orig);