diff --git a/SDL/Makefile b/SDL/Makefile index 8edf33a..ae45bc0 100644 --- a/SDL/Makefile +++ b/SDL/Makefile @@ -1,103 +1,103 @@ -#--------------------------------------------------------------------------------- -# Clear the implicit built in rules -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- -ifeq ($(strip $(DEVKITPPC)),) -$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") -endif - -include $(DEVKITPPC)/wii_rules - -# Directories. -OBJ_DIR := obj/wii -LIB_DIR := lib -BIN_DIR := bin/wii -SDL_OBJ_DIR := $(OBJ_DIR)/sdl -SDL_SRC_DIR := src -INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include -INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii - -# Tools. -PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" - -# Library source files. -SDL_SRCS := \ - $(wildcard $(SDL_SRC_DIR)/*.c) \ - $(wildcard $(SDL_SRC_DIR)/audio/*.c) \ - $(wildcard $(SDL_SRC_DIR)/audio/dummy/*.c) \ - $(wildcard $(SDL_SRC_DIR)/audio/wii/*.c) \ - $(wildcard $(SDL_SRC_DIR)/cdrom/*.c) \ - $(wildcard $(SDL_SRC_DIR)/cdrom/dummy/*.c) \ - $(wildcard $(SDL_SRC_DIR)/cpuinfo/*.c) \ - $(wildcard $(SDL_SRC_DIR)/events/*.c) \ - $(wildcard $(SDL_SRC_DIR)/file/*.c) \ - $(wildcard $(SDL_SRC_DIR)/file/wii/*.c) \ - $(wildcard $(SDL_SRC_DIR)/joystick/*.c) \ - $(wildcard $(SDL_SRC_DIR)/joystick/wii/*.c) \ - $(wildcard $(SDL_SRC_DIR)/loadso/dummy/*.c) \ - $(wildcard $(SDL_SRC_DIR)/main/wii/*.c) \ - $(wildcard $(SDL_SRC_DIR)/stdlib/*.c) \ - $(wildcard $(SDL_SRC_DIR)/thread/*.c) \ - $(wildcard $(SDL_SRC_DIR)/thread/wii/*.c) \ - $(wildcard $(SDL_SRC_DIR)/timer/*.c) \ - $(wildcard $(SDL_SRC_DIR)/timer/wii/*.c) \ - $(wildcard $(SDL_SRC_DIR)/video/*.c) \ - $(wildcard $(SDL_SRC_DIR)/video/dummy/*.c) \ - $(wildcard $(SDL_SRC_DIR)/video/wii/*.c) - -# Library object files. -SDL_OBJS := $(subst $(SDL_SRC_DIR),$(SDL_OBJ_DIR),$(SDL_SRCS:.c=.o)) - -# What's a full build? -all: $(LIB_DIR)/libSDL.a - -# How to delete the intermediate files. -clean: - @echo Cleaning $(LIB_DIR) $(SDL_OBJS) - @rm -fr $(LIB_DIR) $(SDL_OBJS) - -install: - @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) - @mkdir -p $(INSTALL_HEADER_DIR)/SDL - @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) - @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL - -# Used to install library by pressing Alt+R in Programmer's Notepad -run: all install - -test-make: - $(MAKE) -f Makefile.test install - -test-clean: - $(MAKE) -f Makefile.test clean - -# How to build a library. -$(LIB_DIR)/libSDL.a: $(SDL_OBJS) - @echo Archiving $@ - @-mkdir -p $(dir $@) - powerpc-gekko-ar crs $@ $(SDL_OBJS) - @echo ---- - -# How to build a DOL. -$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf - @echo Creating DOL $@ - @-mkdir -p $(dir $@) - #powerpc-gekko-objcopy -O binary $< $@ - elf2dol $< $@ - @echo ---- - -# Compilation flags. -COMMON_FLAGS := -g -O3 -Wall $(MACHDEP) -INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -DEFINES := -DGEKKO -CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) - -# Test link flags. -LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libogc/lib/wii -lSDL -lwiikeyboard -lfat -lwiiuse -lbte -logc -lm - -# How to compile C file (SDL library). -$(SDL_OBJ_DIR)/%.o: $(SDL_SRC_DIR)/%.c - @echo Compiling $< - @-mkdir -p $(dir $@) - powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) +#--------------------------------------------------------------------------------- +# Clear the implicit built in rules +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPPC)),) +$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") +endif + +include $(DEVKITPPC)/wii_rules + +# Directories. +OBJ_DIR := obj/wii +LIB_DIR := lib +BIN_DIR := bin/wii +SDL_OBJ_DIR := $(OBJ_DIR)/sdl +SDL_SRC_DIR := src +INSTALL_HEADER_DIR ?= $(LIBOGC_INC) +INSTALL_LIB_DIR ?= $(LIBOGC_LIB) + +# Tools. +PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" + +# Library source files. +SDL_SRCS := \ + $(wildcard $(SDL_SRC_DIR)/*.c) \ + $(wildcard $(SDL_SRC_DIR)/audio/*.c) \ + $(wildcard $(SDL_SRC_DIR)/audio/dummy/*.c) \ + $(wildcard $(SDL_SRC_DIR)/audio/wii/*.c) \ + $(wildcard $(SDL_SRC_DIR)/cdrom/*.c) \ + $(wildcard $(SDL_SRC_DIR)/cdrom/dummy/*.c) \ + $(wildcard $(SDL_SRC_DIR)/cpuinfo/*.c) \ + $(wildcard $(SDL_SRC_DIR)/events/*.c) \ + $(wildcard $(SDL_SRC_DIR)/file/*.c) \ + $(wildcard $(SDL_SRC_DIR)/file/wii/*.c) \ + $(wildcard $(SDL_SRC_DIR)/joystick/*.c) \ + $(wildcard $(SDL_SRC_DIR)/joystick/wii/*.c) \ + $(wildcard $(SDL_SRC_DIR)/loadso/dummy/*.c) \ + $(wildcard $(SDL_SRC_DIR)/main/wii/*.c) \ + $(wildcard $(SDL_SRC_DIR)/stdlib/*.c) \ + $(wildcard $(SDL_SRC_DIR)/thread/*.c) \ + $(wildcard $(SDL_SRC_DIR)/thread/wii/*.c) \ + $(wildcard $(SDL_SRC_DIR)/timer/*.c) \ + $(wildcard $(SDL_SRC_DIR)/timer/wii/*.c) \ + $(wildcard $(SDL_SRC_DIR)/video/*.c) \ + $(wildcard $(SDL_SRC_DIR)/video/dummy/*.c) \ + $(wildcard $(SDL_SRC_DIR)/video/wii/*.c) + +# Library object files. +SDL_OBJS := $(subst $(SDL_SRC_DIR),$(SDL_OBJ_DIR),$(SDL_SRCS:.c=.o)) + +# What's a full build? +all: $(LIB_DIR)/libSDL.a + +# How to delete the intermediate files. +clean: + @echo Cleaning $(LIB_DIR) $(SDL_OBJS) + @rm -fr $(LIB_DIR) $(SDL_OBJS) + +install: + @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) + @mkdir -p $(INSTALL_HEADER_DIR)/SDL + @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) + @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL + +# Used to install library by pressing Alt+R in Programmer's Notepad +run: all install + +test-make: + $(MAKE) -f Makefile.test install + +test-clean: + $(MAKE) -f Makefile.test clean + +# How to build a library. +$(LIB_DIR)/libSDL.a: $(SDL_OBJS) + @echo Archiving $@ + @-mkdir -p $(dir $@) + powerpc-gekko-ar crs $@ $(SDL_OBJS) + @echo ---- + +# How to build a DOL. +$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf + @echo Creating DOL $@ + @-mkdir -p $(dir $@) + #powerpc-gekko-objcopy -O binary $< $@ + elf2dol $< $@ + @echo ---- + +# Compilation flags. +COMMON_FLAGS := -g -O3 -Wall $(MACHDEP) +INCLUDES := -Iinclude -I$(LIBOGC_INC) +DEFINES := -DGEKKO +CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) + +# Test link flags. +LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(LIBOGC_LIB) -lSDL -lwiikeyboard -lfat -lwiiuse -lbte -logc -lm + +# How to compile C file (SDL library). +$(SDL_OBJ_DIR)/%.o: $(SDL_SRC_DIR)/%.c + @echo Compiling $< + @-mkdir -p $(dir $@) + powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) diff --git a/SDL_gfx/Makefile b/SDL_gfx/Makefile index 581fb31..267f862 100644 --- a/SDL_gfx/Makefile +++ b/SDL_gfx/Makefile @@ -1,69 +1,69 @@ -#--------------------------------------------------------------------------------- -# Clear the implicit built in rules -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- -ifeq ($(strip $(DEVKITPPC)),) -$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") -endif - -include $(DEVKITPPC)/wii_rules - -# Directories. -OBJ_DIR := obj -LIB_DIR := lib -BIN_DIR := bin -SRC_DIR := src -INCLUDE_DIR := include -TEST_OBJ_DIR := $(OBJ_DIR)/test -TEST_SRC_DIR := src -INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include -INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii - -# Tools. -PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" - -# Library source files. -SRCS := $(wildcard $(SRC_DIR)/*.c) - -# Library object files. -OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) - -# What's a full build? -all: $(LIB_DIR)/libSDL_gfx.a headers - -# How to delete the intermediate files. -clean: - @echo Cleaning $(LIB_DIR)/libSDL_gfx.a $(OBJ_DIR) - @rm -f $(LIB_DIR)/libSDL_gfx.a $(OBJS) $(TEST_OBJS) - -# How to build a library. -$(LIB_DIR)/libSDL_gfx.a: $(OBJS) - @echo Archiving $@ - @-mkdir -p $(dir $@) - @powerpc-gekko-ar crs $@ $(OBJS) - @echo ---- - -install: - @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) - @mkdir -p $(INSTALL_HEADER_DIR)/SDL - @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) - @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL - -# How to copy the header file -headers: - @echo Copy headers to $(INCLUDE_DIR) - @-mkdir -p $(INCLUDE_DIR) - @cp $(wildcard $(SRC_DIR)/*.h) $(INCLUDE_DIR) - -# Compilation flags. -COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) -INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL -DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT -CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) - -# How to compile C file (SDL library). -$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c - @echo Compiling $< - @-mkdir -p $(dir $@) - @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) +#--------------------------------------------------------------------------------- +# Clear the implicit built in rules +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPPC)),) +$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") +endif + +include $(DEVKITPPC)/wii_rules + +# Directories. +OBJ_DIR := obj +LIB_DIR := lib +BIN_DIR := bin +SRC_DIR := src +INCLUDE_DIR := include +TEST_OBJ_DIR := $(OBJ_DIR)/test +TEST_SRC_DIR := src +INSTALL_HEADER_DIR ?= $(LIBOGC_INC) +INSTALL_LIB_DIR ?= $(LIBOGC_LIB) + +# Tools. +PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" + +# Library source files. +SRCS := $(wildcard $(SRC_DIR)/*.c) + +# Library object files. +OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) + +# What's a full build? +all: $(LIB_DIR)/libSDL_gfx.a headers + +# How to delete the intermediate files. +clean: + @echo Cleaning $(LIB_DIR)/libSDL_gfx.a $(OBJ_DIR) + @rm -f $(LIB_DIR)/libSDL_gfx.a $(OBJS) $(TEST_OBJS) + +# How to build a library. +$(LIB_DIR)/libSDL_gfx.a: $(OBJS) + @echo Archiving $@ + @-mkdir -p $(dir $@) + @powerpc-gekko-ar crs $@ $(OBJS) + @echo ---- + +install: + @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) + @mkdir -p $(INSTALL_HEADER_DIR)/SDL + @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) + @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL + +# How to copy the header file +headers: + @echo Copy headers to $(INCLUDE_DIR) + @-mkdir -p $(INCLUDE_DIR) + @cp $(wildcard $(SRC_DIR)/*.h) $(INCLUDE_DIR) + +# Compilation flags. +COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) +INCLUDES := -Iinclude -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL +DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT +CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) + +# How to compile C file (SDL library). +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c + @echo Compiling $< + @-mkdir -p $(dir $@) + @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) diff --git a/SDL_image/Makefile b/SDL_image/Makefile index 130fe55..bb8c856 100644 --- a/SDL_image/Makefile +++ b/SDL_image/Makefile @@ -1,112 +1,112 @@ -#--------------------------------------------------------------------------------- -# Clear the implicit built in rules -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- -ifeq ($(strip $(DEVKITPPC)),) -$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") -endif - -include $(DEVKITPPC)/wii_rules -# Directories. -OBJ_DIR := obj -LIB_DIR := lib -BIN_DIR := bin -SRC_DIR := src -INCLUDE_DIR := include -TEST_OBJ_DIR := $(OBJ_DIR)/test -TEST_SRC_DIR := src -INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include -INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii - -# Tools. -PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" - -# Library source files. -SRCS := $(filter-out $(SRC_DIR)/IMG_ImageIO.c $(SRC_DIR)/showimage.c, $(wildcard $(SRC_DIR)/*.c)) - -# Library object files. -OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) - -# Test source files. -# It can be useful to switch this variable around to select individual tests which are problematic. -TEST_SRCS := $(TEST_SRC_DIR)/showimage.c - -# Test object files. -TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) - -# Test .DOL files. -TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) - -# What's a full build? -all: $(LIB_DIR)/libSDL_image.a $(INCLUDE_DIR)/SDL_image.h - -# How to delete the intermediate files. -clean: - @echo Cleaning $(LIB_DIR)/libSDL_image.a $(OBJ_DIR) - @rm -f $(LIB_DIR)/libSDL_image.a $(OBJS) $(TEST_OBJS) - -install: - @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) - @mkdir -p $(INSTALL_HEADER_DIR)/SDL - @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) - @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL - -# How to install to SD card ready for running. -test-install: $(TEST_DOLS) - @-mkdir -p dols - cp $(TEST_DOLS) dols - -# How to build a library. -$(LIB_DIR)/libSDL_image.a: $(OBJS) - @echo Archiving $@ - @-mkdir -p $(dir $@) - @powerpc-gekko-ar crs $@ $(OBJS) - @echo ---- - -# How to build a DOL. -$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf - @echo Creating DOL $@ - @-mkdir -p $(dir $@) - #powerpc-gekko-objcopy -O binary $< $@ - elf2dol $< $@ - @echo ---- - -# How to copy the header file -$(INCLUDE_DIR)/SDL_image.h: $(SRC_DIR)/SDL_image.h - @echo Copy $(SRC_DIR)/SDL_image.h to $(INCLUDE_DIR) - @-mkdir -p $(dir $@) - @cp $(SRC_DIR)/SDL_image.h $(INCLUDE_DIR) - -# Compilation flags. -COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) -INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL -I$(DEVKITPRO)/libogc/include/jpeg -# -I$(DEVKITPRO)/libpng/include -DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT -DLOAD_BMP -DLOAD_JPG -DLOAD_GIF -DLOAD_LBM -DLOAD_PCX -DLOAD_PNM -DLOAD_TGA -DLOAD_XCF -DLOAD_XPM -DLOAD_XV -DLOAD_PNG -# -# -DLOAD_TIFF -CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) - -# Test link flags. -LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libSDL/lib -L$(DEVKITPRO)/libpng/lib -L$(DEVKITPRO)/libogc/lib/wii -L$(DEVKITPRO)/libjpeg/lib -lSDL_image -lSDL -lpng -ljpeg -lfat -lwiiuse -lbte -logc -lm -lz -# -ltiff - -# How to link an ELF. -$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_image.a $(DEVKITPRO)/libSDL/lib/libSDL.a - @echo Linking $@ - @-mkdir -p $(dir $@) - powerpc-gekko-g++ -o $@ $< $(LDFLAGS) - #keep elf for debugging - #cp $@ /tmp/elf - -# How to compile C file (Tests). -$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/showimage.c - @echo Compiling $< - @-mkdir -p $(dir $@) - powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) - -# How to compile C file (SDL library). -$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c - @echo Compiling $< - @-mkdir -p $(dir $@) - @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) +#--------------------------------------------------------------------------------- +# Clear the implicit built in rules +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPPC)),) +$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") +endif + +include $(DEVKITPPC)/wii_rules +# Directories. +OBJ_DIR := obj +LIB_DIR := lib +BIN_DIR := bin +SRC_DIR := src +INCLUDE_DIR := include +TEST_OBJ_DIR := $(OBJ_DIR)/test +TEST_SRC_DIR := src +INSTALL_HEADER_DIR ?= $(LIBOGC_INC) +INSTALL_LIB_DIR ?= $(LIBOGC_LIB) + +# Tools. +PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" + +# Library source files. +SRCS := $(filter-out $(SRC_DIR)/IMG_ImageIO.c $(SRC_DIR)/showimage.c, $(wildcard $(SRC_DIR)/*.c)) + +# Library object files. +OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) + +# Test source files. +# It can be useful to switch this variable around to select individual tests which are problematic. +TEST_SRCS := $(TEST_SRC_DIR)/showimage.c + +# Test object files. +TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) + +# Test .DOL files. +TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) + +# What's a full build? +all: $(LIB_DIR)/libSDL_image.a $(INCLUDE_DIR)/SDL_image.h + +# How to delete the intermediate files. +clean: + @echo Cleaning $(LIB_DIR)/libSDL_image.a $(OBJ_DIR) + @rm -f $(LIB_DIR)/libSDL_image.a $(OBJS) $(TEST_OBJS) + +install: + @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) + @mkdir -p $(INSTALL_HEADER_DIR)/SDL + @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) + @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL + +# How to install to SD card ready for running. +test-install: $(TEST_DOLS) + @-mkdir -p dols + cp $(TEST_DOLS) dols + +# How to build a library. +$(LIB_DIR)/libSDL_image.a: $(OBJS) + @echo Archiving $@ + @-mkdir -p $(dir $@) + @powerpc-gekko-ar crs $@ $(OBJS) + @echo ---- + +# How to build a DOL. +$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf + @echo Creating DOL $@ + @-mkdir -p $(dir $@) + #powerpc-gekko-objcopy -O binary $< $@ + elf2dol $< $@ + @echo ---- + +# How to copy the header file +$(INCLUDE_DIR)/SDL_image.h: $(SRC_DIR)/SDL_image.h + @echo Copy $(SRC_DIR)/SDL_image.h to $(INCLUDE_DIR) + @-mkdir -p $(dir $@) + @cp $(SRC_DIR)/SDL_image.h $(INCLUDE_DIR) + +# Compilation flags. +COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) +INCLUDES := -Iinclude -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL -I$(LIBOGC_INC)/jpeg +# -I$(DEVKITPRO)/libpng/include +DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT -DLOAD_BMP -DLOAD_JPG -DLOAD_GIF -DLOAD_LBM -DLOAD_PCX -DLOAD_PNM -DLOAD_TGA -DLOAD_XCF -DLOAD_XPM -DLOAD_XV -DLOAD_PNG +# +# -DLOAD_TIFF +CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) + +# Test link flags. +LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libSDL/lib -L$(DEVKITPRO)/libpng/lib -L$(LIBOGC_LIB) -L$(DEVKITPRO)/libjpeg/lib -lSDL_image -lSDL -lpng -ljpeg -lfat -lwiiuse -lbte -logc -lm -lz +# -ltiff + +# How to link an ELF. +$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_image.a $(DEVKITPRO)/libSDL/lib/libSDL.a + @echo Linking $@ + @-mkdir -p $(dir $@) + powerpc-gekko-g++ -o $@ $< $(LDFLAGS) + #keep elf for debugging + #cp $@ /tmp/elf + +# How to compile C file (Tests). +$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/showimage.c + @echo Compiling $< + @-mkdir -p $(dir $@) + powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) + +# How to compile C file (SDL library). +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c + @echo Compiling $< + @-mkdir -p $(dir $@) + @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) diff --git a/SDL_mixer/Makefile b/SDL_mixer/Makefile index d36e15c..50e302e 100644 --- a/SDL_mixer/Makefile +++ b/SDL_mixer/Makefile @@ -1,117 +1,117 @@ -#--------------------------------------------------------------------------------- -# Clear the implicit built in rules -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- -ifeq ($(strip $(DEVKITPPC)),) -$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") -endif - -include $(DEVKITPPC)/wii_rules - -# Directories. -OBJ_DIR := obj -LIB_DIR := lib -BIN_DIR := bin -SRC_DIR := src -INCLUDE_DIR := include -TEST_OBJ_DIR := $(OBJ_DIR)/test -TEST_SRC_DIR := src -INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include -INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii - -# Tools. -PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" - -# Library source files. -SRCS := $(filter-out $(SRC_DIR)/playwave.c $(SRC_DIR)/playmus.c $(SRC_DIR)/music_cmd.c, $(wildcard $(SRC_DIR)/*.c)) $(wildcard $(SRC_DIR)/mikmod/*.c) $(wildcard $(SRC_DIR)/timidity/*.c) -# $(wildcard $(SRC_DIR)/native_midi/*.c) - -# Library object files. -OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) - -# Test source files. -# It can be useful to switch this variable around to select individual tests which are problematic. -TEST_SRCS := $(TEST_SRC_DIR)/playwave.c $(TEST_SRC_DIR)/playmus.c - -# Test object files. -TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) - -# Test .DOL files. -TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) - -# What's a full build? -all: $(LIB_DIR)/libSDL_mixer.a $(INCLUDE_DIR)/SDL_mixer.h - -# How to install to SD card ready for running. -test-install: $(TEST_DOLS) - @-mkdir -p dols - cp $(TEST_DOLS) dols - -# How to delete the intermediate files. -clean: - @echo Cleaning $(LIB_DIR)/libSDL_mixer.a $(OBJ_DIR) - @rm -f $(LIB_DIR)/libSDL_mixer.a $(OBJS) $(TEST_OBJS) - -install: - @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) - @mkdir -p $(INSTALL_HEADER_DIR)/SDL - @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) - @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL - -# How to build a library. -$(LIB_DIR)/libSDL_mixer.a: $(OBJS) - @echo Archiving $@ - @-mkdir -p $(dir $@) - @powerpc-gekko-ar crs $@ $(OBJS) - @echo ---- - -# How to build a DOL. -$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf - @echo Creating DOL $@ - @-mkdir -p $(dir $@) - #powerpc-gekko-objcopy -O binary $< $@ - elf2dol $< $@ - @echo ---- - -# How to copy a header file -$(INCLUDE_DIR)/SDL_mixer.h: $(SRC_DIR)/SDL_mixer.h - @echo Copy $(SRC_DIR)/SDL_mixer.h to $(INCLUDE_DIR) - @-mkdir -p $(dir $@) - @cp $(SRC_DIR)/SDL_mixer.h $(INCLUDE_DIR) - -# Compilation flags. -COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) -INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL -I$(DEVKITPRO)/libogc/include/mpeg -I$(DEVKITPRO)/libsmpeg/include -Isrc/mikmod -Isrc/timidity -# -include sys/wait.h -# -include sys/syslimits.h -# -Isrc/native_midi -DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT -DWAV_MUSIC -DMOD_MUSIC -DMID_MUSIC -DUSE_TIMIDITY_MIDI -DMP3_MUSIC -DOGG_USE_TREMOR -DOGG_MUSIC -# -DUSE_NATIVE_MIDI -# -DOGG_MUSIC -# -# -DCMD_MUSIC -CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) - -# Test link flags. -LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libogc/lib/wii -L$(DEVKITPRO)/libsmpeg/lib -lSDL_mixer -lsmpeg -lSDL -lfat -lwiiuse -lbte -logc -lm -ltremor - -# How to link an ELF. -$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_mixer.a $(DEVKITPRO)/libSDL/lib/libSDL.a - @echo Linking $@ - @-mkdir -p $(dir $@) - powerpc-gekko-g++ -o $@ $< $(LDFLAGS) - #keep elf for debugging - #cp $@ /tmp/elf - -# How to compile C file (Tests). -$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/playmus.c $(TEST_SRC_DIR)/playwave.c - @echo Compiling $< - @-mkdir -p $(dir $@) - powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) - -# How to compile C file (SDL library). -$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c - @echo Compiling $< - @-mkdir -p $(dir $@) - @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) +#--------------------------------------------------------------------------------- +# Clear the implicit built in rules +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPPC)),) +$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") +endif + +include $(DEVKITPPC)/wii_rules + +# Directories. +OBJ_DIR := obj +LIB_DIR := lib +BIN_DIR := bin +SRC_DIR := src +INCLUDE_DIR := include +TEST_OBJ_DIR := $(OBJ_DIR)/test +TEST_SRC_DIR := src +INSTALL_HEADER_DIR ?= $(LIBOGC_INC) +INSTALL_LIB_DIR ?= $(LIBOGC_LIB) + +# Tools. +PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" + +# Library source files. +SRCS := $(filter-out $(SRC_DIR)/playwave.c $(SRC_DIR)/playmus.c $(SRC_DIR)/music_cmd.c, $(wildcard $(SRC_DIR)/*.c)) $(wildcard $(SRC_DIR)/mikmod/*.c) $(wildcard $(SRC_DIR)/timidity/*.c) +# $(wildcard $(SRC_DIR)/native_midi/*.c) + +# Library object files. +OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) + +# Test source files. +# It can be useful to switch this variable around to select individual tests which are problematic. +TEST_SRCS := $(TEST_SRC_DIR)/playwave.c $(TEST_SRC_DIR)/playmus.c + +# Test object files. +TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) + +# Test .DOL files. +TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) + +# What's a full build? +all: $(LIB_DIR)/libSDL_mixer.a $(INCLUDE_DIR)/SDL_mixer.h + +# How to install to SD card ready for running. +test-install: $(TEST_DOLS) + @-mkdir -p dols + cp $(TEST_DOLS) dols + +# How to delete the intermediate files. +clean: + @echo Cleaning $(LIB_DIR)/libSDL_mixer.a $(OBJ_DIR) + @rm -f $(LIB_DIR)/libSDL_mixer.a $(OBJS) $(TEST_OBJS) + +install: + @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) + @mkdir -p $(INSTALL_HEADER_DIR)/SDL + @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) + @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL + +# How to build a library. +$(LIB_DIR)/libSDL_mixer.a: $(OBJS) + @echo Archiving $@ + @-mkdir -p $(dir $@) + @powerpc-gekko-ar crs $@ $(OBJS) + @echo ---- + +# How to build a DOL. +$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf + @echo Creating DOL $@ + @-mkdir -p $(dir $@) + #powerpc-gekko-objcopy -O binary $< $@ + elf2dol $< $@ + @echo ---- + +# How to copy a header file +$(INCLUDE_DIR)/SDL_mixer.h: $(SRC_DIR)/SDL_mixer.h + @echo Copy $(SRC_DIR)/SDL_mixer.h to $(INCLUDE_DIR) + @-mkdir -p $(dir $@) + @cp $(SRC_DIR)/SDL_mixer.h $(INCLUDE_DIR) + +# Compilation flags. +COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) +INCLUDES := -Iinclude -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL -I$(LIBOGC_INC)/mpeg -I$(DEVKITPRO)/libsmpeg/include -Isrc/mikmod -Isrc/timidity +# -include sys/wait.h +# -include sys/syslimits.h +# -Isrc/native_midi +DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT -DWAV_MUSIC -DMOD_MUSIC -DMID_MUSIC -DUSE_TIMIDITY_MIDI -DMP3_MUSIC -DOGG_USE_TREMOR -DOGG_MUSIC +# -DUSE_NATIVE_MIDI +# -DOGG_MUSIC +# +# -DCMD_MUSIC +CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) + +# Test link flags. +LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(LIBOGC_LIB) -L$(DEVKITPRO)/libsmpeg/lib -lSDL_mixer -lsmpeg -lSDL -lfat -lwiiuse -lbte -logc -lm -ltremor + +# How to link an ELF. +$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_mixer.a $(DEVKITPRO)/libSDL/lib/libSDL.a + @echo Linking $@ + @-mkdir -p $(dir $@) + powerpc-gekko-g++ -o $@ $< $(LDFLAGS) + #keep elf for debugging + #cp $@ /tmp/elf + +# How to compile C file (Tests). +$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/playmus.c $(TEST_SRC_DIR)/playwave.c + @echo Compiling $< + @-mkdir -p $(dir $@) + powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) + +# How to compile C file (SDL library). +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c + @echo Compiling $< + @-mkdir -p $(dir $@) + @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) diff --git a/SDL_net/Makefile b/SDL_net/Makefile index e088d3d..73c38e7 100644 --- a/SDL_net/Makefile +++ b/SDL_net/Makefile @@ -1,74 +1,74 @@ -#--------------------------------------------------------------------------------- -# Clear the implicit built in rules -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- -ifeq ($(strip $(DEVKITPPC)),) -$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") -endif - -include $(DEVKITPPC)/wii_rules - -# Directories. -OBJ_DIR := obj -LIB_DIR := lib -BIN_DIR := bin -SRC_DIR := src -INCLUDE_DIR := include -INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include -INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii - -# Tools. -PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" - -# Library source files. -SRCS := $(wildcard $(SRC_DIR)/*.c) - -# Library object files. -OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) - -# What's a full build? -all: $(LIB_DIR)/libSDL_net.a $(INCLUDE_DIR)/SDL_net.h - -# How to delete the intermediate files. -clean: - @echo Cleaning $(LIB_DIR)/libSDL_net.a $(OBJ_DIR) - @rm -f $(LIB_DIR)/libSDL_net.a $(OBJS) $(TEST_OBJS) - -install: - @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) - @mkdir -p $(INSTALL_HEADER_DIR)/SDL - @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) - @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL - -# How to build a library. -$(LIB_DIR)/libSDL_net.a: $(OBJS) - @echo Archiving $@ - @-mkdir -p $(dir $@) - @powerpc-gekko-ar crs $@ $(OBJS) - @echo ---- - -# How to copy a header file -$(INCLUDE_DIR)/SDL_net.h: $(SRC_DIR)/SDL_net.h - @echo Copy $(SRC_DIR)/SDL_net.h to $(INCLUDE_DIR) - @-mkdir -p $(dir $@) - @cp $(SRC_DIR)/SDL_net.h $(INCLUDE_DIR) - -# Compilation flags. -COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) -INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL -# -include sys/wait.h -# -include sys/syslimits.h - -DEFINES := -DGEKKO - -CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) - -# Test link flags. -LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libogc/lib/wii -lSDL -lfat -lwiiuse -lbte -logc -lm - -# How to compile C file (SDL library). -$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c - @echo Compiling $< - @-mkdir -p $(dir $@) - @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) +#--------------------------------------------------------------------------------- +# Clear the implicit built in rules +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPPC)),) +$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") +endif + +include $(DEVKITPPC)/wii_rules + +# Directories. +OBJ_DIR := obj +LIB_DIR := lib +BIN_DIR := bin +SRC_DIR := src +INCLUDE_DIR := include +INSTALL_HEADER_DIR ?= $(LIBOGC_INC) +INSTALL_LIB_DIR ?= $(LIBOGC_LIB) + +# Tools. +PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" + +# Library source files. +SRCS := $(wildcard $(SRC_DIR)/*.c) + +# Library object files. +OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) + +# What's a full build? +all: $(LIB_DIR)/libSDL_net.a $(INCLUDE_DIR)/SDL_net.h + +# How to delete the intermediate files. +clean: + @echo Cleaning $(LIB_DIR)/libSDL_net.a $(OBJ_DIR) + @rm -f $(LIB_DIR)/libSDL_net.a $(OBJS) $(TEST_OBJS) + +install: + @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) + @mkdir -p $(INSTALL_HEADER_DIR)/SDL + @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) + @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL + +# How to build a library. +$(LIB_DIR)/libSDL_net.a: $(OBJS) + @echo Archiving $@ + @-mkdir -p $(dir $@) + @powerpc-gekko-ar crs $@ $(OBJS) + @echo ---- + +# How to copy a header file +$(INCLUDE_DIR)/SDL_net.h: $(SRC_DIR)/SDL_net.h + @echo Copy $(SRC_DIR)/SDL_net.h to $(INCLUDE_DIR) + @-mkdir -p $(dir $@) + @cp $(SRC_DIR)/SDL_net.h $(INCLUDE_DIR) + +# Compilation flags. +COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) +INCLUDES := -Iinclude -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL +# -include sys/wait.h +# -include sys/syslimits.h + +DEFINES := -DGEKKO + +CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) + +# Test link flags. +LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(LIBOGC_LIB) -lSDL -lfat -lwiiuse -lbte -logc -lm + +# How to compile C file (SDL library). +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c + @echo Compiling $< + @-mkdir -p $(dir $@) + @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) diff --git a/SDL_ttf/Makefile b/SDL_ttf/Makefile index e46bbd1..a009413 100644 --- a/SDL_ttf/Makefile +++ b/SDL_ttf/Makefile @@ -1,109 +1,109 @@ -#--------------------------------------------------------------------------------- -# Clear the implicit built in rules -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- -ifeq ($(strip $(DEVKITPPC)),) -$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") -endif - -include $(DEVKITPPC)/wii_rules - -# Directories. -OBJ_DIR := obj -LIB_DIR := lib -BIN_DIR := bin -SRC_DIR := src -INCLUDE_DIR := include -TEST_OBJ_DIR := $(OBJ_DIR)/test -TEST_SRC_DIR := src -INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include -INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii - -# Tools. -PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" - -# Library source files. -SRCS := $(filter-out $(SRC_DIR)/glfont.c $(SRC_DIR)/showfont.c, $(wildcard $(SRC_DIR)/*.c)) - -# Library object files. -OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) - -# Test source files. -# It can be useful to switch this variable around to select individual tests which are problematic. -TEST_SRCS := $(TEST_SRC_DIR)/showfont.c - -# Test object files. -TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) - -# Test .DOL files. -TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) - -# What's a full build? -all: $(LIB_DIR)/libSDL_ttf.a $(INCLUDE_DIR)/SDL_ttf.h - -# How to delete the intermediate files. -clean: - @echo Cleaning $(LIB_DIR)/libSDL_ttf.a $(OBJ_DIR) - @rm -f $(LIB_DIR)/libSDL_ttf.a $(OBJS) $(TEST_OBJS) - -# How to install to SD card ready for running. -test-install: $(TEST_DOLS) - @-mkdir -p dols - cp $(TEST_DOLS) dols - -install: - @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) - @mkdir -p $(INSTALL_HEADER_DIR)/SDL - @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) - @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL - -# How to build a library. -$(LIB_DIR)/libSDL_ttf.a: $(OBJS) - @echo Archiving $@ - @-mkdir -p $(dir $@) - @powerpc-gekko-ar crs $@ $(OBJS) - @echo ---- - -# How to build a DOL. -$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf - @echo Creating DOL $@ - @-mkdir -p $(dir $@) - #powerpc-gekko-objcopy -O binary $< $@ - elf2dol $< $@ - @echo ---- - -# How to copy a header file. -$(INCLUDE_DIR)/SDL_ttf.h: $(SRC_DIR)/SDL_ttf.h - @echo Copy $(SRC_DIR)/SDL_ttf.h to $(INCLUDE_DIR) - @-mkdir -p $(dir $@) - @cp $(SRC_DIR)/SDL_ttf.h $(INCLUDE_DIR) - -# Compilation flags. -COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) -INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL -I$(DEVKITPRO)/libogc/include/freetype -DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT -CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) - -# Test link flags. -LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libogc/lib/wii -lSDL_ttf -lSDL -lfreetype -lfat -lwiiuse -lbte -logc -lm - -# How to link an ELF. -$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_ttf.a $(DEVKITPRO)/libSDL/lib/libSDL.a - @echo Linking $@ - @-mkdir -p $(dir $@) - powerpc-gekko-g++ -o $@ $< $(LDFLAGS) - #keep elf for debugging - #cp $@ /tmp/elf - -# How to compile C file (Tests). -$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/showfont.c - @echo Compiling $< - @-mkdir -p $(dir $@) - powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) - -# How to compile C file (SDL library). -$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c - @echo Compiling $< - @-mkdir -p $(dir $@) - @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) +#--------------------------------------------------------------------------------- +# Clear the implicit built in rules +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPPC)),) +$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") +endif + +include $(DEVKITPPC)/wii_rules + +# Directories. +OBJ_DIR := obj +LIB_DIR := lib +BIN_DIR := bin +SRC_DIR := src +INCLUDE_DIR := include +TEST_OBJ_DIR := $(OBJ_DIR)/test +TEST_SRC_DIR := src +INSTALL_HEADER_DIR ?= $(LIBOGC_INC) +INSTALL_LIB_DIR ?= $(LIBOGC_LIB) + +# Tools. +PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" + +# Library source files. +SRCS := $(filter-out $(SRC_DIR)/glfont.c $(SRC_DIR)/showfont.c, $(wildcard $(SRC_DIR)/*.c)) + +# Library object files. +OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) + +# Test source files. +# It can be useful to switch this variable around to select individual tests which are problematic. +TEST_SRCS := $(TEST_SRC_DIR)/showfont.c + +# Test object files. +TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) + +# Test .DOL files. +TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) + +# What's a full build? +all: $(LIB_DIR)/libSDL_ttf.a $(INCLUDE_DIR)/SDL_ttf.h + +# How to delete the intermediate files. +clean: + @echo Cleaning $(LIB_DIR)/libSDL_ttf.a $(OBJ_DIR) + @rm -f $(LIB_DIR)/libSDL_ttf.a $(OBJS) $(TEST_OBJS) + +# How to install to SD card ready for running. +test-install: $(TEST_DOLS) + @-mkdir -p dols + cp $(TEST_DOLS) dols + +install: + @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) + @mkdir -p $(INSTALL_HEADER_DIR)/SDL + @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) + @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL + +# How to build a library. +$(LIB_DIR)/libSDL_ttf.a: $(OBJS) + @echo Archiving $@ + @-mkdir -p $(dir $@) + @powerpc-gekko-ar crs $@ $(OBJS) + @echo ---- + +# How to build a DOL. +$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf + @echo Creating DOL $@ + @-mkdir -p $(dir $@) + #powerpc-gekko-objcopy -O binary $< $@ + elf2dol $< $@ + @echo ---- + +# How to copy a header file. +$(INCLUDE_DIR)/SDL_ttf.h: $(SRC_DIR)/SDL_ttf.h + @echo Copy $(SRC_DIR)/SDL_ttf.h to $(INCLUDE_DIR) + @-mkdir -p $(dir $@) + @cp $(SRC_DIR)/SDL_ttf.h $(INCLUDE_DIR) + +# Compilation flags. +COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) +INCLUDES := -Iinclude -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL -I$(LIBOGC_INC)/freetype +DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT +CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) + +# Test link flags. +LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(LIBOGC_LIB) -lSDL_ttf -lSDL -lfreetype -lfat -lwiiuse -lbte -logc -lm + +# How to link an ELF. +$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_ttf.a $(DEVKITPRO)/libSDL/lib/libSDL.a + @echo Linking $@ + @-mkdir -p $(dir $@) + powerpc-gekko-g++ -o $@ $< $(LDFLAGS) + #keep elf for debugging + #cp $@ /tmp/elf + +# How to compile C file (Tests). +$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/showfont.c + @echo Compiling $< + @-mkdir -p $(dir $@) + powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) + +# How to compile C file (SDL library). +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c + @echo Compiling $< + @-mkdir -p $(dir $@) + @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)