xref: /OK3568_Linux_fs/buildroot/package/apr/apr.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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