1# config.links - helper for ../configure -*- mode: sh -*- 2# Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 3# 4# This file is part of Libgcrypt. 5# 6# Libgcrypt is free software; you can redistribute it and/or modify 7# it under the terms of the GNU Lesser General Public License as 8# published by the Free Software Foundation; either version 2.1 of 9# the License, or (at your option) any later version. 10# 11# Libgcrypt is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU Lesser General Public License for more details. 15# 16# You should have received a copy of the GNU Lesser General Public 17# License along with this program; if not, write to the Free Software 18# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 19# 20# sourced by ../configure to get the list of files to link 21# this should set $mpi_ln_list. 22# Note: this is called from the above directory. 23 24mpi_sflags= 25mpi_extra_modules= 26 27test -d ./mpi || mkdir ./mpi 28 29# We grep the list of modules from the Makefile so that 30# we don't need to maintain them here. 31mpi_standard_modules=`$AWK '/^#BEGIN_ASM_LIST/,/^#END_ASM_LIST/ { 32 if( $3 != "O" ) print $2 }' $srcdir/mpi/Makefile.am` 33mpi_optional_modules=`$AWK '/^#BEGIN_ASM_LIST/,/^#END_ASM_LIST/ { 34 if( $3 == "O" ) print $2 }' $srcdir/mpi/Makefile.am` 35 36 37echo '/* created by config.links - do not edit */' >./mpi/asm-syntax.h 38echo "/* Host: ${host} */" >>./mpi/asm-syntax.h 39 40if test "$try_asm_modules" = "yes" ; then 41case "${host}" in 42 powerpc-apple-darwin* | \ 43 i[34567]86*-*-openbsd[12]* | \ 44 i[34567]86*-*-openbsd3.[0123]*) 45 echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h 46 path="" 47 ;; 48 i[3467]86*-*-openbsd* | \ 49 i[3467]86*-*-freebsd*-elf | \ 50 i[3467]86*-*-freebsd[3-9]* | \ 51 i[3467]86*-*-freebsdelf* | \ 52 i[3467]86*-*-netbsd* | \ 53 i[3467]86*-*-k*bsd*) 54 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 55 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 56 path="i386" 57 ;; 58 i586*-*-openbsd* | \ 59 i586*-*-freebsd*-elf | \ 60 i586*-*-freebsd[3-9]* | \ 61 i586*-*-freebsdelf* | \ 62 i586*-*-netbsd* | \ 63 i586*-*-k*bsd* | \ 64 pentium-*-netbsd* | \ 65 pentiumpro-*-netbsd*) 66 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 67 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 68 path="i586 i386" 69 ;; 70 i[34]86*-*-bsdi4*) 71 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 72 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 73 path="i386" 74 ;; 75 i[3467]86*-*-linuxaout* | \ 76 i[3467]86*-*-linuxoldld* | \ 77 i[3467]86*-*-*bsd*) 78 echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h 79 echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h 80 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 81 path="i386" 82 ;; 83 i586*-*-linuxaout* | \ 84 i586*-*-linuxoldld* | \ 85 i586*-*-*bsd*) 86 echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h 87 echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h 88 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 89 path="i586 i386" 90 ;; 91 i[3467]86*-msdosdjgpp* | \ 92 i[34]86*-apple-darwin*) 93 echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h 94 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 95 path="i386" 96 ;; 97 i586*-msdosdjgpp* | \ 98 i[567]86*-apple-darwin*) 99 echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h 100 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 101 path="i586 i386" 102 ;; 103 i[3467]86*-*-*) 104 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 105 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 106 path="i386" 107 ;; 108 i586*-*-* | \ 109 pentium-*-* | \ 110 pentiumpro-*-*) 111 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 112 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 113 path="i586 i386" 114 ;; 115 x86_64-*-*) 116 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 117 cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h 118 path="amd64" 119 ;; 120 alpha*-*-*) 121 echo '/* configured for alpha */' >>./mpi/asm-syntax.h 122 path="alpha" 123 mpi_extra_modules="udiv-qrnnd" 124 ;; 125 hppa7000*-*-*) 126 echo '/* configured for HPPA (pa7000) */' >>./mpi/asm-syntax.h 127 path="hppa1.1 hppa" 128 mpi_extra_modules="udiv-qrnnd" 129 ;; 130 hppa1.0*-*-*) 131 echo '/* configured for HPPA 1.0 */' >>./mpi/asm-syntax.h 132 path="hppa" 133 mpi_extra_modules="udiv-qrnnd" 134 ;; 135 hppa*-*-*) # assume pa7100 136 echo '/* configured for HPPA (pa7100) */' >>./mpi/asm-syntax.h 137 path="pa7100 hppa1.1 hppa" 138 mpi_extra_modules="udiv-qrnnd" 139 ;; 140 sparc64-*-linux-gnu) 141 echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h 142 path="" 143 ;; 144 sparc64-sun-solaris2*) 145 echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h 146 path="" 147 ;; 148 sparc64-*-netbsd* | sparc64-*-freebsd* | sparc64-*-openbsd*) 149 # There are no sparc64 assembler modules that work on the 150 # *BSDs, so use the generic C functions. 151 echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h 152 path="" 153 ;; 154 sparc64*-*-*) 155 echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h 156 path="" 157 ;; 158 sparc9*-*-* | \ 159 ultrasparc*-*-* ) 160 echo '/* configured for sparc9 or higher */' >>./mpi/asm-syntax.h 161 path="sparc32v8 sparc32" 162 ;; 163 sparc8*-*-* | \ 164 microsparc*-*-*) 165 echo '/* configured for sparc8 */' >>./mpi/asm-syntax.h 166 path="sparc32v8 sparc32" 167 ;; 168 supersparc*-*-*) 169 echo '/* configured for supersparc */' >>./mpi/asm-syntax.h 170 path="supersparc sparc32v8 sparc32" 171 mpi_extra_modules="udiv" 172 ;; 173 sparc*-*-*) 174 echo '/* configured for sparc */' >>./mpi/asm-syntax.h 175 path="sparc32" 176 mpi_extra_modules="udiv" 177 ;; 178 mips[34]*-*-* | \ 179 mips*-*-irix6*) 180 echo '/* configured for MIPS3 */' >>./mpi/asm-syntax.h 181 path="mips3" 182 ;; 183 mips*-*-*) 184 echo '/* configured for MIPS2 */' >>./mpi/asm-syntax.h 185 path="mips2" 186 ;; 187 188 # Motorola 68k configurations. Let m68k mean 68020-68040. 189 # mc68000 or mc68060 configurations need to be specified explicitly 190 m680[234]0*-*-linuxaout* | \ 191 m68k*-*-linuxaout*) 192 echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h 193 cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h 194 path="m68k/mc68020 m68k" 195 ;; 196 m68060*-*-linuxaout*) 197 echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h 198 cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h 199 path="m68k" 200 ;; 201 m680[234]0*-*-linux* | \ 202 m68k*-*-linux*) 203 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 204 cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h 205 ;; 206 m68060*-*-linux*) 207 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 208 cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h 209 path="m68k" 210 ;; 211 m68k-atari-mint) 212 echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h 213 cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h 214 path="m68k/mc68020 m68k" 215 ;; 216 m68000*-*-* | \ 217 m68060*-*-*) 218 echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h 219 cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h 220 path="m68k/mc68000" 221 ;; 222 m680[234]0*-*-* | \ 223 m68k*-*-*) 224 echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h 225 cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h 226 path="m68k/mc68020 m68k" 227 ;; 228 229 powerpc*-*-netbsd* | powerpc*-*-openbsd*) 230 echo '/* configured {Open,Net}BSD on powerpc */' >>./mpi/asm-syntax.h 231 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 232 cat $srcdir/mpi/powerpc32/syntax.h >>./mpi/asm-syntax.h 233 mpi_sflags="-Wa,-mppc" 234 path="powerpc32" 235 ;; 236 237 ppc620-*-* | \ 238 powerpc64*-*-*) 239 mpi_sflags="-Wa,-mppc" 240 path="powerpc64" 241 ;; 242 powerpc*-*-linux*) 243 echo '/* configured for powerpc/ELF */' >>./mpi/asm-syntax.h 244 echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h 245 cat $srcdir/mpi/powerpc32/syntax.h >>./mpi/asm-syntax.h 246 path="powerpc32" 247 ;; 248 249 rs6000-*-aix[456789]* | \ 250 rs6000-*-aix3.2.[456789]) 251 mpi_sflags="-Wa,-mpwr" 252 path="power" 253 mpi_extra_modules="udiv-w-sdiv" 254 ;; 255 rs6000-*-* | \ 256 power-*-* | \ 257 power2-*-*) 258 mpi_sflags="-Wa,-mppc" 259 path="power" 260 mpi_extra_modules="udiv-w-sdiv" 261 ;; 262 powerpc-ibm-aix4.2.* ) 263 # I am not sure about this one but a machine identified by 264 # powerpc-ibm-aix4.2.1.0 cannot use the powerpc32 code. 265 mpi_sflags="-Wa,-mpwr" 266 path="power" 267 mpi_extra_modules="udiv-w-sdiv" 268 ;; 269 ppc601-*-*) 270 mpi_sflags="-Wa,-mppc" 271 path="power powerpc32" 272 ;; 273 ppc60[234]*-*-*) 274 mpi_sflags="-Wa,-mppc" 275 path="powerpc32" 276 ;; 277 powerpc*-*-*) 278 mpi_sflags="-Wa,-mppc" 279 path="powerpc32" 280 ;; 281 *) 282 echo '/* No assembler modules configured */' >>./mpi/asm-syntax.h 283 path="" 284 ;; 285esac 286else 287 echo '/* Assembler modules disabled on request */' >>./mpi/asm-syntax.h 288 path="" 289fi 290 291 292# Make sysdep.h 293echo '/* created by config.links - do not edit */' >./mpi/sysdep.h 294if test x$ac_cv_sys_symbol_underscore = xyes; then 295 cat <<EOF >>./mpi/sysdep.h 296#if __STDC__ 297#define C_SYMBOL_NAME(name) _##name 298#else 299#define C_SYMBOL_NAME(name) _/**/name 300#endif 301EOF 302else 303 cat <<EOF >>./mpi/sysdep.h 304#define C_SYMBOL_NAME(name) name 305EOF 306fi 307 308 309# Figure the required modules out 310mpi_required_modules=$mpi_standard_modules 311if test "$mpi_extra_modules" != ""; then 312 for fn in $mpi_extra_modules; do 313 for i in $mpi_optional_modules; do 314 if test "$fn" = "$i" ; then 315 mpi_required_modules="$mpi_required_modules $fn" 316 fi 317 done 318 done 319fi 320 321# Try to get file to link from the assembler subdirectory and 322# if this fails get it from the generic subdirectory. 323mpi_ln_list= 324mpi_mod_list= 325path=`echo "$mpi_extra_path $path generic" | tr ':' ' '` 326echo '/* Created by config.links - do not edit */' >./mpi/mod-source-info.h 327echo "/* Host: ${host} */" >>./mpi/mod-source-info.h 328echo "static char mod_source_info[] =" >>./mpi/mod-source-info.h 329for fn in $mpi_required_modules ; do 330 fnu=`echo $fn | sed 's/-/_/g'` 331 eval mpi_mod_c_${fnu}=no 332 eval mpi_mod_asm_${fnu}=no 333 for dir in $path ; do 334 rm -f $srcdir/mpi/$fn.[Sc] 335 if test -f $srcdir/mpi/$dir/$fn.S ; then 336 echo " \":$dir/$fn.S\"" >>./mpi/mod-source-info.h 337 mpi_ln_list="$mpi_ln_list mpi/$fn-asm.S:mpi/$dir/$fn.S" 338 eval mpi_mod_asm_${fnu}=yes 339 mpi_mod_list="$mpi_mod_list $fn" 340 break; 341 elif test -f $srcdir/mpi/$dir/$fn.c ; then 342 echo " \":$dir/$fn.c\"" >>./mpi/mod-source-info.h 343 mpi_ln_list="$mpi_ln_list mpi/$fn.c:mpi/$dir/$fn.c" 344 eval mpi_mod_c_${fnu}=yes 345 mpi_mod_list="$mpi_mod_list $fn" 346 break; 347 fi 348 done 349done 350echo " ;" >>./mpi/mod-source-info.h 351 352# Same thing for the file which defines the limb size 353path=`echo "$path generic" | tr ':' ' '` 354for dir in $path ; do 355 rm -f $srcdir/mpi/mpi-asm-defs.h 356 if test -f $srcdir/mpi/$dir/mpi-asm-defs.h ; then 357 mpi_ln_list="$mpi_ln_list mpi/mpi-asm-defs.h:mpi/$dir/mpi-asm-defs.h" 358 break; 359 fi 360done 361