|
|
|
@ -3,8 +3,6 @@ |
|
|
|
# Configuration script |
|
|
|
# Copyright (C) 1988, 1990, 1991, 1992 Free Software Foundation, Inc. |
|
|
|
|
|
|
|
#This file is part of GNU. |
|
|
|
|
|
|
|
# This program is free software; you can redistribute it and/or modify |
|
|
|
# it under the terms of the GNU General Public License as published by |
|
|
|
# the Free Software Foundation; either version 2 of the License, or |
|
|
|
@ -22,6 +20,8 @@ |
|
|
|
# Please email any bugs, comments, and/or additions to this file to: |
|
|
|
# configure@cygnus.com |
|
|
|
|
|
|
|
# This file was written by K. Richard Pixley. |
|
|
|
|
|
|
|
# |
|
|
|
# Shell script to create proper links to machine-dependent files in |
|
|
|
# preparation for compilation. |
|
|
|
@ -31,9 +31,6 @@ |
|
|
|
# config.status is removed. |
|
|
|
# |
|
|
|
|
|
|
|
# NOTE: This script contains support for a Cygnus experimental feature, called |
|
|
|
# +subdirs, which is currently, tentatively, de-supported. |
|
|
|
|
|
|
|
export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0 $argv; kill $$) |
|
|
|
|
|
|
|
remove=rm |
|
|
|
@ -50,16 +47,14 @@ symbolic_link='ln -s' |
|
|
|
Makefile=Makefile |
|
|
|
Makefile_in=Makefile.in |
|
|
|
arguments=$* |
|
|
|
commontargets= |
|
|
|
configdirs= |
|
|
|
datadir= |
|
|
|
datadiroption= |
|
|
|
defaulttargets= |
|
|
|
exec_prefix= |
|
|
|
exec_prefixoption= |
|
|
|
fatal= |
|
|
|
floating_point=default |
|
|
|
gas=default |
|
|
|
host_alias= |
|
|
|
host_makefile_frag= |
|
|
|
hosts= |
|
|
|
next_host= |
|
|
|
next_prefix= |
|
|
|
next_site= |
|
|
|
@ -69,14 +64,14 @@ next_tmpdir= |
|
|
|
norecursion= |
|
|
|
prefix=/usr/local |
|
|
|
progname= |
|
|
|
recurring= |
|
|
|
removing= |
|
|
|
program_prefix= |
|
|
|
program_prefix_option= |
|
|
|
silent= |
|
|
|
site_makefile_frag= |
|
|
|
srcdir= |
|
|
|
srctrigger= |
|
|
|
target= |
|
|
|
target_alias= |
|
|
|
target_makefile_frag= |
|
|
|
targets= |
|
|
|
undefinedargs= |
|
|
|
verbose= |
|
|
|
version="$Revision$" |
|
|
|
@ -86,40 +81,43 @@ NO_EDIT="This file was generated automatically by configure. Do not edit." |
|
|
|
|
|
|
|
## this is a little touchy and won't always work, but... |
|
|
|
## |
|
|
|
## if the argv[0] starts with a slash then it is an absolute name that can be |
|
|
|
## used as is. |
|
|
|
## if the argv[0] starts with a slash then it is an absolute name that can (and |
|
|
|
## must) be used as is. |
|
|
|
## |
|
|
|
## otherwise, if argv[0] has no slash in it, we can assume that it is on the |
|
|
|
## path. Since PATH might include "." we also add `pwd` to the end of PATH. |
|
|
|
## |
|
|
|
## otherwise we prepend `pwd` to $0 and hope that will give us an absolute |
|
|
|
## path. |
|
|
|
## |
|
|
|
|
|
|
|
PWD=`pwd` |
|
|
|
progname=$0 |
|
|
|
|
|
|
|
if echo $0 | grep '^/' > /dev/null ; then |
|
|
|
progname=$0 |
|
|
|
elif echo $0 | grep '/' > /dev/null ; then |
|
|
|
progname=${PWD}/$0 |
|
|
|
else |
|
|
|
progname=$0 |
|
|
|
case "${progname}" in |
|
|
|
/*) ;; |
|
|
|
*/*) ;; |
|
|
|
*) |
|
|
|
PATH=$PATH:${PWD} ; export PATH |
|
|
|
fi |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
for arg in $*; |
|
|
|
do |
|
|
|
# handle things that might have args following as separate words |
|
|
|
if [ -n "${next_prefix}" ] ; then prefix=${arg} ; prefixoption="-prefix=${prefix}" ; next_prefix= |
|
|
|
elif [ -n "${next_datadir}" ] ; then datadir=${arg} ; datadiroption="-datadir=${datadir}" ; next_datadir= |
|
|
|
elif [ -n "${next_exec_prefix}" ] ; then |
|
|
|
exec_prefix=${arg} |
|
|
|
exec_prefixoption="-exec_prefix=${exec_prefix}" |
|
|
|
next_exec_prefix= |
|
|
|
elif [ -n "${next_site}" ] ; then site=${arg} ; next_site= |
|
|
|
elif [ -n "${next_srcdir}" ] ; then srcdir=${arg} ; next_srcdir= |
|
|
|
elif [ -n "${next_srcdir}" ] ; then srcdir=${arg} ; next_srcdir= |
|
|
|
elif [ -n "${next_program_prefix}" ] ; then |
|
|
|
program_prefix=${arg} |
|
|
|
program_prefixoption="-program_prefix=${program_prefix}" |
|
|
|
next_program_prefix= |
|
|
|
elif [ -n "${next_target}" ] ; then |
|
|
|
next_target= |
|
|
|
case "${targets}" in |
|
|
|
case "${target_alias}" in |
|
|
|
"") |
|
|
|
newtargets="${targets} ${arg}" |
|
|
|
targets="${newtargets}" |
|
|
|
target_alias="${arg}" |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo '***' Can only configure for one target at a time. |
|
|
|
@ -133,12 +131,12 @@ do |
|
|
|
|
|
|
|
else |
|
|
|
case ${arg} in |
|
|
|
-datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* | --da=* | --d=*) |
|
|
|
datadir=`echo ${arg} | sed 's/^[-a-z]*=//'` |
|
|
|
datadiroption=${arg} |
|
|
|
-exec_prefix=* | --exec_prefix=* | --exec_prefi=* | --exec_pref=* | --exec_pre=* | --exec_pr=* | --exec_p=* | --exec_=* | --exec=* | --exe=* | --ex=* | --e=*) |
|
|
|
exec_prefix=`echo ${arg} | sed 's/^[-a-z_]*=//'` |
|
|
|
exec_prefixoption=${arg} |
|
|
|
;; |
|
|
|
-datadir | --datadir | --datadi | --datad | --data | --dat | --da | --d) |
|
|
|
next_datadir=yes |
|
|
|
-exec_prefix | --exec_prefix | --exec_prefi | --exec_pref | --exec_pre | --exec_pr | --exec_p | --exec_ | --exec | --exe | --ex | --e) |
|
|
|
next_exec_prefix=yes |
|
|
|
;; |
|
|
|
-gas | --g*) |
|
|
|
gas=yes |
|
|
|
@ -147,10 +145,9 @@ do |
|
|
|
fatal=true |
|
|
|
;; |
|
|
|
-host=* | --host=* | --hos=* | --ho=*) |
|
|
|
case "${hosts}" in |
|
|
|
case "${host_alias}" in |
|
|
|
"") |
|
|
|
newhosts="${hosts} `echo ${arg} | sed 's/^[-a-z]*=//'`" |
|
|
|
hosts="${newhosts}" |
|
|
|
host_alias="`echo ${arg} | sed 's/^[-a-z]*=//'`" |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo '***' Can only configure for one host at a time. |
|
|
|
@ -164,24 +161,28 @@ do |
|
|
|
-norecursion | --no*) |
|
|
|
norecursion=true |
|
|
|
;; |
|
|
|
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) |
|
|
|
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=*) |
|
|
|
prefix=`echo ${arg} | sed 's/^[-a-z]*=//'` |
|
|
|
prefixoption=${arg} |
|
|
|
;; |
|
|
|
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p) |
|
|
|
-prefix | --prefix | --prefi | --pref | --pre) |
|
|
|
next_prefix=yes |
|
|
|
;; |
|
|
|
-recurring | --recurring | --recurrin | --recurri | --recurr | --recur | --recu | --rec | --re) |
|
|
|
recurring=true |
|
|
|
arguments=`echo ${arguments} | sed "s:${arg}::"` |
|
|
|
-program_prefix=* | --program_prefix=* | --program_prefi=* | --program_pref=* | --program_pre=* | --program_pr=* | --program_p=* | --program_=* | --program=* | --progra=* | --progr=* | --prog=* | --pro=*) |
|
|
|
program_prefix=`echo ${arg} | sed 's/^[-a-z]*=//'` |
|
|
|
program_prefixoption=${arg} |
|
|
|
;; |
|
|
|
-program_prefix | --program_prefix | --program_prefi | --program_pref | --program_pre | --program_pr | --program_p | --program_ | --program | --progra | --progr | --prog | --pro) |
|
|
|
next_program_prefix=yes |
|
|
|
;; |
|
|
|
-rm | --rm) |
|
|
|
removing=${arg} |
|
|
|
-s | -silent | --silent | --silen | --sile | --sil) |
|
|
|
silent=true |
|
|
|
arguments=`echo ${arguments} | sed "s:${arg}::"` |
|
|
|
;; |
|
|
|
-site=* | --site=* | --sit=* | --si=*) |
|
|
|
site=`echo ${arg} | sed 's/^[-a-z]*=//'` |
|
|
|
;; |
|
|
|
-site | --site | --sit | --si) |
|
|
|
-site | --site | --sit) |
|
|
|
next_site=yes |
|
|
|
;; |
|
|
|
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) |
|
|
|
@ -191,11 +192,8 @@ do |
|
|
|
next_srcdir=yes |
|
|
|
;; |
|
|
|
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=*) |
|
|
|
case "${targets}" in |
|
|
|
"") |
|
|
|
newtargets="${targets} `echo ${arg} | sed 's/^[-a-z]*=//'`" |
|
|
|
targets="${newtargets}" |
|
|
|
;; |
|
|
|
case "${target_alias}" in |
|
|
|
"") target_alias="`echo ${arg} | sed 's/^[-a-z]*=//'`" ;; |
|
|
|
*) |
|
|
|
echo '***' Can only configure for one target at a time. |
|
|
|
fatal=yes |
|
|
|
@ -229,8 +227,7 @@ do |
|
|
|
*) |
|
|
|
case "${undefs}" in |
|
|
|
"") |
|
|
|
newundefs="${undefs} ${arg}" |
|
|
|
undefs=${newundefs} |
|
|
|
undefs="${arg}" |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo '***' Can only configure for one host and one target at a time. |
|
|
|
@ -246,7 +243,7 @@ done |
|
|
|
case "${fatal}" in |
|
|
|
"") |
|
|
|
# # Complain if an arg is missing |
|
|
|
# if [ -z "${hosts}" ] ; then |
|
|
|
# if [ -z "${host_alias}" ] ; then |
|
|
|
# (echo ; |
|
|
|
# echo "configure: No HOST specified." ; |
|
|
|
# echo) 1>&2 |
|
|
|
@ -261,23 +258,23 @@ case "${fatal}" in |
|
|
|
### * if no targets are specified, then the unadorned args are targets, but if |
|
|
|
### there were no unadorned args, then the hosts are also targets. |
|
|
|
|
|
|
|
if [ -n "${hosts}" -a -n "${targets}" -a -n "${undefs}" ] ; then |
|
|
|
if [ -n "${host_alias}" -a -n "${target_alias}" -a -n "${undefs}" ] ; then |
|
|
|
echo '***' Can only configure for one host and one target at a time. |
|
|
|
fatal=yes |
|
|
|
elif [ -z "${hosts}" -a -z "${undefs}" ] ; then |
|
|
|
elif [ -z "${host_alias}" -a -z "${undefs}" ] ; then |
|
|
|
echo '***' You must tell me for which host you want to configure. |
|
|
|
fatal=yes |
|
|
|
else |
|
|
|
case "${hosts}" in |
|
|
|
"") hosts=${undefs} ;; |
|
|
|
case "${host_alias}" in |
|
|
|
"") host_alias=${undefs} ;; |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
|
|
|
|
case "${targets}" in |
|
|
|
case "${target_alias}" in |
|
|
|
"") |
|
|
|
case "${undefs}" in |
|
|
|
"") targets=${hosts} ;; |
|
|
|
*) targets=${undefs} ;; |
|
|
|
"") target_alias=${host_alias} ;; |
|
|
|
*) target_alias=${undefs} ;; |
|
|
|
esac |
|
|
|
;; |
|
|
|
*) ;; |
|
|
|
@ -287,22 +284,22 @@ case "${fatal}" in |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
|
|
|
|
if [ -n "${fatal}" -o "${hosts}" = "help" ] ; then |
|
|
|
if [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then |
|
|
|
(echo "Usage: configure HOST" ; |
|
|
|
echo ; |
|
|
|
echo "Options: [defaults in brackets]" ; |
|
|
|
echo " -datadir=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; |
|
|
|
echo " -gas configure the compilers for use with gas. [native as]" ; |
|
|
|
echo " -help print this message. [normal config]" ; |
|
|
|
echo " -lang=LANG configure to build LANG. [gcc]" ; |
|
|
|
echo " -nfp configure the compilers default to soft floating point. [hard float]" ; |
|
|
|
echo " -norecursion configure this directory only. [recurse]" ; |
|
|
|
echo " -prefix=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; |
|
|
|
echo " -rm remove this configuration. [build a configuration]" ; |
|
|
|
echo " -site configure with site specific makefile" ; |
|
|
|
echo " -srcdir=DIR find the sources in DIR. [\".\" or \"..\"]" ; |
|
|
|
echo " -target=TARGET configure for TARGET. [TARGET = HOST]" ; |
|
|
|
echo " -tmpdir=TMPDIR create temporary files in TMPDIR. [ TMPDIR = \"/tmp\" ]" ; |
|
|
|
echo " -exec_prefix=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; |
|
|
|
echo " -gas configure the compilers for use with gas. [native as]" ; |
|
|
|
echo " -help print this message. [normal config]" ; |
|
|
|
echo " -lang=LANG configure to build LANG. [gcc]" ; |
|
|
|
echo " -nfp configure the compilers default to soft floating point. [hard float]" ; |
|
|
|
echo " -norecursion configure this directory only. [recurse]" ; |
|
|
|
echo " -prefix=MYDIR configure for installation of host dependent files into MYDIR. [\"/usr/local\"]" ; |
|
|
|
echo " -program_prefix=FOO install programs with FOO prepended to their names. [ \"\" ]" ; |
|
|
|
echo " -site=SITE configure with site specific makefile for SITE" ; |
|
|
|
echo " -srcdir=DIR find the sources in DIR. [\".\" or \"..\"]" ; |
|
|
|
echo " -target=TARGET configure for TARGET. [TARGET = HOST]" ; |
|
|
|
echo " -tmpdir=TMPDIR create temporary files in TMPDIR. [ TMPDIR = \"/tmp\" ]" ; |
|
|
|
echo ; |
|
|
|
echo "Where HOST and TARGET are something like \"vax\", \"sun3\", \"encore\", etc." ; |
|
|
|
) 1>&2 |
|
|
|
@ -316,7 +313,7 @@ fi |
|
|
|
|
|
|
|
configsub=`echo ${progname} | sed 's/configure$/config.sub/'` |
|
|
|
|
|
|
|
if ${configsub} `echo ${hosts} | sed -e 's/ .*//'` >/dev/null 2>&1 ; then |
|
|
|
if ${configsub} `echo ${host_alias} | sed -e 's/ .*//'` >/dev/null 2>&1 ; then |
|
|
|
true |
|
|
|
else |
|
|
|
echo '***' cannot find config.sub. |
|
|
|
@ -328,17 +325,21 @@ case "${srcdir}" in |
|
|
|
if [ -r configure.in ] ; then |
|
|
|
srcdir=. |
|
|
|
else |
|
|
|
echo '***' "Can't find configure.in. Try using -srcdir=some_dir" |
|
|
|
exit 1 |
|
|
|
if [ -r ${progname}.in ] ; then |
|
|
|
srcdir=`echo ${progname} | sed 's:/configure$::'` |
|
|
|
else |
|
|
|
echo '***' "Can't find configure.in. Try using -srcdir=some_dir" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
fi |
|
|
|
;; |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
# default datadir |
|
|
|
case "${datadir}" in |
|
|
|
"") datadir="$(prefix)/lib" ;; |
|
|
|
# default exec_prefix |
|
|
|
case "${exec_prefix}" in |
|
|
|
"") exec_prefix="${prefix}" ;; |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
|
|
|
|
@ -393,177 +394,153 @@ case "${srctrigger}" in |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
|
|
|
|
for host in ${hosts} ; do |
|
|
|
# Default other arg |
|
|
|
if [ -z "${targets}" -o -n "${defaulttargets}" ] ; then |
|
|
|
targets=${host} |
|
|
|
defaulttargets=true |
|
|
|
fi |
|
|
|
|
|
|
|
host_alias=${host} |
|
|
|
|
|
|
|
result=`${configsub} ${host}` |
|
|
|
host_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` |
|
|
|
host_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` |
|
|
|
host_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` |
|
|
|
host=${host_cpu}-${host_vendor}-${host_os} |
|
|
|
result=`${configsub} ${host_alias}` |
|
|
|
host_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` |
|
|
|
host_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` |
|
|
|
host_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` |
|
|
|
host=${host_cpu}-${host_vendor}-${host_os} |
|
|
|
|
|
|
|
. ${tmpfile}.hst |
|
|
|
. ${tmpfile}.hst |
|
|
|
|
|
|
|
for target in ${targets} ; do |
|
|
|
result=`${configsub} ${target_alias}` |
|
|
|
target_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` |
|
|
|
target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` |
|
|
|
target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` |
|
|
|
target=${target_cpu}-${target_vendor}-${target_os} |
|
|
|
|
|
|
|
target_alias=${target} |
|
|
|
result=`${configsub} ${target}` |
|
|
|
target_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'` |
|
|
|
target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'` |
|
|
|
target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'` |
|
|
|
target=${target_cpu}-${target_vendor}-${target_os} |
|
|
|
|
|
|
|
. ${tmpfile}.tgt |
|
|
|
|
|
|
|
case "${host_alias}" in |
|
|
|
"${target_alias}") subdirname=H-${host_alias} ;; |
|
|
|
*) subdirname=X-${host_alias}-${target_alias} ;; |
|
|
|
esac |
|
|
|
. ${tmpfile}.tgt |
|
|
|
|
|
|
|
case "${namesubdir}" in |
|
|
|
"") ;; |
|
|
|
*) subdirname=${namesubdir} ;; |
|
|
|
esac |
|
|
|
|
|
|
|
case "${removing}" in |
|
|
|
"") |
|
|
|
# Find the source files, if location was not specified. |
|
|
|
case "${srcdir}" in |
|
|
|
"") |
|
|
|
srcdirdefaulted=1 |
|
|
|
srcdir=. |
|
|
|
if [ ! -r ${srctrigger} ] ; then |
|
|
|
srcdir=.. |
|
|
|
fi |
|
|
|
;; |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
# Find the source files, if location was not specified. |
|
|
|
case "${srcdir}" in |
|
|
|
"") |
|
|
|
srcdirdefaulted=1 |
|
|
|
srcdir=. |
|
|
|
if [ ! -r ${srctrigger} ] ; then |
|
|
|
srcdir=.. |
|
|
|
fi |
|
|
|
;; |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
|
|
|
|
if [ ! -r ${srcdir}/${srctrigger} ] ; then |
|
|
|
case "${srcdirdefaulted}" in |
|
|
|
"") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD}/${srcdir}" 1>&2 ;; |
|
|
|
*) echo '***' "${progname}: Can't find ${srcname} sources in ${PWD}/. or ${PWD}/.." 1>&2 ;; |
|
|
|
esac |
|
|
|
if [ ! -r ${srcdir}/${srctrigger} ] ; then |
|
|
|
case "${srcdirdefaulted}" in |
|
|
|
"") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD}/${srcdir}" 1>&2 ;; |
|
|
|
*) echo '***' "${progname}: Can't find ${srcname} sources in ${PWD}/. or ${PWD}/.." 1>&2 ;; |
|
|
|
esac |
|
|
|
|
|
|
|
echo '***' \(At least ${srctrigger} is missing.\) 1>&2 |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
echo '***' \(At least ${srctrigger} is missing.\) 1>&2 |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
# Set up the list of links to be made. |
|
|
|
# ${links} is the list of link names, and ${files} is the list of names to link to. |
|
|
|
# Set up the list of links to be made. |
|
|
|
# ${links} is the list of link names, and ${files} is the list of names to link to. |
|
|
|
|
|
|
|
# Make the links. |
|
|
|
while [ -n "${files}" ] ; do |
|
|
|
# set file to car of files, files to cdr of files |
|
|
|
set ${files}; file=$1; shift; files=$* |
|
|
|
set ${links}; link=$1; shift; links=$* |
|
|
|
# Make the links. |
|
|
|
configlinks="${links}" |
|
|
|
while [ -n "${files}" ] ; do |
|
|
|
# set file to car of files, files to cdr of files |
|
|
|
set ${files}; file=$1; shift; files=$* |
|
|
|
set ${links}; link=$1; shift; links=$* |
|
|
|
|
|
|
|
if [ ! -r ${srcdir}/${file} ] ; then |
|
|
|
echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 |
|
|
|
echo '***' "since the file \"${file}\" does not exist." 1>&2 |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
if [ ! -r ${srcdir}/${file} ] ; then |
|
|
|
echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 |
|
|
|
echo '***' "since the file \"${file}\" does not exist." 1>&2 |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
${remove} -f ${link} |
|
|
|
rm -f config.status |
|
|
|
# Make a symlink if possible, otherwise try a hard link |
|
|
|
${symbolic_link} ${srcdir}/${file} ${link} 2>/dev/null || ${hard_link} ${srcdir}/${file} ${link} |
|
|
|
${remove} -f ${link} |
|
|
|
rm -f config.status |
|
|
|
# Make a symlink if possible, otherwise try a hard link |
|
|
|
${symbolic_link} ${srcdir}/${file} ${link} 2>/dev/null || ${hard_link} ${srcdir}/${file} ${link} |
|
|
|
|
|
|
|
if [ ! -r ${link} ] ; then |
|
|
|
echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2 |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
if [ ! -r ${link} ] ; then |
|
|
|
echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2 |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
case "${verbose}" in |
|
|
|
"") ;; |
|
|
|
*) echo "Linked \"${link}\" to \"${srcdir}/${file}\"." ;; |
|
|
|
esac |
|
|
|
done |
|
|
|
case "${verbose}" in |
|
|
|
"") ;; |
|
|
|
*) echo "Linked \"${link}\" to \"${srcdir}/${file}\"." ;; |
|
|
|
esac |
|
|
|
done |
|
|
|
|
|
|
|
# Create a .gdbinit file which runs the one in srcdir |
|
|
|
# and tells GDB to look there for source files. |
|
|
|
# Create a .gdbinit file which runs the one in srcdir |
|
|
|
# and tells GDB to look there for source files. |
|
|
|
|
|
|
|
if [ -r ${srcdir}/.gdbinit ] ; then |
|
|
|
case ${srcdir} in |
|
|
|
.) |
|
|
|
;; |
|
|
|
*) cat > .gdbinit <<EOF |
|
|
|
if [ -r ${srcdir}/.gdbinit ] ; then |
|
|
|
case ${srcdir} in |
|
|
|
.) |
|
|
|
;; |
|
|
|
*) cat > .gdbinit <<EOF |
|
|
|
# ${NO_EDIT} > .gdbinit |
|
|
|
dir . |
|
|
|
dir ${srcdir} |
|
|
|
source ${srcdir}/.gdbinit |
|
|
|
EOF |
|
|
|
;; |
|
|
|
esac |
|
|
|
fi |
|
|
|
;; |
|
|
|
esac |
|
|
|
fi |
|
|
|
|
|
|
|
# Install a makefile, and make it set VPATH |
|
|
|
# if necessary so that the sources are found. |
|
|
|
# Also change its value of srcdir. |
|
|
|
# NOTE: Makefile generation constitutes the majority of the time in configure. Hence, this section has |
|
|
|
# been somewhat optimized and is perhaps a bit twisty. |
|
|
|
# Install a makefile, and make it set VPATH |
|
|
|
# if necessary so that the sources are found. |
|
|
|
# Also change its value of srcdir. |
|
|
|
# NOTE: Makefile generation constitutes the majority of the time in configure. Hence, this section has |
|
|
|
# been somewhat optimized and is perhaps a bit twisty. |
|
|
|
|
|
|
|
# code is order so as to try to sed the smallest input files we know. |
|
|
|
# code is order so as to try to sed the smallest input files we know. |
|
|
|
|
|
|
|
# the three makefile fragments MUST end up in the resulting Makefile in this order: target, host, and site. |
|
|
|
# so do these separately because I don't trust the order of sed -e expressions. |
|
|
|
# the three makefile fragments MUST end up in the resulting Makefile in this order: target, host, and site. |
|
|
|
# so do these separately because I don't trust the order of sed -e expressions. |
|
|
|
|
|
|
|
# Conditionalize for this site from "Makefile.in" (or whatever it's called) into Makefile.tem |
|
|
|
case "${site}" in |
|
|
|
"") cp ${srcdir}/${Makefile_in} Makefile.tem ;; |
|
|
|
*) |
|
|
|
site_makefile_frag=${srcdir}/config/ms-${site} |
|
|
|
|
|
|
|
if [ -f ${site_makefile_frag} ] ; then |
|
|
|
sed -e "/^####/ r ${site_makefile_frag}" ${srcdir}/${Makefile_in} \ |
|
|
|
>> Makefile.tem |
|
|
|
else |
|
|
|
cp ${srcdir}/${Makefile_in} Makefile.tem |
|
|
|
site_makefile_frag= |
|
|
|
fi |
|
|
|
;; |
|
|
|
esac |
|
|
|
# working copy now in Makefile.tem |
|
|
|
# Conditionalize for this site from "Makefile.in" (or whatever it's called) into Makefile.tem |
|
|
|
case "${site}" in |
|
|
|
"") cp ${srcdir}/${Makefile_in} Makefile.tem ;; |
|
|
|
*) |
|
|
|
site_makefile_frag=${srcdir}/config/ms-${site} |
|
|
|
|
|
|
|
# Conditionalize the makefile for this host. |
|
|
|
case "${host_makefile_frag}" in |
|
|
|
"") mv Makefile.tem ${Makefile} ;; |
|
|
|
*) |
|
|
|
host_makefile_frag=${srcdir}/${host_makefile_frag} |
|
|
|
if [ -f ${host_makefile_frag} ] ; then |
|
|
|
sed -e "/^####/ r ${host_makefile_frag}" Makefile.tem > ${Makefile} |
|
|
|
else |
|
|
|
echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 |
|
|
|
echo '***' is missing in ${PWD}. 1>&2 |
|
|
|
mv Makefile.tem ${Makefile} |
|
|
|
fi |
|
|
|
esac |
|
|
|
# working copy now in ${Makefile} |
|
|
|
|
|
|
|
# Conditionalize the makefile for this target. |
|
|
|
case "${target_makefile_frag}" in |
|
|
|
"") mv ${Makefile} Makefile.tem ;; |
|
|
|
*) |
|
|
|
target_makefile_frag=${srcdir}/${target_makefile_frag} |
|
|
|
if [ -f ${target_makefile_frag} ] ; then |
|
|
|
sed -e "/^####/ r ${target_makefile_frag}" ${Makefile} >> Makefile.tem |
|
|
|
else |
|
|
|
mv ${Makefile} Makefile.tem |
|
|
|
target_makefile_frag= |
|
|
|
fi |
|
|
|
;; |
|
|
|
esac |
|
|
|
# real copy now in Makefile.tem |
|
|
|
if [ -f ${site_makefile_frag} ] ; then |
|
|
|
sed -e "/^####/ r ${site_makefile_frag}" ${srcdir}/${Makefile_in} \ |
|
|
|
> Makefile.tem |
|
|
|
else |
|
|
|
cp ${srcdir}/${Makefile_in} Makefile.tem |
|
|
|
site_makefile_frag= |
|
|
|
fi |
|
|
|
;; |
|
|
|
esac |
|
|
|
# working copy now in Makefile.tem |
|
|
|
|
|
|
|
# Conditionalize the makefile for this host. |
|
|
|
case "${host_makefile_frag}" in |
|
|
|
"") mv Makefile.tem ${Makefile} ;; |
|
|
|
*) |
|
|
|
host_makefile_frag=${srcdir}/${host_makefile_frag} |
|
|
|
if [ -f ${host_makefile_frag} ] ; then |
|
|
|
sed -e "/^####/ r ${host_makefile_frag}" Makefile.tem > ${Makefile} |
|
|
|
else |
|
|
|
echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 |
|
|
|
echo '***' is missing in ${PWD}. 1>&2 |
|
|
|
mv Makefile.tem ${Makefile} |
|
|
|
fi |
|
|
|
esac |
|
|
|
# working copy now in ${Makefile} |
|
|
|
|
|
|
|
# Conditionalize the makefile for this target. |
|
|
|
case "${target_makefile_frag}" in |
|
|
|
"") mv ${Makefile} Makefile.tem ;; |
|
|
|
*) |
|
|
|
target_makefile_frag=${srcdir}/${target_makefile_frag} |
|
|
|
if [ -f ${target_makefile_frag} ] ; then |
|
|
|
sed -e "/^####/ r ${target_makefile_frag}" ${Makefile} > Makefile.tem |
|
|
|
else |
|
|
|
mv ${Makefile} Makefile.tem |
|
|
|
target_makefile_frag= |
|
|
|
fi |
|
|
|
;; |
|
|
|
esac |
|
|
|
# real copy now in Makefile.tem |
|
|
|
|
|
|
|
# prepend warning about editting, and a bunch of variables. |
|
|
|
# fixme-someday: remove the subdir/unsubdir lines. |
|
|
|
cat > ${Makefile} <<EOF |
|
|
|
# prepend warning about editting, and a bunch of variables. |
|
|
|
cat > ${Makefile} <<EOF |
|
|
|
# ${NO_EDIT} |
|
|
|
host_alias = ${host_alias} |
|
|
|
host_cpu = ${host_cpu} |
|
|
|
@ -576,135 +553,144 @@ target_os = ${target_os} |
|
|
|
target_makefile_frag = ${target_makefile_frag} |
|
|
|
host_makefile_frag = ${host_makefile_frag} |
|
|
|
site_makefile_frag = ${site_makefile_frag} |
|
|
|
links = ${configlinks} |
|
|
|
VPATH = ${srcdir} |
|
|
|
subdir = |
|
|
|
unsubdir = . |
|
|
|
EOF |
|
|
|
|
|
|
|
# fixme: this shouldn't be in configure. |
|
|
|
# Define macro CROSS_COMPILE in compilation if this is a cross-compiler. |
|
|
|
case "${host}" in |
|
|
|
"${target}") echo "ALL=all.internal" >> ${Makefile} ;; |
|
|
|
*) |
|
|
|
echo "CROSS=-DCROSS_COMPILE" >> ${Makefile} |
|
|
|
echo "ALL=all.cross" >> ${Makefile} |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
# reset prefix, datadir, srcdir, SUBDIRS, NONSUBDIRS, remove any form |
|
|
|
# feeds. |
|
|
|
sed -e "s:^prefix[ ]*=.*$:prefix = ${prefix}:" \ |
|
|
|
-e "s:^datadir[ ]*=.*$:datadir = ${datadir}:" \ |
|
|
|
-e "s:^srcdir[ ]*=.*$:srcdir = ${srcdir}:" \ |
|
|
|
-e "s:^SUBDIRS[ ]*=.*$:SUBDIRS = ${configdirs}:" \ |
|
|
|
-e "s:^NONSUBDIRS[ ]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \ |
|
|
|
-e "s///" Makefile.tem >> ${Makefile} |
|
|
|
# final copy now in ${Makefile} |
|
|
|
|
|
|
|
rm Makefile.tem |
|
|
|
|
|
|
|
if [ -n "${verbose}" -o -z "${recurring}" ] ; then |
|
|
|
case "${host_makefile_frag}" in |
|
|
|
"") using= ;; |
|
|
|
*) using="and \"${host_makefile_frag}\"" ;; |
|
|
|
esac |
|
|
|
|
|
|
|
case "${target_makefile_frag}" in |
|
|
|
"") ;; |
|
|
|
*) using="${using} and \"${target_makefile_frag}\"" ;; |
|
|
|
esac |
|
|
|
|
|
|
|
case "${site_makefile_frag}" in |
|
|
|
"") ;; |
|
|
|
*) using="${using} and \"${site_makefile_frag}\"" ;; |
|
|
|
esac |
|
|
|
# fixme: this shouldn't be in configure. |
|
|
|
# Define macro CROSS_COMPILE in compilation if this is a cross-compiler. |
|
|
|
case "${host_alias}" in |
|
|
|
"${target_alias}") |
|
|
|
tooldir="$(libdir)" |
|
|
|
echo "ALL=all.internal" >> ${Makefile} |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo "CROSS=-DCROSS_COMPILE" >> ${Makefile} |
|
|
|
echo "ALL=all.cross" >> ${Makefile} |
|
|
|
case "${program_prefix}" in |
|
|
|
"") program_prefix=${target_alias}- ;; |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
|
|
|
|
tooldir="$(libdir)/${target_alias}" |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
echo "Created \"${Makefile}\" in" ${PWD} `echo "${using}" | sed 's/and/using/'` |
|
|
|
fi |
|
|
|
# reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS, remove any form |
|
|
|
# feeds. |
|
|
|
sed -e "s:^prefix[ ]*=.*$:prefix = ${prefix}:" \ |
|
|
|
-e "s:^exec_prefix[ ]*=.*$:exec_prefix = ${exec_prefix}:" \ |
|
|
|
-e "s:^srcdir[ ]*=.*$:srcdir = ${srcdir}:" \ |
|
|
|
-e "s:^SUBDIRS[ ]*=.*$:SUBDIRS = ${configdirs}:" \ |
|
|
|
-e "s:^NONSUBDIRS[ ]*=.*$:NONSUBDIRS = ${noconfigdirs}:" \ |
|
|
|
-e "s///" \ |
|
|
|
-e "s:^program_prefix[ ]*=.*$:program_prefix = ${program_prefix}:" \ |
|
|
|
-e "s:^tooldir[ ]*=.*$:tooldir = ${tooldir}:" \ |
|
|
|
Makefile.tem >> ${Makefile} |
|
|
|
# final copy now in ${Makefile} |
|
|
|
|
|
|
|
rm Makefile.tem |
|
|
|
|
|
|
|
if [ -n "${verbose}" -o -z "${silent}" ] ; then |
|
|
|
case "${host_makefile_frag}" in |
|
|
|
"") using= ;; |
|
|
|
*) using="and \"${host_makefile_frag}\"" ;; |
|
|
|
esac |
|
|
|
|
|
|
|
case "${target_makefile_frag}" in |
|
|
|
"") ;; |
|
|
|
*) using="${using} and \"${target_makefile_frag}\"" ;; |
|
|
|
esac |
|
|
|
|
|
|
|
case "${site_makefile_frag}" in |
|
|
|
"") ;; |
|
|
|
*) using="${using} and \"${site_makefile_frag}\"" ;; |
|
|
|
esac |
|
|
|
|
|
|
|
echo "Created \"${Makefile}\" in" ${PWD} `echo "${using}" | sed 's/and/using/'` |
|
|
|
fi |
|
|
|
|
|
|
|
. ${tmpfile}.pos |
|
|
|
. ${tmpfile}.pos |
|
|
|
|
|
|
|
# describe the chosen configuration in config.status. |
|
|
|
# Make that file a shellscript which will reestablish |
|
|
|
# the same configuration. Used in Makefiles to rebuild |
|
|
|
# Makefiles. |
|
|
|
# describe the chosen configuration in config.status. |
|
|
|
# Make that file a shellscript which will reestablish |
|
|
|
# the same configuration. Used in Makefiles to rebuild |
|
|
|
# Makefiles. |
|
|
|
|
|
|
|
case "${norecursion}" in |
|
|
|
"") arguments="${arguments} -norecursion" ;; |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
case "${norecursion}" in |
|
|
|
"") arguments="${arguments} -norecursion" ;; |
|
|
|
*) ;; |
|
|
|
esac |
|
|
|
|
|
|
|
echo "#!/bin/sh |
|
|
|
echo "#!/bin/sh |
|
|
|
# ${NO_EDIT} |
|
|
|
# ${PWD} was configured as follows: |
|
|
|
${progname}" ${arguments} " |
|
|
|
# ${using}" > config.status |
|
|
|
chmod a+x config.status |
|
|
|
;; |
|
|
|
*) rm -f ${Makefile} config.status ${links} ;; |
|
|
|
chmod a+x config.status |
|
|
|
|
|
|
|
# If there are subdirectories, then recur. |
|
|
|
if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then |
|
|
|
for configdir in ${configdirs} ; do |
|
|
|
case "${verbose}" in |
|
|
|
"") ;; |
|
|
|
*) echo Configuring ${configdir}... ;; |
|
|
|
esac |
|
|
|
|
|
|
|
# If there are subdirectories, then recur. |
|
|
|
if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then |
|
|
|
for configdir in ${configdirs} ; do |
|
|
|
case "${verbose}" in |
|
|
|
"") ;; |
|
|
|
*) echo Configuring ${configdir}... ;; |
|
|
|
esac |
|
|
|
if [ -d ${srcdir}/${configdir} ] ; then |
|
|
|
case "${srcdir}" in |
|
|
|
".") ;; |
|
|
|
*) |
|
|
|
if [ ! -d ./${configdir} ] ; then |
|
|
|
mkdir ./${configdir} |
|
|
|
fi |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
if [ -d ${srcdir}/${configdir} ] ; then |
|
|
|
case "${srcdir}" in |
|
|
|
".") ;; |
|
|
|
*) |
|
|
|
if [ ! -d ./${configdir} ] ; then |
|
|
|
mkdir ./${configdir} |
|
|
|
fi |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
POPDIR=${PWD} |
|
|
|
cd ${configdir} |
|
|
|
|
|
|
|
### figure out what to do with srcdir & guest configure |
|
|
|
case "${srcdir}" in |
|
|
|
".") newsrcdir=${srcdir} ;; # no -srcdir option. We're building in place. |
|
|
|
/*) # absolute path |
|
|
|
newsrcdir=${srcdir}/${configdir} |
|
|
|
srcdiroption="-srcdir=${newsrcdir}" |
|
|
|
;; |
|
|
|
*) # otherwise relative |
|
|
|
newsrcdir=../${srcdir}/${configdir} |
|
|
|
srcdiroption="-srcdir=${newsrcdir}" |
|
|
|
;; |
|
|
|
esac |
|
|
|
POPDIR=${PWD} |
|
|
|
cd ${configdir} |
|
|
|
|
|
|
|
### figure out what to do with srcdir |
|
|
|
case "${srcdir}" in |
|
|
|
".") newsrcdir=${srcdir} ;; # no -srcdir option. We're building in place. |
|
|
|
/*) # absolute path |
|
|
|
newsrcdir=${srcdir}/${configdir} |
|
|
|
srcdiroption="-srcdir=${newsrcdir}" |
|
|
|
;; |
|
|
|
*) # otherwise relative |
|
|
|
newsrcdir=../${srcdir}/${configdir} |
|
|
|
srcdiroption="-srcdir=${newsrcdir}" |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
### check for guested configure, otherwise fix possibly relative progname |
|
|
|
if [ -f ${newsrcdir}/configure ] ; then |
|
|
|
recprog=${newsrcdir}/configure |
|
|
|
else |
|
|
|
case "${progname}" in |
|
|
|
/*) recprog=${progname} ;; |
|
|
|
*) recprog=../${progname} ;; |
|
|
|
esac |
|
|
|
fi |
|
|
|
|
|
|
|
### The recursion line is here. |
|
|
|
if [ -f ${newsrcdir}/configure ] ; then |
|
|
|
recprog=${newsrcdir}/configure |
|
|
|
else |
|
|
|
recprog=${progname} |
|
|
|
fi |
|
|
|
|
|
|
|
if ${recprog} -recurring ${host_alias} -target=${target_alias} \ |
|
|
|
${verbose} ${subdirs} ${removing} ${prefixoption} \ |
|
|
|
${tmpdiroption} ${namesubdiroption} ${datadiroption} \ |
|
|
|
${srcdiroption} ; then |
|
|
|
true |
|
|
|
else |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
cd ${POPDIR} |
|
|
|
else |
|
|
|
case "${verbose}" in |
|
|
|
"") ;; |
|
|
|
*) echo Warning: source directory \"${srcdir}/${configdir}\" is missing. ;; |
|
|
|
esac |
|
|
|
fi |
|
|
|
done |
|
|
|
if ${recprog} -s ${host_alias} -target=${target_alias} \ |
|
|
|
${verbose} ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ |
|
|
|
${srcdiroption} ${program_prefixoption} ; then |
|
|
|
true |
|
|
|
else |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
cd ${POPDIR} |
|
|
|
else |
|
|
|
case "${verbose}" in |
|
|
|
"") ;; |
|
|
|
*) echo Warning: source directory \"${srcdir}/${configdir}\" is missing. ;; |
|
|
|
esac |
|
|
|
fi |
|
|
|
done # for each target |
|
|
|
done # for each host |
|
|
|
done |
|
|
|
fi |
|
|
|
|
|
|
|
### clean up. |
|
|
|
|
|
|
|
|