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