1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# apr 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunAPR_VERSION = 1.7.0 8*4882a593SmuzhiyunAPR_SOURCE = apr-$(APR_VERSION).tar.bz2 9*4882a593SmuzhiyunAPR_SITE = http://archive.apache.org/dist/apr 10*4882a593SmuzhiyunAPR_LICENSE = Apache-2.0 11*4882a593SmuzhiyunAPR_LICENSE_FILES = LICENSE 12*4882a593SmuzhiyunAPR_CPE_ID_VENDOR = apache 13*4882a593SmuzhiyunAPR_CPE_ID_PRODUCT = portable_runtime 14*4882a593SmuzhiyunAPR_INSTALL_STAGING = YES 15*4882a593Smuzhiyun# We have a patch touching configure.in and Makefile.in, 16*4882a593Smuzhiyun# so we need to autoreconf: 17*4882a593SmuzhiyunAPR_AUTORECONF = YES 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun# avoid apr_hints.m4 by setting apr_preload_done=yes and set 20*4882a593Smuzhiyun# the needed CFLAGS on our own (avoids '-D_REENTRANT' in case 21*4882a593Smuzhiyun# not supported by toolchain and subsequent configure failure) 22*4882a593SmuzhiyunAPR_CFLAGS = $(TARGET_CFLAGS) -DLINUX -D_GNU_SOURCE 23*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) 24*4882a593SmuzhiyunAPR_CFLAGS += -D_REENTRANT 25*4882a593Smuzhiyunendif 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunAPR_CONF_ENV = \ 28*4882a593Smuzhiyun CC_FOR_BUILD="$(HOSTCC)" \ 29*4882a593Smuzhiyun CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ 30*4882a593Smuzhiyun CFLAGS="$(APR_CFLAGS)" \ 31*4882a593Smuzhiyun ac_cv_file__dev_zero=yes \ 32*4882a593Smuzhiyun ac_cv_func_setpgrp_void=yes \ 33*4882a593Smuzhiyun apr_cv_process_shared_works=yes \ 34*4882a593Smuzhiyun apr_cv_mutex_robust_shared=no \ 35*4882a593Smuzhiyun apr_cv_tcp_nodelay_with_cork=yes \ 36*4882a593Smuzhiyun ac_cv_sizeof_struct_iovec=8 \ 37*4882a593Smuzhiyun ac_cv_sizeof_pid_t=4 \ 38*4882a593Smuzhiyun ac_cv_struct_rlimit=yes \ 39*4882a593Smuzhiyun ac_cv_o_nonblock_inherited=no \ 40*4882a593Smuzhiyun apr_cv_mutex_recursive=yes \ 41*4882a593Smuzhiyun apr_cv_epoll=yes \ 42*4882a593Smuzhiyun apr_cv_epoll_create1=yes \ 43*4882a593Smuzhiyun apr_cv_dup3=yes \ 44*4882a593Smuzhiyun apr_cv_sock_cloexec=yes \ 45*4882a593Smuzhiyun apr_cv_accept4=yes \ 46*4882a593Smuzhiyun apr_preload_done=yes 47*4882a593SmuzhiyunAPR_CONFIG_SCRIPTS = apr-1-config 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun# Doesn't even try to guess when cross compiling 50*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) 51*4882a593SmuzhiyunAPR_CONF_ENV += apr_cv_pthreads_lib="-lpthread" 52*4882a593Smuzhiyunendif 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun# Fix lfs detection when cross compiling 55*4882a593SmuzhiyunAPR_CONF_ENV += apr_cv_use_lfs64=yes 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun# Use non-portable atomics when available. We have to override 58*4882a593Smuzhiyun# ap_cv_atomic_builtins because the test used to check for atomic 59*4882a593Smuzhiyun# builtins uses AC_TRY_RUN, which doesn't work when cross-compiling. 60*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8),y) 61*4882a593SmuzhiyunAPR_CONF_OPTS += --enable-nonportable-atomics 62*4882a593SmuzhiyunAPR_CONF_ENV += ap_cv_atomic_builtins=yes 63*4882a593Smuzhiyunelse 64*4882a593SmuzhiyunAPR_CONF_OPTS += --disable-nonportable-atomics 65*4882a593Smuzhiyunendif 66*4882a593Smuzhiyun 67*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) 68*4882a593SmuzhiyunAPR_DEPENDENCIES += util-linux 69*4882a593Smuzhiyunendif 70*4882a593Smuzhiyun 71*4882a593Smuzhiyundefine APR_CLEANUP_UNNEEDED_FILES 72*4882a593Smuzhiyun $(RM) -rf $(TARGET_DIR)/usr/build-1/ 73*4882a593Smuzhiyunendef 74*4882a593Smuzhiyun 75*4882a593SmuzhiyunAPR_POST_INSTALL_TARGET_HOOKS += APR_CLEANUP_UNNEEDED_FILES 76*4882a593Smuzhiyun 77*4882a593Smuzhiyundefine APR_FIXUP_RULES_MK 78*4882a593Smuzhiyun $(SED) 's%apr_builddir=%apr_builddir=$(STAGING_DIR)%' \ 79*4882a593Smuzhiyun $(STAGING_DIR)/usr/build-1/apr_rules.mk 80*4882a593Smuzhiyun $(SED) 's%apr_builders=%apr_builders=$(STAGING_DIR)%' \ 81*4882a593Smuzhiyun $(STAGING_DIR)/usr/build-1/apr_rules.mk 82*4882a593Smuzhiyun $(SED) 's%top_builddir=%top_builddir=$(STAGING_DIR)%' \ 83*4882a593Smuzhiyun $(STAGING_DIR)/usr/build-1/apr_rules.mk 84*4882a593Smuzhiyunendef 85*4882a593Smuzhiyun 86*4882a593SmuzhiyunAPR_POST_INSTALL_STAGING_HOOKS += APR_FIXUP_RULES_MK 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun$(eval $(autotools-package)) 89