Makefile.in 20.3 KB
Newer Older
Michel Kaempf's avatar
Michel Kaempf committed
1
2
3
4
5
6
7
8
9
10
11
################################################################################
# vlc (VideoLAN Client) main makefile
# (c)1998 VideoLAN
################################################################################
# This makefile is the main makefile for the VideoLAN client.
################################################################################

################################################################################
# Configuration
################################################################################

Vincent Seguin's avatar
Vincent Seguin committed
12
# Debugging mode on or off (set to 1 to activate)
13
14
15
DEBUG=@DEBUG@
STATS=@STATS@
OPTIMS=@OPTIMS@
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
16

17
SYS=@SYS@
18
PLUGINS=@PLUGINS@
19
INSTALL=@INSTALL@
20
ARCH=@ARCH@
Sam Hocevar's avatar
   
Sam Hocevar committed
21

Sam Hocevar's avatar
   
Sam Hocevar committed
22
exec_prefix=@exec_prefix@
23
prefix=@prefix@
Sam Hocevar's avatar
   
Sam Hocevar committed
24
25
26
27
bindir=@bindir@
datadir=@datadir@
libdir=@libdir@

Benoit Steiner's avatar
   
Benoit Steiner committed
28
29
30
CC=@CC@
SHELL=@SHELL@

Christophe Massiot's avatar
Christophe Massiot committed
31
32
33
LIB_SDL=@LIB_SDL@
LIB_GLIDE=@LIB_GLIDE@
LIB_GGI=@LIB_GGI@
34
35

#----------------- do not change anything below this line ----------------------
36

Vincent Seguin's avatar
Vincent Seguin committed
37
38
39
40
################################################################################
# Configuration pre-processing
################################################################################

Vincent Seguin's avatar
Vincent Seguin committed
41
# PROGRAM_OPTIONS is an identification string of the compilation options
42
PROGRAM_OPTIONS = $(SYS) $(ARCH)
Vincent Seguin's avatar
Vincent Seguin committed
43
ifeq ($(DEBUG),1)
Vincent Seguin's avatar
Vincent Seguin committed
44
PROGRAM_OPTIONS += DEBUG
45
46
47
48
49
DEFINE += -DDEBUG
endif
ifeq ($(STATS),1)
PROGRAM_OPTIONS += DEBUG
DEFINE += -DSTATS
Vincent Seguin's avatar
Vincent Seguin committed
50
51
52
endif

# PROGRAM_BUILD is a complete identification of the build
53
54
# (we can't use fancy options with date since OSes like Solaris
# or FreeBSD have strange date implementations)
55
PROGRAM_BUILD = `date` $(USER)
56
# XXX: beos does not support hostname (how lame...)
57
#PROGRAM_BUILD = `date` $(USER)@`hostname`
Vincent Seguin's avatar
Vincent Seguin committed
58
59

# DEFINE will contain some of the constants definitions decided in Makefile, 
60
# including SYS_xx. It will be passed to C compiler.
Christophe Massiot's avatar
Christophe Massiot committed
61
DEFINE += -DSYS_$(shell echo $(SYS) | sed 's/-.*//' | tr a-z. A-Z_)
Vincent Seguin's avatar
Vincent Seguin committed
62

63
64
65
66
67
# On Linux activate 64-bit off_t (by default under BSD)
ifneq (,$(findstring linux,$(SYS)))
DEFINE += -D_FILE_OFFSET_BITS=64 -D__USE_UNIX98
endif

Michel Kaempf's avatar
Michel Kaempf committed
68
################################################################################
69
# Tuning and other variables - do not change anything except if you know
Vincent Seguin's avatar
Vincent Seguin committed
70
# exactly what you are doing
Michel Kaempf's avatar
Michel Kaempf committed
71
72
73
74
75
################################################################################

#
# C headers directories
#
76
INCLUDE += -Iinclude -I/usr/local/include -I/usr/X11R6/include
Vincent Seguin's avatar
Vincent Seguin committed
77

Michel Kaempf's avatar
Michel Kaempf committed
78
79
80
#
# Libraries
#
81
ifeq ($(SYS),gnu)
82
83
84
LIB += -lthreads -ldl
endif

85
ifneq (,$(findstring bsd,$(SYS)))
86
87
LIB += -pthread -lgnugetopt
LIB += -L/usr/local/lib
88
endif
89

90
ifneq (,$(findstring linux,$(SYS)))
91
92
93
LIB += -lpthread -ldl
endif

Benoit Steiner's avatar
   
Benoit Steiner committed
94
ifneq (,$(findstring solaris,$(SYS)))
Benoit Steiner's avatar
Benoit Steiner committed
95
LIB += -ldl -lsocket -lnsl -lpthread
Benoit Steiner's avatar
   
Benoit Steiner committed
96
97
endif

98
ifeq ($(SYS),beos)
99
100
LIB += -lbe -lroot -lgame
else
101
LIB += -lm
102
endif
103

Michel Kaempf's avatar
Michel Kaempf committed
104
#
Benoit Steiner's avatar
   
Benoit Steiner committed
105
# C compiler flags: mainstream compilation
Michel Kaempf's avatar
Michel Kaempf committed
106
#
107
108
109
110
CFLAGS += $(DEFINE) $(INCLUDE)
CFLAGS += -Wall -Winline
CFLAGS += -D_REENTRANT
CFLAGS += -D_GNU_SOURCE
Michel Kaempf's avatar
Michel Kaempf committed
111

112
# flags needed for clean beos compilation
Sam Hocevar's avatar
Sam Hocevar committed
113
ifeq ($(SYS),beos)
114
CFLAGS += -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual
Sam Hocevar's avatar
Sam Hocevar committed
115
endif
116

Michel Kaempf's avatar
Michel Kaempf committed
117
# Optimizations : don't compile debug versions with them
118
ifeq ($(OPTIMS),1)
119
120
CFLAGS += -O3
CFLAGS += -ffast-math -funroll-loops
121
CFLAGS += -fomit-frame-pointer
122

123
# Optimizations for x86 familiy
124
ifneq (,$(findstring 86,$(ARCH)))
125
# Optional Pentium Pro optimizations
126
ifneq (,$(findstring ppro,$(ARCH)))
127
CFLAGS += -march=pentiumpro -mcpu=pentiumpro
128
else
129
CFLAGS += -march=pentium -mcpu=pentium
130
endif
Vincent Seguin's avatar
Vincent Seguin committed
131
endif
132

Vincent Seguin's avatar
Vincent Seguin committed
133
# Optimizations for PowerPC
134
135
136
137
138
139
140
ifneq (,$(findstring powerpc,$(ARCH)))
# 604e
CFLAGS += -mcpu=604e -mmultiple -mhard-float -mstring
# G3
#CFLAGS += -mcpu=750 -mmultiple -mhard-float -mstring
# G4
#CFLAGS += -mcpu=7400 -mmultiple -mhard-float -mstring
Vincent Seguin's avatar
Vincent Seguin committed
141
endif
Michel Kaempf's avatar
Michel Kaempf committed
142

143
# Optimizations for Sparc
144
ifneq (,$(findstring sparc,$(ARCH)))
145
CFLAGS += -mhard-float
146
147
endif

Benoit Steiner's avatar
   
Benoit Steiner committed
148
#end of optimisations
149
150
endif

151
# Optional MMX optimizations for x86
152
153
ifneq (,$(findstring mmx,$(ARCH)))
CFLAGS += -DHAVE_MMX
154
155
endif

Benoit Steiner's avatar
   
Benoit Steiner committed
156
157
158
159
#
# C compiler flags: plugin compilation
#
PCFLAGS += -fPIC
160

Michel Kaempf's avatar
Michel Kaempf committed
161
162
163
164
165
166
167
168
169
170
171
#
# C compiler flags: dependancies
#
DCFLAGS += $(INCLUDE)
DCFLAGS += -MM

#
# C compiler flags: linking
#
LCFLAGS += $(LIB)
LCFLAGS += -Wall
Vincent Seguin's avatar
Vincent Seguin committed
172
#LCFLAGS += -s
Michel Kaempf's avatar
Michel Kaempf committed
173
174

#
Benoit Steiner's avatar
   
Benoit Steiner committed
175
# Debugging and profiling support (unless optimisations are active)
Michel Kaempf's avatar
Michel Kaempf committed
176
#
Benoit Steiner's avatar
   
Benoit Steiner committed
177
ifneq ($(OPTIMS),1)
178
179
CFLAGS += -g
endif
Michel Kaempf's avatar
Michel Kaempf committed
180
181
182
183
184
185

#################################################################################
# Objects and files
#################################################################################

#
Vincent Seguin's avatar
Vincent Seguin committed
186
# C Objects
Michel Kaempf's avatar
Michel Kaempf committed
187
# 
Benoit Steiner's avatar
   
Benoit Steiner committed
188
189
190
191
192
INTERFACE =	src/interface/main.o \
		src/interface/interface.o \
		src/interface/intf_msg.o \
		src/interface/intf_cmd.o \
		src/interface/intf_ctrl.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
193
		src/interface/intf_plst.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
194
		src/interface/intf_channels.o \
Benoit Steiner's avatar
   
Benoit Steiner committed
195
196
		src/interface/intf_console.o

Sam Hocevar's avatar
   
Sam Hocevar committed
197
INPUT =		src/input/input_ext-dec.o \
198
		src/input/input_ext-intf.o \
199
		src/input/input_dec.o \
200
		src/input/input_programs.o \
Henri Fallon's avatar
   
Henri Fallon committed
201
		src/input/input_netlist.o \
202
		src/input/input_clock.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
203
204
		src/input/input.o \
		src/input/mpeg_system.o
Benoit Steiner's avatar
   
Benoit Steiner committed
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220

AUDIO_OUTPUT = 	src/audio_output/audio_output.o

VIDEO_OUTPUT = 	src/video_output/video_output.o \
		src/video_output/video_text.o \
		src/video_output/video_spu.o \
		src/video_output/video_yuv.o

AC3_DECODER =	src/ac3_decoder/ac3_decoder_thread.o \
		src/ac3_decoder/ac3_decoder.o \
		src/ac3_decoder/ac3_parse.o \
		src/ac3_decoder/ac3_exponent.o \
		src/ac3_decoder/ac3_bit_allocate.o \
		src/ac3_decoder/ac3_mantissa.o \
		src/ac3_decoder/ac3_rematrix.o \
		src/ac3_decoder/ac3_imdct.o \
221
222
		src/ac3_decoder/ac3_downmix.o \
		src/ac3_decoder/ac3_downmix_c.o
Benoit Steiner's avatar
   
Benoit Steiner committed
223
224
225
226

LPCM_DECODER =	src/lpcm_decoder/lpcm_decoder_thread.o \
		src/lpcm_decoder/lpcm_decoder.o

Sam Hocevar's avatar
   
Sam Hocevar committed
227
228
229
230
231
AUDIO_DECODER =	src/audio_decoder/audio_decoder.o \
		src/audio_decoder/adec_generic.o \
		src/audio_decoder/adec_layer1.o \
		src/audio_decoder/adec_layer2.o \
		src/audio_decoder/adec_math.o
Benoit Steiner's avatar
   
Benoit Steiner committed
232
233
234
235
236
237
238
239
240
241

SPU_DECODER =	src/spu_decoder/spu_decoder.o

#GEN_DECODER =	src/generic_decoder/generic_decoder.o

VIDEO_PARSER = 	src/video_parser/video_parser.o \
		src/video_parser/vpar_headers.o \
		src/video_parser/vpar_blocks.o \
		src/video_parser/vpar_synchro.o \
		src/video_parser/video_fifo.o
Sam Hocevar's avatar
Sam Hocevar committed
242

Sam Hocevar's avatar
   
Sam Hocevar committed
243
VIDEO_DECODER =	src/video_decoder/video_decoder.o
Benoit Steiner's avatar
   
Benoit Steiner committed
244
245
246
247

MISC =		src/misc/mtime.o \
		src/misc/tests.o \
		src/misc/rsc_files.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
248
		src/misc/modules.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
249
		src/misc/netutils.o
Benoit Steiner's avatar
   
Benoit Steiner committed
250
251
252
253
254
255
256
257
258


C_OBJ =		$(INTERFACE) \
		$(INPUT) \
		$(VIDEO_OUTPUT) \
		$(AUDIO_OUTPUT) \
		$(AC3_DECODER) \
		$(LPCM_DECODER) \
		$(AUDIO_DECODER) \
259
		$(SPU_DECODER) \
Benoit Steiner's avatar
   
Benoit Steiner committed
260
261
262
263
264
		$(GEN_DECODER) \
		$(VIDEO_PARSER) \
		$(VIDEO_DECODER) \
		$(MISC)

Michel Kaempf's avatar
Michel Kaempf committed
265

Benoit Steiner's avatar
   
Benoit Steiner committed
266
267
268
#
# CPP Objects
# 
269
ifeq ($(SYS),beos)
Benoit Steiner's avatar
   
Benoit Steiner committed
270
CPP_OBJ =	src/misc/beos_specific.o
271
272
endif

Vincent Seguin's avatar
Vincent Seguin committed
273
274
275
#
# Assembler Objects
# 
276
277
ifneq (,$(findstring 86,$(ARCH)))
ifneq (,$(findstring mmx,$(ARCH)))
278
ASM_OBJ =		
Vincent Seguin's avatar
Vincent Seguin committed
279
endif
280
endif
Vincent Seguin's avatar
Vincent Seguin committed
281

282
283
284
#
# Plugins
#
Sam Hocevar's avatar
   
Sam Hocevar committed
285
286
PLUGIN_ALSA =	plugins/alsa/alsa.o \
		plugins/alsa/aout_alsa.o
Sam Hocevar's avatar
   
Sam Hocevar committed
287

Benoit Steiner's avatar
   
Benoit Steiner committed
288
PLUGIN_BEOS =	plugins/beos/beos.o \
289
		plugins/beos/aout_beos.o \
290
291
		plugins/beos/intf_beos.o \
		plugins/beos/vout_beos.o
292

Benoit Steiner's avatar
   
Benoit Steiner committed
293
PLUGIN_DSP =	plugins/dsp/dsp.o \
294
295
		plugins/dsp/aout_dsp.o

Benoit Steiner's avatar
   
Benoit Steiner committed
296
PLUGIN_DUMMY =	plugins/dummy/dummy.o \
297
		plugins/dummy/aout_dummy.o \
298
299
300
		plugins/dummy/intf_dummy.o \
		plugins/dummy/vout_dummy.o

Sam Hocevar's avatar
   
Sam Hocevar committed
301
302
PLUGIN_DVD =	plugins/dvd/dvd.o \
		plugins/dvd/input_dvd.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
303
		plugins/dvd/dvd_ioctl.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
304
		plugins/dvd/dvd_ifo.o \
305
		plugins/dvd/dvd_udf.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
306
		plugins/dvd/dvd_css.o
Sam Hocevar's avatar
   
Sam Hocevar committed
307

Benoit Steiner's avatar
   
Benoit Steiner committed
308
PLUGIN_ESD =	plugins/esd/esd.o \
309
		plugins/esd/aout_esd.o
310

Benoit Steiner's avatar
   
Benoit Steiner committed
311
PLUGIN_FB =	plugins/fb/fb.o \
312
313
		plugins/fb/vout_fb.o

Benoit Steiner's avatar
   
Benoit Steiner committed
314
PLUGIN_GGI =	plugins/ggi/ggi.o \
315
316
		plugins/ggi/vout_ggi.o

Benoit Steiner's avatar
   
Benoit Steiner committed
317
PLUGIN_GLIDE =	plugins/glide/glide.o \
318
319
		plugins/glide/vout_glide.o

Sam Hocevar's avatar
   
Sam Hocevar committed
320
321
322
323
324
325
PLUGIN_GTK =	plugins/gtk/gtk.o \
		plugins/gtk/intf_gtk.o \
		plugins/gtk/gtk_callbacks.o \
		plugins/gtk/gtk_interface.o \
		plugins/gtk/gtk_support.o

Benoit Steiner's avatar
   
Benoit Steiner committed
326
PLUGIN_GNOME =	plugins/gnome/gnome.o \
327
		plugins/gnome/intf_gnome.o \
Sam Hocevar's avatar
   
Sam Hocevar committed
328
329
330
		plugins/gnome/gnome_callbacks.o \
		plugins/gnome/gnome_interface.o \
		plugins/gnome/gnome_support.o
331

Sam Hocevar's avatar
   
Sam Hocevar committed
332
333
334
335
PLUGIN_KDE =	plugins/kde/kde.o \
		plugins/kde/intf_kde.o \
		plugins/kde/kvlc.o

Sam Hocevar's avatar
   
Sam Hocevar committed
336
337
PLUGIN_IDCT =	plugins/idct/idct.o \
		plugins/idct/idct_common.o
338

Sam Hocevar's avatar
   
Sam Hocevar committed
339
340
PLUGIN_IDCTCLASSIC =	plugins/idct/idctclassic.o \
			plugins/idct/idct_common.o
341

Sam Hocevar's avatar
   
Sam Hocevar committed
342
343
PLUGIN_IDCTMMX =	plugins/idct/idctmmx.o \
			plugins/idct/idct_common.o
344

Sam Hocevar's avatar
   
Sam Hocevar committed
345
346
347
348
349
PLUGIN_IDCTMMXEXT =	plugins/idct/idctmmxext.o \
			plugins/idct/idct_common.o

PLUGIN_MGA =	plugins/mga/mga.o \
		plugins/mga/vout_mga.o
350

Sam Hocevar's avatar
   
Sam Hocevar committed
351
352
353
354
355
356
357
358
359
360
361
362
PLUGIN_MOTION =	plugins/motion/motion.o \
		plugins/motion/vdec_motion_common.o \
		plugins/motion/vdec_motion_inner.o

PLUGIN_MOTIONMMX =	plugins/motion/motionmmx.o \
			plugins/motion/vdec_motion_common.o \
			plugins/motion/vdec_motion_inner_mmx.o

PLUGIN_MOTIONMMXEXT =	plugins/motion/motionmmxext.o \
			plugins/motion/vdec_motion_common.o \
			plugins/motion/vdec_motion_inner_mmxext.o

Sam Hocevar's avatar
   
Sam Hocevar committed
363
364
365
PLUGIN_NCURSES =	plugins/text/ncurses.o \
			plugins/text/intf_ncurses.o

Sam Hocevar's avatar
   
Sam Hocevar committed
366
PLUGIN_NULL =	plugins/null/null.o
Sam Hocevar's avatar
   
Sam Hocevar committed
367

Sam Hocevar's avatar
   
Sam Hocevar committed
368
369
PLUGIN_PS =	plugins/mpeg/ps.o \
		plugins/mpeg/input_ps.o
Sam Hocevar's avatar
   
Sam Hocevar committed
370

Sam Hocevar's avatar
   
Sam Hocevar committed
371
372
373
PLUGIN_SDL =	plugins/sdl/sdl.o \
		plugins/sdl/vout_sdl.o \
		plugins/sdl/aout_sdl.o 
Sam Hocevar's avatar
   
Sam Hocevar committed
374

Sam Hocevar's avatar
   
Sam Hocevar committed
375
376
PLUGIN_TS =	plugins/mpeg/ts.o \
		plugins/mpeg/input_ts.o
377

Sam Hocevar's avatar
   
Sam Hocevar committed
378
379
PLUGIN_X11=	plugins/x11/x11.o \
		plugins/x11/vout_x11.o
Benoit Steiner's avatar
   
Benoit Steiner committed
380

Sam Hocevar's avatar
   
Sam Hocevar committed
381
382
383
384
385
386
387
388
389
390
PLUGIN_YUV =	plugins/yuv/yuv.o \
		plugins/yuv/video_yuv.o \
		plugins/yuv/transforms_yuv.o

PLUGIN_YUVMMX =	plugins/yuv/yuvmmx.o \
		plugins/yuv/video_yuvmmx.o \
		plugins/yuv/transforms_yuvmmx.o

STD_PLUGIN_OBJ = \
		$(PLUGIN_ALSA) \
Benoit Steiner's avatar
   
Benoit Steiner committed
391
392
		$(PLUGIN_DSP) \
		$(PLUGIN_DUMMY) \
Sam Hocevar's avatar
   
Sam Hocevar committed
393
		$(PLUGIN_DVD) \
Benoit Steiner's avatar
   
Benoit Steiner committed
394
395
396
		$(PLUGIN_ESD) \
		$(PLUGIN_FB) \
		$(PLUGIN_GGI) \
Sam Hocevar's avatar
   
Sam Hocevar committed
397
		$(PLUGIN_IDCT) \
398
		$(PLUGIN_IDCTCLASSIC) \
Sam Hocevar's avatar
   
Sam Hocevar committed
399
		$(PLUGIN_IDCTMMX) \
400
		$(PLUGIN_IDCTMMXEXT) \
Sam Hocevar's avatar
   
Sam Hocevar committed
401
402
403
404
		$(PLUGIN_MGA) \
		$(PLUGIN_MOTION) \
		$(PLUGIN_MOTIONMMX) \
		$(PLUGIN_MOTIONMMXEXT) \
Sam Hocevar's avatar
   
Sam Hocevar committed
405
		$(PLUGIN_NCURSES) \
Sam Hocevar's avatar
   
Sam Hocevar committed
406
407
		$(PLUGIN_NULL) \
		$(PLUGIN_PS) \
Benoit Steiner's avatar
   
Benoit Steiner committed
408
		$(PLUGIN_SDL) \
Sam Hocevar's avatar
   
Sam Hocevar committed
409
410
411
412
413
		$(PLUGIN_TS) \
		$(PLUGIN_X11) \
		$(PLUGIN_YUV) \
		$(PLUGIN_YUVMMX)

Sam Hocevar's avatar
   
Sam Hocevar committed
414
# list duplicates
Sam Hocevar's avatar
   
Sam Hocevar committed
415
416
STD_PLUGIN_COMMON =	plugins/idct/idct_common.o \
			plugins/motion/vdec_motion_common.o
Sam Hocevar's avatar
   
Sam Hocevar committed
417

Sam Hocevar's avatar
   
Sam Hocevar committed
418
# filter out duplicates from the plugin object lists
Sam Hocevar's avatar
   
Sam Hocevar committed
419
STD_PLUGIN_OBJ :=	$(filter-out $(STD_PLUGIN_COMMON), \
Sam Hocevar's avatar
   
Sam Hocevar committed
420
				 $(STD_PLUGIN_OBJ)) $(STD_PLUGIN_COMMON)
Sam Hocevar's avatar
   
Sam Hocevar committed
421

Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
422
423
NONSTD_PLUGIN_OBJ = \
		$(PLUGIN_GLIDE) \
Sam Hocevar's avatar
   
Sam Hocevar committed
424
		$(PLUGIN_GTK) \
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
425
426
427
		$(PLUGIN_GNOME)

NONSTD_CPP_PLUGIN_OBJ = \
Sam Hocevar's avatar
   
Sam Hocevar committed
428
429
		$(PLUGIN_BEOS) \
		$(PLUGIN_KDE)
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
430

Michel Kaempf's avatar
Michel Kaempf committed
431
432
433
#
# Other lists of files
#
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
434
435
436
437
objects := $(C_OBJ) $(ASM_OBJ) $(STD_PLUGIN_OBJ) $(NONSTD_PLUGIN_OBJ)
cdependancies := $(objects:%.o=.dep/%.d)
cppobjects := $(CPP_OBJ) $(NONSTD_CPP_PLUGIN_OBJ)
cppdependancies := $(cppobjects:%.o=.dep/%.dpp)
Michel Kaempf's avatar
Michel Kaempf committed
438
439
440
441
442
443
444
445
446
447
448

# All symbols must be exported
export

################################################################################
# Targets
################################################################################

#
# Virtual targets
#
449
all: vlc @ALIASES@ plugins
Michel Kaempf's avatar
Michel Kaempf committed
450
451

clean:
452
	rm -f $(C_OBJ) $(CPP_OBJ) $(ASM_OBJ) $(STD_PLUGIN_OBJ)
Sam Hocevar's avatar
   
Sam Hocevar committed
453
454
	rm -f plugins/*/*.o src/*/*.o lib/*.so
	rm -f vlc @ALIASES@
Michel Kaempf's avatar
Michel Kaempf committed
455
456

distclean: clean
457
	rm -f src/*/*.o plugins/*/*.o **/*~ *.log
458
459
	rm -f Makefile include/defs.h include/config.h
	rm -f config.status config.cache config.log
460
	rm -f gmon.out core build-stamp
461
	rm -rf .dep
462
463

install:
Sam Hocevar's avatar
   
Sam Hocevar committed
464
465
	mkdir -p $(DESTDIR)$(bindir)
	$(INSTALL) vlc $(DESTDIR)$(bindir)
Benoit Steiner's avatar
   
Benoit Steiner committed
466
# ugly
Sam Hocevar's avatar
   
Sam Hocevar committed
467
468
469
470
471
472
	for alias in "" @ALIASES@ ; do if test $$alias ; then rm -f $(DESTDIR)$(bindir)/$$alias && ln -s vlc $(DESTDIR)$(bindir)/$$alias ; fi ; done
	mkdir -p $(DESTDIR)$(libdir)/videolan/vlc
	$(INSTALL) -m 644 $(PLUGINS:%=lib/%.so) $(DESTDIR)$(libdir)/videolan/vlc
	mkdir -p $(DESTDIR)$(datadir)/videolan
	$(INSTALL) -m 644 share/*.psf $(DESTDIR)$(datadir)/videolan
	$(INSTALL) -m 644 share/*.png $(DESTDIR)$(datadir)/videolan
Michel Kaempf's avatar
Michel Kaempf committed
473

Vincent Seguin's avatar
Vincent Seguin committed
474
show:
475
	@echo CC: $(CC)
476
	@echo CFLAGS: $(CFLAGS)
477
	@echo DCFLAGS: $(DCFLAGS)
478
	@echo LCFLAGS: $(LCFLAGS)
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
479
480
	@echo C_OBJ: $(C_OBJ)
	@echo CPP_OBJ: $(CPP_OBJ)
Sam Hocevar's avatar
   
Sam Hocevar committed
481
	@echo STD_PLUGIN_OBJ: $(STD_PLUGIN_OBJ)
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
482
483
484
485
	@echo NONSTD_PLUGIN_OBJ: $(NONSTD_PLUGIN_OBJ)
	@echo NONSTD_CPP_PLUGIN_OBJ: $(NONSTD_CPP_PLUGIN_OBJ)
	@echo objects: $(objects)
	@echo cppobjects: $(cppobjects)
Vincent Seguin's avatar
Vincent Seguin committed
486

Sam Hocevar's avatar
Sam Hocevar committed
487
488
# ugliest of all, but I have no time to do it -- sam
snapshot:
489
	rm -rf /tmp/vlc-@VLC_VERSION@ /tmp/vlc-@VLC_VERSION@nocss
Sam Hocevar's avatar
   
Sam Hocevar committed
490
	# copy archive in /tmp
491
	find -type d | while read i ; \
Sam Hocevar's avatar
   
Sam Hocevar committed
492
493
		do mkdir -p /tmp/vlc-@VLC_VERSION@/$$i ; \
	done
Sam Hocevar's avatar
   
Sam Hocevar committed
494
495
	find debian -mindepth 1 -maxdepth 1 -type d | grep -v CVS | \
		while read i ; do rm -rf /tmp/vlc-@VLC_VERSION@/$$i ; done
496
497
498
	# CVS entries
	find . -type f | grep CVS | while read i ; \
		do cp $$i /tmp/vlc-@VLC_VERSION@/$$i ; \
Sam Hocevar's avatar
   
Sam Hocevar committed
499
500
501
502
503
	done
	# .c .h .in .cpp
	find include src plugins -type f -name '*.[chi]*' | while read i ; \
		do cp $$i /tmp/vlc-@VLC_VERSION@/$$i ; \
	done
504
	# copy misc files
Sam Hocevar's avatar
   
Sam Hocevar committed
505
	cp vlc.spec AUTHORS COPYING ChangeLog CONTRIBUTORS INSTALL README TODO \
Sam Hocevar's avatar
   
Sam Hocevar committed
506
507
508
		Makefile.in Makefile.dep configure configure.in install-sh \
		config.sub config.guess todo.pl \
			/tmp/vlc-@VLC_VERSION@/
509
510
511
512
513
514
515
	for file in control vlc-gnome.menu vlc.copyright vlc.docs changelog \
		rules vlc.1 vlc.dirs vlc.menu ; do \
			cp debian/$$file /tmp/vlc-@VLC_VERSION@/debian/ ; done
	for file in default8x16.psf default8x9.psf gvlc.png vlc.png ; do \
		cp share/$$file /tmp/vlc-@VLC_VERSION@/share/ ; done

	# build css-enabled archives
Sam Hocevar's avatar
   
Sam Hocevar committed
516
517
518
519
520
521
522
	(cd /tmp ; tar cf vlc-@VLC_VERSION@.tar vlc-@VLC_VERSION@ ; \
		bzip2 -f -9 < vlc-@VLC_VERSION@.tar \
			> vlc-@VLC_VERSION@.tar.bz2 ; \
		gzip -f -9 vlc-@VLC_VERSION@.tar )
	mv /tmp/vlc-@VLC_VERSION@.tar.gz /tmp/vlc-@VLC_VERSION@.tar.bz2 ..

	# removing CSS stuff
Sam Hocevar's avatar
   
Sam Hocevar committed
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
#	find /tmp/vlc-@VLC_VERSION@ -type f -name '*css*' | xargs rm -f
#	for x in Makefile.in src/input/input_dvd.c src/input/input_dvd.h ; do \
#	rm -f /tmp/vlc-@VLC_VERSION@/$$x ; \
#	perl -ne 'if (/^#e(lse|ndif)/) { $$i=0; } \
#			if (/^#if.*DVD/) { $$i=1; print "#if 0\n"; } \
#			elsif (!$$i || /^#/) { print $$_; }' \
#		< $$x | grep -vi css >| /tmp/vlc-@VLC_VERSION@/$$x ; \
#	done
#	rm -f /tmp/vlc-@VLC_VERSION@/debian/changelog
#	sed 's/\(^vlc ([^-]*\)-/\1nocss-/' < debian/changelog \
#		> /tmp/vlc-@VLC_VERSION@/debian/changelog
#
#	# build nocss archives
#	(cd /tmp ; mv vlc-@VLC_VERSION@ vlc-@VLC_VERSION@nocss ; \
#		tar cf vlc-@VLC_VERSION@nocss.tar vlc-@VLC_VERSION@nocss ; \
#		bzip2 -f -9 < vlc-@VLC_VERSION@nocss.tar \
#			> vlc-@VLC_VERSION@nocss.tar.bz2 ; \
#		gzip -f -9 vlc-@VLC_VERSION@nocss.tar )
#	mv /tmp/vlc-@VLC_VERSION@nocss.tar.gz \
#		/tmp/vlc-@VLC_VERSION@nocss.tar.bz2 ..
#
#	# clean up
	rm -rf /tmp/vlc-@VLC_VERSION@*
Sam Hocevar's avatar
Sam Hocevar committed
546

547
plugins: $(PLUGINS:%=lib/%.so)
Michel Kaempf's avatar
Michel Kaempf committed
548

Benoit Steiner's avatar
   
Benoit Steiner committed
549
FORCE:
550

Sam Hocevar's avatar
Sam Hocevar committed
551
#
Sam Hocevar's avatar
   
Sam Hocevar committed
552
# GTK/Gnome and Framebuffer aliases - don't add new aliases which could bloat
Sam Hocevar's avatar
Sam Hocevar committed
553
554
# the namespace
#
Sam Hocevar's avatar
   
Sam Hocevar committed
555
gvlc kvlc: vlc
556
557
	rm -f $@ && ln -s vlc $@

Michel Kaempf's avatar
Michel Kaempf committed
558
559
560
561

#
# Generic rules (see below)
#
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
562
563
564
565
$(cdependancies): %.d: FORCE
	@$(MAKE) -s --no-print-directory -f Makefile.dep $@

$(cppdependancies): %.dpp: FORCE
566
	@$(MAKE) -s --no-print-directory -f Makefile.dep $@
Michel Kaempf's avatar
Michel Kaempf committed
567

568
$(C_OBJ): %.o: Makefile.dep
569
$(C_OBJ): %.o: .dep/%.d
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
570
$(C_OBJ): %.o: %.c
571
	$(CC) $(CFLAGS) -c -o $@ $<
Vincent Seguin's avatar
Vincent Seguin committed
572

Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
573
574
$(CPP_OBJ): %.o: Makefile.dep
$(CPP_OBJ): %.o: .dep/%.dpp
575
$(CPP_OBJ): %.o: %.cpp
576
	$(CC) $(CFLAGS) -c -o $@ $<
577

578
$(ASM_OBJ): %.o: Makefile.dep
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
579
$(ASM_OBJ): %.o: %.S
580
	$(CC) $(CFLAGS) -c -o $@ $<
Michel Kaempf's avatar
Michel Kaempf committed
581

Benoit Steiner's avatar
   
Benoit Steiner committed
582
583
584
585
586
$(STD_PLUGIN_OBJ): %.o: Makefile.dep
$(STD_PLUGIN_OBJ): %.o: .dep/%.d
$(STD_PLUGIN_OBJ): %.o: %.c
	$(CC) $(CFLAGS) $(PCFLAGS) -c -o $@ $<

Sam Hocevar's avatar
   
Sam Hocevar committed
587
588
589
590
591
$(PLUGIN_GTK): %.o: Makefile.dep
$(PLUGIN_GTK): %.o: .dep/%.d
$(PLUGIN_GTK): %.o: %.c
	$(CC) $(CFLAGS) $(PCFLAGS) `gtk-config --cflags gtk` -c -o $@ $<

Benoit Steiner's avatar
   
Benoit Steiner committed
592
$(PLUGIN_GNOME): %.o: Makefile.dep
Sam Hocevar's avatar
   
Sam Hocevar committed
593
$(PLUGIN_GNOME): %.o: .dep/%.d
Benoit Steiner's avatar
   
Benoit Steiner committed
594
$(PLUGIN_GNOME): %.o: %.c
595
	$(CC) $(CFLAGS) $(PCFLAGS) `gnome-config --cflags gnomeui` -c -o $@ $<
Benoit Steiner's avatar
   
Benoit Steiner committed
596
597

$(PLUGIN_GLIDE): %.o: Makefile.dep
Sam Hocevar's avatar
   
Sam Hocevar committed
598
$(PLUGIN_GLIDE): %.o: .dep/%.d
Benoit Steiner's avatar
   
Benoit Steiner committed
599
$(PLUGIN_GLIDE): %.o: %.c
600
	$(CC) $(CFLAGS) $(PCFLAGS) -I/usr/include/glide -c -o $@ $<
Benoit Steiner's avatar
   
Benoit Steiner committed
601

Sam Hocevar's avatar
   
Sam Hocevar committed
602
603
604
605
606
$(PLUGIN_KDE): %.o: Makefile.dep
$(PLUGIN_KDE): %.o: .dep/%.dpp
$(PLUGIN_KDE): %.o: %.cpp
	$(CC) $(CFLAGS) $(PCFLAGS) -I/usr/include/kde -I/usr/include/qt -fno-rtti -c -o $@ $<

Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
607
608
609
610
611
$(PLUGIN_BEOS): %.o: Makefile.dep
$(PLUGIN_BEOS): %.o: .dep/%.dpp
$(PLUGIN_BEOS): %.o: %.cpp
	$(CC) $(CFLAGS) $(PCFLAGS) -c -o $@ $<

Benoit Steiner's avatar
   
Benoit Steiner committed
612
#
Sam Hocevar's avatar
   
Sam Hocevar committed
613
# Main application target
Benoit Steiner's avatar
   
Benoit Steiner committed
614
#
Sam Hocevar's avatar
   
Sam Hocevar committed
615

Benoit Steiner's avatar
   
Benoit Steiner committed
616
617
618
619
620
621
vlc: $(C_OBJ) $(CPP_OBJ) $(ASM_OBJ)
ifeq ($(SYS),beos)
	$(CC) $(CFLAGS) $(LCFLAGS) -Xlinker -soname=_APP_ -o $@ $(C_OBJ) $(CPP_OBJ) $(ASM_OBJ)
	rm -f ./plugins/_APP_
	ln -s ../vlc ./plugins/_APP_
else
Sam Hocevar's avatar
   
Sam Hocevar committed
622
	$(CC) $(CFLAGS) $(LCFLAGS) --export-dynamic @DYNAMIC_FLAG@ -o $@ $(C_OBJ) $(CPP_OBJ) $(ASM_OBJ)	
Benoit Steiner's avatar
   
Benoit Steiner committed
623
endif
624

Sam Hocevar's avatar
   
Sam Hocevar committed
625
626
627
628
#
# Plugin targets
#

629
lib/beos.so: $(PLUGIN_BEOS)
Jean-Marc Dressler's avatar
   
Jean-Marc Dressler committed
630
	$(CC) $(PCFLAGS) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_ -lbe -lgame -lroot
631

632
lib/esd.so: $(PLUGIN_ESD)
633
ifneq (,$(findstring bsd,$(SYS)))
Sam Hocevar's avatar
   
Sam Hocevar committed
634
	$(CC) $(PCFLAGS) -shared -o $@ $^ -lesd
635
else
Sam Hocevar's avatar
   
Sam Hocevar committed
636
	$(CC) $(PCFLAGS) -shared -o $@ $^ -laudiofile -lesd
637
endif
638

639
lib/dsp.so: $(PLUGIN_DSP)
Sam Hocevar's avatar
   
Sam Hocevar committed
640
	$(CC) $(PCFLAGS) -shared -o $@ $^
641

Sam Hocevar's avatar
   
Sam Hocevar committed
642
643
644
lib/kde.so: $(PLUGIN_KDE)
	$(CC) $(PCFLAGS) -shared -o $@ $^ -lkdeui -lkdecore -lqt -ldl

Henri Fallon's avatar
   
Henri Fallon committed
645
lib/alsa.so: $(PLUGIN_ALSA)
Henri Fallon's avatar
   
Henri Fallon committed
646
	$(CC) $(PCFLAGS) -shared -o $@ $^ -lasound
Henri Fallon's avatar
   
Henri Fallon committed
647

648
lib/fb.so: $(PLUGIN_FB)
Sam Hocevar's avatar
   
Sam Hocevar committed
649
	$(CC) $(PCFLAGS) -shared -o $@ $^
650

651
lib/x11.so: $(PLUGIN_X11)
Sam Hocevar's avatar
   
Sam Hocevar committed
652
	$(CC) $(PCFLAGS) -shared -o $@ $^ -L/usr/X11R6/lib -lX11 -lXext
653

654
lib/mga.so: $(PLUGIN_MGA)
Sam Hocevar's avatar
   
Sam Hocevar committed
655
	$(CC) $(PCFLAGS) -shared -o $@ $^ -L/usr/X11R6/lib -lX11 -lXext
656

Sam Hocevar's avatar
   
Sam Hocevar committed
657
658
659
lib/gtk.so: $(PLUGIN_GTK)
	$(CC) $(PCFLAGS) -shared -o $@ $^ `gtk-config --libs gtk | sed 's,-rdynamic,,'`

660
lib/gnome.so: $(PLUGIN_GNOME)
Sam Hocevar's avatar
   
Sam Hocevar committed
661
	$(CC) $(PCFLAGS) -shared -o $@ $^ `gnome-config --libs gnomeui | sed 's,-rdynamic,,'`
662

663
lib/glide.so: $(PLUGIN_GLIDE)
Sam Hocevar's avatar
   
Sam Hocevar committed
664
	$(CC) $(PCFLAGS) -shared -o $@ $^ $(LIB_GLIDE)
665

666
lib/ggi.so: $(PLUGIN_GGI)
Sam Hocevar's avatar
   
Sam Hocevar committed
667
	$(CC) $(PCFLAGS) -shared -o $@ $^ $(LIB_GGI)
668

Pierre Baillet's avatar
Pierre Baillet committed
669
lib/sdl.so: $(PLUGIN_SDL)
Sam Hocevar's avatar
   
Sam Hocevar committed
670
	$(CC) $(PCFLAGS) -shared -o $@ $^ $(LIB_SDL)
Pierre Baillet's avatar
Pierre Baillet committed
671

Sam Hocevar's avatar
   
Sam Hocevar committed
672
lib/ncurses.so: $(PLUGIN_NCURSES)
Sam Hocevar's avatar
   
Sam Hocevar committed
673
	$(CC) $(PCFLAGS) -shared -o $@ $^ -lncurses
Sam Hocevar's avatar
   
Sam Hocevar committed
674

675
ifeq ($(SYS),beos)
676
677
678
lib/null.so: $(PLUGIN_NULL)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

Sam Hocevar's avatar
   
Sam Hocevar committed
679
680
681
682
683
684
685
686
687
lib/ps.so: $(PLUGIN_PS)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

lib/ts.so: $(PLUGIN_TS)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

lib/dvd.so: $(PLUGIN_DVD)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

688
689
690
lib/dummy.so: $(PLUGIN_DUMMY)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

Sam Hocevar's avatar
   
Sam Hocevar committed
691
lib/yuv.so: $(PLUGIN_YUV)
Sam Hocevar's avatar
   
Sam Hocevar committed
692
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_
693
694

lib/yuvmmx.so: $(PLUGIN_YUVMMX)
Sam Hocevar's avatar
   
Sam Hocevar committed
695
696
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

Sam Hocevar's avatar
   
Sam Hocevar committed
697
698
699
700
701
702
703
704
705
706
707
708
lib/motion.so: $(PLUGIN_MOTION)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

lib/motionmmx.so: $(PLUGIN_MOTIONMMX)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

lib/motionmmxext.so: $(PLUGIN_MOTIONMMXEXT)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

lib/idct.so: $(PLUGIN_IDCT)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

Sam Hocevar's avatar
   
Sam Hocevar committed
709
710
711
lib/idctclassic.so: $(PLUGIN_IDCTCLASSIC)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_

Sam Hocevar's avatar
   
Sam Hocevar committed
712
lib/idctmmx.so: $(PLUGIN_IDCTMMX)
Sam Hocevar's avatar
   
Sam Hocevar committed
713
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_
714
715
716

lib/idctmmxext.so: $(PLUGIN_IDCTMMXEXT)
	$(CC) -nostart -Xlinker -soname=$@ -o $@ $^ plugins/_APP_
717
else
718
719
720
lib/null.so: $(PLUGIN_NULL)
	$(CC) $(PCFLAGS) -shared -o $@ $^

Sam Hocevar's avatar
   
Sam Hocevar committed
721
722
723
724
725
726
727
728
729
lib/ps.so: $(PLUGIN_PS)
	$(CC) $(PCFLAGS) -shared -o $@ $^

lib/ts.so: $(PLUGIN_TS)
	$(CC) $(PCFLAGS) -shared -o $@ $^

lib/dvd.so: $(PLUGIN_DVD)
	$(CC) $(PCFLAGS) -shared -o $@ $^

730
731
732
lib/dummy.so: $(PLUGIN_DUMMY)
	$(CC) $(PCFLAGS) -shared -o $@ $^

Sam Hocevar's avatar
   
Sam Hocevar committed
733
734
735
736
737
738
lib/yuv.so: $(PLUGIN_YUV)
	$(CC) $(PCFLAGS) -shared -o $@ $^

lib/yuvmmx.so: $(PLUGIN_YUVMMX)
	$(CC) $(PCFLAGS) -shared -o $@ $^

Sam Hocevar's avatar
   
Sam Hocevar committed
739
740
741
742
743
744
745
746
747
lib/motion.so: $(PLUGIN_MOTION)
	$(CC) $(PCFLAGS) -shared -o $@ $^

lib/motionmmx.so: $(PLUGIN_MOTIONMMX)
	$(CC) $(PCFLAGS) -shared -o $@ $^

lib/motionmmxext.so: $(PLUGIN_MOTIONMMXEXT)
	$(CC) $(PCFLAGS) -shared -o $@ $^

Sam Hocevar's avatar
   
Sam Hocevar committed
748
749
750
751
752
753
lib/idct.so: $(PLUGIN_IDCT)
	$(CC) $(PCFLAGS) -shared -o $@ $^

lib/idctclassic.so: $(PLUGIN_IDCTCLASSIC)
	$(CC) $(PCFLAGS) -shared -o $@ $^

Sam Hocevar's avatar
   
Sam Hocevar committed
754
lib/idctmmx.so: $(PLUGIN_IDCTMMX)
Sam Hocevar's avatar
   
Sam Hocevar committed
755
	$(CC) $(PCFLAGS) -shared -o $@ $^
756
757
758

lib/idctmmxext.so: $(PLUGIN_IDCTMMXEXT)
	$(CC) $(PCFLAGS) -shared -o $@ $^
759
endif
760

Michel Kaempf's avatar
Michel Kaempf committed
761
762
763
764
765
################################################################################
# Note on generic rules and dependancies
################################################################################

# Note on dependancies: each .c file is associated with a .d file, which
766
767
# depends of it. The .o file associated with a .c file depends of the .d, of the
# .c itself, and of Makefile. The .d files are stored in a separate .dep/
Michel Kaempf's avatar
Michel Kaempf committed
768
769
770
# directory.
# The dep directory should be ignored by CVS.

771
# Note on inclusions: depending of the target, the dependancies files must
Michel Kaempf's avatar
Michel Kaempf committed
772
# or must not be included. The problem is that if we ask make to include a file,
773
774
# and this file does not exist, it is made before it can be included. In a
# general way, a .d file should be included if and only if the corresponding .o
Michel Kaempf's avatar
Michel Kaempf committed
775
776
777
778
779
# needs to be re-made.

# Two makefiles are used: the main one (this one) has regular generic rules,
# except for .o files, for which it calls the object Makefile. Dependancies
# are not included in this file.
Michel Kaempf's avatar
Michel Kaempf committed
780
781
# The object Makefile known how to make a .o from a .c, and includes
# dependancies for the target, but only those required.