Mercurial > sdl-ios-xcode
comparison test/nds-test-progs/general/Makefile @ 2686:e9f27fe4f2a1 gsoc2008_nds
Existing testsprite programs made into NDS projects
author | Darren Alton <dalton@stevens.edu> |
---|---|
date | Wed, 13 Aug 2008 00:49:03 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2685:2190b873ff00 | 2686:e9f27fe4f2a1 |
---|---|
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 # INCLUDES is a list of directories containing extra header files | |
16 #--------------------------------------------------------------------------------- | |
17 TARGET := $(shell basename $(CURDIR)) | |
18 BUILD := build | |
19 SOURCES := source | |
20 DATA := data | |
21 INCLUDES := include | |
22 | |
23 #--------------------------------------------------------------------------------- | |
24 # options for code generation | |
25 #--------------------------------------------------------------------------------- | |
26 ARCH := -mthumb -mthumb-interwork | |
27 | |
28 # note: arm9tdmi isn't the correct CPU arch, but anything newer and LD | |
29 # *insists* it has a FPU or VFP, and it won't take no for an answer! | |
30 CFLAGS := -save-temps -g -Wall -O0\ | |
31 -mcpu=arm9tdmi -mtune=arm9tdmi \ | |
32 $(ARCH) | |
33 | |
34 CFLAGS += $(INCLUDE) -DARM9 -D__NDS__ | |
35 CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -fno-exceptions -fno-rtti | |
36 | |
37 ASFLAGS := -g $(ARCH) | |
38 LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map) | |
39 | |
40 #--------------------------------------------------------------------------------- | |
41 # any extra libraries we wish to link with the project | |
42 #--------------------------------------------------------------------------------- | |
43 LIBS := -lSDL -lfat -lnds9 | |
44 | |
45 | |
46 #--------------------------------------------------------------------------------- | |
47 # list of directories containing libraries, this must be the top level containing | |
48 # include and lib | |
49 #--------------------------------------------------------------------------------- | |
50 LIBDIRS := $(LIBNDS) | |
51 | |
52 #--------------------------------------------------------------------------------- | |
53 # no real need to edit anything past this point unless you need to add additional | |
54 # rules for different file extensions | |
55 #--------------------------------------------------------------------------------- | |
56 ifneq ($(BUILD),$(notdir $(CURDIR))) | |
57 #--------------------------------------------------------------------------------- | |
58 | |
59 export OUTPUT := $(CURDIR)/$(TARGET) | |
60 | |
61 export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ | |
62 $(foreach dir,$(DATA),$(CURDIR)/$(dir)) | |
63 | |
64 export DEPSDIR := $(CURDIR)/$(BUILD) | |
65 | |
66 CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) | |
67 CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) | |
68 SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) | |
69 BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) | |
70 | |
71 #--------------------------------------------------------------------------------- | |
72 # use CXX for linking C++ projects, CC for standard C | |
73 #--------------------------------------------------------------------------------- | |
74 ifeq ($(strip $(CPPFILES)),) | |
75 #--------------------------------------------------------------------------------- | |
76 export LD := $(CC) | |
77 #--------------------------------------------------------------------------------- | |
78 else | |
79 #--------------------------------------------------------------------------------- | |
80 export LD := $(CXX) | |
81 #--------------------------------------------------------------------------------- | |
82 endif | |
83 #--------------------------------------------------------------------------------- | |
84 | |
85 export OFILES := $(addsuffix .o,$(BINFILES)) \ | |
86 $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) | |
87 | |
88 export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ | |
89 $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ | |
90 $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ | |
91 -I$(CURDIR)/$(BUILD) | |
92 | |
93 export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) | |
94 | |
95 .PHONY: $(BUILD) clean | |
96 | |
97 #--------------------------------------------------------------------------------- | |
98 $(BUILD): | |
99 @[ -d $@ ] || mkdir -p $@ | |
100 @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile | |
101 | |
102 #--------------------------------------------------------------------------------- | |
103 clean: | |
104 @echo clean ... | |
105 @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).arm9 $(TARGET).ds.gba | |
106 | |
107 | |
108 #--------------------------------------------------------------------------------- | |
109 else | |
110 | |
111 DEPENDS := $(OFILES:.o=.d) | |
112 | |
113 #--------------------------------------------------------------------------------- | |
114 # main targets | |
115 #--------------------------------------------------------------------------------- | |
116 $(OUTPUT).ds.gba : $(OUTPUT).nds | |
117 $(OUTPUT).nds : $(OUTPUT).arm9 | |
118 $(OUTPUT).arm9 : $(OUTPUT).elf | |
119 $(OUTPUT).elf : $(OFILES) | |
120 | |
121 #--------------------------------------------------------------------------------- | |
122 %.pcx.o : %.pcx | |
123 #--------------------------------------------------------------------------------- | |
124 @echo $(notdir $<) | |
125 @$(bin2o) | |
126 | |
127 | |
128 -include $(DEPENDS) | |
129 | |
130 #--------------------------------------------------------------------------------------- | |
131 endif | |
132 #--------------------------------------------------------------------------------------- |