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