Gupje/Makefile
2024-08-08 11:07:57 +02:00

147 lines
7.9 KiB
Makefile

ifeq ($(ANDROID_NDK_ROOT),)
$(error Error : Set the env variable 'ANDROID_NDK_ROOT' with the path of the Android NDK (version 20))
endif
CC := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android27-clang
AR := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar
OBJCOPY := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-objcopy
LD := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld.bfd
#ARM 32 bit
CC_32 := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi27-clang
AR_32 := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar
OBJCOPY_32 := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-objcopy
LD_32 := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ld.bfd
#ARM thumb mode
TOOLCHAIN_ARM_T := $(TOOLCHAINENV)/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-
CC_T = $(TOOLCHAIN_ARM_T)gcc
AS_T = $(TOOLCHAIN_ARM_T)as
OBJCOPY_T = $(TOOLCHAIN_ARM_T)objcopy
LD_T = $(TOOLCHAIN_ARM_T)ld.bfd
CFLAGS := -Werror -Wno-unused-variable -Os
LINKER := /system/bin/linker64
DEBUG := -g
#Thumb cflags
all: error
error:
@echo "Please specify a target to build (-f devices/nvidia_shield_t)"
#Thumb cflags
all: clean s905x3 pixel3a pixel3 nvidia_shield_t nvidia_shield pixel4a msm8996 pixel6_fastboot
#==================Target pixel 3a==================
CFLAGS_PIXEL3A = -Werror -Wno-unused-variable -Os -Idevices/pixel3a/
CFLAGS_PIXEL3A_GLITCH = -Werror -Wno-unused-variable -Os -Idevices/pixel3a/ -DGLITCH_ENABLE=1
pixel3a:
# Debugger
[ -d bin/pixel3a ] || mkdir -p bin/pixel3a/
$(CC) arm64_stub.S -c -o bin/pixel3a/entry.o $(CFLAGS_PIXEL3A)
$(CC) debugger.c -c -o bin/pixel3a/debugger.o $(CFLAGS_PIXEL3A)
$(LD) -T devices/pixel3a/linkscript.ld bin/pixel3a/entry.o bin/pixel3a/debugger.o -o bin/pixel3a/debugger.elf --just-symbols=devices/pixel3a/symbols.txt
# Glitch
$(CC) arm64_glitch_stub.S -c -o bin/pixel3a/glitch_stub.o $(CFLAGS_PIXEL3A_GLITCH)
$(CC) debugger.c -c -o bin/pixel3a/debugger_glitch.o $(CFLAGS_PIXEL3A_GLITCH)
$(LD) -T devices/pixel3a/linkscript.ld bin/pixel3a/entry.o bin/pixel3a/debugger_glitch.o bin/pixel3a/glitch_stub.o -o bin/pixel3a/glitch.elf --just-symbols=devices/pixel3a/symbols.txt
# Relocated debugger
$(LD) -T devices/pixel3a/linkscript_reloc.ld bin/pixel3a/entry.o bin/pixel3a/debugger.o -o bin/pixel3a/debugger_reloc.elf --just-symbols=devices/pixel3a/symbols.txt
# Objcopy
$(OBJCOPY) -O binary bin/pixel3a/debugger.elf bin/pixel3a/debugger.bin
$(OBJCOPY) -O binary bin/pixel3a/debugger_reloc.elf bin/pixel3a/debugger_reloc.bin
$(OBJCOPY) -O binary bin/pixel3a/glitch.elf bin/pixel3a/glitch.bin
#==================Target pixel 3==================
#Pixel 3 uses most code from pixel 3a, except for different offsets for functions(symbols.txt) because the devices are so familiar.
CFLAGS_PIXEL3 = -Werror -Wno-unused-variable -Os -Idevices/pixel3a/
pixel3:
[ -d bin/pixel3 ] || mkdir -p bin/pixel3/
$(CC) arm64_stub.S -c -o bin/pixel3/entry.o $(CFLAGS_PIXEL3)
$(CC) debugger.c -c -o bin/pixel3/debugger.o $(CFLAGS_PIXEL3)
$(LD) -T devices/pixel3a/linkscript.ld bin/pixel3/entry.o bin/pixel3/debugger.o -o bin/pixel3/debugger.elf --just-symbols=devices/pixel3/symbols.txt
$(LD) -T devices/pixel3a/linkscript_reloc.ld bin/pixel3/entry.o bin/pixel3/debugger.o -o bin/pixel3/debugger_reloc.elf --just-symbols=devices/pixel3/symbols.txt
$(OBJCOPY) -O binary bin/pixel3/debugger.elf bin/pixel3/debugger.bin
$(OBJCOPY) -O binary bin/pixel3/debugger_reloc.elf bin/pixel3/debugger_reloc.bin
#==============Target MSM8996 ================
CFLAGS_MSM8996 = -Werror -Wno-unused-variable -Os -Idevices/msm8996/ -DDEVICE_SETUP=1
msm8996:
[ -d bin/msm8996 ] || mkdir -p bin/msm8996/
$(CC) arm64_stub.S -c -o bin/msm8996/entry.o $(CFLAGS_MSM8996)
$(CC) debugger.c -c -o bin/msm8996/debugger.o $(CFLAGS_MSM8996)
$(LD) -T devices/msm8996/linkscript.ld bin/msm8996/entry.o bin/msm8996/debugger.o -o bin/msm8996/debugger.elf --just-symbols=devices/msm8996/symbols.txt
$(OBJCOPY) -O binary bin/msm8996/debugger.elf bin/msm8996/debugger.bin
# Relocated debugger
$(LD) -T devices/msm8996/linkscript_reloc.ld bin/msm8996/entry.o bin/msm8996/debugger.o -o bin/msm8996/debugger_reloc.elf --just-symbols=devices/msm8996/symbols_reloc.txt
$(OBJCOPY) -O binary bin/msm8996/debugger_reloc.elf bin/msm8996/debugger_reloc.bin
#==================Target pixel 4a==================
CFLAGS_PIXEL4A=-Idevices/pixel4a/ -Idevices/pixel4a/include/ -Werror -O0 -nostdlib
pixel4a:
[ -d bin/pixel4a ] || mkdir -p bin/pixel4a/
$(CC) arm64_stub.S -c -o bin/pixel4a/entry.o $(CFLAGS_PIXEL4A)
$(CC) debugger.c -c -o bin/pixel4a/debugger.o $(CFLAGS_PIXEL4A)
$(LD) -T devices/pixel4a/linkscript.ld bin/pixel4a/entry.o bin/pixel4a/debugger.o -o bin/pixel4a/debugger.elf --just-symbols=devices/pixel4a/symbols.txt
$(OBJCOPY) -O binary bin/pixel4a/debugger.elf bin/pixel4a/debugger.bin
#==================Target fastboot==================
CFLAGS_PIXEL_FASTBOOT=-Idevices/pixel_fastboot/ -Werror -O0 -nostdlib
pixel_fastboot:
[ -d bin/pixel_fastboot ] || mkdir -p bin/pixel_fastboot/
$(CC) arm64_stub.S -c -o bin/pixel_fastboot/entry.o $(CFLAGS_PIXEL_FASTBOOT)
$(CC) debugger.c -c -o bin/pixel_fastboot/debugger.o $(CFLAGS_PIXEL_FASTBOOT)
$(LD) -T devices/pixel_fastboot/linkscript.ld bin/pixel_fastboot/entry.o bin/pixel_fastboot/debugger.o -o bin/pixel_fastboot/debugger.elf --just-symbols=devices/pixel_fastboot/symbols.txt
$(OBJCOPY) -O binary bin/pixel_fastboot/debugger.elf bin/pixel_fastboot/debugger.bin
#==================Pixel 6==================
CFLAGS_PIXEL6_FASTBOOT=-Idevices/pixel6_fastboot/ -Werror -O0 -nostdlib
pixel6_fastboot:
[ -d bin/pixel6_fastboot ] || mkdir -p bin/pixel6_fastboot/
$(CC) arm64_stub.S -c -o bin/pixel6_fastboot/entry.o $(CFLAGS_PIXEL6_FASTBOOT)
$(CC) debugger.c -c -o bin/pixel6_fastboot/debugger.o $(CFLAGS_PIXEL6_FASTBOOT)
$(LD) -T devices/pixel6_fastboot/linkscript.ld bin/pixel6_fastboot/entry.o bin/pixel6_fastboot/debugger.o -o bin/pixel6_fastboot/debugger.elf --just-symbols=devices/pixel6_fastboot/symbols.txt
$(OBJCOPY) -O binary bin/pixel6_fastboot/debugger.elf bin/pixel6_fastboot/debugger.bin
#==================Target Amlogic S905X3==================
CFLAGS_S905X3 = -Werror -Wno-unused-variable -Os -Idevices/s905x3/ -DDEVICE_SETUP=1
s905x3:
[ -d bin/s905x3 ] || mkdir -p bin/s905x3/
$(CC) arm64_stub.S -c -o bin/s905x3/entry.o $(CFLAGS_S905X3)
$(CC) debugger.c -c -o bin/s905x3/debugger.o $(CFLAGS_S905X3)
$(LD) -T devices/s905x3/linkscript.ld bin/s905x3/entry.o bin/s905x3/debugger.o -o bin/s905x3/debugger.elf --just-symbols=devices/s905x3/symbols.txt
$(OBJCOPY) -O binary bin/s905x3/debugger.elf bin/s905x3/debugger.bin
CFLAGS_S9XX_DUMPBROM = -Werror -Wno-unused-variable -Os -Idevices/s905x3/dump_bootrom -DDEVICE_SETUP=1
S9XX_dumpbootrom:
[ -d bin/s905x3 ] || mkdir -p bin/s905x3/
$(CC) arm64_stub.S -c -o bin/s905x3/entry.o $(CFLAGS_S9XX_DUMPBROM)
$(CC) debugger.c -c -o bin/s905x3/dump_bootrom.o $(CFLAGS_S9XX_DUMPBROM)
$(LD) -T devices/s905x3/linkscript.ld bin/s905x3/entry.o bin/s905x3/dump_bootrom.o -o bin/s905x3/dump_bootrom.elf --just-symbols=devices/s905x3/symbols.txt
$(OBJCOPY) -O binary bin/s905x3/dump_bootrom.elf bin/s905x3/dump_bootrom.bin
#==================Target Samsung S7 (8890)==================
CFLAGS_SAMSUNGS7 = -Werror -Wno-unused-variable -Os -Idevices/samsung_s7/
samsung_s7:
[ -d bin/samsung_s7 ] || mkdir -p bin/samsung_s7/
$(CC) arm64_stub.S -c -o bin/samsung_s7/entry.o $(CFLAGS_SAMSUNGS7)
$(CC) debugger.c -c -o bin/samsung_s7/debugger.o $(CFLAGS_SAMSUNGS7)
$(LD) -T devices/samsung_s7/linkscript.ld bin/samsung_s7/entry.o bin/samsung_s7/debugger.o -o bin/samsung_s7/debugger.elf --just-symbols=devices/samsung_s7/symbols.txt
$(OBJCOPY) -O binary bin/samsung_s7/debugger.elf bin/samsung_s7/debugger.bin
clean:
rm -rf bin/*