.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)

CFLAGS  := -std=c23 -Wall -Iinclude -Ishellcode_hypervisor -Ishellcode_kernel
LDFLAGS :=

SC_HV_H := shellcode_hypervisor/shellcode_hypervisor.h
SC_K_H  := shellcode_kernel/shellcode_kernel.h

all: $(SC_HV_H) $(SC_K_H) $(BIN)

$(SC_HV_H):
	$(MAKE) -C shellcode_hypervisor

$(SC_K_H):
	$(MAKE) -C shellcode_kernel

$(OBJS): %.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(BIN): $(OBJS)
	@mkdir -p $(dir $@)
	$(CC) $(OBJS) $(LDFLAGS) -o $@

clean:
	rm -f $(BIN) $(OBJS)
	$(MAKE) -C shellcode_hypervisor clean
	$(MAKE) -C shellcode_kernel clean
