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

Henri Fallon's avatar
 
Henri Fallon committed
54 55 56
PLUGINS_TARGETS := ac3_adec/ac3_adec \
		ac3_spdif/ac3_spdif \
		alsa/alsa \
Sam Hocevar's avatar
 
Sam Hocevar committed
57
		arts/arts \
58
		beos/beos \
Sam Hocevar's avatar
 
Sam Hocevar committed
59 60 61 62 63 64
		chroma/chroma_i420_rgb \
		chroma/chroma_i420_rgb_mmx \
		chroma/chroma_i420_yuy2 \
		chroma/chroma_i420_yuy2_mmx \
		chroma/chroma_i422_yuy2 \
		chroma/chroma_i422_yuy2_mmx \
Sam Hocevar's avatar
 
Sam Hocevar committed
65 66
		chroma/chroma_i420_ymga \
		chroma/chroma_i420_ymga_mmx \
67 68 69 70 71
		directx/directx \
		dsp/dsp \
		dummy/dummy \
		dummy/null \
		dvd/dvd \
Stéphane Borel's avatar
Stéphane Borel committed
72
		dvdread/dvdread \
73 74
		esd/esd \
		fb/fb \
Sam Hocevar's avatar
 
Sam Hocevar committed
75
		filter/filter_deinterlace \
Sam Hocevar's avatar
 
Sam Hocevar committed
76
		filter/filter_transform \
Sam Hocevar's avatar
 
Sam Hocevar committed
77
		filter/filter_invert \
Sam Hocevar's avatar
 
Sam Hocevar committed
78
		filter/filter_distort \
Sam Hocevar's avatar
 
Sam Hocevar committed
79
		filter/filter_wall \
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
		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
96
		lpcm_adec/lpcm_adec \
97
		macosx/macosx \
Sam Hocevar's avatar
 
Sam Hocevar committed
98
		mad/mad \
Sam Hocevar's avatar
 
Sam Hocevar committed
99 100 101 102
		memcpy/memcpy \
		memcpy/memcpymmx \
		memcpy/memcpymmxext \
		memcpy/memcpy3dn \
103
		mga/mga \
Sam Hocevar's avatar
 
Sam Hocevar committed
104
		mga/xmga \
105 106 107 108 109
		motion/motion \
		motion/motionmmx \
		motion/motionmmxext \
		motion/motion3dnow \
		motion/motionaltivec \
Sam Hocevar's avatar
 
Sam Hocevar committed
110 111 112
		mpeg_system/mpeg_es \
		mpeg_system/mpeg_ps \
		mpeg_system/mpeg_ts \
Henri Fallon's avatar
 
Henri Fallon committed
113 114
		mpeg_adec/mpeg_adec \
		mpeg_vdec/mpeg_vdec \
115 116
		qt/qt \
		sdl/sdl \
Sam Hocevar's avatar
 
Sam Hocevar committed
117
		spudec/spudec \
118 119 120
		text/ncurses \
		text/rc \
		vcd/vcd \
Sam Hocevar's avatar
 
Sam Hocevar committed
121
		win32/win32 \
122
		x11/x11 \
Sam Hocevar's avatar
 
Sam Hocevar committed
123
		x11/xvideo
Sam Hocevar's avatar
 
Sam Hocevar committed
124

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

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
139 140 141 142

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

Sam Hocevar's avatar
 
Sam Hocevar committed
147 148 149 150
ifeq ($(NEED_SYMBOLS),1)
C_OBJ += src/misc/symbols.o
endif

Sam Hocevar's avatar
 
Sam Hocevar committed
151
ifeq ($(SYS),beos)
Sam Hocevar's avatar
 
Sam Hocevar committed
152
CPP_OBJ :=	src/misc/beos_specific.o
Sam Hocevar's avatar
 
Sam Hocevar committed
153 154 155 156 157 158
endif

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

Xavier Marchesini's avatar
 
Xavier Marchesini committed
159
ifneq (,$(findstring mingw32,$(SYS)))
Sam Hocevar's avatar
 
Sam Hocevar committed
160
C_OBJ +=	src/misc/win32_specific.o
Xavier Marchesini's avatar
 
Xavier Marchesini committed
161 162
RESOURCE_OBJ :=	share/vlc_win32_rc.o
endif
Gildas Bazin's avatar
 
Gildas Bazin committed
163

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

Sam Hocevar's avatar
 
Sam Hocevar committed
166 167 168
#
# Generated header
#
Sam Hocevar's avatar
 
Sam Hocevar committed
169
H_OBJ :=	src/misc/modules_builtin.h
Sam Hocevar's avatar
 
Sam Hocevar committed
170

Sam Hocevar's avatar
 
Sam Hocevar committed
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
#
# Included headers which don't get noticed by Makefile.dep
#
H_DEP :=	videolan/vlc.h \
		defs.h \
		config.h \
		int_types.h \
		modules_inner.h \
		common.h \
		beos_specific.h \
		darwin_specific.h \
		win32_specific.h \
		intf_msg.h \
		threads.h \
		mtime.h \
		modules.h \
		main.h

Sam Hocevar's avatar
 
Sam Hocevar committed
189 190 191
#
# Other lists of files
#
Sam Hocevar's avatar
 
Sam Hocevar committed
192 193 194 195 196 197
C_DEP := $(C_OBJ:%.o=.dep/%.d)
CPP_DEP := $(CPP_OBJ:%.o=.dep/%.dpp)

#
# Translate plugin names
#
Sam Hocevar's avatar
 
Sam Hocevar committed
198
ifneq (,$(PLUGINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
199
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
200 201
endif
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
202
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
203
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
204

Sam Hocevar's avatar
 
Sam Hocevar committed
205 206 207
#
# Misc variables
#
Sam Hocevar's avatar
 
Sam Hocevar committed
208 209
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
210 211


Sam Hocevar's avatar
 
Sam Hocevar committed
212 213 214 215 216 217 218 219 220 221
# All symbols must be exported
export

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

#
# Virtual targets
#
Sam Hocevar's avatar
 
Sam Hocevar committed
222
all: Makefile.opts vlc ${ALIASES} vlc.app plugins po
223 224

Makefile.opts:
Sam Hocevar's avatar
 
Sam Hocevar committed
225 226 227 228 229
	@echo "**** No configuration found, please run ./configure"
	@exit 1
#	./configure
#	$(MAKE) $(MAKECMDGOALS)
#	exit	
Sam Hocevar's avatar
 
Sam Hocevar committed
230 231 232 233 234

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

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

Sam Hocevar's avatar
 
Sam Hocevar committed
255 256 257
po-clean:
	-cd po && $(MAKE) clean

Stéphane Borel's avatar
Stéphane Borel committed
258 259 260
libdvdread-clean:
	-cd extras/libdvdread && $(MAKE) clean

Sam Hocevar's avatar
 
Sam Hocevar committed
261
plugins-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
262
	for dir in $(PLUGINS_DIR) ; do \
Sam Hocevar's avatar
 
Sam Hocevar committed
263 264 265
		( cd plugins/$${dir} \
			&& $(MAKE) -f ../../Makefile.modules clean ) ; done
	rm -f plugins/*/*.o plugins/*/*.lo plugins/*/*.moc plugins/*/*.bak
Sam Hocevar's avatar
 
Sam Hocevar committed
266 267

vlc-clean:
Sam Hocevar's avatar
 
Sam Hocevar committed
268
	rm -f $(C_OBJ) $(CPP_OBJ)
Sam Hocevar's avatar
 
Sam Hocevar committed
269
	rm -f vlc gnome-vlc gvlc kvlc qvlc vlc.exe
Sam Hocevar's avatar
 
Sam Hocevar committed
270
	rm -Rf vlc.app
Sam Hocevar's avatar
 
Sam Hocevar committed
271 272

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

Sam Hocevar's avatar
 
Sam Hocevar committed
283 284 285
#
# Install/uninstall rules
#
Sam Hocevar's avatar
 
Sam Hocevar committed
286
install: libdvdcss-install vlc-install plugins-install po-install
Sam Hocevar's avatar
 
Sam Hocevar committed
287

Sam Hocevar's avatar
 
Sam Hocevar committed
288
uninstall: libdvdcss-uninstall vlc-uninstall plugins-uninstall po-uninstall
Sam Hocevar's avatar
 
Sam Hocevar committed
289

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

Sam Hocevar's avatar
 
Sam Hocevar committed
316 317 318
plugins-uninstall:
	rm -f $(DESTDIR)$(libdir)/videolan/vlc/*.so

Sam Hocevar's avatar
 
Sam Hocevar committed
319
libdvdcss-install:
Sam Hocevar's avatar
 
Sam Hocevar committed
320
	-cd extras/libdvdcss && $(MAKE) install
Sam Hocevar's avatar
 
Sam Hocevar committed
321

Sam Hocevar's avatar
 
Sam Hocevar committed
322
libdvdcss-uninstall:
Sam Hocevar's avatar
 
Sam Hocevar committed
323
	-cd extras/libdvdcss && $(MAKE) uninstall
Sam Hocevar's avatar
 
Sam Hocevar committed
324

Sam Hocevar's avatar
 
Sam Hocevar committed
325 326 327 328 329 330
po-install:
	-cd po && $(MAKE) install

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

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

snapshot: snapshot-common
Sam Hocevar's avatar
 
Sam Hocevar committed
384
	# Build archives
Sam Hocevar's avatar
 
Sam Hocevar committed
385
	F=vlc-${VLC_QUICKVERSION}; \
Sam Hocevar's avatar
 
Sam Hocevar committed
386 387 388 389 390
	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
391 392 393

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

Sam Hocevar's avatar
 
Sam Hocevar committed
415 416 417 418 419 420 421 422 423 424 425 426 427
package-win32:
	# XXX: this rule is probably only useful to you if you have exactly
	# the same setup as me. Contact sam@zoy.org if you need to use it.
	#
	# Check that tmp isn't in the way
	@if test -e tmp; then \
		echo "Error: please remove ./tmp, it is in the way"; false; \
	else \
		echo "OK."; mkdir tmp; \
	fi
	# Create installation script
	sed -e 's#@VERSION@#'${VLC_QUICKVERSION}'#' < install-win32 > tmp/nsi
	# Copy relevant files
Sam Hocevar's avatar
 
Sam Hocevar committed
428
	cp vlc.exe $(PLUGINS:%=plugins/%.so) tmp/ 
Sam Hocevar's avatar
 
Sam Hocevar committed
429 430 431 432
	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
433
			do cp ${DLL_PATH}/$$file tmp/ ; done
Sam Hocevar's avatar
 
Sam Hocevar committed
434 435 436 437 438 439 440 441 442 443
	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
444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463
package-beos:
	# Check that tmp isn't in the way
	@if test -e tmp; then \
		echo "Error: please remove ./tmp, it is in the way"; false; \
	else \
		echo "OK."; mkdir tmp; \
	fi
	
	# Create dir
	mkdir -p tmp/vlc/share
	# Copy relevant files
	cp vlc tmp/vlc/
	cp AUTHORS COPYING ChangeLog ChangeLog.libdvdcss \
		README README.libdvdcss FAQ TODO tmp/vlc/
	for file in default8x16.psf default8x9.psf ; \
		do cp share/$$file tmp/vlc/share/ ; done
	# Create package 
	mv tmp/vlc tmp/vlc-${VLC_QUICKVERSION}
	(cd tmp ; find vlc-${VLC_QUICKVERSION} | \
	zip -9 -@ vlc-${VLC_QUICKVERSION}-beos.zip )
Sam Hocevar's avatar
 
Sam Hocevar committed
464
	mv tmp/vlc-${VLC_QUICKVERSION}-BeOS-x86.zip .
Sam Hocevar's avatar
 
Sam Hocevar committed
465 466 467
	# Clean up
	rm -Rf tmp

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

Sam Hocevar's avatar
 
Sam Hocevar committed
501 502
deb:
	dpkg-buildpackage -rfakeroot -us -uc
Sam Hocevar's avatar
 
Sam Hocevar committed
503

Sam Hocevar's avatar
 
Sam Hocevar committed
504 505 506 507 508
#
# 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
509

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

FORCE:

#
# Generic rules (see below)
#
Sam Hocevar's avatar
 
Sam Hocevar committed
530
$(H_OBJ): Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
531 532
#	@echo "regenerating $@"
	@rm -f $@ && cp $@.in $@
Sam Hocevar's avatar
 
Sam Hocevar committed
533
ifneq (,$(BUILTINS))
Sam Hocevar's avatar
 
Sam Hocevar committed
534 535 536 537
	@for i in $(BUILTINS) ; do \
		echo "int InitModule__MODULE_"$$i"( module_t* );" >>$@; \
		echo "int ActivateModule__MODULE_"$$i"( module_t* );" >>$@; \
		echo "int DeactivateModule__MODULE_"$$i"( module_t* );" >>$@; \
Sam Hocevar's avatar
 
Sam Hocevar committed
538
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
539 540 541 542 543 544 545 546
	@echo "" >> $@ ;
endif
	@echo "#define ALLOCATE_ALL_BUILTINS() \\" >> $@ ;
	@echo "    do \\" >> $@ ;
	@echo "    { \\" >> $@ ;
ifneq (,$(BUILTINS))
	@for i in $(BUILTINS) ; do \
		echo "        ALLOCATE_BUILTIN("$$i"); \\" >> $@ ; \
Sam Hocevar's avatar
 
Sam Hocevar committed
547
	done
Sam Hocevar's avatar
 
Sam Hocevar committed
548
endif
Sam Hocevar's avatar
 
Sam Hocevar committed
549 550
	@echo "    } while( 0 );" >> $@ ;
	@echo "" >> $@ ;
Sam Hocevar's avatar
 
Sam Hocevar committed
551

Sam Hocevar's avatar
 
Sam Hocevar committed
552 553 554 555 556 557
$(C_DEP): %.d: FORCE
	@$(MAKE) -s --no-print-directory -f Makefile.dep $@

$(CPP_DEP): %.dpp: FORCE
	@$(MAKE) -s --no-print-directory -f Makefile.dep $@

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

Sam Hocevar's avatar
 
Sam Hocevar committed
564
$(CPP_OBJ): %.o: Makefile.opts Makefile.dep Makefile
Sam Hocevar's avatar
 
Sam Hocevar committed
565
$(CPP_OBJ): %.o: $(H_OBJ) $(H_DEP:%=include/%)
Sam Hocevar's avatar
 
Sam Hocevar committed
566 567
$(CPP_OBJ): %.o: .dep/%.dpp
$(CPP_OBJ): %.o: %.cpp
Sam Hocevar's avatar
 
Sam Hocevar committed
568
	$(CC) $(CFLAGS) $(CFLAGS_VLC) -c -o $@ $<
Sam Hocevar's avatar
 
Sam Hocevar committed
569

Gildas Bazin's avatar
 
Gildas Bazin committed
570 571 572 573 574 575
$(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
576 577 578
#
# Main application target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
579 580
vlc: Makefile.opts Makefile.dep Makefile $(VLC_OBJ) $(BUILTIN_OBJ)
	$(CC) $(CFLAGS) -o $@ $(VLC_OBJ) $(BUILTIN_OBJ) $(LDFLAGS)
Sam Hocevar's avatar
 
Sam Hocevar committed
581 582 583 584 585 586 587 588
ifeq ($(SYS),beos)
	xres -o $@ ./share/vlc_beos.rsrc
	mimeset -f $@
endif

#
# Plugins target
#
Sam Hocevar's avatar
 
Sam Hocevar committed
589 590
plugins: Makefile.modules Makefile.opts Makefile.dep Makefile $(PLUGIN_OBJ)
$(PLUGIN_OBJ): FORCE
Sam Hocevar's avatar
 
Sam Hocevar committed
591
	@cd $(shell echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.* \([^/]*/\)'$(@:plugins/%.so=%)' .*@plugins/\1@' -e 's@^ .*@@') && $(MAKE) -f ../../Makefile.modules $(@:plugins/%=../%)
Sam Hocevar's avatar
 
Sam Hocevar committed
592 593 594 595

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

Sam Hocevar's avatar
 
Sam Hocevar committed
600 601 602
#
# libdvdcss target
#
603
libdvdcss: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
604
	@cd extras/libdvdcss && $(MAKE)
Stéphane Borel's avatar
Stéphane Borel committed
605 606 607 608 609

#
# libdvdread target
#
libdvdread: Makefile.opts
Sam Hocevar's avatar
 
Sam Hocevar committed
610 611 612 613 614 615 616
	@cd extras/libdvdread && $(MAKE)

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