#
#	adxmfs
#

PROJECT			= adxmfs
EXT				=
USER_H_FILES	=
USER_C_FILES	= adxmfs.c usr_ps3ppu.c
USER_CPP_FILES	=
USER_LIB_FILES	= adxps3ppu utps3ppu dbgfont PSGL PSGLU gcm mixer audio sysutil pad fs io m
USER_INC_DIRS	=
USER_SRC_DIRS	= ../ ../usr
USER_LIB_DIRS	= $(CELL_SDK)/target/ppu/lib/PSGL/RSX/opt
USER_CFLAGS		=
USER_CPPFLAGS	=
USER_LDFLAGS	=
USER_ASFLAGS	=


#=======================================
#	CRI LIB DIR
#=======================================
CRI_INC_DIR		:= $(CRISDK_PS3_ROOT)/ps3/include
CRI_LIB_DIR		:= $(CRISDK_PS3_ROOT)/ps3/libs

#=======================================
#	ݒ
#=======================================
SHELL			:= /bin/sh
AS      		:= ppu-lv2-as
CC				:= ppu-lv2-gcc
LD      		:= ppu-lv2-ld
RANLIB  		:= ppu-lv2-ranlib
AR				:= ppu-lv2-ar
CP				:= cp -fuv
RM				:= rm -f
VPATH			:= $(USER_SRC_DIRS: =:)

#=======================================
#	^[Qbg
#=======================================
MAKE_TARGET	:= $(PROJECT)

#=======================================
#	IuWFNgt@C
#=======================================
TGT_OBJS := $(USER_C_FILES:.c=.o)
TGT_OBJS += $(USER_CPP_FILES:.cpp=.o)
TGT_OBJS := $(TGT_OBJS) $(USER_OBJ_FILES:.obj=.o)
TGT_OBJS := $(filter %.o, $(TGT_OBJS))

#=======================================
#	CN[h
#=======================================
INC_DIRS		:= $(CRI_INC_DIR) $(USER_INC_DIRS)
INC_DIRS_FLAGS	:= $(addprefix -I,$(INC_DIRS))

#=======================================
#	Cu
#=======================================
LIB_DIRS		:= $(CRI_LIB_DIR) $(USER_LIB_DIRS)
LIB_DIRS_FLAGS	:= $(addprefix -L,$(LIB_DIRS))
LIB_FILES		:= $(USER_LIB_FILES)
LIB_FILES_FLAGS := $(addprefix -l,$(LIB_FILES))

#=======================================
#	IvV
#=======================================
ifdef	DEBUG
COMMON_CFLAGS	:= -c -g -O0 -Wall $(INC_DIRS_FLAGS)
COMMON_CPPFLAGS	:= $(COMMON_CFLAGS)
else
COMMON_CFLAGS	:= -c -O2 -Wall $(INC_DIRS_FLAGS)
COMMON_CPPFLAGS	:= $(COMMON_CFLAGS)
endif
COMMON_LDFLAGS 	:= $(LIB_DIRS_FLAGS) $(LIB_FILES_FLAGS)

CFLAGS		:= $(USER_CFLAGS) $(COMMON_CFLAGS)
CPPFLAGS	:= $(USER_CPPFLAGS) $(COMMON_CPPFLAGS)
LDFLAGS		:= $(USER_LDFLAGS) $(COMMON_LDFLAGS)
ARFLAGS		= -r


#=======================================
#	[
#=======================================
all : $(MAKE_TARGET)

#---------------------------------------
#	^[Qbg̐
$(MAKE_TARGET) : $(TGT_OBJS)
	@echo $@
	@$(CC) -o $@ $(TGT_OBJS) $(LDFLAGS)

#---------------------------------------
#	.obj ̃Rs[
%.o : %.obj
	@echo $@
	@cp $< $@

#---------------------------------------
#	.c ̃RpC
%.o : %.c
	@echo $@
	@$(CC) $(CFLAGS) $<

#---------------------------------------
#	.cpp ̃RpC
%.o : %.cpp
	@echo $@
	@$(CC) $(CPPFLAGS) $<

#---------------------------------------
#	ˑ֌W̎
%.d : %.c
	@echo $@
	@set -e
	@$(CC) -MM $(CFLAGS) $< | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@
	@[ -s $@ ] || $(RM) -f $@

%.d : %.cpp
	@echo $@
	@set -e
	@$(CC) -MM $(CPPFLAGS) $< | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@
	@[ -s $@ ] || $(RM) -f $@

#---------------------------------------
#	ˑ֌W̃CN[h
ifeq (, $(findstring $(MAKECMDGOALS), "clean"))

ifneq ($(strip $(USER_C_FILES)),)
-include $(USER_C_FILES:.c=.d)
endif

ifneq ($(strip $(USER_CPP_FILES)),)
-include $(USER_CPP_FILES:.cpp=.d)
endif

endif


#=======================================
#	clean R}h
#=======================================
clean :
	@$(RM) $(MAKE_TARGET) *.o *.d

#=======================================
#	Ũ^[Qbg̐錾
#=======================================
.PHONY : all clean

