view debian/rules @ 30795:1001c606f94c

Make emulated Win32 critical sections thread safe. Earlier, cs->locked was accessed outside the mutex to get around the problem that default pthread mutexes are not recursive (ie., you cannot do a double-lock from the same thread), causing a thread-safety problem, as both detected by Helgrind and showing up in some multithreaded codecs. The ideal solution here would be to simply use recursive pthread mutexes, but there were concerns about reduced debuggability and possibly portability. Thus, instead, rewrite the critical sections to be a simple lock count (with owner) protected by a regular mutex. Whenever a thread wants to enter the critical section and lock_count is not 0, it sleeps on a special event that tells it when the critical section is available.
author sesse
date Thu, 04 Mar 2010 15:57:08 +0000
parents ba2cb7c23fa2
children
line wrap: on
line source

#!/usr/bin/make -f
# Made with the aid of debmake, by Christoph Lameter,
# based on the sample debian/rules file for GNU hello by Ian Jackson.
#export DH_VERBOSE=1
# This is the debhelper compatability version to use.
export DH_COMPAT=4

package        := mplayer
prefix := $(shell pwd)/debian/$(package)

arch   := $(shell dpkg --print-architecture)

# See http://wiki.debian.org/Teams/Dpkg/DebianRules; #465282  and
# https://wiki.ubuntu.com/DistCompilerFlags
CLEAN_ENV=env -u CFLAGS -u CPPFLAGS -u LDFLAGS -u FFLAGS -u CXXFLAGS

configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.
	$(checkdir)
	# If you plan to install the target .deb on a wide variety of machines,
	# you may want to add the "--enable-runtime-cpudetection" option to
	# the line below, but beware: the resulting binary will run slower
	$(CLEAN_ENV) \
	./configure --prefix=/usr --confdir=/etc/mplayer $(DEB_BUILD_OPTIONS)

	touch configure-stamp

build: configure-stamp build-stamp
build-stamp:
	dh_testdir

	# commands to compile the package.
	$(CLEAN_ENV) \
	${MAKE}

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	# commands to clean up after the build process.
	-$(MAKE) distclean
	rm -f help_mp.h config.h config.mak
	dh_clean

# Build architecture-independent files here.
binary-indep: build
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	# commands to install the package into debian/<packagename>
	$(MAKE) prefix=$(prefix)/usr BINDIR=$(prefix)/usr/bin CONFDIR=$(prefix)/etc/mplayer LIBDIR=$(prefix)/usr/lib DATADIR=$(prefix)/usr/share/mplayer  MANDIR=$(prefix)/usr/share/man  install

	dh_link usr/bin/mplayer usr/bin/gmplayer \
		usr/share/man/man1/mplayer.1.gz usr/share/man/man1/gmplayer.1.gz


	dh_installdebconf
	dh_installdocs -X.svn -Xmplayer.1 DOCS/*
	dh_installexamples etc/example.conf etc/dvb-menu.conf etc/input.conf etc/menu.conf
	dh_installmenu
	dh_installmime
	dh_installinfo
	dh_installchangelogs
	#ChangeLog
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_perl
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb



#binary-arch: checkroot build
#	$(checkdir)
#	-rm -rf debian/tmp
#	install -d debian/tmp
#	cd debian/tmp && install -d `cat ../dirs`


# Must have debmake installed for this to work. Otherwise please copy
# /usr/bin/debstd into the debian directory and change debstd to debian/debstd
#	debstd
#	dpkg-gencontrol -isp
#	chown -R root.root debian/tmp
#	chmod -R go=rX debian/tmp
#	dpkg --build debian/tmp ..

binary: binary-indep binary-arch

.PHONY: binary binary-arch binary-indep clean checkroot