OSDN Git Service

a88fe0a68a051dd512d9ca4728c5d4797816278d
[pf3gnuchains/gcc-fork.git] / libstdc++ / 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 # If the language specific compiler does not exist, but the "gcc" directory 
6 # does, we do not build anything. Note, $r is set by the top-level Makefile.
7 # Note that when we look for the compiler, we search both with and without
8 # extension to handle cross and canadian cross builds. 
9 # Note that if $norecursion is set we're being called from config.status,
10 # so don't check for the compiler; we might be doing a make clean.
11 compiler_name=cc1plus
12 rm -f skip-this-dir
13 if test -n "$r" && [ -z "$norecursion" ] ; then
14   if test -d "$r"/gcc; then
15     if test -f "$r"/gcc/$compiler_name \
16        || test -f "$r"/gcc/$compiler_name.exe; then
17       true
18     else
19       echo "rm -f multilib.out" > skip-this-dir
20     fi
21   fi
22 fi
23
24 if [ "${srcdir}" = "." ] ; then
25   if [ "${with_target_subdir}" != "." ] ; then
26     topsrcdir=${with_multisrctop}../..
27   else
28     topsrcdir=${with_multisrctop}..
29   fi
30 else
31   topsrcdir=${srcdir}/..
32 fi
33
34 if [ -d ${topsrcdir}/gcc ] ; then
35   configdirs="tests testsuite"
36 else
37   configdirs="tests"
38 fi
39 srctrigger=sinst.cc
40 srcname="ANSI C++ library"
41 package_makefile_frag=Make.pack
42 package_makefile_rules_frag=Make.pack.r
43
44 # per-host:
45
46 # per-target:
47
48 echo "# Warning: this fragment is automatically generated" > temp.mt
49 frags=
50
51 # If they didn't specify --enable-shared, don't generate shared libs.
52 case "${enable_shared}" in
53   yes) shared=yes ;;
54   no) shared=no ;;
55   *libstdc++*) shared=yes ;;
56   *) shared=no ;;
57 esac
58
59 if [ "${shared}" = "yes" ]; then
60   case "${target}" in
61     alpha*-*-linux*)    frags=../../config/mh-elfalphapic ;;
62     arm*-*-*)           frags=../../config/mh-armpic ;;
63     hppa*-*-*)          frags=../../config/mh-papic ;;
64     i[3456]86-*-*)      frags=../../config/mh-x86pic ;;
65     powerpc*-*-aix*)    ;;
66     powerpc*-*-*)       frags=../../config/mh-ppcpic ;;
67     sparc*-*-*)         frags=../../config/mh-sparcpic ;;
68     *-*-*)              frags=../../config/mh-${target_cpu}pic ;;
69   esac
70   case "${target}" in
71     *-*-aix*)           frags="${frags} aix.ml" ;;
72     *-*-beos*)          frags="${frags} beos.ml" ;;
73     *-dec-osf*)         frags="${frags} dec-osf.ml";;
74     *-*-freebsd2*)      ;;
75     *-*-freebsd*)       frags="${frags} freebsd.ml" ;;
76     *-*-hpux*)          frags="${frags} hpux.ml" ;;
77     *-*-irix[56]*)      frags="${frags} irix5.ml" ;;
78     *-*-linux*aout*)    ;;
79     *-*-linux*)         frags="${frags} linux.ml" ;;
80     # This must come after *-*-linux*
81     *-*-gnu*)           frags="${frags} gnu.ml" ;;
82     *-*-openbsd*)               frags="${frags} openbsd.ml" ;;
83     *-*-sysv[45]*|*-*-udk*)     frags="${frags} elf.ml" ;;
84     *-*-solaris*)       frags="${frags} sol2shm.ml" ;;
85     *-*-sunos4*)        frags="${frags} sunos4.ml" ;;
86     i[3456]86-*-interix*)       frags="${frags} x86-interix.ml" ;;
87   esac
88 fi
89
90 # Make sure the right flags are defined for multi-threading.
91 case "${target}" in
92   alpha*-*-linux-gnulibc1)      frags="${frags} linux.mt" ;;
93   powerpc*-*-linux-gnulibc1)    frags="${frags} linux.mt" ;;
94   *-*-linux-gnu*)               frags="${frags} linux.mt" ;;
95   *-*-openbsd*)         
96         case "x${enable_threads}" in
97                 xyes|xposix)    frags="${frags} openbsd.mt" ;;
98         esac;;
99   m68k-motorola-sysv)           frags="${frags} delta.mt" ;;
100   *-*-solaris*)
101     case "x${enable_threads}" in
102       xposix)                   frags="${frags} sol2pth.mt" ;;
103       xsolaris)                 frags="${frags} sol2solth.mt" ;;
104     esac ;;
105   *)
106     case "x${enable_threads}" in
107       xposix)                   frags="${frags} posix.mt" ;;
108     esac ;;
109 esac
110
111 for frag in ${frags}; do
112   case ${frag} in
113     ../* )
114       if [ ${srcdir} = . ]; then
115         [ -n "${with_target_subdir}" ] && frag=../${frag}
116         [ -n "${with_multisrctop}" ] && frag=${with_multisrctop}${frag}
117       fi
118       ;;
119   esac
120   frag=${srcdir}/config/$frag
121   if [ -f ${frag} ]; then
122     echo "Appending ${frag} to target-mkfrag"
123     echo "# Following fragment copied from ${frag}" >> temp.mt
124     cat ${frag} >> temp.mt
125   fi
126 done
127
128 target_makefile_frag=target-mkfrag
129 ${moveifchange} temp.mt target-mkfrag
130
131 LIBDIR=yes
132 TO_TOPDIR=../
133 ALL='libs'
134 XCXXINCLUDES="-I${srcdir} -I${srcdir}/stl -I${TO_TOPDIR}libio -I${srcdir}/${TO_TOPDIR}libio"
135 MOSTLYCLEAN='*.o pic stamp-picdir core so_locations $(MOSTLYCLEAN_JUNK)'
136 CLEAN='$(CLEAN_JUNK)'
137 EXTRA_DISTCLEAN='target-mkfrag'
138
139 (. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag}
140
141 . ${topsrcdir}/config.if
142 echo "
143 LIBSTDCXX_INTERFACE=${libstdcxx_interface}
144 CXX_INTERFACE=${cxx_interface}
145 LIBC_INTERFACE=${libc_interface}
146 " >> ${package_makefile_frag}
147
148 # This duplicated the AC_PROG_LN_S macro in GNU autoconf.
149 rm -f conttestdata
150 if ln -s X conftestdata 2>/dev/null
151 then
152   rm -f conftestdata
153   LN_S="ln -s"
154 else
155   LN_S=ln
156 fi
157 echo "
158 LN_S=$LN_S
159 " >> ${package_makefile_frag}
160
161 # post-target:
162
163 # If cross-compiling, we install in $(tooldir)/lib or in $(libsubdir)
164 # depending on --enable-version-specific-runtime-libs.
165 if [ -n "${with_cross_host}" ] ; then
166     rm -f Makefile.tem
167     sed \
168         -e 's|^\([      ]*INSTALLDIR[   ]*=[    ]*\)\$(libdir)|\1$(tooldir)/lib|' \
169         Makefile >Makefile.tem
170     mv -f Makefile.tem Makefile
171 fi
172
173 # enable multilib-ing by default.
174 if [ -z "${enable_multilib}" ]; then
175     enable_multilib=yes
176 fi
177
178 . ${topsrcdir}/config-ml.in
179
180 gxx_include_dir=
181 # Specify the g++ header file directory
182 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
183 if test "${with_gxx_include_dir+set}" = set; then
184   withval="$with_gxx_include_dir"
185   case "${withval}" in
186     yes)
187       echo "configure.in: error: bad value ${withval} given for g++ include directory" 1>&2
188       exit 1
189       ;;
190     no) ;;
191     *)  gxx_include_dir=$with_gxx_include_dir ;;
192   esac
193 fi
194
195 if test x${gxx_include_dir} = x; then
196   if test x${enable_version_specific_runtime_libs} = xyes; then
197     gxx_include_dir='${libsubdir}/include/g++'
198   else
199     gxx_include_dir='${prefix}/include/g++'-${libstdcxx_interface}
200   fi
201 fi
202
203 rm -f Makefile.tem
204 sed -e "s%^gxx_include_dir[     ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \
205        Makefile >Makefile.tem
206 mv -f Makefile.tem Makefile