mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: kbuild <linux-kbuild@vger.kernel.org>,
	lkml <linux-kernel@vger.kernel.org>
Cc: Sam Ravnborg <sam@ravnborg.org>, David Woodhouse <dwmw2@infradead.org>
Subject: [PATCH 06/24] kbuild: only one call for include/ in make headers_*
Date: Mon, 30 Jun 2008 23:35:00 +0200	[thread overview]
Message-ID: <1214861718-32626-6-git-send-email-sam@ravnborg.org> (raw)
In-Reply-To: <20080630213155.GA32479@uranus.ravnborg.org>

Move it to the top-level file to decide if we install/check
the generic headers or the arch specific headers.

This revealed a long standing bug where "make headers_check_all"
relied on the files in asm/ for the current architecture.
So make headers_check_all is now broken by this commit.

In addition:

o add a simpler way to detect if an arch support
  exporting header files.

o add 'set -e;' so we error out early if
  make headers_check_all fails.

o add sparc64 and cris to arch we do not process
  in make headers_*_all because:

    sparc64 - use sparc to export headers
    cris    - is know seriously broken

Includes suggestions from: David Woodhouse
<dwmw2@infradead.org>.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: David Woodhouse <dwmw2@infradead.org>
---
 Makefile                     |   24 +++++++++++++-----------
 include/Kbuild               |    4 ++--
 scripts/Makefile.headersinst |    9 ---------
 3 files changed, 15 insertions(+), 22 deletions(-)

diff --git a/Makefile b/Makefile
index d676c39..2f087df 100644
--- a/Makefile
+++ b/Makefile
@@ -1000,7 +1000,7 @@ depend dep:
 #Default location for installed headers
 export INSTALL_HDR_PATH = $(objtree)/usr
 
-hdr-filter := generic um ppc
+hdr-filter := generic um ppc sparc64 cris
 hdr-archs  := $(filter-out $(hdr-filter),                           \
                   $(patsubst $(srctree)/include/asm-%/Kbuild,%,     \
                       $(wildcard $(srctree)/include/asm-*/Kbuild)))
@@ -1012,29 +1012,31 @@ __headers: include/linux/version.h scripts_basic FORCE
 
 PHONY += headers_install_all
 headers_install_all: __headers
+	$(Q)$(MAKE) $(hdr-inst)=include
 	$(Q)set -e; for arch in $(hdr-archs); do \
-	 $(MAKE) ARCH=$$arch SRCARCH=$$arch $(hdr-inst)=include \
-	         BIASMDIR=-bi-$$arch ;\
+	 $(MAKE) $(hdr-inst)=include/asm-$$arch   \
+	         SRCARCH=$$arch dst=include/asm-$$arch;  \
 	 done
 
 PHONY += headers_install
 headers_install: __headers
-	$(Q)if [ ! -r $(srctree)/include/asm-$(SRCARCH)/Kbuild ]; then \
-	  echo '*** Error: Headers not exportable for this architecture ($(SRCARCH))'; \
-	  exit 1 ; \
-	fi
-	$(Q)$(MAKE) $(hdr-inst)=include ARCH=$(SRCARCH)
+	$(if $(wildcard $(srctree)/include/asm-$(SRCARCH)/Kbuild),, \
+	$(error Headers not exportable for this architecture ($(SRCARCH))))
+	$(Q)$(MAKE) $(hdr-inst)=include
+	$(Q)$(MAKE) $(hdr-inst)=include/asm-$(SRCARCH) dst=include/asm
 
 PHONY += headers_check_all
 headers_check_all: headers_install_all
+	$(Q)$(MAKE) $(hdr-inst)=include HDRCHECK=1
 	$(Q)set -e; for arch in $(hdr-archs); do \
-	 $(MAKE) ARCH=$$arch SRCARCH=$$arch $(hdr-inst)=include \
-	         BIASMDIR=-bi-$$arch HDRCHECK=1 ;\
+	 $(MAKE) SRCARCH=$$arch $(hdr-inst)=include/asm-$$arch HDRCHECK=1 ;\
 	 done
 
 PHONY += headers_check
 headers_check: headers_install
-	$(Q)$(MAKE) $(hdr-inst)=include ARCH=$(SRCARCH) HDRCHECK=1
+	$(Q)$(MAKE) $(hdr-inst)=include HDRCHECK=1
+	$(Q)$(MAKE) $(hdr-inst)=include/asm-$(SRCARCH) \
+	            dst=include/asm HDRCHECK=1
 
 # ---------------------------------------------------------------------------
 # Modules
diff --git a/include/Kbuild b/include/Kbuild
index b522887..6ae595c 100644
--- a/include/Kbuild
+++ b/include/Kbuild
@@ -1,8 +1,8 @@
+# Top-level Makefile calls into asm-$(ARCH)
+
 header-y += asm-generic/
 header-y += linux/
 header-y += sound/
 header-y += mtd/
 header-y += rdma/
 header-y += video/
-
-header-y += asm-$(ARCH)/
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 599adc6..599503f 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -28,15 +28,6 @@ include $(kbuild-file)
 
 include scripts/Kbuild.include
 
-# If this is include/asm-$(ARCH) then override $(_dst) so that
-# we install to include/asm directly.
-# Unless $(BIASMDIR) is set, in which case we're probably doing
-# a 'headers_install_all' build and we should keep the -$(ARCH)
-# in the directory name.
-ifeq ($(obj),include/asm-$(ARCH)$(BIASMDIR))
-     _dst := include/asm
-endif
-
 install := $(INSTALL_HDR_PATH)/$(_dst)
 
 header-y	:= $(sort $(header-y) $(unifdef-y))
-- 
1.5.6.1.93.gef98


  parent reply	other threads:[~2008-06-30 21:37 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-30 21:31 kbuild - pending stuff, and Maintainer news Sam Ravnborg
2008-06-30 21:34 ` [PATCH 01/24] kbuild: refactor headers_* targets in Makefile Sam Ravnborg
2008-06-30 21:34 ` [PATCH 02/24] kbuild: always unifdef files in headers_install* Sam Ravnborg
2008-06-30 21:34 ` [PATCH 03/24] kbuild: drop support of ALTARCH for headers_* Sam Ravnborg
2008-06-30 21:34 ` [PATCH 04/24] kbuild: code refactoring in Makefile.headerinst Sam Ravnborg
2008-06-30 21:34 ` [PATCH 05/24] kbuild: error out early in make headers_install Sam Ravnborg
2008-06-30 21:35 ` Sam Ravnborg [this message]
2008-06-30 21:35 ` [PATCH 07/24] kbuild: optimize headers_* targets Sam Ravnborg
2008-06-30 21:35 ` [PATCH 08/24] kbuild: make clean removes *.o.* as well Sam Ravnborg
2008-07-01 12:10   ` Jan Engelhardt
2008-07-01 20:21     ` Sam Ravnborg
2008-06-30 21:35 ` [PATCH 09/24] kbuild: install all headers when arch is changed Sam Ravnborg
2008-06-30 21:35 ` [PATCH 10/24] kbuild: prepare headers_* for arch/$ARCH/include Sam Ravnborg
2008-06-30 21:35 ` [PATCH 11/24] kbuild: support arch/$ARCH/include for tags, cscope Sam Ravnborg
2008-06-30 21:35 ` [PATCH 12/24] kbuild: asm symlink support for arch/$ARCH/include Sam Ravnborg
2008-06-30 21:35 ` [PATCH 13/24] kbuild: add arch/$ARCH/include to search path Sam Ravnborg
2008-06-30 21:35 ` [PATCH 15/24] vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section Sam Ravnborg
2008-06-30 21:35 ` [PATCH 16/24] kernel-doc: handle/strip __init Sam Ravnborg
2008-06-30 21:35 ` [PATCH 17/24] kbuild: sparse needs CF not CHECKFLAGS Sam Ravnborg
2008-06-30 21:35 ` [PATCH 18/24] kbuild: remove Module.markers during mrproper Sam Ravnborg
2008-06-30 21:35 ` [PATCH 19/24] kconfig: add diffconfig utility Sam Ravnborg
2008-06-30 21:35 ` [PATCH 20/24] kconfig: set all new symbols automatically Sam Ravnborg
2008-06-30 21:35 ` [PATCH 21/24] kconfig: prefix hex values with 0x in .config Sam Ravnborg
2008-07-01  6:41   ` Ingo Molnar
2008-07-01  8:08     ` Sam Ravnborg
2008-06-30 21:35 ` [PATCH 22/24] kconfig: speed up all*config + randconfig Sam Ravnborg
2008-06-30 21:35 ` [PATCH 23/24] kconfig: make oldconfig is now less chatty Sam Ravnborg
2008-06-30 21:35 ` [PATCH 24/24] kconfig: make defconfig is no longer chatty Sam Ravnborg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1214861718-32626-6-git-send-email-sam@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=dwmw2@infradead.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®