#!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. SHELL = bash # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # This has to be exported to make some magic below work. export DH_OPTIONS full_version := $(shell dpkg-parsechangelog | grep ^Version: | sed -e 's/^.*: //g') tar_version := $(shell echo $(full_version) | sed -e 's/-.*//g') svn_revision := $(shell echo $(full_version) | sed -e 's/.*~svn\([0-9]*\)-[0-9]*/\1/g' -e 's/^$(full_version)$$/HEAD/g') version := $(shell echo $(full_version) | sed -e 's/[~+-].*//g') major := $(shell echo $(version) | sed -e 's/\..*//g') revision := $(shell echo $(full_version) | sed -e 's/^[^+-]*//g') CFLAGS = -Wall -g -pipe -fPIC -I. -I$(CURDIR)/sys -D_GNU_SOURCE \ -D__FreeBSD_version=__FreeBSD_kernel_version \ -I/usr/include/freebsd \ -Werror=implicit-function-declaration ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) # Do not mess with MAKEFLAGS until we transfer control to BSD make (see below) BSD_MAKEFLAGS += -j$(NUMJOBS) endif SOURCE = freebsd-libs #SVN := https://svn0.us-west.freebsd.org/base/release/$(version).0 SVN := https://svn0.us-west.freebsd.org/base/releng/$(version) #SVN := https://svn0.us-west.freebsd.org/base/stable/$(major) #SVN := https://svn0.us-west.freebsd.org/base/head ORIGDIR = $(SOURCE)-$(tar_version) TARNAME = $(SOURCE)_$(tar_version).orig.tar.gz PATH := /usr/lib/freebsd:$(PATH) DESTDIR = $(CURDIR)/debian/tmp CFLAGS += -I$(CURDIR)/debian/local/include PMAKE_COMMON = \ MAKEFLAGS=$(BSD_MAKEFLAGS) \ NO_WERROR=1 NOGCCERROR=1 \ NOSHARED=NO NO_SHARED=NO NO_PROFILE=1 DESTDIR=$(DESTDIR) \ SHLIB_MAJOR=0 WITH_TESTS=yes \ bmake \ $(NULL) PMAKE = \ CFLAGS="$(CFLAGS)" \ $(PMAKE_COMMON) PMAKE_FOREIGN = \ CFLAGS="$(CFLAGS) -D__FREEBSD_GLUE_USE_EMBEDDED_HEADERS" \ $(PMAKE_COMMON) kernel = $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) get-orig-source: rm -rf $(ORIGDIR) mkdir -p $(ORIGDIR)/share/misc mkdir -p $(ORIGDIR)/sys/kern mkdir -p $(ORIGDIR)/sys/sys \ $(ORIGDIR)/sys/netipx for i in lib/libcam lib/libdevstat lib/libgeom lib/libipx \ lib/libelf \ lib/libdwarf \ lib/libkiconv lib/libnetgraph lib/libjail \ lib/libkvm lib/libmemstat lib/libsbuf lib/libusb \ lib/libusbhid sys/cam \ lib/libutil \ lib/libalias sys/netinet/libalias sys/modules/libalias \ lib/Makefile.inc \ sys/kern/subr_sbuf.c \ sys/sys/sbuf.h \ sys/netipx/ipx.h \ share/misc/usb_hid_usages ; do \ svn export --ignore-keywords -r $(svn_revision) $(SVN)/$$i $(ORIGDIR)/$$i ; \ done # Remove unused files with non GPL compatible license (eg BSD 4 clauses) rm -f $(ORIGDIR)/sys/cam/scsi/scsi_ch.* rm -f $(ORIGDIR)/lib/libkvm/kvm_ia64.c rm -f $(ORIGDIR)/lib/libkvm/kvm_powerpc.c # Remove all CAM kernel headers to ensure system-wide version is used instead find $(ORIGDIR)/sys/cam -name \*.h | xargs rm -f tar --numeric-owner --owner 0 --group 0 -czf ../$(TARNAME) $(ORIGDIR) rm -rf $(ORIGDIR) BUILD_ARCH_TARGETS = \ build-sbuf \ build-dwarf \ build-elf \ build-util \ build-ipx \ $(NULL) ifeq ($(kernel), kfreebsd) BUILD_ARCH_TARGETS += \ build-cam \ build-geom \ build-kiconv \ build-kvm \ build-usbhid \ build-usb \ build-devstat \ build-memstat \ build-netgraph \ build-jail \ build-alias endif build: build-indep build-arch build-indep: build-arch: $(BUILD_ARCH_TARGETS) build-cam: build-cam-stamp build-cam-stamp: build-sbuf $(PMAKE) -C $(CURDIR)/lib/libcam SHLIBDIR=./ touch $@ build-geom: build-geom-stamp build-geom-stamp: build-sbuf $(PMAKE) -C $(CURDIR)/lib/libgeom SHLIBDIR=./ touch $@ build-netgraph: build-netgraph-stamp build-netgraph-stamp: $(PMAKE) -C $(CURDIR)/lib/libnetgraph SHLIBDIR=./ touch $@ build-ipx: build-ipx-stamp build-ipx-stamp: $(PMAKE) -C $(CURDIR)/lib/libipx SHLIBDIR=./ touch $@ build-kiconv: build-kiconv-stamp build-kiconv-stamp: $(PMAKE) -C $(CURDIR)/lib/libkiconv SHLIBDIR=./ touch $@ build-kvm: build-kvm-stamp build-kvm-stamp: $(PMAKE) -C $(CURDIR)/lib/libkvm SHLIBDIR=./ touch $@ build-devstat: build-devstat-stamp build-devstat-stamp: build-kvm $(PMAKE) -C $(CURDIR)/lib/libdevstat SHLIBDIR=./ touch $@ build-elf: build-elf-stamp build-elf-stamp: $(PMAKE_FOREIGN) -C $(CURDIR)/lib/libelf SHLIBDIR=./ touch $@ build-dwarf: build-dwarf-stamp build-dwarf-stamp: build-elf $(PMAKE_FOREIGN) -C $(CURDIR)/lib/libdwarf SHLIBDIR=./ touch $@ build-memstat: build-memstat-stamp build-memstat-stamp: build-kvm $(PMAKE) -C $(CURDIR)/lib/libmemstat SHLIBDIR=./ touch $@ build-sbuf: build-sbuf-stamp build-sbuf-stamp: $(PMAKE_FOREIGN) -C $(CURDIR)/lib/libsbuf SHLIBDIR=./ touch $@ build-usbhid: build-usbhid-stamp build-usbhid-stamp: $(PMAKE) -C $(CURDIR)/lib/libusbhid SHLIBDIR=./ touch $@ build-usb: build-usb-stamp build-usb-stamp: $(PMAKE) -C $(CURDIR)/lib/libusb SHLIBDIR=./ touch $@ build-util: build-util-stamp build-util-stamp: $(PMAKE) -C $(CURDIR)/lib/libutil SHLIBDIR=./ touch $@ build-jail: build-jail-stamp build-jail-stamp: $(PMAKE) -C $(CURDIR)/lib/libjail SHLIBDIR=./ touch $@ build-alias: build-alias-stamp build-alias-stamp: $(PMAKE) -C $(CURDIR)/lib/libalias SHLIBDIR=./ touch $@ clean: dh_testdir dh_testroot $(PMAKE) -C $(CURDIR)/lib/libsbuf clean $(PMAKE) -C $(CURDIR)/lib/libdwarf clean $(PMAKE) -C $(CURDIR)/lib/libelf clean $(PMAKE) -C $(CURDIR)/lib/libutil clean ifeq ($(kernel), kfreebsd) $(PMAKE) -C $(CURDIR)/lib/libcam clean $(PMAKE) -C $(CURDIR)/lib/libnetgraph clean $(PMAKE) -C $(CURDIR)/lib/libdevstat clean $(PMAKE) -C $(CURDIR)/lib/libmemstat clean $(PMAKE) -C $(CURDIR)/lib/libgeom clean $(PMAKE) -C $(CURDIR)/lib/libipx clean $(PMAKE) -C $(CURDIR)/lib/libkiconv clean $(PMAKE) -C $(CURDIR)/lib/libkvm clean $(PMAKE) -C $(CURDIR)/lib/libusbhid clean $(PMAKE) -C $(CURDIR)/lib/libusb clean $(PMAKE) -C $(CURDIR)/lib/libjail clean $(PMAKE) -C $(CURDIR)/lib/libalias clean endif rm -f *stamp dh_clean install-indep: build-indep dh_testdir dh_testroot dh_prep -i dh_installdirs -i mkdir -p $(DESTDIR) dh_install -i --list-missing install-arch: build-arch dh_testdir dh_testroot dh_prep -a dh_installdirs -a mkdir -p $(DESTDIR)/lib $(DESTDIR)/usr/lib $(DESTDIR)/usr/include $(DESTDIR)/usr/share/man/man3 $(PMAKE) -C $(CURDIR)/lib/libsbuf install SHLIBDIR=/lib $(PMAKE) -C $(CURDIR)/lib/libdwarf install SHLIBDIR=/usr/lib $(PMAKE) -C $(CURDIR)/lib/libelf install SHLIBDIR=/usr/lib $(PMAKE) -C $(CURDIR)/lib/libutil install SHLIBDIR=/lib $(PMAKE) -C $(CURDIR)/lib/libipx install SHLIBDIR=/lib ifeq ($(kernel), kfreebsd) $(PMAKE) -C $(CURDIR)/lib/libcam install SHLIBDIR=/usr/lib $(PMAKE) -C $(CURDIR)/lib/libgeom install SHLIBDIR=/lib $(PMAKE) -C $(CURDIR)/lib/libkiconv install SHLIBDIR=/usr/lib $(PMAKE) -C $(CURDIR)/lib/libkvm install SHLIBDIR=/lib $(PMAKE) -C $(CURDIR)/lib/libdevstat install SHLIBDIR=/usr/lib $(PMAKE) -C $(CURDIR)/lib/libmemstat install SHLIBDIR=/usr/lib $(PMAKE) -C $(CURDIR)/lib/libnetgraph install SHLIBDIR=/usr/lib $(PMAKE) -C $(CURDIR)/lib/libusbhid install SHLIBDIR=/usr/lib $(PMAKE) -C $(CURDIR)/lib/libusb install SHLIBDIR=/lib $(PMAKE) -C $(CURDIR)/lib/libjail install SHLIBDIR=/lib $(PMAKE) -C $(CURDIR)/lib/libalias install SHLIBDIR=/usr/lib mkdir -p $(CURDIR)/debian/tmp/usr/lib/pkgconfig install -m644 debian/libusb*.pc $(CURDIR)/debian/tmp/usr/lib/pkgconfig mkdir -p $(CURDIR)/debian/tmp/usr/bin install -m755 debian/libusb-config $(CURDIR)/debian/tmp/usr/bin endif dh_install -a --list-missing # Build architecture-independent files here. binary-indep: install-indep dh_testdir dh_testroot dh_installchangelogs -i dh_installdocs -i 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: install-arch dh_testdir dh_testroot dh_installchangelogs -a dh_installdocs -a # dh_installexamples # dh_installinit # dh_installcron # dh_installinfo # dh_installman dh_link -a dh_strip -a dh_compress -a dh_fixperms -a # dh_perl # dh_python dh_makeshlibs -a ifeq ($(kernel), kfreebsd) dh_makeshlibs -plibgeom1 --add-udeb=libgeom1-udeb dh_makeshlibs -plibipx2 --add-udeb=libipx2-udeb dh_makeshlibs -plibsbuf6 --add-udeb=libsbuf6-udeb dh_makeshlibs -plibusb3 --add-udeb=libusb3-udeb endif dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary: binary-arch binary-indep .PHONY: build clean binary-indep binary-arch binary install configure