Makefile.arm
上传用户:wudi5211
上传日期:2010-01-21
资源大小:607k
文件大小:4k
源码类别:

嵌入式Linux

开发平台:

C/C++

  1. # This material is inherited from the Linux Makefile: arch/arm/Makefile:
  2. # (2.4.0.-test6 official)  -- maybe the last part is not needed, though
  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) 1995-1999 by Russell King
  14. OBJCOPY := $(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S
  15. CPP := $(CC) -E
  16. LINKFLAGS := -p -X -T arch/arm/vmlinux.lds
  17. ARCHCC := $(word 1,$(CC))
  18. AFLAGS += -mno-fpu
  19. CFLAGS_PIPE := -pipe
  20. CFLAGS := $(CFLAGS) $(CFLAGS_PIPE) -msoft-float
  21. ifdef CONFIG_FRAME_POINTER
  22. CFLAGS := $(CFLAGS:-fomit-frame-pointer=)
  23. endif
  24. ifdef CONFIG_DEBUG_INFO
  25. CFLAGS += -g
  26. endif
  27. GZFLAGS = -9
  28. # Ensure this is ld "2.9.4" or later
  29. NEW_LINKER := $(shell if $(LD) --gc-sections --version >/dev/null 2>&1; then echo y; else echo n; fi)
  30. ifneq ($(NEW_LINKER),y)
  31. dummy:; @echo '*** ${VERSION}.${PATCHLEVEL} kernels no longer build correctly with old versions of binutils.'
  32. @echo '*** Please upgrade your binutils to 2.9.5.'
  33. @false
  34. endif
  35. # GCC 2.7 uses different options to later compilers; sort out which we have
  36. NEW_GCC := $(shell if $(CC) --version 2>&1 | grep '^2.7' > /dev/null; then echo n; else echo y; fi)
  37. #
  38. # select flags depending on the compiler
  39. #
  40. ifeq ($(NEW_GCC),y)
  41. CFLAGS += -mshort-load-bytes
  42. CFLAGS_PROC_CPU_26 := -mcpu=arm3 -Os
  43. CFLAGS_PROC_CPU_32v3 := -march=armv3
  44. CFLAGS_PROC_CPU_32v4 := -march=armv4
  45. CFLAGS_ARM6 := -mtune=arm6
  46. CFLAGS_ARM7 := -mtune=arm7
  47. CFLAGS_ARM720 := -mtune=arm7tdmi
  48. CFLAGS_SA110 := -mtune=strongarm110
  49. else
  50. CFLAGS += -DNO_TEXT_SECTIONS
  51. CFLAGS_PROC_CPU_26 := -m3
  52. CFLAGS_PROC_CPU_32v3 :=
  53. CFLAGS_PROC_CPU_32v4 :=
  54. CFLAGS_ARM6 := -m6
  55. CFLAGS_ARM7 := -m6
  56. CFLAGS_ARM720 := -m6
  57. CFLAGS_SA110 := -m6
  58. endif
  59. #
  60. # Select CPU dependent flags
  61. #
  62. ifeq ($(CONFIG_CPU_26),y)
  63.  PROCESSOR  = armo
  64.  TEXTADDR  = 0x02080000
  65.  CFLAGS += $(CFLAGS_PROC_CPU_26)
  66.  AFLAGS += -mapcs-26
  67. endif
  68. ifeq ($(CONFIG_CPU_32),y)
  69.  PROCESSOR  = armv
  70.  TEXTADDR  = 0xC0008000
  71.  ifeq ($(CONFIG_CPU_32v4),y)
  72.   CFLAGS += $(CFLAGS_PROC_CPU_32v4)
  73.   AFLAGS += -mapcs-32 -marmv4
  74.  else
  75.   CFLAGS += $(CFLAGS_PROC_CPU_32v3)
  76.   AFLAGS += -mapcs-32 -marmv3m
  77.  endif
  78.  #
  79.  # Exactly one of the following must be selected
  80.  #
  81.  ifeq ($(CONFIG_CPU_ARM6),y)
  82.   CFLAGS += $(CFLAGS_ARM6)
  83.  else
  84.  ifeq ($(CONFIG_CPU_ARM7),y)
  85.   CFLAGS += $(CFLAGS_ARM7)
  86.  else
  87.  ifeq ($(CONFIG_CPU_ARM720),y)
  88.   CFLAGS += $(CFLAGS_ARM720)
  89.  else
  90.  ifeq ($(CONFIG_CPU_SA110),y)
  91.   CFLAGS += $(CFLAGS_SA110)
  92.  else
  93.  ifeq ($(CONFIG_CPU_SA1100),y)
  94.   CFLAGS += $(CFLAGS_SA110)
  95.  endif
  96.  endif
  97.  endif
  98.  endif
  99.  endif
  100. endif
  101. LIBGCC := $(shell $(CC) $(CFLAGS) --print-libgcc-file-name)
  102. export LIBGCC MACHINE PROCESSOR TEXTADDR GZFLAGS
  103. ifeq ($(CONFIG_ARCH_ARCA5K),y)
  104. MACHINE  = arc
  105. ARCHDIR  = arc
  106. endif
  107. ifeq ($(CONFIG_ARCH_RPC),y)
  108. MACHINE  = rpc
  109. ARCHDIR  = rpc
  110. endif
  111. ifeq ($(CONFIG_ARCH_EBSA110),y)
  112. MACHINE  = ebsa110
  113. ARCHDIR  = ebsa110
  114. endif
  115. ifeq ($(CONFIG_ARCH_CLPS7500),y)
  116. MACHINE  = clps7500
  117. ARCHDIR  = cl7500
  118. endif
  119. ifeq ($(CONFIG_FOOTBRIDGE),y)
  120. MACHINE  = footbridge
  121. ARCHDIR  = ebsa285
  122. endif
  123. ifeq ($(CONFIG_ARCH_CO285),y)
  124. TEXTADDR  = 0x60008000
  125. endif
  126. ifeq ($(CONFIG_ARCH_NEXUSPCI),y)
  127. MACHINE  = nexuspci
  128. ARCHDIR  = nexuspci
  129. endif
  130. ifeq ($(CONFIG_ARCH_SHARK),y)
  131. MACHINE  = shark
  132. ARCHDIR  = shark
  133. endif
  134. ifeq ($(CONFIG_ARCH_SA1100),y)
  135. MACHINE  = sa1100
  136. ARCHDIR  = sa1100
  137. endif
  138. ifeq ($(CONFIG_ARCH_L7200),y)
  139. MACHINE  = l7200
  140. ARCHDIR  = l7200
  141. endif