Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 9th, 2012  |  syntax: None  |  size: 2.17 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. .SUFFIXES:
  2. ifeq ($(strip $(PSL1GHT)),)
  3. $(error "PSL1GHT must be set in the environment.")
  4. endif
  5.  
  6. include $(PSL1GHT)/Makefile.base
  7.  
  8. PS3PUBLICTOOLS  :=      /path/to/ps3publictools  
  9. TARGET          :=      $(notdir $(CURDIR))
  10. BUILD           :=      build
  11. SOURCE          :=      source
  12. INCLUDE         :=      include
  13. DATA            :=      data
  14. LIBS            :=      -lzip -lz -lnet -lsysmodule
  15.  
  16. APPID           :=      PSL145310
  17. CONTENTID       :=      UP0001-$(APPID)_00-0000000000000000
  18. SFOXML          :=      package.xml
  19.  
  20. CFLAGS          += -g -O2 -Wall --std=gnu99
  21. CXXFLAGS        += -g -O2 -Wall
  22.  
  23. ifneq ($(BUILD),$(notdir $(CURDIR)))
  24.  
  25. export OUTPUT   :=      $(CURDIR)/$(TARGET)
  26. export VPATH    :=      $(foreach dir,$(SOURCE),$(CURDIR)/$(dir)) \
  27.                                         $(foreach dir,$(DATA),$(CURDIR)/$(dir))
  28. export BUILDDIR :=      $(CURDIR)/$(BUILD)
  29. export DEPSDIR  :=      $(BUILDDIR)
  30.  
  31. CFILES          := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.c)))
  32. CXXFILES        := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.cpp)))
  33. SFILES          := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.S)))
  34. BINFILES        := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.bin)))
  35.  
  36. export OFILES   :=      $(CFILES:.c=.o) \
  37.                                         $(CXXFILES:.cpp=.o) \
  38.                                         $(SFILES:.S=.o) \
  39.                                         $(BINFILES:.bin=.bin.o)
  40.  
  41. export BINFILES :=      $(BINFILES:.bin=.bin.h)
  42.  
  43. export INCLUDES :=      $(foreach dir,$(INCLUDE),-I$(CURDIR)/$(dir)) \
  44.                                         -I$(CURDIR)/$(BUILD)
  45. export LIBPATHS :=      $(foreach dir,$(LIBDIRS),-L$(CURDIR)/$(dir))
  46.  
  47. .PHONY: $(BUILD) clean pkg run
  48.  
  49. $(BUILD):
  50.         @[ -d $@ ] || mkdir -p $@
  51.         @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
  52.  
  53. clean:
  54.         @echo Clean...
  55.         @rm -rf $(BUILD) $(OUTPUT).elf $(OUTPUT).self $(OUTPUT).a $(OUTPUT).pkg
  56.  
  57. pkg: $(BUILD)
  58.         @echo Creating PKG...
  59.         @mkdir -p $(BUILD)/spkg
  60.         @mkdir -p $(BUILD)/spkg/USRDIR
  61.         @cp $(ICON0) $(BUILD)/spkg/
  62.         @$(PS3PUBLICTOOLS)make_self_npdrm/make_self_npdrm $(BUILD)/$(TARGET).elf $(BUILD)/pkg/USRDIR/EBOOT.BIN ps3load
  63.         @$(SFO) -f $(SFOXML) $(BUILD)/pkg/PARAM.SFO
  64.         @$(PKG) --contentid $(CONTENTID) $(BUILD)/pkg/ $(OUTPUT).pkg
  65.         @$(PS3PUBLICTOOLS)package_finalize/package_finalize $(OUTPUT).pkg
  66.  
  67. run: $(BUILD)
  68.         @$(PS3LOADAPP) $(OUTPUT).self
  69.  
  70. else
  71.  
  72. DEPENDS := $(OFILES:.o=.d)
  73.  
  74. $(OUTPUT).self: $(OUTPUT).elf
  75. $(OUTPUT).elf: $(OFILES)
  76. $(OFILES): $(BINFILES)
  77.  
  78. -include $(DEPENDS)
  79.  
  80. endif