- # 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.
- # so do these separately because I don't trust the order of sed -e expressions.
-
- # the five makefile fragments MUST end up in the resulting Makefile in this order:
- # package macros, target, host, site, and package rules.
-
- if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
-
- # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
- rm -f ${subdir}/${Makefile}.tem
- case "${package_makefile_rules_frag}" in
- "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
- *)
- if [ ! -f ${package_makefile_rules_frag} ] ; then
- package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
- fi
- if [ -f ${package_makefile_rules_frag} ] ; then
- sed -e "/^####/ r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
- else
- echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
- echo '***' is missing in ${PWD=`pwd`}. 1>&2
- cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
- fi
- esac
- # working copy now in ${Makefile}.tem
-
- # Conditionalize for this site.
- rm -f ${Makefile}
- case "${site}" in
- "") mv ${subdir}/Makefile.tem ${Makefile} ;;
- *)
- site_makefile_frag=${srcdir}/config/ms-${site}
-
- if [ -f ${site_makefile_frag} ] ; then
- sed -e "/^####/ r ${site_makefile_frag}" ${subdir}/Makefile.tem \
- > ${Makefile}
- else
- mv ${subdir}/Makefile.tem ${Makefile}
- site_makefile_frag=
- fi
- ;;
- esac
- # working copy now in ${Makefile}
-
- # Conditionalize the makefile for this host.
- rm -f ${subdir}/Makefile.tem
- case "${host_makefile_frag}" in
- "") mv ${Makefile} ${subdir}/Makefile.tem ;;
- *)
- if [ ! -f ${host_makefile_frag} ] ; then
- host_makefile_frag=${srcdir}/${host_makefile_frag}
- fi
- if [ -f ${host_makefile_frag} ] ; then
- sed -e "/^####/ r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
- else
- echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2
- echo '***' is missing in ${PWD=`pwd`}. 1>&2
- mv ${Makefile} ${subdir}/Makefile.tem
- fi
- esac
- # working copy now in ${subdir)/Makefile.tem
-
- # Conditionalize the makefile for this target.
- rm -f ${Makefile}
- case "${target_makefile_frag}" in
- "") mv ${subdir}/Makefile.tem ${Makefile} ;;
- *)
- if [ ! -f ${target_makefile_frag} ] ; then
- target_makefile_frag=${srcdir}/${target_makefile_frag}
- fi
- if [ -f ${target_makefile_frag} ] ; then
- sed -e "/^####/ r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile}
- else
- mv ${subdir}/Makefile.tem ${Makefile}
- target_makefile_frag=
- fi
- ;;
- esac
- # working copy now in ${Makefile}
-
- # Emit the default values of this package's macros.
- rm -f ${subdir}/Makefile.tem
- case "${package_makefile_frag}" in
- "") mv ${Makefile} ${subdir}/Makefile.tem ;;
- *)
- if [ ! -f ${package_makefile_frag} ] ; then
- package_makefile_frag=${srcdir}/${package_makefile_frag}
- fi
- if [ -f ${package_makefile_frag} ] ; then
- sed -e "/^####/ r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
- else
- echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
- echo '***' is missing in ${PWD=`pwd`}. 1>&2
- mv ${Makefile} ${subdir}/Makefile.tem
- fi
- esac
- # real copy now in ${subdir}/Makefile.tem
-
- # prepend warning about editting, and a bunch of variables.
- rm -f ${Makefile}
- cat > ${Makefile} <<EOF
-# ${NO_EDIT}
-VPATH = ${makesrcdir}
-links = ${configlinks}
-host_alias = ${host_alias}
-host_cpu = ${host_cpu}
-host_vendor = ${host_vendor}
-host_os = ${host_os}
-host_canonical = ${host_cpu}-${host_vendor}-${host_os}
-target_alias = ${target_alias}
-target_cpu = ${target_cpu}
-target_vendor = ${target_vendor}
-target_os = ${target_os}
-target_canonical = ${target_cpu}-${target_vendor}-${target_os}
-EOF
- case "${build}" in
- "") ;;
- *) cat >> ${Makefile} << EOF
-build_alias = ${build_alias}
-build_cpu = ${build_cpu}
-build_vendor = ${build_vendor}
-build_os = ${build_os}
-build_canonical = ${build_cpu}-${build_vendor}-${build_os}
-EOF
- esac