[patch] link headers if possible
Neal H. Walfield
neal@walfield.org
Tue Jan 22 00:15:00 GMT 2008
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 $@
More information about the Newlib
mailing list