add libogc folder

update makefiles for easier building of separate targets
This commit is contained in:
Dave Murphy 2008-05-01 09:57:23 +00:00
parent 7311c4f757
commit 33af69e193
6 changed files with 296 additions and 30 deletions

View File

@ -10,43 +10,81 @@ default: release
all: release dist
release:
make -C nds BUILD=release
make -C gba BUILD=release
make -C gamecube BUILD=release
make -C wii BUILD=release
release: nds-release gba-release cube-release wii-release
debug:
make -C nds BUILD=debug
make -C gba BUILD=debug
ogc-release: cube-release wii-release
clean:
make -C nds clean
make -C gba clean
make -C gamecube clean
make -C wii clean
nds-release:
$(MAKE) -C nds BUILD=release
dist-bin: release distribute/$(DATESTRING)
make -C nds dist-bin
make -C gba dist-bin
make -C gamecube dist-bin
gba-release:
$(MAKE) -C gba BUILD=release
cube-release:
$(MAKE) -C libogc PLATFORM=cube BUILD=cube_release
wii-release:
$(MAKE) -C libogc PLATFORM=wii BUILD=wii_release
debug: nds-debug gba-debug cube-debug wii-debug
ogc-debug: cube-debug wii-debug
nds-debug:
$(MAKE) -C nds BUILD=debug
gba-debug:
$(MAKE) -C gba BUILD=debug
cube-debug:
$(MAKE) -C libogc PLATFORM=cube BUILD=wii_debug
wii-debug:
$(MAKE) -C libogc PLATFORM=wii BUILD=cube_debug
clean: nds-clean gba-clean ogc-clean
nds-clean:
$(MAKE) -C nds clean
gba-clean:
$(MAKE) -C gba clean
ogc-clean:
$(MAKE) -C libogc clean
dist-bin: nds-dist-bin gba-dist-bin ogc-dist-bin
nds-dist-bin: nds-release distribute/$(DATESTRING)
$(MAKE) -C nds dist-bin
gba-dist-bin: gba-release distribute/$(DATESTRING)
$(MAKE) -C gba dist-bin
ogc-dist-bin: ogc-release distribute/$(DATESTRING)
$(MAKE) -C libogc dist-bin
dist-src: distribute/$(DATESTRING)
@tar --exclude=*CVS* -cvjf distribute/$(DATESTRING)/libfat-src-$(DATESTRING).tar.bz2 \
source include Makefile \
nds/Makefile nds/include \
gba/Makefile gba/include \
gamecube/Makefile gamecube/include
libogc/Makefile libogc/include
dist: dist-bin dist-src
distribute/$(DATESTRING): distribute
distribute/$(DATESTRING):
@[ -d $@ ] || mkdir -p $@
distribute:
@[ -d $@ ] || mkdir -p $@
install: dist
install: nds-install gba-install ogc-install
nds-install: nds-release
make -C nds install
gba-install: gba-release
make -C gba install
make -C gamecube install
ogc-install: cube-release wii-release
make -C libogc install

View File

@ -112,7 +112,7 @@ export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
#---------------------------------------------------------------------------------
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#---------------------------------------------------------------------------------
clean:
@ -124,8 +124,9 @@ all: $(GBABIN)
dist-bin:
@tar --exclude=*CVS* -cvjf $(TOPDIR)/distribute/$(DATESTRING)/libfat-gba-$(DATESTRING).tar.bz2 include lib
install: dist-bin
bzip2 -cd $(TOPDIR)/distribute/$(DATESTRING)/libfat-gba-$(DATESTRING).tar.bz2 | tar -xv -C $(DEVKITPRO)/libgba
install:
cp lib/libfat.a $(DEVKITPRO)/libgba/lib
cp include/fat.h $(DEVKITPRO)/libgba/include
#---------------------------------------------------------------------------------
else

View File

@ -1 +1 @@
<Project name="libfat"><MagicFolder excludeFolders="CVS;.svn" filter="*.c;*.h" name="source" path="source\"><MagicFolder excludeFolders="CVS;.svn" filter="*.c;*.h" name="disc_io" path="disc_io\"><File path="disc.c"></File><File path="disc.h"></File><File path="disc_io.h"></File><File path="io_cf_common.c"></File><File path="io_cf_common.h"></File><File path="io_dldi.h"></File><File path="io_efa2.c"></File><File path="io_efa2.h"></File><File path="io_fcsr.c"></File><File path="io_fcsr.h"></File><File path="io_m3cf.c"></File><File path="io_m3cf.h"></File><File path="io_m3sd.c"></File><File path="io_m3sd.h"></File><File path="io_m3_common.c"></File><File path="io_m3_common.h"></File><File path="io_mpcf.c"></File><File path="io_mpcf.h"></File><File path="io_njsd.c"></File><File path="io_njsd.h"></File><File path="io_nmmc.c"></File><File path="io_nmmc.h"></File><File path="io_sccf.c"></File><File path="io_sccf.h"></File><File path="io_scsd.c"></File><File path="io_scsd.h"></File><File path="io_sc_common.c"></File><File path="io_sc_common.h"></File><File path="io_sd_common.c"></File><File path="io_sd_common.h"></File></MagicFolder><File path="bit_ops.h"></File><File path="cache.c"></File><File path="cache.h"></File><File path="common.h"></File><File path="directory.c"></File><File path="directory.h"></File><File path="fatdir.c"></File><File path="fatdir.h"></File><File path="fatfile.c"></File><File path="fatfile.h"></File><File path="filetime.c"></File><File path="filetime.h"></File><File path="file_allocation_table.c"></File><File path="file_allocation_table.h"></File><File path="libfat.c"></File><File path="mem_allocate.h"></File><File path="partition.c"></File><File path="partition.h"></File></MagicFolder><Folder name="nds"><Folder name="include"><File path="nds\include\fat.h"></File></Folder><File path="nds\Makefile"></File></Folder><Folder name="gamecube"><Folder name="include"><File path="gamecube\include\fat.h"></File></Folder><File path="gamecube\Makefile"></File></Folder><Folder name="wii"><File path="wii\Makefile"></File></Folder><Folder name="gba"><Folder name="include"><File path="gba\include\fat.h"></File></Folder><File path="gba\Makefile"></File></Folder><File path="Makefile"></File></Project>
<Project name="libfat"><MagicFolder excludeFolders="CVS;.svn" filter="*.c;*.h" name="source" path="source\"><MagicFolder excludeFolders="CVS;.svn" filter="*.c;*.h" name="disc_io" path="disc_io\"><File path="io_cf_common.c"></File><File path="io_cf_common.h"></File><File path="io_dldi.h"></File><File path="io_efa2.c"></File><File path="io_efa2.h"></File><File path="io_fcsr.c"></File><File path="io_fcsr.h"></File><File path="io_m3cf.c"></File><File path="io_m3cf.h"></File><File path="io_m3sd.c"></File><File path="io_m3sd.h"></File><File path="io_m3_common.c"></File><File path="io_m3_common.h"></File><File path="io_mpcf.c"></File><File path="io_mpcf.h"></File><File path="io_njsd.c"></File><File path="io_njsd.h"></File><File path="io_nmmc.c"></File><File path="io_nmmc.h"></File><File path="io_sccf.c"></File><File path="io_sccf.h"></File><File path="io_scsd.c"></File><File path="io_scsd.h"></File><File path="io_sc_common.c"></File><File path="io_sc_common.h"></File><File path="io_sd_common.c"></File><File path="io_sd_common.h"></File></MagicFolder><File path="bit_ops.h"></File><File path="cache.c"></File><File path="cache.h"></File><File path="common.h"></File><File path="directory.c"></File><File path="directory.h"></File><File path="disc.c"></File><File path="disc.h"></File><File path="fatdir.c"></File><File path="fatdir.h"></File><File path="fatfile.c"></File><File path="fatfile.h"></File><File path="filetime.c"></File><File path="filetime.h"></File><File path="file_allocation_table.c"></File><File path="file_allocation_table.h"></File><File path="libfat.c"></File><File path="mem_allocate.h"></File><File path="partition.c"></File><File path="partition.h"></File></MagicFolder><Folder name="nds"><Folder name="include"><File path="nds\include\fat.h"></File></Folder><File path="nds\Makefile"></File></Folder><Folder name="libogc"><Folder name="include"><File path="libogc\include\fat.h"></File></Folder><File path="libogc\Makefile"></File></Folder><Folder name="gba"><Folder name="include"><File path="gba\include\fat.h"></File></Folder><File path="gba\Makefile"></File></Folder><File path="Makefile"></File></Project>

132
libogc/Makefile Normal file
View File

@ -0,0 +1,132 @@
#---------------------------------------------------------------------------------
.SUFFIXES:
#---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC)
endif
ifeq ($(PLATFORM),wii)
include $(DEVKITPPC)/wii_rules
endif
ifeq ($(PLATFORM),cube)
include $(DEVKITPPC)/gamecube_rules
endif
#---------------------------------------------------------------------------------
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
# DATA is a list of directories containing binary files
# LIBDIR is where the built library will be placed
# all directories are relative to this makefile
#---------------------------------------------------------------------------------
BUILD ?= wii_release
SOURCES := ../source source
INCLUDES := ../include
DATA :=
LIBDIR := $(TOPDIR)/libogc/lib
#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------
CFLAGS = -g -O2 -Wall $(MACHDEP) $(INCLUDE)
CXXFLAGS = $(CFLAGS)
ASFLAGS := -g
ifneq ($(BUILD),debug)
export CUBEBIN := $(LIBDIR)/$(PLATFORM)/libfat.a
else
export CUBEBIN := $(LIBDIR)/$(PLATFORM)/libfatd.a
CFLAGS += -DFAT_DEBUG
endif
#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBS :=
#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib
#---------------------------------------------------------------------------------
LIBDIRS :=
#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------
export TOPDIR ?= $(CURDIR)/..
export DEPSDIR := $(CURDIR)/$(BUILD)
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
export OFILES := $(addsuffix .o,$(BINFILES)) \
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
-I$(CURDIR)/$(BUILD) \
-I$(LIBOGC_INC)
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
-L$(LIBOGC_LIB)
.PHONY: $(BUILD) clean
#---------------------------------------------------------------------------------
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#---------------------------------------------------------------------------------
clean:
@echo clean ...
@rm -fr wii_debug wii_release cube_debug cube_release $(LIBDIR)
all: $(CUBEBIN)
dist-bin:
@tar --exclude=*CVS* -cvjf $(TOPDIR)/distribute/$(DATESTRING)/libfat-ogc-$(DATESTRING).tar.bz2 include lib
install:
cp lib/wii/libfat.a $(DEVKITPRO)/libogc/lib/wii
cp lib/cube/libfat.a $(DEVKITPRO)/libogc/lib/cube
cp include/fat.h $(DEVKITPRO)/libogc/include
#---------------------------------------------------------------------------------
else
DEPENDS := $(OFILES:.o=.d)
#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
$(CUBEBIN) : $(OFILES) $(LIBDIR)/$(PLATFORM)
@rm -f "$(CUBEBIN)"
@$(AR) rcs "$(CUBEBIN)" $(OFILES)
@echo built ... $(notdir $@)
$(LIBDIR)/$(PLATFORM):
mkdir -p $(LIBDIR)/$(PLATFORM)
-include $(DEPENDS)
#---------------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------------

94
libogc/include/fat.h Normal file
View File

@ -0,0 +1,94 @@
/*
fat.h
Simple functionality for startup, mounting and unmounting of FAT-based devices.
Copyright (c) 2006 Michael "Chishm" Chisholm
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _LIBFAT_H
#define _LIBFAT_H
#ifdef __cplusplus
extern "C" {
#endif
#include <gctypes.h>
typedef enum {PI_CART_SLOT} PARTITION_INTERFACE;
struct IO_INTERFACE_STRUCT ;
/*
Initialise any inserted block-devices.
Add the fat device driver to the devoptab, making it available for standard file functions.
cacheSize: The number of pages to allocate for each inserted block-device
setAsDefaultDevice: if true, make this the default device driver for file operations
*/
bool fatInit (u32 cacheSize, bool setAsDefaultDevice);
/*
Calls fatInit with setAsDefaultDevice = true and cacheSize optimised for the host system.
*/
bool fatInitDefault (void);
/*
Mount the device specified by partitionNumber
PD_DEFAULT is not allowed, use _FAT_partition_setDefaultDevice
PD_CUSTOM is not allowed, use _FAT_partition_mountCustomDevice
*/
bool fatMountNormalInterface (PARTITION_INTERFACE partitionNumber, u32 cacheSize);
/*
Mount a partition on a custom device
*/
bool fatMountCustomInterface (struct IO_INTERFACE_STRUCT* device, u32 cacheSize);
/*
Unmount the partition specified by partitionNumber
If there are open files, it will fail
*/
bool fatUnmount (PARTITION_INTERFACE partitionNumber);
/*
Forcibly unmount the partition specified by partitionNumber
Any open files on the partition will become invalid
The cache will be invalidated, and any unflushed writes will be lost
*/
bool fatUnsafeUnmount (PARTITION_INTERFACE partitionNumber);
/*
Set the default device for access by fat: and fat0:
PD_DEFAULT is unallowed.
Doesn't do anything useful on GBA, since there is only one device
*/
bool fatSetDefaultInterface (PARTITION_INTERFACE partitionNumber);
#ifdef __cplusplus
}
#endif
#endif // _LIBFAT_H

View File

@ -90,7 +90,7 @@ export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
#---------------------------------------------------------------------------------
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#---------------------------------------------------------------------------------
clean:
@ -102,8 +102,9 @@ all: $(ARM9BIN)
dist-bin:
@tar --exclude=*CVS* -cvjf $(TOPDIR)/distribute/$(DATESTRING)/libfat-nds-$(DATESTRING).tar.bz2 include lib
install: dist-bin
bzip2 -cd $(TOPDIR)/distribute/$(DATESTRING)/libfat-nds-$(DATESTRING).tar.bz2 | tar -xv -C $(DEVKITPRO)/libnds
install:
cp lib/libfat.a $(DEVKITPRO)/libnds/lib
cp include/fat.h $(DEVKITPRO)/libnds/include
#---------------------------------------------------------------------------------
else