]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Add missing file.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 12 Aug 1999 08:27:50 +0000 (08:27 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 12 Aug 1999 08:27:50 +0000 (08:27 +0000)
git-svn-id: https://svn.dealii.org/trunk@1682 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/common/Make.global_options
deal.II/common/scripts/forward_declarations [new file with mode: 0644]

index 88d519046abae8d21b1567480fdd347dadcd5dc8..30088387c75ab39a32a230de815effe04b37467e 100644 (file)
@@ -19,7 +19,7 @@ CXXFLAGS.g= -ansi -DDEBUG -ggdb -Wall -W -Wconversion \
             $(INCLUDE)
 CXXFLAGS.o= -O2 -Wuninitialized -ffast-math \
             -felide-constructors -fnonnull-objects \
-           -fno-vtable-thunks -ftemplate-depth-32\
+           -fno-vtable-thunks -ftemplate-depth-32 -pg\
             $(INCLUDE)
 
 
diff --git a/deal.II/common/scripts/forward_declarations b/deal.II/common/scripts/forward_declarations
new file mode 100644 (file)
index 0000000..daea0cf
--- /dev/null
@@ -0,0 +1,43 @@
+# rule how to make the file containing all the forward declarations
+# taken from the deal.II Makefile
+#
+# this rule is rather complicated, it works as follows:
+#
+# - if this is the outermost 'make', then create a file $@.old.
+#   if the forward declaration file $@ already exists, then copy
+#   it over, otherwise leave it empty. this way, we always have
+#   a file to run diff on. send the output of the copy command
+#   (which may fail) to nirvana.
+# - write the forward declarations for the presently available
+#   header files to $@.new
+# - we would like to compare the output of the script generating
+#   the forward declarations with the old file, or the empty
+#   string if there is no such file; this is why we created $@.old
+# - if the files differ, we would like to copy over the old file.
+# - this can either be done using shell programming using 'if [...]'
+#   or using conditionals inside 'make'. the first way is not 
+#   portable over different shells, however, and I also do not know
+#   how to write it. the second way has a problem also: conditionals
+#   are evaluated at the time the Makefile is read first, so we
+#   can't compare against $@.old, since this file does not exist at
+#   that time.
+# - we therefore invoke a second 'make', which can compare the two
+#   files against each other in a preconditional clause and
+#   copy over the file if necessary.
+# - delete the two temporary files
+$(forward-declarations): $(filter-out %forward-declarations%,$(h-files))
+ifneq (1,${recursive-make-fwd-decl})
+       @echo ============================ Checking $@
+       @touch $@.old
+       -@cp $@ $@.old > /dev/null 2>&1
+       @perl $D/common/scripts/Make_forward_declarations.pl $(filter-out %forward-declarations.h,$(h-files)) > $@.new
+       @make --silent recursive-make-fwd-decl=1 $@
+       @rm $@.old $@.new
+else
+  ifneq (,$(shell diff $(forward-declarations).old $(forward-declarations).new))
+       @echo ============================ Generating $@
+       @cp $@.new $@
+  else
+       @echo "============================          $@ needs no change"
+  endif
+endif

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.