Makefile 16 KB
Newer Older
Sam Hocevar's avatar
 
Sam Hocevar committed
1
###############################################################################
Sam Hocevar's avatar
 
Sam Hocevar committed
2
# vlc (VideoLAN Client) main Makefile - (c)1998 VideoLAN
Sam Hocevar's avatar
 
Sam Hocevar committed
3 4
###############################################################################

5 6 7
ifeq ($(shell [ ! -r Makefile.opts ] && echo 1),)
    include Makefile.opts
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
8 9 10 11 12 13 14 15

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

# 
# All possible plugin directories, needed for make clean
#
Henri Fallon's avatar
 
Henri Fallon committed
16 17 18
PLUGINS_DIR :=	ac3_adec \
		ac3_spdif \
		alsa \
Sam Hocevar's avatar
 
Sam Hocevar committed
19
		arts \
20
		beos \
Sam Hocevar's avatar
 
Sam Hocevar committed
21
		chroma \
22 23 24 25
		directx \
		dsp \
		dummy \
		dvd \
Stéphane Borel's avatar
Stéphane Borel committed
26
		dvdread \
27 28
		esd \
		fb \
Sam Hocevar's avatar
 
Sam Hocevar committed
29
		filter \
30 31 32 33 34 35 36
		ggi \
		glide \
		gtk \
		downmix \
		idct \
		imdct \
		kde \
Henri Fallon's avatar
 
Henri Fallon committed
37
		lpcm_adec \
38
		macosx \
Sam Hocevar's avatar
 
Sam Hocevar committed
39
		mad \
Sam Hocevar's avatar
 
Sam Hocevar committed
40
		memcpy \
41 42
		mga \
		motion \
Sam Hocevar's avatar
 
Sam Hocevar committed
43
		mpeg_system \
Henri Fallon's avatar
 
Henri Fallon committed
44 45
		mpeg_adec \
		mpeg_vdec \
46 47
		qt \
		sdl \
Sam Hocevar's avatar
 
Sam Hocevar committed
48
		spudec \
49 50
		text \
		vcd \
Sam Hocevar's avatar
 
Sam Hocevar committed
51
		x11
Sam Hocevar's avatar
 
Sam Hocevar committed
52

Henri Fallon's avatar
 
Henri Fallon committed
53 54 55
PLUGINS_TARGETS := ac3_adec/ac3_adec \
		ac3_spdif/ac3_spdif \
		alsa/alsa \
Sam Hocevar's avatar
 
Sam Hocevar committed
56
		arts/arts \
57
		beos/beos \
Sam Hocevar's avatar
 
Sam Hocevar committed
58 59 60 61 62 63
		chroma/chroma_i420_rgb \
		chroma/chroma_i420_rgb_mmx \
		chroma/chroma_i420_yuy2 \
		chroma/chroma_i420_yuy2_mmx \
		chroma/chroma_i422_yuy2 \
		chroma/chroma_i422_yuy2_mmx \
64 65 66 67 68
		directx/directx \
		dsp/dsp \
		dummy/dummy \
		dummy/null \
		dvd/dvd \
Stéphane Borel's avatar
Stéphane Borel committed
69
		dvdread/dvdread \
70 71
		esd/esd \
		fb/fb \
Sam Hocevar's avatar
 
Sam Hocevar committed
72
		filter/filter_deinterlace \
Sam Hocevar's avatar
 
Sam Hocevar committed
73
		filter/filter_transform \
Sam Hocevar's avatar
 
Sam Hocevar committed
74
		filter/filter_invert \
Sam Hocevar's avatar
 
Sam Hocevar committed
75
		filter/filter_distort \
Sam Hocevar's avatar
 
Sam Hocevar committed
76
		filter/filter_wall \
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
		ggi/ggi \
		glide/glide \
		gtk/gnome \
		gtk/gtk \
		downmix/downmix \
		downmix/downmixsse \
		downmix/downmix3dn \
		idct/idct \
		idct/idctclassic \
		idct/idctmmx \
		idct/idctmmxext \
		idct/idctaltivec \
		imdct/imdct \
		imdct/imdct3dn \
		imdct/imdctsse \
		kde/kde \
Henri Fallon's avatar
 
Henri Fallon committed
93
		lpcm_adec/lpcm_adec \
94
		macosx/macosx \
Sam Hocevar's avatar
 
Sam Hocevar committed
95
		mad/mad \
Sam Hocevar's avatar
 
Sam Hocevar committed
96 97 98 99
		memcpy/memcpy \
		memcpy/memcpymmx \
		memcpy/memcpymmxext \
		memcpy/memcpy3dn \
100
		mga/mga \
Sam Hocevar's avatar
 
Sam Hocevar committed
101
		mga/mgammx \
102 103 104 105 106
		motion/motion \
		motion/motionmmx \
		motion/motionmmxext \
		motion/motion3dnow \
		motion/motionaltivec \
Sam Hocevar's avatar
 
Sam Hocevar committed
107 108 109
		mpeg_system/mpeg_es \
		mpeg_system/mpeg_ps \
		mpeg_system/mpeg_ts \
Henri Fallon's avatar
 
Henri Fallon committed
110 111
		mpeg_adec/mpeg_adec \
		mpeg_vdec/mpeg_vdec \
112 113
		qt/qt \
		sdl/sdl \
Sam Hocevar's avatar
 
Sam Hocevar committed
114
		spudec/spudec \
115 116 117 118
		text/ncurses \
		text/rc \
		vcd/vcd \
		x11/x11 \
Sam Hocevar's avatar
 
Sam Hocevar committed
119
		x11/xvideo
Sam Hocevar's avatar
 
Sam Hocevar committed
120

Sam Hocevar's avatar
 
Sam Hocevar committed
121 122 123
#
# C Objects
# 
Sam Hocevar's avatar
 
Sam Hocevar committed
124
INTERFACE := main interface intf_msg intf_playlist
125
INPUT := input input_ext-dec input_ext-intf input_dec input_programs input_clock mpeg_system
Sam Hocevar's avatar
 
Sam Hocevar committed
126
VIDEO_OUTPUT := video_output video_text vout_pictures vout_subpictures
Sam Hocevar's avatar
 
Sam Hocevar committed
127
AUDIO_OUTPUT := audio_output aout_ext-dec aout_u8 aout_s8 aout_u16 aout_s16 aout_spdif
Sam Hocevar's avatar
 
Sam Hocevar committed
128
MISC := mtime modules netutils iso_lang
Sam Hocevar's avatar
 
Sam Hocevar committed
129 130 131 132 133 134

C_OBJ :=	$(INTERFACE:%=src/interface/%.o) \
		$(INPUT:%=src/input/%.o) \
		$(VIDEO_OUTPUT:%=src/video_output/%.o) \
		$(AUDIO_OUTPUT:%=src/audio_output/%.o) \
		$(MISC:%=src/misc/%.o)
Sam Hocevar's avatar
 
Sam Hocevar committed
135 136 137 138

#
# Misc Objects
# 
Sam Hocevar's avatar
 
Sam Hocevar committed
139
ifeq ($(NEED_GETOPT),1)
Sam Hocevar's avatar
 
Sam Hocevar committed
140 141 142 143
C_OBJ += extras/GNUgetopt/getopt.o extras/GNUgetopt/getopt1.o 
endif

ifeq ($(SYS),beos)
Sam Hocevar's avatar
 
Sam Hocevar committed
144
CPP_OBJ :=	src/misc/beos_specific.o
Sam Hocevar's avatar
 
Sam Hocevar committed
145 146 147 148 149 150
endif

ifneq (,$(findstring darwin,$(SYS)))
C_OBJ +=	src/misc/darwin_specific.o
endif

Xavier Marchesini's avatar
 
Xavier Marchesini committed
151
ifneq (,$(findstring mingw32,$(SYS)))
Sam Hocevar's avatar
 
Sam Hocevar committed
152
C_OBJ +=	src/misc/win32_specific.o
Xavier Marchesini's avatar
 
Xavier Marchesini committed
153 154
RESOURCE_OBJ :=	share/vlc_win32_rc.o
endif
Gildas Bazin's avatar
 
Gildas Bazin committed
155

Sam Hocevar's avatar
 
Sam Hocevar committed
156 157
VLC_OBJ := $(C_OBJ) $(CPP_OBJ) $(BUILTIN_OBJ) $(RESOURCE_OBJ)

Sam Hocevar's avatar
 
Sam Hocevar committed
158 159 160
#
# Generated header
#
Sam Hocevar's avatar
 
Sam Hocevar committed
161
H_OBJ :=	src/misc/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
162

Sam Hocevar's avatar
 
Sam Hocevar committed
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
#
# Included headers which don't get noticed by Makefile.dep
#
H_DEP :=	videolan/vlc.h \
		defs.h \
		config.h \
		int_types.h \
		modules_inner.h \
		common.h \
		beos_specific.h \
		darwin_specific.h \
		win32_specific.h \
		intf_msg.h \
		threads.h \
		mtime.h \
		modules.h \
		main.h

Sam Hocevar's avatar
 
Sam Hocevar committed
181 182 183
#
# Other lists of files
#
Sam Hocevar's avatar
 
Sam Hocevar committed
184 185 186 187 188 189
C_DEP := $(C_OBJ:%.o=.dep/%.d)
CPP_DEP := $(CPP_OBJ:%.o=.dep/%.dpp)

#
# Translate plugin names
#
Sam Hocevar's avatar
 
Sam Hocevar committed
190
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
191
PLUGIN_OBJ := $(shell for i in $(PLUGINS) ; do echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.*/\('$$i'\) .*@plugins/\1.so@' -e 's@^ .*@@' ; done)
Sam Hocevar's avatar
 
Sam Hocevar committed
192 193
endif
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
194
BUILTIN_OBJ := $(shell for i in $(BUILTINS) ; do echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.*/\('$$i'\) .*@plugins/\1.a@' -e 's@^ .*@@' ; done)
Sam Hocevar's avatar
 
Sam Hocevar committed
195
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
196

Sam Hocevar's avatar
 
Sam Hocevar committed
197 198 199
#
# Misc variables
#
Sam Hocevar's avatar
 
Sam Hocevar committed
200 201
VLC_QUICKVERSION := $(shell grep '^ *VLC_VERSION=' configure.in | head -1 | sed 's/"//g' | cut -f2 -d=)
LIBDVDCSS_QUICKVERSION := $(shell grep '^ *LIBDVDCSS_VERSION=' configure.in | head -1 | sed 's/"//g' | cut -f2 -d=)
Sam Hocevar's avatar
 
Sam Hocevar committed
202 203


Sam Hocevar's avatar
 
Sam Hocevar committed
204 205 206 207 208 209 210 211 212 213
# All symbols must be exported
export

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

#
# Virtual targets
#
Sam Hocevar's avatar
 
Sam Hocevar committed
214
all: Makefile.opts vlc ${ALIASES} vlc.app plugins po
215 216

Makefile.opts:
Sam Hocevar's avatar
 
Sam Hocevar committed
217 218 219 220 221
	@echo "**** No configuration found, please run ./configure"
	@exit 1
#	./configure
#	$(MAKE) $(MAKECMDGOALS)
#	exit	
Sam Hocevar's avatar
 
Sam Hocevar committed
222 223 224 225 226

show:
	@echo CC: $(CC)
	@echo CFLAGS: $(CFLAGS)
	@echo DCFLAGS: $(DCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
227
	@echo LDFLAGS: $(LDFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
228
	@echo PCFLAGS: $(PCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
229
	@echo PLDFLAGS: $(PLDFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
230 231 232 233 234 235 236 237
	@echo C_OBJ: $(C_OBJ)
	@echo CPP_OBJ: $(CPP_OBJ)
	@echo PLUGIN_OBJ: $(PLUGIN_OBJ)
	@echo BUILTIN_OBJ: $(BUILTIN_OBJ)

#
# Cleaning rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
238
clean: libdvdcss-clean libdvdread-clean plugins-clean po-clean vlc-clean
Sam Hocevar's avatar
 
Sam Hocevar committed
239
	rm -f src/*/*.o extras/*/*.o
Sam Hocevar's avatar
 
Sam Hocevar committed
240 241
	rm -f lib/*.so* lib/*.a
	rm -f plugins/*.so plugins/*.a
242
	rm -rf extras/MacOSX/build
Sam Hocevar's avatar
 
Sam Hocevar committed
243 244

libdvdcss-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
245
	-cd extras/libdvdcss && $(MAKE) clean
Sam Hocevar's avatar
 
Sam Hocevar committed
246

Sam Hocevar's avatar
 
Sam Hocevar committed
247 248 249
po-clean:
	-cd po && $(MAKE) clean

Stéphane Borel's avatar
Stéphane Borel committed
250 251 252
libdvdread-clean:
	-cd extras/libdvdread && $(MAKE) clean

Sam Hocevar's avatar
 
Sam Hocevar committed
253
plugins-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
254
	for dir in $(PLUGINS_DIR) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
255 256 257
		( cd plugins/$${dir} \
			&& $(MAKE) -f ../../Makefile.modules clean ) ; done
	rm -f plugins/*/*.o plugins/*/*.lo plugins/*/*.moc plugins/*/*.bak
Sam Hocevar's avatar
 
Sam Hocevar committed
258 259

vlc-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
260
	rm -f $(C_OBJ) $(CPP_OBJ)
Sam Hocevar's avatar
 
Sam Hocevar committed
261
	rm -f vlc gnome-vlc gvlc kvlc qvlc vlc.exe
Sam Hocevar's avatar
 
Sam Hocevar committed
262
	rm -Rf vlc.app
Sam Hocevar's avatar
 
Sam Hocevar committed
263 264

distclean: clean
Sam Hocevar's avatar
Sam Hocevar committed
265
	-cd po && $(MAKE) maintainer-clean
Sam Hocevar's avatar
 
Sam Hocevar committed
266
	rm -f **/*.o **/*~ *.log
Sam Hocevar's avatar
 
Sam Hocevar committed
267
	rm -f Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
268
	rm -f include/defs.h include/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
269
	rm -f src/misc/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
270
	rm -f config*status config*cache config*log
Sam Hocevar's avatar
 
Sam Hocevar committed
271 272 273 274
	rm -f gmon.out core build-stamp
	rm -Rf .dep
	rm -f .gdb_history

Sam Hocevar's avatar
 
Sam Hocevar committed
275 276 277
#
# Install/uninstall rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
278
install: libdvdcss-install vlc-install plugins-install po-install
Sam Hocevar's avatar
 
Sam Hocevar committed
279

Sam Hocevar's avatar
 
Sam Hocevar committed
280
uninstall: libdvdcss-uninstall vlc-uninstall plugins-uninstall po-uninstall
Sam Hocevar's avatar
 
Sam Hocevar committed
281

Sam Hocevar's avatar
 
Sam Hocevar committed
282
vlc-install:
Sam Hocevar's avatar
 
Sam Hocevar committed
283 284
	mkdir -p $(DESTDIR)$(bindir)
	$(INSTALL) vlc $(DESTDIR)$(bindir)
Sam Hocevar's avatar
 
Sam Hocevar committed
285 286 287
ifneq (,$(ALIASES))
	for alias in $(ALIASES) ; do if test $$alias ; then rm -f $(DESTDIR)$(bindir)/$$alias && ln -s vlc $(DESTDIR)$(bindir)/$$alias ; fi ; done
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
288 289 290 291 292
	mkdir -p $(DESTDIR)$(datadir)/videolan
	$(INSTALL) -m 644 share/*.psf $(DESTDIR)$(datadir)/videolan
	$(INSTALL) -m 644 share/*.png $(DESTDIR)$(datadir)/videolan
	$(INSTALL) -m 644 share/*.xpm $(DESTDIR)$(datadir)/videolan

Sam Hocevar's avatar
 
Sam Hocevar committed
293
vlc-uninstall:
Sam Hocevar's avatar
 
Sam Hocevar committed
294
	rm -f $(DESTDIR)$(bindir)/vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
295 296 297 298 299 300 301
ifneq (,$(ALIASES))
	for alias in $(ALIASES) ; do if test $$alias ; then rm -f $(DESTDIR)$(bindir)/$$alias ; fi ; done
endif
	rm -f $(DESTDIR)$(datadir)/videolan/*.psf
	rm -f $(DESTDIR)$(datadir)/videolan/*.png
	rm -f $(DESTDIR)$(datadir)/videolan/*.xpm

Sam Hocevar's avatar
 
Sam Hocevar committed
302 303 304
plugins-install:
	mkdir -p $(DESTDIR)$(libdir)/videolan/vlc
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
305
	$(INSTALL) -m 644 $(PLUGINS:%=plugins/%.so) $(DESTDIR)$(libdir)/videolan/vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
306 307
endif

Sam Hocevar's avatar
 
Sam Hocevar committed
308 309 310
plugins-uninstall:
	rm -f $(DESTDIR)$(libdir)/videolan/vlc/*.so

Sam Hocevar's avatar
 
Sam Hocevar committed
311
libdvdcss-install:
Sam Hocevar's avatar
 
Sam Hocevar committed
312
	-cd extras/libdvdcss && $(MAKE) install
Sam Hocevar's avatar
 
Sam Hocevar committed
313

Sam Hocevar's avatar
 
Sam Hocevar committed
314
libdvdcss-uninstall:
Sam Hocevar's avatar
 
Sam Hocevar committed
315
	-cd extras/libdvdcss && $(MAKE) uninstall
Sam Hocevar's avatar
 
Sam Hocevar committed
316

Sam Hocevar's avatar
 
Sam Hocevar committed
317 318 319 320 321 322
po-install:
	-cd po && $(MAKE) install

po-uninstall:
	-cd po && $(MAKE) uninstall

Sam Hocevar's avatar
 
Sam Hocevar committed
323 324 325
#
# Package generation rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
326 327 328 329 330 331 332 333 334 335
snapshot-common:
	# Check that tmp isn't in the way
	@if test -e tmp; then \
		echo "Error: please remove ./tmp, it is in the way"; false; \
	else \
		echo "OK."; mkdir tmp; \
	fi
	# Copy directory structure in tmp
	find -type d | grep -v '\(\.dep\|snapshot\|CVS\)' | while read i ; \
		do mkdir -p tmp/vlc/$$i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
336
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
337
	rm -Rf tmp/vlc/tmp
Sam Hocevar's avatar
 
Sam Hocevar committed
338
	find debian -mindepth 1 -maxdepth 1 -type d | \
Sam Hocevar's avatar
 
Sam Hocevar committed
339
		while read i ; do rm -Rf tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
340
	# Copy .c .h .in .cpp and .glade files
Sam Hocevar's avatar
 
Sam Hocevar committed
341
	find include src plugins -type f -name '*.[chig]*' | while read i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
342
		do cp $$i tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
343 344
	# Copy plugin Makefiles
	find plugins -type f -name Makefile | while read i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
345
		do cp $$i tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
346
	# Copy extra programs and documentation
Sam Hocevar's avatar
 
Sam Hocevar committed
347 348 349 350 351
	cp -a extras/* tmp/vlc/extras
	cp -a doc/* tmp/vlc/doc
	find tmp/vlc/extras tmp/vlc/doc \
		-type d -name CVS -o -name '.*' -o -name '*.[o]' | \
			while read i ; do rm -Rf $$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
352 353 354
	# Copy gettext stuff
	cp po/*.po tmp/vlc/po
	for i in Makefile.in.in POTFILES.in ; do cp po/$$i tmp/vlc/po ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
355
	# Copy misc files
Sam Hocevar's avatar
 
Sam Hocevar committed
356
	cp FAQ AUTHORS COPYING TODO todo.pl ChangeLog* README* INSTALL* \
Sam Hocevar's avatar
 
Sam Hocevar committed
357
		Makefile Makefile.opts.in Makefile.dep Makefile.modules \
Sam Hocevar's avatar
 
Sam Hocevar committed
358
		configure configure.in install-sh install-win32 vlc.spec \
Sam Hocevar's avatar
 
Sam Hocevar committed
359
		config.sub config.guess acconfig.h aclocal.m4 mkinstalldirs \
Sam Hocevar's avatar
 
Sam Hocevar committed
360
			tmp/vlc/
Sam Hocevar's avatar
 
Sam Hocevar committed
361
	# Copy Debian control files
Sam Hocevar's avatar
 
Sam Hocevar committed
362
	for file in debian/*dirs debian/*docs debian/*menu debian/*desktop \
Sam Hocevar's avatar
 
Sam Hocevar committed
363
		debian/*copyright ; do cp $$file tmp/vlc/debian ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
364
	for file in control changelog rules ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
365
		cp debian/$$file tmp/vlc/debian/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
366 367 368
	# Copy ipkg control files
	for file in control rules ; do \
		cp ipkg/$$file tmp/vlc/ipkg/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
369 370
	# Copy fonts and icons
	for file in share/*png share/*xpm share/*psf ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
371
		cp $$file tmp/vlc/share ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
372
	for file in vlc_beos.rsrc vlc.icns gvlc_win32.ico vlc_win32_rc.rc ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
373
			cp share/$$file tmp/vlc/share/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
374 375

snapshot: snapshot-common
Sam Hocevar's avatar
 
Sam Hocevar committed
376
	# Build archives
Sam Hocevar's avatar
 
Sam Hocevar committed
377
	F=vlc-${VLC_QUICKVERSION}; \
Sam Hocevar's avatar
 
Sam Hocevar committed
378 379 380 381 382
	mv tmp/vlc tmp/$$F; (cd tmp ; tar cf $$F.tar $$F); \
	bzip2 -f -9 < tmp/$$F.tar > $$F.tar.bz2; \
	gzip -f -9 tmp/$$F.tar ; mv tmp/$$F.tar.gz .
	# Clean up
	rm -Rf tmp
Sam Hocevar's avatar
 
Sam Hocevar committed
383 384 385

snapshot-nocss: snapshot-common
	# Remove libdvdcss
Sam Hocevar's avatar
 
Sam Hocevar committed
386 387
	rm -Rf tmp/vlc/extras/libdvdcss
	rm -f tmp/vlc/*.libdvdcss
Sam Hocevar's avatar
 
Sam Hocevar committed
388
	# Fix debian information
Sam Hocevar's avatar
 
Sam Hocevar committed
389 390
	rm -f tmp/vlc/debian/libdvdcss*
	rm -f tmp/vlc/debian/control
Sam Hocevar's avatar
 
Sam Hocevar committed
391 392
	sed -e 's#^ DVDs# unencrypted DVDs#' < debian/control \
		| awk '{if(gsub("Package: libdvdcss",$$0))a=1;if(a==0)print $$0;if(a==1&&$$0=="")a=0}' \
Sam Hocevar's avatar
 
Sam Hocevar committed
393 394
		> tmp/vlc/debian/control
	rm -f tmp/vlc/debian/rules
Sam Hocevar's avatar
 
Sam Hocevar committed
395 396
	sed -e 's#^\(export LIBDVDCSS_FLAGS=\).*#\1"--without-dvdcss"#' < debian/rules \
		| awk '{if($$0=="# libdvdcss start")a=1;if(a==0)print $$0;if($$0=="# libdvdcss stop")a=0}' \
Sam Hocevar's avatar
 
Sam Hocevar committed
397 398 399
		> tmp/vlc/debian/rules
	chmod +x tmp/vlc/debian/rules
	# Build css-disabled archives
Sam Hocevar's avatar
 
Sam Hocevar committed
400
	F=vlc-${VLC_QUICKVERSION}; G=vlc-${VLC_QUICKVERSION}-nocss; \
Sam Hocevar's avatar
 
Sam Hocevar committed
401 402 403 404 405
	mv tmp/vlc tmp/$$F; (cd tmp ; tar cf $$G.tar $$F); \
	bzip2 -f -9 < tmp/$$G.tar > $$G.tar.bz2; \
	gzip -f -9 tmp/$$G.tar ; mv tmp/$$G.tar.gz .
	# Clean up
	rm -Rf tmp
Sam Hocevar's avatar
 
Sam Hocevar committed
406

Sam Hocevar's avatar
 
Sam Hocevar committed
407 408 409 410 411 412 413 414 415 416 417 418 419
package-win32:
	# XXX: this rule is probably only useful to you if you have exactly
	# the same setup as me. Contact sam@zoy.org if you need to use it.
	#
	# Check that tmp isn't in the way
	@if test -e tmp; then \
		echo "Error: please remove ./tmp, it is in the way"; false; \
	else \
		echo "OK."; mkdir tmp; \
	fi
	# Create installation script
	sed -e 's#@VERSION@#'${VLC_QUICKVERSION}'#' < install-win32 > tmp/nsi
	# Copy relevant files
Sam Hocevar's avatar
 
Sam Hocevar committed
420
	cp vlc.exe $(PLUGINS:%=plugins/%.so) tmp/ 
Sam Hocevar's avatar
 
Sam Hocevar committed
421 422 423 424
	cp INSTALL-win32.txt AUTHORS COPYING ChangeLog ChangeLog.libdvdcss \
		README README.libdvdcss FAQ TODO tmp/
	for file in gtk-1.3.dll gdk-1.3.dll glib-1.3.dll gmodule-1.3.dll \
		gnu-intl.dll SDL.dll README-SDL.txt ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
425
			do cp ${DLL_PATH}/$$file tmp/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
426 427 428 429 430 431 432 433 434 435
	mkdir tmp/share
	for file in default8x16.psf default8x9.psf ; \
		do cp share/$$file tmp/share/ ; done
	# Create package 
	wine ~/.wine/fake_windows/Program\ Files/NSIS/makensis.exe /CD tmp/nsi
	mv tmp/vlc-${VLC_QUICKVERSION}.exe \
		vlc-${VLC_QUICKVERSION}-win32-installer.exe
	# Clean up
	rm -Rf tmp

Sam Hocevar's avatar
 
Sam Hocevar committed
436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455
package-beos:
	# Check that tmp isn't in the way
	@if test -e tmp; then \
		echo "Error: please remove ./tmp, it is in the way"; false; \
	else \
		echo "OK."; mkdir tmp; \
	fi
	
	# Create dir
	mkdir -p tmp/vlc/share
	# Copy relevant files
	cp vlc tmp/vlc/
	cp AUTHORS COPYING ChangeLog ChangeLog.libdvdcss \
		README README.libdvdcss FAQ TODO tmp/vlc/
	for file in default8x16.psf default8x9.psf ; \
		do cp share/$$file tmp/vlc/share/ ; done
	# Create package 
	mv tmp/vlc tmp/vlc-${VLC_QUICKVERSION}
	(cd tmp ; find vlc-${VLC_QUICKVERSION} | \
	zip -9 -@ vlc-${VLC_QUICKVERSION}-beos.zip )
Sam Hocevar's avatar
 
Sam Hocevar committed
456
	mv tmp/vlc-${VLC_QUICKVERSION}-BeOS-x86.zip .
Sam Hocevar's avatar
 
Sam Hocevar committed
457 458 459
	# Clean up
	rm -Rf tmp

Sam Hocevar's avatar
 
Sam Hocevar committed
460 461
libdvdcss-snapshot: snapshot-common
	# Remove vlc sources and icons, doc, debian directory...
Sam Hocevar's avatar
 
Sam Hocevar committed
462
	rm -Rf tmp/vlc/src tmp/vlc/share tmp/vlc/plugins tmp/vlc/doc
463
	rm -Rf tmp/vlc/extras/GNUgetopt tmp/vlc/extras/MacOSX
Sam Hocevar's avatar
 
Sam Hocevar committed
464
	rm -Rf tmp/vlc/debian
Sam Hocevar's avatar
 
Sam Hocevar committed
465
	rm -Rf tmp/vlc/ipkg
Sam Hocevar's avatar
 
Sam Hocevar committed
466
	# Remove useless headers
Sam Hocevar's avatar
 
Sam Hocevar committed
467
	rm -f tmp/vlc/include/*
Sam Hocevar's avatar
 
Sam Hocevar committed
468
	for file in defs.h.in config.h common.h int_types.h ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
469
		do cp include/$$file tmp/vlc/include/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
470
	# Remove misc files (??? - maybe not really needed)
Sam Hocevar's avatar
 
Sam Hocevar committed
471 472 473
	rm -f tmp/vlc/vlc.spec tmp/vlc/INSTALL-win32.txt
	mv tmp/vlc/INSTALL.libdvdcss tmp/vlc/INSTALL
	mv tmp/vlc/README.libdvdcss tmp/vlc/README
Sam Hocevar's avatar
 
Sam Hocevar committed
474
	mv tmp/vlc/ChangeLog.libdvdcss tmp/vlc/ChangeLog
Sam Hocevar's avatar
 
Sam Hocevar committed
475
	# Fix Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
476
	rm -f tmp/vlc/Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
477
	sed -e 's#^install:#install-unused:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
478
		-e 's#^uninstall:#uninstall-unused:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
479 480 481
		-e 's#^clean:#clean-unused:#' \
		-e 's#^all:.*#all: libdvdcss#' \
		-e 's#^libdvdcss-install:#install:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
482
		-e 's#^libdvdcss-uninstall:#uninstall:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
483
		-e 's#^libdvdcss-clean:#clean:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
484 485
		< Makefile > tmp/vlc/Makefile
	# Build archives
Sam Hocevar's avatar
 
Sam Hocevar committed
486
	F=libdvdcss-${LIBDVDCSS_QUICKVERSION}; \
Sam Hocevar's avatar
 
Sam Hocevar committed
487 488 489 490 491
	mv tmp/vlc tmp/$$F; (cd tmp ; tar cf $$F.tar $$F); \
	bzip2 -f -9 < tmp/$$F.tar > $$F.tar.bz2; \
	gzip -f -9 tmp/$$F.tar ; mv tmp/$$F.tar.gz .
	# Clean up
	rm -Rf tmp
Sam Hocevar's avatar
 
Sam Hocevar committed
492

Sam Hocevar's avatar
 
Sam Hocevar committed
493 494
deb:
	dpkg-buildpackage -rfakeroot -us -uc
Sam Hocevar's avatar
 
Sam Hocevar committed
495

Sam Hocevar's avatar
 
Sam Hocevar committed
496 497 498 499 500
#
# Gtk/Gnome/* aliases and OS X application
#
gnome-vlc gvlc kvlc qvlc: vlc
	rm -f $@ && ln -s vlc $@
Sam Hocevar's avatar
 
Sam Hocevar committed
501

Sam Hocevar's avatar
 
Sam Hocevar committed
502
.PHONY: vlc.app
503
vlc.app: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
504
ifneq (,$(findstring darwin,$(SYS)))
Sam Hocevar's avatar
 
Sam Hocevar committed
505
	rm -Rf vlc.app
506 507
	cd extras/MacOSX ; pbxbuild | grep -v '^ ' | grep -v '^\t'
	cp -r extras/MacOSX/build/vlc.bundle ./vlc.app
508 509
	$(INSTALL) -d vlc.app/Contents/MacOS/share
	$(INSTALL) -d vlc.app/Contents/MacOS/plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
510
	$(INSTALL) vlc vlc.app/Contents/MacOS/
Sam Hocevar's avatar
 
Sam Hocevar committed
511
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
512
	$(INSTALL) $(PLUGINS:%=plugins/%.so) vlc.app/Contents/MacOS/plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
513
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
514 515 516 517 518 519 520 521
	$(INSTALL) -m 644 share/*.psf vlc.app/Contents/MacOS/share
endif

FORCE:

#
# Generic rules (see below)
#
Sam Hocevar's avatar
 
Sam Hocevar committed
522
$(H_OBJ): Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
523 524
#	@echo "regenerating $@"
	@rm -f $@ && cp $@.in $@
Sam Hocevar's avatar
 
Sam Hocevar committed
525
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
526 527 528 529
	@for i in $(BUILTINS) ; do \
		echo "int InitModule__MODULE_"$$i"( module_t* );" >>$@; \
		echo "int ActivateModule__MODULE_"$$i"( module_t* );" >>$@; \
		echo "int DeactivateModule__MODULE_"$$i"( module_t* );" >>$@; \
Sam Hocevar's avatar
 
Sam Hocevar committed
530
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
531 532 533 534 535 536 537 538
	@echo "" >> $@ ;
endif
	@echo "#define ALLOCATE_ALL_BUILTINS() \\" >> $@ ;
	@echo "    do \\" >> $@ ;
	@echo "    { \\" >> $@ ;
ifneq (,$(BUILTINS))
	@for i in $(BUILTINS) ; do \
		echo "        ALLOCATE_BUILTIN("$$i"); \\" >> $@ ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
539
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
540
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
541 542
	@echo "    } while( 0 );" >> $@ ;
	@echo "" >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
543

Sam Hocevar's avatar
 
Sam Hocevar committed
544 545 546 547 548 549
$(C_DEP): %.d: FORCE
	@$(MAKE) -s --no-print-directory -f Makefile.dep $@

$(CPP_DEP): %.dpp: FORCE
	@$(MAKE) -s --no-print-directory -f Makefile.dep $@

Sam Hocevar's avatar
 
Sam Hocevar committed
550 551
$(C_OBJ): %.o: Makefile.opts Makefile.dep Makefile
$(C_OBJ): %.o: $(H_OBJ) $(H_DEP:%=include/%)
Sam Hocevar's avatar
 
Sam Hocevar committed
552 553
$(C_OBJ): %.o: .dep/%.d
$(C_OBJ): %.o: %.c
Sam Hocevar's avatar
 
Sam Hocevar committed
554
	$(CC) $(CFLAGS) $(CFLAGS_VLC) -c -o $@ $<
Sam Hocevar's avatar
 
Sam Hocevar committed
555

Sam Hocevar's avatar
 
Sam Hocevar committed
556
$(CPP_OBJ): %.o: Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
557
$(CPP_OBJ): %.o: $(H_OBJ) $(H_DEP:%=include/%)
Sam Hocevar's avatar
 
Sam Hocevar committed
558 559
$(CPP_OBJ): %.o: .dep/%.dpp
$(CPP_OBJ): %.o: %.cpp
Sam Hocevar's avatar
 
Sam Hocevar committed
560
	$(CC) $(CFLAGS) $(CFLAGS_VLC) -c -o $@ $<
Sam Hocevar's avatar
 
Sam Hocevar committed
561

Gildas Bazin's avatar
 
Gildas Bazin committed
562 563 564 565 566 567
$(RESOURCE_OBJ): %.o: Makefile.dep Makefile
ifneq (,(findstring mingw32,$(SYS)))
$(RESOURCE_OBJ): %.o: %.rc
	$(WINDRES) -i $< -o $@
endif

Sam Hocevar's avatar
 
Sam Hocevar committed
568 569 570
#
# Main application target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
571 572
vlc: Makefile.opts Makefile.dep Makefile $(VLC_OBJ) $(BUILTIN_OBJ)
	$(CC) $(CFLAGS) -o $@ $(VLC_OBJ) $(BUILTIN_OBJ) $(LDFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
573 574 575 576 577 578 579 580
ifeq ($(SYS),beos)
	xres -o $@ ./share/vlc_beos.rsrc
	mimeset -f $@
endif

#
# Plugins target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
581 582
plugins: Makefile.modules Makefile.opts Makefile.dep Makefile $(PLUGIN_OBJ)
$(PLUGIN_OBJ): FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
583
	@cd $(shell echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.* \([^/]*/\)'$(@:plugins/%.so=%)' .*@plugins/\1@' -e 's@^ .*@@') && $(MAKE) -f ../../Makefile.modules $(@:plugins/%=../%)
Sam Hocevar's avatar
 
Sam Hocevar committed
584 585 586 587

#
# Built-in modules target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
588 589
builtins: Makefile.modules Makefile.opts Makefile.dep Makefile $(BUILTIN_OBJ)
$(BUILTIN_OBJ): FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
590
	@cd $(shell echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.* \([^/]*/\)'$(@:plugins/%.a=%)' .*@plugins/\1@' -e 's@^ .*@@') && $(MAKE) -f ../../Makefile.modules $(@:plugins/%=../%)
Sam Hocevar's avatar
 
Sam Hocevar committed
591

Sam Hocevar's avatar
 
Sam Hocevar committed
592 593 594
#
# libdvdcss target
#
595
libdvdcss: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
596
	@cd extras/libdvdcss && $(MAKE)
Stéphane Borel's avatar
Stéphane Borel committed
597 598 599 600 601

#
# libdvdread target
#
libdvdread: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
602 603 604 605 606 607 608
	@cd extras/libdvdread && $(MAKE)

#
# gettext target
#
po: FORCE
	@cd po && $(MAKE)
Stéphane Borel's avatar
Stéphane Borel committed
609