家用機 - Play Station - C/C++ (PsyQ) - Makefile



參考資訊:
https://psx.arthus.net/starting.html
https://github.com/ABelliqueux/nolibgs_hello_worlds#installation

Makefile

TARGET   = main
CROSS    = mipsel-linux-gnu-
CFLAGS  += -I/opt/nugget/psyq/include
CFLAGS  += -I/opt/psyq/include
CFLAGS  += -march=mips1
CFLAGS  += -mabi=32
CFLAGS  += -EL
CFLAGS  += -fno-builtin
CFLAGS  += -fno-pic
CFLAGS  += -mno-shared
CFLAGS  += -mno-abicalls
CFLAGS  += -mfp32
CFLAGS  += -nostdlib
LDFLAGS += /opt/nugget/common/crt0/crt0.o
LDFLAGS += /opt/nugget/common/syscalls/printf.o
LDFLAGS += -static
LDFLAGS += -L/opt/psyq/lib
LDFLAGS += -Wl,--start-group
LDFLAGS += -lapi
LDFLAGS += -lc
LDFLAGS += -lc2
LDFLAGS += -lcard
LDFLAGS += -lcomb
LDFLAGS += -lds
LDFLAGS += -letc
LDFLAGS += -lgpu
LDFLAGS += -lgs
LDFLAGS += -lgte
LDFLAGS += -lgun
LDFLAGS += -lhmd
LDFLAGS += -lmath
LDFLAGS += -lmcrd
LDFLAGS += -lmcx
LDFLAGS += -lpad
LDFLAGS += -lpress
LDFLAGS += -lsio
LDFLAGS += -lsnd
LDFLAGS += -lspu
LDFLAGS += -ltap
LDFLAGS += -lcd
LDFLAGS += -Wl,--end-group
LDFLAGS += -Wl,--oformat=elf32-tradlittlemips
LDFLAGS += -Tpsexe.ld

all:
	$(CROSS)gcc $(CFLAGS) main.c -c -o $(TARGET).o
	$(CROSS)gcc $(CFLAGS) $(TARGET).o -o $(TARGET).elf $(LDFLAGS)
	$(CROSS)objcopy -O binary $(TARGET).elf $(TARGET).exe

run:
	/opt/ps1/pcsx $(TARGET).exe

clean:
	rm -rf $(TARGET).elf $(TARGET).exe $(TARGET).o