nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | #--------------------------------------------------------------------------------- |
2 | .SUFFIXES: |
||
3 | #--------------------------------------------------------------------------------- |
||
4 | |||
5 | ifeq ($(strip $(DEVKITARM)),) |
||
6 | $(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM") |
||
7 | endif |
||
8 | |||
9 | include $(DEVKITARM)/ds_rules |
||
10 | |||
11 | #--------------------------------------------------------------------------------- |
||
12 | # TARGET is the name of the output |
||
13 | # BUILD is the directory where object files & intermediate files will be placed |
||
14 | # SOURCES is a list of directories containing source code |
||
15 | # DATA is a list of directories containing data files |
||
16 | # INCLUDES is a list of directories containing header files |
||
17 | #--------------------------------------------------------------------------------- |
||
18 | TARGET := $(shell basename $(CURDIR)) |
||
19 | BUILD := build |
||
20 | SOURCES := ../../ |
||
21 | DATA := data |
||
22 | INCLUDES := include |
||
23 | |||
24 | #--------------------------------------------------------------------------------- |
||
25 | # options for code generation |
||
26 | #--------------------------------------------------------------------------------- |
||
27 | ARCH := -mthumb -mthumb-interwork |
||
28 | |||
29 | CFLAGS := -Wall -O2\ |
||
30 | -march=armv5te -mtune=arm946e-s \ |
||
31 | -fomit-frame-pointer -ffast-math \ |
||
32 | $(ARCH) |
||
33 | |||
34 | CFLAGS += $(INCLUDE) -DARM9 |
||
35 | CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions |
||
36 | |||
37 | ASFLAGS := $(ARCH) -march=armv5te -mtune=arm946e-s |
||
38 | LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map) |
||
39 | |||
40 | #--------------------------------------------------------------------------------- |
||
41 | # list of directories containing libraries, this must be the top level containing |
||
42 | # include and lib |
||
43 | #--------------------------------------------------------------------------------- |
||
44 | LIBDIRS := $(LIBNDS) |
||
45 | |||
46 | #--------------------------------------------------------------------------------- |
||
47 | # no real need to edit anything past this point unless you need to add additional |
||
48 | # rules for different file extensions |
||
49 | #--------------------------------------------------------------------------------- |
||
50 | ifneq ($(BUILD),$(notdir $(CURDIR))) |
||
51 | #--------------------------------------------------------------------------------- |
||
52 | |||
53 | export OUTPUT := $(CURDIR)/lib/libz.a |
||
54 | |||
55 | export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ |
||
56 | $(foreach dir,$(DATA),$(CURDIR)/$(dir)) |
||
57 | |||
58 | export DEPSDIR := $(CURDIR)/$(BUILD) |
||
59 | |||
60 | CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) |
||
61 | CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) |
||
62 | SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) |
||
63 | BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) |
||
64 | |||
65 | #--------------------------------------------------------------------------------- |
||
66 | # use CXX for linking C++ projects, CC for standard C |
||
67 | #--------------------------------------------------------------------------------- |
||
68 | ifeq ($(strip $(CPPFILES)),) |
||
69 | #--------------------------------------------------------------------------------- |
||
70 | export LD := $(CC) |
||
71 | #--------------------------------------------------------------------------------- |
||
72 | else |
||
73 | #--------------------------------------------------------------------------------- |
||
74 | export LD := $(CXX) |
||
75 | #--------------------------------------------------------------------------------- |
||
76 | endif |
||
77 | #--------------------------------------------------------------------------------- |
||
78 | |||
79 | export OFILES := $(addsuffix .o,$(BINFILES)) \ |
||
80 | $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) |
||
81 | |||
82 | export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ |
||
83 | $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ |
||
84 | -I$(CURDIR)/$(BUILD) |
||
85 | |||
86 | .PHONY: $(BUILD) clean all |
||
87 | |||
88 | #--------------------------------------------------------------------------------- |
||
89 | all: $(BUILD) |
||
90 | @[ -d $@ ] || mkdir -p include |
||
91 | @cp ../../*.h include |
||
92 | |||
93 | lib: |
||
94 | @[ -d $@ ] || mkdir -p $@ |
||
95 | |||
96 | $(BUILD): lib |
||
97 | @[ -d $@ ] || mkdir -p $@ |
||
98 | @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile |
||
99 | |||
100 | #--------------------------------------------------------------------------------- |
||
101 | clean: |
||
102 | @echo clean ... |
||
103 | @rm -fr $(BUILD) lib |
||
104 | |||
105 | #--------------------------------------------------------------------------------- |
||
106 | else |
||
107 | |||
108 | DEPENDS := $(OFILES:.o=.d) |
||
109 | |||
110 | #--------------------------------------------------------------------------------- |
||
111 | # main targets |
||
112 | #--------------------------------------------------------------------------------- |
||
113 | $(OUTPUT) : $(OFILES) |
||
114 | |||
115 | #--------------------------------------------------------------------------------- |
||
116 | %.bin.o : %.bin |
||
117 | #--------------------------------------------------------------------------------- |
||
118 | @echo $(notdir $<) |
||
119 | @$(bin2o) |
||
120 | |||
121 | |||
122 | -include $(DEPENDS) |
||
123 | |||
124 | #--------------------------------------------------------------------------------------- |
||
125 | endif |
||
126 | #--------------------------------------------------------------------------------------- |