[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r15843 - in /libdfp/trunk: ChangeLog Makefile.gdb Makefile.in



Author: ryanarn
Date: Wed Nov 16 18:34:55 2011
New Revision: 15843

Log:
Fix Makefiles so that modifying a single test case doesn't require that all of
the tests in the test-suite be rebuilt and rerun.

2011-11-16  Ryan S. Arnold  <rsa@xxxxxxxxxxxxxxxxxx>

	* Makefile.in: Replace erroneous usage of $? with $^.  Fix
	libdfp_tests based rules to correct prerequisite usage so that a
	complete rebuild isn't required when only a few of the test case
	dependencies change.
	* Makefile.gdb: Correct prerequisite usage to not require a complete
	rebuild when only a few of the test case dependencies change.

Modified:
    libdfp/trunk/ChangeLog
    libdfp/trunk/Makefile.gdb
    libdfp/trunk/Makefile.in

Modified: libdfp/trunk/ChangeLog
==============================================================================
--- libdfp/trunk/ChangeLog (original)
+++ libdfp/trunk/ChangeLog Wed Nov 16 18:34:55 2011
@@ -1,3 +1,12 @@
+2011-11-16  Ryan S. Arnold  <rsa@xxxxxxxxxxxxxxxxxx>
+
+	* Makefile.in: Replace erroneous usage of $? with $^.  Fix
+	libdfp_tests based rules to correct prerequisite usage so that a
+	complete rebuild isn't required when only a few of the test case
+	dependencies change.
+	* Makefile.gdb: Correct prerequisite usage to not require a complete
+	rebuild when only a few of the test case dependencies change.
+
 2011-11-15  Ryan S. Arnold  <rsa@xxxxxxxxxxxxxxxxxx>
 
 	* dfp/stdlib.h: Added #include <features.h> to correct include order

Modified: libdfp/trunk/Makefile.gdb
==============================================================================
--- libdfp/trunk/Makefile.gdb (original)
+++ libdfp/trunk/Makefile.gdb Wed Nov 16 18:34:55 2011
@@ -1,6 +1,7 @@
 # These are all used for debugging testcases.  This is sufficiently hackish so
 # it's going into it's own Makefile.
 
+# We only need to regenerated the default .conf file if the Makefile has changed.
 $(top_builddir)/debug-test.conf: Makefile
 	@echo "Generating common debug configuration file $@."
 	@echo 'CC="$(CC)"' > $@
@@ -14,7 +15,8 @@
 	cp $(top_srcdir)/tests/debug-test.sh $(top_builddir)/
 	@echo
 
-$(addsuffix .conf,$(libdfp_tests)):
+# We only need to regenerated the .conf files if the Makefile has changed.
+$(addsuffix .conf,$(libdfp_tests)): Makefile
 	@echo "Generating $@ configuration file."
 	@echo 'GDB_SCRIPT="$(patsubst %.conf,%,$@).gdb"' > $@
 	@echo 'APP="$(patsubst %.conf,%,$@)"' >> $@
@@ -26,8 +28,9 @@
 endif
 	@echo
 
-#$(addsuffix .gdb,$(libdfp_tests)): $(top_builddir)/$(patsubst %.gdb,%,$@)
-$(addsuffix .gdb,$(libdfp_tests)): $(libdfp_tests)
+# These need to be regenerated whenever the test executables change since the
+# address layouts may have changed.
+$(addsuffix .gdb,$(libdfp_tests)): %.gdb:%
 	@echo "Generating GDB script $@"
 	@echo 'source $(top_srcdir)/tests/gdb_start_address.py' > $@
 	@echo 'set environment C -E -x c-header' >> $@

Modified: libdfp/trunk/Makefile.in
==============================================================================
--- libdfp/trunk/Makefile.in (original)
+++ libdfp/trunk/Makefile.in Wed Nov 16 18:34:55 2011
@@ -198,8 +198,8 @@
 # Create the actual file with the version and the .so linker symlink.  The
 # $(SHARED_SONAME_LIB) symlink is created by ldconfig be reading the `soname'
 # from the SHARED_REALNAME_LIB.
-shared: $(top_builddir)/$(SHARED_REALNAME_LIB)  $(top_builddir)/$(SHARED_LINKERNAME_LIB) $(top_builddir)/$(SHARED_SONAME_LIB)
-	@echo +Building shared lib and symlinks: $(notdir $?)
+shared: $(top_builddir)/$(SHARED_REALNAME_LIB) $(top_builddir)/$(SHARED_LINKERNAME_LIB) $(top_builddir)/$(SHARED_SONAME_LIB)
+	@echo +Building shared lib and symlinks: $(notdir $^)
 
 WARNS := -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -Wno-long-long
 C_DEFINES := -D__STDC_DEC_FP__=200704L -D__STDC_WANT_DEC_FP__=1 -DOPTION_EGLIBC_LOCALE_CODE=1 -D_POSIX_C_SOURCE=200809L -std=gnu99 -D_SVID_SOURCE
@@ -226,25 +226,33 @@
 # mechanism will need to be more robust than this.
 $(top_builddir)/$(STATIC_LIB): $(dfp_backend)/$(dfp_backend_lib) $(addsuffix .o,$(libdfp_files))
 	@echo +Creating static library $@
-	$(AR) rc $@ $(wordlist 2,$(words $?),$?) $(top_builddir)/$(dfp_backend)/*.o
+	$(AR) rc $@ $(wordlist 2,$(words $^),$^) $(top_builddir)/$(dfp_backend)/*.o
 	@ranlibpath=`which $(RANLIB)`; \
 	if test -x "$$ranlibpath"; \
 	then $(RANLIB) $@; fi;
 	@echo
 
+# $(AR) rc $@ $(wordlist 2,$(words $?),$?) $(top_builddir)/$(dfp_backend)/*.o
+
 # Create libdfp.so -> libdfp.so.1 symlink.
 $(top_builddir)/$(SHARED_LINKERNAME_LIB): $(top_builddir)/$(SHARED_REALNAME_LIB)
-	@echo "+Creating linker .so symlink $(notdir $@) -> $(notdir $?)"
-	ln -f -s $? $@
-	@echo
+	@echo "+Creating linker .so symlink $(notdir $@) -> $(notdir $<)"
+	ln -f -s $< $@
+	@echo
+
+# @echo "+Creating linker .so symlink $(notdir $@) -> $(notdir $?)"
+#ln -f -s $? $@
 
 # Create libdfp.so.1 -> libdfp-1.0.1.so symlink.
 # The $(SHARED_SONAME_LIB) -> $(SHARED_REALNAME_LIB) symlink is supposed to
 # be created by ldconfig be reading the `soname' from the SHARED_REALNAME_LIB.
 $(top_builddir)/$(SHARED_SONAME_LIB): $(top_builddir)/$(SHARED_REALNAME_LIB)
-	@echo "+Running ldconfig to create the library compat symlink $(notdir $@) -> $(notdir $?)"
-	$(LDCONFIG) -l $(notdir $?)
-	@echo
+	@echo "+Running ldconfig to create the library compat symlink $(notdir $@) -> $(notdir $<)"
+	$(LDCONFIG) -l $(notdir $<)
+	@echo
+
+# @echo "+Running ldconfig to create the library compat symlink $(notdir $@) -> $(notdir $?)"
+# $(LDCONFIG) -l $(notdir $?)
 
 # Build the version tagged 'realname' shared object.  This requires that the
 # $(dfp_name).map file be composed out of individual Versions files.  The
@@ -261,11 +269,13 @@
 # Versions.def defines the package versions.
 $(top_builddir)/Versions.all: $(..)scripts/firstversions.awk \
 			      $(top_srcdir)/Versions.def
-	@echo +Creating $@ by running $(word 1,$?) against $(word 2,$?).
+	@echo +Creating $@ by running $(word 1,$^) against $(word 2,$^).
 	{ cat $(word 2,$^); } | LC_ALL=C $(AWK) -f $< > $@T
 	mv -f $@T $@
 	@echo
 
+# @echo +Creating $@ by running $(word 1,$?) against $(word 2,$?).
+#
 # Versions.sysdeps is a concatenation of all of the sysdep directory Versions
 # files (that accompany a Makefile) and run through sed to strip comments.  We
 # use the wildcard function to verify that there actually is a Versions file
@@ -273,9 +283,11 @@
 # only add internal interfaces.
 $(top_builddir)/Versions.sysdeps: $(top_srcdir)/Versions $(wildcard $(makefile_dirs:%=%Versions))
 	@echo +Scrubbing the following Versions files for comments and concatenating into a single $@ file.
-	sed '/^[        ]*%/!s/#.*$$//;/^[      ]*$$/d;s/^[     ]*%/#/' $? > $@T
+	sed '/^[        ]*%/!s/#.*$$//;/^[      ]*$$/d;s/^[     ]*%/#/' $^ > $@T
 	mv -f $@T $@
 	@echo
+
+# sed '/^[        ]*%/!s/#.*$$//;/^[      ]*$$/d;s/^[     ]*%/#/' $? > $@T
 
 move-if-change = $(SHELL) $(top_srcdir)/scripts/move-if-change
 
@@ -304,12 +316,15 @@
 GLIBC_LIBS := $(glibc_builddir)/libc.so $(glibc_builddir)/math/libm.so $(glibc_builddir)/nptl/libpthread.so
 endif
 
-libdfp_tests = test-printf test-param test-amort test-decode test-quantize test-isnan test-isinf test-isfinite test-fpclassify test-logd test-log10d test-strtod test-numdigits test-get_digits test-round test-bfp-conversions test-stdlib test-wchar
+libdfp_tests = test-printf test-param test-amort test-decode test-quantize \
+	       test-isnan test-isinf test-isfinite test-fpclassify test-logd \
+	       test-log10d test-strtod test-numdigits test-get_digits \
+	       test-round test-bfp-conversions test-stdlib test-wchar
 
 # Explicitly link against the uninstalled GLIBC and the Libdfp.so.1 we just
 # built.
-$(libdfp_tests): %:%.o $(top_builddir)/$(SHARED_SONAME_LIB)
-	$(CC) $(CFLAGS) $(mzarch) $(GLIBC_LIBS) -L$(top_builddir)/ -ldfp $(top_builddir)/$(addsuffix .o,$@) -o $@
+$(libdfp_tests): %:%.os $(top_builddir)/$(SHARED_SONAME_LIB)
+	$(CC) $(CFLAGS) $(mzarch) $(GLIBC_LIBS) -L$(top_builddir)/ -ldfp $(top_builddir)/$(addsuffix .os,$@) -o $@
 	@echo
 
 LIBRARY_PATH = $(glibc_builddir)/:$(glibc_builddir)/math:$(glibc_builddir)/elf:$(glibc_builddir)/nptl
@@ -318,8 +333,7 @@
 # the .gdb files are generated before the tests are run so that they get
 # generated even if the tests fail.  Stderr is piped to the .out file while
 # stdout is dumped to /dev/null.
-#$(addsuffix .out,$(libdfp_tests)): $(libdfp_tests) $(addsuffix .gdb,$(patsubst %.out,%,$@))
-$(addsuffix .out,$(libdfp_tests)): $(libdfp_tests) $(addsuffix .gdb,$(libdfp_tests))
+$(addsuffix .out,$(libdfp_tests)): %.out:% %.gdb
 ifneq ($(glibc_builddir),)
 	ulimit -c unlimited; \
 	GCONV_PATH=$(glibc_builddir)/iconvdata LC_ALL=C \
@@ -341,8 +355,10 @@
 #	$(addsuffix .gdb,$(libdfp_tests)):
 include $(top_srcdir)/Makefile.gdb
 
-# We use debug-test.conf as an input file for some debugging utilities.
-check: $(top_builddir)/debug-test.conf $(addsuffix .conf,$(libdfp_tests)) $(addsuffix .out,$(libdfp_tests)) $(addsuffix .gdb,$(libdfp_tests))
+# We use debug-test.conf as an input file for some debugging utilities.  The
+# .out files are predicated in another rule on the actual test executables, so
+# those are built from those rules.
+check: $(top_builddir)/debug-test.conf $(addsuffix .conf,$(libdfp_tests)) $(addsuffix .out,$(libdfp_tests))
 	@echo +Completed make check
 
 .PHONY: check

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits