blob: 4d078eb84199c09cb793ca38d1c0476688d02a7e [file] [log] [blame]
# (C) Copyright 2007 Marvell International Ltd. ?
#?All Rights Reserved
#
##############################################################
#
# Top level make file for the bootloader
#
##############################################################
.EXPORT_ALL_VARIABLES:
##############################################################
# Global Macros
# These values are defaults and can be platform.mak
# will override these values if desired
#
# Note the defaults;
# build type: release
# non-trusted
# see Loader/Platforms/$PLATFORM/bl_platform_linux.mak for the rest of the defaults
#
##############################################################
LOADERVERSION = 3_3_2
# directory information about this source tree...
TOPDIR :=$(shell pwd)/../..
################# FLAGS START ################################
RELEASE = 1
ToolChain = LINUX
# 1=ARM, 0=Thumb mode
ARM_MODE = 0
TRUSTED = 0
TB_ERROR_DOWNLOAD = 1
DOWNLOAD_USED = 1
DFOTA = 0
SDFOTA = 0
UPDATER = 0
OUM4DFOTA = 0
# Set UART_UPLOAD to 1 if USBCI is 0 AND you need upload through UART
EMULATOR = 0
FPGA = 0
XZ_SUPPORT = 0
XZDEC_SUPPORT= 0
DUAL_TIM = 0
SPI_LCD = 0
CP_BOOT = 0
PMIC_PWRDN = 1
MEM_TEST = 0
EXT_BLF_INSTR = 0
IMG_RBC = 1
BURN_DTIM_LAST = 1
# Add by liubin
MBTK_AUTO_DL = 1
# DFOTA / FOTA
MBTK_OTA = FOTA
USE_SERIAL_DEBUG = 1
UPDATE_USE_GPIO = 0
UPDATE_USE_DETECT_USB = 1
EMMD_SUPPORT = 1
ENABLE_MMU = 1
LZMA_SUPPORT = 1
################# DEBUG FLAGS ################################
VERBOSE_DEBUG = 0
VERBOSE_MODE = 1
COPYIMAGESTOFLASH = 1
BOARD_DEBUG = 0
BASE_CLOCK_208MHZ = 0
################# FLAGS END ##################################
USB_DEVICE_ONLY = 1
DTIM_RECOVERY_SUPPORT = 0
###
### trusted related flags
###
USE_IPPCP_LIB = 0
BL_USE_GEU_FUSE_PROG = 0
BL_USE_SECURITY_CALLBACK = 0
PRODUCT_BUILD = 0
SECURE_DOWNLOAD = 1
####################################################
REPORT_DDR_INFO = 1
SHRINK_BINARY_SIZE = 1
NOSWAP_DDR = 0
NAND_LP = 0
ARCH ?= v7
#Platforms
NZAC = 0
LAPW = 0
FLCN = 0
FACT = 0
KAGU = 0
KSTRZ = 0
KSTRA = 0
# Platforms:
# NZAS:
# LAPW -- 1903
# FLCN -- 1803
# FACT -- 1806
# KAGU -- 1828
# NZAC -- 1802S /* not supported in v2102 */
# KSTR
# KSTRZ -- 1906
# KSTRA -- 1901
ifeq "$(PLATFORM)" "NZAS"
ifeq ($(PROFILE),$(filter LAPW%,$(PROFILE)))
LAPW = 1
endif
ifeq ($(PROFILE),$(filter KAGU%,$(PROFILE)))
KAGU = 1
endif
ifeq ($(PROFILE),$(filter FALCON%,$(PROFILE)))
FLCN = 1
endif
ifeq ($(PROFILE),$(filter FACT%,$(PROFILE)))
FACT = 1
endif
endif
ifeq "$(PLATFORM)" "KSTR"
ifeq ($(PROFILE),$(filter KSTRZ%,$(PROFILE)))
KSTRZ = 1
else
KSTRA = 1
endif
endif
##########################################################
##### Profile specifc configuration
ifeq ($(PROFILE),$(filter $(PROFILE),FALCON403 LAPW503))
SDFOTA = 1
XZ_SUPPORT = 1
LZMA_SUPPORT = 0
OUM4DFOTA = 1
endif
ifeq ($(PROFILE),$(filter $(PROFILE),FACT301 KSTR901 KSTRZ906 LAPW501))
DUAL_TIM = 1
OUM4DFOTA = 1
SDFOTA = 1
ifeq "$(UPDATER)" "1"
XZ_SUPPORT = 1
LZMA_SUPPORT = 0
else
XZ_SUPPORT = 0
LZMA_SUPPORT = 1
endif
endif
# Add by liubin for ota
ifeq "$(MBTK_OTA)" "DFOTA"
DFOTA = 1
OUM4DFOTA = 0
SDFOTA = 0
else
DFOTA = 0
OUM4DFOTA = 1
SDFOTA = 1
endif
# End by liubin
ifeq "$(PROFILE)" "FACT306"
DUAL_TIM = 1
endif
ifeq "$(CP_BOOT)" "1"
ENABLE_MMU = 0
endif
# Global Tools
# These values are defaults and can be platform.mak
# will override these values if desired
##############################################################
ifeq "$(CROSS_COMPILE)" ""
CROSS_COMPILE = arm-marvell-eabi-
else
CROSS_COMPILE = $(CROSS_COMPILE)
endif
AS = $(CROSS_COMPILE)as $(AFLAGS)
LD = $(CROSS_COMPILE)ld $(LDFLAGS)
CC = $(CROSS_COMPILE)gcc $(CFLAGS)
STRIP = $(CROSS_COMPILE)strip -R .note -R .comment -S
OBJCOPY = $(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S
OBJDUMP = $(CROSS_COMPILE)objdump
MAKE = make
RM = rm -f
DIR = mkdir
##############################################################
# Default compile flags
# These values are defaults and can be platform.mak
# will override these values if desired
##############################################################
#generic between Windows and Linux (easy to update both)
CFLAGS = -DI2C=$(I2C) \
-DONENAND_CODE=$(ONENAND) -DNAND_CODE=$(NAND) \
-D$(PLATFORM)=1 \
-DSPINOR_CODE=$(SPINOR) -DSPINAND_CODE=$(SPINAND) \
-DQSPINOR_CODE=$(QSPINOR) -DQSPINAND_CODE=$(QSPINAND) \
-DMMC_CODE=$(MMC) \
-DNOSWAP_DDR=$(NOSWAP_DDR) \
-DNAND_LP=$(NAND_LP) \
-DMMC_SDMA_MODE=$(MMC_SDMA_MODE) \
-DMMC_ADMA_MODE=$(MMC_ADMA_MODE) \
-DBOOTROM=0 -DTRUSTED=$(TRUSTED) -DTB_ERROR_DOWNLOAD=$(TB_ERROR_DOWNLOAD) -DBOARD_DEBUG=$(BOARD_DEBUG) \
-DVERBOSE_MODE=$(VERBOSE_MODE) -DVERBOSE_DEBUG=$(VERBOSE_DEBUG) -DDOWNLOAD_USED=$(DOWNLOAD_USED) \
-DCOPYIMAGESTOFLASH=$(COPYIMAGESTOFLASH) \
-DUSBCI=$(USBCI) -DCI2_USB_DDR_BUF=$(CI2_USB_DDR_BUF) \
-DUSE_SERIAL_DEBUG=$(USE_SERIAL_DEBUG) \
-DEMMD_SUPPORT=$(EMMD_SUPPORT) -DENABLE_MMU=$(ENABLE_MMU)\
-DOBM_USE_DDR_ADDR=$(OBM_USE_DDR_ADDR) \
-DBASE_CLOCK_208MHZ=$(BASE_CLOCK_208MHZ) \
-DUPDATE_USE_GPIO=$(UPDATE_USE_GPIO) \
-DUPDATE_USE_DETECT_USB=$(UPDATE_USE_DETECT_USB) \
-DLZMA_SUPPORT=$(LZMA_SUPPORT) \
-DXZ_SUPPORT=$(XZ_SUPPORT) \
-DUSE_IPPCP_LIB=$(USE_IPPCP_LIB) \
-DUSB_DEVICE_ONLY=$(USB_DEVICE_ONLY) \
-DDTIM_RECOVERY_SUPPORT=$(DTIM_RECOVERY_SUPPORT) \
-DREPORT_DDR_INFO=$(REPORT_DDR_INFO) \
-DBL_USE_GEU_FUSE_PROG=$(BL_USE_GEU_FUSE_PROG) \
-DBL_USE_SECURITY_CALLBACK=$(BL_USE_SECURITY_CALLBACK) \
-DPRODUCT_BUILD=$(PRODUCT_BUILD) \
-DSHRINK_BINARY_SIZE=$(SHRINK_BINARY_SIZE) \
-DCPUART=$(CPUART) \
-DDFOTA=$(DFOTA) \
-DEMULATOR=$(EMULATOR) \
-DFPGA=$(FPGA) \
-DARCH=$(ARCH) \
-DENABLE_ATRB=$(ENABLE_ATRB) \
-DENABLE_BITS_BURN=$(ENABLE_BITS_BURN) \
-DENABLE_SVC_TABLE=$(ENABLE_SVC_TABLE) \
-DCLOSE_JTAG=$(CLOSE_JTAG) \
-DENABLE_RKEK=$(ENABLE_RKEK) \
-DCLOSE_ESCAPE_SEQ=$(CLOSE_ESCAPE_SEQ) \
-DSDFOTA=$(SDFOTA) \
-DCLOSE_ROM_LOG=$(CLOSE_ROM_LOG) \
-DCLOSE_ROM_USB=$(CLOSE_ROM_USB) \
-DENABLE_LIFTCYCLE=$(ENABLE_LIFTCYCLE) \
-DENABLE_HWLOCK=$(ENABLE_HWLOCK) \
-DUPDATER=$(UPDATER) \
-DOUM4DFOTA=$(OUM4DFOTA) \
-DDUAL_TIM=$(DUAL_TIM) \
-DLAPW=$(LAPW) \
-DNZAC=$(NZAC) \
-DFLCN=$(FLCN) \
-DKAGU=$(KAGU) \
-DFACT=$(FACT) \
-DKSTRZ=$(KSTRZ) \
-DPMIC_PWRDN=$(PMIC_PWRDN) \
-DMEM_TEST=$(MEM_TEST) \
-DEXT_BLF_INSTR=$(EXT_BLF_INSTR) \
-DIMG_RBC=$(IMG_RBC) \
-DSPI_LCD=$(SPI_LCD) \
-DCP_BOOT=$(CP_BOOT) \
-DXZDEC_SUPPORT=$(XZDEC_SUPPORT) \
-DBURN_DTIM_LAST=$(BURN_DTIM_LAST) \
-DSECURE_DOWNLOAD=$(SECURE_DOWNLOAD) \
-DMBTK_AUTO_DL=$(MBTK_AUTO_DL)
#linux unique
ifeq "$(CP_BOOT)" "1"
CPU = cortex-r5
else
CPU = cortex-a7
endif
OBM_USE_DDR_ADDR = 0x00000000
CONFIG_USE_GLIBC=$(shell sed 's/^CONFIG_USE_GLIBC=//;t;d' $(TOPDIR)/../../.config)
CFLAGS += -DLINUX_BUILD=1 -g -O2 -fomit-frame-pointer -fasm -nostdinc -ffreestanding -mcpu=$(CPU)
ifeq "$(ARM_MODE)" "1"
CFLAGS += -mapcs-frame -gstrict-dwarf
else
CFLAGS += -mthumb -mthumb-interwork
endif
ifeq "$(CP_BOOT)" "1"
CFLAGS += -mfloat-abi=soft
else
ifeq ($(CONFIG_USE_GLIBC),y)
CFLAGS += -mfloat-abi=hard -mfpu=neon
else
CFLAGS += -mfloat-abi=soft
endif
endif
#This is for bzlib used by bsdiff(bspatch)
CFLAGS += -DBZ_NO_STDIO
#create section for each funcion and symbol
CFLAGS += -ffunction-sections -fdata-sections
AFLAGS = -g -mcpu=$(CPU) -mapcs-stack-check -defsym BOOTROM=0 -defsym GCC=1 -defsym $(PLATFORM)=1
ifneq "$(CP_BOOT)" "1"
AFLAGS += -mfpu=neon
endif
LFLAGS = -e __main -nostdlib -b elf32-littlearm -defsym DDRADDRESS=$(OBM_USE_DDR_ADDR)
#Remove the useless sections to save memory, co-work with '-ffunction-sections -fdata-sections'
LFLAGS += -gc-sections
XZ_CFLAGS = -DHAVE_SMALL=1 -DNDEBUG -DRESQUASH_BUF_SIZE=0x2000000 -DRESQUASH_NO_MAIN
#define _POSIX_C_SOURCE to get sigset_t definition in musl
XZ_CFLAGS += -D_POSIX_C_SOURCE=200809L
#####################################
# include directories
#####################################
INCLUDE_DIRS = \
-I $(TOPDIR)/Common/Include \
-I $(TOPDIR)/Common/Platforms/$(PLATFORM) \
-I $(TOPDIR)/Common/Platforms/$(PLATFORM)/Include \
-I $(TOPDIR)/Common/Download \
-I $(TOPDIR)/Common/Download/$(USB_DIR) \
-I $(TOPDIR)/Common/DMA \
-I $(TOPDIR)/Common/Flash \
-I $(TOPDIR)/Common/Flash/NAND \
-I $(TOPDIR)/Common/Flash/SPI/$(PLATFORM) \
-I $(TOPDIR)/Common/Flash/QSPI \
-I $(TOPDIR)/Common/Flash/SDMMC \
-I $(TOPDIR)/Common/Flash/SDMMC/SDHC2 \
-I $(TOPDIR)/Common/Misc \
-I $(TOPDIR)/Common/SDRam \
-I $(TOPDIR)/Loader/SecureBoot/SecurityCallBack \
-I $(TOPDIR)/Common/SecureBoot \
-I $(TOPDIR)/Common/SecureBoot/GEU \
-I $(TOPDIR)/Common/SecureBoot/GEU/$(PLATFORM) \
-I $(TOPDIR)/Common/SecureBoot/FuseBlock \
-I $(TOPDIR)/Common/SecureBoot/cryptlib \
-I $(TOPDIR)/Loader/SecureBoot/SecurityCallBack \
-I $(TOPDIR)/Loader/SecureBoot/WTM3_MBOX \
-I $(TOPDIR)/Loader/StartUp \
-I $(TOPDIR)/Common/Tim \
-I $(TOPDIR)/Loader/Main \
-I $(TOPDIR)/Loader/Platforms/$(PLATFORM) \
-I $(TOPDIR)/Common/I2C \
-I $(TOPDIR)/Common/DMA \
-I $(TOPDIR)/Common/DFota \
-I $(TOPDIR)/Common/LCD \
-I $(TOPDIR)/Common/ARCH/$(ARCH) \
-I $(TOPDIR)/Common/XZDEC/include \
-I $(TOPDIR)/../../mbtk/include/mbtk
XZ_INC_DIRS = \
-I $(TOPDIR)/Common/XZ \
-I $(TOPDIR)/Common/XZ/liblzma \
-I $(TOPDIR)/Common/XZ/liblzma/api \
-I $(TOPDIR)/Common/XZ/liblzma/check \
-I $(TOPDIR)/Common/XZ/liblzma/common \
-I $(TOPDIR)/Common/XZ/liblzma/delta \
-I $(TOPDIR)/Common/XZ/liblzma/lz \
-I $(TOPDIR)/Common/XZ/liblzma/lzma \
-I $(TOPDIR)/Common/XZ/liblzma/rangecoder \
-I $(TOPDIR)/Common/XZ/liblzma/simple \
##############################################################
# Pull in the platform specific information
# This includes object definitions and overrides
##############################################################
ifeq "$(RELEASE)" "1"
OUTDIR = $(TOPDIR)/Loader/Platforms/$(PLATFORM)/release
else
OUTDIR = $(TOPDIR)/Loader/Platforms/$(PLATFORM)/debug
endif
include $(TOPDIR)/Loader/Platforms/$(PLATFORM)/bl_platform_linux.mak
ifeq "$(ARM_MODE)" "1"
InstructionType = ARM
else
InstructionType = THUMB
endif
ifeq "$(ENGINEERING_BUILD)" "1"
BUILD_TYPE=_EB_JO
endif
ifeq "$(PRODUCT_BUILD)" "1"
ifeq "$(CLOSE_JTAG)" "1"
BUILD_TYPE=_PB
else
BUILD_TYPE=_PB_JO
endif
endif
ifeq "$(ENABLE_TRUSTZONE)" "1"
TZ_STATUS=_TZ
else
TZ_STATUS=_NTZ
endif
AFLAGS += $(PLATFORMASMFLAGS)
CFLAGS += $(PLATFORMCFLAGS) $(BOARDDEF) -D$(PROFILE)=1
ifeq ($(CONFIG_AB_SYSTEM),y)
CFLAGS += -DCONFIG_AB_SYSTEM
endif
ifeq ($(CONFIG_TEE_OS),y)
CFLAGS += -DCONFIG_TEE_OS
AFLAGS += -defsym CONFIG_TEE_OS=1
endif
ifeq ($(CONFIG_ASR_SDTIM),y)
CFLAGS += -DCONFIG_ASR_SDTIM
endif
ifeq ($(CONFIG_UART_921600),y)
CFLAGS += -DCONFIG_UART_921600
endif
LFLAGS += $(LIBS)
LFLAGS += $(LDCMD)
#################################
# Build Process
#################################
# ensure the output directories exist
junk :=$(shell mkdir -p -v $(OUTDIR))
junk :=$(shell mkdir -p -v "$(OUTDIR)/$(BOARD)")
## Call perl script to make sure assembly files are in GNU format ##
#junk :=$(shell perl makegnuassembly.pl ../)
#junk :=$(shell perl makegnuassembly.pl ../Platforms/$(PLATFORM))
#junk :=$(shell perl makegnuassembly.pl ../Platforms)
#junk :=$(shell perl makegnuassembly.pl ../../Common/Platforms/$(PLATFORM))
#junk :=$(shell perl makegnuassembly.pl ../../Common/Include)
## Create OBJECTS list (changes foo.o to ../Platforms/XXX/Release/foo.o)
OBJECTS = $(patsubst %.o, $(OUTDIR)/%.o, $(OBJS))
LOADER = $(OUTDIR)/$(BOARD)/$(PLATFORM)_$(ToolChain)_ARM_$(LOADERVERSION)
##################################################
# Implicit Rules
##################################################
.SUFFIXES: .c .S
%.o : $(TOPDIR)/Common/DMA/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Download/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Download/$(USB_DIR)/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Flash/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Flash/DFC/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Flash/NAND/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Flash/SDMMC/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Flash/SDMMC/SDHC2/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Flash/SPI/$(PLATFORM)/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Flash/QSPI/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Flash/XIP/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/I2C/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/DMA/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Loader/Main/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Misc/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/DFota/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Platforms/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Platforms/$(PLATFORM)/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Loader/Platforms/$(PLATFORM)/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Loader/Platforms/$(PLATFORM)/%.S ; $(AS) $(INCLUDE_DIRS) $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/ARCH/$(ARCH)/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/ARCH/$(ARCH)/%.S ; $(AS) $(INCLUDE_DIRS) $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/SDRam/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/SecureBoot/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/SecureBoot/GEU/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/SecureBoot/GEU/$(PLATFORM)/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/SecureBoot/cryptlib/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/Tim/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/XZ/%.c ; $(filter-out -nostdinc,$(CC)) -std=c99 $(INCLUDE_DIRS) $(XZ_INC_DIRS) $(XZ_CFLAGS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/XZDEC/%.c ; $(filter-out -nostdinc,$(CC)) -std=c99 $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Loader/SecureBoot/SecurityCallBack/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Loader/SecureBoot/WTM3_MBOX/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Updater/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Updater/%.S ; $(AS) $(INCLUDE_DIRS) $< -o "$(OUTDIR)/$@"
%.o : $(TOPDIR)/Common/LCD/%.c ; $(CC) $(INCLUDE_DIRS) -c $< -o "$(OUTDIR)/$@"
#######################################################
# Build Process... FINALLY!
#######################################################
"$(LOADER).bin" : $(OBJS)
@echo assembly/compile done. linking.
@$(LD) -o "$(LOADER)-elf32" $(OBJECTS) $(LFLAGS) -Map "$(LOADER).map"
@echo linking done. strip.
@$(STRIP) "$(LOADER)-elf32" -o "$(LOADER)-elf32-stripped"
@echo strip done. objcopy.
@$(OBJCOPY) "$(LOADER)-elf32-stripped" "$(LOADER).bin"
@echo Build Successful!
clean:
@-rm -f $(OUTDIR)/*.o "$(LOADER).bin" "$(LOADER)-elf32" "$(LOADER)-elf32-stripped" "$(LOADER).map"