mirror of https://gitee.com/openkylin/apr.git
172 lines
5.5 KiB
Makefile
Executable File
172 lines
5.5 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
|
|
#export DH_VERBOSE=1
|
|
SHELL=/bin/bash
|
|
BUILDDIR := debian/build
|
|
|
|
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
|
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
|
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
|
|
DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
|
|
DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
|
|
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
|
|
|
# The 'build' target needs special handling because there there is a directory
|
|
# named 'build'.
|
|
.PHONY: build
|
|
# The build target must not be empty. Sadly because of how make
|
|
# works, we have do duplicate the target in this case.
|
|
build:
|
|
dh $@ -B$(BUILDDIR)
|
|
%:
|
|
dh $@ -B$(BUILDDIR)
|
|
|
|
#
|
|
# configure
|
|
#
|
|
CONFFLAGS := LTFLAGS=--no-silent \
|
|
--host=$(DEB_HOST_GNU_TYPE) \
|
|
--build=$(DEB_BUILD_GNU_TYPE) \
|
|
--enable-layout=Debian \
|
|
--includedir=/usr/include/apr-1.0 \
|
|
--with-installbuilddir=/usr/share/apr-1.0/build \
|
|
--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
|
|
--enable-nonportable-atomics \
|
|
--enable-allocator-uses-mmap \
|
|
ac_cv_prog_AWK=mawk
|
|
|
|
# apr_cv_mutex_robust_shared causes hangs in procmutex test on arm(el|hf) and alpha
|
|
ifneq (,$(findstring armel,$(DEB_HOST_ARCH)))
|
|
CONFFLAGS += apr_cv_mutex_robust_shared=no
|
|
endif
|
|
ifneq (,$(findstring armhf,$(DEB_HOST_ARCH)))
|
|
CONFFLAGS += apr_cv_mutex_robust_shared=no
|
|
endif
|
|
ifneq (,$(findstring alpha,$(DEB_HOST_ARCH)))
|
|
CONFFLAGS += apr_cv_mutex_robust_shared=no
|
|
endif
|
|
|
|
# SH4 cannot use proc_pthread.
|
|
ifneq (,$(findstring sh4,$(DEB_HOST_ARCH)))
|
|
CONFFLAGS += apr_cv_hasprocpthreadser=no ac_cv_define_PTHREAD_PROCESS_SHARED=no
|
|
endif
|
|
|
|
# multicast not supported on Hurd
|
|
ifeq (hurd,$(DEB_HOST_ARCH_OS))
|
|
CONFFLAGS += apr_cv_struct_ipmreq=no
|
|
endif
|
|
|
|
# some minimal cross-building support
|
|
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
|
|
ifeq ($(DEB_HOST_ARCH_OS),linux)
|
|
CONFFLAGS += ac_cv_file__dev_zero=yes \
|
|
ac_cv_func_setpgrp_void=yes \
|
|
apr_cv_epoll=yes \
|
|
ac_cv_struct_rlimit=yes \
|
|
apr_cv_tcp_nodelay_with_cork=yes \
|
|
apr_cv_process_shared_works=yes
|
|
endif
|
|
ifeq ($(DEB_HOST_ARCH_BITS),32)
|
|
CONFFLAGS += ac_cv_sizeof_struct_iovec=8
|
|
else ifeq ($(DEB_HOST_ARCH_BITS),64)
|
|
CONFFLAGS += ac_cv_sizeof_struct_iovec=16
|
|
endif
|
|
endif
|
|
|
|
# Set several variables to make build reproducible even when built on
|
|
# usrmerge system
|
|
CONFFLAGS += SED=/bin/sed
|
|
CONFFLAGS += GREP=/bin/grep
|
|
CONFFLAGS += EGREP="/bin/grep -E"
|
|
CONFFLAGS += FGREP="/bin/grep -F"
|
|
CONFFLAGS += ac_cv_path_lt_DD=/bin/dd
|
|
|
|
override_dh_autoreconf:
|
|
LC_ALL=C dh_autoreconf ./buildconf
|
|
|
|
override_dh_auto_configure:
|
|
mkdir -p $(BUILDDIR)/docs
|
|
# We need to force the use of bash here. Otherwise, if apr is built with
|
|
# /bin/sh -> /bin/bash, the resulting libtool will not work on systems
|
|
# where /bin/sh -> /bin/dash.
|
|
cd $(BUILDDIR) && CONFIG_SHELL=/bin/bash /bin/bash $(CURDIR)/configure $(CONFFLAGS)
|
|
ifeq (linux,$(DEB_HOST_ARCH_OS))
|
|
if grep -q APR_HAS_POSIXSEM_SERIALIZE.*0 $(BUILDDIR)/include/apr.h ;\
|
|
then \
|
|
echo "WARNING: This is Linux but configure did not detect POSIX semaphores." ;\
|
|
if ! df /dev/shm/.|grep -q ^tmpfs ;\
|
|
then \
|
|
echo "ERROR: POSIX semaphores not usable and /dev/shm not mounted." ;\
|
|
echo "ERROR: Aborting." ;\
|
|
echo "HINT: If you are using pbuilder or cowbuilder, add /dev/shm to BINDMOUNTS" ;\
|
|
echo "HINT: in pbuilderrc" ;\
|
|
exit 1 ;\
|
|
fi ;\
|
|
fi
|
|
endif
|
|
|
|
|
|
#
|
|
# build
|
|
#
|
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
NUMJOBS := $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
endif
|
|
|
|
override_dh_auto_build:
|
|
$(MAKE) -j$(NUMJOBS) -C $(BUILDDIR) all dox
|
|
find debian/build/docs/dox/html -name \*.md5 -delete
|
|
|
|
#
|
|
# test
|
|
#
|
|
|
|
ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
|
|
|
|
# the testsockets test will fail on vservers (no 127.0.0.1) or if ipv6 is
|
|
# enabled in the kernel but not configured on any interface
|
|
IGNORE_TESTSOCK = $(shell IGN=false; \
|
|
/sbin/ifconfig|grep -q 127.0.0.1 || IGN=true; \
|
|
grep -q ipv6 /proc/net/protocols && ( /sbin/ifconfig|grep -q inet6 || IGN=true ) ; \
|
|
echo $$IGN )
|
|
IGNORE_TESTSOCK = true
|
|
|
|
override_dh_auto_test:
|
|
$(MAKE) -C $(BUILDDIR)/test -j$(NUMJOBS) all
|
|
cd $(BUILDDIR)/test && ./testall -v testsockets testsock || $(IGNORE_TESTSOCK)
|
|
cd $(BUILDDIR)/test && ( ulimit -S -s 8192 ; ./testall -v testatomic)
|
|
cd $(BUILDDIR)/test && ./testall -v -x testsockets testsock testatomic
|
|
|
|
else
|
|
override_dh_auto_test:
|
|
|
|
endif
|
|
|
|
|
|
#
|
|
# install
|
|
#
|
|
override_dh_auto_install:
|
|
dh_auto_install --destdir=debian/tmp
|
|
perl -p -i -e "s,^dependency_libs=.*,dependency_libs=''," debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libapr-1.la
|
|
# Remove hostname to make build reproducible
|
|
perl -p -i -e 's/Libtool was configured on host.*//' debian/tmp/usr/share/apr-1.0/build/libtool
|
|
# Replace variable build path with BUILDDIR
|
|
perl -p -i -e "s,$(CURDIR),BUILDDIR/," debian/tmp/usr/bin/apr-1-config
|
|
perl -p -i -e "s,$(CURDIR),BUILDDIR/," debian/tmp/usr/share/apr-1.0/build/apr_rules.mk
|
|
perl -p -i -e "s,$(CURDIR),BUILDDIR/," debian/tmp/usr/share/apr-1.0/build/libtool
|
|
if ! head -n 1 debian/tmp/usr/share/apr-1.0/build/libtool | grep -q /bin/bash ; then \
|
|
echo ERROR: The built libtool uses /bin/sh instead of /bin/bash ; \
|
|
exit 1 ; \
|
|
fi
|
|
|
|
override_dh_strip:
|
|
dh_strip --dbgsym-migration='libapr1-dbg (<< 1.7.0-4~)'
|
|
|
|
override_dh_makeshlibs:
|
|
dh_makeshlibs -- -Idebian/symbols.$(DEB_HOST_ARCH_OS)
|
|
|
|
override_dh_auto_clean:
|
|
dh_auto_clean
|
|
rm -rf $(BUILDDIR)
|