This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] link headers if possible


This patch removes one scenario where I've had to run make clean to
make the build system recognize some changes that I've made in the
source tree.  Specifically, it tries first to link header files to
targ-include and only falls back to copying them if that fails.

2008-01-22  Neal H. Walfield  <neal@gnu.org>

	* configure.in: Check for ln -s.
	* Makefile.am (stmp-targ-include): Prefer to link header
	files into the targ-include directory.  Only fallback to
	copying them if that fails.


--- newlib-1.16.0/newlib/configure.in	2007-05-24 19:33:30.000000000 +0200
+++ newlib/newlib/configure.in	2008-01-22 00:06:51.000000000 +0100
@@ -127,6 +127,8 @@ AC_LIBTOOL_WIN32_DLL
 AM_PROG_LIBTOOL
 fi
 
+AC_PROG_LN_S
+
 AC_ARG_ENABLE(newlib_hw_fp,
 [  --enable-newlib-hw-fp    Turn on hardware floating point math],
 [case "${enableval}" in
--- newlib-1.16.0/newlib/Makefile.am	2007-05-24 19:33:29.000000000 +0200
+++ newlib/newlib/Makefile.am	2008-01-22 00:23:46.000000000 +0100
@@ -195,50 +195,51 @@ all-recursive: stmp-targ-include
 stmp-targ-include: config.status
 	-rm -rf targ-include stmp-targ-include
 	mkdir targ-include targ-include/sys targ-include/machine targ-include/bits
-	cp newlib.h targ-include/newlib.h
+	$(LN_S) $(abspath newlib.h) targ-include/newlib.h;
 	-for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/machine/`basename $$i`; \
+	      $(LN_S) $$i targ-include/machine/`basename $$i` \
+		|| cp $$i targ-include/machine/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	-for i in $(srcdir)/libc/machine/$(machine_dir)/sys/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/sys/`basename $$i`; \
+	      $(LN_S) `realpath $$i` targ-include/sys/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	-for i in $(srcdir)/libc/machine/$(machine_dir)/include/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/`basename $$i`; \
+	      $(LN_S) `realpath $$i` targ-include/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	-for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/`basename $$i`; \
+	      $(LN_S) `realpath $$i` targ-include/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	-for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/sys/`basename $$i`; \
+	      $(LN_S) `realpath $$i` targ-include/sys/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	-for i in $(srcdir)/libc/sys/$(sys_dir)/bits/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/bits/`basename $$i`; \
+	      $(LN_S) `realpath $$i` targ-include/bits/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	-for i in $(srcdir)/libc/sys/$(sys_dir)/machine/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/machine/`basename $$i`; \
+	      $(LN_S) `realpath $$i` targ-include/machine/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	-for i in $(srcdir)/libc/sys/$(sys_dir)/machine/$(machine_dir)/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/machine/`basename $$i`; \
+	      $(LN_S) `realpath $$i` targ-include/machine/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	-for i in $(srcdir)/libc/sys/$(sys_dir)/machine/$(machine_dir)/include/*.h; do \
 	    if [ -f $$i ]; then \
-	      cp $$i targ-include/machine/`basename $$i`; \
+	      $(LN_S) `realpath $$i` targ-include/machine/`basename $$i`; \
 	    else true; fi ; \
 	  done
 	touch $@


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]