This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
[patch] link headers if possible
- From: "Neal H. Walfield" <neal at walfield dot org>
- To: newlib at sourceware dot org
- Date: Tue, 22 Jan 2008 00:33:41 +0100
- Subject: [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 $@