提交 398477d4 编写于 作者: L Linus Torvalds

Merge git://git.infradead.org/~dwmw2/khdrs-2.6

* git://git.infradead.org/~dwmw2/khdrs-2.6:
  New 'make headers_install_all' target.
  Use dependencies for 'make headers_install'.
  [S390] Unexport <asm/z90crypt.h>, export <asm/zcrypt.h> in its place.
  Remove dead netfilter_logging.h from include/linux/Kbuild
  Remove offsetof() from user-visible <linux/stddef.h>
  Clean up exported headers on CRIS
  Fix v850 exported headers
  Don't advertise (or allow) headers_{install,check} where inappropriate.
  Remove UML header export
  Remove ARM26 header export.
  Fix H8300 exported headers.
  Fix m68knommu exported headers
  Fix exported headers for SPARC, SPARC64
  Fix 'make headers_check' on m32r
  Fix 'make headers_check' on sh64
  Fix 'make headers_check' on sh
  [HEADERS] Fix ARM 'make headers_check'

Initial pass of manual conflict resolution in top-level Makefile over
conflicting build rule and headers_install changes.
......@@ -921,8 +921,20 @@ depend dep:
INSTALL_HDR_PATH=$(objtree)/usr
export INSTALL_HDR_PATH
HDRARCHES=$(filter-out generic,$(patsubst $(srctree)/include/asm-%/Kbuild,%,$(wildcard $(srctree)/include/asm-*/Kbuild)))
PHONY += headers_install_all
headers_install_all: include/linux/version.h scripts_basic FORCE
$(Q)$(MAKE) $(build)=scripts scripts/unifdef
$(Q)for arch in $(HDRARCHES); do \
$(MAKE) ARCH=$$arch -f $(srctree)/scripts/Makefile.headersinst obj=include BIASMDIR=-bi-$$arch ;\
done
PHONY += headers_install
headers_install: include/linux/version.h scripts_basic FORCE
@if [ ! -r include/asm-$(ARCH)/Kbuild ]; then \
echo '*** Error: Headers not exportable for this architecture ($(ARCH))'; \
exit 1 ; fi
$(Q)$(MAKE) $(build)=scripts scripts/unifdef
$(Q)rm -rf $(INSTALL_HDR_PATH)/include
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.headersinst obj=include
......@@ -1107,13 +1119,17 @@ help:
@echo ' cscope - Generate cscope index'
@echo ' kernelrelease - Output the release version string'
@echo ' kernelversion - Output the version stored in Makefile'
@echo ' headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'
@if [ -r include/asm-$(ARCH)/Kbuild ]; then \
echo ' headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'; \
fi
@echo ' (default: $(INSTALL_HDR_PATH))'
@echo ''
@echo 'Static analysers'
@echo ' checkstack - Generate a list of stack hogs'
@echo ' namespacecheck - Name space analysis on compiled kernel'
@echo ' headers_check - Sanity check on exported headers'
@if [ -r include/asm-$(ARCH)/Kbuild ]; then \
echo ' headers_check - Sanity check on exported headers'; \
fi
@echo ''
@echo 'Kernel packaging:'
@$(MAKE) $(build)=$(package-dir) help
......
......@@ -26,6 +26,7 @@
#include <asm/uaccess.h>
#include <asm/mmu_context.h>
#include <asm/elf.h>
#include <asm/ubc.h>
static int hlt_counter=0;
......
......@@ -8,9 +8,6 @@
#include <asm/ptrace.h>
#include <asm/user.h>
#ifdef __KERNEL
#include <asm/procinfo.h>
#endif
typedef unsigned long elf_greg_t;
typedef unsigned long elf_freg_t[3];
......@@ -31,11 +28,6 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
typedef struct user_fp elf_fpregset_t;
/*
* This is used to ensure we don't load something for the wrong architecture.
*/
#define elf_check_arch(x) ( ((x)->e_machine == EM_ARM) && (ELF_PROC_OK((x))) )
/*
* These are used to set parameters in the core dumps.
*/
......@@ -47,6 +39,14 @@ typedef struct user_fp elf_fpregset_t;
#endif
#define ELF_ARCH EM_ARM
#ifdef __KERNEL__
#include <asm/procinfo.h>
/*
* This is used to ensure we don't load something for the wrong architecture.
*/
#define elf_check_arch(x) ( ((x)->e_machine == EM_ARM) && (ELF_PROC_OK((x))) )
#define USE_ELF_CORE_DUMP
#define ELF_EXEC_PAGESIZE 4096
......@@ -83,8 +83,6 @@ typedef struct user_fp elf_fpregset_t;
extern char elf_platform[];
#define ELF_PLATFORM (elf_platform)
#ifdef __KERNEL__
/*
* 32-bit code is always OK. Some cpus can do 26-bit, some can't.
*/
......
......@@ -11,13 +11,13 @@
#define _ASMARM_PAGE_H
#ifdef __KERNEL__
/* PAGE_SHIFT determines the page size */
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
#ifdef __KERNEL__
/* to align the pointer to the (next) page boundary */
#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
......
include include/asm-generic/Kbuild.asm
include include/asm-generic/Kbuild.asm
header-y += arch-v10/ arch-v32/
unifdef-y += rs485.h
header-y += ptrace.h
header-y += user.h
header-y += ptrace.h
header-y += user.h
......@@ -3,14 +3,15 @@
#ifdef __GNUC__
#ifdef __KERNEL__
#include <asm/arch/byteorder.h>
/* defines are necessary because the other files detect the presence
* of a defined __arch_swab32, not an inline
*/
#define __arch__swab32(x) ___arch__swab32(x)
#define __arch__swab16(x) ___arch__swab16(x)
#endif /* __KERNEL__ */
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
# define __BYTEORDER_HAS_U64__
......
......@@ -5,7 +5,6 @@
* ELF register definitions..
*/
#include <asm/arch/elf.h>
#include <asm/user.h>
#define R_CRIS_NONE 0
......@@ -46,6 +45,9 @@ typedef unsigned long elf_fpregset_t;
#define ELF_DATA ELFDATA2LSB
#define ELF_ARCH EM_CRIS
#ifdef __KERNEL__
#include <asm/arch/elf.h>
/* The master for these definitions is {binutils}/include/elf/cris.h: */
/* User symbols in this file have a leading underscore. */
#define EF_CRIS_UNDERSCORE 0x00000001
......@@ -87,8 +89,8 @@ typedef unsigned long elf_fpregset_t;
#define ELF_PLATFORM (NULL)
#ifdef __KERNEL__
#define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
#endif
#endif /* __KERNEL__ */
#endif
#ifndef _CRIS_PAGE_H
#define _CRIS_PAGE_H
#ifdef __KERNEL__
#include <asm/arch/page.h>
/* PAGE_SHIFT determines the page size */
......@@ -12,8 +14,6 @@
#endif
#define PAGE_MASK (~(PAGE_SIZE-1))
#ifdef __KERNEL__
#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
#define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE)
......@@ -73,10 +73,10 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#endif /* __KERNEL__ */
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __KERNEL__ */
#endif /* _CRIS_PAGE_H */
......@@ -6,8 +6,6 @@
#ifndef __ARCH_CRIS_POSIX_TYPES_H
#define __ARCH_CRIS_POSIX_TYPES_H
#include <asm/bitops.h>
/*
* This file is generally used by user-level software, so you need to
* be a little careful about namespace pollution etc. Also, we cannot
......@@ -53,9 +51,8 @@ typedef struct {
#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
} __kernel_fsid_t;
/* should this ifdef be here ? */
#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
#ifdef __KERNEL__
#include <asm/bitops.h>
#undef __FD_SET
#define __FD_SET(fd,fdsetp) set_bit(fd, (void *)(fdsetp))
......@@ -69,6 +66,6 @@ typedef struct {
#undef __FD_ZERO
#define __FD_ZERO(fdsetp) memset((void *)(fdsetp), 0, __FDSET_LONGS << 2)
#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
#endif /* __KERNEL__ */
#endif /* __ARCH_CRIS_POSIX_TYPES_H */
#ifndef _ASM_CRIS_UNISTD_H_
#define _ASM_CRIS_UNISTD_H_
#include <asm/arch/unistd.h>
/*
* This file contains the system call numbers, and stub macros for libc.
*/
......@@ -299,6 +297,7 @@
#define NR_syscalls 289
#include <asm/arch/unistd.h>
#define __ARCH_WANT_IPC_PARSE_VERSION
#define __ARCH_WANT_OLD_READDIR
......@@ -322,7 +321,6 @@
#define __ARCH_WANT_SYS_SIGPENDING
#define __ARCH_WANT_SYS_SIGPROCMASK
#define __ARCH_WANT_SYS_RT_SIGACTION
#endif
#ifdef __KERNEL_SYSCALLS__
......
#ifndef _H8300_PAGE_H
#define _H8300_PAGE_H
#ifdef __KERNEL__
/* PAGE_SHIFT determines the page size */
......@@ -8,8 +9,6 @@
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
#ifdef __KERNEL__
#include <asm/setup.h>
#ifndef __ASSEMBLY__
......@@ -76,9 +75,9 @@ extern unsigned long memory_end;
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __KERNEL__ */
#endif /* _H8300_PAGE_H */
......@@ -87,10 +87,9 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define devmem_is_allowed(x) 1
#endif /* __KERNEL__ */
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __KERNEL__ */
#endif /* _ASM_M32R_PAGE_H */
......@@ -12,8 +12,6 @@
* Copyright (C) 2001-2002, 2004 Hirokazu Takata <takata at linux-m32r.org>
*/
#include <asm/m32r.h> /* M32R_PSW_BSM, M32R_PSW_BPM */
/* 0 - 13 are integer registers (general purpose registers). */
#define PT_R4 0
#define PT_R5 1
......@@ -140,6 +138,8 @@ struct pt_regs {
#ifdef __KERNEL__
#include <asm/m32r.h> /* M32R_PSW_BSM, M32R_PSW_BPM */
#define __ARCH_SYS_PTRACE 1
#if defined(CONFIG_ISA_M32R2) || defined(CONFIG_CHIP_VDEC2)
......
......@@ -6,7 +6,6 @@
/* orig : i386 2.4.18 */
#include <linux/types.h>
#include <linux/linkage.h>
#include <linux/time.h>
#include <linux/compiler.h>
......
......@@ -3,8 +3,6 @@
/* $Id$ */
#include <asm/syscall.h> /* SYSCALL_* */
/*
* This file contains the system call numbers.
*/
......@@ -303,6 +301,8 @@
* <asm-m32r/errno.h>
*/
#include <asm/syscall.h> /* SYSCALL_* */
#define __syscall_return(type, res) \
do { \
if ((unsigned long)(res) >= (unsigned long)(-(124 + 1))) { \
......
......@@ -8,7 +8,6 @@
*/
#include <linux/types.h>
#include <asm/processor.h>
#include <asm/ptrace.h>
#include <asm/page.h>
......
#ifndef _M68KNOMMU_PAGE_H
#define _M68KNOMMU_PAGE_H
#ifdef __KERNEL__
/* PAGE_SHIFT determines the page size */
......@@ -8,8 +9,6 @@
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
#ifdef __KERNEL__
#include <asm/setup.h>
#ifndef __ASSEMBLY__
......@@ -76,8 +75,8 @@ extern unsigned long memory_end;
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */
#include <asm-generic/page.h>
#endif /* __KERNEL__ */
#endif /* _M68KNOMMU_PAGE_H */
......@@ -6,7 +6,7 @@ header-y += qeth.h
header-y += tape390.h
header-y += ucontext.h
header-y += vtoc.h
header-y += z90crypt.h
header-y += zcrypt.h
unifdef-y += cmb.h
unifdef-y += debug.h
......@@ -112,9 +112,8 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#endif /* __KERNEL__ */
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __KERNEL__ */
#endif /* __ASM_SH_PAGE_H */
#ifndef __ASM_SH_PTRACE_H
#define __ASM_SH_PTRACE_H
#include <asm/ubc.h>
/*
* Copyright (C) 1999, 2000 Niibe Yutaka
*
......
......@@ -112,9 +112,8 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#endif /* __KERNEL__ */
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __KERNEL__ */
#endif /* __ASM_SH64_PAGE_H */
......@@ -2,19 +2,11 @@
#define __ASM_SH64_SHMPARAM_H
/*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* include/asm-sh64/shmparam.h
*
* Copyright (C) 2000, 2001 Paolo Alberelli
*
* Set this to a sensible safe default, we'll work out the specifics for the
* align mask from the cache descriptor at run-time.
*/
#define SHMLBA 0x4000
#include <asm/cache.h>
/* attach addr a multiple of this */
#define SHMLBA (cpu_data->dcache.sets * L1_CACHE_BYTES)
#define __ARCH_FORCE_SHMLBA
#endif /* __ASM_SH64_SHMPARAM_H */
......@@ -13,7 +13,6 @@
*/
#include <linux/types.h>
#include <asm/processor.h>
/* Avoid too many header ordering problems. */
struct siginfo;
......
......@@ -13,7 +13,6 @@
*/
#include <linux/types.h>
#include <asm/processor.h>
#include <asm/ptrace.h>
#include <asm/page.h>
......
......@@ -2,20 +2,13 @@ include include/asm-generic/Kbuild.asm
header-y += apc.h
header-y += asi.h
header-y += auxio.h
header-y += bpp.h
header-y += head.h
header-y += ipc.h
header-y += jsflash.h
header-y += openpromio.h
header-y += pbm.h
header-y += pconf.h
header-y += pgtsun4.h
header-y += reg.h
header-y += traps.h
header-y += turbosparc.h
header-y += vfc_ioctls.h
header-y += winmacro.h
unifdef-y += fbio.h
unifdef-y += perfctr.h
......
......@@ -8,6 +8,8 @@
#ifndef _SPARC_PAGE_H
#define _SPARC_PAGE_H
#ifdef __KERNEL__
#ifdef CONFIG_SUN4
#define PAGE_SHIFT 13
#else
......@@ -21,8 +23,6 @@
#endif
#define PAGE_MASK (~(PAGE_SIZE-1))
#ifdef __KERNEL__
#include <asm/btfixup.h>
#ifndef __ASSEMBLY__
......@@ -160,9 +160,9 @@ extern unsigned long pfn_base;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#endif /* __KERNEL__ */
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* __KERNEL__ */
#endif /* _SPARC_PAGE_H */
......@@ -8,15 +8,12 @@ header-y += apb.h
header-y += asi.h
header-y += bbc.h
header-y += bpp.h
header-y += const.h
header-y += display7seg.h
header-y += envctrl.h
header-y += floppy.h
header-y += ipc.h
header-y += kdebug.h
header-y += mostek.h
header-y += openprom.h
header-y += openpromio.h
header-y += parport.h
header-y += pconf.h
header-y += psrcompat.h
header-y += pstate.h
......
......@@ -3,6 +3,8 @@
#ifndef _SPARC64_PAGE_H
#define _SPARC64_PAGE_H
#ifdef __KERNEL__
#include <asm/const.h>
#if defined(CONFIG_SPARC64_PAGE_SIZE_8KB)
......@@ -27,8 +29,6 @@
#define DCACHE_ALIASING_POSSIBLE
#endif
#ifdef __KERNEL__
#if defined(CONFIG_HUGETLB_PAGE_SIZE_4MB)
#define HPAGE_SHIFT 22
#elif defined(CONFIG_HUGETLB_PAGE_SIZE_512K)
......@@ -141,8 +141,7 @@ typedef unsigned long pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#endif /* !(__KERNEL__) */
#include <asm-generic/page.h>
#endif /* !(_SPARC64_PAGE_H) */
#endif /* __KERNEL__ */
#endif /* _SPARC64_PAGE_H */
/* $Id: shmparam.h,v 1.5 2001/09/24 21:17:57 kanoj Exp $ */
#ifndef _ASMSPARC64_SHMPARAM_H
#define _ASMSPARC64_SHMPARAM_H
#ifdef __KERNEL__
#include <asm/spitfire.h>
......@@ -8,4 +9,5 @@
/* attach addr a multiple of this */
#define SHMLBA ((PAGE_SIZE > L1DCACHE_SIZE) ? PAGE_SIZE : L1DCACHE_SIZE)
#endif /* __KERNEL__ */
#endif /* _ASMSPARC64_SHMPARAM_H */
include include/asm-generic/Kbuild.asm
......@@ -14,6 +14,8 @@
#ifndef __V850_PAGE_H__
#define __V850_PAGE_H__
#ifdef __KERNEL__
#include <asm/machdep.h>
......@@ -32,7 +34,6 @@
#endif
#ifdef __KERNEL__
#ifndef __ASSEMBLY__
#define STRICT_MM_TYPECHECKS
......@@ -122,9 +123,9 @@ typedef unsigned long pgprot_t;
#define __va(x) ((void *)__phys_to_virt ((unsigned long)(x)))
#endif /* KERNEL */
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
#endif /* KERNEL */
#endif /* __V850_PAGE_H__ */
......@@ -14,8 +14,6 @@
#ifndef __V850_PARAM_H__
#define __V850_PARAM_H__
#include <asm/machdep.h> /* For HZ */
#define EXEC_PAGESIZE 4096
#ifndef NOGROUP
......@@ -25,6 +23,8 @@
#define MAXHOSTNAMELEN 64 /* max length of hostname */
#ifdef __KERNEL__
#include <asm/machdep.h> /* For HZ */
# define USER_HZ 100
# define CLOCKS_PER_SEC USER_HZ
#endif
......
......@@ -141,7 +141,6 @@ header-y += snmp.h
header-y += sockios.h
header-y += som.h
header-y += sound.h
header-y += stddef.h
header-y += synclink.h
header-y += telephony.h
header-y += termios.h
......@@ -267,7 +266,6 @@ unifdef-y += netfilter_decnet.h
unifdef-y += netfilter.h
unifdef-y += netfilter_ipv4.h
unifdef-y += netfilter_ipv6.h
unifdef-y += netfilter_logging.h
unifdef-y += net.h
unifdef-y += netlink.h
unifdef-y += nfs3.h
......@@ -316,6 +314,7 @@ unifdef-y += sonet.h
unifdef-y += sonypi.h
unifdef-y += soundcard.h
unifdef-y += stat.h
unifdef-y += stddef.h
unifdef-y += sysctl.h
unifdef-y += tcp.h
unifdef-y += time.h
......
......@@ -10,11 +10,13 @@
#define NULL ((void *)0)
#endif
#ifdef __KERNEL__
#undef offsetof
#ifdef __compiler_offsetof
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
#else
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif
#endif /* __KERNEL__ */
#endif
......@@ -23,30 +23,30 @@ HDRSED := sed -e "s/ inline / __inline__ /g" \
_dst := $(if $(dst),$(dst),$(obj))
.PHONY: __headersinst
__headersinst:
ifeq (,$(patsubst include/asm/%,,$(obj)/))
# For producing the generated stuff in include/asm for biarch builds, include
# both sets of Kbuild files; we'll generate anything which is mentioned in
# _either_ arch, and recurse into subdirectories which are mentioned in either
# arch. Since some directories may exist in one but not the other, we must
# use '-include'.
# use $(wildcard...).
GENASM := 1
archasm := $(subst include/asm,asm-$(ARCH),$(obj))
altarchasm := $(subst include/asm,asm-$(ALTARCH),$(obj))
-include $(srctree)/include/$(archasm)/Kbuild
-include $(srctree)/include/$(altarchasm)/Kbuild
KBUILDFILES := $(wildcard $(srctree)/include/$(archasm)/Kbuild $(srctree)/include/$(altarchasm)/Kbuild)
else
include $(srctree)/$(obj)/Kbuild
KBUILDFILES := $(srctree)/$(obj)/Kbuild
endif
include scripts/Kbuild.include
include $(KBUILDFILES)
include scripts/Kbuild.include
# If this is include/asm-$(ARCH) and there's no $(ALTARCH), then
# override $(_dst) so that we install to include/asm directly.
ifeq ($(obj)$(ALTARCH),include/asm-$(ARCH))
# 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)$(ALTARCH),include/asm-$(ARCH)$(BIASMDIR))
_dst := include/asm
endif
......@@ -56,6 +56,23 @@ subdir-y := $(patsubst %/,%,$(filter %/, $(header-y)))
header-y := $(filter-out %/, $(header-y))
header-y := $(filter-out $(unifdef-y),$(header-y))
# stamp files for header checks
check-y := $(patsubst %,.check.%,$(header-y) $(unifdef-y) $(objhdr-y))
# Work out what needs to be removed
oldheaders := $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$(wildcard $(INSTALL_HDR_PATH)/$(_dst)/*.h))
unwanted := $(filter-out $(header-y) $(unifdef-y) $(objhdr-y),$(oldheaders))
oldcheckstamps := $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$(wildcard $(INSTALL_HDR_PATH)/$(_dst)/.check.*.h))
unwanted += $(filter-out $(check-y),$(oldcheckstamps))
# Prefix them all with full paths to $(INSTALL_HDR_PATH)
header-y := $(patsubst %,$(INSTALL_HDR_PATH)/$(_dst)/%,$(header-y))
unifdef-y := $(patsubst %,$(INSTALL_HDR_PATH)/$(_dst)/%,$(unifdef-y))
objhdr-y := $(patsubst %,$(INSTALL_HDR_PATH)/$(_dst)/%,$(objhdr-y))
check-y := $(patsubst %,$(INSTALL_HDR_PATH)/$(_dst)/%,$(check-y))
ifdef ALTARCH
ifeq ($(obj),include/asm-$(ARCH))
altarch-y := altarch-dir
......@@ -67,43 +84,47 @@ export ALTARCH
export ARCHDEF
export ALTARCHDEF
quiet_cmd_o_hdr_install = INSTALL $(_dst)/$@
cmd_o_hdr_install = cp $(objtree)/$(obj)/$@ $(INSTALL_HDR_PATH)/$(_dst)
quiet_cmd_o_hdr_install = INSTALL $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
cmd_o_hdr_install = cp $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,$(objtree)/$(obj)/%,$@) \
$(INSTALL_HDR_PATH)/$(_dst)
quiet_cmd_headers_install = INSTALL $(_dst)/$@
cmd_headers_install = $(HDRSED) $(srctree)/$(obj)/$@ \
> $(INSTALL_HDR_PATH)/$(_dst)/$@
quiet_cmd_headers_install = INSTALL $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
cmd_headers_install = $(HDRSED) $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,$(srctree)/$(obj)/%,$@) \
> $@
quiet_cmd_unifdef = UNIFDEF $(_dst)/$@
cmd_unifdef = $(UNIFDEF) $(srctree)/$(obj)/$@ | $(HDRSED) \
> $(INSTALL_HDR_PATH)/$(_dst)/$@ || :
quiet_cmd_unifdef = UNIFDEF $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
cmd_unifdef = $(UNIFDEF) $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,$(srctree)/$(obj)/%,$@) \
| $(HDRSED) > $@ || :
quiet_cmd_check = CHECK $(_dst)/$@
quiet_cmd_check = CHECK $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/.check.%,$(_dst)/%,$@)
cmd_check = $(srctree)/scripts/hdrcheck.sh \
$(INSTALL_HDR_PATH)/include \
$(INSTALL_HDR_PATH)/$(_dst)/$@
$(INSTALL_HDR_PATH)/include $(subst /.check.,/,$@) $@
quiet_cmd_remove = REMOVE $(_dst)/$@
cmd_remove = rm -f $(INSTALL_HDR_PATH)/$(_dst)/$@
quiet_cmd_mkdir = MKDIR $@
cmd_mkdir = mkdir -p $(INSTALL_HDR_PATH)/$@
quiet_cmd_mkdir = MKDIR $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
cmd_mkdir = mkdir -p $@
quiet_cmd_gen = GEN $(_dst)/$@
quiet_cmd_gen = GEN $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
cmd_gen = \
STUBDEF=__ASM_STUB_`echo $@ | tr a-z. A-Z_`; \
FNAME=$(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$@) \
STUBDEF=__ASM_STUB_`echo $$FNAME | tr a-z. A-Z_`; \
(echo "/* File autogenerated by 'make headers_install' */" ; \
echo "\#ifndef $$STUBDEF" ; \
echo "\#define $$STUBDEF" ; \
echo "\# if $(ARCHDEF)" ; \
if [ -r $(INSTALL_HDR_PATH)/include/$(archasm)/$@ ]; then \
echo "\# include <$(archasm)/$@>" ; \
if [ -r $(subst /$(_dst)/,/include/$(archasm)/,$@) ]; then \
echo "\# include <$(archasm)/$$FNAME>" ; \
else \
echo "\# error $(archasm)/$@ does not exist in" \
echo "\# error $(archasm)/$$FNAME does not exist in" \
"the $(ARCH) architecture" ; \
fi ; \
echo "\# elif $(ALTARCHDEF)" ; \
if [ -r $(INSTALL_HDR_PATH)/include/$(altarchasm)/$@ ]; then \
echo "\# include <$(altarchasm)/$@>" ; \
if [ -r $(subst /$(_dst)/,/include/$(altarchasm)/,$@) ]; then \
echo "\# include <$(altarchasm)/$$FNAME>" ; \
else \
echo "\# error $(altarchasm)/$@ does not exist in" \
echo "\# error $(altarchasm)/$$FNAME does not exist in" \
"the $(ALTARCH) architecture" ; \
fi ; \
echo "\# else" ; \
......@@ -111,37 +132,49 @@ echo "\# warning This machine appears to be" \
"neither $(ARCH) nor $(ALTARCH)." ; \
echo "\# endif" ; \
echo "\#endif /* $$STUBDEF */" ; \
) > $(INSTALL_HDR_PATH)/$(_dst)/$@
) > $@
__headersinst: $(subdir-y) $(header-y) $(unifdef-y) $(altarch-y) $(objhdr-y)
.PHONY: $(header-y) $(unifdef-y) $(subdir-y)
.PHONY: __headersinst __headerscheck
ifdef HDRCHECK
# Rules for checking headers
$(objhdr-y) $(header-y) $(unifdef-y):
__headerscheck: $(subdir-y) $(check-y)
@true
$(check-y) : $(INSTALL_HDR_PATH)/$(_dst)/.check.%.h : $(INSTALL_HDR_PATH)/$(_dst)/%.h
$(call cmd,check)
# Other dependencies for $(check-y)
-include /dev/null $(check-y)
# ... but leave $(check-y) as .PHONY for now until those deps are actually correct.
.PHONY: $(check-y)
else
# Rules for installing headers
__headersinst: $(subdir-y) $(header-y) $(unifdef-y) $(altarch-y) $(objhdr-y)
@true
$(objhdr-y) $(subdir-y) $(header-y) $(unifdef-y): $(_dst)
$(objhdr-y) $(subdir-y) $(header-y) $(unifdef-y): | $(INSTALL_HDR_PATH)/$(_dst) $(unwanted)
.PHONY: $(_dst)
$(_dst):
$(INSTALL_HDR_PATH)/$(_dst):
$(call cmd,mkdir)
.PHONY: $(unwanted)
$(unwanted):
$(call cmd,remove)
ifdef GENASM
$(objhdr-y) $(header-y) $(unifdef-y):
$(objhdr-y) $(header-y) $(unifdef-y): $(KBUILDFILES)
$(call cmd,gen)
else
$(objhdr-y):
$(objhdr-y) : $(INSTALL_HDR_PATH)/$(_dst)/%.h: $(srctree)/$(obj)/%.h $(KBUILDFILES)
$(call cmd,o_hdr_install)
$(header-y):
$(header-y) : $(INSTALL_HDR_PATH)/$(_dst)/%.h: $(srctree)/$(obj)/%.h $(KBUILDFILES)
$(call cmd,headers_install)
$(unifdef-y):
$(unifdef-y) : $(INSTALL_HDR_PATH)/$(_dst)/%.h: $(srctree)/$(obj)/%.h $(KBUILDFILES)
$(call cmd,unifdef)
endif
endif
......@@ -153,8 +186,9 @@ hdrinst := -rR -f $(srctree)/scripts/Makefile.headersinst obj
# for their existence.
altarch-dir: $(subdir-y) $(header-y) $(unifdef-y) $(objhdr-y)
$(Q)$(MAKE) $(hdrinst)=include/asm-$(ALTARCH) dst=include/asm-$(ALTARCH)
$(Q)$(MAKE) $(hdrinst)=include/asm dst=include/asm
$(Q)$(MAKE) $(hdrinst)=include/asm dst=include/asm$(BIASMDIR)
# Recursion
.PHONY: $(subdir-y)
$(subdir-y):
$(Q)$(MAKE) $(hdrinst)=$(obj)/$@ dst=$(_dst)/$@ rel=../$(rel)
......@@ -6,3 +6,5 @@ for FILE in `grep '^[ \t]*#[ \t]*include[ \t]*<' $2 | cut -f2 -d\< | cut -f1 -d\
exit 1
fi
done
# FIXME: List dependencies into $3
touch $3
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册