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
		mga/mga \
Sam Hocevar's avatar
 
Sam Hocevar committed
103
		mga/xmga \
104 105 106 107 108
		motion/motion \
		motion/motionmmx \
		motion/motionmmxext \
		motion/motion3dnow \
		motion/motionaltivec \
Sam Hocevar's avatar
 
Sam Hocevar committed
109 110 111
		mpeg_system/mpeg_es \
		mpeg_system/mpeg_ps \
		mpeg_system/mpeg_ts \
Henri Fallon's avatar
 
Henri Fallon committed
112 113
		mpeg_adec/mpeg_adec \
		mpeg_vdec/mpeg_vdec \
114 115
		qt/qt \
		sdl/sdl \
Sam Hocevar's avatar
 
Sam Hocevar committed
116
		spudec/spudec \
117 118 119 120
		text/ncurses \
		text/rc \
		vcd/vcd \
		x11/x11 \
Sam Hocevar's avatar
 
Sam Hocevar committed
121
		x11/xvideo
Sam Hocevar's avatar
 
Sam Hocevar committed
122

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FORCE:

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

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

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

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

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

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

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

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

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