All pastes #930384 Raw Edit

dlangr

public text v1 · immutable
·published 2008-03-06 15:38 UTC
rendered paste body
#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# This is the debhelper compatibility version to use.
USE_BRISTUFF=1
export HOTPLUG_FIRMWARE=1

-include /usr/share/dpatch/dpatch.make

ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -g
endif

## MODULE-ASSISTANT STUFF
# prefix of the target package name
PREFIX:=zaptel
SKPG:=$(PREFIX)-source
PACKAGE:=$(PREFIX)-modules
# modifieable for experiments or debugging m-a MA_DIR ?= /usr/share/modass # load generic variable handling -include $(MA_DIR)/include/generic.make # load default rules -include $(MA_DIR)/include/common-rules.make

DEBVERSION:=$(shell head -n 1 debian/changelog \
		    | sed -e 's/^[^(]*(\([^)]*\)).*/\1/') UPVERSION:=$(shell echo $(DEBVERSION) | sed -e 's/^.*://' -e 's/-[0-9.]*$$//' -e 's/~dfsg$$//')

UPFILENAME := zaptel_$(UPVERSION).orig.tar.gz FILENAME := zaptel_$(UPVERSION)~dfsg.orig.tar.gz
URL := http://ftp2.digium.com/pub/zaptel/releases/zaptel-$(UPVERSION).tar.gz

# If the makefile was properly-writen, there was a good separation # between kernel and userspace. As things stand now I'd like to work # around problems with bilding stuff with HOSTCC by simply providing # the generated headers as part of the source:
GENERATED_SOURCES := version.h radfw.h tor2fw.h

EXTRA_MODS=ds1x1f opvxa1200

ifneq (,$(filter-out powerpc m68k armeb mips,$(shell dpkg-architecture -qDEB_HOST_ARCH))) EXTRA_MODS += wcopenpci endif

BRISTUFF_MODULES=cwain qozap zaphfc ztgsm MOD_EXAMPLES_DIR:=modexamples ifeq (1,$(USE_BRISTUFF))
  BRISTUFF_EXAMPLES:=$(MOD_EXAMPLES_DIR)/*
  # bristuff modules that are copied from a subdirectory to the current
  # directory.
  GENERATED_SOURCES+=$(BRISTUFF_MODULES:%=%.c) $(BRISTUFF_MODULES:%=%.h)
  EXTRA_MODS+=$(BRISTUFF_MODULES)
  EXTRA_SUBDIRS += vzaphfc
endif

ifeq ($(ECHO_CAN_NAME),OSLEC)
  EXTRA_SUBDIRS += oslec
endif

MOD_ARGS=MODULES_EXTRA="$(EXTRA_MODS)" SUBDIRS_EXTRA="$(EXTRA_SUBDIRS)"

kdist_clean: clean-unpatched

kdist_config: prep-deb-files

binary-modules: prep-deb-files
	dh_testdir
	dh_testroot
	dh_clean -k
	cp -a $(CURDIR)/debian/generated/* .
	./configure
	make $(MOD_ARGS) modules KERNEL_SOURCES=$(KSRC) MODVERSIONS=detect KERNEL=linux-$(KVERS) 
	make $(MOD_ARGS) install-modules KERNELRELEASE=$(KVERS) DESTDIR=$(CURDIR)/debian/$(PKGNAME)
ifeq (2.6,$(shell echo $(KVERS) | cut -d. -f1-2))
	# The 2.6 modules are way too big. This is only in kernel 2.6
	find debian/$(PKGNAME)/lib/modules -name '*.ko' |xargs strip -g
	$(RM) -f debian/$(PKGNAME)/lib/modules/$(KVERS)/modules.*
endif
	dh_installmodules
	dh_installdebconf
	dh_installchangelogs
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_gencontrol -- -v$(VERSION)
	dh_md5sums
	dh_builddeb --destdir=$(DEB_DESTDIR)

## END OF M-A SECTION

tonezones.txt: zonedata.c
	echo >$@ "# A list of tonezones supported by this copy of zaptel and libtonezones:"
	grep '[[:space:]]\+{[[:space:]]\+[[:digit:]]\+,' zonedata.c \
	| awk -F\" '{ print $$2"\t"$$4 }' \
	>>$@

# A workaround for version incompatibility of asciidoc to fix Sarge build. 
# This is fixed properly upstream svn, but adding an autoconf patch is # just as much work. Remove this on Zaptel 1.4.6.
debian/fake/asciidoc:
	mkdir -p $(@D)
	echo '#!/bin/sh' >$@
	echo 'exec /usr/bin/asciidoc -b xhtml "$$@"' >>$@
	chmod a+x $@

ASCIIDOC_6_TEST		= asciidoc --version 2>&1 | grep -q 'asciidoc 6'
ASCIIDOC_SET_PATH	= if $(ASCIIDOC_6_TEST); then \
			    PATH=$(CURDIR)/debian/fake:$$PATH; export PATH; \
			  fi

build: build-stamp
build-stamp: patch-stamp tonezones.txt
	dh_testdir
	
	./configure
	$(MAKE) $(GENERATED_SOURCES)
	$(ASCIIDOC_SET_PATH) ; \
	$(MAKE) programs README.html xpp/README.Astribank.html
	touch $@

clean: clean-unpatched unpatch
clean-unpatched:
	dh_testdir
	dh_testroot
	rm -f *-stamp
	
	# Add here commands to clean up after the build process.
	rm -rf $(MOD_EXAMPLES_DIR)
	rm -f tonezones.txt
	rm -f $(GENERATED_SOURCES)
	rm -rf debian/fake
	# * Makefile does not exist when running svn-buildpackage
	#   as the source tree is not there.
	# * menuselect/ does not exist when building the -modules
	#   packages - we only build kernel-space stuff there.
	[ ! -f Makefile ] || [ ! -d menuselect ] || $(MAKE) dist-clean
	#rm -f debian/manpage.links  debian/manpage.refs debian/*.8
	dh_clean

install: install-arch install-indep

install-arch: build-stamp
	dh_testdir
	dh_testroot
	dh_clean -k -a
	dh_installdirs -a
	
	# Add here commands to install the package into debian/tmp
	
	$(MAKE) install-programs DESTDIR=$(CURDIR)/debian/tmp
	$(MAKE) install-libs DESTDIR=$(CURDIR)/debian/tmp
	/sbin/ldconfig -n $(CURDIR)/debian/tmp/usr/lib
	install -D -m 644 tonezone.h $(CURDIR)/debian/tmp/usr/include/zaptel/tonezone.h

	dh_install -a --sourcedir=$(CURDIR)/debian/tmp 

	cp debian/$(PREFIX).lintian \
	  $(CURDIR)/debian/$(PREFIX)/usr/share/lintian/overrides/$(PREFIX)

TARPARDIR=$(CURDIR)/debian/tmp
TARDIR=$(TARPARDIR)/modules/$(PREFIX)
install-indep: build-stamp
	dh_testdir
	dh_testroot
	dh_clean -k -i
	dh_installdirs -i
	
	# driver source code
	mkdir -p $(TARDIR)/debian/generated
	cp Makefile Makefile.kernel26 configure install-sh makeopts.in .version *.c *.h *.rbt $(TARDIR)/
	for dir in build_tools firmware include vzaphfc oct612x oslec \
		wct4xxp wctc4xxp wctdm24xxp wcte12xp xpp; do \
	  if [ -d $$dir ]; then cp -r $$dir $(TARDIR); fi; \
	done
	cp -a $(GENERATED_SOURCES) $(TARDIR)/debian/generated/
	dh_install -i zaptel.h usr/include/zaptel/
	dh_install -pzaptel-firmware xpp/firmwares/*.hex usr/share/zaptel/
	
	# Packaging infrastructure
	cp -r debian/rules debian/changelog debian/copyright\
	  debian/control debian/compat \
	  debian/control.modules.in \
	  $(TARDIR)/debian/
	
	tar cjf debian/$(PREFIX)-source/usr/src/$(PREFIX).tar.bz2 \
	  -C $(TARPARDIR) modules
ifeq (1,$(USE_BRISTUFF))
	set -e; for module in cwain qozap zaphfc ztgsm; do \
		mkdir -p $(MOD_EXAMPLES_DIR)/$$module; \
		cp -a $$module/*.conf* $(MOD_EXAMPLES_DIR)/$$module; \
	done
else
	mkdir -p $(MOD_EXAMPLES_DIR)/bristuff_stub endif
	
# Build architecture-independent files here.
binary-indep: build install-indep
	dh_testdir
	dh_testroot
	
	dh_installdocs -i
	dh_installchangelogs -i ChangeLog
	dh_installexamples -i $(BRISTUFF_EXAMPLES)
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install-arch
	dh_testdir
	dh_testroot
	
	#install -m644 debian/$(PREFIX).modprobe.d debian/$(PREFIX)/etc/modprobe.d/$(PREFIX)
	
	dh_installdocs -a
	
	# should be removed, eventually. Still left for compatibility
	dh_installinit --update-rcd-params="defaults 15 30"
	dh_installexamples -a zaptel.conf.sample \
	  oslec/oslec-ctrl-panel.sh

	
	#dh_installmodules -a
	dh_installchangelogs -a ChangeLog
	dh_link -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a -V
	dh_installdeb -a
	dh_shlibdeps -a -ldebian/libtonezone1/usr/lib
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

print-version:
	@@echo "Debian version:          $(DEBVERSION)"
	@@echo "Upstream version:        $(UPVERSION)"

TARBALL_DIR=../tarballs/zaptel-$(UPVERSION).tmp
get-orig-source:
	@@dh_testdir
	@@[ -d ../tarballs/. ]||mkdir -p ../tarballs
	@@echo Downloading $(UPFILENAME) from $(URL) ...
	@@wget  -N -nv -T10 -t3 --verbose -O ../tarballs/$(UPFILENAME) $(URL)
	@@echo Repacking as DFSG-free...
	@@mkdir -p $(TARBALL_DIR)/
	@@cd $(TARBALL_DIR) ; \
	tar xfz ../$(UPFILENAME)
	@@rm -rf $(TARBALL_DIR)/zaptel-$(UPVERSION)/wct4xxp/OCT*.ima
	@@rm -rf $(TARBALL_DIR)/zaptel-$(UPVERSION)/wctc4xxp/*.bin
	@@rm -rf $(TARBALL_DIR)/zaptel-$(UPVERSION)/xpp/firmwares/*.hex
	@@cd $(TARBALL_DIR) ; \
	tar cfz ../$(FILENAME) *
	@@echo Cleaning up...
	@@$(RM) -rf $(TARBALL_DIR)/
	@@$(RM) -f ../tarballs/$(UPFILENAME)

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure patch unpatch