+2001-08-14 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/Makefile.am: Consolidate target rules. Don't clean stamp
+ files. Tweak target build directory stamp.
+ * include/Makefile.in: Regenerate.
+
2001-08-14 Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* libstdc++-v3/libmath/stubs.c: Fix PR/3988, replace
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
## USA.
-## $Id: Makefile.am,v 1.5 2001/08/13 22:26:08 mmitchel Exp $
+## $Id: Makefile.am,v 1.6 2001/08/14 01:24:28 bkoz Exp $
AUTOMAKE_OPTIONS = 1.3 gnits
MAINT_CHARSET = latin1
# List of all timestamp files. By keeping only one copy of this list, both
# CLEANFILES and all-local are kept up-to-date.
allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext \
- stamp-target stamp-thread stamp-file_model stamp-io \
- stamp-locale stamp-messages_model stamp-codecvt_model
+ stamp-target stamp-thread
# Here are the rules for building the headers
mkdir -p ${std_builddir} ;\
fi ;\
(cd ${std_builddir} && @LN_S@ $? .) ;\
- echo `date` > stamp-std
+ echo `date` > stamp-std
stamp-bits: ${bits_headers}
@if [ ! -d "${bits_builddir}" ]; then \
(cd ${c_base_builddir} && @LN_S@ $? .) ;\
echo `date` > stamp-c_base
-stamp-c_compatibility: ${c_compatibility_headers}
- @if [ ! -d "${c_compatibility_builddir}" ]; then \
- mkdir -p ${c_compatibility_builddir} ;\
- fi ;\
- (cd ${c_compatibility_builddir} && @LN_S@ $? .) ;\
- echo `date` > stamp-c_compatibility
-
stamp-backward: ${backward_headers}
@if [ ! -d "${backward_builddir}" ]; then \
mkdir -p ${backward_builddir} ;\
(cd ${ext_builddir} && @LN_S@ $? .) ;\
echo `date` > stamp-ext
-# Can't use $? in command, otherwise target_builddir will trigger it, and
-# we get bizarre symlinks mazes.
-stamp-target: ${target_headers} ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${target_headers} .) ;\
- echo `date` > stamp-target
-
-stamp-thread: ${thread_headers} ${thread_builddir}
- @echo `date` > stamp-thread
-
-stamp-file_model: ${glibcpp_srcdir}/@BASIC_FILE_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file_model.h) ;\
- echo `date` > stamp-file_model
-
-stamp-io: ${glibcpp_srcdir}/@CSTDIO_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h) ;\
- echo `date` > stamp-io
-
-stamp-locale: ${glibcpp_srcdir}/@CLOCALE_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h) ;\
- echo `date` > stamp-locale
-
-stamp-messages_model: ${glibcpp_srcdir}/@CMESSAGES_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h) ;\
- echo `date` > stamp-messages_model
-
-stamp-codecvt_model: ${glibcpp_srcdir}/@CCODECVT_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h) ;\
- echo `date` > stamp-codecvt_model
-
# This target is special. The timestamp on a directory gets modified
# whenever a file it contains gets modified, and that'll throw off all the
# build dependencies that need this target. On the other hand, someone
-# could delete the directory and not the stamp file, faking out the make.
+# could delete the directory and not the stamp file, faking out make.
${target_builddir}: stamp-${target_alias}
-
stamp-${target_alias}:
@if [ ! -d ${target_builddir} ]; then \
mkdir -p ${target_builddir} ;\
+ echo `date` > stamp-${target_alias} ;\
+ fi
+
+# Target includes static.
+stamp-target: ${target_headers} ${target_builddir}
+ @cd ${target_builddir} ;\
+ if [ ! -f stamp-target ]; then \
+ @LN_S@ $? . ;\
+ @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file_model.h ;\
+ @LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h ;\
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h ;\
+ @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h ;\
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h ;\
+ echo `date` > stamp-target; \
fi
- echo `date` > stamp-${target_alias}
+# Target includes dynamic.
${target_builddir}/c++config.h: ../config.h \
${glibcpp_srcdir}/include/bits/c++config \
${target_builddir}
< ${glibcpp_builddir}/config.h >> $@ ;\
echo "#endif // _CPP_CPPCONFIG_" >>$@
+# Target includes for threads
glibcpp_thread_h = @glibcpp_thread_h@
uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
+stamp-thread: ${thread_headers} ${thread_builddir}
+ @echo `date` > stamp-thread
+
+
${thread_builddir}/gthr.h:
sed -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCPP_\1/g' \
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \
done
# By adding these files here, automake will remove them for 'make clean'
-CLEANFILES = ${allstamps}
+#CLEANFILES = ${allstamps}
+
+
# List of all timestamp files. By keeping only one copy of this list, both
# CLEANFILES and all-local are kept up-to-date.
-allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext stamp-target stamp-thread stamp-file_model stamp-io stamp-locale stamp-messages_model stamp-codecvt_model
+allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext stamp-target stamp-thread
+# Target inludes for threads
glibcpp_thread_h = @glibcpp_thread_h@
uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
# One big happy istallation: just copy everything from the build to the
# install tree (except for the build stamps).
gxx_include_dir = @gxx_include_dir@
-
-# By adding these files here, automake will remove them for 'make clean'
-CLEANFILES = ${allstamps}
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = Makefile.am Makefile.in
mostlyclean-generic:
clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
mkdir -p ${std_builddir} ;\
fi ;\
(cd ${std_builddir} && @LN_S@ $? .) ;\
- echo `date` > stamp-std
+ echo `date` > stamp-std
stamp-bits: ${bits_headers}
@if [ ! -d "${bits_builddir}" ]; then \
(cd ${c_base_builddir} && @LN_S@ $? .) ;\
echo `date` > stamp-c_base
-stamp-c_compatibility: ${c_compatibility_headers}
- @if [ ! -d "${c_compatibility_builddir}" ]; then \
- mkdir -p ${c_compatibility_builddir} ;\
- fi ;\
- (cd ${c_compatibility_builddir} && @LN_S@ $? .) ;\
- echo `date` > stamp-c_compatibility
-
stamp-backward: ${backward_headers}
@if [ ! -d "${backward_builddir}" ]; then \
mkdir -p ${backward_builddir} ;\
(cd ${ext_builddir} && @LN_S@ $? .) ;\
echo `date` > stamp-ext
-# Can't use $? in command, otherwise target_builddir will trigger it, and
-# we get bizarre symlinks mazes.
-stamp-target: ${target_headers} ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${target_headers} .) ;\
- echo `date` > stamp-target
-
-stamp-thread: ${thread_headers} ${thread_builddir}
- @echo `date` > stamp-thread
-
-stamp-file_model: ${glibcpp_srcdir}/@BASIC_FILE_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file_model.h) ;\
- echo `date` > stamp-file_model
-
-stamp-io: ${glibcpp_srcdir}/@CSTDIO_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h) ;\
- echo `date` > stamp-io
-
-stamp-locale: ${glibcpp_srcdir}/@CLOCALE_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h) ;\
- echo `date` > stamp-locale
-
-stamp-messages_model: ${glibcpp_srcdir}/@CMESSAGES_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h) ;\
- echo `date` > stamp-messages_model
-
-stamp-codecvt_model: ${glibcpp_srcdir}/@CCODECVT_H@ ${target_builddir}
- @(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h) ;\
- echo `date` > stamp-codecvt_model
-
# This target is special. The timestamp on a directory gets modified
# whenever a file it contains gets modified, and that'll throw off all the
# build dependencies that need this target. On the other hand, someone
# could delete the directory and not the stamp file, faking out the make.
${target_builddir}: stamp-${target_alias}
-
stamp-${target_alias}:
@if [ ! -d ${target_builddir} ]; then \
mkdir -p ${target_builddir} ;\
+ echo `date` > stamp-${target_alias} ;\
+ fi
+
+# c++config would make these be rebuilt all the time.
+# we get bizarre symlinks mazes.
+stamp-target: ${target_headers} ${target_builddir}
+ @cd ${target_builddir} ;\
+ if [ ! -f stamp-target ]; then \
+ @LN_S@ $? . ;\
+ @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file_model.h ;\
+ @LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h ;\
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h ;\
+ @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h ;\
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h ;\
+ echo `date` > stamp-target; \
fi
- echo `date` > stamp-${target_alias}
${target_builddir}/c++config.h: ../config.h \
${glibcpp_srcdir}/include/bits/c++config \
< ${glibcpp_builddir}/config.h >> $@ ;\
echo "#endif // _CPP_CPPCONFIG_" >>$@
+stamp-thread: ${thread_headers} ${thread_builddir}
+ @echo `date` > stamp-thread
+
${thread_builddir}/gthr.h:
sed -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCPP_\1/g' \
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \
fi ;\
done
+# By adding these files here, automake will remove them for 'make clean'
+#CLEANFILES = ${allstamps}
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: