| # config.links - helper for ../configure -*- mode: sh -*- |
| # Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. |
| # |
| # This file is part of Libgcrypt. |
| # |
| # Libgcrypt is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU Lesser General Public License as |
| # published by the Free Software Foundation; either version 2.1 of |
| # the License, or (at your option) any later version. |
| # |
| # Libgcrypt 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 Lesser General Public License for more details. |
| # |
| # You should have received a copy of the GNU Lesser General Public |
| # License along with this program; if not, write to the Free Software |
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
| # |
| # sourced by ../configure to get the list of files to link |
| # this should set $mpi_ln_list. |
| # Note: this is called from the above directory. |
| |
| mpi_sflags= |
| mpi_extra_modules= |
| |
| test -d ./mpi || mkdir ./mpi |
| |
| # We grep the list of modules from the Makefile so that |
| # we don't need to maintain them here. |
| mpi_standard_modules=`$AWK '/^#BEGIN_ASM_LIST/,/^#END_ASM_LIST/ { |
| if( $3 != "O" ) print $2 }' $srcdir/mpi/Makefile.am` |
| mpi_optional_modules=`$AWK '/^#BEGIN_ASM_LIST/,/^#END_ASM_LIST/ { |
| if( $3 == "O" ) print $2 }' $srcdir/mpi/Makefile.am` |
| |
| |
| echo '/* created by config.links - do not edit */' >./mpi/asm-syntax.h |
| echo "/* Host: ${host} */" >>./mpi/asm-syntax.h |
| |
| if test "$try_asm_modules" = "yes" ; then |
| case "${host}" in |
| powerpc-apple-darwin* | \ |
| i[34567]86*-*-openbsd[12]* | \ |
| i[34567]86*-*-openbsd3.[0123]*) |
| echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h |
| path="" |
| ;; |
| i[3467]86*-*-openbsd* | \ |
| i[3467]86*-*-freebsd*-elf | \ |
| i[3467]86*-*-freebsd[3-9]* | \ |
| i[3467]86*-*-freebsdelf* | \ |
| i[3467]86*-*-netbsd* | \ |
| i[3467]86*-*-k*bsd*) |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i386" |
| ;; |
| i586*-*-openbsd* | \ |
| i586*-*-freebsd*-elf | \ |
| i586*-*-freebsd[3-9]* | \ |
| i586*-*-freebsdelf* | \ |
| i586*-*-netbsd* | \ |
| i586*-*-k*bsd* | \ |
| pentium-*-netbsd* | \ |
| pentiumpro-*-netbsd*) |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i586 i386" |
| ;; |
| i[34]86*-*-bsdi4*) |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i386" |
| ;; |
| i[3467]86*-*-linuxaout* | \ |
| i[3467]86*-*-linuxoldld* | \ |
| i[3467]86*-*-*bsd*) |
| echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h |
| echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i386" |
| ;; |
| i586*-*-linuxaout* | \ |
| i586*-*-linuxoldld* | \ |
| i586*-*-*bsd*) |
| echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h |
| echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i586 i386" |
| ;; |
| i[3467]86*-msdosdjgpp* | \ |
| i[34]86*-apple-darwin*) |
| echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i386" |
| ;; |
| i586*-msdosdjgpp* | \ |
| i[567]86*-apple-darwin*) |
| echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i586 i386" |
| ;; |
| i[3467]86*-*-*) |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i386" |
| ;; |
| i586*-*-* | \ |
| pentium-*-* | \ |
| pentiumpro-*-*) |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="i586 i386" |
| ;; |
| x86_64-*-*) |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h |
| path="amd64" |
| ;; |
| alpha*-*-*) |
| echo '/* configured for alpha */' >>./mpi/asm-syntax.h |
| path="alpha" |
| mpi_extra_modules="udiv-qrnnd" |
| ;; |
| hppa7000*-*-*) |
| echo '/* configured for HPPA (pa7000) */' >>./mpi/asm-syntax.h |
| path="hppa1.1 hppa" |
| mpi_extra_modules="udiv-qrnnd" |
| ;; |
| hppa1.0*-*-*) |
| echo '/* configured for HPPA 1.0 */' >>./mpi/asm-syntax.h |
| path="hppa" |
| mpi_extra_modules="udiv-qrnnd" |
| ;; |
| hppa*-*-*) # assume pa7100 |
| echo '/* configured for HPPA (pa7100) */' >>./mpi/asm-syntax.h |
| path="pa7100 hppa1.1 hppa" |
| mpi_extra_modules="udiv-qrnnd" |
| ;; |
| sparc64-*-linux-gnu) |
| echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h |
| path="" |
| ;; |
| sparc64-sun-solaris2*) |
| echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h |
| path="" |
| ;; |
| sparc64-*-netbsd* | sparc64-*-freebsd* | sparc64-*-openbsd*) |
| # There are no sparc64 assembler modules that work on the |
| # *BSDs, so use the generic C functions. |
| echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h |
| path="" |
| ;; |
| sparc64*-*-*) |
| echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h |
| path="" |
| ;; |
| sparc9*-*-* | \ |
| ultrasparc*-*-* ) |
| echo '/* configured for sparc9 or higher */' >>./mpi/asm-syntax.h |
| path="sparc32v8 sparc32" |
| ;; |
| sparc8*-*-* | \ |
| microsparc*-*-*) |
| echo '/* configured for sparc8 */' >>./mpi/asm-syntax.h |
| path="sparc32v8 sparc32" |
| ;; |
| supersparc*-*-*) |
| echo '/* configured for supersparc */' >>./mpi/asm-syntax.h |
| path="supersparc sparc32v8 sparc32" |
| mpi_extra_modules="udiv" |
| ;; |
| sparc*-*-*) |
| echo '/* configured for sparc */' >>./mpi/asm-syntax.h |
| path="sparc32" |
| mpi_extra_modules="udiv" |
| ;; |
| mips[34]*-*-* | \ |
| mips*-*-irix6*) |
| echo '/* configured for MIPS3 */' >>./mpi/asm-syntax.h |
| path="mips3" |
| ;; |
| mips*-*-*) |
| echo '/* configured for MIPS2 */' >>./mpi/asm-syntax.h |
| path="mips2" |
| ;; |
| |
| # Motorola 68k configurations. Let m68k mean 68020-68040. |
| # mc68000 or mc68060 configurations need to be specified explicitly |
| m680[234]0*-*-linuxaout* | \ |
| m68k*-*-linuxaout*) |
| echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h |
| path="m68k/mc68020 m68k" |
| ;; |
| m68060*-*-linuxaout*) |
| echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h |
| path="m68k" |
| ;; |
| m680[234]0*-*-linux* | \ |
| m68k*-*-linux*) |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h |
| ;; |
| m68060*-*-linux*) |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h |
| path="m68k" |
| ;; |
| m68k-atari-mint) |
| echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h |
| path="m68k/mc68020 m68k" |
| ;; |
| m68000*-*-* | \ |
| m68060*-*-*) |
| echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h |
| path="m68k/mc68000" |
| ;; |
| m680[234]0*-*-* | \ |
| m68k*-*-*) |
| echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h |
| path="m68k/mc68020 m68k" |
| ;; |
| |
| powerpc*-*-netbsd* | powerpc*-*-openbsd*) |
| echo '/* configured {Open,Net}BSD on powerpc */' >>./mpi/asm-syntax.h |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/powerpc32/syntax.h >>./mpi/asm-syntax.h |
| mpi_sflags="-Wa,-mppc" |
| path="powerpc32" |
| ;; |
| |
| ppc620-*-* | \ |
| powerpc64*-*-*) |
| mpi_sflags="-Wa,-mppc" |
| path="powerpc64" |
| ;; |
| powerpc*-*-linux*) |
| echo '/* configured for powerpc/ELF */' >>./mpi/asm-syntax.h |
| echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h |
| cat $srcdir/mpi/powerpc32/syntax.h >>./mpi/asm-syntax.h |
| path="powerpc32" |
| ;; |
| |
| rs6000-*-aix[456789]* | \ |
| rs6000-*-aix3.2.[456789]) |
| mpi_sflags="-Wa,-mpwr" |
| path="power" |
| mpi_extra_modules="udiv-w-sdiv" |
| ;; |
| rs6000-*-* | \ |
| power-*-* | \ |
| power2-*-*) |
| mpi_sflags="-Wa,-mppc" |
| path="power" |
| mpi_extra_modules="udiv-w-sdiv" |
| ;; |
| powerpc-ibm-aix4.2.* ) |
| # I am not sure about this one but a machine identified by |
| # powerpc-ibm-aix4.2.1.0 cannot use the powerpc32 code. |
| mpi_sflags="-Wa,-mpwr" |
| path="power" |
| mpi_extra_modules="udiv-w-sdiv" |
| ;; |
| ppc601-*-*) |
| mpi_sflags="-Wa,-mppc" |
| path="power powerpc32" |
| ;; |
| ppc60[234]*-*-*) |
| mpi_sflags="-Wa,-mppc" |
| path="powerpc32" |
| ;; |
| powerpc*-*-*) |
| mpi_sflags="-Wa,-mppc" |
| path="powerpc32" |
| ;; |
| *) |
| echo '/* No assembler modules configured */' >>./mpi/asm-syntax.h |
| path="" |
| ;; |
| esac |
| else |
| echo '/* Assembler modules disabled on request */' >>./mpi/asm-syntax.h |
| path="" |
| fi |
| |
| |
| # Make sysdep.h |
| echo '/* created by config.links - do not edit */' >./mpi/sysdep.h |
| if test x$ac_cv_sys_symbol_underscore = xyes; then |
| cat <<EOF >>./mpi/sysdep.h |
| #if __STDC__ |
| #define C_SYMBOL_NAME(name) _##name |
| #else |
| #define C_SYMBOL_NAME(name) _/**/name |
| #endif |
| EOF |
| else |
| cat <<EOF >>./mpi/sysdep.h |
| #define C_SYMBOL_NAME(name) name |
| EOF |
| fi |
| |
| |
| # Figure the required modules out |
| mpi_required_modules=$mpi_standard_modules |
| if test "$mpi_extra_modules" != ""; then |
| for fn in $mpi_extra_modules; do |
| for i in $mpi_optional_modules; do |
| if test "$fn" = "$i" ; then |
| mpi_required_modules="$mpi_required_modules $fn" |
| fi |
| done |
| done |
| fi |
| |
| # Try to get file to link from the assembler subdirectory and |
| # if this fails get it from the generic subdirectory. |
| mpi_ln_list= |
| mpi_mod_list= |
| path=`echo "$mpi_extra_path $path generic" | tr ':' ' '` |
| echo '/* Created by config.links - do not edit */' >./mpi/mod-source-info.h |
| echo "/* Host: ${host} */" >>./mpi/mod-source-info.h |
| echo "static char mod_source_info[] =" >>./mpi/mod-source-info.h |
| for fn in $mpi_required_modules ; do |
| fnu=`echo $fn | sed 's/-/_/g'` |
| eval mpi_mod_c_${fnu}=no |
| eval mpi_mod_asm_${fnu}=no |
| for dir in $path ; do |
| rm -f $srcdir/mpi/$fn.[Sc] |
| if test -f $srcdir/mpi/$dir/$fn.S ; then |
| echo " \":$dir/$fn.S\"" >>./mpi/mod-source-info.h |
| mpi_ln_list="$mpi_ln_list mpi/$fn-asm.S:mpi/$dir/$fn.S" |
| eval mpi_mod_asm_${fnu}=yes |
| mpi_mod_list="$mpi_mod_list $fn" |
| break; |
| elif test -f $srcdir/mpi/$dir/$fn.c ; then |
| echo " \":$dir/$fn.c\"" >>./mpi/mod-source-info.h |
| mpi_ln_list="$mpi_ln_list mpi/$fn.c:mpi/$dir/$fn.c" |
| eval mpi_mod_c_${fnu}=yes |
| mpi_mod_list="$mpi_mod_list $fn" |
| break; |
| fi |
| done |
| done |
| echo " ;" >>./mpi/mod-source-info.h |
| |
| # Same thing for the file which defines the limb size |
| path=`echo "$path generic" | tr ':' ' '` |
| for dir in $path ; do |
| rm -f $srcdir/mpi/mpi-asm-defs.h |
| if test -f $srcdir/mpi/$dir/mpi-asm-defs.h ; then |
| mpi_ln_list="$mpi_ln_list mpi/mpi-asm-defs.h:mpi/$dir/mpi-asm-defs.h" |
| break; |
| fi |
| done |
| |