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 \
Sam Hocevar's avatar
 
Sam Hocevar committed
64 65
		chroma/chroma_i420_ymga \
		chroma/chroma_i420_ymga_mmx \
66 67 68 69 70
		directx/directx \
		dsp/dsp \
		dummy/dummy \
		dummy/null \
		dvd/dvd \
Stéphane Borel's avatar
Stéphane Borel committed
71
		dvdread/dvdread \
72 73
		esd/esd \
		fb/fb \
Sam Hocevar's avatar
 
Sam Hocevar committed
74
		filter/filter_deinterlace \
Sam Hocevar's avatar
 
Sam Hocevar committed
75
		filter/filter_transform \
Sam Hocevar's avatar
 
Sam Hocevar committed
76
		filter/filter_invert \
Sam Hocevar's avatar
 
Sam Hocevar committed
77
		filter/filter_distort \
Sam Hocevar's avatar
 
Sam Hocevar committed
78
		filter/filter_wall \
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
		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
95
		lpcm_adec/lpcm_adec \
96
		macosx/macosx \
Sam Hocevar's avatar
 
Sam Hocevar committed
97
		mad/mad \
Sam Hocevar's avatar
 
Sam Hocevar committed
98 99 100 101
		memcpy/memcpy \
		memcpy/memcpymmx \
		memcpy/memcpymmxext \
		memcpy/memcpy3dn \
102 103 104 105 106 107
		mga/mga \
		motion/motion \
		motion/motionmmx \
		motion/motionmmxext \
		motion/motion3dnow \
		motion/motionaltivec \
Sam Hocevar's avatar
 
Sam Hocevar committed
108 109 110
		mpeg_system/mpeg_es \
		mpeg_system/mpeg_ps \
		mpeg_system/mpeg_ts \
Henri Fallon's avatar
 
Henri Fallon committed
111 112
		mpeg_adec/mpeg_adec \
		mpeg_vdec/mpeg_vdec \
113 114
		qt/qt \
		sdl/sdl \
Sam Hocevar's avatar
 
Sam Hocevar committed
115
		spudec/spudec \
116 117 118 119
		text/ncurses \
		text/rc \
		vcd/vcd \
		x11/x11 \
Sam Hocevar's avatar
 
Sam Hocevar committed
120
		x11/xvideo
Sam Hocevar's avatar
 
Sam Hocevar committed
121

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

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
136 137 138 139

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

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

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

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

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
#
# 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
182 183 184
#
# Other lists of files
#
Sam Hocevar's avatar
 
Sam Hocevar committed
185 186 187 188 189 190
C_DEP := $(C_OBJ:%.o=.dep/%.d)
CPP_DEP := $(CPP_OBJ:%.o=.dep/%.dpp)

#
# Translate plugin names
#
Sam Hocevar's avatar
 
Sam Hocevar committed
191
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
192
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
193 194
endif
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
195
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
196
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
197

Sam Hocevar's avatar
 
Sam Hocevar committed
198 199 200
#
# Misc variables
#
Sam Hocevar's avatar
 
Sam Hocevar committed
201 202
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
203 204


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

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

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

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

show:
	@echo CC: $(CC)
	@echo CFLAGS: $(CFLAGS)
	@echo DCFLAGS: $(DCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
228
	@echo LDFLAGS: $(LDFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
229
	@echo PCFLAGS: $(PCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
230
	@echo PLDFLAGS: $(PLDFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
231 232 233 234 235 236 237 238
	@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
239
clean: libdvdcss-clean libdvdread-clean plugins-clean po-clean vlc-clean
Sam Hocevar's avatar
 
Sam Hocevar committed
240
	rm -f src/*/*.o extras/*/*.o
Sam Hocevar's avatar
 
Sam Hocevar committed
241 242
	rm -f lib/*.so* lib/*.a
	rm -f plugins/*.so plugins/*.a
243
	rm -rf extras/MacOSX/build
Sam Hocevar's avatar
 
Sam Hocevar committed
244 245

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

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
254
plugins-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
255
	for dir in $(PLUGINS_DIR) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
256 257 258
		( 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
259 260

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

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

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
283
vlc-install:
Sam Hocevar's avatar
 
Sam Hocevar committed
284 285
	mkdir -p $(DESTDIR)$(bindir)
	$(INSTALL) vlc $(DESTDIR)$(bindir)
Sam Hocevar's avatar
 
Sam Hocevar committed
286 287 288
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
289 290 291 292 293
	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
294
vlc-uninstall:
Sam Hocevar's avatar
 
Sam Hocevar committed
295
	rm -f $(DESTDIR)$(bindir)/vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
296 297 298 299 300 301 302
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
303 304 305
plugins-install:
	mkdir -p $(DESTDIR)$(libdir)/videolan/vlc
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
306
	$(INSTALL) -m 644 $(PLUGINS:%=plugins/%.so) $(DESTDIR)$(libdir)/videolan/vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
307 308
endif

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

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

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

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
324 325 326
#
# Package generation rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
327 328 329 330 331 332 333 334 335 336
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
337
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
338
	rm -Rf tmp/vlc/tmp
Sam Hocevar's avatar
 
Sam Hocevar committed
339
	find debian -mindepth 1 -maxdepth 1 -type d | \
Sam Hocevar's avatar
 
Sam Hocevar committed
340
		while read i ; do rm -Rf tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
341
	# Copy .c .h .in .cpp and .glade files
Sam Hocevar's avatar
 
Sam Hocevar committed
342
	find include src plugins -type f -name '*.[chig]*' | while read i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
343
		do cp $$i tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
344 345
	# Copy plugin Makefiles
	find plugins -type f -name Makefile | while read i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
346
		do cp $$i tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
347
	# Copy extra programs and documentation
Sam Hocevar's avatar
 
Sam Hocevar committed
348 349 350 351 352
	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
353 354 355
	# 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
356
	# Copy misc files
Sam Hocevar's avatar
 
Sam Hocevar committed
357
	cp FAQ AUTHORS COPYING TODO todo.pl ChangeLog* README* INSTALL* \
Sam Hocevar's avatar
 
Sam Hocevar committed
358
		Makefile Makefile.opts.in Makefile.dep Makefile.modules \
Sam Hocevar's avatar
 
Sam Hocevar committed
359
		configure configure.in install-sh install-win32 vlc.spec \
Sam Hocevar's avatar
 
Sam Hocevar committed
360
		config.sub config.guess acconfig.h aclocal.m4 mkinstalldirs \
Sam Hocevar's avatar
 
Sam Hocevar committed
361
			tmp/vlc/
Sam Hocevar's avatar
 
Sam Hocevar committed
362
	# Copy Debian control files
Sam Hocevar's avatar
 
Sam Hocevar committed
363
	for file in debian/*dirs debian/*docs debian/*menu debian/*desktop \
Sam Hocevar's avatar
 
Sam Hocevar committed
364
		debian/*copyright ; do cp $$file tmp/vlc/debian ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
365
	for file in control changelog rules ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
366
		cp debian/$$file tmp/vlc/debian/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
367 368 369
	# Copy ipkg control files
	for file in control rules ; do \
		cp ipkg/$$file tmp/vlc/ipkg/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
370 371
	# Copy fonts and icons
	for file in share/*png share/*xpm share/*psf ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
372
		cp $$file tmp/vlc/share ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
373
	for file in vlc_beos.rsrc vlc.icns gvlc_win32.ico vlc_win32_rc.rc ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
374
			cp share/$$file tmp/vlc/share/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
375 376

snapshot: snapshot-common
Sam Hocevar's avatar
 
Sam Hocevar committed
377
	# Build archives
Sam Hocevar's avatar
 
Sam Hocevar committed
378
	F=vlc-${VLC_QUICKVERSION}; \
Sam Hocevar's avatar
 
Sam Hocevar committed
379 380 381 382 383
	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
384 385 386

snapshot-nocss: snapshot-common
	# Remove libdvdcss
Sam Hocevar's avatar
 
Sam Hocevar committed
387 388
	rm -Rf tmp/vlc/extras/libdvdcss
	rm -f tmp/vlc/*.libdvdcss
Sam Hocevar's avatar
 
Sam Hocevar committed
389
	# Fix debian information
Sam Hocevar's avatar
 
Sam Hocevar committed
390 391
	rm -f tmp/vlc/debian/libdvdcss*
	rm -f tmp/vlc/debian/control
Sam Hocevar's avatar
 
Sam Hocevar committed
392 393
	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
394 395
		> tmp/vlc/debian/control
	rm -f tmp/vlc/debian/rules
Sam Hocevar's avatar
 
Sam Hocevar committed
396 397
	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
398 399 400
		> tmp/vlc/debian/rules
	chmod +x tmp/vlc/debian/rules
	# Build css-disabled archives
Sam Hocevar's avatar
 
Sam Hocevar committed
401
	F=vlc-${VLC_QUICKVERSION}; G=vlc-${VLC_QUICKVERSION}-nocss; \
Sam Hocevar's avatar
 
Sam Hocevar committed
402 403 404 405 406
	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
407

Sam Hocevar's avatar
 
Sam Hocevar committed
408 409 410 411 412 413 414 415 416 417 418 419 420
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
421
	cp vlc.exe $(PLUGINS:%=plugins/%.so) tmp/ 
Sam Hocevar's avatar
 
Sam Hocevar committed
422 423 424 425
	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
426
			do cp ${DLL_PATH}/$$file tmp/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
427 428 429 430 431 432 433 434 435 436
	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
437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456
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
457
	mv tmp/vlc-${VLC_QUICKVERSION}-BeOS-x86.zip .
Sam Hocevar's avatar
 
Sam Hocevar committed
458 459 460
	# Clean up
	rm -Rf tmp

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
497 498 499 500 501
#
# 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
502

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

FORCE:

#
# Generic rules (see below)
#
Sam Hocevar's avatar
 
Sam Hocevar committed
523
$(H_OBJ): Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
524 525
#	@echo "regenerating $@"
	@rm -f $@ && cp $@.in $@
Sam Hocevar's avatar
 
Sam Hocevar committed
526
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
527 528 529 530
	@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
531
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
532 533 534 535 536 537 538 539
	@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
540
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
541
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
542 543
	@echo "    } while( 0 );" >> $@ ;
	@echo "" >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
544

Sam Hocevar's avatar
 
Sam Hocevar committed
545 546 547 548 549 550
$(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
551 552
$(C_OBJ): %.o: Makefile.opts Makefile.dep Makefile
$(C_OBJ): %.o: $(H_OBJ) $(H_DEP:%=include/%)
Sam Hocevar's avatar
 
Sam Hocevar committed
553 554
$(C_OBJ): %.o: .dep/%.d
$(C_OBJ): %.o: %.c
Sam Hocevar's avatar
 
Sam Hocevar committed
555
	$(CC) $(CFLAGS) $(CFLAGS_VLC) -c -o $@ $<
Sam Hocevar's avatar
 
Sam Hocevar committed
556

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

Gildas Bazin's avatar
 
Gildas Bazin committed
563 564 565 566 567 568
$(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
569 570 571
#
# Main application target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
572 573
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
574 575 576 577 578 579 580 581
ifeq ($(SYS),beos)
	xres -o $@ ./share/vlc_beos.rsrc
	mimeset -f $@
endif

#
# Plugins target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
582 583
plugins: Makefile.modules Makefile.opts Makefile.dep Makefile $(PLUGIN_OBJ)
$(PLUGIN_OBJ): FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
584
	@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
585 586 587 588

#
# Built-in modules target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
589 590
builtins: Makefile.modules Makefile.opts Makefile.dep Makefile $(BUILTIN_OBJ)
$(BUILTIN_OBJ): FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
591
	@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
592

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

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

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