Makefile 14.2 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
#
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
PLUGINS_DIR :=	alsa \
		beos \
		darwin \
		directx \
		dsp \
		dummy \
		dvd \
		esd \
		fb \
		ggi \
		glide \
		gtk \
		downmix \
		idct \
		imdct \
		kde \
		macosx \
		mga \
		motion \
		mpeg \
		qt \
		sdl \
		text \
		vcd \
		x11 \
		yuv
Sam Hocevar's avatar
 
Sam Hocevar committed
42 43 44 45

#
# All possible plugin objects
#
46 47 48 49 50 51 52 53 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 79 80 81 82 83 84 85 86 87 88 89 90 91
PLUGINS_TARGETS := alsa/alsa \
		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 \
		macosx/macosx \
		macosx/macosx_qt \
		mga/mga \
		motion/motion \
		motion/motionmmx \
		motion/motionmmxext \
		motion/motion3dnow \
		motion/motionaltivec \
		mpeg/es \
		mpeg/ps \
		mpeg/ts \
		qt/qt \
		sdl/sdl \
		text/ncurses \
		text/rc \
		vcd/vcd \
		x11/x11 \
		x11/xvideo \
		yuv/yuv \
		yuv/yuvmmx
Sam Hocevar's avatar
 
Sam Hocevar committed
92 93 94 95

#
# C Objects
# 
Sam Hocevar's avatar
 
Sam Hocevar committed
96 97 98 99 100 101 102 103 104
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
AC3_DECODER := ac3_decoder_thread ac3_decoder ac3_parse ac3_exponent ac3_bit_allocate ac3_mantissa ac3_rematrix ac3_imdct
AC3_SPDIF := ac3_spdif ac3_iec958
LPCM_DECODER := lpcm_decoder_thread
AUDIO_DECODER := audio_decoder adec_generic adec_layer1 adec_layer2 adec_math
SPU_DECODER := spu_decoder
105
VIDEO_DECODER := video_parser vpar_headers vpar_blocks vpar_synchro vpar_pool video_decoder
106
MISC := mtime tests modules netutils iso_lang
Sam Hocevar's avatar
 
Sam Hocevar committed
107 108 109 110 111 112 113 114 115 116 117 118

C_OBJ :=	$(INTERFACE:%=src/interface/%.o) \
		$(INPUT:%=src/input/%.o) \
		$(VIDEO_OUTPUT:%=src/video_output/%.o) \
		$(AUDIO_OUTPUT:%=src/audio_output/%.o) \
		$(AC3_DECODER:%=src/ac3_decoder/%.o) \
		$(AC3_SPDIF:%=src/ac3_spdif/%.o) \
		$(LPCM_DECODER:%=src/lpcm_decoder/%.o) \
		$(AUDIO_DECODER:%=src/audio_decoder/%.o) \
		$(SPU_DECODER:%=src/spu_decoder/%.o) \
		$(VIDEO_DECODER:%=src/video_decoder/%.o) \
		$(MISC:%=src/misc/%.o)
Sam Hocevar's avatar
 
Sam Hocevar committed
119 120 121 122

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

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

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

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

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

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

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
163 164 165
#
# Misc variables
#
Sam Hocevar's avatar
 
Sam Hocevar committed
166 167
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
168 169


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

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

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

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

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

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

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

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

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
237 238
uninstall: libdvdcss-uninstall vlc-uninstall plugins-uninstall

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

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

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

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

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

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

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
417 418
deb:
	dpkg-buildpackage -rfakeroot -us -uc
Sam Hocevar's avatar
 
Sam Hocevar committed
419

Sam Hocevar's avatar
 
Sam Hocevar committed
420 421 422 423 424
#
# 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
425

Sam Hocevar's avatar
 
Sam Hocevar committed
426
.PHONY: vlc.app
427
vlc.app: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
428
ifneq (,$(findstring darwin,$(SYS)))
Sam Hocevar's avatar
 
Sam Hocevar committed
429
	rm -Rf vlc.app
430 431 432 433
	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
434
	$(INSTALL) vlc vlc.app/Contents/MacOS/
Sam Hocevar's avatar
 
Sam Hocevar committed
435
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
436
	$(INSTALL) $(PLUGINS:%=plugins/%.so) vlc.app/Contents/MacOS/plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
437
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
438 439 440 441 442 443 444 445
	$(INSTALL) -m 644 share/*.psf vlc.app/Contents/MacOS/share
endif

FORCE:

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
452
$(H_OBJ): Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
453
	rm -f $@ && cp $@.in $@
Sam Hocevar's avatar
 
Sam Hocevar committed
454
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
455
	for i in $(BUILTINS) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
456 457 458
		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
459
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
460 461
	echo "" >> $@ ;
	printf "#define ALLOCATE_ALL_BUILTINS() do { " >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
462
	for i in $(BUILTINS) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
463
		printf "ALLOCATE_BUILTIN("$$i"); " >> $@ ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
464
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
465 466
	echo "} while( 0 );" >> $@ ;
	echo "" >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
467
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
468

Sam Hocevar's avatar
 
Sam Hocevar committed
469
$(C_OBJ): %.o: Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
470 471 472 473
$(C_OBJ): %.o: .dep/%.d
$(C_OBJ): %.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

Sam Hocevar's avatar
 
Sam Hocevar committed
474
$(CPP_OBJ): %.o: Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
475 476 477 478
$(CPP_OBJ): %.o: .dep/%.dpp
$(CPP_OBJ): %.o: %.cpp
	$(CC) $(CFLAGS) -c -o $@ $<

Gildas Bazin's avatar
 
Gildas Bazin committed
479 480 481 482 483 484
$(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
485 486 487
#
# Main application target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
488 489
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
490 491 492 493 494 495 496 497
ifeq ($(SYS),beos)
	xres -o $@ ./share/vlc_beos.rsrc
	mimeset -f $@
endif

#
# Plugins target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
498 499
plugins: Makefile.modules Makefile.opts Makefile.dep Makefile $(PLUGIN_OBJ)
$(PLUGIN_OBJ): FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
500
	cd $(shell echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.* \([^/]*/\)'$(@:plugins/%.so=%)' .*@plugins/\1@' -e 's@^ .*@@') && $(MAKE) $(@:plugins/%=../%)
Sam Hocevar's avatar
 
Sam Hocevar committed
501 502 503 504

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

Sam Hocevar's avatar
 
Sam Hocevar committed
509 510 511
#
# libdvdcss target
#
512
libdvdcss: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
513
	cd extras/libdvdcss && $(MAKE)