diff options
-rw-r--r-- | Makefile | 70 | ||||
-rw-r--r-- | obj_files.mk | 6 |
2 files changed, 76 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9278985 --- /dev/null +++ b/Makefile @@ -0,0 +1,70 @@ +NAME := pso-gc + +BUILD_DIR := build/$(NAME) + +DOL := $(BUILD_DIR)/PsoV3.dol +ELF := $(DOL:.dol=.elf) + +WINE := wine +DEVKITPPC := /opt/devkitpro/devkitPPC + +MWCC_VERSION := 1.3.2 +MWLD_VERSION := 1.3.2 + +ASM_INPUTS := $(wildcard asm/*.s) +C_INPUTS := $(wildcard src/*.c) +CPP_INPUTS := $(wildcard src/*.cpp) +LDSCRIPT := $(BUILD_DIR)/ldscript.lcf + +AS := $(DEVKITPPC)/bin/powerpc-eabi-as +CPP := $(DEVKITPPC)/bin/powerpc-eabi-cpp -P + +CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc.exe +LD := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe + +INCLUDES := -i include/ +ASM_INCLUDES := -I include/ + + +LDFLAGS := -fp hard -nodefaults + +ASFLAGS := -mgekko $(ASM_INCLUDES) + +CFLAGS := -nodefaults -proc gekko -fp hard -O4 -use_lmw_stmw on -str reuse -RTTI off -rostr -sdata2 4 $(INCLUDES) + +include obj_files.mk + +ALL_DIRS := $(sort $(dir $(O_FILES))) + +default: all + +all: $(ELF) + +DUMMY != mkdir -p $(ALL_DIRS) + +$(LDSCRIPT): ldscript.lcf + $(CPP) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< + +clean: + rm -f -d -r build + find . -name '*.o' -exec rm {} + + +$(ELF): $(O_FILES) $(LDSCRIPT) + @echo $(O_FILES) > build/o_files + $(LD) $(LDFLAGS) -o $@ -lcf $(LDSCRIPT) @build/o_files + +$(BUILD_DIR)/%.o: %.s + @echo Assembling $< + $(QUIET) $(AS) $(ASFLAGS) -o $@ $< + +$(BUILD_DIR)/%.o: %.c + @echo "Compiling " $< + $(QUIET) $(CC) $(CFLAGS) $(FILE_UNIQUE_CFLAGS) -c -o $@ $< + +$(BUILD_DIR)/%.o: %.cp + @echo "Compiling " $< + $(QUIET) $(CC) $(CFLAGS) $(FILE_UNIQUE_CFLAGS) -c -o $@ $< + +$(BUILD_DIR)/%.o: %.cpp + @echo "Compiling " $< + $(QUIET) $(CC) $(CFLAGS) $(FILE_UNIQUE_CFLAGS) -c -o $@ $< diff --git a/obj_files.mk b/obj_files.mk new file mode 100644 index 0000000..2e65fa0 --- /dev/null +++ b/obj_files.mk @@ -0,0 +1,6 @@ +O_FILES := $(BUILD_DIR)/src/main.o \ + $(BUILD_DIR)/src/pso/TMainTask.o \ + $(BUILD_DIR)/src/pso/TObject.o \ + $(BUILD_DIR)/src/Runtime/global_destructor_chain.o \ + $(BUILD_DIR)/src/Dolphin/os/__start.o \ + $(BUILD_DIR)/src/Dolphin/os/__ppc_eabi_init.o |