<dsbomb> hmm, there's no authentication .. this app could be sploited by people drivi...
[svpe-wii.git] / sdelfloader / loader / Makefile
blobf0608c763f6d779bcc140c98b34b7dccdff561c5
1 #---------------------------------------------------------------------------------
2 # Clear the implicit built in rules
3 #---------------------------------------------------------------------------------
4 .SUFFIXES:
5 #---------------------------------------------------------------------------------
6 ifeq ($(strip $(DEVKITPPC)),)
7 $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC)
8 endif
10 include $(DEVKITPPC)/wii_rules
12 #---------------------------------------------------------------------------------
13 # TARGET is the name of the output
14 # BUILD is the directory where object files & intermediate files will be placed
15 # SOURCES is a list of directories containing source code
16 # INCLUDES is a list of directories containing extra header files
17 #---------------------------------------------------------------------------------
18 TARGET := $(notdir $(CURDIR))
19 BUILD := build
20 SOURCES := source
21 DATA := data
22 INCLUDES :=
24 #---------------------------------------------------------------------------------
25 # options for code generation
26 #---------------------------------------------------------------------------------
28 CFLAGS = -Os -mrvl -Wall $(MACHDEP) $(INCLUDE)
29 CXXFLAGS = $(CFLAGS)
31 LDFLAGS = $(MACHDEP) -mrvl -Wl,-Map,$(notdir $@).map,--section-start,.header=0x80a00000
32 #LDFLAGS = -g $(MACHDEP) -mrvl -Wl,-Map,$(notdir $@).map
34 #---------------------------------------------------------------------------------
35 # any extra libraries we wish to link with the project
36 #---------------------------------------------------------------------------------
37 LIBS := -logc
39 #---------------------------------------------------------------------------------
40 # list of directories containing libraries, this must be the top level containing
41 # include and lib
42 #---------------------------------------------------------------------------------
43 LIBDIRS :=
45 #---------------------------------------------------------------------------------
46 # no real need to edit anything past this point unless you need to add additional
47 # rules for different file extensions
48 #---------------------------------------------------------------------------------
49 ifneq ($(BUILD),$(notdir $(CURDIR)))
50 #---------------------------------------------------------------------------------
52 export OUTPUT := $(CURDIR)/$(TARGET)
54 export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
55 $(foreach dir,$(DATA),$(CURDIR)/$(dir))
57 export DEPSDIR := $(CURDIR)/$(BUILD)
59 #---------------------------------------------------------------------------------
60 # automatically build a list of object files for our project
61 #---------------------------------------------------------------------------------
62 CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
63 CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
64 sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
65 SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
66 BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
68 #---------------------------------------------------------------------------------
69 # use CXX for linking C++ projects, CC for standard C
70 #---------------------------------------------------------------------------------
71 ifeq ($(strip $(CPPFILES)),)
72 export LD := $(CC)
73 else
74 export LD := $(CXX)
75 endif
77 export OFILES := $(addsuffix .o,$(BINFILES)) \
78 $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
79 $(sFILES:.s=.o) $(SFILES:.S=.o)
81 #---------------------------------------------------------------------------------
82 # build a list of include paths
83 #---------------------------------------------------------------------------------
84 export INCLUDE := $(foreach dir,$(INCLUDES), -iquote $(CURDIR)/$(dir)) \
85 $(foreach dir,$(LIBDIRS),-I$(dir)/include) \
86 -I$(CURDIR)/$(BUILD) \
87 -I$(LIBOGC_INC)
89 #---------------------------------------------------------------------------------
90 # build a list of library paths
91 #---------------------------------------------------------------------------------
92 export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
93 -L$(LIBOGC_LIB)
95 export OUTPUT := $(CURDIR)/$(TARGET)
96 .PHONY: $(BUILD) clean
98 #---------------------------------------------------------------------------------
99 $(BUILD):
100 @[ -d $@ ] || mkdir -p $@
101 @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
103 #---------------------------------------------------------------------------------
104 clean:
105 @echo clean ...
106 @rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol
108 #---------------------------------------------------------------------------------
109 run:
110 psoload $(TARGET).dol
112 #---------------------------------------------------------------------------------
113 reload:
114 psoload -r $(TARGET).dol
117 #---------------------------------------------------------------------------------
118 else
120 DEPENDS := $(OFILES:.o=.d)
122 #---------------------------------------------------------------------------------
123 # main targets
124 #---------------------------------------------------------------------------------
125 $(OUTPUT).dol: $(OUTPUT).elf
126 $(OUTPUT).elf: $(OFILES)
128 #---------------------------------------------------------------------------------
129 # This rule links in binary data with the .jpg extension
130 #---------------------------------------------------------------------------------
131 %.jpg.o : %.jpg
132 #---------------------------------------------------------------------------------
133 @echo $(notdir $<)
134 $(bin2o)
136 -include $(DEPENDS)
138 $(OUTPUT).dol: $(OUTPUT).elf
139 @echo "Output ... "$(notdir $@)
140 @$(OBJCOPY) -O binary $< $@
142 #---------------------------------------------------------------------------------
143 endif
144 #---------------------------------------------------------------------------------