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