/Makefile

http://github.com/llopisillo/fail0verflow2 · Makefile · 84 lines · 63 code · 20 blank · 1 comment · 1 complexity · 68908513c5e37eb81644d52203c0c6ec MD5 · raw file

  1. .SUFFIXES:
  2. ifeq ($(strip $(PSL1GHT)),)
  3. $(error "PSL1GHT must be set in the environment.")
  4. endif
  5. include $(PSL1GHT)/Makefile.base
  6. TARGET := $(notdir $(CURDIR))
  7. BUILD := build
  8. SOURCE := source
  9. INCLUDE := include
  10. DATA := data
  11. LIBS := $(PSL1GHT)/modules/spu_soundmodule.bin.a \
  12. -lspu_sound -laudioplayer -lmpg123 -logg -laudio -ltiny3d -lgcm_sys -lreality -lsysutil -lio -lpngdec -lsysmodule -lm
  13. ICON0 = $(SOURCE)/../ICON0.PNG
  14. APPID := PINTOR001
  15. CONTENTID := UP0001-$(APPID)_00-0000000000000000
  16. SFOXML := package.xml
  17. CFLAGS += -g -O2 -Wall --std=gnu99
  18. CXXFLAGS += -g -O2 -Wall
  19. ifneq ($(BUILD),$(notdir $(CURDIR)))
  20. export OUTPUT := $(CURDIR)/$(TARGET)
  21. export VPATH := $(foreach dir,$(SOURCE),$(CURDIR)/$(dir)) \
  22. $(foreach dir,$(DATA),$(CURDIR)/$(dir))
  23. export BUILDDIR := $(CURDIR)/$(BUILD)
  24. export DEPSDIR := $(BUILDDIR)
  25. CFILES := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.c)))
  26. CXXFILES := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.cpp)))
  27. SFILES := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.S)))
  28. BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.bin)))
  29. VCGFILES := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.vcg)))
  30. export OFILES := $(CFILES:.c=.o) \
  31. $(CXXFILES:.cpp=.o) \
  32. $(SFILES:.S=.o) \
  33. $(BINFILES:.bin=.bin.o)
  34. export BINFILES := $(BINFILES:.bin=.bin.h)
  35. export VCGFILES := $(VCGFILES:.vcg=.vcg.h)
  36. export INCLUDES := $(foreach dir,$(INCLUDE),-I$(CURDIR)/$(dir)) \
  37. -I$(CURDIR)/$(BUILD) -I$(PSL1GHT)/modules
  38. .PHONY: $(BUILD) clean
  39. $(BUILD):
  40. @[ -d $@ ] || mkdir -p $@
  41. @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
  42. clean:
  43. @echo Clean...
  44. @rm -rf $(BUILD) $(OUTPUT).elf $(OUTPUT).self $(OUTPUT).a $(OUTPUT).pkg
  45. pkg: $(BUILD)
  46. @echo Creating PKG...
  47. @mkdir -p $(BUILD)/pkg
  48. @mkdir -p $(BUILD)/pkg/USRDIR
  49. @cp $(ICON0) $(BUILD)/pkg/
  50. #@$(FSELF) -n $(BUILD)/$(TARGET).elf $(BUILD)/pkg/USRDIR/EBOOT.BIN
  51. @$(SELF_NPDRM) $(BUILD)/$(TARGET).elf $(BUILD)/pkg/USRDIR/EBOOT.BIN $(CONTENTID)
  52. @$(SFO) -f $(SFOXML) $(BUILD)/pkg/PARAM.SFO
  53. @$(PKG) --contentid $(CONTENTID) $(BUILD)/pkg/ $(OUTPUT).pkg
  54. @cp $(OUTPUT).pkg $(OUTPUT).geohot.pkg
  55. @$(PKG_GEO) $(OUTPUT).geohot.pkg
  56. run: $(BUILD)
  57. @$(PS3LOADAPP) $(OUTPUT).self
  58. else
  59. DEPENDS := $(OFILES:.o=.d)
  60. $(OUTPUT).self: $(OUTPUT).elf
  61. $(OUTPUT).elf: $(OFILES)
  62. $(OFILES): $(BINFILES) $(VCGFILES)
  63. -include $(DEPENDS)
  64. endif