~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/arch/mips64/Makefile

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 # This file is included by the global makefile so that you can add your own
  7 # architecture-specific flags and dependencies. Remember to do have actions
  8 # for "archclean" and "archdep" for cleaning up and making dependencies for
  9 # this architecture
 10 #
 11 
 12 #
 13 # Select the object file format to substitute into the linker script.
 14 #
 15 CPP=$(CC) -E
 16 ifdef CONFIG_CPU_LITTLE_ENDIAN
 17 tool-prefix     = mips64el-linux-
 18 else
 19 tool-prefix     = mips64-linux-
 20 endif
 21 
 22 ifdef CONFIG_CROSSCOMPILE
 23 CROSS_COMPILE  = $(tool-prefix)
 24 endif
 25 
 26 #
 27 # The ELF GCC uses -G0 -mabicalls -fpic as default.  We don't need PIC
 28 # code in the kernel since it only slows down the whole thing.  For the
 29 # old GCC these options are just the defaults.  At some point we might
 30 # make use of global pointer optimizations.
 31 #
 32 # The DECStation requires an ECOFF kernel for remote booting, other MIPS
 33 # machines may also.  Since BFD is incredibly buggy with respect to
 34 # crossformat linking we rely on the elf2ecoff tool for format conversion.
 35 #
 36 CFLAGS          += -I $(TOPDIR)/include/asm $(CFLAGS)
 37 CFLAGS          += -mabi=64 -G 0 -mno-abicalls -fno-pic -Wa,--trap -pipe
 38 LINKFLAGS       += -G 0 -static # -N
 39 MODFLAGS        += -mlong-calls
 40 
 41 ifdef CONFIG_REMOTE_DEBUG
 42 CFLAGS          := $(CFLAGS) -g
 43 endif
 44 
 45 #
 46 # CPU-dependent compiler/assembler options for optimization.
 47 #
 48 ifdef CONFIG_CPU_R4300
 49 CFLAGS          := $(CFLAGS) -mcpu=r4300 -mips3
 50 endif
 51 ifdef CONFIG_CPU_R4X00
 52 CFLAGS          := $(CFLAGS) -mcpu=r4600 -mips3
 53 endif
 54 ifdef CONFIG_CPU_R5000
 55 CFLAGS          := $(CFLAGS) -mcpu=r8000 -mips4
 56 endif
 57 ifdef CONFIG_CPU_NEVADA
 58 CFLAGS          := $(CFLAGS) -mcpu=r8000 -mips3 -mmad
 59 endif
 60 ifdef CONFIG_CPU_R8000
 61 CFLAGS          := $(CFLAGS) -mcpu=r8000 -mips4
 62 endif
 63 ifdef CONFIG_CPU_R10000
 64 CFLAGS          := $(CFLAGS) -mcpu=r8000 -mips4
 65 endif
 66 
 67 #
 68 # Board-dependent options and extra files
 69 #
 70 ifdef CONFIG_SGI_IP22
 71 LIBS          += arch/mips64/sgi-ip22/ip22.a arch/mips64/arc/arclib.a
 72 SUBDIRS       += arch/mips64/sgi-ip22 arch/mips64/arc
 73 #
 74 # Set LOADADDR to >= 0x88069000 if you want to leave space for symmon,
 75 # 0x88004000 for production kernels.  Note that the value must be
 76 # 16kb aligned or the handling of the current variable will break.
 77 #
 78 LOADADDR      += 0x88004000
 79 endif
 80 
 81 ifdef CONFIG_SGI_IP27
 82 LIBS          += arch/mips64/sgi-ip27/ip27.a arch/mips64/arc/arclib.a
 83 SUBDIRS       += arch/mips64/sgi-ip27 arch/mips64/arc
 84 #
 85 # Set LOADADDR to >= 0xc000000000300000 if you want to leave space for
 86 # symmon, 0xc00000000001c000 for production kernels.  Note that the value
 87 # must be 16kb aligned or the handling of the current variable will break.
 88 #
 89 #LOADADDR      += 0xa80000000001c000
 90 ifdef CONFIG_MAPPED_KERNEL
 91 LOADADDR      += 0xc001c000
 92 else
 93 LOADADDR      += 0x8001c000
 94 endif
 95 endif
 96 
 97 #
 98 # Some machines like the Indy need 32-bit ELF binaries for booting purposes.
 99 # Other need ECOFF, so we build a 32-bit ELF binary for them which we then
100 # convert to ECOFF using elf2ecoff.
101 #
102 ifdef CONFIG_BOOT_ELF32
103 CFLAGS += -Wa,-32
104 LINKFLAGS += -T arch/mips64/ld.script.elf32
105 endif
106 #
107 # The 64-bit ELF tools are pretty broken so at this time we generate 64-bit
108 # ELF files from 32-bit files by conversion.
109 #
110 ifdef CONFIG_BOOT_ELF64
111 CFLAGS += -Wa,-32
112 LINKFLAGS += -T arch/mips64/ld.script.elf32
113 #AS += -64
114 #LD += -m elf64bmip
115 #LINKFLAGS += -T arch/mips64/ld.script.elf64
116 endif
117 
118 LINKFLAGS += -Ttext $(LOADADDR)
119 
120 HEAD := arch/mips64/kernel/head.o arch/mips64/kernel/init_task.o
121 
122 SUBDIRS := $(addprefix arch/mips64/, tools) $(SUBDIRS) $(addprefix arch/mips64/, kernel mm lib)
123 CORE_FILES := arch/mips64/kernel/kernel.o arch/mips64/mm/mm.o $(CORE_FILES)
124 LIBS := arch/mips64/lib/lib.a $(LIBS)
125 
126 MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
127 
128 ifdef CONFIG_CPU_LITTLE_ENDIAN
129 64bit-bfd = elf64-littlemips
130 else
131 64bit-bfd = elf64-bigmips
132 endif
133 
134 vmlinux: arch/mips64/ld.script.elf32
135 arch/mips64/ld.script.elf32: arch/mips64/ld.script.elf32.S
136         $(CPP) -C -P -I$(HPATH) -imacros $(HPATH)/asm-mips64/sn/mapped_kernel.h -Umips arch/mips64/ld.script.elf32.S > arch/mips64/ld.script.elf32
137 
138 ifdef CONFIG_MAPPED_KERNEL
139 vmlinux.64: vmlinux
140         $(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xbfffffff40000000 $< $@
141 else
142 vmlinux.64: vmlinux
143         $(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xa7ffffff80000000 $< $@
144 endif
145 
146 zImage: vmlinux
147         @$(MAKEBOOT) zImage
148 
149 compressed: zImage
150 
151 zdisk: vmlinux
152         @$(MAKEBOOT) zdisk
153 
154 archclean:
155         @$(MAKEBOOT) clean
156         $(MAKE) -C arch/$(ARCH)/kernel clean
157         $(MAKE) -C arch/$(ARCH)/tools clean
158         rm -f vmlinux.64 arch/$(ARCH)/ld.script.elf32
159 
160 archmrproper:
161         @$(MAKEBOOT) mrproper
162         $(MAKE) -C arch/$(ARCH)/tools mrproper
163 
164 archdep:
165         if [ ! -f $(TOPDIR)/include/asm-$(ARCH)/offset.h ]; then \
166          touch $(TOPDIR)/include/asm-$(ARCH)/offset.h; \
167         fi;
168         @$(MAKEBOOT) dep

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.