patch-2.3.48 linux/arch/mips64/Makefile

Next file: linux/arch/mips64/arc/Makefile
Previous file: linux/arch/mips/tools/offset.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.47/linux/arch/mips64/Makefile linux/arch/mips64/Makefile
@@ -0,0 +1,149 @@
+# $Id: Makefile,v 1.6 2000/01/29 01:41:59 ralf Exp $
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License.  See the file "COPYING" in the main directory of this archive
+# for more details.
+#
+# This file is included by the global makefile so that you can add your own
+# architecture-specific flags and dependencies. Remember to do have actions
+# for "archclean" and "archdep" for cleaning up and making dependencies for
+# this architecture
+#
+
+#
+# Select the object file format to substitute into the linker script.
+#
+ifdef CONFIG_CPU_LITTLE_ENDIAN
+tool-prefix	= mips64el-linux-
+else
+tool-prefix	= mips64-linux-
+endif
+
+ifdef CONFIG_CROSSCOMPILE
+CROSS_COMPILE  = $(tool-prefix)
+endif
+
+#
+# The ELF GCC uses -G0 -mabicalls -fpic as default.  We don't need PIC
+# code in the kernel since it only slows down the whole thing.  For the
+# old GCC these options are just the defaults.  At some point we might
+# make use of global pointer optimizations.
+#
+# The DECStation requires an ECOFF kernel for remote booting, other MIPS
+# machines may also.  Since BFD is incredibly buggy with respect to
+# crossformat linking we rely on the elf2ecoff tool for format conversion.
+#
+CFLAGS		+= -mabi=64 -G 0 -mno-abicalls -fno-pic -pipe
+LINKFLAGS	+= -G 0 -static # -N
+MODFLAGS	+= -mlong-calls
+
+ifdef CONFIG_REMOTE_DEBUG
+CFLAGS		:= $(CFLAGS) -g
+endif
+
+#
+# CPU-dependent compiler/assembler options for optimization.
+#
+ifdef CONFIG_CPU_R4300
+CFLAGS		:= $(CFLAGS) -mcpu=r4300 -mips3
+endif
+ifdef CONFIG_CPU_R4X00
+CFLAGS		:= $(CFLAGS) -mcpu=r4600 -mips3
+endif
+ifdef CONFIG_CPU_R5000
+CFLAGS		:= $(CFLAGS) -mcpu=r8000 -mips4
+endif
+ifdef CONFIG_CPU_NEVADA
+CFLAGS		:= $(CFLAGS) -mcpu=r8000 -mips3 -mmad
+endif
+ifdef CONFIG_CPU_R8000
+CFLAGS		:= $(CFLAGS) -mcpu=r8000 -mips4
+endif
+ifdef CONFIG_CPU_R10000
+CFLAGS		:= $(CFLAGS) -mcpu=r8000 -mips4
+endif
+
+#
+# Board-dependent options and extra files
+#
+ifdef CONFIG_SGI_IP22
+LIBS          += arch/mips64/sgi-ip22/ip22.a arch/mips64/arc/arclib.a
+SUBDIRS       += arch/mips64/sgi-ip22 arch/mips64/arc
+#
+# Set LOADADDR to >= 0x88069000 if you want to leave space for symmon,
+# 0x88004000 for production kernels.  Note that the value must be
+# 16kb aligned or the handling of the current variable will break.
+#
+LOADADDR      += 0x88004000
+endif
+
+ifdef CONFIG_SGI_IP27
+LIBS          += arch/mips64/sgi-ip27/ip27.a arch/mips64/arc/arclib.a
+SUBDIRS       += arch/mips64/sgi-ip27 arch/mips64/arc
+#
+# Set LOADADDR to >= 0xc000000000300000 if you want to leave space for
+# symmon, 0xc00000000001c000 for production kernels.  Note that the value
+# must be 16kb aligned or the handling of the current variable will break.
+#
+#LOADADDR      += 0xa80000000001c000
+LOADADDR      += 0x8001c000
+endif
+
+#
+# Some machines like the Indy need 32-bit ELF binaries for booting purposes.
+# Other need ECOFF, so we build a 32-bit ELF binary for them which we then
+# convert to ECOFF using elf2ecoff.
+#
+ifdef CONFIG_BOOT_ELF32
+CFLAGS += -Wa,-32
+LINKFLAGS += -T arch/mips64/ld.script.elf32
+endif
+#
+# The 64-bit ELF tools are pretty broken so at this time we generate 64-bit
+# ELF files from 32-bit files by conversion.
+#
+ifdef CONFIG_BOOT_ELF64
+CFLAGS += -Wa,-32
+LINKFLAGS += -T arch/mips64/ld.script.elf32
+#AS += -64
+#LD += -m elf64bmip
+#LINKFLAGS += -T arch/mips64/ld.script.elf64
+endif
+
+LINKFLAGS += -Ttext $(LOADADDR)
+
+HEAD := arch/mips64/kernel/head.o arch/mips64/kernel/init_task.o
+
+SUBDIRS := $(addprefix arch/mips64/, tools) $(SUBDIRS) $(addprefix arch/mips64/, kernel mm lib)
+CORE_FILES := arch/mips64/kernel/kernel.o arch/mips64/mm/mm.o $(CORE_FILES)
+LIBS := arch/mips64/lib/lib.a $(LIBS)
+
+MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
+
+ifdef CONFIG_CPU_LITTLE_ENDIAN
+64bit-bfd = elf64-littlemips
+else
+64bit-bfd = elf64-bigmips
+endif
+
+vmlinux.64: vmlinux
+	$(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xa7ffffff80000000 $< $@
+
+zImage: vmlinux
+	@$(MAKEBOOT) zImage
+
+compressed: zImage
+
+zdisk: vmlinux
+	@$(MAKEBOOT) zdisk
+
+archclean:
+	@$(MAKEBOOT) clean
+	$(MAKE) -C arch/$(ARCH)/kernel clean
+	$(MAKE) -C arch/$(ARCH)/tools clean
+	rm -f vmlinux.64
+
+archmrproper:
+
+archdep:
+	@$(MAKEBOOT) dep

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)