use $(LIBOGC_INC) and $(LIBOGC_LIB)

This commit is contained in:
dborth 2009-07-28 05:43:51 +00:00
parent 55c6b5968b
commit ff80b8d007
6 changed files with 584 additions and 584 deletions

View file

@ -1,103 +1,103 @@
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Clear the implicit built in rules # Clear the implicit built in rules
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
.SUFFIXES: .SUFFIXES:
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),) ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC") $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
endif endif
include $(DEVKITPPC)/wii_rules include $(DEVKITPPC)/wii_rules
# Directories. # Directories.
OBJ_DIR := obj/wii OBJ_DIR := obj/wii
LIB_DIR := lib LIB_DIR := lib
BIN_DIR := bin/wii BIN_DIR := bin/wii
SDL_OBJ_DIR := $(OBJ_DIR)/sdl SDL_OBJ_DIR := $(OBJ_DIR)/sdl
SDL_SRC_DIR := src SDL_SRC_DIR := src
INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include INSTALL_HEADER_DIR ?= $(LIBOGC_INC)
INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii INSTALL_LIB_DIR ?= $(LIBOGC_LIB)
# Tools. # Tools.
PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/"
# Library source files. # Library source files.
SDL_SRCS := \ SDL_SRCS := \
$(wildcard $(SDL_SRC_DIR)/*.c) \ $(wildcard $(SDL_SRC_DIR)/*.c) \
$(wildcard $(SDL_SRC_DIR)/audio/*.c) \ $(wildcard $(SDL_SRC_DIR)/audio/*.c) \
$(wildcard $(SDL_SRC_DIR)/audio/dummy/*.c) \ $(wildcard $(SDL_SRC_DIR)/audio/dummy/*.c) \
$(wildcard $(SDL_SRC_DIR)/audio/wii/*.c) \ $(wildcard $(SDL_SRC_DIR)/audio/wii/*.c) \
$(wildcard $(SDL_SRC_DIR)/cdrom/*.c) \ $(wildcard $(SDL_SRC_DIR)/cdrom/*.c) \
$(wildcard $(SDL_SRC_DIR)/cdrom/dummy/*.c) \ $(wildcard $(SDL_SRC_DIR)/cdrom/dummy/*.c) \
$(wildcard $(SDL_SRC_DIR)/cpuinfo/*.c) \ $(wildcard $(SDL_SRC_DIR)/cpuinfo/*.c) \
$(wildcard $(SDL_SRC_DIR)/events/*.c) \ $(wildcard $(SDL_SRC_DIR)/events/*.c) \
$(wildcard $(SDL_SRC_DIR)/file/*.c) \ $(wildcard $(SDL_SRC_DIR)/file/*.c) \
$(wildcard $(SDL_SRC_DIR)/file/wii/*.c) \ $(wildcard $(SDL_SRC_DIR)/file/wii/*.c) \
$(wildcard $(SDL_SRC_DIR)/joystick/*.c) \ $(wildcard $(SDL_SRC_DIR)/joystick/*.c) \
$(wildcard $(SDL_SRC_DIR)/joystick/wii/*.c) \ $(wildcard $(SDL_SRC_DIR)/joystick/wii/*.c) \
$(wildcard $(SDL_SRC_DIR)/loadso/dummy/*.c) \ $(wildcard $(SDL_SRC_DIR)/loadso/dummy/*.c) \
$(wildcard $(SDL_SRC_DIR)/main/wii/*.c) \ $(wildcard $(SDL_SRC_DIR)/main/wii/*.c) \
$(wildcard $(SDL_SRC_DIR)/stdlib/*.c) \ $(wildcard $(SDL_SRC_DIR)/stdlib/*.c) \
$(wildcard $(SDL_SRC_DIR)/thread/*.c) \ $(wildcard $(SDL_SRC_DIR)/thread/*.c) \
$(wildcard $(SDL_SRC_DIR)/thread/wii/*.c) \ $(wildcard $(SDL_SRC_DIR)/thread/wii/*.c) \
$(wildcard $(SDL_SRC_DIR)/timer/*.c) \ $(wildcard $(SDL_SRC_DIR)/timer/*.c) \
$(wildcard $(SDL_SRC_DIR)/timer/wii/*.c) \ $(wildcard $(SDL_SRC_DIR)/timer/wii/*.c) \
$(wildcard $(SDL_SRC_DIR)/video/*.c) \ $(wildcard $(SDL_SRC_DIR)/video/*.c) \
$(wildcard $(SDL_SRC_DIR)/video/dummy/*.c) \ $(wildcard $(SDL_SRC_DIR)/video/dummy/*.c) \
$(wildcard $(SDL_SRC_DIR)/video/wii/*.c) $(wildcard $(SDL_SRC_DIR)/video/wii/*.c)
# Library object files. # Library object files.
SDL_OBJS := $(subst $(SDL_SRC_DIR),$(SDL_OBJ_DIR),$(SDL_SRCS:.c=.o)) SDL_OBJS := $(subst $(SDL_SRC_DIR),$(SDL_OBJ_DIR),$(SDL_SRCS:.c=.o))
# What's a full build? # What's a full build?
all: $(LIB_DIR)/libSDL.a all: $(LIB_DIR)/libSDL.a
# How to delete the intermediate files. # How to delete the intermediate files.
clean: clean:
@echo Cleaning $(LIB_DIR) $(SDL_OBJS) @echo Cleaning $(LIB_DIR) $(SDL_OBJS)
@rm -fr $(LIB_DIR) $(SDL_OBJS) @rm -fr $(LIB_DIR) $(SDL_OBJS)
install: install:
@mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR)
@mkdir -p $(INSTALL_HEADER_DIR)/SDL @mkdir -p $(INSTALL_HEADER_DIR)/SDL
@cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR)
@cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL
# Used to install library by pressing Alt+R in Programmer's Notepad # Used to install library by pressing Alt+R in Programmer's Notepad
run: all install run: all install
test-make: test-make:
$(MAKE) -f Makefile.test install $(MAKE) -f Makefile.test install
test-clean: test-clean:
$(MAKE) -f Makefile.test clean $(MAKE) -f Makefile.test clean
# How to build a library. # How to build a library.
$(LIB_DIR)/libSDL.a: $(SDL_OBJS) $(LIB_DIR)/libSDL.a: $(SDL_OBJS)
@echo Archiving $@ @echo Archiving $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
powerpc-gekko-ar crs $@ $(SDL_OBJS) powerpc-gekko-ar crs $@ $(SDL_OBJS)
@echo ---- @echo ----
# How to build a DOL. # How to build a DOL.
$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf $(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf
@echo Creating DOL $@ @echo Creating DOL $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
#powerpc-gekko-objcopy -O binary $< $@ #powerpc-gekko-objcopy -O binary $< $@
elf2dol $< $@ elf2dol $< $@
@echo ---- @echo ----
# Compilation flags. # Compilation flags.
COMMON_FLAGS := -g -O3 -Wall $(MACHDEP) COMMON_FLAGS := -g -O3 -Wall $(MACHDEP)
INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include INCLUDES := -Iinclude -I$(LIBOGC_INC)
DEFINES := -DGEKKO DEFINES := -DGEKKO
CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES)
# Test link flags. # Test link flags.
LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libogc/lib/wii -lSDL -lwiikeyboard -lfat -lwiiuse -lbte -logc -lm LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(LIBOGC_LIB) -lSDL -lwiikeyboard -lfat -lwiiuse -lbte -logc -lm
# How to compile C file (SDL library). # How to compile C file (SDL library).
$(SDL_OBJ_DIR)/%.o: $(SDL_SRC_DIR)/%.c $(SDL_OBJ_DIR)/%.o: $(SDL_SRC_DIR)/%.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)

View file

@ -1,69 +1,69 @@
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Clear the implicit built in rules # Clear the implicit built in rules
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
.SUFFIXES: .SUFFIXES:
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),) ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC") $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
endif endif
include $(DEVKITPPC)/wii_rules include $(DEVKITPPC)/wii_rules
# Directories. # Directories.
OBJ_DIR := obj OBJ_DIR := obj
LIB_DIR := lib LIB_DIR := lib
BIN_DIR := bin BIN_DIR := bin
SRC_DIR := src SRC_DIR := src
INCLUDE_DIR := include INCLUDE_DIR := include
TEST_OBJ_DIR := $(OBJ_DIR)/test TEST_OBJ_DIR := $(OBJ_DIR)/test
TEST_SRC_DIR := src TEST_SRC_DIR := src
INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include INSTALL_HEADER_DIR ?= $(LIBOGC_INC)
INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii INSTALL_LIB_DIR ?= $(LIBOGC_LIB)
# Tools. # Tools.
PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/"
# Library source files. # Library source files.
SRCS := $(wildcard $(SRC_DIR)/*.c) SRCS := $(wildcard $(SRC_DIR)/*.c)
# Library object files. # Library object files.
OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o))
# What's a full build? # What's a full build?
all: $(LIB_DIR)/libSDL_gfx.a headers all: $(LIB_DIR)/libSDL_gfx.a headers
# How to delete the intermediate files. # How to delete the intermediate files.
clean: clean:
@echo Cleaning $(LIB_DIR)/libSDL_gfx.a $(OBJ_DIR) @echo Cleaning $(LIB_DIR)/libSDL_gfx.a $(OBJ_DIR)
@rm -f $(LIB_DIR)/libSDL_gfx.a $(OBJS) $(TEST_OBJS) @rm -f $(LIB_DIR)/libSDL_gfx.a $(OBJS) $(TEST_OBJS)
# How to build a library. # How to build a library.
$(LIB_DIR)/libSDL_gfx.a: $(OBJS) $(LIB_DIR)/libSDL_gfx.a: $(OBJS)
@echo Archiving $@ @echo Archiving $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-ar crs $@ $(OBJS) @powerpc-gekko-ar crs $@ $(OBJS)
@echo ---- @echo ----
install: install:
@mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR)
@mkdir -p $(INSTALL_HEADER_DIR)/SDL @mkdir -p $(INSTALL_HEADER_DIR)/SDL
@cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR)
@cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL
# How to copy the header file # How to copy the header file
headers: headers:
@echo Copy headers to $(INCLUDE_DIR) @echo Copy headers to $(INCLUDE_DIR)
@-mkdir -p $(INCLUDE_DIR) @-mkdir -p $(INCLUDE_DIR)
@cp $(wildcard $(SRC_DIR)/*.h) $(INCLUDE_DIR) @cp $(wildcard $(SRC_DIR)/*.h) $(INCLUDE_DIR)
# Compilation flags. # Compilation flags.
COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP)
INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL INCLUDES := -Iinclude -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL
DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT
CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES)
# How to compile C file (SDL library). # How to compile C file (SDL library).
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)

View file

@ -1,112 +1,112 @@
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Clear the implicit built in rules # Clear the implicit built in rules
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
.SUFFIXES: .SUFFIXES:
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),) ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC") $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
endif endif
include $(DEVKITPPC)/wii_rules include $(DEVKITPPC)/wii_rules
# Directories. # Directories.
OBJ_DIR := obj OBJ_DIR := obj
LIB_DIR := lib LIB_DIR := lib
BIN_DIR := bin BIN_DIR := bin
SRC_DIR := src SRC_DIR := src
INCLUDE_DIR := include INCLUDE_DIR := include
TEST_OBJ_DIR := $(OBJ_DIR)/test TEST_OBJ_DIR := $(OBJ_DIR)/test
TEST_SRC_DIR := src TEST_SRC_DIR := src
INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include INSTALL_HEADER_DIR ?= $(LIBOGC_INC)
INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii INSTALL_LIB_DIR ?= $(LIBOGC_LIB)
# Tools. # Tools.
PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/"
# Library source files. # Library source files.
SRCS := $(filter-out $(SRC_DIR)/IMG_ImageIO.c $(SRC_DIR)/showimage.c, $(wildcard $(SRC_DIR)/*.c)) SRCS := $(filter-out $(SRC_DIR)/IMG_ImageIO.c $(SRC_DIR)/showimage.c, $(wildcard $(SRC_DIR)/*.c))
# Library object files. # Library object files.
OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o))
# Test source files. # Test source files.
# It can be useful to switch this variable around to select individual tests which are problematic. # It can be useful to switch this variable around to select individual tests which are problematic.
TEST_SRCS := $(TEST_SRC_DIR)/showimage.c TEST_SRCS := $(TEST_SRC_DIR)/showimage.c
# Test object files. # Test object files.
TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o))
# Test .DOL files. # Test .DOL files.
TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol))
# What's a full build? # What's a full build?
all: $(LIB_DIR)/libSDL_image.a $(INCLUDE_DIR)/SDL_image.h all: $(LIB_DIR)/libSDL_image.a $(INCLUDE_DIR)/SDL_image.h
# How to delete the intermediate files. # How to delete the intermediate files.
clean: clean:
@echo Cleaning $(LIB_DIR)/libSDL_image.a $(OBJ_DIR) @echo Cleaning $(LIB_DIR)/libSDL_image.a $(OBJ_DIR)
@rm -f $(LIB_DIR)/libSDL_image.a $(OBJS) $(TEST_OBJS) @rm -f $(LIB_DIR)/libSDL_image.a $(OBJS) $(TEST_OBJS)
install: install:
@mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR)
@mkdir -p $(INSTALL_HEADER_DIR)/SDL @mkdir -p $(INSTALL_HEADER_DIR)/SDL
@cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR)
@cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL
# How to install to SD card ready for running. # How to install to SD card ready for running.
test-install: $(TEST_DOLS) test-install: $(TEST_DOLS)
@-mkdir -p dols @-mkdir -p dols
cp $(TEST_DOLS) dols cp $(TEST_DOLS) dols
# How to build a library. # How to build a library.
$(LIB_DIR)/libSDL_image.a: $(OBJS) $(LIB_DIR)/libSDL_image.a: $(OBJS)
@echo Archiving $@ @echo Archiving $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-ar crs $@ $(OBJS) @powerpc-gekko-ar crs $@ $(OBJS)
@echo ---- @echo ----
# How to build a DOL. # How to build a DOL.
$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf $(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf
@echo Creating DOL $@ @echo Creating DOL $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
#powerpc-gekko-objcopy -O binary $< $@ #powerpc-gekko-objcopy -O binary $< $@
elf2dol $< $@ elf2dol $< $@
@echo ---- @echo ----
# How to copy the header file # How to copy the header file
$(INCLUDE_DIR)/SDL_image.h: $(SRC_DIR)/SDL_image.h $(INCLUDE_DIR)/SDL_image.h: $(SRC_DIR)/SDL_image.h
@echo Copy $(SRC_DIR)/SDL_image.h to $(INCLUDE_DIR) @echo Copy $(SRC_DIR)/SDL_image.h to $(INCLUDE_DIR)
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@cp $(SRC_DIR)/SDL_image.h $(INCLUDE_DIR) @cp $(SRC_DIR)/SDL_image.h $(INCLUDE_DIR)
# Compilation flags. # Compilation flags.
COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP)
INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL -I$(DEVKITPRO)/libogc/include/jpeg INCLUDES := -Iinclude -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL -I$(LIBOGC_INC)/jpeg
# -I$(DEVKITPRO)/libpng/include # -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 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 # -DLOAD_TIFF
CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES)
# Test link flags. # 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 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 # -ltiff
# How to link an ELF. # How to link an ELF.
$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_image.a $(DEVKITPRO)/libSDL/lib/libSDL.a $(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_image.a $(DEVKITPRO)/libSDL/lib/libSDL.a
@echo Linking $@ @echo Linking $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
powerpc-gekko-g++ -o $@ $< $(LDFLAGS) powerpc-gekko-g++ -o $@ $< $(LDFLAGS)
#keep elf for debugging #keep elf for debugging
#cp $@ /tmp/elf #cp $@ /tmp/elf
# How to compile C file (Tests). # How to compile C file (Tests).
$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/showimage.c $(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/showimage.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)
# How to compile C file (SDL library). # How to compile C file (SDL library).
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)

View file

@ -1,117 +1,117 @@
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Clear the implicit built in rules # Clear the implicit built in rules
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
.SUFFIXES: .SUFFIXES:
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),) ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC") $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
endif endif
include $(DEVKITPPC)/wii_rules include $(DEVKITPPC)/wii_rules
# Directories. # Directories.
OBJ_DIR := obj OBJ_DIR := obj
LIB_DIR := lib LIB_DIR := lib
BIN_DIR := bin BIN_DIR := bin
SRC_DIR := src SRC_DIR := src
INCLUDE_DIR := include INCLUDE_DIR := include
TEST_OBJ_DIR := $(OBJ_DIR)/test TEST_OBJ_DIR := $(OBJ_DIR)/test
TEST_SRC_DIR := src TEST_SRC_DIR := src
INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include INSTALL_HEADER_DIR ?= $(LIBOGC_INC)
INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii INSTALL_LIB_DIR ?= $(LIBOGC_LIB)
# Tools. # Tools.
PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/"
# Library source files. # 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) 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) # $(wildcard $(SRC_DIR)/native_midi/*.c)
# Library object files. # Library object files.
OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o))
# Test source files. # Test source files.
# It can be useful to switch this variable around to select individual tests which are problematic. # 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_SRCS := $(TEST_SRC_DIR)/playwave.c $(TEST_SRC_DIR)/playmus.c
# Test object files. # Test object files.
TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o))
# Test .DOL files. # Test .DOL files.
TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol))
# What's a full build? # What's a full build?
all: $(LIB_DIR)/libSDL_mixer.a $(INCLUDE_DIR)/SDL_mixer.h all: $(LIB_DIR)/libSDL_mixer.a $(INCLUDE_DIR)/SDL_mixer.h
# How to install to SD card ready for running. # How to install to SD card ready for running.
test-install: $(TEST_DOLS) test-install: $(TEST_DOLS)
@-mkdir -p dols @-mkdir -p dols
cp $(TEST_DOLS) dols cp $(TEST_DOLS) dols
# How to delete the intermediate files. # How to delete the intermediate files.
clean: clean:
@echo Cleaning $(LIB_DIR)/libSDL_mixer.a $(OBJ_DIR) @echo Cleaning $(LIB_DIR)/libSDL_mixer.a $(OBJ_DIR)
@rm -f $(LIB_DIR)/libSDL_mixer.a $(OBJS) $(TEST_OBJS) @rm -f $(LIB_DIR)/libSDL_mixer.a $(OBJS) $(TEST_OBJS)
install: install:
@mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR)
@mkdir -p $(INSTALL_HEADER_DIR)/SDL @mkdir -p $(INSTALL_HEADER_DIR)/SDL
@cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR)
@cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL
# How to build a library. # How to build a library.
$(LIB_DIR)/libSDL_mixer.a: $(OBJS) $(LIB_DIR)/libSDL_mixer.a: $(OBJS)
@echo Archiving $@ @echo Archiving $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-ar crs $@ $(OBJS) @powerpc-gekko-ar crs $@ $(OBJS)
@echo ---- @echo ----
# How to build a DOL. # How to build a DOL.
$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf $(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf
@echo Creating DOL $@ @echo Creating DOL $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
#powerpc-gekko-objcopy -O binary $< $@ #powerpc-gekko-objcopy -O binary $< $@
elf2dol $< $@ elf2dol $< $@
@echo ---- @echo ----
# How to copy a header file # How to copy a header file
$(INCLUDE_DIR)/SDL_mixer.h: $(SRC_DIR)/SDL_mixer.h $(INCLUDE_DIR)/SDL_mixer.h: $(SRC_DIR)/SDL_mixer.h
@echo Copy $(SRC_DIR)/SDL_mixer.h to $(INCLUDE_DIR) @echo Copy $(SRC_DIR)/SDL_mixer.h to $(INCLUDE_DIR)
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@cp $(SRC_DIR)/SDL_mixer.h $(INCLUDE_DIR) @cp $(SRC_DIR)/SDL_mixer.h $(INCLUDE_DIR)
# Compilation flags. # Compilation flags.
COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) 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 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/wait.h
# -include sys/syslimits.h # -include sys/syslimits.h
# -Isrc/native_midi # -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 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 # -DUSE_NATIVE_MIDI
# -DOGG_MUSIC # -DOGG_MUSIC
# #
# -DCMD_MUSIC # -DCMD_MUSIC
CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES)
# Test link flags. # 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 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. # How to link an ELF.
$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_mixer.a $(DEVKITPRO)/libSDL/lib/libSDL.a $(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_mixer.a $(DEVKITPRO)/libSDL/lib/libSDL.a
@echo Linking $@ @echo Linking $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
powerpc-gekko-g++ -o $@ $< $(LDFLAGS) powerpc-gekko-g++ -o $@ $< $(LDFLAGS)
#keep elf for debugging #keep elf for debugging
#cp $@ /tmp/elf #cp $@ /tmp/elf
# How to compile C file (Tests). # How to compile C file (Tests).
$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/playmus.c $(TEST_SRC_DIR)/playwave.c $(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/playmus.c $(TEST_SRC_DIR)/playwave.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)
# How to compile C file (SDL library). # How to compile C file (SDL library).
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)

View file

@ -1,74 +1,74 @@
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Clear the implicit built in rules # Clear the implicit built in rules
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
.SUFFIXES: .SUFFIXES:
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),) ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC") $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
endif endif
include $(DEVKITPPC)/wii_rules include $(DEVKITPPC)/wii_rules
# Directories. # Directories.
OBJ_DIR := obj OBJ_DIR := obj
LIB_DIR := lib LIB_DIR := lib
BIN_DIR := bin BIN_DIR := bin
SRC_DIR := src SRC_DIR := src
INCLUDE_DIR := include INCLUDE_DIR := include
INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include INSTALL_HEADER_DIR ?= $(LIBOGC_INC)
INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii INSTALL_LIB_DIR ?= $(LIBOGC_LIB)
# Tools. # Tools.
PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/"
# Library source files. # Library source files.
SRCS := $(wildcard $(SRC_DIR)/*.c) SRCS := $(wildcard $(SRC_DIR)/*.c)
# Library object files. # Library object files.
OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o))
# What's a full build? # What's a full build?
all: $(LIB_DIR)/libSDL_net.a $(INCLUDE_DIR)/SDL_net.h all: $(LIB_DIR)/libSDL_net.a $(INCLUDE_DIR)/SDL_net.h
# How to delete the intermediate files. # How to delete the intermediate files.
clean: clean:
@echo Cleaning $(LIB_DIR)/libSDL_net.a $(OBJ_DIR) @echo Cleaning $(LIB_DIR)/libSDL_net.a $(OBJ_DIR)
@rm -f $(LIB_DIR)/libSDL_net.a $(OBJS) $(TEST_OBJS) @rm -f $(LIB_DIR)/libSDL_net.a $(OBJS) $(TEST_OBJS)
install: install:
@mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR)
@mkdir -p $(INSTALL_HEADER_DIR)/SDL @mkdir -p $(INSTALL_HEADER_DIR)/SDL
@cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR)
@cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL
# How to build a library. # How to build a library.
$(LIB_DIR)/libSDL_net.a: $(OBJS) $(LIB_DIR)/libSDL_net.a: $(OBJS)
@echo Archiving $@ @echo Archiving $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-ar crs $@ $(OBJS) @powerpc-gekko-ar crs $@ $(OBJS)
@echo ---- @echo ----
# How to copy a header file # How to copy a header file
$(INCLUDE_DIR)/SDL_net.h: $(SRC_DIR)/SDL_net.h $(INCLUDE_DIR)/SDL_net.h: $(SRC_DIR)/SDL_net.h
@echo Copy $(SRC_DIR)/SDL_net.h to $(INCLUDE_DIR) @echo Copy $(SRC_DIR)/SDL_net.h to $(INCLUDE_DIR)
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@cp $(SRC_DIR)/SDL_net.h $(INCLUDE_DIR) @cp $(SRC_DIR)/SDL_net.h $(INCLUDE_DIR)
# Compilation flags. # Compilation flags.
COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP)
INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL INCLUDES := -Iinclude -I$(LIBOGC_INC) -I$(LIBOGC_INC)/SDL
# -include sys/wait.h # -include sys/wait.h
# -include sys/syslimits.h # -include sys/syslimits.h
DEFINES := -DGEKKO DEFINES := -DGEKKO
CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES)
# Test link flags. # Test link flags.
LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libogc/lib/wii -lSDL -lfat -lwiiuse -lbte -logc -lm LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(LIBOGC_LIB) -lSDL -lfat -lwiiuse -lbte -logc -lm
# How to compile C file (SDL library). # How to compile C file (SDL library).
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)

View file

@ -1,109 +1,109 @@
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Clear the implicit built in rules # Clear the implicit built in rules
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
.SUFFIXES: .SUFFIXES:
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),) ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC") $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
endif endif
include $(DEVKITPPC)/wii_rules include $(DEVKITPPC)/wii_rules
# Directories. # Directories.
OBJ_DIR := obj OBJ_DIR := obj
LIB_DIR := lib LIB_DIR := lib
BIN_DIR := bin BIN_DIR := bin
SRC_DIR := src SRC_DIR := src
INCLUDE_DIR := include INCLUDE_DIR := include
TEST_OBJ_DIR := $(OBJ_DIR)/test TEST_OBJ_DIR := $(OBJ_DIR)/test
TEST_SRC_DIR := src TEST_SRC_DIR := src
INSTALL_HEADER_DIR ?= $(DEVKITPRO)/libogc/include INSTALL_HEADER_DIR ?= $(LIBOGC_INC)
INSTALL_LIB_DIR ?= $(DEVKITPRO)/libogc/lib/wii INSTALL_LIB_DIR ?= $(LIBOGC_LIB)
# Tools. # Tools.
PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/" PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/"
# Library source files. # Library source files.
SRCS := $(filter-out $(SRC_DIR)/glfont.c $(SRC_DIR)/showfont.c, $(wildcard $(SRC_DIR)/*.c)) SRCS := $(filter-out $(SRC_DIR)/glfont.c $(SRC_DIR)/showfont.c, $(wildcard $(SRC_DIR)/*.c))
# Library object files. # Library object files.
OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o)) OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o))
# Test source files. # Test source files.
# It can be useful to switch this variable around to select individual tests which are problematic. # It can be useful to switch this variable around to select individual tests which are problematic.
TEST_SRCS := $(TEST_SRC_DIR)/showfont.c TEST_SRCS := $(TEST_SRC_DIR)/showfont.c
# Test object files. # Test object files.
TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o)) TEST_OBJS := $(subst $(TEST_SRC_DIR)/,$(TEST_OBJ_DIR)/,$(TEST_SRCS:.c=.o))
# Test .DOL files. # Test .DOL files.
TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol)) TEST_DOLS := $(subst $(TEST_OBJ_DIR),$(BIN_DIR),$(TEST_OBJS:.o=.dol))
# What's a full build? # What's a full build?
all: $(LIB_DIR)/libSDL_ttf.a $(INCLUDE_DIR)/SDL_ttf.h all: $(LIB_DIR)/libSDL_ttf.a $(INCLUDE_DIR)/SDL_ttf.h
# How to delete the intermediate files. # How to delete the intermediate files.
clean: clean:
@echo Cleaning $(LIB_DIR)/libSDL_ttf.a $(OBJ_DIR) @echo Cleaning $(LIB_DIR)/libSDL_ttf.a $(OBJ_DIR)
@rm -f $(LIB_DIR)/libSDL_ttf.a $(OBJS) $(TEST_OBJS) @rm -f $(LIB_DIR)/libSDL_ttf.a $(OBJS) $(TEST_OBJS)
# How to install to SD card ready for running. # How to install to SD card ready for running.
test-install: $(TEST_DOLS) test-install: $(TEST_DOLS)
@-mkdir -p dols @-mkdir -p dols
cp $(TEST_DOLS) dols cp $(TEST_DOLS) dols
install: install:
@mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR) @mkdir -p $(INSTALL_HEADER_DIR) $(INSTALL_LIB_DIR)
@mkdir -p $(INSTALL_HEADER_DIR)/SDL @mkdir -p $(INSTALL_HEADER_DIR)/SDL
@cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR) @cp -frv $(LIB_DIR)/*.* $(INSTALL_LIB_DIR)
@cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL @cp -frv include/*.* $(INSTALL_HEADER_DIR)/SDL
# How to build a library. # How to build a library.
$(LIB_DIR)/libSDL_ttf.a: $(OBJS) $(LIB_DIR)/libSDL_ttf.a: $(OBJS)
@echo Archiving $@ @echo Archiving $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-ar crs $@ $(OBJS) @powerpc-gekko-ar crs $@ $(OBJS)
@echo ---- @echo ----
# How to build a DOL. # How to build a DOL.
$(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf $(BIN_DIR)/%.dol: $(TEST_OBJ_DIR)/%.elf
@echo Creating DOL $@ @echo Creating DOL $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
#powerpc-gekko-objcopy -O binary $< $@ #powerpc-gekko-objcopy -O binary $< $@
elf2dol $< $@ elf2dol $< $@
@echo ---- @echo ----
# How to copy a header file. # How to copy a header file.
$(INCLUDE_DIR)/SDL_ttf.h: $(SRC_DIR)/SDL_ttf.h $(INCLUDE_DIR)/SDL_ttf.h: $(SRC_DIR)/SDL_ttf.h
@echo Copy $(SRC_DIR)/SDL_ttf.h to $(INCLUDE_DIR) @echo Copy $(SRC_DIR)/SDL_ttf.h to $(INCLUDE_DIR)
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@cp $(SRC_DIR)/SDL_ttf.h $(INCLUDE_DIR) @cp $(SRC_DIR)/SDL_ttf.h $(INCLUDE_DIR)
# Compilation flags. # Compilation flags.
COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP) COMMON_FLAGS := -g -O3 -mrvl -Wall $(MACHDEP)
INCLUDES := -Iinclude -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL -I$(DEVKITPRO)/libogc/include/freetype 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 DEFINES := -DGEKKO -DDEBUG_ERROR -DDEBUG_TIMERS -DDEBUG_THREADS -DDEBUG_BUILD -DDEBUG_CONVERT
CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES) CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES)
# Test link flags. # Test link flags.
LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(DEVKITPRO)/libogc/lib/wii -lSDL_ttf -lSDL -lfreetype -lfat -lwiiuse -lbte -logc -lm LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(LIBOGC_LIB) -lSDL_ttf -lSDL -lfreetype -lfat -lwiiuse -lbte -logc -lm
# How to link an ELF. # How to link an ELF.
$(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_ttf.a $(DEVKITPRO)/libSDL/lib/libSDL.a $(TEST_OBJ_DIR)/%.elf: $(TEST_OBJ_DIR)/%.o $(LIB_DIR)/libSDL_ttf.a $(DEVKITPRO)/libSDL/lib/libSDL.a
@echo Linking $@ @echo Linking $@
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
powerpc-gekko-g++ -o $@ $< $(LDFLAGS) powerpc-gekko-g++ -o $@ $< $(LDFLAGS)
#keep elf for debugging #keep elf for debugging
#cp $@ /tmp/elf #cp $@ /tmp/elf
# How to compile C file (Tests). # How to compile C file (Tests).
$(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/showfont.c $(TEST_OBJ_DIR)/%.o: $(TEST_SRC_DIR)/showfont.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)
# How to compile C file (SDL library). # How to compile C file (SDL library).
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@echo Compiling $< @echo Compiling $<
@-mkdir -p $(dir $@) @-mkdir -p $(dir $@)
@powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED) @powerpc-gekko-gcc $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)