* bithelp.h, des.c, random.c, rndlinux.c, sha1.c, blowfish.c, elgamal.c,
[gnupg.git] / mpi / config.links
1 # config.links - helper for ../configure
2 # Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
3 #
4 # This file is part of GnuPG.
5 #
6 # GnuPG is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10
11 # GnuPG 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 General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # 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
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
32 if test "$try_asm_modules" = "yes" ; then
33 case "${target}" in
34     powerpc-apple-darwin*)
35         echo '/* No working assembler modules available */' >>./mpi/asm-syntax.h
36         path=""
37         ;;
38     i[3467]86*-*-freebsd*-elf  | \
39     i[3467]86*-*-freebsd[3-9]* | \
40     i[3467]86*-*-freebsdelf*   | \
41     i[3467]86*-*-netbsd* )
42        echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
43        cat  $srcdir/mpi/i386/syntax.h      >>./mpi/asm-syntax.h
44        path="i386"
45        ;;
46     i586*-*-freebsd*-elf  | \
47     i586*-*-freebsd[3-9]* | \
48     i586*-*-freebsdelf*   | \
49     i586*-*-netbsd*          | \
50     pentium-*-netbsd*        | \
51     pentiumpro-*-netbsd*)
52        echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
53        cat  $srcdir/mpi/i386/syntax.h      >>./mpi/asm-syntax.h
54        path="i586 i386"
55        ;;
56     i[34]86*-*-bsdi4*)
57        echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
58        cat  $srcdir/mpi/i386/syntax.h    >>./mpi/asm-syntax.h
59        path="i386"
60        ;;
61 # Use old assembler syntax for OpenBSD as their assembler is really old.
62     i[34567]86*-*-openbsd*)
63         echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h
64         echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h
65         cat  $srcdir/mpi/i386-openbsd/syntax.h      >>./mpi/asm-syntax.h
66         path="i386-openbsd"
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         # An extra rule because we have an report for this one only.
128         # Should be compared against the next GMP version
129         echo '/* configured for sparc64-*-linux-gnu */' >>./mpi/asm-syntax.h
130         path="sparc32v8 sparc32"
131         mpi_extra_modules="udiv"
132         ;;
133     sparc64-sun-solaris2*)
134         # Got a report that udiv is missing, so we try this one
135         echo '/* configured for sparc64-sun-solaris2 */' >>./mpi/asm-syntax.h
136         path="sparc32v8 sparc32"
137         mpi_extra_modules="udiv"
138         ;;
139     sparc64-*-netbsd)
140        # There are no sparc64 assembler modules that work, so
141        # just use generic C functions
142        echo '/* configured for sparc64-*netbsd */' >>./mpi/asm-syntax.h
143        path=""
144        ;;
145     sparc9*-*-*     | \
146     sparc64*-*-*    | \
147     ultrasparc*-*-* )
148         echo '/* configured for sparc9 or higher */' >>./mpi/asm-syntax.h
149         path="sparc32v8 sparc32"
150         ;;
151     sparc8*-*-*     | \
152     microsparc*-*-*)
153         echo '/* configured for sparc8 */' >>./mpi/asm-syntax.h
154         path="sparc32v8 sparc32"
155         ;;
156     supersparc*-*-*)
157         echo '/* configured for supersparc */' >>./mpi/asm-syntax.h
158         path="supersparc sparc32v8 sparc32"
159         mpi_extra_modules="udiv"
160         ;;
161     sparc*-*-*)
162         echo '/* configured for sparc */' >>./mpi/asm-syntax.h
163         path="sparc32"
164         mpi_extra_modules="udiv"
165         ;;
166     mips[34]*-*-* | \
167     mips*-*-irix6*)
168        echo '/* configured for MIPS3 */' >>./mpi/asm-syntax.h
169        path="mips3"
170        ;;
171     mips*-*-*)
172        echo '/* configured for MIPS2 */' >>./mpi/asm-syntax.h
173        path="mips2"
174        ;;
175
176     # Motorola 68k configurations.  Let m68k mean 68020-68040.
177     # mc68000 or mc68060 configurations need to be specified explicitly
178     m680[234]0*-*-linuxaout* | \
179     m68k*-*-linuxaout*)
180         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
181         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
182         path="m68k/mc68020 m68k"
183         ;;
184     m68060*-*-linuxaout*)
185         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
186         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
187         path="m68k"
188         ;;
189     m680[234]0*-*-linux* | \
190     m68k*-*-linux*)
191         echo '#define ELF_SYNTAX'           >>./mpi/asm-syntax.h
192         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
193         ;;
194     m68060*-*-linux*)
195         echo '#define ELF_SYNTAX'           >>./mpi/asm-syntax.h
196         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
197         path="m68k"
198         ;;
199     m68k-atari-mint)
200         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
201         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
202         path="m68k/mc68020 m68k"
203         ;;
204     m68000*-*-* | \
205     m68060*-*-*)
206         echo '#define MIT_SYNTAX'           >>./mpi/asm-syntax.h
207         cat  $srcdir/mpi/m68k/syntax.h      >>./mpi/asm-syntax.h
208         path="m68k/mc68000"
209         ;;
210     m680[234]0*-*-* | \
211     m68k*-*-*)
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
217     powerpc*-*-linux*)
218         echo '/* configured for powerpc/ELF */' >>./mpi/asm-syntax.h
219         echo '#define ELF_SYNTAX'               >>./mpi/asm-syntax.h
220         cat   $srcdir/mpi/powerpc32/syntax.h    >>./mpi/asm-syntax.h
221         path="powerpc32"
222         ;;
223
224     powerpc*-*-netbsd* | powerpc*-*-openbsd*)
225        echo '/* configured for {Open,Net}BSD on powerpc */' >>./mpi/asm-syntax.h
226        echo '#define ELF_SYNTAX'                 >>./mpi/asm-syntax.h
227        cat   $srcdir/mpi/powerpc32/syntax.h      >>./mpi/asm-syntax.h
228        mpi_sflags="-Wa,-mppc"
229        path="powerpc32"
230        ;;
231
232     rs6000-*-aix[456789]*    | \
233     rs6000-*-aix3.2.[456789])
234         mpi_sflags="-Wa,-mpwr"
235         path="power"
236         mpi_extra_modules="udiv-w-sdiv"
237         ;;
238     rs6000-*-* | \
239     power-*-*  | \
240     power2-*-*)
241         mpi_sflags="-Wa,-mppc"
242         path="power"
243         mpi_extra_modules="udiv-w-sdiv"
244         ;;
245     powerpc-ibm-aix4.2.* )
246         # I am not sure about this one but a machine identified by
247         # powerpc-ibm-aix4.2.1.0 cannot use the powerpc32 code.
248         mpi_sflags="-Wa,-mpwr"
249         path="power"
250         mpi_extra_modules="udiv-w-sdiv"
251         ;;
252     ppc601-*-*)
253         mpi_sflags="-Wa,-mppc"
254         path="power powerpc32"
255         ;;
256     ppc60[234]*-*-* | \
257     powerpc*-*-*)
258         mpi_sflags="-Wa,-mppc"
259         path="powerpc32"
260         ;;
261     ppc620-*-*      | \
262     powerpc64*-*-*)
263         mpi_sflags="-Wa,-mppc"
264         path="powerpc64"
265         ;;
266
267     *)
268         echo '/* No assembler modules configured */' >>./mpi/asm-syntax.h
269         path=""
270         ;;
271 esac
272 else
273     echo '/* Assembler modules disabled on request */' >>./mpi/asm-syntax.h
274     path=""
275 fi
276
277
278 # Make sysdep.h
279 echo '/* created by config.links - do not edit */' >./mpi/sysdep.h
280 if test x$ac_cv_sys_symbol_underscore = xyes; then
281     cat <<EOF >>./mpi/sysdep.h
282 #if __STDC__
283 #define C_SYMBOL_NAME(name) _##name
284 #else
285 #define C_SYMBOL_NAME(name) _/**/name
286 #endif
287 EOF
288 else
289     cat <<EOF >>./mpi/sysdep.h
290 #define C_SYMBOL_NAME(name) name
291 EOF
292 fi
293
294
295 # fixme: grep these modules from Makefile.in
296 mpi_ln_modules="${mpi_extra_modules} mpih-add1 mpih-mul1 mpih-mul2 mpih-mul3 \
297                  mpih-lshift mpih-rshift mpih-sub1"
298
299 mpi_ln_objects=
300 mpi_ln_list=
301
302 # try to get file to link from the assembler subdirectory and
303 # if this fails get it from the generic subdirectory.
304 path="$path generic"
305 for fn in $mpi_ln_modules ; do
306     mpi_ln_objects="$mpi_ln_objects $fn.o"
307     for dir in $path ; do
308         rm -f $srcdir/mpi/$fn.[Sc]
309         if test -f $srcdir/mpi/$dir/$fn.S ; then
310             mpi_ln_list="$mpi_ln_list mpi/$fn.S:mpi/$dir/$fn.S"
311             break;
312         elif test -f $srcdir/mpi/$dir/$fn.c ; then
313             mpi_ln_list="$mpi_ln_list mpi/$fn.c:mpi/$dir/$fn.c"
314             break;
315         fi
316     done
317 done
318
319 # Same thing for the file which defines the limb size
320 path="$path generic"
321 for dir in $path ; do
322     rm -f $srcdir/mpi/mpi-asm-defs.h
323     if test -f $srcdir/mpi/$dir/mpi-asm-defs.h ; then
324         mpi_ln_list="$mpi_ln_list mpi/mpi-asm-defs.h:mpi/$dir/mpi-asm-defs.h"
325         break;
326     fi
327 done