1 ############################################################################
3 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 # Copyright (C) 2002 by Daniel Stenberg <daniel@haxx.se>
12 # All files in this archive are subject to the GNU General Public License.
13 # See the file COPYING in the source tree root for full license agreement.
15 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 # KIND, either express or implied.
18 ############################################################################
21 RECDIR
= $(APPDIR
)/recorder
22 PLAYDIR
= $(APPDIR
)/player
24 ifeq ($(DISPLAY
),-DHAVE_LCD_BITMAP
)
25 MACHINEDIR
= $(RECDIR
)
26 # not very nice to set RTC like this, but...
29 MACHINEDIR
= $(PLAYDIR
)
33 FIRMWAREDIR
= ..
/..
/firmware
34 COMMON
= $(FIRMWAREDIR
)/common
36 DRIVERS
= $(FIRMWAREDIR
)/drivers
37 TOOLSDIR
= ..
/..
/tools
44 # where to put all output files
47 TARGET
= $(OBJDIR
)/rockboxui
50 DEFINES
= -DHAVE_CONFIG_H
-DGETTIMEOFDAY_TWO_ARGS
-DSIMULATOR \
51 $(KEYPAD
) $(DISPLAY
) $(EXTRA_DEFINES
) $(RTC
)
53 # Use this for simulator-only files
54 INCLUDES
= -I.
-I
$(DRIVERS
) -I
$(FIRMWAREDIR
)/export -I
$(APPDIR
) \
55 -I
$(MACHINEDIR
) -I
$(SIMCOMMON
) -I
$(OBJDIR
)
56 SRCDIRS
= .
$(DRIVERS
) $(FIRMWAREDIR
)/export $(APPDIR
) $(MACHINEDIR
)
58 # The true Rockbox Applications should use this include path:
59 APPINCLUDES
= $(INCLUDES
)
63 UNAME
:= $(shell uname|sed
-e
"s/CYGWIN.*/CYGWIN/")
65 LDFLAGS
= -lX11
-lm
-lXt
-lXmu
-lnsl
-ldl
66 INCLUDES
+= -I
/usr
/X11R6
/include
67 LIBDIRS
= -L
/usr
/X11R6
/lib
70 ifeq ($(UNAME
),CYGWIN
)
71 LDFLAGS
= -lSM
-lICE
-lXt
-lX11
-lXmu
-lSM
-lICE
-lX11
72 INCLUDES
+= -I
/usr
/X11R6
/include
73 LIBDIRS
= -L
/usr
/X11R6
/lib
74 DEFINES
+= -DHAVE_OSS
-D_SSIZE_T_
76 ifeq ($(UNAME
),FreeBSD
)
78 LDFLAGS
= -lX11
-lm
-lXt
-lXmu
79 INCLUDES
+= -I
/usr
/X11R6
/include
80 LIBDIRS
= -L
/usr
/X11R6
/lib
83 LDFLAGS
= -lX11
-lm
-lXt
-lXmu
-lnsl
-ldl
84 DEFINES
+= -DBIG_ENDIAN
90 CFLAGS
= $(DEBUG
) $(DEFINES
) $(INCLUDES
) -W
-Wall
92 APPCFLAGS
= $(DEBUG
) $(DEFINES
) -DAPPSVERSION
=\"$(VERSION
)\" $(APPINCLUDES
) -W
-Wall
94 ifeq ($(DISPLAY
),-DHAVE_LCD_BITMAP
)
95 LCDSRSC
= lcd-recorder.c sysfont.c font.c
97 LCDSRSC
= lcd-playersim.c lcd-player.c font-player.c lcd-player-charset.c
99 FIRMSRCS
= $(LCDSRSC
) id3.c debug.c usb.c mpeg.c mp3_playback.c power.c\
100 powermgmt.c panic.c mp3data.c sprintf.c buffer.c timefuncs.c
102 APPS
= main.c tree.c menu.c credits.c main_menu.c language.c\
103 playlist.c wps.c wps-display.c settings.c status.c icons.c\
104 screens.c peakmeter.c sleeptimer.c keyboard.c onplay.c\
105 misc.c plugin.c playlist_viewer.c bookmark.c
107 MENUS
= settings_menu.c sound_menu.c playlist_menu.c
109 ifeq ($(DISPLAY
),-DHAVE_LCD_BITMAP
)
110 APPS
+= bmp.c widgets.c
113 SRCS
= screenhack.c uibasic.c resources.c visual.c lcd-x11.c stubs.c \
114 button-x11.c io.c thread.c sim_icons.c
$(APPS
) $(MENUS
) $(FIRMSRCS
) \
117 ROCKSRC
:= $(wildcard $(APPDIR
)/plugins
/*.c
)
118 ROCKS
:= $(ROCKSRC
:$(APPDIR
)/plugins
/%.c
=$(OBJDIR
)/%.rock
)
120 OBJS
:= $(OBJDIR
)/lang.o
$(SRCS
:%.c
=$(OBJDIR
)/%.o
)
122 all: $(TOOLSDIR
)/convbdf
$(TARGET
) $(EXTRA_TARGETS
) $(ROCKS
)
125 $(MAKE
) -C
$(TOOLSDIR
)
128 $(RM
) $(OBJS
) *~ core
$(TARGET
) $(CLIENTS
) $(OBJDIR
)/lang.
[cho
] \
129 $(OBJDIR
)/build.lang
$(OBJDIR
)/*.o
$(OBJDIR
)/sysfont.c \
130 $(ROCKS
) $(OBJDIR
)/credits.raw
133 $(OBJDIR
)/%.rock
: $(APPDIR
)/plugins
/%.c
$(APPDIR
)/plugin.h
134 $(CC
) $(APPCFLAGS
) -DPLUGIN
-shared
$< -o
$@
139 $(OBJDIR
)/credits.raw
: $(DOCSDIR
)/CREDITS
140 perl
$(APPDIR
)/credits.pl
< $< > $@
142 $(OBJDIR
)/credits.o
: $(APPDIR
)/credits.c
$(APPDIR
)/credits.h
$(OBJDIR
)/credits.raw
143 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
145 $(OBJDIR
)/menu.o
: $(APPDIR
)/menu.c
146 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
148 $(OBJDIR
)/main_menu.o
: $(APPDIR
)/main_menu.c
149 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
151 $(OBJDIR
)/plugin.o
: $(APPDIR
)/plugin.c
152 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
154 $(OBJDIR
)/keyboard.o
: $(MACHINEDIR
)/keyboard.c
155 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
157 $(OBJDIR
)/language.o
: $(APPDIR
)/language.c
158 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
160 $(OBJDIR
)/sound_menu.o
: $(APPDIR
)/sound_menu.c
161 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
163 $(OBJDIR
)/settings_menu.o
: $(APPDIR
)/settings_menu.c
164 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
166 $(OBJDIR
)/playlist_menu.o
: $(APPDIR
)/playlist_menu.c
167 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
169 $(OBJDIR
)/icons.o
: $(MACHINEDIR
)/icons.c
170 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
172 $(OBJDIR
)/widgets.o
: $(RECDIR
)/widgets.c
173 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
175 $(OBJDIR
)/main.o
: $(APPDIR
)/main.c
176 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
178 $(OBJDIR
)/misc.o
: $(APPDIR
)/misc.c
179 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
181 $(OBJDIR
)/wps.o
: $(APPDIR
)/wps.c
182 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
184 $(OBJDIR
)/sleeptimer.o
: $(APPDIR
)/sleeptimer.c
185 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
187 $(OBJDIR
)/wps-display.o
: $(APPDIR
)/wps-display.c
188 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
190 $(OBJDIR
)/bmp.o
: $(RECDIR
)/bmp.c
191 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
193 $(OBJDIR
)/tree.o
: $(APPDIR
)/tree.c
194 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
196 $(OBJDIR
)/onplay.o
: $(APPDIR
)/onplay.c
197 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
199 $(OBJDIR
)/playlist.o
: $(APPDIR
)/playlist.c
200 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
202 $(OBJDIR
)/playlist_viewer.o
: $(APPDIR
)/playlist_viewer.c
203 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
205 $(OBJDIR
)/bookmark.o
: $(APPDIR
)/bookmark.c
206 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
208 $(OBJDIR
)/build.lang
: $(APPDIR
)/lang
/$(LANGUAGE
).lang
209 perl
$(TOOLSDIR
)/uplang
$(APPDIR
)/lang
/english.lang
$< > $@
211 $(OBJDIR
)/lang.o
: $(OBJDIR
)/build.lang
212 perl
-s
$(TOOLSDIR
)/genlang
-p
=$(OBJDIR
)/lang
$<
213 $(CC
) $(CFLAGS
) -c
$(OBJDIR
)/lang.c
-o
$@
215 $(OBJDIR
)/lcd-recorder.o
: $(DRIVERS
)/lcd-recorder.c
216 $(CC
) $(CFLAGS
) -DHAVE_LCD_BITMAP
-c
$< -o
$@
218 $(OBJDIR
)/sysfont.o
: $(FIRMWAREDIR
)/fonts
/clR6x8.bdf
219 $(TOOLSDIR
)/convbdf
-c
-o
$(OBJDIR
)/sysfont.c
$<
220 $(CC
) $(APPCFLAGS
) -c
$(OBJDIR
)/sysfont.c
-o
$@
222 $(OBJDIR
)/font.o
: $(FIRMWAREDIR
)/font.c
223 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
225 $(OBJDIR
)/settings.o
: $(APPDIR
)/settings.c
226 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
228 $(OBJDIR
)/status.o
: $(APPDIR
)/status.c
229 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
231 $(OBJDIR
)/screens.o
: $(APPDIR
)/screens.c
232 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
234 $(OBJDIR
)/peakmeter.o
: $(RECDIR
)/peakmeter.c
235 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
237 $(OBJDIR
)/id3.o
: $(FIRMWAREDIR
)/id3.c
238 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
240 $(OBJDIR
)/mp3data.o
: $(FIRMWAREDIR
)/mp3data.c
241 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
243 $(OBJDIR
)/debug.o
: $(FIRMWAREDIR
)/debug.c
244 $(CC
) $(CFLAGS
) -c
$< -o
$@
246 $(OBJDIR
)/panic.o
: $(FIRMWAREDIR
)/panic.c
247 $(CC
) $(CFLAGS
) -c
$< -o
$@
249 $(OBJDIR
)/mpeg.o
: $(FIRMWAREDIR
)/mpeg.c
250 $(CC
) $(CFLAGS
) -c
$< -o
$@
252 $(OBJDIR
)/mp3_playback.o
: $(FIRMWAREDIR
)/mp3_playback.c
253 $(CC
) $(CFLAGS
) -c
$< -o
$@
255 $(OBJDIR
)/sprintf.o
: $(COMMON
)/sprintf.c
256 $(CC
) $(CFLAGS
) -c
$< -o
$@
258 $(OBJDIR
)/lcd-common.o
: $(SIMCOMMON
)/lcd-common.c
259 $(CC
) $(CFLAGS
) -c
$< -o
$@
261 $(OBJDIR
)/buffer.o
: $(FIRMWAREDIR
)/buffer.c
262 $(CC
) $(CFLAGS
) -c
$< -o
$@
264 $(OBJDIR
)/ctype.o
: $(COMMON
)/ctype.c
265 $(CC
) $(CFLAGS
) $(APPINCLUDES
) -c
$< -o
$@
267 $(OBJDIR
)/timefuncs.o
: $(COMMON
)/timefuncs.c
268 $(CC
) $(CFLAGS
) $(APPINCLUDES
) -c
$< -o
$@
270 $(OBJDIR
)/stubs.o
: $(SIMCOMMON
)/stubs.c
271 $(CC
) $(APPCFLAGS
) -c
$< -o
$@
273 $(OBJDIR
)/sim_icons.o
: $(SIMCOMMON
)/sim_icons.c
274 $(CC
) $(CFLAGS
) -c
$< -o
$@
276 $(OBJDIR
)/usb.o
: $(FIRMWAREDIR
)/usb.c
277 $(CC
) $(CFLAGS
) -c
$< -o
$@
279 $(OBJDIR
)/powermgmt.o
: $(FIRMWAREDIR
)/powermgmt.c
280 $(CC
) $(CFLAGS
) -c
$< -o
$@
282 $(OBJDIR
)/unicode.o
: $(FIRMWAREDIR
)/unicode.c
283 $(CC
) $(CFLAGS
) -c
$< -o
$@
285 $(OBJDIR
)/ajf.o
: $(FIRMWAREDIR
)/ajf.c
286 $(CC
) $(CFLAGS
) -c
$< -o
$@
288 $(OBJDIR
)/power.o
: $(DRIVERS
)/power.c
289 $(CC
) $(CFLAGS
) -c
$< -o
$@
291 $(OBJDIR
)/lcd-player-charset.o
: $(DRIVERS
)/lcd-player-charset.c
292 $(CC
) $(CFLAGS
) -c
$< -o
$@
294 $(OBJDIR
)/lcd-playersim.o
: $(SIMCOMMON
)/lcd-playersim.c
295 $(CC
) $(CFLAGS
) -c
$< -o
$@
297 $(OBJDIR
)/font-player.o
: $(SIMCOMMON
)/font-player.c
298 $(CC
) $(CFLAGS
) -c
$< -o
$@
300 $(OBJDIR
)/lcd-player.o
: $(DRIVERS
)/lcd-player.c
301 $(CC
) $(CFLAGS
) -c
$< -o
$@
303 # these ones are simulator-specific
306 $(CC
) $(CFLAGS
) -c
$< -o
$@
308 ifeq ($(UNAME
),CYGWIN
)
310 $(CC
) -g
-o
$(TARGET
) $(OBJS
) $(LIBDIRS
) $(LDFLAGS
) $(LIBS
)
313 $(CC
) -g
-o
$(TARGET
) $(LIBDIRS
) $(LDFLAGS
) $(OBJS
) $(LIBS
)
316 DEPS
:=$(OBJDIR
)/.deps
319 @
$(SHELL
) -c
'if [ ! -d $(DEPS) ]; then \
320 echo Creating the dependency directory: $(DEPS); \
321 mkdir -p $(DEPS); fi'
322 @echo
"Updating Dependencies for $<"
323 @
$(SHELL
) -ec
'$(CC) -MM $(CFLAGS) $< \
324 |sed '\''s|\($*\)\.o[ :]*|$(OBJDIR)/\1.o $(<:%.c=%.d) : |g'\'' > $@; \
325 [ -s $@ ] || rm -f $@'
327 -include $(SRCS
:%.c
=$(DEPS
)/%.d
)
330 @
$(SHELL
) -c
'for d in $(SRCDIRS); do { etags -o $(OBJDIR)/TAGS -a $$d/*.[ch]; }; done'