mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-01-22 09:01:57 -05:00
99 lines
3.2 KiB
Makefile
99 lines
3.2 KiB
Makefile
ifeq ($(strip $(PS2SDK)),)
|
|
$(error "PS2SDK must be set in your environment")
|
|
endif
|
|
SOURCE_DIRS := src third_party/bearssl/src misc/ps2
|
|
BUILD_DIR = build-ps2
|
|
|
|
S_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.S))
|
|
C_FILES := $(foreach dir,$(SOURCE_DIRS),$(wildcard $(dir)/*.c))
|
|
OBJS := $(addprefix $(BUILD_DIR)/, $(notdir $(C_FILES:%.c=%.o) $(S_FILES:%.S=%.o)))
|
|
|
|
# Dependency tracking
|
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(BUILD_DIR)/$*.d
|
|
DEPFILES := $(OBJS:%.o=%.d)
|
|
|
|
IOP_MODS:= DEV9_irx.o NETMAN_irx.o SMAP_irx.o USBD_irx.o BDM_irx.o BDMFS_FATFS_irx.o USBMASS_BD_irx.o USBHDFSD_irx.o USBMOUSE_irx.o USBKBD_irx.o
|
|
|
|
TARGET = ClassiCube-ps2
|
|
EE_OBJS = $(OBJS) $(patsubst %.o, $(BUILD_DIR)/%.o, $(IOP_MODS))
|
|
EE_LIBS = -lpatches -lpad -lpacket -ldma -lgraph -ldraw -lc -lps2ip -lnetman -lmc -lmouse -lkbd
|
|
|
|
EE_INCS := -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -Ithird_party/bearssl/inc
|
|
EE_CFLAGS := -D_EE -G0 -O2 -Wall -gdwarf-2 -gz -DPLAT_PS2
|
|
EE_LDFLAGS := -L$(PS2SDK)/ee/lib -Wl,-zmax-page-size=128
|
|
EE_LINKFILE := $(PS2SDK)/ee/startup/linkfile
|
|
|
|
all: $(BUILD_DIR) $(TARGET)-min.elf
|
|
|
|
clean:
|
|
rm -f $(TARGET)-min.elf $(TARGET).elf $(EE_OBJS)
|
|
|
|
$(BUILD_DIR):
|
|
mkdir -p $@
|
|
|
|
include $(PS2SDK)/samples/Makefile.pref
|
|
|
|
# Networking IRX modules
|
|
$(BUILD_DIR)/DEV9_irx.c: $(PS2SDK)/iop/irx/ps2dev9.irx
|
|
bin2c $< $@ DEV9_irx
|
|
|
|
$(BUILD_DIR)/NETMAN_irx.c: $(PS2SDK)/iop/irx/netman.irx
|
|
bin2c $< $@ NETMAN_irx
|
|
|
|
$(BUILD_DIR)/SMAP_irx.c: $(PS2SDK)/iop/irx/smap.irx
|
|
bin2c $< $@ SMAP_irx
|
|
|
|
# USB storage IRX modules
|
|
$(BUILD_DIR)/USBD_irx.c: $(PS2SDK)/iop/irx/usbd.irx
|
|
bin2c $< $@ USBD_irx
|
|
|
|
$(BUILD_DIR)/BDM_irx.c: $(PS2SDK)/iop/irx/bdm.irx
|
|
bin2c $< $@ BDM_irx
|
|
|
|
$(BUILD_DIR)/BDMFS_FATFS_irx.c: $(PS2SDK)/iop/irx/bdmfs_fatfs.irx
|
|
bin2c $< $@ BDMFS_FATFS_irx
|
|
|
|
$(BUILD_DIR)/USBMASS_BD_irx.c: $(PS2SDK)/iop/irx/usbmass_bd.irx
|
|
bin2c $< $@ USBMASS_BD_irx
|
|
|
|
$(BUILD_DIR)/USBHDFSD_irx.c: $(PS2SDK)/iop/irx/usbhdfsd.irx
|
|
bin2c $< $@ USBHDFSD_irx
|
|
|
|
# USB input IRX modules
|
|
$(BUILD_DIR)/USBMOUSE_irx.c: $(PS2SDK)/iop/irx/ps2mouse.irx
|
|
bin2c $< $@ USBMOUSE_irx
|
|
|
|
$(BUILD_DIR)/USBKBD_irx.c: $(PS2SDK)/iop/irx/ps2kbd.irx
|
|
bin2c $< $@ USBKBD_irx
|
|
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# executable generation
|
|
#---------------------------------------------------------------------------------
|
|
$(TARGET).elf : $(EE_OBJS)
|
|
$(EE_CC) -T$(EE_LINKFILE) -O2 -o $(TARGET).elf $(EE_OBJS) $(EE_LDFLAGS) $(EE_LIBS)
|
|
|
|
$(TARGET)-min.elf : $(TARGET).elf
|
|
$(EE_STRIP) $(TARGET).elf -o $(TARGET)-min.elf
|
|
|
|
|
|
#---------------------------------------------------------------------------------
|
|
# object generation
|
|
#---------------------------------------------------------------------------------
|
|
$(BUILD_DIR)/%.o: src/%.c
|
|
$(EE_CC) $(DEPFLAGS) $(EE_CFLAGS) $(EE_INCS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/%.o: third_party/bearssl/src/%.c
|
|
$(EE_CC) $(DEPFLAGS) $(EE_CFLAGS) $(EE_INCS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/%.o: misc/ps2/%.S
|
|
$(EE_CC) $(DEPFLAGS) $(EE_CFLAGS) $(EE_INCS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c # IOP modules
|
|
$(EE_CC) $(EE_CFLAGS) $(EE_INCS) -c $< -o $@
|
|
|
|
# Dependency tracking
|
|
$(DEPFILES):
|
|
|
|
include $(wildcard $(DEPFILES))
|
|
|