1 # SPDX-License-Identifier: GPL-2.0-only << 2 # 1 # 3 # Copyright (C) 2004, 2007-2010, 2011-2012 Syn !! 2 # m68k/Makefile 4 # 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 Hamish Macdonald >> 14 # >> 15 >> 16 # test for cross compiling >> 17 COMPILE_ARCH = $(shell uname -m) 5 18 6 KBUILD_DEFCONFIG := haps_hs_smp_defconfig !! 19 # override top level makefile >> 20 AS += -m68020 >> 21 LD += -m m68kelf >> 22 ifneq ($(COMPILE_ARCH),$(ARCH)) >> 23 # prefix for cross-compiling binaries >> 24 CROSS_COMPILE = m68k-linux- >> 25 endif 7 26 8 ifeq ($(CROSS_COMPILE),) !! 27 ifndef CONFIG_SUN3 9 CROSS_COMPILE := $(call cc-cross-prefix, arc-l !! 28 LINKFLAGS = -T $(TOPDIR)/arch/m68k/vmlinux.lds >> 29 else >> 30 LINKFLAGS = -T $(TOPDIR)/arch/m68k/vmlinux-sun3.lds -N 10 endif 31 endif 11 32 12 cflags-y += -fno-common -pipe -fno-buil !! 33 # without -fno-strength-reduce the 53c7xx.c driver fails ;-( >> 34 CFLAGS += -pipe -fno-strength-reduce -ffixed-a2 13 35 14 tune-mcpu-def-$(CONFIG_ISA_ARCOMPACT) := -mc !! 36 # enable processor switch if compiled only for a single cpu 15 tune-mcpu-def-$(CONFIG_ISA_ARCV2) := -mc !! 37 ifndef CONFIG_M68020 >> 38 ifndef CONFIG_M68030 >> 39 >> 40 ifndef CONFIG_M68060 >> 41 CFLAGS := $(CFLAGS) -m68040 >> 42 endif >> 43 >> 44 ifndef CONFIG_M68040 >> 45 CFLAGS := $(CFLAGS) -m68060 >> 46 endif 16 47 17 ifeq ($(CONFIG_ARC_TUNE_MCPU),) << 18 cflags-y += $(t << 19 else << 20 tune-mcpu := $(C << 21 ifneq ($(call cc-option,$(tune-mcpu)),) << 22 cflags-y += $(t << 23 else << 24 # The flag provided by 'CONFIG_ARC_TUNE_MCPU' << 25 # (probably the compiler is too old). Use ISA << 26 $(warning ** WARNING ** CONFIG_ARC_TUNE_MCPU f << 27 cflags-y += $(t << 28 endif 48 endif 29 endif 49 endif 30 50 31 ifdef CONFIG_ARC_CURR_IN_REG !! 51 ifdef CONFIG_KGDB 32 # For a global register definition, make sure !! 52 # If configured for kgdb support, include debugging infos and keep the 33 # We had a customer reported bug where some co !! 53 # frame pointer 34 # any kernel headers, and missing the global r !! 54 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) -g 35 # Can't do unconditionally because of recursiv << 36 # due to <linux/thread_info.h> << 37 LINUXINCLUDE += -include $(srctree)/arch/a << 38 cflags-y += -ffixed-gp << 39 endif 55 endif 40 56 41 cflags-y += -fs !! 57 ifndef CONFIG_SUN3 >> 58 HEAD := arch/m68k/kernel/head.o >> 59 else >> 60 HEAD := arch/m68k/kernel/sun3-head.o >> 61 endif 42 62 43 cflags-$(CONFIG_ARC_HAS_LLSC) += -ml !! 63 SUBDIRS += arch/m68k/kernel arch/m68k/mm arch/m68k/lib 44 cflags-$(CONFIG_ARC_HAS_SWAPE) += -ms !! 64 CORE_FILES := arch/m68k/kernel/kernel.o arch/m68k/mm/mm.o $(CORE_FILES) >> 65 LIBS += arch/m68k/lib/lib.a 45 66 46 ifdef CONFIG_ISA_ARCV2 !! 67 ifdef CONFIG_Q40 >> 68 CORE_FILES := $(CORE_FILES) arch/m68k/q40/q40.o >> 69 SUBDIRS := $(SUBDIRS) arch/m68k/q40 >> 70 endif 47 71 48 ifdef CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS !! 72 ifdef CONFIG_AMIGA 49 cflags-y += -mu !! 73 CORE_FILES := $(CORE_FILES) arch/m68k/amiga/amiga.o 50 else !! 74 SUBDIRS := $(SUBDIRS) arch/m68k/amiga 51 cflags-y += -mn !! 75 endif >> 76 >> 77 ifdef CONFIG_ATARI >> 78 CORE_FILES := $(CORE_FILES) arch/m68k/atari/atari.o >> 79 SUBDIRS := $(SUBDIRS) arch/m68k/atari >> 80 endif >> 81 >> 82 ifdef CONFIG_MAC >> 83 CORE_FILES := $(CORE_FILES) arch/m68k/mac/mac.o >> 84 SUBDIRS := $(SUBDIRS) arch/m68k/mac >> 85 endif >> 86 >> 87 ifdef CONFIG_HP300 >> 88 CORE_FILES := $(CORE_FILES) arch/m68k/hp300/hp300.o >> 89 SUBDIRS := $(SUBDIRS) arch/m68k/hp300 >> 90 endif >> 91 >> 92 ifdef CONFIG_APOLLO >> 93 CORE_FILES := $(CORE_FILES) arch/m68k/apollo/apollo.o >> 94 SUBDIRS := $(SUBDIRS) arch/m68k/apollo 52 endif 95 endif 53 96 54 ifndef CONFIG_ARC_HAS_LL64 !! 97 ifdef CONFIG_MVME147 55 cflags-y += -mn !! 98 CORE_FILES := $(CORE_FILES) arch/m68k/mvme147/mvme147.o >> 99 SUBDIRS := $(SUBDIRS) arch/m68k/mvme147 56 endif 100 endif 57 101 58 ifndef CONFIG_ARC_HAS_DIV_REM !! 102 ifdef CONFIG_MVME16x 59 cflags-y += -mn !! 103 CORE_FILES := $(CORE_FILES) arch/m68k/mvme16x/mvme16x.o >> 104 SUBDIRS := $(SUBDIRS) arch/m68k/mvme16x 60 endif 105 endif 61 106 >> 107 ifdef CONFIG_BVME6000 >> 108 CORE_FILES := $(CORE_FILES) arch/m68k/bvme6000/bvme6000.o >> 109 SUBDIRS := $(SUBDIRS) arch/m68k/bvme6000 62 endif 110 endif 63 111 64 cfi := $(call as-instr,.cfi_startproc\n.cfi_en !! 112 ifdef CONFIG_SUN3X 65 cflags-$(CONFIG_ARC_DW2_UNWIND) += -fa !! 113 CORE_FILES := $(CORE_FILES) arch/m68k/sun3x/sun3x.o arch/m68k/sun3/sun3.o >> 114 SUBDIRS := $(SUBDIRS) arch/m68k/sun3x arch/m68k/sun3 >> 115 endif 66 116 67 # small data is default for elf32 tool-chain. !! 117 ifdef CONFIG_SUN3 68 # This also allows repurposing GP as scratch r !! 118 CORE_FILES := $(CORE_FILES) arch/m68k/sun3/sun3.o arch/m68k/sun3/prom/promlib.a 69 disable_small_data := y !! 119 SUBDIRS := $(SUBDIRS) arch/m68k/sun3 arch/m68k/sun3/prom 70 cflags-$(disable_small_data) += -mn !! 120 endif 71 121 72 cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb !! 122 ifdef CONFIG_M68040 73 ldflags-$(CONFIG_CPU_BIG_ENDIAN) += -EB !! 123 CORE_FILES := $(CORE_FILES) arch/m68k/fpsp040/fpsp.o >> 124 SUBDIRS := $(SUBDIRS) arch/m68k/fpsp040 >> 125 endif 74 126 75 LIBGCC = $(shell $(CC) $(cflags-y) --print-li !! 127 ifdef CONFIG_M68060 >> 128 CORE_FILES := $(CORE_FILES) arch/m68k/ifpsp060/ifpsp.o >> 129 SUBDIRS := $(SUBDIRS) arch/m68k/ifpsp060 >> 130 endif 76 131 77 # Modules with short calls might break for cal !! 132 ifdef CONFIG_M68KFPU_EMU 78 KBUILD_CFLAGS_MODULE += -mlong-calls -mno-m !! 133 CORE_FILES := $(CORE_FILES) arch/m68k/math-emu/mathemu.o >> 134 SUBDIRS := $(SUBDIRS) arch/m68k/math-emu >> 135 endif 79 136 80 # Finally dump eveything into kernel build sys !! 137 lilo: vmlinux 81 KBUILD_CFLAGS += $(cflags-y) !! 138 if [ -f $(INSTALL_PATH)/vmlinux ]; then mv -f $(INSTALL_PATH)/vmlinux $(INSTALL_PATH)/vmlinux.old; fi 82 KBUILD_AFLAGS += $(KBUILD_CFLAGS) !! 139 if [ -f $(INSTALL_PATH)/System.map ]; then mv -f $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi 83 KBUILD_LDFLAGS += $(ldflags-y) !! 140 cat vmlinux > $(INSTALL_PATH)/vmlinux >> 141 cp System.map $(INSTALL_PATH)/System.map >> 142 if [ -x /sbin/lilo ]; then /sbin/lilo; else /etc/lilo/install; fi 84 143 85 # w/o this dtb won't embed into kernel binary !! 144 zImage compressed: vmlinux.gz 86 core-y += arch/arc/boot/dts/ << 87 145 88 core-y += arch/arc/pl !! 146 vmlinux.gz: vmlinux 89 core-$(CONFIG_ARC_PLAT_TB10X) += arch/arc/pl << 90 core-$(CONFIG_ARC_PLAT_AXS10X) += arch/arc/pl << 91 core-$(CONFIG_ARC_SOC_HSDK) += arch/arc/pl << 92 147 93 libs-y += arch/arc/lib/ $(LIBGCC) !! 148 ifndef CONFIG_KGDB >> 149 cp vmlinux vmlinux.tmp >> 150 $(STRIP) vmlinux.tmp >> 151 gzip -9c vmlinux.tmp >vmlinux.gz >> 152 rm vmlinux.tmp >> 153 else >> 154 gzip -9c vmlinux >vmlinux.gz >> 155 endif 94 156 95 boot := arch/arc/boot !! 157 bzImage: vmlinux.bz2 96 158 97 boot_targets := uImage.bin uImage.gz uImage.lz !! 159 vmlinux.bz2: vmlinux 98 160 99 PHONY += $(boot_targets) !! 161 ifndef CONFIG_KGDB 100 $(boot_targets): vmlinux !! 162 cp vmlinux vmlinux.tmp 101 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ !! 163 $(STRIP) vmlinux.tmp >> 164 bzip2 -1c vmlinux.tmp >vmlinux.bz2 >> 165 rm vmlinux.tmp >> 166 else >> 167 bzip2 -1c vmlinux >vmlinux.bz2 >> 168 endif 102 169 103 uimage-default-y := uIm !! 170 archclean: 104 uimage-default-$(CONFIG_KERNEL_GZIP) := uIm !! 171 rm -f vmlinux.gz vmlinux.bz2 105 uimage-default-$(CONFIG_KERNEL_LZMA) := uIm !! 172 rm -f arch/m68k/kernel/m68k_defs.h arch/m68k/kernel/m68k_defs.d 106 173 107 PHONY += uImage !! 174 archmrproper: 108 uImage: $(uimage-default-y) << 109 @ln -sf $< $(boot)/uImage << 110 @$(kecho) ' Image $(boot)/uImage is r << 111 175 112 CLEAN_FILES += $(boot)/uImage !! 176 archdep:
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.