Files
ps5-linux-loader/Makefile
2026-04-24 17:30:06 +02:00

46 lines
1.3 KiB
Makefile

.PHONY: all clean
ifndef PS5_PAYLOAD_SDK
PS5_PAYLOAD_SDK = /opt/ps5-payload-sdk/
endif
include $(PS5_PAYLOAD_SDK)/toolchain/prospero.mk
BIN := bin/ps5-linux-loader.elf
SRC := $(wildcard source/*.c)
OBJS := $(SRC:.c=.o)
# Agregamos los headers de los shellcodes a los CFLAGS para que los encuentre en source/main.c
CFLAGS := -std=c23 -Wall -Iinclude -Ishellcode_hypervisor -Ishellcode_kernel
LDFLAGS :=
# Rutas de los headers generados
SC_HV_H := shellcode_hypervisor/shellcode_hypervisor.h
SC_K_H := shellcode_kernel/shellcode_kernel.h
# 1. Regla principal: Construir los shellcodes antes que los objetos del main
all: $(SC_HV_H) $(SC_K_H) $(BIN)
# 2. Reglas para disparar el Make en las subcarpetas
# Usamos .PHONY de forma indirecta o forzamos la entrada a la carpeta
$(SC_HV_H):
$(MAKE) -C shellcode_hypervisor
$(SC_K_H):
$(MAKE) -C shellcode_kernel
# 3. Los objetos dependen de que los headers de los shellcodes existan
# Si main.c hace #include "shellcode_hypervisor.h", necesita estos targets
$(OBJS): %.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
# 4. Link final
$(BIN): $(OBJS)
@mkdir -p $(dir $@)
$(CC) $(OBJS) $(LDFLAGS) -o $@
clean:
rm -f $(BIN) $(OBJS)
$(MAKE) -C shellcode_hypervisor clean
$(MAKE) -C shellcode_kernel clean