compile with -Os for dkppc
[libfat.git] / libogc / Makefile
blobc4e5f01ddba71dbcd88c18e3b3116d0ca68b4336
1 #---------------------------------------------------------------------------------
2 .SUFFIXES:
3 #---------------------------------------------------------------------------------
4 ifeq ($(strip $(DEVKITPPC)),)
5 $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC)
6 endif
8 ifeq ($(PLATFORM),wii)
9 include $(DEVKITPPC)/wii_rules
10 endif
12 ifeq ($(PLATFORM),cube)
13 include $(DEVKITPPC)/gamecube_rules
14 endif
16 #---------------------------------------------------------------------------------
17 # BUILD is the directory where object files & intermediate files will be placed
18 # SOURCES is a list of directories containing source code
19 # INCLUDES is a list of directories containing extra header files
20 # DATA is a list of directories containing binary files
21 # LIBDIR is where the built library will be placed
22 # all directories are relative to this makefile
23 #---------------------------------------------------------------------------------
24 BUILD ?= wii_release
25 SOURCES := ../source
26 INCLUDES := ../include
27 DATA :=
28 LIBDIR := $(TOPDIR)/libogc/lib
30 #---------------------------------------------------------------------------------
31 # options for code generation
32 #---------------------------------------------------------------------------------
33 CFLAGS = -g -Os -Wall $(MACHDEP) $(INCLUDE)
34 CXXFLAGS = $(CFLAGS)
36 ASFLAGS := -g
38 ifneq ($(BUILD),debug)
39 export CUBEBIN := $(LIBDIR)/$(PLATFORM)/libfat.a
40 else
41 export CUBEBIN := $(LIBDIR)/$(PLATFORM)/libfatd.a
42 CFLAGS += -DFAT_DEBUG
43 endif
45 #---------------------------------------------------------------------------------
46 # any extra libraries we wish to link with the project
47 #---------------------------------------------------------------------------------
48 LIBS :=
50 #---------------------------------------------------------------------------------
51 # list of directories containing libraries, this must be the top level containing
52 # include and lib
53 #---------------------------------------------------------------------------------
54 LIBDIRS :=
56 #---------------------------------------------------------------------------------
57 # no real need to edit anything past this point unless you need to add additional
58 # rules for different file extensions
59 #---------------------------------------------------------------------------------
60 ifneq ($(BUILD),$(notdir $(CURDIR)))
61 #---------------------------------------------------------------------------------
63 export TOPDIR ?= $(CURDIR)/..
66 export DEPSDIR := $(CURDIR)/$(BUILD)
68 export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
69 $(foreach dir,$(DATA),$(CURDIR)/$(dir))
71 CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
72 CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
73 SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
74 BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
77 export OFILES := $(addsuffix .o,$(BINFILES)) \
78 $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
80 export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
81 $(foreach dir,$(LIBDIRS),-I$(dir)/include) \
82 $(foreach dir,$(LIBDIRS),-I$(dir)/include) \
83 -I$(CURDIR)/$(BUILD) \
84 -I$(LIBOGC_INC)
86 export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
87 -L$(LIBOGC_LIB)
89 .PHONY: $(BUILD) clean
91 #---------------------------------------------------------------------------------
92 $(BUILD):
93 @[ -d $@ ] || mkdir -p $@
94 @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
96 #---------------------------------------------------------------------------------
97 clean:
98 @echo clean ...
99 @rm -fr wii_debug wii_release cube_debug cube_release $(LIBDIR)
101 all: $(CUBEBIN)
103 dist-bin:
104 @mkdir include
105 @cp ../include/fat.h include
106 @tar --exclude=.svn --exclude=*CVS* -cvjf $(TOPDIR)/distribute/$(VERSTRING)/libfat-ogc-$(VERSTRING).tar.bz2 include lib
107 @rm include/fat.h
108 @rmdir inlcude
110 install:
111 cp lib/wii/libfat.a $(DEVKITPRO)/libogc/lib/wii
112 cp lib/cube/libfat.a $(DEVKITPRO)/libogc/lib/cube
113 cp ../include/fat.h $(DEVKITPRO)/libogc/include
115 #---------------------------------------------------------------------------------
116 else
118 DEPENDS := $(OFILES:.o=.d)
120 #---------------------------------------------------------------------------------
121 # main targets
122 #---------------------------------------------------------------------------------
123 $(CUBEBIN) : $(OFILES) $(LIBDIR)/$(PLATFORM)
124 @rm -f "$(CUBEBIN)"
125 @$(AR) rcs "$(CUBEBIN)" $(OFILES)
126 @echo built ... $(notdir $@)
128 $(LIBDIR)/$(PLATFORM):
129 mkdir -p $(LIBDIR)/$(PLATFORM)
131 -include $(DEPENDS)
133 #---------------------------------------------------------------------------------------
134 endif
135 #---------------------------------------------------------------------------------------