Makefile
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #
  2. # x86_64/Makefile
  3. #
  4. # This file is included by the global makefile so that you can add your own
  5. # architecture-specific flags and dependencies. Remember to do have actions
  6. # for "archclean" and "archdep" for cleaning up and making dependencies for
  7. # this architecture
  8. #
  9. # This file is subject to the terms and conditions of the GNU General Public
  10. # License.  See the file "COPYING" in the main directory of this archive
  11. # for more details.
  12. #
  13. # Copyright (C) 1994 by Linus Torvalds
  14. #
  15. # 19990713  Artur Skawina <skawina@geocities.com>
  16. #           Added '-march' and '-mpreferred-stack-boundary' support
  17. # 20000913  Pavel Machek <pavel@suse.cz>
  18. #     Converted for x86_64 architecture
  19. # 20010105  Andi Kleen, add IA32 compiler.
  20. #           ....and later removed it again....
  21. #
  22. # $Id: Makefile,v 1.31 2002/03/22 15:56:07 ak Exp $
  23. #
  24. # early bootup linking needs 32bit. You can either use real 32bit tools
  25. # here or 64bit tools switch to 32bit mode.
  26. IA32_CC := $(CROSS_COMPILE)gcc -m32 -O2 -fomit-frame-pointer -nostdinc -I $(HPATH)
  27. IA32_LD := $(CROSS_COMPILE)ld -m elf_i386
  28. IA32_AS := $(CROSS_COMPILE)gcc -m32 -Wa,--32 -D__ASSEMBLY__ -traditional -c -nostdinc -I $(HPATH) 
  29. IA32_OBJCOPY := $(CROSS_COMPILE)objcopy
  30. IA32_CPP := $(CROSS_COMPILE)gcc -m32 -E
  31. export IA32_CC IA32_LD IA32_AS IA32_OBJCOPY IA32_CPP
  32. LD=$(CROSS_COMPILE)ld -m elf_x86_64
  33. OBJCOPY=$(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S
  34. LDFLAGS=-e stext
  35. LINKFLAGS =-T $(TOPDIR)/arch/x86_64/vmlinux.lds $(LDFLAGS)
  36. CFLAGS += -mno-red-zone
  37. CFLAGS += -mcmodel=kernel
  38. CFLAGS += -pipe
  39. CFLAGS += -fno-reorder-blocks
  40. # needed for later gcc 3.1
  41. CFLAGS += -finline-limit=2000
  42. # needed for earlier gcc 3.1
  43. CFLAGS += -fno-strength-reduce
  44. #CFLAGS += -g
  45. # prevent gcc from keeping the stack 16 byte aligned (FIXME)
  46. #CFLAGS += -mpreferred-stack-boundary=2
  47. HEAD := arch/x86_64/kernel/head.o arch/x86_64/kernel/head64.o arch/x86_64/kernel/init_task.o
  48. SUBDIRS := arch/x86_64/tools $(SUBDIRS) arch/x86_64/kernel arch/x86_64/mm arch/x86_64/lib
  49. CORE_FILES := arch/x86_64/kernel/kernel.o $(CORE_FILES)
  50. CORE_FILES +=  arch/x86_64/mm/mm.o
  51. LIBS := $(TOPDIR)/arch/x86_64/lib/lib.a $(LIBS)
  52. ifdef CONFIG_IA32_EMULATION
  53. SUBDIRS += arch/x86_64/ia32
  54. CORE_FILES += arch/x86_64/ia32/ia32.o
  55. endif
  56. ifdef CONFIG_HOSTFS
  57. SUBDIRS += arch/x86_64/hostfs
  58. core-$(CONFIG_HOSTFS) += arch/x86_64/hostfs/hostfs.o
  59. endif
  60. CORE_FILES += $(core-y)
  61. arch/x86_64/tools: dummy
  62. $(MAKE) linuxsubdirs SUBDIRS=arch/x86_64/tools 
  63. arch/x86_64/kernel: dummy 
  64. $(MAKE) linuxsubdirs SUBDIRS=arch/x86_64/kernel
  65. arch/x86_64/mm: dummy
  66. $(MAKE) linuxsubdirs SUBDIRS=arch/x86_64/mm
  67. MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
  68. vmlinux: arch/x86_64/vmlinux.lds
  69. FORCE: ;
  70. .PHONY: zImage bzImage compressed zlilo bzlilo zdisk bzdisk install 
  71. clean archclean archmrproper archdep checkoffset
  72. checkoffset: FORCE
  73. make -C arch/$(ARCH)/tools $(TOPDIR)/include/asm-x86_64/offset.h
  74. bzImage: checkoffset vmlinux
  75. @$(MAKEBOOT) bzImage
  76. bzImage-padded: checkoffset vmlinux
  77. @$(MAKEBOOT) bzImage-padded
  78. tmp:
  79. @$(MAKEBOOT) BOOTIMAGE=bzImage zlilo
  80. bzlilo: checkoffset vmlinux
  81. @$(MAKEBOOT) BOOTIMAGE=bzImage zlilo
  82. bzdisk: checkoffset vmlinux
  83. @$(MAKEBOOT) BOOTIMAGE=bzImage zdisk
  84. install: checkoffset vmlinux
  85. @$(MAKEBOOT) BOOTIMAGE=bzImage install
  86. archclean:
  87. @$(MAKEBOOT) clean
  88. @$(MAKE) -C $(TOPDIR)/arch/x86_64/tools clean
  89. archmrproper:
  90. rm -f $(TOPDIR)/arch/x86_64/tools/offset.h
  91. rm -f $(TOPDIR)/arch/x86_64/tools/offset.tmp
  92. rm -f $(TOPDIR)/include/asm-x86_64/offset.h
  93. archdep:
  94. @$(MAKE) -C $(TOPDIR)/arch/x86_64/tools all
  95. @$(MAKEBOOT) dep