Makefile 14.4 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 21 22 23 24 25 26 27 28 29 30 31 32 33 34
		beos \
		darwin \
		directx \
		dsp \
		dummy \
		dvd \
		esd \
		fb \
		ggi \
		glide \
		gtk \
		downmix \
		idct \
		imdct \
		kde \
Henri Fallon's avatar
 
Henri Fallon committed
35
		lpcm_adec \
36 37 38 39
		macosx \
		mga \
		motion \
		mpeg \
Henri Fallon's avatar
 
Henri Fallon committed
40 41
		mpeg_adec \
		mpeg_vdec \
42 43
		qt \
		sdl \
Henri Fallon's avatar
 
Henri Fallon committed
44
		spu_dec \
45 46 47 48
		text \
		vcd \
		x11 \
		yuv
Sam Hocevar's avatar
 
Sam Hocevar committed
49

Henri Fallon's avatar
 
Henri Fallon committed
50 51 52
PLUGINS_TARGETS := ac3_adec/ac3_adec \
		ac3_spdif/ac3_spdif \
		alsa/alsa \
Sam Hocevar's avatar
 
Sam Hocevar committed
53
 		arts/arts \
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
		beos/beos \
		darwin/darwin \
		directx/directx \
		dsp/dsp \
		dummy/dummy \
		dummy/null \
		dvd/dvd \
		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
79
		lpcm_adec/lpcm_adec \
80 81 82 83 84 85 86 87
		macosx/macosx \
		macosx/macosx_qt \
		mga/mga \
		motion/motion \
		motion/motionmmx \
		motion/motionmmxext \
		motion/motion3dnow \
		motion/motionaltivec \
Henri Fallon's avatar
 
Henri Fallon committed
88 89
		mpeg_adec/mpeg_adec \
		mpeg_vdec/mpeg_vdec \
90 91 92 93 94
		mpeg/es \
		mpeg/ps \
		mpeg/ts \
		qt/qt \
		sdl/sdl \
Henri Fallon's avatar
 
Henri Fallon committed
95
		spu_dec/spu_dec \
96 97 98 99 100 101 102
		text/ncurses \
		text/rc \
		vcd/vcd \
		x11/x11 \
		x11/xvideo \
		yuv/yuv \
		yuv/yuvmmx
Sam Hocevar's avatar
 
Sam Hocevar committed
103 104 105
#
# C Objects
# 
Sam Hocevar's avatar
 
Sam Hocevar committed
106 107 108 109
INTERFACE := main interface intf_msg intf_playlist intf_channels
INPUT := input input_ext-dec input_ext-intf input_dec input_programs input_netlist input_clock mpeg_system
VIDEO_OUTPUT := video_output video_text video_spu video_yuv
AUDIO_OUTPUT := audio_output aout_ext-dec aout_u8 aout_s8 aout_u16 aout_s16 aout_spdif
110
MISC := mtime tests modules netutils iso_lang
Sam Hocevar's avatar
 
Sam Hocevar committed
111 112 113 114 115 116

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
117 118 119 120

#
# Misc Objects
# 
Sam Hocevar's avatar
 
Sam Hocevar committed
121
ifeq ($(NEED_GETOPT),1)
Sam Hocevar's avatar
 
Sam Hocevar committed
122 123 124 125
C_OBJ += extras/GNUgetopt/getopt.o extras/GNUgetopt/getopt1.o 
endif

ifeq ($(SYS),beos)
Sam Hocevar's avatar
 
Sam Hocevar committed
126
CPP_OBJ :=	src/misc/beos_specific.o
Sam Hocevar's avatar
 
Sam Hocevar committed
127 128 129 130 131 132
endif

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

Xavier Marchesini's avatar
 
Xavier Marchesini committed
133
ifneq (,$(findstring mingw32,$(SYS)))
Sam Hocevar's avatar
 
Sam Hocevar committed
134
C_OBJ +=	src/misc/win32_specific.o
Xavier Marchesini's avatar
 
Xavier Marchesini committed
135 136
RESOURCE_OBJ :=	share/vlc_win32_rc.o
endif
Gildas Bazin's avatar
 
Gildas Bazin committed
137

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

Sam Hocevar's avatar
 
Sam Hocevar committed
140 141 142
#
# Generated header
#
Sam Hocevar's avatar
 
Sam Hocevar committed
143
H_OBJ :=	src/misc/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
144 145 146 147

#
# Other lists of files
#
Sam Hocevar's avatar
 
Sam Hocevar committed
148 149 150 151 152 153
C_DEP := $(C_OBJ:%.o=.dep/%.d)
CPP_DEP := $(CPP_OBJ:%.o=.dep/%.dpp)

#
# Translate plugin names
#
Sam Hocevar's avatar
 
Sam Hocevar committed
154
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
155
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
156 157
endif
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
158
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
159
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
160

Sam Hocevar's avatar
 
Sam Hocevar committed
161 162 163
#
# Misc variables
#
Sam Hocevar's avatar
 
Sam Hocevar committed
164 165
VLC_QUICKVERSION := $(shell grep '^ *VLC_VERSION=[0-9]' configure.in | head -1 | cut -f2 -d=)
LIBDVDCSS_QUICKVERSION := $(shell grep '^ *LIBDVDCSS_VERSION=[0-9]' configure.in | head -1 | cut -f2 -d=)
Sam Hocevar's avatar
 
Sam Hocevar committed
166 167


Sam Hocevar's avatar
 
Sam Hocevar committed
168 169 170 171 172 173 174 175 176 177
# All symbols must be exported
export

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

#
# Virtual targets
#
Sam Hocevar's avatar
 
Sam Hocevar committed
178
all: Makefile.opts vlc ${ALIASES} vlc.app
179 180 181 182

Makefile.opts:
	@echo "**** No configuration found, running ./configure..."
	./configure
Sam Hocevar's avatar
 
Sam Hocevar committed
183 184
	$(MAKE) $(MAKECMDGOALS)
	exit
Sam Hocevar's avatar
 
Sam Hocevar committed
185 186 187 188 189 190

show:
	@echo CC: $(CC)
	@echo CFLAGS: $(CFLAGS)
	@echo DCFLAGS: $(DCFLAGS)
	@echo LCFLAGS: $(LCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
191 192
	@echo PCFLAGS: $(PCFLAGS)
	@echo PLCFLAGS: $(PLCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
193 194 195 196 197 198 199 200
	@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
201 202
clean: libdvdcss-clean plugins-clean vlc-clean
	rm -f src/*/*.o extras/*/*.o
Sam Hocevar's avatar
 
Sam Hocevar committed
203 204
	rm -f lib/*.so* lib/*.a
	rm -f plugins/*.so plugins/*.a
205
	rm -rf extras/MacOSX/build
Sam Hocevar's avatar
 
Sam Hocevar committed
206 207

libdvdcss-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
208
	-cd extras/libdvdcss && $(MAKE) clean
Sam Hocevar's avatar
 
Sam Hocevar committed
209 210

plugins-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
211 212
	for dir in $(PLUGINS_DIR) ; do \
		( cd plugins/$${dir} && $(MAKE) clean ) ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
213
	rm -f plugins/*/*.o plugins/*/*.moc plugins/*/*.bak
Sam Hocevar's avatar
 
Sam Hocevar committed
214 215

vlc-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
216
	rm -f $(C_OBJ) $(CPP_OBJ)
Sam Hocevar's avatar
 
Sam Hocevar committed
217
	rm -f vlc gnome-vlc gvlc kvlc qvlc vlc.exe
Sam Hocevar's avatar
 
Sam Hocevar committed
218
	rm -Rf vlc.app
Sam Hocevar's avatar
 
Sam Hocevar committed
219 220 221

distclean: clean
	rm -f **/*.o **/*~ *.log
Sam Hocevar's avatar
 
Sam Hocevar committed
222
	rm -f Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
223
	rm -f include/defs.h include/config.h include/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
224
	rm -f src/misc/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
225
	rm -f config*status config*cache config*log
Sam Hocevar's avatar
 
Sam Hocevar committed
226 227 228 229
	rm -f gmon.out core build-stamp
	rm -Rf .dep
	rm -f .gdb_history

Sam Hocevar's avatar
 
Sam Hocevar committed
230 231 232
#
# Install/uninstall rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
233 234
install: libdvdcss-install vlc-install plugins-install

Sam Hocevar's avatar
 
Sam Hocevar committed
235 236
uninstall: libdvdcss-uninstall vlc-uninstall plugins-uninstall

Sam Hocevar's avatar
 
Sam Hocevar committed
237
vlc-install:
Sam Hocevar's avatar
 
Sam Hocevar committed
238 239
	mkdir -p $(DESTDIR)$(bindir)
	$(INSTALL) vlc $(DESTDIR)$(bindir)
Sam Hocevar's avatar
 
Sam Hocevar committed
240 241 242
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
243 244 245 246 247
	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
248
vlc-uninstall:
Sam Hocevar's avatar
 
Sam Hocevar committed
249
	rm -f $(DESTDIR)$(bindir)/vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
250 251 252 253 254 255 256
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
257 258 259
plugins-install:
	mkdir -p $(DESTDIR)$(libdir)/videolan/vlc
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
260
	$(INSTALL) -m 644 $(PLUGINS:%=plugins/%.so) $(DESTDIR)$(libdir)/videolan/vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
261 262
endif

Sam Hocevar's avatar
 
Sam Hocevar committed
263 264 265
plugins-uninstall:
	rm -f $(DESTDIR)$(libdir)/videolan/vlc/*.so

Sam Hocevar's avatar
 
Sam Hocevar committed
266
libdvdcss-install:
Sam Hocevar's avatar
 
Sam Hocevar committed
267
	-cd extras/libdvdcss && $(MAKE) install
Sam Hocevar's avatar
 
Sam Hocevar committed
268

Sam Hocevar's avatar
 
Sam Hocevar committed
269
libdvdcss-uninstall:
Sam Hocevar's avatar
 
Sam Hocevar committed
270
	-cd extras/libdvdcss && $(MAKE) uninstall
Sam Hocevar's avatar
 
Sam Hocevar committed
271

Sam Hocevar's avatar
 
Sam Hocevar committed
272 273 274
#
# Package generation rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
275 276 277 278 279 280 281 282 283 284
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
285
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
286
	rm -Rf tmp/vlc/tmp
Sam Hocevar's avatar
 
Sam Hocevar committed
287
	find debian -mindepth 1 -maxdepth 1 -type d | \
Sam Hocevar's avatar
 
Sam Hocevar committed
288
		while read i ; do rm -Rf tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
289
	# Copy .c .h .in .cpp and .glade files
Sam Hocevar's avatar
 
Sam Hocevar committed
290
	find include src plugins -type f -name '*.[chig]*' | while read i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
291
		do cp $$i tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
292 293
	# Copy plugin Makefiles
	find plugins -type f -name Makefile | while read i ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
294
		do cp $$i tmp/vlc/$$i ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
295
	# Copy extra programs and documentation
Sam Hocevar's avatar
 
Sam Hocevar committed
296 297 298 299 300
	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
301
	# Copy misc files
Sam Hocevar's avatar
 
Sam Hocevar committed
302
	cp FAQ AUTHORS COPYING TODO todo.pl ChangeLog* README* INSTALL* \
Sam Hocevar's avatar
 
Sam Hocevar committed
303
		Makefile Makefile.opts.in Makefile.dep Makefile.modules \
Sam Hocevar's avatar
 
Sam Hocevar committed
304 305
		configure configure.in install-sh install-win32 vlc.spec \
		config.sub config.guess \
Sam Hocevar's avatar
 
Sam Hocevar committed
306
			tmp/vlc/
Sam Hocevar's avatar
 
Sam Hocevar committed
307
	# Copy Debian control files
Sam Hocevar's avatar
 
Sam Hocevar committed
308
	for file in debian/*dirs debian/*docs debian/*menu debian/*desktop \
Sam Hocevar's avatar
 
Sam Hocevar committed
309
		debian/*copyright ; do cp $$file tmp/vlc/debian ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
310
	for file in control changelog rules ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
311
		cp debian/$$file tmp/vlc/debian/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
312 313 314
	# Copy ipkg control files
	for file in control rules ; do \
		cp ipkg/$$file tmp/vlc/ipkg/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
315 316
	# Copy fonts and icons
	for file in share/*png share/*xpm share/*psf ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
317
		cp $$file tmp/vlc/share ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
318
	for file in vlc_beos.rsrc vlc.icns gvlc_win32.ico vlc_win32_rc.rc ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
319
			cp share/$$file tmp/vlc/share/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
320 321

snapshot: snapshot-common
Sam Hocevar's avatar
 
Sam Hocevar committed
322
	# Build archives
Sam Hocevar's avatar
 
Sam Hocevar committed
323
	F=vlc-${VLC_QUICKVERSION}; \
Sam Hocevar's avatar
 
Sam Hocevar committed
324 325 326 327 328
	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
329 330 331

snapshot-nocss: snapshot-common
	# Remove libdvdcss
Sam Hocevar's avatar
 
Sam Hocevar committed
332 333
	rm -Rf tmp/vlc/extras/libdvdcss
	rm -f tmp/vlc/*.libdvdcss
Sam Hocevar's avatar
 
Sam Hocevar committed
334
	# Fix debian information
Sam Hocevar's avatar
 
Sam Hocevar committed
335 336
	rm -f tmp/vlc/debian/libdvdcss*
	rm -f tmp/vlc/debian/control
Sam Hocevar's avatar
 
Sam Hocevar committed
337 338
	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
339 340
		> tmp/vlc/debian/control
	rm -f tmp/vlc/debian/rules
Sam Hocevar's avatar
 
Sam Hocevar committed
341 342
	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
343 344 345
		> tmp/vlc/debian/rules
	chmod +x tmp/vlc/debian/rules
	# Build css-disabled archives
Sam Hocevar's avatar
 
Sam Hocevar committed
346
	F=vlc-${VLC_QUICKVERSION}; G=vlc-${VLC_QUICKVERSION}-nocss; \
Sam Hocevar's avatar
 
Sam Hocevar committed
347 348 349 350 351
	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
352

Sam Hocevar's avatar
 
Sam Hocevar committed
353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370
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
371
			do cp ../win32-libs/$$file tmp/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
372 373 374 375 376 377 378 379 380 381
	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
382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405
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
406 407
libdvdcss-snapshot: snapshot-common
	# Remove vlc sources and icons, doc, debian directory...
Sam Hocevar's avatar
 
Sam Hocevar committed
408
	rm -Rf tmp/vlc/src tmp/vlc/share tmp/vlc/plugins tmp/vlc/doc
409
	rm -Rf tmp/vlc/extras/GNUgetopt tmp/vlc/extras/MacOSX
Sam Hocevar's avatar
 
Sam Hocevar committed
410
	rm -Rf tmp/vlc/debian
Sam Hocevar's avatar
 
Sam Hocevar committed
411
	rm -Rf tmp/vlc/ipkg
Sam Hocevar's avatar
 
Sam Hocevar committed
412
	# Remove useless headers
Sam Hocevar's avatar
 
Sam Hocevar committed
413
	rm -f tmp/vlc/include/*
Sam Hocevar's avatar
 
Sam Hocevar committed
414
	for file in defs.h.in config.h.in common.h int_types.h ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
415
		do cp include/$$file tmp/vlc/include/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
416
	# Remove misc files (??? - maybe not really needed)
Sam Hocevar's avatar
 
Sam Hocevar committed
417 418 419
	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
420
	mv tmp/vlc/ChangeLog.libdvdcss tmp/vlc/ChangeLog
Sam Hocevar's avatar
 
Sam Hocevar committed
421
	# Fix Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
422
	rm -f tmp/vlc/Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
423
	sed -e 's#^install:#install-unused:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
424
		-e 's#^uninstall:#uninstall-unused:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
425 426 427
		-e 's#^clean:#clean-unused:#' \
		-e 's#^all:.*#all: libdvdcss#' \
		-e 's#^libdvdcss-install:#install:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
428
		-e 's#^libdvdcss-uninstall:#uninstall:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
429
		-e 's#^libdvdcss-clean:#clean:#' \
Sam Hocevar's avatar
 
Sam Hocevar committed
430 431
		< Makefile > tmp/vlc/Makefile
	# Build archives
Sam Hocevar's avatar
 
Sam Hocevar committed
432
	F=libdvdcss-${LIBDVDCSS_QUICKVERSION}; \
Sam Hocevar's avatar
 
Sam Hocevar committed
433 434 435 436 437
	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
438

Sam Hocevar's avatar
 
Sam Hocevar committed
439 440
deb:
	dpkg-buildpackage -rfakeroot -us -uc
Sam Hocevar's avatar
 
Sam Hocevar committed
441

Sam Hocevar's avatar
 
Sam Hocevar committed
442 443 444 445 446
#
# 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
447

Sam Hocevar's avatar
 
Sam Hocevar committed
448
.PHONY: vlc.app
449
vlc.app: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
450
ifneq (,$(findstring darwin,$(SYS)))
Sam Hocevar's avatar
 
Sam Hocevar committed
451
	rm -Rf vlc.app
452 453 454 455
	cd extras/MacOSX ; pbxbuild | grep -v '^ ' | grep -v '^\t'
	cp -r extras/MacOSX/build/vlc.bundle ./vlc.app
	$(INSTALL) -d vlc vlc.app/Contents/MacOS/share
	$(INSTALL) -d vlc vlc.app/Contents/MacOS/plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
456
	$(INSTALL) vlc vlc.app/Contents/MacOS/
Sam Hocevar's avatar
 
Sam Hocevar committed
457
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
458
	$(INSTALL) $(PLUGINS:%=plugins/%.so) vlc.app/Contents/MacOS/plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
459
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
460 461 462 463 464 465 466 467
	$(INSTALL) -m 644 share/*.psf vlc.app/Contents/MacOS/share
endif

FORCE:

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
474
$(H_OBJ): Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
475
	rm -f $@ && cp $@.in $@
Sam Hocevar's avatar
 
Sam Hocevar committed
476
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
477
	for i in $(BUILTINS) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
478 479 480
		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
481
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
482 483
	echo "" >> $@ ;
	printf "#define ALLOCATE_ALL_BUILTINS() do { " >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
484
	for i in $(BUILTINS) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
485
		printf "ALLOCATE_BUILTIN("$$i"); " >> $@ ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
486
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
487 488
	echo "} while( 0 );" >> $@ ;
	echo "" >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
489
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
490

Sam Hocevar's avatar
 
Sam Hocevar committed
491
$(C_OBJ): %.o: Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
492 493 494 495
$(C_OBJ): %.o: .dep/%.d
$(C_OBJ): %.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

Sam Hocevar's avatar
 
Sam Hocevar committed
496
$(CPP_OBJ): %.o: Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
497 498 499 500
$(CPP_OBJ): %.o: .dep/%.dpp
$(CPP_OBJ): %.o: %.cpp
	$(CC) $(CFLAGS) -c -o $@ $<

Gildas Bazin's avatar
 
Gildas Bazin committed
501 502 503 504 505 506
$(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
507 508 509
#
# Main application target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
510 511
vlc: Makefile.opts Makefile.dep Makefile $(H_OBJ) $(VLC_OBJ) $(BUILTIN_OBJ) plugins
	$(CC) $(CFLAGS) -o $@ $(VLC_OBJ) $(BUILTIN_OBJ) $(LCFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
512 513 514 515 516 517 518 519
ifeq ($(SYS),beos)
	xres -o $@ ./share/vlc_beos.rsrc
	mimeset -f $@
endif

#
# Plugins target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
520 521
plugins: Makefile.modules Makefile.opts Makefile.dep Makefile $(PLUGIN_OBJ)
$(PLUGIN_OBJ): FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
522
	cd $(shell echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.* \([^/]*/\)'$(@:plugins/%.so=%)' .*@plugins/\1@' -e 's@^ .*@@') && $(MAKE) $(@:plugins/%=../%)
Sam Hocevar's avatar
 
Sam Hocevar committed
523 524 525 526

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

Sam Hocevar's avatar
 
Sam Hocevar committed
531 532 533
#
# libdvdcss target
#
534
libdvdcss: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
535
	cd extras/libdvdcss && $(MAKE)