home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.27-7 / scripts / Makefile.headersinst < prev    next >
Encoding:
Makefile  |  2008-10-09  |  3.0 KB  |  99 lines

  1. # ==========================================================================
  2. # Installing headers
  3. #
  4. # header-y  - list files to be installed. They are preprocessed
  5. #             to remove __KERNEL__ section of the file
  6. # unifdef-y - Same as header-y. Obsolete
  7. # objhdr-y  - Same as header-y but for generated files
  8. #
  9. # ==========================================================================
  10.  
  11. # called may set destination dir (when installing to asm/)
  12. _dst := $(if $(dst),$(dst),$(obj))
  13.  
  14. kbuild-file := $(srctree)/$(obj)/Kbuild
  15. include $(kbuild-file)
  16.  
  17. include scripts/Kbuild.include
  18.  
  19. install       := $(INSTALL_HDR_PATH)/$(_dst)
  20.  
  21. header-y      := $(sort $(header-y) $(unifdef-y))
  22. subdirs       := $(patsubst %/,%,$(filter %/, $(header-y)))
  23. header-y      := $(filter-out %/, $(header-y))
  24.  
  25. # files used to track state of install/check
  26. install-file  := $(install)/.install
  27. check-file    := $(install)/.check
  28.  
  29. # all headers files for this dir
  30. all-files     := $(header-y) $(objhdr-y)
  31. input-files   := $(addprefix $(srctree)/$(obj)/,$(header-y)) \
  32.                  $(addprefix $(objtree)/$(obj)/,$(objhdr-y))
  33. output-files  := $(addprefix $(install)/, $(all-files))
  34.  
  35. # Work out what needs to be removed
  36. oldheaders    := $(patsubst $(install)/%,%,$(wildcard $(install)/*.h))
  37. unwanted      := $(filter-out $(all-files),$(oldheaders))
  38.  
  39. # Prefix unwanted with full paths to $(INSTALL_HDR_PATH)
  40. unwanted-file := $(addprefix $(install)/, $(unwanted))
  41.  
  42. printdir = $(patsubst $(INSTALL_HDR_PATH)/%/,%,$(dir $@))
  43.  
  44. quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\
  45.                             file$(if $(word 2, $(all-files)),s))
  46.       cmd_install = \
  47.         $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \
  48.         $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \
  49.         touch $@
  50.  
  51. quiet_cmd_remove = REMOVE  $(unwanted)
  52.       cmd_remove = rm -f $(unwanted-file)
  53.  
  54. quiet_cmd_check = CHECK   $(printdir) ($(words $(all-files)) files)
  55.       cmd_check = $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH) \
  56.                   $(addprefix $(install)/, $(all-files));           \
  57.               touch $@
  58.  
  59. PHONY += __headersinst __headerscheck
  60.  
  61. ifndef HDRCHECK
  62. # Rules for installing headers
  63. __headersinst: $(subdirs) $(install-file)
  64.     @:
  65.  
  66. targets += $(install-file)
  67. $(install-file): scripts/headers_install.pl $(input-files) FORCE
  68.     $(if $(unwanted),$(call cmd,remove),)
  69.     $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@)))
  70.     $(call if_changed,install)
  71.  
  72. else
  73. __headerscheck: $(subdirs) $(check-file)
  74.     @:
  75.  
  76. targets += $(check-file)
  77. $(check-file): scripts/headers_check.pl $(output-files) FORCE
  78.     $(call if_changed,check)
  79.  
  80. endif
  81.  
  82. # Recursion
  83. hdr-inst := -rR -f $(srctree)/scripts/Makefile.headersinst obj
  84. .PHONY: $(subdirs)
  85. $(subdirs):
  86.     $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@
  87.  
  88. targets := $(wildcard $(sort $(targets)))
  89. cmd_files := $(wildcard \
  90.              $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
  91.  
  92. ifneq ($(cmd_files),)
  93.     include $(cmd_files)
  94. endif
  95.  
  96. .PHONY: $(PHONY)
  97. PHONY += FORCE
  98. FORCE: ;
  99.