Makefile 15.1 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 29 30 31 32 33 34 35
		esd \
		fb \
		ggi \
		glide \
		gtk \
		downmix \
		idct \
		imdct \
		kde \
Henri Fallon's avatar
 
Henri Fallon committed
36
		lpcm_adec \
37
		macosx \
Sam Hocevar's avatar
 
Sam Hocevar committed
38
		mad \
Sam Hocevar's avatar
 
Sam Hocevar committed
39
		memcpy \
40 41
		mga \
		motion \
Sam Hocevar's avatar
 
Sam Hocevar committed
42
		mpeg_system \
Henri Fallon's avatar
 
Henri Fallon committed
43 44
		mpeg_adec \
		mpeg_vdec \
45 46
		qt \
		sdl \
Sam Hocevar's avatar
 
Sam Hocevar committed
47
		spudec \
48 49
		text \
		vcd \
Sam Hocevar's avatar
 
Sam Hocevar committed
50
		x11
Sam Hocevar's avatar
 
Sam Hocevar committed
51

Henri Fallon's avatar
 
Henri Fallon committed
52 53 54
PLUGINS_TARGETS := ac3_adec/ac3_adec \
		ac3_spdif/ac3_spdif \
		alsa/alsa \
Sam Hocevar's avatar
 
Sam Hocevar committed
55
		arts/arts \
56
		beos/beos \
Sam Hocevar's avatar
 
Sam Hocevar committed
57
		chroma/yuv2rgb8 \
58 59 60 61 62
		directx/directx \
		dsp/dsp \
		dummy/dummy \
		dummy/null \
		dvd/dvd \
Stéphane Borel's avatar
Stéphane Borel committed
63
		dvdread/dvdread \
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
		esd/esd \
		fb/fb \
		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
82
		lpcm_adec/lpcm_adec \
83
		macosx/macosx \
Sam Hocevar's avatar
 
Sam Hocevar committed
84
		mad/mad \
Sam Hocevar's avatar
 
Sam Hocevar committed
85 86 87 88
		memcpy/memcpy \
		memcpy/memcpymmx \
		memcpy/memcpymmxext \
		memcpy/memcpy3dn \
89 90 91 92 93 94
		mga/mga \
		motion/motion \
		motion/motionmmx \
		motion/motionmmxext \
		motion/motion3dnow \
		motion/motionaltivec \
Sam Hocevar's avatar
 
Sam Hocevar committed
95 96 97
		mpeg_system/mpeg_es \
		mpeg_system/mpeg_ps \
		mpeg_system/mpeg_ts \
Henri Fallon's avatar
 
Henri Fallon committed
98 99
		mpeg_adec/mpeg_adec \
		mpeg_vdec/mpeg_vdec \
100 101
		qt/qt \
		sdl/sdl \
Sam Hocevar's avatar
 
Sam Hocevar committed
102
		spudec/spudec \
103 104 105 106 107 108 109
		text/ncurses \
		text/rc \
		vcd/vcd \
		x11/x11 \
		x11/xvideo \
		yuv/yuv \
		yuv/yuvmmx
Sam Hocevar's avatar
 
Sam Hocevar committed
110

Sam Hocevar's avatar
 
Sam Hocevar committed
111 112 113
#
# C Objects
# 
Sam Hocevar's avatar
 
Sam Hocevar committed
114
INTERFACE := main interface intf_msg intf_playlist
Sam Hocevar's avatar
 
Sam Hocevar committed
115
INPUT := input input_ext-dec input_ext-intf input_dec input_programs input_netlist input_clock mpeg_system
Sam Hocevar's avatar
 
Sam Hocevar committed
116
VIDEO_OUTPUT := video_output video_text vout_pictures vout_subpictures
Sam Hocevar's avatar
 
Sam Hocevar committed
117
AUDIO_OUTPUT := audio_output aout_ext-dec aout_u8 aout_s8 aout_u16 aout_s16 aout_spdif
118
MISC := mtime tests modules netutils iso_lang
Sam Hocevar's avatar
 
Sam Hocevar committed
119 120 121 122 123 124

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
125 126 127 128

#
# Misc Objects
# 
Sam Hocevar's avatar
 
Sam Hocevar committed
129
ifeq ($(NEED_GETOPT),1)
Sam Hocevar's avatar
 
Sam Hocevar committed
130 131 132 133
C_OBJ += extras/GNUgetopt/getopt.o extras/GNUgetopt/getopt1.o 
endif

ifeq ($(SYS),beos)
Sam Hocevar's avatar
 
Sam Hocevar committed
134
CPP_OBJ :=	src/misc/beos_specific.o
Sam Hocevar's avatar
 
Sam Hocevar committed
135 136 137 138 139 140
endif

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

Xavier Marchesini's avatar
 
Xavier Marchesini committed
141
ifneq (,$(findstring mingw32,$(SYS)))
Sam Hocevar's avatar
 
Sam Hocevar committed
142
C_OBJ +=	src/misc/win32_specific.o
Xavier Marchesini's avatar
 
Xavier Marchesini committed
143 144
RESOURCE_OBJ :=	share/vlc_win32_rc.o
endif
Gildas Bazin's avatar
 
Gildas Bazin committed
145

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

Sam Hocevar's avatar
 
Sam Hocevar committed
148 149 150
#
# Generated header
#
Sam Hocevar's avatar
 
Sam Hocevar committed
151
H_OBJ :=	src/misc/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
152 153 154 155

#
# Other lists of files
#
Sam Hocevar's avatar
 
Sam Hocevar committed
156 157 158 159 160 161
C_DEP := $(C_OBJ:%.o=.dep/%.d)
CPP_DEP := $(CPP_OBJ:%.o=.dep/%.dpp)

#
# Translate plugin names
#
Sam Hocevar's avatar
 
Sam Hocevar committed
162
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
163
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
164 165
endif
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
166
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
167
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
168

Sam Hocevar's avatar
 
Sam Hocevar committed
169 170 171
#
# Misc variables
#
Sam Hocevar's avatar
 
Sam Hocevar committed
172 173
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
174 175


Sam Hocevar's avatar
 
Sam Hocevar committed
176 177 178 179 180 181 182 183 184 185
# All symbols must be exported
export

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

#
# Virtual targets
#
Sam Hocevar's avatar
 
Sam Hocevar committed
186
all: Makefile.opts vlc ${ALIASES} vlc.app plugins po
187 188 189 190

Makefile.opts:
	@echo "**** No configuration found, running ./configure..."
	./configure
Sam Hocevar's avatar
 
Sam Hocevar committed
191 192
	$(MAKE) $(MAKECMDGOALS)
	exit
Sam Hocevar's avatar
 
Sam Hocevar committed
193 194 195 196 197 198

show:
	@echo CC: $(CC)
	@echo CFLAGS: $(CFLAGS)
	@echo DCFLAGS: $(DCFLAGS)
	@echo LCFLAGS: $(LCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
199 200
	@echo PCFLAGS: $(PCFLAGS)
	@echo PLCFLAGS: $(PLCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
201 202 203 204 205 206 207 208
	@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
209
clean: libdvdcss-clean libdvdread-clean plugins-clean po-clean vlc-clean
Sam Hocevar's avatar
 
Sam Hocevar committed
210
	rm -f src/*/*.o extras/*/*.o
Sam Hocevar's avatar
 
Sam Hocevar committed
211 212
	rm -f lib/*.so* lib/*.a
	rm -f plugins/*.so plugins/*.a
213
	rm -rf extras/MacOSX/build
Sam Hocevar's avatar
 
Sam Hocevar committed
214 215

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

Sam Hocevar's avatar
 
Sam Hocevar committed
218 219 220
po-clean:
	-cd po && $(MAKE) clean

Stéphane Borel's avatar
Stéphane Borel committed
221 222 223
libdvdread-clean:
	-cd extras/libdvdread && $(MAKE) clean

Sam Hocevar's avatar
 
Sam Hocevar committed
224
plugins-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
225 226
	for dir in $(PLUGINS_DIR) ; do \
		( cd plugins/$${dir} && $(MAKE) clean ) ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
227
	rm -f plugins/*/*.o plugins/*/*.moc plugins/*/*.bak
Sam Hocevar's avatar
 
Sam Hocevar committed
228 229

vlc-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
230
	rm -f $(C_OBJ) $(CPP_OBJ)
Sam Hocevar's avatar
 
Sam Hocevar committed
231
	rm -f vlc gnome-vlc gvlc kvlc qvlc vlc.exe
Sam Hocevar's avatar
 
Sam Hocevar committed
232
	rm -Rf vlc.app
Sam Hocevar's avatar
 
Sam Hocevar committed
233 234

distclean: clean
Sam Hocevar's avatar
 
Sam Hocevar committed
235
	-cd po && $(MAKE) distclean
Sam Hocevar's avatar
 
Sam Hocevar committed
236
	rm -f **/*.o **/*~ *.log
Sam Hocevar's avatar
 
Sam Hocevar committed
237
	rm -f Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
238
	rm -f include/defs.h include/config.h include/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
239
	rm -f src/misc/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
240
	rm -f config*status config*cache config*log
Sam Hocevar's avatar
 
Sam Hocevar committed
241 242 243 244
	rm -f gmon.out core build-stamp
	rm -Rf .dep
	rm -f .gdb_history

Sam Hocevar's avatar
 
Sam Hocevar committed
245 246 247
#
# Install/uninstall rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
248
install: libdvdcss-install vlc-install plugins-install po-install
Sam Hocevar's avatar
 
Sam Hocevar committed
249

Sam Hocevar's avatar
 
Sam Hocevar committed
250
uninstall: libdvdcss-uninstall vlc-uninstall plugins-uninstall po-uninstall
Sam Hocevar's avatar
 
Sam Hocevar committed
251

Sam Hocevar's avatar
 
Sam Hocevar committed
252
vlc-install:
Sam Hocevar's avatar
 
Sam Hocevar committed
253 254
	mkdir -p $(DESTDIR)$(bindir)
	$(INSTALL) vlc $(DESTDIR)$(bindir)
Sam Hocevar's avatar
 
Sam Hocevar committed
255 256 257
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
258 259 260 261 262
	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
263
vlc-uninstall:
Sam Hocevar's avatar
 
Sam Hocevar committed
264
	rm -f $(DESTDIR)$(bindir)/vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
265 266 267 268 269 270 271
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
272 273 274
plugins-install:
	mkdir -p $(DESTDIR)$(libdir)/videolan/vlc
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
275
	$(INSTALL) -m 644 $(PLUGINS:%=plugins/%.so) $(DESTDIR)$(libdir)/videolan/vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
276 277
endif

Sam Hocevar's avatar
 
Sam Hocevar committed
278 279 280
plugins-uninstall:
	rm -f $(DESTDIR)$(libdir)/videolan/vlc/*.so

Sam Hocevar's avatar
 
Sam Hocevar committed
281
libdvdcss-install:
Sam Hocevar's avatar
 
Sam Hocevar committed
282
	-cd extras/libdvdcss && $(MAKE) install
Sam Hocevar's avatar
 
Sam Hocevar committed
283

Sam Hocevar's avatar
 
Sam Hocevar committed
284
libdvdcss-uninstall:
Sam Hocevar's avatar
 
Sam Hocevar committed
285
	-cd extras/libdvdcss && $(MAKE) uninstall
Sam Hocevar's avatar
 
Sam Hocevar committed
286

Sam Hocevar's avatar
 
Sam Hocevar committed
287 288 289 290 291 292
po-install:
	-cd po && $(MAKE) install

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

Sam Hocevar's avatar
 
Sam Hocevar committed
293 294 295
#
# Package generation rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
296 297 298 299 300 301 302 303 304 305
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
306
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
307
	rm -Rf tmp/vlc/tmp
Sam Hocevar's avatar
 
Sam Hocevar committed
308
	find debian -mindepth 1 -maxdepth 1 -type d | \
Sam Hocevar's avatar
 
Sam Hocevar committed
309
		while read i ; do rm -Rf tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
310
	# Copy .c .h .in .cpp and .glade files
Sam Hocevar's avatar
 
Sam Hocevar committed
311
	find include src plugins -type f -name '*.[chig]*' | while read i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
312
		do cp $$i tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
313 314
	# Copy plugin Makefiles
	find plugins -type f -name Makefile | while read i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
315
		do cp $$i tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
316
	# Copy extra programs and documentation
Sam Hocevar's avatar
 
Sam Hocevar committed
317 318 319 320 321
	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
322 323 324 325
	# Copy gettext stuff
	mkdir tmp/vlc/po
	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
326
	# Copy misc files
Sam Hocevar's avatar
 
Sam Hocevar committed
327
	cp FAQ AUTHORS COPYING TODO todo.pl ChangeLog* README* INSTALL* \
Sam Hocevar's avatar
 
Sam Hocevar committed
328
		Makefile Makefile.opts.in Makefile.dep Makefile.modules \
Sam Hocevar's avatar
 
Sam Hocevar committed
329
		configure configure.in install-sh install-win32 vlc.spec \
Sam Hocevar's avatar
 
Sam Hocevar committed
330
		config.sub config.guess acconfig.h aclocal.m4 mkinstalldirs \
Sam Hocevar's avatar
 
Sam Hocevar committed
331
			tmp/vlc/
Sam Hocevar's avatar
 
Sam Hocevar committed
332
	# Copy Debian control files
Sam Hocevar's avatar
 
Sam Hocevar committed
333
	for file in debian/*dirs debian/*docs debian/*menu debian/*desktop \
Sam Hocevar's avatar
 
Sam Hocevar committed
334
		debian/*copyright ; do cp $$file tmp/vlc/debian ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
335
	for file in control changelog rules ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
336
		cp debian/$$file tmp/vlc/debian/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
337 338 339
	# Copy ipkg control files
	for file in control rules ; do \
		cp ipkg/$$file tmp/vlc/ipkg/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
340 341
	# Copy fonts and icons
	for file in share/*png share/*xpm share/*psf ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
342
		cp $$file tmp/vlc/share ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
343
	for file in vlc_beos.rsrc vlc.icns gvlc_win32.ico vlc_win32_rc.rc ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
344
			cp share/$$file tmp/vlc/share/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
345 346

snapshot: snapshot-common
Sam Hocevar's avatar
 
Sam Hocevar committed
347
	# Build archives
Sam Hocevar's avatar
 
Sam Hocevar committed
348
	F=vlc-${VLC_QUICKVERSION}; \
Sam Hocevar's avatar
 
Sam Hocevar committed
349 350 351 352 353
	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
354 355 356

snapshot-nocss: snapshot-common
	# Remove libdvdcss
Sam Hocevar's avatar
 
Sam Hocevar committed
357 358
	rm -Rf tmp/vlc/extras/libdvdcss
	rm -f tmp/vlc/*.libdvdcss
Sam Hocevar's avatar
 
Sam Hocevar committed
359
	# Fix debian information
Sam Hocevar's avatar
 
Sam Hocevar committed
360 361
	rm -f tmp/vlc/debian/libdvdcss*
	rm -f tmp/vlc/debian/control
Sam Hocevar's avatar
 
Sam Hocevar committed
362 363
	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
364 365
		> tmp/vlc/debian/control
	rm -f tmp/vlc/debian/rules
Sam Hocevar's avatar
 
Sam Hocevar committed
366 367
	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
368 369 370
		> tmp/vlc/debian/rules
	chmod +x tmp/vlc/debian/rules
	# Build css-disabled archives
Sam Hocevar's avatar
 
Sam Hocevar committed
371
	F=vlc-${VLC_QUICKVERSION}; G=vlc-${VLC_QUICKVERSION}-nocss; \
Sam Hocevar's avatar
 
Sam Hocevar committed
372 373 374 375 376
	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
377

Sam Hocevar's avatar
 
Sam Hocevar committed
378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395
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
	cp vlc.exe plugins/directx.so plugins/gtk.so plugins/sdl.so tmp/ 
	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
396
			do cp ../win32-libs/$$file tmp/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
397 398 399 400 401 402 403 404 405 406
	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
407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430
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 )
	mv tmp/vlc-${VLC_QUICKVERSION}-beos.zip .
	# Clean up
	rm -Rf tmp

Sam Hocevar's avatar
 
Sam Hocevar committed
431 432
libdvdcss-snapshot: snapshot-common
	# Remove vlc sources and icons, doc, debian directory...
Sam Hocevar's avatar
 
Sam Hocevar committed
433
	rm -Rf tmp/vlc/src tmp/vlc/share tmp/vlc/plugins tmp/vlc/doc
434
	rm -Rf tmp/vlc/extras/GNUgetopt tmp/vlc/extras/MacOSX
Sam Hocevar's avatar
 
Sam Hocevar committed
435
	rm -Rf tmp/vlc/debian
Sam Hocevar's avatar
 
Sam Hocevar committed
436
	rm -Rf tmp/vlc/ipkg
Sam Hocevar's avatar
 
Sam Hocevar committed
437
	# Remove useless headers
Sam Hocevar's avatar
 
Sam Hocevar committed
438
	rm -f tmp/vlc/include/*
Sam Hocevar's avatar
 
Sam Hocevar committed
439
	for file in defs.h.in config.h.in common.h int_types.h ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
440
		do cp include/$$file tmp/vlc/include/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
441
	# Remove misc files (??? - maybe not really needed)
Sam Hocevar's avatar
 
Sam Hocevar committed
442 443 444
	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
445
	mv tmp/vlc/ChangeLog.libdvdcss tmp/vlc/ChangeLog
Sam Hocevar's avatar
 
Sam Hocevar committed
446
	# Fix Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
447
	rm -f tmp/vlc/Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
448
	sed -e 's#^install:#install-unused:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
449
		-e 's#^uninstall:#uninstall-unused:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
450 451 452
		-e 's#^clean:#clean-unused:#' \
		-e 's#^all:.*#all: libdvdcss#' \
		-e 's#^libdvdcss-install:#install:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
453
		-e 's#^libdvdcss-uninstall:#uninstall:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
454
		-e 's#^libdvdcss-clean:#clean:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
455 456
		< Makefile > tmp/vlc/Makefile
	# Build archives
Sam Hocevar's avatar
 
Sam Hocevar committed
457
	F=libdvdcss-${LIBDVDCSS_QUICKVERSION}; \
Sam Hocevar's avatar
 
Sam Hocevar committed
458 459 460 461 462
	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
463

Sam Hocevar's avatar
 
Sam Hocevar committed
464 465
deb:
	dpkg-buildpackage -rfakeroot -us -uc
Sam Hocevar's avatar
 
Sam Hocevar committed
466

Sam Hocevar's avatar
 
Sam Hocevar committed
467 468 469 470 471
#
# 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
472

Sam Hocevar's avatar
 
Sam Hocevar committed
473
.PHONY: vlc.app
474
vlc.app: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
475
ifneq (,$(findstring darwin,$(SYS)))
Sam Hocevar's avatar
 
Sam Hocevar committed
476
	rm -Rf vlc.app
477 478
	cd extras/MacOSX ; pbxbuild | grep -v '^ ' | grep -v '^\t'
	cp -r extras/MacOSX/build/vlc.bundle ./vlc.app
479 480
	$(INSTALL) -d vlc.app/Contents/MacOS/share
	$(INSTALL) -d vlc.app/Contents/MacOS/plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
481
	$(INSTALL) vlc vlc.app/Contents/MacOS/
Sam Hocevar's avatar
 
Sam Hocevar committed
482
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
483
	$(INSTALL) $(PLUGINS:%=plugins/%.so) vlc.app/Contents/MacOS/plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
484
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
485 486 487 488 489 490 491 492
	$(INSTALL) -m 644 share/*.psf vlc.app/Contents/MacOS/share
endif

FORCE:

#
# Generic rules (see below)
#
Sam Hocevar's avatar
 
Sam Hocevar committed
493
$(C_DEP): %.d: FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
494 495
	@$(MAKE) -s --no-print-directory -f Makefile.dep $@

Sam Hocevar's avatar
 
Sam Hocevar committed
496
$(CPP_DEP): %.dpp: FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
497 498
	@$(MAKE) -s --no-print-directory -f Makefile.dep $@

Sam Hocevar's avatar
 
Sam Hocevar committed
499
$(H_OBJ): Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
500
	rm -f $@ && cp $@.in $@
Sam Hocevar's avatar
 
Sam Hocevar committed
501
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
502
	for i in $(BUILTINS) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
503 504 505
		echo "int module_"$$i"_InitModule( module_t* );" >> $@ ; \
		echo "int module_"$$i"_ActivateModule( module_t* );" >> $@ ; \
		echo "int module_"$$i"_DeactivateModule( module_t* );" >> $@ ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
506
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
507 508
	echo "" >> $@ ;
	printf "#define ALLOCATE_ALL_BUILTINS() do { " >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
509
	for i in $(BUILTINS) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
510
		printf "ALLOCATE_BUILTIN("$$i"); " >> $@ ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
511
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
512 513
	echo "} while( 0 );" >> $@ ;
	echo "" >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
514
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
515

Sam Hocevar's avatar
 
Sam Hocevar committed
516
$(C_OBJ): %.o: Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
517 518 519 520
$(C_OBJ): %.o: .dep/%.d
$(C_OBJ): %.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

Sam Hocevar's avatar
 
Sam Hocevar committed
521
$(CPP_OBJ): %.o: Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
522 523 524 525
$(CPP_OBJ): %.o: .dep/%.dpp
$(CPP_OBJ): %.o: %.cpp
	$(CC) $(CFLAGS) -c -o $@ $<

Gildas Bazin's avatar
 
Gildas Bazin committed
526 527 528 529 530 531
$(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
532 533 534
#
# Main application target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
535
vlc: Makefile.opts Makefile.dep Makefile $(H_OBJ) $(VLC_OBJ) $(BUILTIN_OBJ)
Sam Hocevar's avatar
 
Sam Hocevar committed
536
	$(CC) $(CFLAGS) -o $@ $(VLC_OBJ) $(BUILTIN_OBJ) $(LCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
537 538 539 540 541 542 543 544
ifeq ($(SYS),beos)
	xres -o $@ ./share/vlc_beos.rsrc
	mimeset -f $@
endif

#
# Plugins target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
545 546
plugins: Makefile.modules Makefile.opts Makefile.dep Makefile $(PLUGIN_OBJ)
$(PLUGIN_OBJ): FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
547
	@cd $(shell echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.* \([^/]*/\)'$(@:plugins/%.so=%)' .*@plugins/\1@' -e 's@^ .*@@') && $(MAKE) $(@:plugins/%=../%)
Sam Hocevar's avatar
 
Sam Hocevar committed
548 549 550 551

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

Sam Hocevar's avatar
 
Sam Hocevar committed
556 557 558
#
# libdvdcss target
#
559
libdvdcss: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
560
	@cd extras/libdvdcss && $(MAKE)
Stéphane Borel's avatar
Stéphane Borel committed
561 562 563 564 565

#
# libdvdread target
#
libdvdread: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
566 567 568 569 570 571 572
	@cd extras/libdvdread && $(MAKE)

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