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

嵌入式Linux

开发平台:

Unix_Linux

  1. #
  2. # This file is subject to the terms and conditions of the GNU General Public
  3. # License.  See the file "COPYING" in the main directory of this archive
  4. # for more details.
  5. #
  6. # Copyright (C) 1994, 1995, 1996 by Ralf Baechle
  7. # DECStation modifications by Paul M. Antoine, 1996
  8. #
  9. # This file is included by the global makefile so that you can add your own
  10. # architecture-specific flags and dependencies. Remember to do have actions
  11. # for "archclean" and "archdep" for cleaning up and making dependencies for
  12. # this architecture
  13. #
  14. #
  15. # Select the object file format to substitute into the linker script.
  16. #
  17. ifdef CONFIG_CPU_LITTLE_ENDIAN
  18. tool-prefix = mipsel-linux-
  19. else
  20. tool-prefix = mips-linux-
  21. endif
  22. ifdef CONFIG_CROSSCOMPILE
  23. CROSS_COMPILE  = $(tool-prefix)
  24. endif
  25. #
  26. # GCC uses -G0 -mabicalls -fpic as default.  We don't want PIC in the kernel
  27. # code since it only slows down the whole thing.  At some point we might make
  28. # use of global pointer optimizations but their use of $28 conflicts with
  29. # the current pointer optimization.
  30. #
  31. # The DECStation requires an ECOFF kernel for remote booting, other MIPS
  32. # machines may also.  Since BFD is incredibly buggy with respect to
  33. # crossformat linking we rely on the elf2ecoff tool for format conversion.
  34. #
  35. GCCFLAGS := -G 0 -mno-abicalls -fno-pic
  36. LINKFLAGS += -static
  37. MODFLAGS += -mlong-calls
  38. LD := $(LD) -G 0
  39. ifdef CONFIG_REMOTE_DEBUG
  40. CFLAGS := $(CFLAGS) -g
  41. endif
  42. #
  43. # CPU-dependent compiler/assembler options for optimization.
  44. #
  45. ifdef CONFIG_CPU_R3000
  46. GCCFLAGS += -mcpu=r3000 -mips1
  47. endif
  48. ifdef CONFIG_CPU_R6000
  49. GCCFLAGS += -mcpu=r6000 -mips2 -Wa,--trap
  50. endif
  51. ifdef CONFIG_CPU_R4300
  52. GCCFLAGS += -mcpu=r4300 -mips2 -Wa,--trap
  53. endif
  54. ifdef CONFIG_CPU_VR41XX
  55. GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
  56. endif
  57. ifdef CONFIG_CPU_R4X00
  58. GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
  59. endif
  60. ifdef CONFIG_CPU_MIPS32
  61. GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
  62. endif
  63. ifdef CONFIG_CPU_MIPS64
  64. GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
  65. endif
  66. ifdef CONFIG_CPU_R5000
  67. GCCFLAGS += -mcpu=r5000 -mips2 -Wa,--trap
  68. endif
  69. ifdef CONFIG_CPU_R5432
  70. GCCFLAGS        += -mcpu=r5000 -mips2 -Wa,--trap
  71. endif
  72. ifdef CONFIG_CPU_NEVADA
  73. # Cannot use -mmad with currently recommended tools
  74. GCCFLAGS += -mcpu=r5000 -mips2 -Wa,--trap
  75. endif
  76. ifdef CONFIG_CPU_RM7000
  77. GCCFLAGS += -mcpu=r5000 -mips2 -Wa,--trap
  78. endif
  79. ifdef CONFIG_CPU_SB1
  80. GCCFLAGS += -mcpu=sb1 -mips2 -Wa,--trap
  81. endif
  82. GCCFLAGS += -pipe
  83. CFLAGS := -I $(TOPDIR)/include/asm/gcc $(CFLAGS) $(GCCFLAGS)
  84. AFLAGS += $(GCCFLAGS)
  85. ASFLAGS += $(GCCFLAGS)
  86. #
  87. # We unconditionally build the math emulator
  88. #
  89. CORE_FILES +=arch/mips/math-emu/fpu_emulator.o
  90. SUBDIRS +=arch/mips/math-emu
  91. #
  92. # Board-dependent options and extra files
  93. #
  94. ifdef CONFIG_ALGOR_P4032
  95. CORE_FILES    += arch/mips/algor/algor.o
  96. SUBDIRS       += arch/mips/algor
  97. LOADADDR      += 0x80000000
  98. endif
  99. #
  100. # DECstation family
  101. #
  102. ifdef CONFIG_DECSTATION
  103. CORE_FILES    += arch/mips/dec/dec.o
  104. SUBDIRS       += arch/mips/dec arch/mips/dec/prom
  105. LIBS          += arch/mips/dec/prom/rexlib.a
  106. LOADADDR      += 0x80040000
  107. endif
  108. ifdef CONFIG_MIPS_ATLAS
  109. LIBS          += arch/mips/mips-boards/atlas/atlas.o arch/mips/mips-boards/generic/mipsboards.o
  110. SUBDIRS       += arch/mips/mips-boards/generic arch/mips/mips-boards/atlas
  111. LOADADDR      += 0x80100000
  112. endif
  113. ifdef CONFIG_MIPS_MALTA
  114. LIBS          += arch/mips/mips-boards/malta/malta.o arch/mips/mips-boards/generic/mipsboards.o
  115. SUBDIRS       += arch/mips/mips-boards/malta arch/mips/mips-boards/generic
  116. LOADADDR      += 0x80100000
  117. endif
  118. #
  119. # Acer PICA 61, Mips Magnum 4000 and Olivetti M700.
  120. #
  121. ifdef CONFIG_MIPS_JAZZ
  122. CORE_FILES    += arch/mips/jazz/jazz.o
  123. SUBDIRS       += arch/mips/jazz arch/mips/arc
  124. LIBS          += arch/mips/arc/arclib.a
  125. LOADADDR      += 0x80080000
  126. endif
  127. ifdef CONFIG_SNI_RM200_PCI
  128. CORE_FILES    += arch/mips/sni/sni.o
  129. SUBDIRS       += arch/mips/sni arch/mips/arc
  130. LIBS          += arch/mips/arc/arclib.a
  131. LOADADDR      += 0x80080000
  132. endif
  133. ifdef CONFIG_SGI_IP22
  134. CORE_FILES    += arch/mips/sgi/kernel/ip22-kern.o
  135. LIBS          += arch/mips/arc/arclib.a
  136. SUBDIRS       += arch/mips/sgi/kernel arch/mips/arc
  137. #
  138. # Set LOADADDR to >= 0x88069000 if you want to leave space for symmon,
  139. # 0x88002000 for production kernels.  Note that the value must be
  140. # 8kb aligned or the handling of the current variable will break.
  141. #
  142. LOADADDR      += 0x88002000
  143. endif
  144. #
  145. # Baget/MIPS
  146. #
  147. ifdef CONFIG_BAGET_MIPS
  148. SUBDIRS       += arch/mips/baget arch/mips/baget/prom
  149. LIBS          += arch/mips/baget/baget.a arch/mips/baget/prom/bagetlib.a
  150. LOADADDR      += 0x80001000
  151. endif
  152. #
  153. # NEC DDB Vrc-5074
  154. #
  155. ifdef CONFIG_DDB5074
  156. SUBDIRS       += arch/mips/ddb5074
  157. LIBS          += arch/mips/ddb5074/ddb5074.a
  158. LOADADDR      += 0x80080000
  159. endif
  160. #
  161. #
  162. # NEC DDB Vrc-5476
  163. #
  164. ifdef CONFIG_DDB5476
  165. SUBDIRS       += arch/mips/ddb5476
  166. LIBS          += arch/mips/ddb5476/ddb5476.a
  167. LOADADDR      += 0x80080000
  168. endif
  169. #
  170. #
  171. # NEC DDB Vrc-5477
  172. #
  173. ifdef CONFIG_DDB5477
  174. SUBDIRS       += arch/mips/ddb5xxx/common arch/mips/ddb5xxx/ddb5477
  175. LIBS          += arch/mips/ddb5xxx/common/ddb5xxx.o 
  176.                  arch/mips/ddb5xxx/ddb5477/ddb5477.o
  177. LOADADDR      += 0x80080000
  178. endif
  179. #
  180. # Galileo EV64120 Board
  181. #
  182. ifdef CONFIG_MIPS_EV64120
  183. LIBS          += arch/mips/galileo-boards/ev64120/ev64120.o
  184. SUBDIRS       += arch/mips/galileo-boards/ev64120
  185. LOADADDR      += 0x80100000
  186. endif
  187. #
  188. # Galileo EV96100 Board
  189. #
  190. ifdef CONFIG_MIPS_EV96100
  191. LIBS          += arch/mips/galileo-boards/ev96100/ev96100.o arch/mips/galileo-boards/generic/galboards.o
  192. SUBDIRS       += arch/mips/galileo-boards/generic arch/mips/galileo-boards/ev96100
  193. LOADADDR      += 0x80100000
  194. endif
  195. #
  196. # Momentum Ocelot board
  197. #
  198. ifdef CONFIG_MOMENCO_OCELOT
  199. # The Ocelot setup.o must be linked early - it does the ioremap() for the
  200. # mips_io_port_base.
  201. CORE_FILES    += arch/mips/gt64120/common/gt64120.o arch/mips/gt64120/momenco_ocelot/momenco_ocelot.o
  202. SUBDIRS       += arch/mips/gt64120/common arch/mips/gt64120/momenco_ocelot
  203. LOADADDR      += 0x80100000
  204. endif
  205. #
  206. # Philips Nino
  207. #
  208. ifdef CONFIG_NINO
  209. CORE_FILES    += arch/mips/philips/nino/nino.o
  210. SUBDIRS       += arch/mips/philips/nino
  211. LOADADDR      += 0x80000000
  212. endif
  213. #
  214. # ITE 8172 eval board with QED 5231 CPU
  215. #
  216. ifdef CONFIG_MIPS_ITE8172
  217. LIBS          += arch/mips/ite-boards/qed-4n-s01b/ite.o arch/mips/ite-boards/generic/it8172.o
  218. SUBDIRS       += arch/mips/ite-boards/generic arch/mips/ite-boards/qed-4n-s01b
  219. LOADADDR      += 0x80100000
  220. endif
  221. #
  222. # Globespan IVR eval board with QED 5231 CPU
  223. #
  224. ifdef CONFIG_MIPS_IVR
  225. LIBS          += arch/mips/ite-boards/ivr/ivr.o arch/mips/ite-boards/generic/it8172.o
  226. SUBDIRS       += arch/mips/ite-boards/generic arch/mips/ite-boards/ivr
  227. LOADADDR      += 0x80100000
  228. endif
  229. #
  230. # Au1000 eval board
  231. #
  232. ifdef CONFIG_MIPS_PB1000
  233. LIBS          += arch/mips/au1000/pb1000/pb1000.o arch/mips/au1000/common/au1000.o
  234. SUBDIRS       += arch/mips/au1000/pb1000 arch/mips/au1000/common
  235. LOADADDR      += 0x80100000
  236. endif
  237. #
  238. # Choosing incompatible machines durings configuration will result in
  239. # error messages during linking.  Select a default linkscript if
  240. # none has been choosen above.
  241. #
  242. vmlinux: arch/$(ARCH)/ld.script
  243. arch/$(ARCH)/ld.script: arch/$(ARCH)/ld.script.in arch/$(ARCH)/Makefile
  244. sed -e 's/@@LOADADDR@@/$(LOADADDR)/' <$< >$@
  245. LINKFLAGS += -T arch/$(ARCH)/ld.script
  246. HEAD := arch/mips/kernel/head.o arch/mips/kernel/init_task.o
  247. SUBDIRS := $(addprefix arch/mips/, tools) $(SUBDIRS) $(addprefix arch/mips/, kernel mm lib)
  248. CORE_FILES := arch/mips/kernel/kernel.o arch/mips/mm/mm.o $(CORE_FILES)
  249. LIBS := arch/mips/lib/lib.a $(LIBS)
  250. ifdef CONFIG_BAGET_MIPS
  251. BAGETBOOT = $(MAKE) -C arch/$(ARCH)/baget
  252. balo:  vmlinux
  253. $(BAGETBOOT) balo
  254. endif
  255. ifdef CONFIG_MIPS_EV64120
  256. GALILEOBOOT = $(MAKE) -C arch/$(ARCH)/galileo-boards/ev64120
  257. gboot: vmlinux
  258. $(MAKE) -C arch/$(ARCH)/galileo-boards/ev64120/compressed 
  259. endif
  260. MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
  261. vmlinux.ecoff: vmlinux
  262. @$(MAKEBOOT) $@
  263. archclean:
  264. @$(MAKEBOOT) clean
  265. rm -f arch/$(ARCH)/ld.script
  266. $(MAKE) -C arch/$(ARCH)/tools clean
  267. $(MAKE) -C arch/mips/baget clean
  268. archmrproper:
  269. @$(MAKEBOOT) mrproper
  270. $(MAKE) -C arch/$(ARCH)/tools mrproper
  271. archdep:
  272. if [ ! -f $(TOPDIR)/include/asm-$(ARCH)/offset.h ]; then 
  273.  touch $(TOPDIR)/include/asm-$(ARCH)/offset.h; 
  274. fi;
  275. @$(MAKEBOOT) dep