2011-10-23 13:10:40 +02:00
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
# Clear the implicit built in rules
|
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
.SUFFIXES:
|
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
ifeq ($(strip $(DEVKITPPC)),)
|
|
|
|
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
|
|
|
|
endif
|
|
|
|
|
|
|
|
include $(DEVKITPPC)/wii_rules
|
|
|
|
|
|
|
|
# Directories.
|
|
|
|
OBJ_DIR := obj
|
|
|
|
LIB_DIR := lib
|
|
|
|
BIN_DIR := .
|
|
|
|
SRC_DIR := src
|
|
|
|
INCLUDE_DIR := include
|
|
|
|
|
|
|
|
# Tools.
|
|
|
|
PIPE_TO_SED := 2>&1 | sed "s/:\([0-9]*\):/\(\1\) :/"
|
|
|
|
|
|
|
|
SYMLINKS=src/machdep src/osdep src/gfxdep src/joydep src/guidep src/sounddep src/threaddep
|
|
|
|
|
|
|
|
|
|
|
|
# Source files.
|
|
|
|
SRCS := $(wildcard $(SRC_DIR)/*.c $(SRC_DIR)/caps/*.c $(SRC_DIR)/dms/*.c $(SRC_DIR)/keymap/*.c) \
|
2014-01-20 09:19:06 +01:00
|
|
|
$(SRC_DIR)/gfxdep/rawkeys.c \
|
|
|
|
$(SRC_DIR)/gfxdep/sdlgfx.c \
|
|
|
|
$(SRC_DIR)/gfxdep/sdlkeys.c \
|
|
|
|
$(SRC_DIR)/guidep/gui-sdl.c \
|
|
|
|
$(SRC_DIR)/guidep/menu.c \
|
2014-01-25 12:19:44 +01:00
|
|
|
$(SRC_DIR)/guidep/VirtualKeyboard.c \
|
2014-01-20 09:19:06 +01:00
|
|
|
$(SRC_DIR)/joydep/joystick.c \
|
|
|
|
$(SRC_DIR)/machdep/support.c \
|
|
|
|
$(SRC_DIR)/osdep/main.c \
|
|
|
|
$(SRC_DIR)/osdep/memory.c\
|
|
|
|
$(SRC_DIR)/sounddep/sound.c \
|
|
|
|
$(SRC_DIR)/threaddep/thread.c
|
|
|
|
|
|
|
|
SRCS := $(filter-out \
|
|
|
|
src/akiko.c \
|
|
|
|
src/ar.c \
|
|
|
|
src/blitops.c \
|
|
|
|
src/blkdev-libscg.c \
|
|
|
|
src/blkdev.c \
|
|
|
|
src/bsdsocket-posix-new.c \
|
|
|
|
src/build68k.c \
|
|
|
|
src/catweasel.c \
|
|
|
|
src/cdrom.c \
|
|
|
|
src/compemu.c \
|
|
|
|
src/compemu_fpp.c \
|
|
|
|
src/compemu_raw_x86.c \
|
|
|
|
src/compemu_support.c \
|
|
|
|
src/compstbl.c \
|
|
|
|
src/debug.c \
|
|
|
|
src/enforcer.c \
|
|
|
|
src/fdi2raw.c \
|
|
|
|
src/filesys_bootrom.c \
|
|
|
|
src/genblitter.c \
|
|
|
|
src/gencomp.c \
|
|
|
|
src/gencpu.c \
|
|
|
|
src/gengenblitter.c \
|
|
|
|
src/genlinetoscr.c \
|
|
|
|
src/linetoscr.c \
|
2014-01-25 12:19:44 +01:00
|
|
|
src/make_hdf.c \
|
2014-01-20 09:19:06 +01:00
|
|
|
src/readdisk.c \
|
|
|
|
src/scsiemul.c \
|
|
|
|
src/svgancui.c \
|
|
|
|
src/tui.c \
|
|
|
|
, $(SRCS))
|
2011-10-23 13:10:40 +02:00
|
|
|
|
|
|
|
genlinetoscr_args="-b"
|
|
|
|
|
|
|
|
# Library object files.
|
2014-01-25 12:19:44 +01:00
|
|
|
OBJS := $(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS:.c=.o))
|
2011-10-23 13:10:40 +02:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
|
|
|
|
|
|
|
# What's a full build?
|
|
|
|
all: uae.dol
|
|
|
|
|
|
|
|
src/tools/genlinetoscr.exe:
|
|
|
|
cd src/tools/ && make -f Makefile.wii
|
|
|
|
|
|
|
|
# How to delete the intermediate files.
|
|
|
|
clean:
|
|
|
|
@echo Cleaning $(OBJ_DIR)
|
|
|
|
@rm -rf $(OBJS) $(OBJ_DIR) src/machdep src/target.h src/md-fpp.h src/sysconfig.h $(SYMLINKS)
|
2012-03-29 09:49:31 +02:00
|
|
|
@rm -rf dist
|
2011-10-23 13:10:40 +02:00
|
|
|
@rm -f src/blit.h src/blitfunc.c src/blitfunc.h src/blittable.c src/linetoscr.c
|
2011-10-30 19:33:58 +01:00
|
|
|
@rm -f uae.dol uae.elf
|
2011-10-23 13:10:40 +02:00
|
|
|
cd src/tools/ && make -f Makefile.wii clean
|
|
|
|
|
|
|
|
$(OBJ_DIR):
|
|
|
|
install -d $@
|
|
|
|
|
|
|
|
src/sysconfig.h: src/sysconfig.h.wii
|
|
|
|
cp $< $@
|
|
|
|
|
|
|
|
src/machdep:
|
|
|
|
rm -f $@
|
|
|
|
mkdir $@ && cd src/md-ppc-gcc && find . -maxdepth 1 -type f -exec ln '{}' ../machdep/'{}' ';'
|
|
|
|
|
|
|
|
src/osdep:
|
|
|
|
rm -f $@
|
|
|
|
mkdir $@ && cd src/od-generic && find . -maxdepth 1 -type f -exec ln '{}' ../osdep/'{}' ';'
|
|
|
|
|
|
|
|
src/gfxdep:
|
|
|
|
rm -f $@
|
|
|
|
mkdir $@ && cd src/gfx-sdl && find . -maxdepth 1 -type f -exec ln '{}' ../gfxdep/'{}' ';'
|
|
|
|
|
|
|
|
src/joydep:
|
|
|
|
rm -f $@
|
|
|
|
mkdir $@ && cd src/jd-sdl && find . -maxdepth 1 -type f -exec ln '{}' ../joydep/'{}' ';'
|
|
|
|
|
|
|
|
src/guidep:
|
|
|
|
rm -f $@
|
|
|
|
mkdir $@ && cd src/gui-sdl && find . -maxdepth 1 -type f -exec ln '{}' ../guidep/'{}' ';'
|
|
|
|
|
|
|
|
src/sounddep:
|
|
|
|
rm -f $@
|
|
|
|
mkdir $@ && cd src/sd-sdl && find . -maxdepth 1 -type f -exec ln '{}' ../sounddep/'{}' ';'
|
|
|
|
|
|
|
|
src/threaddep:
|
|
|
|
rm -f $@
|
|
|
|
mkdir $@ && cd src/td-sdl && find . -maxdepth 1 -type f -exec ln '{}' ../threaddep/'{}' ';'
|
|
|
|
|
|
|
|
src/target.h:
|
|
|
|
rm -f $@
|
|
|
|
cd src && ln -s targets/t-wii.h target.h
|
|
|
|
|
|
|
|
src/md-fpp.h:
|
|
|
|
rm -f $@
|
|
|
|
cd src && ln -s include/fpp-ieee.h md-fpp.h
|
|
|
|
|
|
|
|
src/blit.h: src/tools/genblitter.exe
|
|
|
|
src/tools/genblitter.exe i >$@
|
|
|
|
|
|
|
|
src/blitfunc.c: src/tools/genblitter.exe src/blitfunc.h
|
|
|
|
src/tools/genblitter.exe f >$@
|
|
|
|
|
|
|
|
src/blitfunc.h: src/tools/genblitter.exe
|
|
|
|
src/tools/genblitter.exe h >$@
|
|
|
|
|
|
|
|
src/blittable.c: src/tools/genblitter.exe src/blitfunc.h
|
|
|
|
src/tools/genblitter.exe t >$@
|
|
|
|
|
|
|
|
src/linetoscr.c: src/tools/genlinetoscr.exe
|
|
|
|
src/tools/genlinetoscr.exe $(genlinetoscr_args) >$@
|
|
|
|
|
|
|
|
%.h: %.h.wii
|
|
|
|
cp $< $@
|
|
|
|
|
|
|
|
%.c: %.c.wii
|
|
|
|
cp $< $@
|
|
|
|
|
|
|
|
|
|
|
|
# How to build a DOL.
|
|
|
|
uae.dol: uae.elf
|
|
|
|
@echo Creating DOL $@
|
|
|
|
@-mkdir -p $(dir $@)
|
|
|
|
#powerpc-eabi-objcopy -O binary $< $@
|
|
|
|
elf2dol $< $@
|
|
|
|
@echo ----
|
|
|
|
|
|
|
|
# Compilation flags.
|
2014-02-23 22:14:38 +01:00
|
|
|
COMMON_FLAGS := -g -O3 $(MACHDEP) -Wall -W -Wno-unused -Wno-format -Wno-sign-compare
|
2011-10-23 13:10:40 +02:00
|
|
|
INCLUDES := -Isrc/md-generic/ -Isrc/include -Isrc -I$(DEVKITPRO)/libogc/include -I$(DEVKITPRO)/libogc/include/SDL -I$(PORTLIBS)/include
|
|
|
|
DEFINES := -DOS_WITHOUT_MEMORY_MANAGEMENT -DSAVESTATE -DUSE_SDL -DSUPPORT_THREADS -DCPUEMU_0 -DCPUEMU_5 -DCPUEMU_6 \
|
|
|
|
-DFPUEMU -DAGA -DAUTOCONFIG -DFILESYS \
|
2014-11-17 11:57:55 +01:00
|
|
|
-DTD_START_HEIGHT=16 -DDRIVESOUND -DREGPARAM=
|
2011-10-23 13:10:40 +02:00
|
|
|
CFLAGS := $(COMMON_FLAGS) $(INCLUDES) $(DEFINES)
|
|
|
|
|
2014-02-23 22:14:38 +01:00
|
|
|
#unused defines: -DCAPS (to enable ipf file) -DFDI2RAW (to enable DFI file)
|
|
|
|
#unused flags: -ftree-vectorize -ffast-math
|
2011-10-23 13:10:40 +02:00
|
|
|
|
|
|
|
# Test link flags.
|
2014-01-11 07:58:34 +01:00
|
|
|
LDFLAGS := $(COMMON_FLAGS) -L$(LIB_DIR) -L$(PORTLIBS)/lib -L$(DEVKITPRO)/libogc/lib -L$(DEVKITPRO)/libogc/lib/wii -lz -lSDL_ttf -lSDL -lSDL_image -lpng -ljpeg -lfreetype -lfat -lwiiuse -lbte -logc -lm -lwiikeyboard -ltinysmb
|
2011-10-23 13:10:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
dist:uae.dol
|
|
|
|
install -d $@/apps/uae
|
2014-01-11 07:58:34 +01:00
|
|
|
install -d $@/apps/uae/docs
|
|
|
|
install -d $@/apps/uae/images/
|
2011-10-23 13:10:40 +02:00
|
|
|
install -d $@/uae
|
|
|
|
install -d $@/uae/roms
|
2011-11-27 11:12:21 +01:00
|
|
|
install -d $@/uae/floppies
|
2014-02-08 12:37:04 +01:00
|
|
|
install -d $@/uae/HD
|
2011-11-27 11:12:21 +01:00
|
|
|
install -d $@/uae/harddir
|
2011-10-23 13:10:40 +02:00
|
|
|
install -d $@/uae/saves
|
2012-04-21 10:48:26 +02:00
|
|
|
install -d $@/uae/wave
|
2011-10-23 13:10:40 +02:00
|
|
|
echo "dummy" > $@/uae/roms/put-your-kick-dot-rom-here
|
|
|
|
echo "dummy" > $@/uae/floppies/dummy
|
2014-02-08 12:37:04 +01:00
|
|
|
echo "dummy" > $@/uae/HD/dummy
|
2011-11-06 18:40:21 +01:00
|
|
|
echo "dummy" > $@/uae/harddir/dummy
|
2011-10-23 13:10:40 +02:00
|
|
|
echo "dummy" > $@/uae/saves/dummy
|
|
|
|
cp $< $@/apps/uae/boot.dol
|
|
|
|
cp meta.xml $@/apps/uae/
|
|
|
|
cp icon.png $@/apps/uae/
|
|
|
|
cp FreeMono.ttf $@/apps/uae/
|
2014-01-11 07:58:34 +01:00
|
|
|
cp README.Cloanto-Amiga_Forever $@/apps/uae/docs/
|
|
|
|
cp images/kb_amiga.png $@/apps/uae/images/
|
2011-10-23 13:10:40 +02:00
|
|
|
cp uaerc.wii $@/uae/uaerc
|
|
|
|
cp uaerc.smb $@/uae/
|
2014-01-11 07:58:34 +01:00
|
|
|
cp docs/configuration.txt $@/apps/uae/docs/
|
|
|
|
cp docs/Joystick_mapping.txt $@/apps/uae/docs/
|
2012-04-21 10:48:26 +02:00
|
|
|
cp src/resource/*.wav $@/uae/wave
|
2012-05-19 08:05:07 +02:00
|
|
|
cd $@ && tar -czf ../uae-wii-vx-bin.tar.gz *
|
2011-10-30 19:33:58 +01:00
|
|
|
|
|
|
|
distsource:
|
2011-12-10 17:55:26 +01:00
|
|
|
cd .. && cp -r uae-wii uae-wii-v
|
2011-10-30 19:33:58 +01:00
|
|
|
cd ../uae-wii-v && find . -name ".svn" | xargs rm -rf
|
|
|
|
cd .. && tar -czf uae-wii-v.tar.gz uae-wii-v
|
2012-03-29 09:49:31 +02:00
|
|
|
cd .. && rm -fr uae-wii-v
|
2011-10-30 19:33:58 +01:00
|
|
|
|
2011-10-23 13:10:40 +02:00
|
|
|
|
|
|
|
#---------------------------------------------------------------------------------
|
|
|
|
run:
|
|
|
|
wiiload uae.dol
|
|
|
|
|
|
|
|
|
|
|
|
# How to link an ELF.
|
|
|
|
uae.elf: src/tools/genlinetoscr.exe src/blit.h src/blitfunc.c src/blitfunc.h src/blittable.c src/linetoscr.c $(SYMLINKS) src/target.h src/md-fpp.h src/sysconfig.h $(OBJS)
|
|
|
|
@echo Linking $@
|
|
|
|
@-mkdir -p $(dir $@)
|
2014-02-23 22:14:38 +01:00
|
|
|
$(CC) -o $@ $(OBJS) $(LDFLAGS)
|
2011-10-23 13:10:40 +02:00
|
|
|
#keep elf for debugging
|
|
|
|
#cp $@ /tmp/elf
|
|
|
|
|
2013-12-25 07:50:59 +01:00
|
|
|
# How to compile C file
|
2011-10-23 13:10:40 +02:00
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
|
|
|
@echo Compiling $<
|
|
|
|
@-mkdir -p $(dir $@)
|
|
|
|
@$(CC) $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)
|
|
|
|
|
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
|
|
|
|
@echo Compiling $<
|
|
|
|
@-mkdir -p $(dir $@)
|
|
|
|
@$(CXX) $(CFLAGS) -c $< -o $@ $(PIPE_TO_SED)
|