mirror of
https://github.com/ps5-linux/ps5-linux-loader.git
synced 2026-05-09 00:24:16 +00:00
46 lines
1.3 KiB
Makefile
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
|