# Copyright (C) 1993 Free Software Foundation
# 
# This file is part of the GNU IO Library.  This library 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, or (at your option)
# any later version.
# 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with GNU CC; see the file COPYING.  If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

# Significant variables:

test -z "${TO_TOPDIR}" && TO_TOPDIR=${TOLIBGXX}../
DOING_LIBGXX=${DOING_LIBGXX-false}
THIS_FILE="${srcdir}/${TOLIBGXX}config.shared"

echo "# Start of package fragment generated by ${THIS_FILE}."

# TOLIBGXX
# MOSTLYCLEAN
# CLEAN
# DISTCLEAN
# REALCLEAN
# SUBDIRS [defaults to (configdirs)]
# INFO_FILES   List of (basenames of) texinfo files
# INFO_SUBDIRS [default: empty]  sub-directories containing documentation

rootme=${rootme-`pwd`}
TOPDIR=${TOPDIR='$${rootme}'${TO_TOPDIR}}
echo '#' TOPDIR="${TOPDIR} invsubdir=${invsubdir} subdir=${subdir}"
SUBDIRS=${SUBDIRS-${configdirs}}

echo "srcdir = ${srcdir}"
echo "SUBDIRS = ${SUBDIRS}"

echo "prefix = ${prefix-/usr/local}"
echo "exec_prefix = ${exec_prefix-'${prefix}'}"

echo 'bindir = $(exec_prefix)/bin'
echo 'libdir = $(exec_prefix)/lib'

echo 'datadir = $(prefix)/lib'
echo 'mandir = $(prefix)/man'
echo 'man1dir = $(mandir)/man1'
echo 'man2dir = $(mandir)/man2'
echo 'man3dir = $(mandir)/man3'
echo 'man4dir = $(mandir)/man4'
echo 'man5dir = $(mandir)/man5'
echo 'man6dir = $(mandir)/man6'
echo 'man7dir = $(mandir)/man7'
echo 'man8dir = $(mandir)/man8'
echo 'man9dir = $(mandir)/man9'

echo 'infodir = $(prefix)/info'
echo 'includedir = $(prefix)/include'
echo 'gxx_includedir = $(libdir)/g++-include'
echo 'docdir = $(datadir)/doc'
echo ''
echo 'SHELL = /bin/sh'
echo ''
case "$srcdir" in
 /*) echo 'INSTALL = $(srcdir)'/"${TO_TOPDIR}install.sh -c" ;;
 *)  echo 'INSTALL = ${rootme}$(srcdir)'/"${TO_TOPDIR}install.sh -c" ;;
esac
echo 'INSTALL_PROGRAM = $(INSTALL)'
echo 'INSTALL_DATA = $(INSTALL)'
echo ''
echo 'AR = `if [ -f' ${TOPDIR}'binutils/ar ] ; \'
echo "	then echo ${TOPDIR}binutils/ar ; "'\'
echo '	else echo ar ; fi`'
echo 'AR_FLAGS = rc'
echo 'RANLIB = `if [ -f' ${TOPDIR}'binutils/ranlib ] ; \'
echo '	then echo '${TOPDIR}'binutils/ranlib ; \'
echo '	else echo ranlib ; fi`'
echo 'NM = `if [ -f' ${TOPDIR}'binutils/nm ] ; \'
echo '	then echo '${TOPDIR}'binutils/nm ; \'
echo '	else echo nm ; fi`'
echo ''
echo 'MAKEINFO = `if [ -f '${TOPDIR}'texinfo/C/makeinfo ] ; \'
echo '	then echo '${TOPDIR}'texinfo/C/makeinfo ; \'
echo '	else echo makeinfo ; fi`'
echo 'TEXIDIR=${srcdir}/'"${TO_TOPDIR}/texinfo"
echo 'TEXI2DVI = TEXINPUTS=${TEXIDIR}:$$TEXINPUTS texi2dvi'
echo ''
echo 'CC = `if [ -f '${TOPDIR}'gcc/xgcc ] ; \'
echo '	then echo '${TOPDIR}'gcc/xgcc -B'${TOPDIR}'gcc/ ; \'
echo '	else echo cc ; fi`'
echo 'CXX = `if [ -f '${TOPDIR}'gcc/xgcc ] ; \'
echo '	then echo '${TOPDIR}'gcc/xgcc -B'${TOPDIR}'gcc/ ; \'
echo '	else echo gcc ; fi`'
echo ''
echo 'XTRAFLAGS = `if [ -f '${TOPDIR}'gcc/xgcc ] ;\'
echo '	then echo -I'${TOPDIR}'gcc/include;\'
echo '	else echo ; fi`'
# FIXME!!!
if true ; then
  echo 'WRAP_C_INCLUDES ='
else
  echo 'WRAP_C_INCLUDES = -I$(srcdir)'/${TOLIBGXX}g++-include
fi
echo 'CFLAGS = -g'
echo 'CXXFLAGS = -g -O'

if test "${DOING_LIBGXX}" = "true" ; then
  echo 'PROTODIR = $(srcdir)'/${TOLIBGXX}src/gen
  echo "LIBS = ${TOLIBGXX}libg++.a"

  # You can override iostream (e.g. in a site- or host-Makefile fragment) to:
  # iostream (Normal iostream library)
  # old-stream (Old stream library; no longer supported)
  # no-stream (If you don't want iostream to be part of libg++)
  echo 'IO_DIR = ../libio'
  echo '# IO_DIR = no-stream'
fi

if [ -z "${ALL}" ] ; then
  if [ -n "${TARGETLIB}" ] ; then
    ALL='$(TARGETLIB)'
    echo "TARGETLIB = ${TARGETLIB}"
  elif [ -n "${TARGETPROG}" ] ; then
    ALL='${TARGETPROG}'
    echo "TARGETPROG = ${TARGETPROG}"
  else
    echo "config error: neither ALL, TARGETLIB or TARGETPROG is defined" 1>&2
  fi
fi

echo '.PHONY: all'
echo "all: ${ALL}"
if [ "${SUBDIRS}" != "" ] ; then
  echo '	@rootme=`pwd`/; export rootme; \'
  echo '	$(MAKE) "DODIRS=$(SUBDIRS)" DO=all $(FLAGS_TO_PASS) subdir_do'
fi

echo ''


echo
if [ "${SUBDIRS}" != "" ] ; then
  echo '.PHONY: subdir_do'
  echo 'subdir_do: force'
  echo '	@rootme=`pwd`/; export rootme; \'
  echo '	for i in $(DODIRS); do \'
  echo '		if [ -f  ./$$i/Makefile ] ; then \'
  echo '			echo "cd $$i; make $(DO) ..." ; \'
  echo '			(cd $$i ; $(MAKE) $(FLAGS_TO_PASS) $(DO)) || exit 1 ; \'
  echo '		else true ; fi ; \'
  echo '	done'
  echo ''
  echo '# List of variables to pass to sub-makes.  This should not be needed'
  echo '# by GNU make or Sun make (both of which pass command-line variable'
  echo '# overrides thouh $(MAKE)) but may be needed by older versions.'
  echo ''
  echo 'FLAGS_TO_PASS= \'
  echo '	"INSTALL=$(INSTALL)" \'
  echo '	"INSTALL_DATA=$(INSTALL_DATA)" \'
  echo '	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \'
  echo '	"prefix=$(prefix)" \'
  echo '	"exec_prefix=$(exec_prefix)" \'
  echo '	"tooldir=$(tooldir)" \'
  echo '	"AR=$(AR)" \'
  echo '	"AR_FLAGS=$(AR_FLAGS)" \'
  echo '	"CC=$(CC)" \'
  echo '	"CXX=$(CXX)" \'
  echo '	"CFLAGS=$(CFLAGS)" \'
  echo '	"CXXFLAGS=$(CXXFLAGS)" \'
  echo '	"RANLIB=$(RANLIB)" \'
  echo '	"LOADLIBES=$(LOADLIBES)" \'
  echo '	"LDFLAGS=$(LDFLAGS)" \'
  echo '	"MAKEINFO=$(MAKEINFO)" \'
  echo '	"XTRAFLAGS=$(XTRAFLAGS)"'
fi

if test -n "${CXXINCLUDES}" ; then
  echo "CXXINCLUDES = ${CXXINCLUDES}" '$(XTRAFLAGS)'
elif test "${DOING_LIBGXX}" = "true" ; then
  echo "CXXINCLUDES = ${NOSTDINC} -I. -I${TO_TOPDIR}libio"' -I$(srcdir) -I$(srcdir)/'"${TOLIBGXX}"'$(IO_DIR) -I$(srcdir)/'"${TOLIBGXX}src"' $(WRAP_C_INCLUDES) $(XTRAFLAGS)'
fi
if test -n "${CINCLUDES}" ; then
  echo "CINCLUDES = ${CINCLUDES}" '$(XTRAFLAGS)'
elif test "${DOING_LIBGXX}" = "true" ; then
  echo 'CINCLUDES = $(XTRAFLAGS)'
fi

echo '.SUFFIXES: .o .C .cc'
echo '.c.o:'
echo '	$(CC) -c $(CFLAGS) $(CINCLUDES) $<'
[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo '	@touch stamp'
echo '.C.o:'
echo '	$(CXX) -c $(CXXFLAGS) $(CXXINCLUDES) $<'
[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo '	@touch stamp'
echo '.cc.o:'
echo '	$(CXX) -c $(CXXFLAGS) $(CXXINCLUDES) $<'
[ "${TOUCH_ON_COMPILE}" = "yes" ] && echo '	@touch stamp'
echo ''

if [ -n "${TARGETLIB}" ] ; then
  echo TARGETLIB = ${TARGETLIB}
fi
if [ -n "${TARGETPROG}" ] ; then
  echo TARGETPROG = ${TARGETPROG}
fi

echo ''
echo '.PHONY: install'
echo 'install:'
echo '.PHONY: check'
if [ "${CHECK}" != "check" ] ; then
  echo "check: ${ALL} ${CHECK}"
  if [ "${SUBDIRS}" != "" ] ; then
    echo '	@rootme=`pwd`/; export rootme; \'
    echo '	$(MAKE) "DODIRS=$(SUBDIRS)" DO=check $(FLAGS_TO_PASS) subdir_do'
  fi
fi

# Generate rules for documentation (depending on INFO_FILES and INFO_SUBDIRS).

echo '.PHONY: info dvi install-info clean-info'

# emit the rule for 'info'
if [ -z "${INFO_FILES}" ] ; then
  echo 'info:'
else
  echo info: `for file in ${INFO_FILES} ; do echo $file.info ; done`
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
  echo '	@rootme=`pwd`/; export rootme; \
	$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=info $(FLAGS_TO_PASS) subdir_do'
fi

# emit the rule for 'dvi'
if [ -z "${INFO_FILES}" ] ; then
  echo 'dvi:'
else
  echo dvi: `for file in ${INFO_FILES} ; do echo $file.dvi ; done`
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
  echo '	@rootme=`pwd`/; export rootme; \
	$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=dvi $(FLAGS_TO_PASS) subdir_do'
fi

# Emit rules for each *.info and *.dvi file
for file in ${INFO_FILES} ; do
  echo ${file}.info: '$(srcdir)'/${file}.texi
  echo '	$(MAKEINFO) -I$(srcdir) -I$(TEXIDIR) $(srcdir)/'${file}.texi -o ${file}.info
  echo ${file}.dvi: '$(srcdir)'/${file}.texi
  echo '	$(TEXI2DVI) $(srcdir)'/${file}.texi
  echo "${file}.ps: ${file}.dvi"
  echo "	dvips ${file} -o"
done

# emit the rule for install-info
echo 'install-info:'
if [ -n "${INFO_FILES}" ] ; then
  echo '	-parent=`echo $(infodir)|sed -e' "'"'s@/[^/]*$$@@'"'"'`; \'
  echo '	if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi'
  echo '	-if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi'
  echo '	for i in *.info* ; do \'
  echo '	  $(INSTALL_DATA) $$i $(infodir)/$$i ; \'
  echo '	done'
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
  echo '	@rootme=`pwd`/; export rootme; \
	$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=install-info $(FLAGS_TO_PASS) subdir_do'
fi

# emit clean-info and clean-dvi rules
echo '.PHONY: do-clean-info clean-info do-clean-dvi clean-dvi'
echo do-clean-info:
if [ -n "${INFO_FILES}" ] ; then
  echo '	rm -f *.info*'
fi
echo 'do-clean-dvi:'
if [ -n "${INFO_FILES}" ] ; then
  echo '	rm -f *.dvi *.aux *.cp *.fn* *.ky *.log *.pg *.toc *.tp *.vr'
fi
for type in info dvi ; do
  echo clean-${type}: do-clean-${type}
  if [ "${INFO_SUBDIRS}" != "" ] ; then
    echo '	@rootme=`pwd`/; export rootme; \
	$(MAKE) "DODIRS='${NFO_SUBDIRS}'" DO=clean-'${type} '$(FLAGS_TO_PASS) subdir_do'
  fi
done

echo ''

echo '.PHONY: boltcc'
echo 'boltcc:'
echo '	rootme=`pwd`/ ; export rootme ; $(MAKE) $(FLAGS_TO_PASS)'
echo ''

# Emit clean rules

echo ''
echo '# clean rules'

MOSTLYCLEAN="${MOSTLYCLEAN-*.o core} `if test -n "${TOUCH_ON_COMPILE}"; then echo stamp; else true; fi`"
CLEAN="${CLEAN-${TARGETPROG} ${TARGETLIB}}"
DISTCLEAN="${DISTCLEAN-config.status Makefile *~ Make.pack}"
REALCLEAN="${REALCLEAN-depend *.info*}"


echo '.PHONY: mostlyclean clean distclean realclean'
if test -z "${SUBDIRS}" ; then
  echo "mostlyclean: clean-dvi"
  echo "	rm -rf ${MOSTLYCLEAN}"
  echo "clean: clean-dvi"
  echo "	rm -rf ${MOSTLYCLEAN} ${CLEAN}"
  echo "distclean: clean"
  echo "	rm -rf ${DISTCLEAN}"
  echo "realclean: clean clean-info"
  echo "	rm -rf ${DISTCLEAN} ${REALCLEAN}"
else
  echo '.PHONY: do-clean subdir_distclean subdir_realclean'
  echo "mostlyclean: do-clean-dvi"
  echo "	rm -rf ${MOSTLYCLEAN}"
  echo '	@$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=mostlyclean subdir_do'
  echo "do-clean: do-clean-dvi"
  echo "	rm -rf ${MOSTLYCLEAN} ${CLEAN}"
  echo "clean: do-clean"
  echo '	@$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=clean subdir_do'
  # distclean and realclean are tricky because they remove the Makefile.
  echo "subdir_distclean:"
  echo '	@$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=distclean subdir_do'
  echo "distclean: do-clean subdir_distclean"
  echo "	rm -rf ${DISTCLEAN}"
  echo "subdir_realclean:"
  echo '	@$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=realclean subdir_do'
  echo "realclean: do-clean subdir_realclean do-clean-info"
  echo "	rm -rf ${DISTCLEAN} ${REALCLEAN}"
fi

echo ''
echo '.PHONY: force'
echo 'force:'
echo ''
echo '# with the gnu make, this is done automatically.'
echo ''
echo 'Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)'
echo '	$(SHELL) ./config.status'
echo ''
echo '.NOEXPORT:'
echo 'MAKEOVERRIDES='

if [ -f ${srcdir}/${subdir}/depend ] ; then
  cat ${srcdir}/${subdir}/depend
fi

echo "# End of package fragment generated by ${THIS_FILE}."
