Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / libgmp / mpn / configure.in
1 # This file is a shell script fragment that supplies the information
2 # necessary for a configure script to process the program in
3 # this directory.  For more information, look at ../configure.
4
5 configdirs=
6 srctrigger=powerpc32
7 srcname="GNU Multi-Precision library/mpn"
8
9 # per-host:
10
11 # per-target:
12
13 case "${target}" in
14   sparc9*-*-* | sparc64*-*-* | ultrasparc*-*-*)
15         #path="sparc64" ;;      Don't use this until compilers are ready
16         path="sparc32/v8 sparc" ;;
17   sparc8*-*-* | microsparc*-*-*)
18         path="sparc32/v8 sparc" ;;
19   supersparc*-*-*)
20         path="sparc32/v8/supersparc sparc32/v8 sparc"
21         extra_functions="udiv" ;;
22   sparc*-*-*) path="sparc32"
23         if [ x$floating_point = xno ]
24           then extra_functions="udiv_nfp"
25           else extra_functions="udiv_fp"
26         fi
27         ;;
28   hppa7000*-*-*) path="hppa/hppa1_1 hppa"; extra_functions="udiv_qrnnd" ;;
29   hppa1.0*-*-*) path="hppa"; extra_functions="udiv_qrnnd" ;;
30   hppa*-*-*)                                    # assume pa7100
31     path="hppa/hppa1_1/pa7100 hppa/hppa1_1 hppa"
32     extra_functions="udiv_qrnnd" ;;
33   cray2-cray-unicos* | [xy]mp-cray-unicos* | [ctj]90-cray-unicos*)
34     path="cray" ;;
35   alphaev5-*-*) path="alpha/ev5 alpha"; extra_functions="udiv_qrnnd" ;;
36   alpha*-*-*) path="alpha"; extra_functions="udiv_qrnnd" ;;
37   am29000*-*-*) path="am29000" ;;
38   a29k*-*-*) path="am29000" ;;
39
40 # Intel x86 configurations
41   i[34]86*-*-linuxaout* | i[34]86*-*-linuxoldld* | \
42   i[34]86*-*-*bsd*)                     # x86 running BSD or Linux with a.out
43         echo '#define BSD_SYNTAX' >asm-syntax.h
44         echo '#include "'$srcdir'/x86/syntax.h"' >>asm-syntax.h
45         path="x86" ;;
46   i[56]86*-*-linuxaout* | pentium-*-linuxaout* | pentiumpro-*-linuxaout* | \
47   i[56]86*-*-linuxoldld* | pentium-*-linuxoldld* | pentiumpro-*-linuxoldld* | \
48   i[56]86*-*-*bsd* | pentium-*-*bsd* | pentiumpro-*-*bsd*)
49         echo '#define BSD_SYNTAX' >asm-syntax.h
50         echo '#include "'$srcdir'/x86/syntax.h"' >>asm-syntax.h
51         path="x86/pentium x86" ;;
52   i[34]86*-*-*)                         # x86 with ELF/SysV format
53         echo '#define ELF_SYNTAX' >asm-syntax.h
54         echo '#include "'$srcdir'/x86/syntax.h"' >>asm-syntax.h
55         path="x86" ;;
56   i[56]86*-*-* | pentium-*-* | pentiumpro-*-*)  # x86 with ELF/SysV format
57         echo '#define ELF_SYNTAX' >asm-syntax.h
58         echo '#include "'$srcdir'/x86/syntax.h"' >>asm-syntax.h
59         path="x86/pentium x86" ;;
60
61 # Motorola 68k configurations.  Let m68k mean 68020-68040.
62 # mc68000 or mc68060 configurations need to be specified explicitly
63   m680[234]0*-*-linuxaout* | m68k*-*-linuxaout*)
64         echo '#define MIT_SYNTAX' >asm-syntax.h
65         echo '#include "'$srcdir'/m68k/syntax.h"' >>asm-syntax.h
66         path="m68k/mc68020 m68k" ;;
67   m68060*-*-linuxaout*)
68         echo '#define MIT_SYNTAX' >asm-syntax.h
69         echo '#include "'$srcdir'/m68k/syntax.h"' >>asm-syntax.h
70         path="m68k" ;;
71   m680[234]0*-*-linux* | m68k*-*-linux*)
72         echo '#define ELF_SYNTAX' >asm-syntax.h
73         echo '#include "'$srcdir'/m68k/syntax.h"' >>asm-syntax.h
74         path="m68k/mc68020 m68k" ;;
75   m68060*-*-linux*)
76         echo '#define ELF_SYNTAX' >asm-syntax.h
77         echo '#include "'$srcdir'/m68k/syntax.h"' >>asm-syntax.h
78         path="m68k" ;;
79   m68000*-*-* | m68060*-*-*)
80         echo '#define MIT_SYNTAX' >asm-syntax.h
81         echo '#include "'$srcdir'/m68k/syntax.h"' >>asm-syntax.h
82         path="m68k/mc68000" ;;
83   m680[234]0*-*-* | m68k*-*-*)
84         echo '#define MIT_SYNTAX' >asm-syntax.h
85         echo '#include "'$srcdir'/m68k/syntax.h"' >>asm-syntax.h
86         path="m68k/mc68020 m68k" ;;
87
88   i960*-*-*) path="i960" ;;
89   m88k*-*-* | m88k*-*-*) path="m88k" ;;
90   m88110*-*-*) path="m88k/mc88110 m88k" ;;
91   ns32k*-*-*) path="n32k" ;;
92   ppc601-*-*) path="power powerpc32" ;;
93   ppc620-*-* | powerpc64*-*-*) path="powerpc64" ;;
94   ppc60[234]*-*-* | powerpc*-*-*) path="powerpc32" ;;
95   pyramid-*-*) path="pyr" ;;
96   rs6000-*-* | power-*-* | power2-*-*)
97     path="power"; extra_functions="udiv_w_sdiv" ;;
98   sh-*-*) path="sh" ;;
99   sh2-*-*) path="sh/sh2 sh" ;;
100   mips[34]*-*-*) path="mips3" ;;
101   mips*-*-irix6*) path="mips3" ;;
102   mips*-*-*) path="mips2" ;;
103   vax*-*-*) path="vax"; extra_functions="udiv_w_sdiv" ;;
104   z8000x*-*-*) path="z8000x"; extra_functions="udiv_w_sdiv" ;;
105   z8000*-*-*) path="z8000"; extra_functions="udiv_w_sdiv" ;;
106   clipper*-*-*) path="clipper" ;;
107   *-*-*) ;;
108 esac
109
110 case "${target}" in
111   *-*-linuxaout* | *-*-linuxoldld*) config=bsd.h ;;
112   *-sysv* | *-solaris* | *-*-linux*) config="sysv.h" ;;
113   *) config="bsd.h" ;;
114 esac
115
116 case "${target}" in
117   i[3456]86*-*-*bsd* | i[3456]86*-*-linuxaout* | i[3456]86*-*-linuxoldld* | \
118   pentium-*-*bsd* | pentium-*-linuxaout* | pentium-*-linuxoldld* | \
119   pentiumpro-*-*bsd* | pentiumpro-*-linuxaout* | pentiumpro-*-linuxoldld*)
120     target_makefile_frag=config/t-oldgas ;;
121   rs6000-*-aix[456789]* | rs6000-*-aix3.2.[456789])
122     target_makefile_frag=config/t-pwr-aix ;;
123   ppc601-*-aix[456789]* | ppc601-*-aix3.2.[456789] | \
124   ppc60[234]*-*-aix[456789]* | ppc60[234]*-*-aix3.2.[456789] | \
125   powerpc*-*-aix[456789]* | powerpc*-*-aix3.2.[456789])
126     target_makefile_frag=config/t-ppc-aix ;;
127 esac
128
129
130 functions="${extra_functions} inlines add_n addmul_1 cmp divmod_1 \
131  divrem divrem_1 dump lshift mod_1 mul mul_1 mul_n random2 rshift sqrtrem \
132  sub_n submul_1 get_str set_str scan0 scan1 popcount hamdist gcd_1 \
133  pre_mod_1 perfsqr bdivmod gcd gcdext"
134
135 path="$path generic"
136 mpn_objects=
137
138 for fn in $functions ; do
139   mpn_objects="$mpn_objects $fn.o"
140   for dir in $path ; do
141     rm -f $fn.[Ssc]
142     if test -f $srcdir/$dir/$fn.S ; then
143       files="$files $dir/$fn.S"
144       links="$links $fn.S"
145       break
146     elif test -f $srcdir/$dir/$fn.s ; then
147       files="$files $dir/$fn.s"
148       links="$links $fn.s"
149       break
150     elif test -f $srcdir/$dir/$fn.c ; then
151       files="$files $dir/$fn.c"
152       links="$links $fn.c"
153       break
154     fi
155   done
156 done
157
158 for dir in $path ; do
159   rm -f gmp-mparam.h
160   if test -f $srcdir/$dir/gmp-mparam.h ; then
161     files="$files $dir/gmp-mparam.h"
162     links="$links gmp-mparam.h"
163     break
164   fi
165 done
166
167 links="sysdep.h $links"
168 files="$config $files"
169
170 mpn_links=$links
171
172 # post-target:
173
174 sed <Makefile >Makefile.tmp \
175   -e "s/MPN_LINKS = .*/MPN_LINKS =${mpn_links}/" \
176   -e "s/MPN_OBJECTS = .*/MPN_OBJECTS =${mpn_objects}/"
177
178 mv Makefile.tmp Makefile