This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Fix Makefile.in in data-directory
On 10/21/2010 10:29 AM, Doug Evans wrote:
On Wed, Oct 20, 2010 at 7:15 PM, Jie Zhang<jie@codesourcery.com> wrote:
I don't think it's really necessary to fix that. binutils and gcc also don't
allow "make -j4 install" to directly after "configure". "make -j4 all
install" also fails for binutils and gcc. I think it's already an convention
that those software are built with
./configure
make
make install
Do we really need the effort to fix GDB?
fwiw, I think the answer is yes.
Note that we don't need to consider ./configure ; make -j4 install.
The issue arises with a simple "$EDITOR foo.c ; make -j4 install".
Reasonable although I never used it before. This is an updated patch
which does that. It fixes it by passing FLAGS_TO_PASS when recursively
make install-only. It fixes my issue. I also tested by touching a source
file and do "make -j4 install" in gdb directory. It behaves as expected.
OK now?
Regards,
--
Jie Zhang
CodeSourcery
* Makefile.in (install): Remove dependency of install-only and
recursively invoke make for install-only.
* data-directory/Makefile.in: Add FLAGS_TO_PASS variable.
(install): Pass FLAGS_TO_PASS when recursively make install-only.
gdbserver/
* Makefile.in: Add FLAGS_TO_PASS variable.
(install): Remove dependency of install-only and recursively
invoke make for install-only.
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.1136
diff -u -p -r1.1136 Makefile.in
--- Makefile.in 6 Oct 2010 16:46:12 -0000 1.1136
+++ Makefile.in 21 Oct 2010 04:22:12 -0000
@@ -970,7 +970,8 @@ gdb.z:gdb.1
# source file and doesn't care about rebuilding or just wants to save the
# time it takes for make to check that all is up to date.
# install-only is intended to address that need.
-install: all install-only
+install: all
+ @$(MAKE) $(FLAGS_TO_PASS) install-only
install-only: $(CONFIG_INSTALL)
transformed_name=`t='$(program_transform_name)'; \
Index: data-directory/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/data-directory/Makefile.in,v
retrieving revision 1.3
diff -u -p -r1.3 Makefile.in
--- data-directory/Makefile.in 13 Oct 2010 20:08:44 -0000 1.3
+++ data-directory/Makefile.in 21 Oct 2010 04:22:12 -0000
@@ -54,6 +54,38 @@ PYTHON_FILES = \
gdb/__init__.py \
gdb/types.py
+FLAGS_TO_PASS = \
+ "prefix=$(prefix)" \
+ "exec_prefix=$(exec_prefix)" \
+ "infodir=$(infodir)" \
+ "datarootdir=$(datarootdir)" \
+ "docdir=$(docdir)" \
+ "htmldir=$(htmldir)" \
+ "pdfdir=$(pdfdir)" \
+ "libdir=$(libdir)" \
+ "mandir=$(mandir)" \
+ "datadir=$(datadir)" \
+ "includedir=$(includedir)" \
+ "against=$(against)" \
+ "DESTDIR=$(DESTDIR)" \
+ "AR=$(AR)" \
+ "AR_FLAGS=$(AR_FLAGS)" \
+ "CC=$(CC)" \
+ "CFLAGS=$(CFLAGS)" \
+ "CXX=$(CXX)" \
+ "CXXFLAGS=$(CXXFLAGS)" \
+ "DLLTOOL=$(DLLTOOL)" \
+ "LDFLAGS=$(LDFLAGS)" \
+ "RANLIB=$(RANLIB)" \
+ "MAKEINFO=$(MAKEINFO)" \
+ "MAKEHTML=$(MAKEHTML)" \
+ "MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \
+ "INSTALL=$(INSTALL)" \
+ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+ "INSTALL_DATA=$(INSTALL_DATA)" \
+ "RUNTEST=$(RUNTEST)" \
+ "RUNTESTFLAGS=$(RUNTESTFLAGS)"
+
.PHONY: all
all: stamp-syscalls stamp-python
@@ -146,7 +178,7 @@ uninstall-python:
# install-only is intended to address that need.
.PHONY: install
install: all
- $(MAKE) install-only
+ @$(MAKE) $(FLAGS_TO_PASS) install-only
.PHONY: install-only
install-only: install-syscalls install-python
Index: gdbserver/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/Makefile.in,v
retrieving revision 1.98
diff -u -p -r1.98 Makefile.in
--- gdbserver/Makefile.in 4 Oct 2010 23:32:40 -0000 1.98
+++ gdbserver/Makefile.in 21 Oct 2010 04:22:12 -0000
@@ -151,6 +151,38 @@ XML_BUILTIN = @srv_xmlbuiltin@
IPA_DEPFILES = @IPA_DEPFILES@
extra_libraries = @extra_libraries@
+FLAGS_TO_PASS = \
+ "prefix=$(prefix)" \
+ "exec_prefix=$(exec_prefix)" \
+ "infodir=$(infodir)" \
+ "datarootdir=$(datarootdir)" \
+ "docdir=$(docdir)" \
+ "htmldir=$(htmldir)" \
+ "pdfdir=$(pdfdir)" \
+ "libdir=$(libdir)" \
+ "mandir=$(mandir)" \
+ "datadir=$(datadir)" \
+ "includedir=$(includedir)" \
+ "against=$(against)" \
+ "DESTDIR=$(DESTDIR)" \
+ "AR=$(AR)" \
+ "AR_FLAGS=$(AR_FLAGS)" \
+ "CC=$(CC)" \
+ "CFLAGS=$(CFLAGS)" \
+ "CXX=$(CXX)" \
+ "CXXFLAGS=$(CXXFLAGS)" \
+ "DLLTOOL=$(DLLTOOL)" \
+ "LDFLAGS=$(LDFLAGS)" \
+ "RANLIB=$(RANLIB)" \
+ "MAKEINFO=$(MAKEINFO)" \
+ "MAKEHTML=$(MAKEHTML)" \
+ "MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \
+ "INSTALL=$(INSTALL)" \
+ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+ "INSTALL_DATA=$(INSTALL_DATA)" \
+ "RUNTEST=$(RUNTEST)" \
+ "RUNTESTFLAGS=$(RUNTESTFLAGS)"
+
# Prevent Sun make from putting in the machine type. Setting
# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1.
.c.o:
@@ -163,7 +195,9 @@ all: gdbserver$(EXEEXT) gdbreplay$(EXEEX
# source file and doesn't care about rebuilding or just wants to save the
# time it takes for make to check that all is up to date.
# install-only is intended to address that need.
-install: all install-only
+install: all
+ @$(MAKE) $(FLAGS_TO_PASS) install-only
+
install-only:
n=`echo gdbserver | sed '$(program_transform_name)'`; \
if [ x$$n = x ]; then n=gdbserver; else true; fi; \