diff options
28 files changed, 603 insertions, 337 deletions
| diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ec0eafb --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +.*.swp +.*.swo +*~ +*.orig +*.rej +.nfs* + +/python/build/* +/python/finalbuild/* +/python/dist/* +/python/astra/*.pyc +/python/astra/*.cpp +/python/astra/*.c +/python/astra/config.pxi + +/build/linux/.libs/* +/build/linux/Makefile +/build/linux/aclocal.m4 +/build/linux/autom4te.cache/* +/build/linux/config.guess +/build/linux/config.log +/build/linux/config.status +/build/linux/config.sub +/build/linux/configure +/build/linux/cuda/* +/build/linux/install-sh +/build/linux/libastra.la +/build/linux/libtool +/build/linux/ltmain.sh +/build/linux/src/* +/build/linux/matlab/* @@ -9,6 +9,12 @@ Contact: astra@uantwerpen.be  Website: http://sf.net/projects/astra-toolbox  ----------------------------------------------------------------------- +1.6 (2015-05-29) +  * integrate and improve python interface +  * integrate opSpot-based opTomo operator +  * build fixes for newer platforms +  * various consistency and bug fixes +  1.5 (2015-01-30)    * add support for fan beam FBP    * remove limits on number of angles in GPU code @@ -23,13 +23,14 @@ Add the mex and tools subdirectories to your matlab path.  ### Linux, from source -Requirements: g++, boost, CUDA (driver+toolkit), matlab +Requirements: g++, boost, CUDA (driver+toolkit), Matlab and/or Python (2.7 or 3.x)  ```  cd build/linux  ./autogen.sh   # when building a git version  ./configure --with-cuda=/usr/local/cuda \              --with-matlab=/usr/local/MATLAB/R2012a \ +            --with-python              --prefix=/usr/local/astra  make  make install @@ -37,6 +38,7 @@ make install  Add /usr/local/astra/lib to your LD_LIBRARY_PATH.  Add /usr/local/astra/matlab and its subdirectories (tools, mex)    to your matlab path. +Add /usr/local/astra/python to your PYTHONPATH.  NB: Each matlab version only supports a specific range of g++ versions. @@ -49,18 +49,20 @@ Add the mex and tools subdirectories to your matlab path.  Linux, from source:  -------------------- -Requirements: g++, boost, CUDA (driver+toolkit), matlab +Requirements: g++, boost, CUDA (driver+toolkit), Matlab and/or Python (2.7 or 3.x)  cd build/linux  ./autogen.sh   # when building a git version  ./configure --with-cuda=/usr/local/cuda \              --with-matlab=/usr/local/MATLAB/R2012a \ +            --with-python \              --prefix=/usr/local/astra  make  make install  Add /usr/local/astra/lib to your LD_LIBRARY_PATH.  Add /usr/local/astra/matlab and its subdirectories (tools, mex)    to your matlab path. +Add /usr/local/astra/python to your PYTHONPATH.  NB: Each matlab version only supports a specific range of g++ versions. diff --git a/astra_vc09.vcproj b/astra_vc09.vcproj index a56e4bc..e5d7731 100644 --- a/astra_vc09.vcproj +++ b/astra_vc09.vcproj @@ -102,7 +102,8 @@  				Arch3="35"  				TargetMachinePlatform="0"  				Runtime="3" -				Defines="-DASTRA_CUDA -DDLL_EXPORTS" +				ExtraCppOptions="-Iinclude -Ilib/include" +				Defines="ASTRA_CUDA;DLL_EXPORTS"  			/>  		</Configuration>  		<Configuration @@ -186,7 +187,8 @@  				Arch3="35"  				TargetMachinePlatform="1"  				Runtime="3" -				Defines="-DASTRA_CUDA -DDLL_EXPORTS" +				ExtraCppOptions="-Iinclude -Ilib/include" +				Defines="ASTRA_CUDA;DLL_EXPORTS"  			/>  		</Configuration>  		<Configuration @@ -270,7 +272,8 @@  				Arch3="35"  				TargetMachinePlatform="0"  				Runtime="3" -				Defines="-DDLL_EXPORTS" +				ExtraCppOptions="-Iinclude -Ilib/include" +				Defines="DLL_EXPORTS"  			/>  		</Configuration>  		<Configuration @@ -353,7 +356,8 @@  				Arch3="35"  				TargetMachinePlatform="1"  				Runtime="3" -				Defines="-DDLL_EXPORTS" +				ExtraCppOptions="-Iinclude -Ilib/include" +				Defines="DLL_EXPORTS"  			/>  		</Configuration>  		<Configuration @@ -435,7 +439,8 @@  				Arch3="35"  				TargetMachinePlatform="0"  				Runtime="2" -				Defines="-DASTRA_CUDA -DDLL_EXPORTS" +				ExtraCppOptions="-Iinclude -Ilib/include" +				Defines="ASTRA_CUDA;DLL_EXPORTS"  			/>  		</Configuration>  		<Configuration @@ -516,7 +521,8 @@  				Arch3="35"  				TargetMachinePlatform="1"  				Runtime="2" -				Defines="-DASTRA_CUDA -DDLL_EXPORTS" +				ExtraCppOptions="-Iinclude -Ilib/include" +				Defines="ASTRA_CUDA;DLL_EXPORTS"  			/>  		</Configuration>  		<Configuration @@ -597,7 +603,8 @@  				Arch3="35"  				TargetMachinePlatform="0"  				Runtime="2" -				Defines="-DDLL_EXPORTS" +				ExtraCppOptions="-Iinclude -Ilib/include" +				Defines="DLL_EXPORTS"  			/>  		</Configuration>  		<Configuration @@ -677,7 +684,8 @@  				Arch3="35"  				TargetMachinePlatform="1"  				Runtime="2" -				Defines="-DDLL_EXPORTS" +				ExtraCppOptions="-Iinclude -Ilib/include" +				Defines="DLL_EXPORTS"  			/>  		</Configuration>  	</Configurations> diff --git a/build/linux/README.txt b/build/linux/README.txt index 9dd7a7a..7208d45 100644 --- a/build/linux/README.txt +++ b/build/linux/README.txt @@ -1,15 +1,17 @@ -Requirements: g++, boost, CUDA (driver+toolkit), -matlab +Requirements: g++, boost, CUDA (driver+toolkit), Matlab and/or Python (2.7 or 3.x)  cd build/linux +./autogen.sh   # when building a git version  ./configure --with-cuda=/usr/local/cuda \              --with-matlab=/usr/local/MATLAB/R2012a \ +            --with-python \              --prefix=/usr/local/astra  make  make install  Add /usr/local/astra/lib to your LD_LIBRARY_PATH.  Add /usr/local/astra/matlab and its subdirectories (tools, mex)    to your matlab path. +Add /usr/local/astra/python to your PYTHONPATH.  NB: Each matlab version only supports a specific range of g++ versions. diff --git a/build/linux/config.guess.dist b/build/linux/config.guess.dist index dc84c68..b79252d 100755 --- a/build/linux/config.guess.dist +++ b/build/linux/config.guess.dist @@ -1,14 +1,12 @@  #! /bin/sh  # Attempt to guess a canonical system name. -#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -#   Free Software Foundation, Inc. +#   Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2009-11-20' +timestamp='2013-06-10'  # This file is free software; you can redistribute it and/or modify it  # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or  # (at your option) any later version.  #  # This program is distributed in the hope that it will be useful, but @@ -17,26 +15,22 @@ timestamp='2009-11-20'  # General Public License for more details.  #  # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>.  #  # As a special exception to the GNU General Public License, if you  # distribute this file as part of a program that contains a  # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner.  Please send patches (context -# diff format) to <config-patches@gnu.org> and include a ChangeLog -# entry. +# the same distribution terms that you use for the rest of that +# program.  This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3").  # -# This script attempts to guess a canonical system name similar to -# config.sub.  If it succeeds, it prints the system name on stdout, and -# exits with 0.  Otherwise, it exits with 1. +# Originally written by Per Bothner.  #  # You can get the latest version of this script from:  # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. +  me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,8 +50,7 @@ version="\  GNU config.guess ($timestamp)  Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc.  This is free software; see the source for copying conditions.  There is NO  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -139,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown  UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown  UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) +	# If the system lacks a compiler, then just pick glibc. +	# We could probably try harder. +	LIBC=gnu + +	eval $set_cc_for_build +	cat <<-EOF > $dummy.c +	#include <features.h> +	#if defined(__UCLIBC__) +	LIBC=uclibc +	#elif defined(__dietlibc__) +	LIBC=dietlibc +	#else +	LIBC=gnu +	#endif +	EOF +	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` +	;; +esac +  # Note: order is significant - the case branches are not exclusive.  case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in      *:NetBSD:*:*)  	# NetBSD (nbsd) targets should (where applicable) match one or -	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, +	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,  	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently  	# switched to ELF, *-*-netbsd* would select the old  	# object file format.  This provides both forward @@ -180,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  		fi  		;;  	    *) -	        os=netbsd +		os=netbsd  		;;  	esac  	# The OS release @@ -201,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.  	echo "${machine}-${os}${release}"  	exit ;; +    *:Bitrig:*:*) +	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` +	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} +	exit ;;      *:OpenBSD:*:*)  	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`  	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -223,7 +241,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`  		;;  	*5.*) -	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` +		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`  		;;  	esac  	# According to Compaq, /usr/sbin/psrinfo has been available on @@ -269,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	# A Xn.n version is an unreleased experimental baselevel.  	# 1.2 uses "1.2" for uname -r.  	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -	exit ;; +	# Reset EXIT trap before exiting to avoid spurious non-zero exit code. +	exitcode=$? +	trap '' 0 +	exit $exitcode ;;      Alpha\ *:Windows_NT*:*)  	# How do we know it's Interix rather than the generic POSIX subsystem?  	# Should we change UNAME_MACHINE based on the output of uname instead @@ -295,12 +316,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in  	echo s390-ibm-zvmoe  	exit ;;      *:OS400:*:*) -        echo powerpc-ibm-os400 +	echo powerpc-ibm-os400  	exit ;;      arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)  	echo arm-acorn-riscix${UNAME_RELEASE}  	exit ;; -    arm:riscos:*:*|arm:RISCOS:*:*) +    arm*:riscos:*:*|arm*:RISCOS:*:*)  	echo arm-unknown-riscos  	exit ;;      SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -394,23 +415,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in      # MiNT.  But MiNT is downward compatible to TOS, so this should      # be no problem.      atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) -        echo m68k-atari-mint${UNAME_RELEASE} +	echo m68k-atari-mint${UNAME_RELEASE}  	exit ;;      atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)  	echo m68k-atari-mint${UNAME_RELEASE} -        exit ;; +	exit ;;      *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) -        echo m68k-atari-mint${UNAME_RELEASE} +	echo m68k-atari-mint${UNAME_RELEASE}  	exit ;;      milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) -        echo m68k-milan-mint${UNAME_RELEASE} -        exit ;; +	echo m68k-milan-mint${UNAME_RELEASE} +	exit ;;      hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) -        echo m68k-hades-mint${UNAME_RELEASE} -        exit ;; +	echo m68k-hades-mint${UNAME_RELEASE} +	exit ;;      *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) -        echo m68k-unknown-mint${UNAME_RELEASE} -        exit ;; +	echo m68k-unknown-mint${UNAME_RELEASE} +	exit ;;      m68k:machten:*:*)  	echo m68k-apple-machten${UNAME_RELEASE}  	exit ;; @@ -480,8 +501,8 @@ EOF  	echo m88k-motorola-sysv3  	exit ;;      AViiON:dgux:*:*) -        # DG/UX returns AViiON for all architectures -        UNAME_PROCESSOR=`/usr/bin/uname -p` +	# DG/UX returns AViiON for all architectures +	UNAME_PROCESSOR=`/usr/bin/uname -p`  	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]  	then  	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -494,7 +515,7 @@ EOF  	else  	    echo i586-dg-dgux${UNAME_RELEASE}  	fi - 	exit ;; +	exit ;;      M88*:DolphinOS:*:*)	# DolphinOS (SVR3)  	echo m88k-dolphin-sysv3  	exit ;; @@ -551,7 +572,7 @@ EOF  		echo rs6000-ibm-aix3.2  	fi  	exit ;; -    *:AIX:*:[456]) +    *:AIX:*:[4567])  	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`  	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then  		IBM_ARCH=rs6000 @@ -594,52 +615,52 @@ EOF  	    9000/[678][0-9][0-9])  		if [ -x /usr/bin/getconf ]; then  		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -                    case "${sc_cpu_version}" in -                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -                      532)                      # CPU_PA_RISC2_0 -                        case "${sc_kernel_bits}" in -                          32) HP_ARCH="hppa2.0n" ;; -                          64) HP_ARCH="hppa2.0w" ;; +		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +		    case "${sc_cpu_version}" in +		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +		      532)                      # CPU_PA_RISC2_0 +			case "${sc_kernel_bits}" in +			  32) HP_ARCH="hppa2.0n" ;; +			  64) HP_ARCH="hppa2.0w" ;;  			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20 -                        esac ;; -                    esac +			esac ;; +		    esac  		fi  		if [ "${HP_ARCH}" = "" ]; then  		    eval $set_cc_for_build -		    sed 's/^              //' << EOF >$dummy.c +		    sed 's/^		//' << EOF >$dummy.c -              #define _HPUX_SOURCE -              #include <stdlib.h> -              #include <unistd.h> +		#define _HPUX_SOURCE +		#include <stdlib.h> +		#include <unistd.h> -              int main () -              { -              #if defined(_SC_KERNEL_BITS) -                  long bits = sysconf(_SC_KERNEL_BITS); -              #endif -                  long cpu  = sysconf (_SC_CPU_VERSION); +		int main () +		{ +		#if defined(_SC_KERNEL_BITS) +		    long bits = sysconf(_SC_KERNEL_BITS); +		#endif +		    long cpu  = sysconf (_SC_CPU_VERSION); -                  switch (cpu) -              	{ -              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -              	case CPU_PA_RISC2_0: -              #if defined(_SC_KERNEL_BITS) -              	    switch (bits) -              		{ -              		case 64: puts ("hppa2.0w"); break; -              		case 32: puts ("hppa2.0n"); break; -              		default: puts ("hppa2.0"); break; -              		} break; -              #else  /* !defined(_SC_KERNEL_BITS) */ -              	    puts ("hppa2.0"); break; -              #endif -              	default: puts ("hppa1.0"); break; -              	} -                  exit (0); -              } +		    switch (cpu) +			{ +			case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +			case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +			case CPU_PA_RISC2_0: +		#if defined(_SC_KERNEL_BITS) +			    switch (bits) +				{ +				case 64: puts ("hppa2.0w"); break; +				case 32: puts ("hppa2.0n"); break; +				default: puts ("hppa2.0"); break; +				} break; +		#else  /* !defined(_SC_KERNEL_BITS) */ +			    puts ("hppa2.0"); break; +		#endif +			default: puts ("hppa1.0"); break; +			} +		    exit (0); +		}  EOF  		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`  		    test -z "$HP_ARCH" && HP_ARCH=hppa @@ -730,22 +751,22 @@ EOF  	exit ;;      C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)  	echo c1-convex-bsd -        exit ;; +	exit ;;      C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)  	if getsysinfo -f scalar_acc  	then echo c32-convex-bsd  	else echo c2-convex-bsd  	fi -        exit ;; +	exit ;;      C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)  	echo c34-convex-bsd -        exit ;; +	exit ;;      C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)  	echo c38-convex-bsd -        exit ;; +	exit ;;      C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)  	echo c4-convex-bsd -        exit ;; +	exit ;;      CRAY*Y-MP:*:*:*)  	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'  	exit ;; @@ -769,14 +790,14 @@ EOF  	exit ;;      F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)  	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -        exit ;; +	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +	exit ;;      5000:UNIX_System_V:4.*:*) -        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"  	exit ;;      i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)  	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} @@ -788,30 +809,35 @@ EOF  	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}  	exit ;;      *:FreeBSD:*:*) -	case ${UNAME_MACHINE} in -	    pc98) -		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; +	UNAME_PROCESSOR=`/usr/bin/uname -p` +	case ${UNAME_PROCESSOR} in  	    amd64)  		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;  	    *) -		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; +		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;  	esac  	exit ;;      i*:CYGWIN*:*)  	echo ${UNAME_MACHINE}-pc-cygwin  	exit ;; +    *:MINGW64*:*) +	echo ${UNAME_MACHINE}-pc-mingw64 +	exit ;;      *:MINGW*:*)  	echo ${UNAME_MACHINE}-pc-mingw32  	exit ;; +    i*:MSYS*:*) +	echo ${UNAME_MACHINE}-pc-msys +	exit ;;      i*:windows32*:*) -    	# uname -m includes "-pc" on this system. -    	echo ${UNAME_MACHINE}-mingw32 +	# uname -m includes "-pc" on this system. +	echo ${UNAME_MACHINE}-mingw32  	exit ;;      i*:PW*:*)  	echo ${UNAME_MACHINE}-pc-pw32  	exit ;;      *:Interix*:*) -    	case ${UNAME_MACHINE} in +	case ${UNAME_MACHINE} in  	    x86)  		echo i586-pc-interix${UNAME_RELEASE}  		exit ;; @@ -848,15 +874,22 @@ EOF  	exit ;;      *:GNU:*:*)  	# the GNU system -	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` +	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`  	exit ;;      *:GNU/*:*:*)  	# other systems with GNU libc and userland -	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu +	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}  	exit ;;      i*86:Minix:*:*)  	echo ${UNAME_MACHINE}-pc-minix  	exit ;; +    aarch64:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    aarch64_be:Linux:*:*) +	UNAME_MACHINE=aarch64_be +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      alpha:Linux:*:*)  	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in  	  EV5)   UNAME_MACHINE=alphaev5 ;; @@ -866,52 +899,56 @@ EOF  	  EV6)   UNAME_MACHINE=alphaev6 ;;  	  EV67)  UNAME_MACHINE=alphaev67 ;;  	  EV68*) UNAME_MACHINE=alphaev68 ;; -        esac +	esac  	objdump --private-headers /bin/sh | grep -q ld.so.1 -	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} +	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    arc:Linux:*:* | arceb:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      arm*:Linux:*:*)  	eval $set_cc_for_build  	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \  	    | grep -q __ARM_EABI__  	then -	    echo ${UNAME_MACHINE}-unknown-linux-gnu +	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	else -	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi +	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ +		| grep -q __ARM_PCS_VFP +	    then +		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi +	    else +		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf +	    fi  	fi  	exit ;;      avr32*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      cris:Linux:*:*) -	echo cris-axis-linux-gnu +	echo ${UNAME_MACHINE}-axis-linux-${LIBC}  	exit ;;      crisv32:Linux:*:*) -	echo crisv32-axis-linux-gnu +	echo ${UNAME_MACHINE}-axis-linux-${LIBC}  	exit ;;      frv:Linux:*:*) -    	echo frv-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    hexagon:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      i*86:Linux:*:*) -	LIBC=gnu -	eval $set_cc_for_build -	sed 's/^	//' << EOF >$dummy.c -	#ifdef __dietlibc__ -	LIBC=dietlibc -	#endif -EOF -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` -	echo "${UNAME_MACHINE}-pc-linux-${LIBC}" +	echo ${UNAME_MACHINE}-pc-linux-${LIBC}  	exit ;;      ia64:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      m32r*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      m68*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      mips:Linux:*:* | mips64:Linux:*:*)  	eval $set_cc_for_build @@ -930,51 +967,63 @@ EOF  	#endif  EOF  	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` -	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } +	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }  	;; +    or1k:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;;      or32:Linux:*:*) -	echo or32-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      padre:Linux:*:*) -	echo sparc-unknown-linux-gnu +	echo sparc-unknown-linux-${LIBC}  	exit ;;      parisc64:Linux:*:* | hppa64:Linux:*:*) -	echo hppa64-unknown-linux-gnu +	echo hppa64-unknown-linux-${LIBC}  	exit ;;      parisc:Linux:*:* | hppa:Linux:*:*)  	# Look for CPU level  	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -	  PA7*) echo hppa1.1-unknown-linux-gnu ;; -	  PA8*) echo hppa2.0-unknown-linux-gnu ;; -	  *)    echo hppa-unknown-linux-gnu ;; +	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; +	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; +	  *)    echo hppa-unknown-linux-${LIBC} ;;  	esac  	exit ;;      ppc64:Linux:*:*) -	echo powerpc64-unknown-linux-gnu +	echo powerpc64-unknown-linux-${LIBC}  	exit ;;      ppc:Linux:*:*) -	echo powerpc-unknown-linux-gnu +	echo powerpc-unknown-linux-${LIBC} +	exit ;; +    ppc64le:Linux:*:*) +	echo powerpc64le-unknown-linux-${LIBC} +	exit ;; +    ppcle:Linux:*:*) +	echo powerpcle-unknown-linux-${LIBC}  	exit ;;      s390:Linux:*:* | s390x:Linux:*:*) -	echo ${UNAME_MACHINE}-ibm-linux +	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}  	exit ;;      sh64*:Linux:*:*) -    	echo ${UNAME_MACHINE}-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      sh*:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      sparc:Linux:*:* | sparc64:Linux:*:*) -	echo ${UNAME_MACHINE}-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC} +	exit ;; +    tile*:Linux:*:*) +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      vax:Linux:*:*) -	echo ${UNAME_MACHINE}-dec-linux-gnu +	echo ${UNAME_MACHINE}-dec-linux-${LIBC}  	exit ;;      x86_64:Linux:*:*) -	echo x86_64-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      xtensa*:Linux:*:*) -    	echo ${UNAME_MACHINE}-unknown-linux-gnu +	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}  	exit ;;      i*86:DYNIX/ptx:4*:*)  	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -983,11 +1032,11 @@ EOF  	echo i386-sequent-sysv4  	exit ;;      i*86:UNIX_SV:4.2MP:2.*) -        # Unixware is an offshoot of SVR4, but it has its own version -        # number series starting with 2... -        # I am not positive that other SVR4 systems won't match this, +	# Unixware is an offshoot of SVR4, but it has its own version +	# number series starting with 2... +	# I am not positive that other SVR4 systems won't match this,  	# I just have to hope.  -- rms. -        # Use sysv4.2uw... so that sysv4* matches it. +	# Use sysv4.2uw... so that sysv4* matches it.  	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}  	exit ;;      i*86:OS/2:*:*) @@ -1019,7 +1068,7 @@ EOF  	fi  	exit ;;      i*86:*:5:[678]*) -    	# UnixWare 7.x, OpenUNIX and OpenServer 6. +	# UnixWare 7.x, OpenUNIX and OpenServer 6.  	case `/bin/uname -X | grep "^Machine"` in  	    *486*)	     UNAME_MACHINE=i486 ;;  	    *Pentium)	     UNAME_MACHINE=i586 ;; @@ -1047,13 +1096,13 @@ EOF  	exit ;;      pc:*:*:*)  	# Left here for compatibility: -        # uname -m prints for DJGPP always 'pc', but it prints nothing about -        # the processor, so we play safe by assuming i586. +	# uname -m prints for DJGPP always 'pc', but it prints nothing about +	# the processor, so we play safe by assuming i586.  	# Note: whatever this is, it MUST be the same as what config.sub  	# prints for the "djgpp" host, or else GDB configury will decide that  	# this is a cross-build.  	echo i586-pc-msdosdjgpp -        exit ;; +	exit ;;      Intel:Mach:3*:*)  	echo i386-pc-mach3  	exit ;; @@ -1088,8 +1137,8 @@ EOF  	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \  	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;      3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) -        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -          && { echo i486-ncr-sysv4; exit; } ;; +	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +	  && { echo i486-ncr-sysv4; exit; } ;;      NCR*:*:4.2:* | MPRAS*:*:4.2:*)  	OS_REL='.3'  	test -r /etc/.relid \ @@ -1132,10 +1181,10 @@ EOF  		echo ns32k-sni-sysv  	fi  	exit ;; -    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -                      # says <Richard.M.Bartel@ccMail.Census.GOV> -        echo i586-unisys-sysv4 -        exit ;; +    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort +			# says <Richard.M.Bartel@ccMail.Census.GOV> +	echo i586-unisys-sysv4 +	exit ;;      *:UNIX_System_V:4*:FTX*)  	# From Gerald Hewes <hewes@openmarket.com>.  	# How about differentiating between stratus architectures? -djm @@ -1161,11 +1210,11 @@ EOF  	exit ;;      R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)  	if [ -d /usr/nec ]; then -	        echo mips-nec-sysv${UNAME_RELEASE} +		echo mips-nec-sysv${UNAME_RELEASE}  	else -	        echo mips-unknown-sysv${UNAME_RELEASE} +		echo mips-unknown-sysv${UNAME_RELEASE}  	fi -        exit ;; +	exit ;;      BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.  	echo powerpc-be-beos  	exit ;; @@ -1178,6 +1227,9 @@ EOF      BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.  	echo i586-pc-haiku  	exit ;; +    x86_64:Haiku:*:*) +	echo x86_64-unknown-haiku +	exit ;;      SX-4:SUPER-UX:*:*)  	echo sx4-nec-superux${UNAME_RELEASE}  	exit ;; @@ -1204,19 +1256,21 @@ EOF  	exit ;;      *:Darwin:*:*)  	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -	case $UNAME_PROCESSOR in -	    i386) -		eval $set_cc_for_build -		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -		      grep IS_64BIT_ARCH >/dev/null -		  then -		      UNAME_PROCESSOR="x86_64" -		  fi -		fi ;; -	    unknown) UNAME_PROCESSOR=powerpc ;; -	esac +	eval $set_cc_for_build +	if test "$UNAME_PROCESSOR" = unknown ; then +	    UNAME_PROCESSOR=powerpc +	fi +	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ +		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +		grep IS_64BIT_ARCH >/dev/null +	    then +		case $UNAME_PROCESSOR in +		    i386) UNAME_PROCESSOR=x86_64 ;; +		    powerpc) UNAME_PROCESSOR=powerpc64 ;; +		esac +	    fi +	fi  	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}  	exit ;;      *:procnto*:*:* | *:QNX:[0123456789]*:*) @@ -1230,7 +1284,10 @@ EOF      *:QNX:*:4*)  	echo i386-pc-qnx  	exit ;; -    NSE-?:NONSTOP_KERNEL:*:*) +    NEO-?:NONSTOP_KERNEL:*:*) +	echo neo-tandem-nsk${UNAME_RELEASE} +	exit ;; +    NSE-*:NONSTOP_KERNEL:*:*)  	echo nse-tandem-nsk${UNAME_RELEASE}  	exit ;;      NSR-?:NONSTOP_KERNEL:*:*) @@ -1275,13 +1332,13 @@ EOF  	echo pdp10-unknown-its  	exit ;;      SEI:*:*:SEIUX) -        echo mips-sei-seiux${UNAME_RELEASE} +	echo mips-sei-seiux${UNAME_RELEASE}  	exit ;;      *:DragonFly:*:*)  	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`  	exit ;;      *:*VMS:*:*) -    	UNAME_MACHINE=`(uname -p) 2>/dev/null` +	UNAME_MACHINE=`(uname -p) 2>/dev/null`  	case "${UNAME_MACHINE}" in  	    A*) echo alpha-dec-vms ; exit ;;  	    I*) echo ia64-dec-vms ; exit ;; @@ -1299,11 +1356,11 @@ EOF      i*86:AROS:*:*)  	echo ${UNAME_MACHINE}-pc-aros  	exit ;; +    x86_64:VMkernel:*:*) +	echo ${UNAME_MACHINE}-unknown-esx +	exit ;;  esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -  eval $set_cc_for_build  cat >$dummy.c <<EOF  #ifdef _SEQUENT_ @@ -1321,11 +1378,11 @@ main ()  #include <sys/param.h>    printf ("m68k-sony-newsos%s\n",  #ifdef NEWSOS4 -          "4" +	"4"  #else -	  "" +	""  #endif -         ); exit (0); +	); exit (0);  #endif  #endif diff --git a/build/linux/config.sub.dist b/build/linux/config.sub.dist index 2a55a50..d2a9613 100755 --- a/build/linux/config.sub.dist +++ b/build/linux/config.sub.dist @@ -1,38 +1,31 @@  #! /bin/sh  # Configuration validation subroutine script. -#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -#   Free Software Foundation, Inc. +#   Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2009-11-20' +timestamp='2013-08-10' -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine.  It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or  # (at your option) any later version.  # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +# General Public License for more details.  #  # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>.  #  # As a special exception to the GNU General Public License, if you  # distribute this file as part of a program that contains a  # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program.  This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to <config-patches@gnu.org>.  Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# Please send patches with a ChangeLog entry to config-patches@gnu.org.  #  # Configuration subroutine to validate and canonicalize a configuration type.  # Supply the specified configuration type as an argument. @@ -75,8 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."  version="\  GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright 1992-2013 Free Software Foundation, Inc.  This is free software; see the source for copying conditions.  There is NO  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,13 +115,18 @@ esac  # Here we must recognize all the valid KERNEL-OS combinations.  maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`  case $maybe_os in -  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ +  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ +  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ +  knetbsd*-gnu* | netbsd*-gnu* | \    kopensolaris*-gnu* | \    storm-chaos* | os2-emx* | rtmk-nova*)      os=-$maybe_os      basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`      ;; +  android-linux) +    os=-linux-android +    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown +    ;;    *)      basic_machine=`echo $1 | sed 's/-[^-]*$//'`      if [ $basic_machine != $1 ] @@ -152,12 +149,12 @@ case $os in  	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\  	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \  	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -	-apple | -axis | -knuth | -cray | -microblaze) +	-apple | -axis | -knuth | -cray | -microblaze*)  		os=  		basic_machine=$1  		;; -        -bluegene*) -	        os=-cnk +	-bluegene*) +		os=-cnk  		;;  	-sim | -cisco | -oki | -wec | -winbond)  		os= @@ -173,10 +170,10 @@ case $os in  		os=-chorusos  		basic_machine=$1  		;; - 	-chorusrdb) - 		os=-chorusrdb +	-chorusrdb) +		os=-chorusrdb  		basic_machine=$1 - 		;; +		;;  	-hiux*)  		os=-hiuxwe2  		;; @@ -221,6 +218,12 @@ case $os in  	-isc*)  		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`  		;; +	-lynx*178) +		os=-lynxos178 +		;; +	-lynx*5) +		os=-lynxos5 +		;;  	-lynx*)  		os=-lynxos  		;; @@ -245,20 +248,27 @@ case $basic_machine in  	# Some are omitted here because they have special meanings below.  	1750a | 580 \  	| a29k \ +	| aarch64 | aarch64_be \  	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \  	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \  	| am33_2.0 \ -	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ +	| arc | arceb \ +	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ +	| avr | avr32 \ +	| be32 | be64 \  	| bfin \ -	| c4x | clipper \ +	| c4x | c8051 | clipper \  	| d10v | d30v | dlx | dsp16xx \ +	| epiphany \  	| fido | fr30 | frv \  	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +	| hexagon \  	| i370 | i860 | i960 | ia64 \  	| ip2k | iq2000 \ +	| le32 | le64 \  	| lm32 \  	| m32c | m32r | m32rle | m68000 | m68k | m88k \ -	| maxq | mb | microblaze | mcore | mep | metag \ +	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \  	| mips | mipsbe | mipseb | mipsel | mipsle \  	| mips16 \  	| mips64 | mips64el \ @@ -276,34 +286,45 @@ case $basic_machine in  	| mipsisa64r2 | mipsisa64r2el \  	| mipsisa64sb1 | mipsisa64sb1el \  	| mipsisa64sr71k | mipsisa64sr71kel \ +	| mipsr5900 | mipsr5900el \  	| mipstx39 | mipstx39el \  	| mn10200 | mn10300 \  	| moxie \  	| mt \  	| msp430 \ -	| nios | nios2 \ +	| nds32 | nds32le | nds32be \ +	| nios | nios2 | nios2eb | nios2el \  	| ns16k | ns32k \ -	| or32 \ +	| open8 \ +	| or1k | or32 \  	| pdp10 | pdp11 | pj | pjl \ -	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ +	| powerpc | powerpc64 | powerpc64le | powerpcle \  	| pyramid \ -	| rx \ +	| rl78 | rx \  	| score \  	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \  	| sh64 | sh64le \  	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \  	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -	| spu | strongarm \ -	| tahoe | thumb | tic4x | tic80 | tron \ +	| spu \ +	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \  	| ubicom32 \ -	| v850 | v850e \ +	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \  	| we32k \ -	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ +	| x86 | xc16x | xstormy16 | xtensa \  	| z8k | z80)  		basic_machine=$basic_machine-unknown  		;; -	m6811 | m68hc11 | m6812 | m68hc12 | picochip) -		# Motorola 68HC11/12. +	c54x) +		basic_machine=tic54x-unknown +		;; +	c55x) +		basic_machine=tic55x-unknown +		;; +	c6x) +		basic_machine=tic6x-unknown +		;; +	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)  		basic_machine=$basic_machine-unknown  		os=-none  		;; @@ -313,6 +334,21 @@ case $basic_machine in  		basic_machine=mt-unknown  		;; +	strongarm | thumb | xscale) +		basic_machine=arm-unknown +		;; +	xgate) +		basic_machine=$basic_machine-unknown +		os=-none +		;; +	xscaleeb) +		basic_machine=armeb-unknown +		;; + +	xscaleel) +		basic_machine=armel-unknown +		;; +  	# We use `pc' rather than `unknown'  	# because (1) that's what they normally are, and  	# (2) the word "unknown" tends to confuse beginning users. @@ -327,25 +363,30 @@ case $basic_machine in  	# Recognize the basic CPU types with company name.  	580-* \  	| a29k-* \ +	| aarch64-* | aarch64_be-* \  	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \  	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ +	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \  	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \  	| avr-* | avr32-* \ +	| be32-* | be64-* \  	| bfin-* | bs2000-* \ -	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -	| clipper-* | craynv-* | cydra-* \ +	| c[123]* | c30-* | [cjt]90-* | c4x-* \ +	| c8051-* | clipper-* | craynv-* | cydra-* \  	| d10v-* | d30v-* | dlx-* \  	| elxsi-* \  	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \  	| h8300-* | h8500-* \  	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +	| hexagon-* \  	| i*86-* | i860-* | i960-* | ia64-* \  	| ip2k-* | iq2000-* \ +	| le32-* | le64-* \  	| lm32-* \  	| m32c-* | m32r-* | m32rle-* \  	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ +	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +	| microblaze-* | microblazeel-* \  	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \  	| mips16-* \  	| mips64-* | mips64el-* \ @@ -363,29 +404,34 @@ case $basic_machine in  	| mipsisa64r2-* | mipsisa64r2el-* \  	| mipsisa64sb1-* | mipsisa64sb1el-* \  	| mipsisa64sr71k-* | mipsisa64sr71kel-* \ +	| mipsr5900-* | mipsr5900el-* \  	| mipstx39-* | mipstx39el-* \  	| mmix-* \  	| mt-* \  	| msp430-* \ -	| nios-* | nios2-* \ +	| nds32-* | nds32le-* | nds32be-* \ +	| nios-* | nios2-* | nios2eb-* | nios2el-* \  	| none-* | np1-* | ns16k-* | ns32k-* \ +	| open8-* \  	| orion-* \  	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ +	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \  	| pyramid-* \ -	| romp-* | rs6000-* | rx-* \ +	| rl78-* | romp-* | rs6000-* | rx-* \  	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \  	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \  	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \  	| sparclite-* \ -	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ -	| tahoe-* | thumb-* \ -	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ +	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ +	| tahoe-* \ +	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +	| tile*-* \  	| tron-* \  	| ubicom32-* \ -	| v850-* | v850e-* | vax-* \ +	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ +	| vax-* \  	| we32k-* \ -	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ +	| x86-* | x86_64-* | xc16x-* | xps100-* \  	| xstormy16-* | xtensa*-* \  	| ymp-* \  	| z8k-* | z80-*) @@ -410,7 +456,7 @@ case $basic_machine in  		basic_machine=a29k-amd  		os=-udi  		;; -    	abacus) +	abacus)  		basic_machine=abacus-unknown  		;;  	adobe68k) @@ -480,11 +526,20 @@ case $basic_machine in  		basic_machine=powerpc-ibm  		os=-cnk  		;; +	c54x-*) +		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` +		;; +	c55x-*) +		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` +		;; +	c6x-*) +		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` +		;;  	c90)  		basic_machine=c90-cray  		os=-unicos  		;; -        cegcc) +	cegcc)  		basic_machine=arm-unknown  		os=-cegcc  		;; @@ -516,7 +571,7 @@ case $basic_machine in  		basic_machine=craynv-cray  		os=-unicosmp  		;; -	cr16) +	cr16 | cr16-*)  		basic_machine=cr16-unknown  		os=-elf  		;; @@ -674,7 +729,6 @@ case $basic_machine in  	i370-ibm* | ibm*)  		basic_machine=i370-ibm  		;; -# I'm not sure what "Sysv32" means.  Should this be sysv3.2?  	i*86v32)  		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`  		os=-sysv32 @@ -732,11 +786,15 @@ case $basic_machine in  		basic_machine=ns32k-utek  		os=-sysv  		;; -        microblaze) +	microblaze*)  		basic_machine=microblaze-xilinx  		;; +	mingw64) +		basic_machine=x86_64-pc +		os=-mingw64 +		;;  	mingw32) -		basic_machine=i386-pc +		basic_machine=i686-pc  		os=-mingw32  		;;  	mingw32ce) @@ -771,10 +829,18 @@ case $basic_machine in  	ms1-*)  		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`  		;; +	msys) +		basic_machine=i686-pc +		os=-msys +		;;  	mvs)  		basic_machine=i370-ibm  		os=-mvs  		;; +	nacl) +		basic_machine=le32-unknown +		os=-nacl +		;;  	ncr3000)  		basic_machine=i486-ncr  		os=-sysv4 @@ -839,6 +905,12 @@ case $basic_machine in  	np1)  		basic_machine=np1-gould  		;; +	neo-tandem) +		basic_machine=neo-tandem +		;; +	nse-tandem) +		basic_machine=nse-tandem +		;;  	nsr-tandem)  		basic_machine=nsr-tandem  		;; @@ -921,9 +993,10 @@ case $basic_machine in  		;;  	power)	basic_machine=power-ibm  		;; -	ppc)	basic_machine=powerpc-unknown +	ppc | ppcbe)	basic_machine=powerpc-unknown  		;; -	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` +	ppc-* | ppcbe-*) +		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`  		;;  	ppcle | powerpclittle | ppc-le | powerpc-little)  		basic_machine=powerpcle-unknown @@ -933,7 +1006,7 @@ case $basic_machine in  		;;  	ppc64)	basic_machine=powerpc64-unknown  		;; -	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` +	ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`  		;;  	ppc64le | powerpc64little | ppc64-le | powerpc64-little)  		basic_machine=powerpc64le-unknown @@ -948,7 +1021,11 @@ case $basic_machine in  		basic_machine=i586-unknown  		os=-pw32  		;; -	rdos) +	rdos | rdos64) +		basic_machine=x86_64-pc +		os=-rdos +		;; +	rdos32)  		basic_machine=i386-pc  		os=-rdos  		;; @@ -1017,6 +1094,9 @@ case $basic_machine in  		basic_machine=i860-stratus  		os=-sysv4  		;; +	strongarm-* | thumb-*) +		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` +		;;  	sun2)  		basic_machine=m68000-sun  		;; @@ -1073,20 +1153,8 @@ case $basic_machine in  		basic_machine=t90-cray  		os=-unicos  		;; -	tic54x | c54x*) -		basic_machine=tic54x-unknown -		os=-coff -		;; -	tic55x | c55x*) -		basic_machine=tic55x-unknown -		os=-coff -		;; -	tic6x | c6x*) -		basic_machine=tic6x-unknown -		os=-coff -		;;  	tile*) -		basic_machine=tile-unknown +		basic_machine=$basic_machine-unknown  		os=-linux-gnu  		;;  	tx39) @@ -1156,6 +1224,9 @@ case $basic_machine in  	xps | xps100)  		basic_machine=xps100-honeywell  		;; +	xscale-* | xscalee[bl]-*) +		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` +		;;  	ymp)  		basic_machine=ymp-cray  		os=-unicos @@ -1253,11 +1324,11 @@ esac  if [ x"$os" != x"" ]  then  case $os in -        # First match some system type aliases -        # that might get confused with valid system types. +	# First match some system type aliases +	# that might get confused with valid system types.  	# -solaris* is a basic system type, with this one exception. -        -auroraux) -	        os=-auroraux +	-auroraux) +		os=-auroraux  		;;  	-solaris1 | -solaris1.*)  		os=`echo $os | sed -e 's|solaris1|sunos4|'` @@ -1281,20 +1352,21 @@ case $os in  	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \  	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\  	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ -	      | -sym* | -kopensolaris* \ +	      | -sym* | -kopensolaris* | -plan9* \  	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \  	      | -aos* | -aros* \  	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \  	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \  	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -	      | -openbsd* | -solidbsd* \ +	      | -bitrig* | -openbsd* | -solidbsd* \  	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \  	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \  	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \  	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \  	      | -chorusos* | -chorusrdb* | -cegcc* \ -	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ +	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ +	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \  	      | -uxpv* | -beos* | -mpeix* | -udk* \  	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \  	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1341,7 +1413,7 @@ case $os in  	-opened*)  		os=-openedition  		;; -        -os400*) +	-os400*)  		os=-os400  		;;  	-wince*) @@ -1390,7 +1462,7 @@ case $os in  	-sinix*)  		os=-sysv4  		;; -        -tpf*) +	-tpf*)  		os=-tpf  		;;  	-triton*) @@ -1426,15 +1498,14 @@ case $os in  	-aros*)  		os=-aros  		;; -	-kaos*) -		os=-kaos -		;;  	-zvmoe)  		os=-zvmoe  		;;  	-dicos*)  		os=-dicos  		;; +	-nacl*) +		;;  	-none)  		;;  	*) @@ -1457,10 +1528,10 @@ else  # system, and we'll never get to this point.  case $basic_machine in -        score-*) +	score-*)  		os=-elf  		;; -        spu-*) +	spu-*)  		os=-elf  		;;  	*-acorn) @@ -1472,8 +1543,23 @@ case $basic_machine in  	arm*-semi)  		os=-aout  		;; -        c4x-* | tic4x-*) -        	os=-coff +	c4x-* | tic4x-*) +		os=-coff +		;; +	c8051-*) +		os=-elf +		;; +	hexagon-*) +		os=-elf +		;; +	tic54x-*) +		os=-coff +		;; +	tic55x-*) +		os=-coff +		;; +	tic6x-*) +		os=-coff  		;;  	# This must come before the *-dec entry.  	pdp10-*) @@ -1493,14 +1579,11 @@ case $basic_machine in  		;;  	m68000-sun)  		os=-sunos3 -		# This also exists in the configure program, but was not the -		# default. -		# os=-sunos4  		;;  	m68*-cisco)  		os=-aout  		;; -        mep-*) +	mep-*)  		os=-elf  		;;  	mips*-cisco) @@ -1509,6 +1592,9 @@ case $basic_machine in  	mips*-*)  		os=-elf  		;; +	or1k-*) +		os=-elf +		;;  	or32-*)  		os=-coff  		;; @@ -1527,7 +1613,7 @@ case $basic_machine in  	*-ibm)  		os=-aix  		;; -    	*-knuth) +	*-knuth)  		os=-mmixware  		;;  	*-wec) diff --git a/build/linux/configure.ac b/build/linux/configure.ac index 58a3f4c..7c314f3 100644 --- a/build/linux/configure.ac +++ b/build/linux/configure.ac @@ -24,7 +24,7 @@ dnl  dnl -----------------------------------------------------------------------  dnl $Id$ -AC_INIT(astra_toolbox, 1.5.0) +AC_INIT(astra_toolbox, 1.6.0)  AC_CONFIG_SRCDIR([Makefile.in])  LT_INIT([disable-static]) diff --git a/build/linux/install-sh.dist b/build/linux/install-sh.dist index a5897de..a9244eb 100755 --- a/build/linux/install-sh.dist +++ b/build/linux/install-sh.dist @@ -1,7 +1,7 @@  #!/bin/sh  # install - install a program, script, or datafile -scriptversion=2006-12-25.00 +scriptversion=2011-01-19.21; # UTC  # This originates from X11R5 (mit/util/scripts/install.sh), which was  # later released in X11R6 (xc/config/util/install.sh) with the @@ -156,6 +156,10 @@ while test $# -ne 0; do      -s) stripcmd=$stripprog;;      -t) dst_arg=$2 +	# Protect names problematic for `test' and other utilities. +	case $dst_arg in +	  -* | [=\(\)!]) dst_arg=./$dst_arg;; +	esac  	shift;;      -T) no_target_directory=true;; @@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then      fi      shift # arg      dst_arg=$arg +    # Protect names problematic for `test' and other utilities. +    case $dst_arg in +      -* | [=\(\)!]) dst_arg=./$dst_arg;; +    esac    done  fi @@ -200,7 +208,11 @@ if test $# -eq 0; then  fi  if test -z "$dir_arg"; then -  trap '(exit $?); exit' 1 2 13 15 +  do_exit='(exit $ret); exit $ret' +  trap "ret=129; $do_exit" 1 +  trap "ret=130; $do_exit" 2 +  trap "ret=141; $do_exit" 13 +  trap "ret=143; $do_exit" 15    # Set umask so as not to create temps with too-generous modes.    # However, 'strip' requires both read and write access to temps. @@ -228,9 +240,9 @@ fi  for src  do -  # Protect names starting with `-'. +  # Protect names problematic for `test' and other utilities.    case $src in -    -*) src=./$src;; +    -* | [=\(\)!]) src=./$src;;    esac    if test -n "$dir_arg"; then @@ -252,12 +264,7 @@ do        echo "$0: no destination specified." >&2        exit 1      fi -      dst=$dst_arg -    # Protect names starting with `-'. -    case $dst in -      -*) dst=./$dst;; -    esac      # If destination is a directory, append the input filename; won't work      # if double slashes aren't ignored. @@ -385,7 +392,7 @@ do        case $dstdir in  	/*) prefix='/';; -	-*) prefix='./';; +	[-=\(\)!]*) prefix='./';;  	*)  prefix='';;        esac @@ -403,7 +410,7 @@ do        for d        do -	test -z "$d" && continue +	test X"$d" = X && continue  	prefix=$prefix$d  	if test -d "$prefix"; then @@ -515,5 +522,6 @@ done  # eval: (add-hook 'write-file-hooks 'time-stamp)  # time-stamp-start: "scriptversion="  # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC"  # End: diff --git a/build/msvc/gen.py b/build/msvc/gen.py index 9f5e367..aeca3b0 100644 --- a/build/msvc/gen.py +++ b/build/msvc/gen.py @@ -946,10 +946,11 @@ def write_main_project09():        print('\t\t\t\tRuntime="3"', file=F) # MDD      else:        print('\t\t\t\tRuntime="2"', file=F) # MD +    print('\t\t\t\tExtraCppOptions="-Iinclude -Ilib/include"', file=F)      if c.cuda: -      print('\t\t\t\tDefines="-DASTRA_CUDA -DDLL_EXPORTS"', file=F) +      print('\t\t\t\tDefines="ASTRA_CUDA;DLL_EXPORTS"', file=F)      else: # This 'else' doesn't make much sense -      print('\t\t\t\tDefines="-DDLL_EXPORTS"', file=F) +      print('\t\t\t\tDefines="DLL_EXPORTS"', file=F)      # TODO!!!      print('\t\t\t/>', file=F)      print('\t\t</Configuration>', file=F) diff --git a/include/astra/Globals.h b/include/astra/Globals.h index 9c8ddfb..4de07d1 100644 --- a/include/astra/Globals.h +++ b/include/astra/Globals.h @@ -61,9 +61,9 @@ $Id$  // macro's  #define ASTRA_TOOLBOXVERSION_MAJOR 1 -#define ASTRA_TOOLBOXVERSION_MINOR 5 +#define ASTRA_TOOLBOXVERSION_MINOR 6  #define ASTRA_TOOLBOXVERSION ((ASTRA_TOOLBOXVERSION_MAJOR)*100 + (ASTRA_TOOLBOXVERSION_MINOR)) -#define ASTRA_TOOLBOXVERSION_STRING "1.5" +#define ASTRA_TOOLBOXVERSION_STRING "1.6"  #define ASTRA_ASSERT(a) assert(a) diff --git a/matlab/mex/astra_mex_c.cpp b/matlab/mex/astra_mex_c.cpp index 4a331f5..a9b9654 100644 --- a/matlab/mex/astra_mex_c.cpp +++ b/matlab/mex/astra_mex_c.cpp @@ -36,9 +36,9 @@ $Id$  #include "mexInitFunctions.h"  #include "astra/Globals.h" - +#ifdef ASTRA_CUDA  #include "../cuda/2d/darthelper.h" - +#endif  using namespace std;  using namespace astra; diff --git a/matlab/mex/astra_mex_projector3d_c.cpp b/matlab/mex/astra_mex_projector3d_c.cpp index c3b547f..e25802c 100644 --- a/matlab/mex/astra_mex_projector3d_c.cpp +++ b/matlab/mex/astra_mex_projector3d_c.cpp @@ -137,7 +137,9 @@ void astra_mex_projector3d_get_projection_geometry(int nlhs, mxArray* plhs[], in  	// step3: get projection_geometry and turn it into a MATLAB struct  	if (1 <= nlhs) { -		plhs[0] = configToStruct(pProjector->getProjectionGeometry()->getConfiguration()); +		Config *cfg = pProjector->getProjectionGeometry()->getConfiguration(); +		plhs[0] = configToStruct(cfg); +		delete cfg;  	}  } @@ -163,7 +165,9 @@ void astra_mex_projector3d_get_volume_geometry(int nlhs, mxArray* plhs[], int nr  	// step3: get projection_geometry and turn it into a MATLAB struct  	if (1 <= nlhs) { -		plhs[0] = configToStruct(pProjector->getVolumeGeometry()->getConfiguration()); +		Config *cfg = pProjector->getVolumeGeometry()->getConfiguration(); +		plhs[0] = configToStruct(cfg); +		delete cfg;  	}  } diff --git a/matlab/mex/astra_mex_projector_c.cpp b/matlab/mex/astra_mex_projector_c.cpp index 204ba8e..bf701af 100644 --- a/matlab/mex/astra_mex_projector_c.cpp +++ b/matlab/mex/astra_mex_projector_c.cpp @@ -160,7 +160,9 @@ void astra_mex_projector_projection_geometry(int nlhs, mxArray* plhs[], int nrhs  	// step3: get projection_geometry and turn it into a MATLAB struct  	if (1 <= nlhs) { -		plhs[0] = configToStruct(pProjector->getProjectionGeometry()->getConfiguration()); +		Config *cfg =  pProjector->getProjectionGeometry()->getConfiguration(); +		plhs[0] = configToStruct(cfg); +		delete cfg;  	}  } @@ -189,8 +191,9 @@ void astra_mex_projector_volume_geometry(int nlhs, mxArray* plhs[], int nrhs, co  	// step3: get projection_geometry and turn it into a MATLAB struct  	if (1 <= nlhs) { -		plhs[0] = configToStruct(pProjector->getVolumeGeometry()->getConfiguration()); - +		Config *cfg = pProjector->getVolumeGeometry()->getConfiguration(); +		plhs[0] = configToStruct(cfg); +		delete cfg;  	}  } diff --git a/matlab/mex/mexHelpFunctions.cpp b/matlab/mex/mexHelpFunctions.cpp index 87a9672..58e84d2 100644 --- a/matlab/mex/mexHelpFunctions.cpp +++ b/matlab/mex/mexHelpFunctions.cpp @@ -336,7 +336,11 @@ mxArray* XMLNodeToStruct(astra::XMLNode node)  		// option  		if (subnode.getName() == "Option") { -			mOptions[subnode.getAttribute("key")] = stringToMxArray(subnode.getAttribute("value")); +			if(subnode.hasAttribute("value")){ +				mOptions[subnode.getAttribute("key")] = stringToMxArray(subnode.getAttribute("value")); +			}else{ +				mOptions[subnode.getAttribute("key")] = stringToMxArray(subnode.getContent()); +			}  		}  		// regular content diff --git a/matlab/tools/astra_create_reconstruction_cuda.m b/matlab/tools/astra_create_reconstruction_cuda.m index 7d9e1dd..7d0421c 100644 --- a/matlab/tools/astra_create_reconstruction_cuda.m +++ b/matlab/tools/astra_create_reconstruction_cuda.m @@ -45,7 +45,7 @@ if strcmp(rec_type,'')  end  % configure -cfg = astra_struct('SIRT_CUDA'); +cfg = astra_struct(rec_type);  cfg.ProjectionGeometry = proj_geom;  cfg.ReconstructionGeometry = vol_geom;  cfg.ProjectionDataId = sinogram_id; diff --git a/python/astra/functions.py b/python/astra/functions.py index b826b86..e38b5bc 100644 --- a/python/astra/functions.py +++ b/python/astra/functions.py @@ -32,7 +32,11 @@  from . import creators as ac  import numpy as np -from six.moves import range +try: +    from six.moves import range +except ImportError: +    # six 1.3.0 +    from six.moves import xrange as range  from . import data2d  from . import data3d diff --git a/python/astra/log_c.pyx b/python/astra/log_c.pyx index 969cc06..f16329f 100644 --- a/python/astra/log_c.pyx +++ b/python/astra/log_c.pyx @@ -52,16 +52,20 @@ cdef extern from "astra/Logging.h" namespace "astra::CLogger":      void setFormatScreen(const char *fmt)  def log_debug(sfile, sline, message): -    debug(six.b(sfile),sline,six.b(message)) +    cstr = list(map(six.b,(sfile,message))) +    debug(cstr[0],sline,cstr[1])  def log_info(sfile, sline, message): -    info(six.b(sfile),sline,six.b(message)) +    cstr = list(map(six.b,(sfile,message))) +    info(cstr[0],sline,cstr[1])  def log_warn(sfile, sline, message): -    warn(six.b(sfile),sline,six.b(message)) +    cstr = list(map(six.b,(sfile,message))) +    warn(cstr[0],sline,cstr[1])  def log_error(sfile, sline, message): -    error(six.b(sfile),sline,six.b(message)) +    cstr = list(map(six.b,(sfile,message))) +    error(cstr[0],sline,cstr[1])  def log_enable():      enable() @@ -82,10 +86,12 @@ def log_disableFile():      disableFile()  def log_setFormatFile(fmt): -    setFormatFile(six.b(fmt)) +    cstr = six.b(fmt) +    setFormatFile(cstr)  def log_setFormatScreen(fmt): -    setFormatScreen(six.b(fmt)) +    cstr = six.b(fmt) +    setFormatScreen(cstr)  enumList = [LOG_DEBUG,LOG_INFO,LOG_WARN,LOG_ERROR] @@ -93,4 +99,5 @@ def log_setOutputScreen(fd, level):      setOutputScreen(fd, enumList[level])  def log_setOutputFile(filename, level): -    setOutputFile(six.b(filename), enumList[level])
\ No newline at end of file +    cstr = six.b(filename) +    setOutputFile(cstr, enumList[level]) diff --git a/python/astra/matrix_c.pyx b/python/astra/matrix_c.pyx index b0d8bc4..d099a75 100644 --- a/python/astra/matrix_c.pyx +++ b/python/astra/matrix_c.pyx @@ -27,7 +27,12 @@  # distutils: libraries = astra  import six -from six.moves import range +try: +    from six.moves import range +except ImportError: +    # six 1.3.0 +    from six.moves import xrange as range +  import numpy as np  import scipy.sparse as ss diff --git a/python/astra/optomo.py b/python/astra/optomo.py index 0c37353..0108674 100644 --- a/python/astra/optomo.py +++ b/python/astra/optomo.py @@ -32,7 +32,13 @@ from . import creators  from . import algorithm  from . import functions  import numpy as np -from six.moves import range, reduce +from six.moves import reduce +try: +    from six.moves import range +except ImportError: +    # six 1.3.0 +    from six.moves import xrange as range +  import operator  import scipy.sparse.linalg @@ -158,7 +164,7 @@ class OpTomo(scipy.sparse.linalg.LinearOperator):          :param extraOptions: Extra options to use during reconstruction (i.e. for cfg['option']).          :type extraOptions: :class:`dict`          """ -        self.__checkArray(s, self.sshape) +        s = self.__checkArray(s, self.sshape)          sid = self.data_mod.link('-sino',self.pg,s)          v = np.zeros(self.vshape,dtype=np.float32)          vid = self.data_mod.link('-vol',self.vg,v) diff --git a/python/astra/projector3d_c.pyx b/python/astra/projector3d_c.pyx index 8b978d7..aec9cde 100644 --- a/python/astra/projector3d_c.pyx +++ b/python/astra/projector3d_c.pyx @@ -87,12 +87,18 @@ cdef CProjector3D * getObject(i) except NULL:  def projection_geometry(i):      cdef CProjector3D * proj = getObject(i) -    return utils.configToDict(proj.getProjectionGeometry().getConfiguration()) +    cdef Config * cfg = proj.getProjectionGeometry().getConfiguration() +    dct = utils.configToDict(cfg) +    del cfg +    return dct  def volume_geometry(i):      cdef CProjector3D * proj = getObject(i) -    return utils.configToDict(proj.getVolumeGeometry().getConfiguration()) +    cdef Config * cfg = proj.getVolumeGeometry().getConfiguration() +    dct = utils.configToDict(cfg) +    del cfg +    return dct  def weights_single_ray(i, projection_index, detector_index): diff --git a/python/astra/projector_c.pyx b/python/astra/projector_c.pyx index 9aa868e..77c64a4 100644 --- a/python/astra/projector_c.pyx +++ b/python/astra/projector_c.pyx @@ -91,12 +91,18 @@ cdef CProjector2D * getObject(i) except NULL:  def projection_geometry(i):      cdef CProjector2D * proj = getObject(i) -    return utils.configToDict(proj.getProjectionGeometry().getConfiguration()) +    cdef Config * cfg = proj.getProjectionGeometry().getConfiguration() +    dct = utils.configToDict(cfg) +    del cfg +    return dct  def volume_geometry(i):      cdef CProjector2D * proj = getObject(i) -    return utils.configToDict(proj.getVolumeGeometry().getConfiguration()) +    cdef Config * cfg = proj.getVolumeGeometry().getConfiguration() +    dct = utils.configToDict(cfg) +    del cfg +    return dct  def weights_single_ray(i, projection_index, detector_index): diff --git a/python/astra/utils.pyx b/python/astra/utils.pyx index ddb37aa..260c308 100644 --- a/python/astra/utils.pyx +++ b/python/astra/utils.pyx @@ -95,7 +95,8 @@ cdef void readDict(XMLNode root, _dc):              if val.size == 0:                  break              listbase = root.addChildNode(item) -            data = <double*>np.PyArray_DATA(np.ascontiguousarray(val,dtype=np.float64))  +            contig_data = np.ascontiguousarray(val,dtype=np.float64) +            data = <double*>np.PyArray_DATA(contig_data)               if val.ndim == 2:                  listbase.setContent(data, val.shape[1], val.shape[0], False)              elif val.ndim == 1: @@ -129,7 +130,8 @@ cdef void readOptions(XMLNode node, dc):                  break              listbase = node.addChildNode(six.b('Option'))              listbase.addAttribute(< string > six.b('key'), < string > item) -            data = <double*>np.PyArray_DATA(np.ascontiguousarray(val,dtype=np.float64))  +            contig_data = np.ascontiguousarray(val,dtype=np.float64) +            data = <double*>np.PyArray_DATA(contig_data)              if val.ndim == 2:                  listbase.setContent(data, val.shape[1], val.shape[0], False)              elif val.ndim == 1: @@ -202,7 +204,10 @@ cdef XMLNode2dict(XMLNode node):      while it != nodes.end():          subnode = deref(it)          if castString(subnode.getName())=="Option": -            opts[castString(subnode.getAttribute('key'))] = stringToPythonValue(subnode.getAttribute('value')) +            if subnode.hasAttribute('value'): +                opts[castString(subnode.getAttribute('key'))] = stringToPythonValue(subnode.getAttribute('value')) +            else: +                opts[castString(subnode.getAttribute('key'))] = stringToPythonValue(subnode.getContent())          else:              dct[castString(subnode.getName())] = stringToPythonValue(subnode.getContent())          inc(it) diff --git a/python/docSRC/operator.rst b/python/docSRC/operator.rst index f5369fa..fe500ba 100644 --- a/python/docSRC/operator.rst +++ b/python/docSRC/operator.rst @@ -1,7 +1,7 @@ -OpTomo class: the :mod:`operator` module +OpTomo class: the :mod:`optomo` module  ============================================== -.. automodule:: astra.operator +.. automodule:: astra.optomo      :members:      :undoc-members:      :show-inheritance: diff --git a/samples/python/s005_3d_geometry.py b/samples/python/s005_3d_geometry.py index f43fc7e..a7f7a3d 100644 --- a/samples/python/s005_3d_geometry.py +++ b/samples/python/s005_3d_geometry.py @@ -24,7 +24,11 @@  #  #----------------------------------------------------------------------- -from six.moves import range +try: +    from six.moves import range +except ImportError: +    # six 1.3.0 +    from six.moves import xrange as range  import astra  import numpy as np diff --git a/samples/python/s016_plots.py b/samples/python/s016_plots.py index cd4d98c..8a8ba64 100644 --- a/samples/python/s016_plots.py +++ b/samples/python/s016_plots.py @@ -24,7 +24,11 @@  #  #----------------------------------------------------------------------- -from six.moves import range +try: +    from six.moves import range +except ImportError: +    # six 1.3.0 +    from six.moves import xrange as range  import astra  import numpy as np @@ -35,8 +39,8 @@ proj_geom = astra.create_proj_geom('parallel', 1.0, 384, np.linspace(0,np.pi,180  # As before, create a sinogram from a phantom  import scipy.io  P = scipy.io.loadmat('phantom.mat')['phantom256'] -proj_id = astra.create_projector('line',proj_geom,vol_geom) -sinogram_id, sinogram = astra.create_sino(P, proj_id,useCUDA=True) +proj_id = astra.create_projector('cuda',proj_geom,vol_geom) +sinogram_id, sinogram = astra.create_sino(P, proj_id)  import pylab  pylab.gray() diff --git a/src/ParallelProjectionGeometry2D.cpp b/src/ParallelProjectionGeometry2D.cpp index 699e141..7260b83 100644 --- a/src/ParallelProjectionGeometry2D.cpp +++ b/src/ParallelProjectionGeometry2D.cpp @@ -180,6 +180,11 @@ Config* CParallelProjectionGeometry2D::getConfiguration() const  	cfg->self.addChildNode("DetectorCount", getDetectorCount());  	cfg->self.addChildNode("DetectorWidth", getDetectorWidth());  	cfg->self.addChildNode("ProjectionAngles", m_pfProjectionAngles, m_iProjectionAngleCount); +	if(m_pfExtraDetectorOffset!=NULL){ +		XMLNode opt = cfg->self.addChildNode("Option"); +		opt.addAttribute("key","ExtraDetectorOffset"); +		opt.setContent(m_pfExtraDetectorOffset, m_iProjectionAngleCount); +	}  	return cfg;  }  //---------------------------------------------------------------------------------------- | 
