This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Missing dependencies?
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: libstdc++ at gcc dot gnu dot org, jlquinn at optonline dot net
- Date: Tue, 14 Jan 2003 00:47:37 -0600
- Subject: Re: Missing dependencies?
> Is there a simple way to make the library rebuild if you touch a
> header/tcc file? It seems like this doesn't work correctly right now.
Yes, this is hellishly annoying.
The include file dependencies are trapped behind a myriad of stamp-* rules.
Here's an example of a way out.
-benjamin
## Makefile for the include subdirectory of the GNU C++ Standard library.
##
## Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in.
## This file is part of the GNU ISO C++ 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 this library; see the file COPYING. If not, write to the Free
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
## USA.
AUTOMAKE_OPTIONS = 1.3 cygnus
MAINT_CHARSET = latin1
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
# Cross compiler and multilib support.
CXX = @glibcpp_CXX@
glibcpp_srcdir=@glibcpp_srcdir@
glibcpp_builddir=@glibcpp_builddir@
std_srcdir = ${glibcpp_srcdir}/include/std
std_builddir = .
std_headers = \
${std_srcdir}/std_algorithm.h \
${std_srcdir}/std_bitset.h \
${std_srcdir}/std_complex.h \
${std_srcdir}/std_deque.h \
${std_srcdir}/std_fstream.h \
${std_srcdir}/std_functional.h \
${std_srcdir}/std_iomanip.h \
${std_srcdir}/std_ios.h \
${std_srcdir}/std_iosfwd.h \
${std_srcdir}/std_iostream.h \
${std_srcdir}/std_istream.h \
${std_srcdir}/std_iterator.h \
${std_srcdir}/std_limits.h \
${std_srcdir}/std_list.h \
${std_srcdir}/std_locale.h \
${std_srcdir}/std_map.h \
${std_srcdir}/std_memory.h \
${std_srcdir}/std_numeric.h \
${std_srcdir}/std_ostream.h \
${std_srcdir}/std_queue.h \
${std_srcdir}/std_set.h \
${std_srcdir}/std_sstream.h \
${std_srcdir}/std_stack.h \
${std_srcdir}/std_stdexcept.h \
${std_srcdir}/std_streambuf.h \
${std_srcdir}/std_string.h \
${std_srcdir}/std_utility.h \
${std_srcdir}/std_valarray.h \
${std_srcdir}/std_vector.h
std_headers_build = \
algorithm \
bitset \
complex \
deque \
fstream \
functional \
iomanip \
ios \
iosfwd \
iostream \
istream \
iterator \
limits \
list \
locale \
map \
memory \
numeric \
ostream \
queue \
set \
sstream \
stack \
stdexcept \
streambuf \
string \
utility \
valarray \
vector
${std_headers_build}: ${std_headers}
for h in ${std_headers}; do \
official_name=`echo $$h | sed -e 's,.*/std_,,' -e 's,\.h$$,,'` ;\
if ! test -f $$official_name; then \
@LN_S@ $$h ./$${official_name} || true; \
fi; \
done
# Here are the rules for building the headers
all-local: ${std_headers_build}
# By adding these files here, automake will remove them for 'make clean'
CLEANFILES = ${std_headers_build}