# PS2 build (SCE toolchain). PC builds are generated by premake. # Build librw for ps2 first: premake5 gmake; make -C build librw config=debug_ps2 CC=ee-gcc CXX=ee-g++ TARGET=demoreel LIBRW := ../.. OBJDIR := obj/ps2 SRC := main.cpp proctex.cpp scene_tunnel.cpp scene_particles.cpp scene_knot.cpp SKELSRC := skeleton.cpp ps2.cpp SCELIBDIR := /usr/local/sce/ee/lib CFLAGS := -Os -DRW_PS2 -fno-common -fno-exceptions LIBS = $(LIBRW)/lib/ps2/Debug/librw.a \ $(SCELIBDIR)/libgraph.a \ $(SCELIBDIR)/libdma.a \ $(SCELIBDIR)/libmc.a \ $(SCELIBDIR)/libpc.a \ $(SCELIBDIR)/libpad.a \ $(SCELIBDIR)/libcdvd.a \ $(SCELIBDIR)/libscf.a GCCLIB := /usr/local/sce/ee/gcc/lib/gcc-lib/ee/3.2-ee-030926 CRT_BEGIN := $(OBJDIR)/crt0.o $(GCCLIB)/crti.o $(GCCLIB)/crtbegin.o CRT_END := $(GCCLIB)/crtend.o $(GCCLIB)/crtn.o OBJ := $(addprefix $(OBJDIR)/,$(SRC:.cpp=.o) $(SKELSRC:.cpp=.o)) DEP := $(OBJ:.o=.d) INC := -I. \ -I$(LIBRW) \ -I$(LIBRW)/skeleton \ -I/usr/local/sce/common/include \ -I/usr/local/sce/ee/include $(TARGET).elf: $(OBJDIR)/crt0.o $(OBJ) $(CXX) -o $@ $(CRT_BEGIN) $(OBJ) $(LIBS) $(CRT_END) -T $(SCELIBDIR)/app.cmd -L$(SCELIBDIR) -lm -nostartfiles -Wl,--gc-sections run: $(TARGET).elf dsedb -r run $(TARGET).elf $(OBJDIR)/crt0.o: @mkdir -p $(@D) $(CC) -c -xassembler-with-cpp -o $@ $(SCELIBDIR)/crt0.s $(OBJDIR)/%.o: %.cpp @mkdir -p $(@D) $(CXX) $(CFLAGS) $(INC) -MMD -c $< -o $@ $(OBJDIR)/%.o: $(LIBRW)/skeleton/%.cpp @mkdir -p $(@D) $(CXX) $(CFLAGS) $(INC) -MMD -c $< -o $@ clean: rm -rf $(OBJDIR) $(TARGET).elf -include $(DEP)