Makefile
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:17k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. VERSION = 2
  2. PATCHLEVEL = 4
  3. SUBLEVEL = 18
  4. EXTRAVERSION = -rmk7-pxa1
  5. KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
  6. #ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
  7. ARCH := arm
  8. KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
  9. CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; 
  10.   else if [ -x /bin/bash ]; then echo /bin/bash; 
  11.   else echo sh; fi ; fi)
  12. TOPDIR := $(shell /bin/pwd)
  13. HPATH    = $(TOPDIR)/include
  14. FINDHPATH = $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net
  15. HOSTCC   = gcc
  16. HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
  17. #CROSS_COMPILE  = /opt/host/armv4l/bin/armv4l-unknown-linux-
  18. CROSS_COMPILE  = arm-linux-
  19. #
  20. # Include the make variables (CC, etc...)
  21. #
  22. AS = $(CROSS_COMPILE)as
  23. LD = $(CROSS_COMPILE)ld
  24. CC = $(CROSS_COMPILE)gcc
  25. CPP = $(CC) -E
  26. AR = $(CROSS_COMPILE)ar
  27. NM = $(CROSS_COMPILE)nm
  28. STRIP = $(CROSS_COMPILE)strip
  29. OBJCOPY = $(CROSS_COMPILE)objcopy
  30. OBJDUMP = $(CROSS_COMPILE)objdump
  31. MAKEFILES = $(TOPDIR)/.config
  32. GENKSYMS = /sbin/genksyms
  33. DEPMOD = /sbin/depmod
  34. MODFLAGS = -DMODULE
  35. CFLAGS_KERNEL =
  36. PERL = perl
  37. TMPDIR = /dev/shm
  38. export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH TMPDIR 
  39. CONFIG_SHELL TOPDIR HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC 
  40. CPP AR NM STRIP OBJCOPY OBJDUMP MAKE MAKEFILES GENKSYMS MODFLAGS PERL
  41. all: do-it-all
  42. #
  43. # Make "config" the default target if there is no configuration file or
  44. # "depend" the target if there is no top-level dependency information.
  45. #
  46. ifeq (.config,$(wildcard .config))
  47. include .config
  48. ifeq (.depend,$(wildcard .depend))
  49. include .depend
  50. do-it-all: Version vmlinux
  51. else
  52. CONFIGURATION = depend
  53. do-it-all: depend
  54. endif
  55. else
  56. CONFIGURATION = config
  57. do-it-all: config
  58. endif
  59. #
  60. # INSTALL_PATH specifies where to place the updated kernel and system map
  61. # images.  Uncomment if you want to place them anywhere other than root.
  62. #
  63. #export INSTALL_PATH=/boot
  64. #export INSTALL_MOD_PATH=/arm/root/lib
  65. export INSTALL_MOD_PATH=/tmp
  66. #
  67. # INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
  68. # relocations required by build roots.  This is not defined in the
  69. # makefile but the arguement can be passed to make if needed.
  70. #
  71. MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
  72. export MODLIB
  73. #
  74. # standard CFLAGS
  75. #
  76. CPPFLAGS := -D__KERNEL__ -I$(HPATH)
  77. CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 
  78.   -fomit-frame-pointer -fno-strict-aliasing -fno-common
  79. AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
  80. #
  81. # ROOT_DEV specifies the default root-device when making the image.
  82. # This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case
  83. # the default of FLOPPY is used by 'build'.
  84. # This is i386 specific.
  85. #
  86. export ROOT_DEV = CURRENT
  87. #
  88. # If you want to preset the SVGA mode, uncomment the next line and
  89. # set SVGA_MODE to whatever number you want.
  90. # Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode.
  91. # The number is the same as you would ordinarily press at bootup.
  92. # This is i386 specific.
  93. #
  94. export SVGA_MODE = -DSVGA_MODE=NORMAL_VGA
  95. #
  96. # If you want the RAM disk device, define this to be the size in blocks.
  97. # This is i386 specific.
  98. #
  99. #export RAMDISK = -DRAMDISK=512
  100. CORE_FILES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o
  101. NETWORKS =net/network.o
  102. LIBS =$(TOPDIR)/lib/lib.a
  103. SUBDIRS =kernel drivers mm fs net ipc lib
  104. DRIVERS-n :=
  105. DRIVERS-y :=
  106. DRIVERS-m :=
  107. DRIVERS-  :=
  108. DRIVERS-$(CONFIG_ACPI) += drivers/acpi/acpi.o
  109. DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o
  110. DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o
  111. DRIVERS-$(CONFIG_L3) += drivers/l3/l3.o
  112. DRIVERS-y += drivers/serial/serial.o 
  113. drivers/char/char.o 
  114. drivers/block/block.o 
  115. drivers/misc/misc.o 
  116. drivers/net/net.o 
  117. drivers/media/media.o
  118. DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o
  119. DRIVERS-$(CONFIG_DRM_NEW) += drivers/char/drm/drm.o
  120. DRIVERS-$(CONFIG_DRM_OLD) += drivers/char/drm-4.0/drm.o
  121. DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/nubus.a
  122. DRIVERS-$(CONFIG_ISDN) += drivers/isdn/isdn.a
  123. DRIVERS-$(CONFIG_NET_FC) += drivers/net/fc/fc.o
  124. DRIVERS-$(CONFIG_APPLETALK) += drivers/net/appletalk/appletalk.o
  125. DRIVERS-$(CONFIG_TR) += drivers/net/tokenring/tr.o
  126. DRIVERS-$(CONFIG_WAN) += drivers/net/wan/wan.o
  127. DRIVERS-$(CONFIG_ARCNET) += drivers/net/arcnet/arcnetdrv.o
  128. DRIVERS-$(CONFIG_ATM) += drivers/atm/atm.o
  129. DRIVERS-$(CONFIG_IDE) += drivers/ide/idedriver.o
  130. DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a
  131. DRIVERS-$(CONFIG_SCSI) += drivers/scsi/scsidrv.o
  132. DRIVERS-$(CONFIG_FUSION_BOOT) += drivers/message/fusion/fusion.o
  133. DRIVERS-$(CONFIG_IEEE1394) += drivers/ieee1394/ieee1394drv.o
  134. ifneq ($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR)$(CONFIG_PARIDE_PCD),)
  135. DRIVERS-y += drivers/cdrom/driver.o
  136. endif
  137. DRIVERS-$(CONFIG_SSI) += drivers/ssi/ssi.o
  138. DRIVERS-$(CONFIG_SOUND) += drivers/sound/sounddrivers.o
  139. DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o
  140. DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o
  141. DRIVERS-$(CONFIG_PCMCIA) += drivers/pcmcia/pcmcia.o
  142. DRIVERS-$(CONFIG_NET_PCMCIA) += drivers/net/pcmcia/pcmcia_net.o
  143. DRIVERS-$(CONFIG_NET_WIRELESS) += drivers/net/wireless/wireless_net.o
  144. DRIVERS-$(CONFIG_PCMCIA_CHRDEV) += drivers/char/pcmcia/pcmcia_char.o
  145. DRIVERS-$(CONFIG_DIO) += drivers/dio/dio.a
  146. DRIVERS-$(CONFIG_SBUS) += drivers/sbus/sbus_all.o
  147. DRIVERS-$(CONFIG_ZORRO) += drivers/zorro/driver.o
  148. DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a
  149. DRIVERS-$(CONFIG_ALL_PPC) += drivers/macintosh/macintosh.o
  150. DRIVERS-$(CONFIG_MAC) += drivers/macintosh/macintosh.o
  151. DRIVERS-$(CONFIG_ISAPNP) += drivers/pnp/pnp.o
  152. DRIVERS-$(CONFIG_SGI_IP22) += drivers/sgi/sgi.a
  153. DRIVERS-$(CONFIG_VT) += drivers/video/video.o
  154. DRIVERS-$(CONFIG_PARIDE) += drivers/block/paride/paride.a
  155. DRIVERS-$(CONFIG_HAMRADIO) += drivers/net/hamradio/hamradio.o
  156. DRIVERS-$(CONFIG_TC) += drivers/tc/tc.a
  157. DRIVERS-$(CONFIG_USB) += drivers/usb/usbdrv.o
  158. DRIVERS-$(CONFIG_INPUT) += drivers/input/inputdrv.o
  159. DRIVERS-$(CONFIG_I2O) += drivers/message/i2o/i2o.o
  160. DRIVERS-$(CONFIG_IRDA) += drivers/net/irda/irda.o
  161. DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.o
  162. DRIVERS-$(CONFIG_MD) += drivers/md/mddev.o
  163. DRIVERS-$(CONFIG_BLUEZ) += drivers/bluetooth/bluetooth.o
  164. DRIVERS-$(CONFIG_HOTPLUG_PCI) += drivers/hotplug/vmlinux-obj.o
  165. DRIVERS-$(CONFIG_MMCSD) += drivers/mmcsd/mmcsd.o
  166. DRIVERS := $(DRIVERS-y)
  167. # files removed with 'make clean'
  168. CLEAN_FILES = 
  169. kernel/ksyms.lst include/linux/compile.h 
  170. vmlinux System.map 
  171. .tmp* 
  172. drivers/char/consolemap_deftbl.c drivers/video/promcon_tbl.c 
  173. drivers/char/conmakehash 
  174. drivers/char/drm/*-mod.c 
  175. drivers/pci/devlist.h drivers/pci/classlist.h drivers/pci/gen-devlist 
  176. drivers/zorro/devlist.h drivers/zorro/gen-devlist 
  177. drivers/sound/bin2hex drivers/sound/hex2hex 
  178. drivers/atm/fore200e_mkfirm drivers/atm/{pca,sba}*{.bin,.bin1,.bin2} 
  179. drivers/scsi/aic7xxx/aicasm/aicasm_gram.c 
  180. drivers/scsi/aic7xxx/aicasm/aicasm_scan.c 
  181. drivers/scsi/aic7xxx/aicasm/y.tab.h 
  182. drivers/scsi/aic7xxx/aicasm/aicasm 
  183. drivers/scsi/53c700_d.h 
  184. net/khttpd/make_times_h 
  185. net/khttpd/times.h 
  186. submenu*
  187. # directories removed with 'make clean'
  188. CLEAN_DIRS = 
  189. modules
  190. # files removed with 'make mrproper'
  191. MRPROPER_FILES = 
  192. include/linux/autoconf.h include/linux/version.h 
  193. drivers/net/hamradio/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h 
  194. drivers/net/hamradio/soundmodem/sm_tbl_{hapn4800,psk4800}.h 
  195. drivers/net/hamradio/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h 
  196. drivers/net/hamradio/soundmodem/gentbl 
  197. drivers/sound/*_boot.h drivers/sound/.*.boot 
  198. drivers/sound/msndinit.c 
  199. drivers/sound/msndperm.c 
  200. drivers/sound/pndsperm.c 
  201. drivers/sound/pndspini.c 
  202. drivers/atm/fore200e_*_fw.c drivers/atm/.fore200e_*.fw 
  203. .version .config* config.in config.old 
  204. scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp 
  205. scripts/lxdialog/*.o scripts/lxdialog/lxdialog 
  206. .menuconfig.log 
  207. include/asm 
  208. .hdepend scripts/mkdep scripts/split-include scripts/docproc 
  209. $(TOPDIR)/include/linux/modversions.h 
  210. kernel.spec
  211. # directories removed with 'make mrproper'
  212. MRPROPER_DIRS = 
  213. include/config 
  214. $(TOPDIR)/include/linux/modules
  215. include arch/$(ARCH)/Makefile
  216. export CPPFLAGS CFLAGS CFLAGS_KERNEL AFLAGS AFLAGS_KERNEL
  217. export NETWORKS DRIVERS LIBS HEAD LDFLAGS LINKFLAGS MAKEBOOT ASFLAGS
  218. Version: dummy
  219. @rm -f include/linux/compile.h
  220. boot: vmlinux
  221. @$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C arch/$(ARCH)/boot
  222. vmlinux: include/linux/version.h $(CONFIGURATION) init/main.o init/version.o linuxsubdirs
  223. $(LD) $(LINKFLAGS) $(HEAD) init/main.o init/version.o 
  224. --start-group 
  225. $(CORE_FILES) 
  226. $(DRIVERS) 
  227. $(NETWORKS) 
  228. $(LIBS) 
  229. --end-group 
  230. -o vmlinux
  231. $(NM) vmlinux | grep -v '(compiled)|(.o$$)|( [aUw] )|(..ng$$)|(LASH[RL]DI)' | sort > System.map
  232. symlinks:
  233. rm -f include/asm
  234. ( cd include ; ln -sf asm-$(ARCH) asm)
  235. @if [ ! -d include/linux/modules ]; then 
  236. mkdir include/linux/modules; 
  237. fi
  238. oldconfig: symlinks
  239. $(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in
  240. xconfig: symlinks
  241. $(MAKE) -C scripts kconfig.tk
  242. wish -f scripts/kconfig.tk
  243. menuconfig: include/linux/version.h symlinks
  244. $(MAKE) -C scripts/lxdialog all
  245. $(CONFIG_SHELL) scripts/Menuconfig arch/$(ARCH)/config.in
  246. config: symlinks
  247. $(CONFIG_SHELL) scripts/Configure arch/$(ARCH)/config.in
  248. include/config/MARKER: scripts/split-include include/linux/autoconf.h
  249. scripts/split-include include/linux/autoconf.h include/config
  250. @ touch include/config/MARKER
  251. linuxsubdirs: $(patsubst %, _dir_%, $(SUBDIRS))
  252. $(patsubst %, _dir_%, $(SUBDIRS)) : dummy include/linux/version.h include/config/MARKER
  253. $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C $(patsubst _dir_%, %, $@)
  254. $(TOPDIR)/include/linux/version.h: include/linux/version.h
  255. $(TOPDIR)/include/linux/compile.h: include/linux/compile.h
  256. newversion:
  257. . scripts/mkversion > .tmpversion
  258. @mv -f .tmpversion .version
  259. include/linux/compile.h: $(CONFIGURATION) include/linux/version.h newversion
  260. @echo -n #define UTS_VERSION "#`cat .version` > .ver
  261. @if [ -n "$(CONFIG_SMP)" ] ; then echo -n " SMP" >> .ver; fi
  262. @if [ -f .name ]; then  echo -n -`cat .name` >> .ver; fi
  263. @echo ' '`date`'"' >> .ver
  264. @echo #define LINUX_COMPILE_TIME "`date +%T`" >> .ver
  265. @echo #define LINUX_COMPILE_BY "`whoami`" >> .ver
  266. @echo #define LINUX_COMPILE_HOST "`hostname`" >> .ver
  267. @if [ -x /bin/dnsdomainname ]; then 
  268.    echo #define LINUX_COMPILE_DOMAIN "`dnsdomainname`"; 
  269.  elif [ -x /bin/domainname ]; then 
  270.    echo #define LINUX_COMPILE_DOMAIN "`domainname`"; 
  271.  else 
  272.    echo #define LINUX_COMPILE_DOMAIN ; 
  273.  fi >> .ver
  274. @echo #define LINUX_COMPILER "`$(CC) $(CFLAGS) -v 2>&1 | tail -1`" >> .ver
  275. @mv -f .ver $@
  276. include/linux/version.h: ./Makefile
  277. @echo #define UTS_RELEASE "$(KERNELRELEASE)" > .ver
  278. @echo #define LINUX_VERSION_CODE `expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL)` >> .ver
  279. @echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))' >>.ver
  280. @mv -f .ver $@
  281. comma := ,
  282. init/version.o: init/version.c include/linux/compile.h include/config/MARKER
  283. $(CC) $(CFLAGS) $(CFLAGS_KERNEL) -DUTS_MACHINE='"$(ARCH)"' -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o init/version.o init/version.c
  284. init/main.o: init/main.c include/config/MARKER
  285. $(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o $*.o $<
  286. fs lib mm ipc kernel drivers net: dummy
  287. $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@)
  288. TAGS: dummy
  289. etags `find include/asm-$(ARCH) -name '*.h'`
  290. find include -type d ( -name "asm-*" -o -name config ) -prune -o -name '*.h' -print | xargs etags -a
  291. find $(SUBDIRS) init -name '*.[ch]' | xargs etags -a
  292. # Exuberant ctags works better with -I
  293. tags: dummy
  294. CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; 
  295. ctags $$CTAGSF `find include/asm-$(ARCH) -name '*.h'` && 
  296. find include -type d ( -name "asm-*" -o -name config ) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a && 
  297. find $(SUBDIRS) init -name '*.[ch]' | xargs ctags $$CTAGSF -a
  298. ifdef CONFIG_MODULES
  299. ifdef CONFIG_MODVERSIONS
  300. MODFLAGS += -DMODVERSIONS -include $(HPATH)/linux/modversions.h
  301. endif
  302. .PHONY: modules
  303. modules: $(patsubst %, _mod_%, $(SUBDIRS))
  304. .PHONY: $(patsubst %, _mod_%, $(SUBDIRS))
  305. $(patsubst %, _mod_%, $(SUBDIRS)) : include/linux/version.h include/config/MARKER
  306. $(MAKE) -C $(patsubst _mod_%, %, $@) CFLAGS="$(CFLAGS) $(MODFLAGS)" MAKING_MODULES=1 modules
  307. .PHONY: modules_install
  308. modules_install: _modinst_ $(patsubst %, _modinst_%, $(SUBDIRS)) _modinst_post
  309. .PHONY: _modinst_
  310. _modinst_:
  311. @rm -rf $(MODLIB)/kernel
  312. @rm -f $(MODLIB)/build
  313. @mkdir -p $(MODLIB)/kernel
  314. @ln -s $(TOPDIR) $(MODLIB)/build
  315. # If System.map exists, run depmod.  This deliberately does not have a
  316. # dependency on System.map since that would run the dependency tree on
  317. # vmlinux.  This depmod is only for convenience to give the initial
  318. # boot a modules.dep even before / is mounted read-write.  However the
  319. # boot script depmod is the master version.
  320. ifeq "$(strip $(INSTALL_MOD_PATH))" ""
  321. depmod_opts :=
  322. else
  323. depmod_opts := -b $(INSTALL_MOD_PATH) -r
  324. endif
  325. .PHONY: _modinst_post
  326. _modinst_post: _modinst_post_pcmcia
  327. # if [ -r System.map ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); fi
  328. # Backwards compatibilty symlinks for people still using old versions
  329. # of pcmcia-cs with hard coded pathnames on insmod.  Remove
  330. # _modinst_post_pcmcia for kernel 2.4.1.
  331. .PHONY: _modinst_post_pcmcia
  332. _modinst_post_pcmcia:
  333. cd $(MODLIB); 
  334. mkdir -p pcmcia; 
  335. find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia
  336. .PHONY: $(patsubst %, _modinst_%, $(SUBDIRS))
  337. $(patsubst %, _modinst_%, $(SUBDIRS)) :
  338. $(MAKE) -C $(patsubst _modinst_%, %, $@) modules_install
  339. # modules disabled....
  340. else
  341. modules modules_install: dummy
  342. @echo
  343. @echo "The present kernel configuration has modules disabled."
  344. @echo "Type 'make config' and enable loadable module support."
  345. @echo "Then build a kernel with module support enabled."
  346. @echo
  347. @exit 1
  348. endif
  349. clean: archclean
  350. find . ( -name '*.[oas]' -o -name core -o -name '.*.flags' ) -type f -print 
  351. | grep -v lxdialog/ | xargs rm -f
  352. rm -f $(CLEAN_FILES)
  353. rm -rf $(CLEAN_DIRS)
  354. $(MAKE) -C Documentation/DocBook clean
  355. mrproper: clean archmrproper
  356. find . ( -size 0 -o -name .depend ) -type f -print | xargs rm -f
  357. rm -f $(MRPROPER_FILES)
  358. rm -rf $(MRPROPER_DIRS)
  359. $(MAKE) -C Documentation/DocBook mrproper
  360. distclean: mrproper
  361. rm -f core `find . ( -not -type d ) -and 
  362. ( -name '*.orig' -o -name '*.rej' -o -name '*~' 
  363. -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' 
  364. -o -name '.*.rej' -o -name '.SUMS' -o -size 0 ) -type f -print` TAGS tags
  365. backup: mrproper
  366. cd .. && tar cf - linux/ | gzip -9 > backup.gz
  367. sync
  368. sgmldocs: 
  369. chmod 755 $(TOPDIR)/scripts/docgen
  370. chmod 755 $(TOPDIR)/scripts/gen-all-syms
  371. chmod 755 $(TOPDIR)/scripts/kernel-doc
  372. $(MAKE) -C $(TOPDIR)/Documentation/DocBook books
  373. psdocs: sgmldocs
  374. $(MAKE) -C Documentation/DocBook ps
  375. pdfdocs: sgmldocs
  376. $(MAKE) -C Documentation/DocBook pdf
  377. htmldocs: sgmldocs
  378. $(MAKE) -C Documentation/DocBook html
  379. sums:
  380. find . -type f -print | sort | xargs sum > .SUMS
  381. dep-files: scripts/mkdep archdep include/linux/version.h
  382. scripts/mkdep -- init/*.c > .depend
  383. scripts/mkdep -- `find $(FINDHPATH) -name SCCS -prune -o -follow -name *.h ! -name modversions.h -print` > .hdepend
  384. # scripts/mkdep -- `find $(FINDHPATH) -name SCCS -prune -o -follow -name *.h ! -name modversions.h -exec grep -l '#include' {} ;` `cat .hdsr` > .hdepend
  385. # scripts/mkdep -- `find $(HPATH)/asm -name SCCS -prune -o -follow -name *.h ! -name modversions.h -print` > .hdtmp
  386. # scripts/mkdep -- `find $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net -name SCCS -prune -o -follow -name *.h ! -name modversions.h -print` >> .hdtmp
  387. $(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
  388. ifdef CONFIG_MODVERSIONS
  389. $(MAKE) update-modverfile
  390. endif
  391. ifdef CONFIG_MODVERSIONS
  392. MODVERFILE := $(TOPDIR)/include/linux/modversions.h
  393. else
  394. MODVERFILE :=
  395. endif
  396. export MODVERFILE
  397. depend dep: dep-files
  398. checkconfig:
  399. find * -name '*.[hcS]' -type f -print | sort | xargs $(PERL) -w scripts/checkconfig.pl
  400. checkhelp:
  401. find * -name [cC]onfig.in -print | sort | xargs $(PERL) -w scripts/checkhelp.pl
  402. checkincludes:
  403. find * -name '*.[hcS]' -type f -print | sort | xargs $(PERL) -w scripts/checkincludes.pl
  404. ifdef CONFIGURATION
  405. ..$(CONFIGURATION):
  406. @echo
  407. @echo "You have a bad or nonexistent" .$(CONFIGURATION) ": running 'make" $(CONFIGURATION)"'"
  408. @echo
  409. $(MAKE) $(CONFIGURATION)
  410. @echo
  411. @echo "Successful. Try re-making (ignore the error that follows)"
  412. @echo
  413. exit 1
  414. #dummy: ..$(CONFIGURATION)
  415. dummy:
  416. else
  417. dummy:
  418. endif
  419. include Rules.make
  420. #
  421. # This generates dependencies for the .h files.
  422. #
  423. scripts/mkdep: scripts/mkdep.c
  424. $(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
  425. scripts/split-include: scripts/split-include.c
  426. $(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c
  427. #
  428. # RPM target
  429. #
  430. # If you do a make spec before packing the tarball you can rpm -ta it
  431. #
  432. spec:
  433. . scripts/mkspec >kernel.spec
  434. #
  435. # Build a tar ball, generate an rpm from it and pack the result
  436. # There arw two bits of magic here
  437. # 1) The use of /. to avoid tar packing just the symlink
  438. # 2) Removing the .dep files as they have source paths in them that
  439. #    will become invalid
  440. #
  441. rpm: clean spec
  442. find . ( -size 0 -o -name .depend -o -name .hdepend ) -type f -print | xargs rm -f
  443. set -e; 
  444. cd $(TOPDIR)/.. ; 
  445. ln -sf $(TOPDIR) $(KERNELPATH) ; 
  446. tar -cvz --exclude CVS -f $(KERNELPATH).tar.gz $(KERNELPATH)/. ; 
  447. rm $(KERNELPATH) ; 
  448. cd $(TOPDIR) ; 
  449. . scripts/mkversion > .version ; 
  450. rpm -ta $(TOPDIR)/../$(KERNELPATH).tar.gz ; 
  451. rm $(TOPDIR)/../$(KERNELPATH).tar.gz