* dsa.c: Unified indentation style.
[libgcrypt.git] / mpi / config.links
1 # config.links - helper for ../configure
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
24 mpi_sflags=
25 mpi_extra_modules=
26
27 test -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.
31 mpi_standard_modules=`$AWK '/^#BEGIN_ASM_LIST/,/^#END_ASM_LIST/ {
32                  if( $3 != "O" ) print $2 }'  $srcdir/mpi/Makefile.am`
33 mpi_optional_modules=`$AWK '/^#BEGIN_ASM_LIST/,/^#END_ASM_LIST/ {
34                  if( $3 == "O" ) print $2 }' $srcdir/mpi/Makefile.am`
35
36
37 echo '/* created by config.links - do not edit */' >./mpi/asm-syntax.h
38
39 if test "$try_asm_modules" = "yes" ; then
40 case "${target}" in
41     i[3467]86*-*-freebsd*-elf  | \
42     i[3467]86*-*-freebsd[3-9]* | \
43     i[3467]86*-*-freebsdelf*   | \
44     i[3467]86*-*-netbsd* )
45        echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
46        cat  $srcdir/mpi/i386/syntax.h      >>./mpi/asm-syntax.h
47        path="i386"
48        ;;
49     i586*-*-freebsd*-elf  | \
50     i586*-*-freebsd[3-9]* | \
51     i586*-*-freebsdelf*   | \
52     i586*-*-netbsd*          | \
53     pentium-*-netbsd*        | \
54     pentiumpro-*-netbsd*)
55        echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
56        cat  $srcdir/mpi/i386/syntax.h      >>./mpi/asm-syntax.h
57        path="i586 i386"
58        ;;
59     i[34]86*-*-bsdi4*)
60        echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
61        cat  $srcdir/mpi/i386/syntax.h    >>./mpi/asm-syntax.h
62        path="i386"
63        ;;
64     i[3467]86*-*-linuxaout*  | \
65     i[3467]86*-*-linuxoldld* | \
66     i[3467]86*-*-*bsd*)
67         echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h
68         echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h
69         cat  $srcdir/mpi/i386/syntax.h      >>./mpi/asm-syntax.h
70         path="i386"
71         ;;
72     i586*-*-linuxaout*  | \
73     i586*-*-linuxoldld* | \
74     i586*-*-*bsd*)
75         echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h
76         echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h
77         cat  $srcdir/mpi/i386/syntax.h      >>./mpi/asm-syntax.h
78         path="i586 i386"
79         ;;
80     i[3467]86*-msdosdjgpp*)
81         echo '#define BSD_SYNTAX'        >>./mpi/asm-syntax.h
82         cat  $srcdir/mpi/i386/syntax.h   >>./mpi/asm-syntax.h
83         path="i386"
84         ;;
85     i586*-msdosdjgpp*)
86         echo '#define BSD_SYNTAX'        >>./mpi/asm-syntax.h
87         cat  $srcdir/mpi/i386/syntax.h   >>./mpi/asm-syntax.h
88         path="i586 i386"
89         ;;
90     i[3467]86*-*-*)
91         echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
92         cat  $srcdir/mpi/i386/syntax.h      >>./mpi/asm-syntax.h
93         path="i386"
94         ;;
95     i586*-*-*  | \
96     pentium-*-*   | \
97     pentiumpro-*-*)
98         echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
99         cat  $srcdir/mpi/i386/syntax.h      >>./mpi/asm-syntax.h
100         path="i586 i386"
101         ;;
102     alpha*-*-*)
103         echo '/* configured for alpha */' >>./mpi/asm-syntax.h
104         path="alpha"
105         mpi_extra_modules="udiv-qrnnd"
106         ;;
107     hppa7000*-*-*)
108         echo '/* configured for HPPA (pa7000) */' >>./mpi/asm-syntax.h
109         path="hppa1.1 hppa"
110         mpi_extra_modules="udiv-qrnnd"
111         ;;
112     hppa1.0*-*-*)
113         echo '/* configured for HPPA 1.0 */' >>./mpi/asm-syntax.h
114         path="hppa"
115         mpi_extra_modules="udiv-qrnnd"
116         ;;
117     hppa*-*-*)  # assume pa7100
118         echo '/* configured for HPPA (pa7100) */' >>./mpi/asm-syntax.h
119         path="pa7100 hppa1.1 hppa"
120         mpi_extra_modules="udiv-qrnnd"
121         ;;
122     sparc64-*-linux-gnu)
123         # An extra rule because we have an report for this one only.
124         # Should be compared against the next GMP version
125         echo '/* configured for sparc64-*-linux-gnu */' >>./mpi/asm-syntax.h
126         path="sparc32v8 sparc32"
127         mpi_extra_modules="udiv"
128         ;;
129     sparc9*-*-*     | \
130     sparc64*-*-*    | \
131     ultrasparc*-*-* )
132         echo '/* configured for sparc9 or higher */' >>./mpi/asm-syntax.h
133         path="sparc32v8 sparc32"
134         ;;
135     sparc8*-*-*     | \
136     microsparc*-*-*)
137         echo '/* configured for sparc8 */' >>./mpi/asm-syntax.h
138         path="sparc32v8 sparc32"
139         ;;
140     supersparc*-*-*)
141         echo '/* configured for supersparc */' >>./mpi/asm-syntax.h
142         path="supersparc sparc32v8 sparc32"
143         mpi_extra_modules="udiv"
144         ;;
145     sparc*-*-*)
146         echo '/* configured for sparc */' >>./mpi/asm-syntax.h
147         path="sparc32"
148         mpi_extra_modules="udiv"
149         ;;
150     mips[34]*-*-* | \
151     mips*-*-irix6*)
152        echo '/* configured for MIPS3 */' >>./mpi/asm-syntax.h
153        path="mips3"
154        ;;
155     mips*-*-*)
156        echo '/* configured for MIPS2 */' >>./mpi/asm-syntax.h
157        path="mips2"
158        ;;
159
160     # Motorola 68k configurations.  Let m68k mean 68020-68040.
161     # mc68000 or mc68060 configurations need to be specified explicitly
162     m680[234]0*-*-linuxaout* | \
163     m68k*-*-linuxaout*)
164         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
165         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
166         path="m68k/mc68020 m68k"
167         ;;
168     m68060*-*-linuxaout*)
169         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
170         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
171         path="m68k"
172         ;;
173     m680[234]0*-*-linux* | \
174     m68k*-*-linux*)
175         echo '#define ELF_SYNTAX'           >>./mpi/asm-syntax.h
176         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
177         ;;
178     m68060*-*-linux*)
179         echo '#define ELF_SYNTAX'           >>./mpi/asm-syntax.h
180         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
181         path="m68k"
182         ;;
183     m68k-atari-mint)
184         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
185         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
186         path="m68k/mc68020 m68k"
187         ;;
188     m68000*-*-* | \
189     m68060*-*-*)
190         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
191         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
192         path="m68k/mc68000"
193         ;;
194     m680[234]0*-*-* | \
195     m68k*-*-*)
196         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
197         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
198         path="m68k/mc68020 m68k"
199         ;;
200
201     powerpc*-*-linux*)
202         echo '/* configured for powerpc/ELF */' >>./mpi/asm-syntax.h
203         echo '#define ELF_SYNTAX'               >>./mpi/asm-syntax.h
204         cat   $srcdir/mpi/powerpc32/syntax.h    >>./mpi/asm-syntax.h
205         path="powerpc32"
206         ;;
207
208     powerpc*-*-netbsd*)
209        echo '/* configured NetBSD on powerpc */' >>./mpi/asm-syntax.h
210        echo '#define ELF_SYNTAX'                 >>./mpi/asm-syntax.h
211        cat   $srcdir/mpi/powerpc32/syntax.h      >>./mpi/asm-syntax.h
212        mpi_sflags="-Wa,-mppc"
213        path="powerpc32"
214        ;;
215
216     rs6000-*-aix[456789]*    | \
217     rs6000-*-aix3.2.[456789])
218         mpi_sflags="-Wa,-mpwr"
219         path="power"
220         mpi_extra_modules="udiv-w-sdiv"
221         ;;
222     rs6000-*-* | \
223     power-*-*  | \
224     power2-*-*)
225         mpi_sflags="-Wa,-mppc"
226         path="power"
227         mpi_extra_modules="udiv-w-sdiv"
228         ;;
229     powerpc-ibm-aix4.2.* )
230         # I am not sure about this one but a machine identified by
231         # powerpc-ibm-aix4.2.1.0 cannot use the powerpc32 code.
232         mpi_sflags="-Wa,-mpwr"
233         path="power"
234         mpi_extra_modules="udiv-w-sdiv"
235         ;;
236     ppc601-*-*)
237         mpi_sflags="-Wa,-mppc"
238         path="power powerpc32"
239         ;;
240     ppc60[234]*-*-* | \
241     powerpc*-*-*)
242         mpi_sflags="-Wa,-mppc"
243         path="powerpc32"
244         ;;
245     ppc620-*-*      | \
246     powerpc64*-*-*)
247         mpi_sflags="-Wa,-mppc"
248         path="powerpc64"
249         ;;
250
251     *)
252         echo '/* No assembler modules configured */' >>./mpi/asm-syntax.h
253         path=""
254         ;;
255 esac
256 else
257     echo '/* Assembler modules disabled on request */' >>./mpi/asm-syntax.h
258     path=""
259 fi
260
261
262 # Make sysdep.h
263 echo '/* created by config.links - do not edit */' >./mpi/sysdep.h
264 if test x$ac_cv_sys_symbol_underscore = xyes; then
265     cat <<EOF >>./mpi/sysdep.h
266 #if __STDC__
267 #define C_SYMBOL_NAME(name) _##name
268 #else
269 #define C_SYMBOL_NAME(name) _/**/name
270 #endif
271 EOF
272 else
273     cat <<EOF >>./mpi/sysdep.h
274 #define C_SYMBOL_NAME(name) name
275 EOF
276 fi
277
278
279 # Figure the required modules out
280 mpi_required_modules=$mpi_standard_modules
281 if test "$mpi_extra_modules" != ""; then
282   for fn in $mpi_extra_modules; do
283       for i in $mpi_optional_modules; do 
284           if test "$fn" = "$i" ; then
285              mpi_required_modules="$mpi_required_modules $fn"
286           fi
287       done
288   done
289 fi
290
291 # try to get file to link from the assembler subdirectory and
292 # if this fails get it from the generic subdirectory.
293 mpi_ln_list=
294 mpi_mod_list=
295 path="$path generic"
296 for fn in $mpi_required_modules ; do
297     fnu=`echo $fn | sed 's/-/_/g'`
298     eval mpi_mod_c_${fnu}=no
299     eval mpi_mod_asm_${fnu}=no
300     for dir in $path ; do
301         rm -f $srcdir/mpi/$fn.[Sc]
302         if test -f $srcdir/mpi/$dir/$fn.S ; then
303             mpi_ln_list="$mpi_ln_list mpi/$fn.S:mpi/$dir/$fn.S"
304             eval mpi_mod_asm_${fnu}=yes
305             mpi_mod_list="$mpi_mod_list $fn"
306             break;
307         elif test -f $srcdir/mpi/$dir/$fn.c ; then
308             mpi_ln_list="$mpi_ln_list mpi/$fn.c:mpi/$dir/$fn.c"
309             eval mpi_mod_c_${fnu}=yes
310             mpi_mod_list="$mpi_mod_list $fn"
311             break;
312         fi
313     done
314 done
315
316 # Same thing for the file which defines the limb size
317 path="$path generic"
318 for dir in $path ; do
319     rm -f $srcdir/mpi/mpi-asm-defs.h
320     if test -f $srcdir/mpi/$dir/mpi-asm-defs.h ; then
321         mpi_ln_list="$mpi_ln_list mpi/mpi-asm-defs.h:mpi/$dir/mpi-asm-defs.h"
322         break;
323     fi
324 done
325