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 136 137
ifneq (,$(findstring mingw32,$(SYS)))
RESOURCE_OBJ :=	share/vlc_win32_rc.o
endif
Gildas Bazin's avatar
 
Gildas Bazin committed
138

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FORCE:

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

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

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

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

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

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

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

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

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