summaryrefslogtreecommitdiff
path: root/tools/dev/unix-build/Makefile.svn
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dev/unix-build/Makefile.svn')
-rw-r--r--tools/dev/unix-build/Makefile.svn188
1 files changed, 156 insertions, 32 deletions
diff --git a/tools/dev/unix-build/Makefile.svn b/tools/dev/unix-build/Makefile.svn
index 2c0561c..91aa899 100644
--- a/tools/dev/unix-build/Makefile.svn
+++ b/tools/dev/unix-build/Makefile.svn
@@ -45,6 +45,7 @@ EXCLUSIVE_WC_LOCKS ?= 1
USE_HTTPV1 ?= no
USE_AUTHZ_SHORT_CIRCUIT ?= no
RAMDISK ?= /ramdisk
+MAKE_JOBS ?= 4
PWD = $(shell pwd)
UNAME = $(shell uname)
@@ -71,6 +72,12 @@ endif # 2.2
endif # 2.3
endif # 2.4
+ifeq ($(UNAME),OpenBSD)
+# Pick the correct base compiler (ie. clang rather than ancient gcc 4.2.1)
+CC = cc
+CXX = c++
+endif
+
TAG ?= none
ifeq ($(TAG),none)
BRANCH ?= trunk
@@ -170,18 +177,19 @@ FETCH_CMD = wget -c
SUBVERSION_REPOS_URL = https://svn.apache.org/repos/asf/subversion
BDB_URL = http://download.oracle.com/berkeley-db/$(BDB_DIST)
APR_URL = https://svn.apache.org/repos/asf/apr/apr
-APR_ICONV_URL = https://www.apache.org/dist/apr/$(APR_ICONV_DIST)
+APR_ICONV_URL = https://archive.apache.org/dist/apr/$(APR_ICONV_DIST)
GNU_ICONV_URL = https://ftp.gnu.org/pub/gnu/libiconv/$(GNU_ICONV_DIST)
APR_UTIL_URL = https://svn.apache.org/repos/asf/apr/apr-util
HTTPD_URL = https://archive.apache.org/dist/httpd/$(HTTPD_DIST)
-NEON_URL = http://webdav.org/neon/$(NEON_DIST)
+#NEON_URL = http://webdav.org/neon/$(NEON_DIST)
+NEON_URL = http://ftp.openbsd.org/pub/OpenBSD/distfiles/$(NEON_DIST)
SERF_URL = https://svn.apache.org/repos/asf/serf/tags/$(SERF_VER)
SERF_OLD_URL = https://svn.apache.org/repos/asf/serf/tags/$(SERF_OLD_VER)
SQLITE_URL = https://www.sqlite.org/2017/$(SQLITE_DIST)
CYRUS_SASL_URL = ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/$(CYRUS_SASL_DIST)
LIBMAGIC_URL = ftp://ftp.astron.com/pub/file/$(LIBMAGIC_DIST)
RUBY_URL = https://cache.ruby-lang.org/pub/ruby/2.4/$(RUBY_DIST)
-BZ2_URL = http://bzip.org/$(BZ2_VER)/$(BZ2_DIST)
+BZ2_URL = https://ftp.openbsd.org/pub/OpenBSD/distfiles/$(BZ2_DIST)
PYTHON_URL = https://python.org/ftp/python/$(PYTHON_VER)/$(PYTHON_DIST)
JUNIT_URL = https://downloads.sourceforge.net/project/junit/junit/$(JUNIT_VER)/$(JUNIT_DIST)
GETTEXT_URL = https://ftp.gnu.org/pub/gnu/gettext/$(GETTEXT_DIST)
@@ -238,6 +246,10 @@ endif
# We need this to make sure some targets below pick up the right libraries
LD_LIBRARY_PATH=$(PREFIX)/apr/lib:$(PREFIX)/gettext/lib:$(PREFIX)/iconv/lib:$(PREFIX)/bdb/lib:$(PREFIX)/neon/lib:$(PREFIX)/serf/lib:$(PREFIX)/sqlite/lib:$(PREFIX)/cyrus-sasl/lib:$(PREFIX)/iconv/lib:$(PREFIX)/libmagic/lib:$(PREFIX)/ruby/lib:$(PREFIX)/python/lib:$(PREFIX)/svn-$(WC)/lib
+# We need this to make sure some targets below pick up the right pkg-config files
+PKG_CONFIG_PATH=$(PREFIX)/apr/lib/pkgconfig:$(PREFIX)/neon/lib/pkgconfig:$(PREFIX)/serf/lib/pkgconfig:$(PREFIX)/sqlite/lib/pkgconfig:$(PREFIX)/ruby/lib/pkgconfig:$(PREFIX)/python/lib/pkgconfig:$(PREFIX)/lz4/lib/pkgconfig
+
+
#######################################################################
# Main targets.
#######################################################################
@@ -331,6 +343,7 @@ $(BDB_OBJDIR)/.retrieved: $(DISTDIR)/$(BDB_DIST)
$(BDB_OBJDIR)/.configured: $(BDB_OBJDIR)/.retrieved
cd $(BDB_SRCDIR)/build_unix \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ CC=$(CC) CXX=$(CXX) \
../dist/configure \
--prefix=$(PREFIX)/bdb \
--enable-debug
@@ -338,7 +351,7 @@ $(BDB_OBJDIR)/.configured: $(BDB_OBJDIR)/.retrieved
# compile bdb
$(BDB_OBJDIR)/.compiled: $(BDB_OBJDIR)/.configured
- (cd $(BDB_SRCDIR)/build_unix && env MAKEFLAGS= make)
+ (cd $(BDB_SRCDIR)/build_unix && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install bdb
@@ -388,6 +401,8 @@ $(APR_OBJDIR)/.configured: $(APR_OBJDIR)/.retrieved $(BDB_OBJDIR)/.installed
cd $(APR_SRCDIR) && ./buildconf
cd $(APR_OBJDIR) \
&& env CFLAGS="-O0 -g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
+ CC=$(CC) CXX=$(CXX) \
$(APR_SRCDIR)/configure \
--prefix=$(PREFIX)/apr \
--enable-maintainer-mode \
@@ -397,7 +412,7 @@ $(APR_OBJDIR)/.configured: $(APR_OBJDIR)/.retrieved $(BDB_OBJDIR)/.installed
# compile apr
$(APR_OBJDIR)/.compiled: $(APR_OBJDIR)/.configured
- (cd $(APR_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(APR_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install apr
@@ -436,7 +451,9 @@ $(APR_ICONV_OBJDIR)/.configured: $(APR_ICONV_OBJDIR)/.retrieved \
$(APR_OBJDIR)/.installed
cd $(APR_ICONV_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(APR_ICONV_SRCDIR)/configure \
--prefix=$(PREFIX)/apr \
--with-apr=$(PREFIX)/apr
@@ -445,7 +462,7 @@ $(APR_ICONV_OBJDIR)/.configured: $(APR_ICONV_OBJDIR)/.retrieved \
# compile apr-iconv
$(APR_ICONV_OBJDIR)/.compiled: $(APR_ICONV_OBJDIR)/.configured
(cd $(APR_ICONV_OBJDIR) \
- && env MAKEFLAGS= make CPPFLAGS="-D_OSD_POSIX" CFLAGS="-g -O0 $(PROFILE_CFLAGS)")
+ && env MAKEFLAGS= make CPPFLAGS="-D_OSD_POSIX" CFLAGS="-g -O0 $(PROFILE_CFLAGS)" -j${MAKE_JOBS})
touch $@
# install apr-iconv
@@ -520,6 +537,7 @@ $(GNU_ICONV_OBJDIR)/.configured: $(GNU_ICONV_OBJDIR)/.retrieved
${MAKE} -f Makefile.devel lib/aliases.h
cd $(GNU_ICONV_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(GNU_ICONV_SRCDIR)/configure \
--prefix=$(PREFIX)/iconv \
--enable-extra-encodings
@@ -527,7 +545,7 @@ $(GNU_ICONV_OBJDIR)/.configured: $(GNU_ICONV_OBJDIR)/.retrieved
# compile gnu-iconv
$(GNU_ICONV_OBJDIR)/.compiled: $(GNU_ICONV_OBJDIR)/.configured
- (cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install gnu-iconv
@@ -590,7 +608,9 @@ $(APR_UTIL_OBJDIR)/.configured: $(APR_UTIL_OBJDIR)/.retrieved \
cd $(APR_UTIL_SRCDIR) && ./buildconf --with-apr=$(APR_SRCDIR)
cd $(APR_UTIL_OBJDIR) \
&& env LD_LIBRARY_PATH=$(PREFIX)/bdb/lib \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
GREP="`which grep`" \
$(APR_UTIL_SRCDIR)/configure \
--prefix=$(PREFIX)/apr \
@@ -602,7 +622,7 @@ $(APR_UTIL_OBJDIR)/.configured: $(APR_UTIL_OBJDIR)/.retrieved \
# compile apr-util
$(APR_UTIL_OBJDIR)/.compiled: $(APR_UTIL_OBJDIR)/.configured
- (cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install apr-util
@@ -681,6 +701,13 @@ $(HTTPD_OBJDIR)/acinclude.diff:
echo >>$@.tmp ' AC_CHECK_FUNCS(SSL_set_state)'
mv -f $@.tmp $@
+# fix build without APR_HAS_THREADS (broken by r1750836)
+ifneq ($(THREADING),yes)
+HTTPD_REVERT_1750836_CMD = (cd $(HTTPD_SRCDIR)/modules/proxy && svn diff -c-1750836 https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/modules/proxy/proxy_util.c | patch)
+else
+HTTPD_REVERT_1750836_CMD = true
+endif
+
# retrieve httpd
$(HTTPD_OBJDIR)/.retrieved: $(DISTDIR)/$(HTTPD_DIST) \
$(HTTPD_OBJDIR)/chil-engine.diff $(HTTPD_OBJDIR)/ssl-set-state.diff \
@@ -709,6 +736,7 @@ $(HTTPD_OBJDIR)/.retrieved: $(DISTDIR)/$(HTTPD_DIST) \
< $(HTTPD_SRCDIR)/modules/ssl/${f}.orig \
> $(HTTPD_SRCDIR)/modules/ssl/${f};\
)
+ $(HTTPD_REVERT_1750836_CMD)
touch $@
# configure httpd
@@ -717,7 +745,9 @@ $(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJDIR)/.retrieved \
cd $(HTTPD_SRCDIR) && ./buildconf
cd $(HTTPD_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(HTTPD_SRCDIR)/configure \
--prefix=$(PREFIX)/httpd \
--enable-maintainer-mode \
@@ -731,7 +761,7 @@ $(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJDIR)/.retrieved \
# compile httpd
$(HTTPD_OBJDIR)/.compiled: $(HTTPD_OBJDIR)/.configured
- (cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install httpd
@@ -802,6 +832,8 @@ $(NEON_OBJDIR)/.configured: $(NEON_OBJDIR)/.retrieved
fi
cd $(NEON_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ CC=$(CC) CXX=$(CXX) \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(NEON_SRCDIR)/configure \
PATH=$(NEON_OBJDIR):$$PATH \
--prefix=$(PREFIX)/neon \
@@ -812,7 +844,7 @@ $(NEON_OBJDIR)/.configured: $(NEON_OBJDIR)/.retrieved
# compile neon
$(NEON_OBJDIR)/.compiled: $(NEON_OBJDIR)/.configured
- (cd $(NEON_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(NEON_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install neon
@@ -860,11 +892,13 @@ $(SERF_OBJDIR)/.retrieved:
$(SERF_OBJDIR)/.compiled: $(SERF_OBJDIR)/.retrieved \
$(APR_UTIL_OBJDIR)/.installed
cd $(SERF_SRCDIR) && \
- scons DEBUG=1 \
+ scons -j${MAKE_JOBS} DEBUG=1 \
CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
APR=$(PREFIX)/apr \
APU=$(PREFIX)/apr \
- PREFIX=$(PREFIX)/serf
+ PREFIX=$(PREFIX)/serf \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
touch $@
# install serf
@@ -905,6 +939,7 @@ $(SERF_OLD_OBJDIR)/.compiled: $(SERF_OLD_OBJDIR)/.retrieved \
$(APR_UTIL_OBJDIR)/.installed
cd $(SERF_OLD_SRCDIR) && \
env CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
./serfmake --with-apr=$(PREFIX)/apr \
--prefix=$(PREFIX)/serf-old \
build
@@ -956,6 +991,8 @@ endif
$(SQLITE_OBJDIR)/.configured: $(SQLITE_OBJDIR)/.retrieved
cd $(SQLITE_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
+ CC=$(CC) CXX=$(CXX) \
$(SQLITE_SRCDIR)/configure \
--prefix=$(PREFIX)/sqlite \
$(THREADSAFE_FLAG)
@@ -963,7 +1000,7 @@ $(SQLITE_OBJDIR)/.configured: $(SQLITE_OBJDIR)/.retrieved
# compile sqlite
$(SQLITE_OBJDIR)/.compiled: $(SQLITE_OBJDIR)/.configured
- (cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install sqlite
@@ -1025,7 +1062,9 @@ $(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved \
cd $(CYRUS_SASL_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" \
CPPFLAGS="-I/usr/include/kerberosV" \
+ CC=$(CC) CXX=$(CXX) \
GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(CYRUS_SASL_SRCDIR)/configure \
--with-dbpath=$(PREFIX)/cyrus-sasl/etc/sasldb2 \
--with-plugindir=$(PREFIX)/cyrus-sasl/lib/sasl2 \
@@ -1037,7 +1076,7 @@ $(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved \
--prefix=$(PREFIX)/cyrus-sasl
touch $@
-# compile cyrus-sasl
+# compile cyrus-sasl (ignore MAKE_JOBS; multiple jobs cause random build failures)
$(CYRUS_SASL_OBJDIR)/.compiled: $(CYRUS_SASL_OBJDIR)/.configured
(cd $(CYRUS_SASL_OBJDIR) && env MAKEFLAGS= make)
touch $@
@@ -1077,6 +1116,8 @@ $(LIBMAGIC_OBJDIR)/.retrieved: $(DISTDIR)/$(LIBMAGIC_DIST)
$(LIBMAGIC_OBJDIR)/.configured: $(LIBMAGIC_OBJDIR)/.retrieved
cd $(LIBMAGIC_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ CC=$(CC) CXX=$(CXX) \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(LIBMAGIC_SRCDIR)/configure \
--enable-fsect-man5 \
--prefix=$(PREFIX)/libmagic
@@ -1084,7 +1125,7 @@ $(LIBMAGIC_OBJDIR)/.configured: $(LIBMAGIC_OBJDIR)/.retrieved
# compile libmagic
$(LIBMAGIC_OBJDIR)/.compiled: $(LIBMAGIC_OBJDIR)/.configured
- (cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install libmagic
@@ -1111,13 +1152,54 @@ ruby-clean:
$(DISTDIR)/$(RUBY_DIST):
cd $(DISTDIR) && $(FETCH_CMD) $(RUBY_URL)
+$(RUBY_OBJDIR)/openssl_missing.patch:
+ mkdir -p $(dir $@)
+ echo > $@.tmp 'Index: ext/openssl/openssl_missing.h'
+ echo >> $@.tmp '--- ext/openssl/openssl_missing.h.orig'
+ echo >> $@.tmp '+++ ext/openssl/openssl_missing.h'
+ echo >> $@.tmp '@@ -119,6 +119,9 @@ void ossl_HMAC_CTX_free(HMAC_CTX *);'
+ echo >> $@.tmp ' #if !defined(HAVE_X509_STORE_SET_EX_DATA)'
+ echo >> $@.tmp ' # define X509_STORE_set_ex_data(x, idx, data) \'
+ echo >> $@.tmp ' CRYPTO_set_ex_data(&(x)->ex_data, (idx), (data))'
+ echo >> $@.tmp '+#endif'
+ echo >> $@.tmp '+'
+ echo >> $@.tmp '+#if !defined(HAVE_X509_STORE_GET_EX_NEW_INDEX)'
+ echo >> $@.tmp ' # define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \'
+ echo >> $@.tmp ' CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, (l), (p), \'
+ echo >> $@.tmp ' (newf), (dupf), (freef))'
+ echo >> $@.tmp '@@ -192,6 +195,7 @@ void ossl_X509_REQ_get0_signature(const X509_REQ *, co'
+ echo >> $@.tmp ' #endif'
+ echo >> $@.tmp ' '
+ echo >> $@.tmp ' #if !defined(HAVE_OPAQUE_OPENSSL)'
+ echo >> $@.tmp '+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL'
+ echo >> $@.tmp ' #define IMPL_PKEY_GETTER(_type, _name) \'
+ echo >> $@.tmp ' static inline _type *EVP_PKEY_get0_##_type(EVP_PKEY *pkey) { \'
+ echo >> $@.tmp ' return pkey->pkey._name; }'
+ echo >> $@.tmp '@@ -243,6 +247,7 @@ IMPL_PKEY_GETTER(EC_KEY, ec)'
+ echo >> $@.tmp ' #undef IMPL_PKEY_GETTER'
+ echo >> $@.tmp ' #undef IMPL_KEY_ACCESSOR2'
+ echo >> $@.tmp ' #undef IMPL_KEY_ACCESSOR3'
+ echo >> $@.tmp '+#endif'
+ echo >> $@.tmp ' #endif /* HAVE_OPAQUE_OPENSSL */'
+ echo >> $@.tmp ' '
+ echo >> $@.tmp ' #if defined(HAVE_AUTHENTICATED_ENCRYPTION) && !defined(EVP_CTRL_AEAD_GET_TAG)'
+ mv -f $@.tmp $@
+
+ifeq ($(UNAME),OpenBSD)
+RUBY_SSL_EX_NEW_DATA_PATCH = sed -i -e '/^have_func("X509_STORE_set_ex_data")$$/ { p; s/^.*$$/\have_func("X509_STORE_get_ex_new_index")/; }'
+else
+RUBY_SSL_EX_NEW_DATA_PATCH = true
+endif
+
# retrieve ruby
#
-$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST)
+$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST) $(RUBY_OBJDIR)/openssl_missing.patch
$(call do_check_sha256,$(RUBY_DIST))
[ -d $(RUBY_OBJDIR) ] || mkdir -p $(RUBY_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(RUBY_DIST)
-which ghead && sed -i -e "s/head -c/ghead -c/" $(RUBY_SRCDIR)/configure
+ $(RUBY_SSL_EX_NEW_DATA_PATCH) $(RUBY_SRCDIR)/ext/openssl/extconf.rb
+ cd $(RUBY_SRCDIR) && patch -p0 < $(RUBY_OBJDIR)/openssl_missing.patch
touch $@
ifeq ($(THREADING),yes)
@@ -1130,6 +1212,8 @@ endif
$(RUBY_OBJDIR)/.configured: $(RUBY_OBJDIR)/.retrieved
cd $(RUBY_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ CC=$(CC) CXX=$(CXX) \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(RUBY_SRCDIR)/configure \
--prefix=$(PREFIX)/ruby \
--enable-shared \
@@ -1140,7 +1224,7 @@ $(RUBY_OBJDIR)/.configured: $(RUBY_OBJDIR)/.retrieved
--without-gmp
touch $@
-# compile ruby
+# compile ruby (ignore MAKE_JOBS; multiple jobs cause random build failures)
$(RUBY_OBJDIR)/.compiled: $(RUBY_OBJDIR)/.configured
(cd $(RUBY_OBJDIR) && env MAKEFLAGS= make)
touch $@
@@ -1177,7 +1261,8 @@ $(BZ2_OBJDIR)/.retrieved: $(DISTDIR)/$(BZ2_DIST)
# compile bz2
$(BZ2_OBJDIR)/.compiled: $(BZ2_OBJDIR)/.retrieved
- (cd $(BZ2_SRCDIR) && env MAKEFLAGS= make CFLAGS="-g $(PROFILE_CFLAGS) -fPIC")
+ (cd $(BZ2_SRCDIR) && env MAKEFLAGS= make CC=$(CC) CXX=$(CXX) \
+ CFLAGS="-g $(PROFILE_CFLAGS) -fPIC" -j${MAKE_JOBS})
touch $@
# install bz2
@@ -1237,9 +1322,11 @@ $(PYTHON_OBJDIR)/.configured: $(PYTHON_OBJDIR)/.retrieved \
$(BZ2_OBJDIR)/.installed
cd $(PYTHON_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ CC=$(CC) CXX=$(CXX) \
CPPFLAGS="-I$(PREFIX)/bz2/include" \
LDFLAGS="-Wl,-rpath=$(PREFIX)/python/lib -L$(PREFIX)/bz2/lib" \
LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(PYTHON_SRCDIR)/configure \
--prefix=$(PREFIX)/python \
--enable-shared \
@@ -1253,7 +1340,7 @@ $(PYTHON_OBJDIR)/.compiled: $(PYTHON_OBJDIR)/.configured
(cd $(PYTHON_OBJDIR) && \
env MAKEFLAGS= \
LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
- make)
+ make -j${MAKE_JOBS})
touch $@
# install python
@@ -1306,7 +1393,9 @@ $(GETTEXT_OBJDIR)/.retrieved: $(DISTDIR)/$(GETTEXT_DIST)
$(GETTEXT_OBJDIR)/.configured: $(GETTEXT_OBJDIR)/.retrieved
cd $(GETTEXT_SRCDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ CC=$(CC) CXX=$(CXX) \
LDFLAGS="-L$(PREFIX)/iconv/lib" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(GETTEXT_SRCDIR)/configure \
--prefix=$(PREFIX)/gettext \
--with-libiconv-prefix=$(PREFIX)/iconv \
@@ -1324,7 +1413,7 @@ $(GETTEXT_OBJDIR)/.configured: $(GETTEXT_OBJDIR)/.retrieved
# compile gettext
$(GETTEXT_OBJDIR)/.compiled: $(GETTEXT_OBJDIR)/.configured
- (cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make)
+ (cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install gettext
@@ -1365,7 +1454,8 @@ $(LZ4_OBJDIR)/.configured: $(LZ4_OBJDIR)/.retrieved
# compile lz4
$(LZ4_OBJDIR)/.compiled: $(LZ4_OBJDIR)/.configured
(cd $(LZ4_SRCDIR)/lib && \
- env MAKEFLAGS= $(MAKE) PREFIX=$(PREFIX)/lz4)
+ env MAKEFLAGS= $(MAKE) CC=$(CC) CXX=$(CXX) \
+ -j${MAKE_JOBS} PREFIX=$(PREFIX)/lz4)
touch $@
# install lz4
@@ -1467,6 +1557,7 @@ SERF_FLAG=--with-serf="$(PREFIX)/serf"
# serf >= 1.3.0 is built with scons and no longer sets up rpath linker flags,
# so we have to do that ourselves :(
SERF_LDFLAG=-Wl,-rpath,$(PREFIX)/serf/lib -Wl,-rpath,$(PREFIX)/bdb/lib
+LZ4_LDFLAG=-Wl,-rpath,$(PREFIX)/lz4/lib
MOD_DAV_SVN=modules/svn-$(WC)/mod_dav_svn.so
MOD_AUTHZ_SVN=modules/svn-$(WC)/mod_authz_svn.so
MOD_DONTDOTHAT=modules/svn-$(WC)/mod_dontdothat.so
@@ -1492,6 +1583,17 @@ SVN_WITH_HTTPD=--with-apxs="$(PREFIX)/httpd/bin/apxs" \
SVN_WITH_SASL=--with-sasl="$(PREFIX)/cyrus-sasl"
endif
+# On OpenBSD, MExtUtils -e ldopts outputs -L/usr/local/lib, which can
+# cause us to link Perl bindings against the wrong set of SVN libraries.
+# As a workaround, we patch the configure script after it has been generated.
+ifeq ($(UNAME),OpenBSD)
+SWIG_PL_INCLUDES_HACK= sed -i 's^\($$PERL -MExtUtils::Embed -e ccopts\)^\1 | sed -e s@-I/usr/local/include@@^' $(svn_builddir)/configure
+SWIG_PL_LINK_HACK= sed -i 's^\($$PERL -MExtUtils::Embed -e ldopts\)^\1 | sed -e s@-L/usr/local/lib@@^' $(svn_builddir)/configure
+else
+SWIG_PL_INCLUDES_HACK=true
+SWIG_PL_LINK_HACK=true
+endif
+
$(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST) \
$(APR_OBJDIR)/.installed $(APR_UTIL_OBJDIR)/.installed \
$(BDB_OBJDIR)/.installed $(SQLITE_OBJDIR)/.installed \
@@ -1500,11 +1602,15 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST) \
$(SERF_OBJDIR)/.installed $(SERF_OLD_OBJDIR)/.installed \
$(RUBY_OBJDIR)/.installed $(PYTHON_OBJDIR)/.installed
cd $(SVN_SRCDIR) && ./autogen.sh
+ $(SWIG_PL_INCLUDES_HACK)
+ $(SWIG_PL_LINK_HACK)
cd $(svn_builddir) && \
- env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib $(SERF_LDFLAG) -L$(PREFIX)/gettext/lib -L$(PREFIX)/iconv/lib" \
+ env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib $(SERF_LDFLAG) $(LZ4_LDFLAG) -L$(PREFIX)/gettext/lib -L$(PREFIX)/iconv/lib" \
+ CC=$(CC) CXX=$(CXX) \
CFLAGS="-I$(PREFIX)/gettext/include -DAPR_POOL_DEBUG" \
CXXFLAGS="-I$(PREFIX)/gettext/include -DAPR_POOL_DEBUG" \
LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
GREP="`which grep`" \
PATH=$(PREFIX)/ruby/bin:$(PREFIX)/python/bin:$(PREFIX)/gettext/bin:$$PATH \
$(SVN_SRCDIR)/configure \
@@ -1533,7 +1639,7 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST) \
# compile svn
$(SVN_OBJDIR)/.compiled: $(SVN_OBJDIR)/.configured
cd $(svn_builddir) \
- && env MAKEFLAGS= make EXTRA_CFLAGS="$(PROFILE_CFLAGS) $(W_NO_SYSTEM_HEADERS)"
+ && env MAKEFLAGS= make -j${MAKE_JOBS} EXTRA_CFLAGS="$(PROFILE_CFLAGS) $(W_NO_SYSTEM_HEADERS)"
touch $@
# install svn
@@ -1552,17 +1658,30 @@ $(SVN_OBJDIR)/.pre-generated-swig-cleaned:
&& env MAKEFLAGS= make clean-swig
touch $@
+
+# On OpenBSD, Perl's LDDLFLAGS include -L/usr/local/lib, which can cause
+# us to link Perl bindings against the wrong set of SVN libraries.
+# We manually fix up the generated Makefile.PL to work around this issue.
+ifeq ($(UNAME),OpenBSD)
+MAKEFILE_PL_LDDLFLAGS_HACK= sed -i 's@^WriteMakefile@$$config{LDDLFLAGS} =~ s+-L/usr/local/lib++; WriteMakefile@' \
+ $(SVN_SRCDIR)/subversion/bindings/swig/perl/native/Makefile.PL
+else
+MAKEFILE_PL_LDDLFLAGS_HACK=true
+endif
+
$(SVN_OBJDIR)/.bindings-compiled: $(SVN_OBJDIR)/.installed $(SVN_OBJDIR)/.pre-generated-swig-cleaned
cd $(svn_builddir) \
&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- env MAKEFLAGS= make swig-py
+ env MAKEFLAGS= make -j${MAKE_JOBS} swig-py
cd $(svn_builddir) && \
env PATH=$(PREFIX)/ruby/bin:$$PATH \
- LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make swig-rb
+ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make -j${MAKE_JOBS} swig-rb
if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
+ cd $(svn_builddir) && make $(SVN_SRCDIR)/subversion/bindings/swig/perl/native/Makefile.PL; \
+ $(MAKEFILE_PL_LDDLFLAGS_HACK); \
cd $(svn_builddir) \
&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- env MAKEFLAGS= make swig-pl; \
+ env MAKEFLAGS= make -j${MAKE_JOBS} swig-pl; \
fi
if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
@@ -1576,13 +1695,15 @@ $(SVN_OBJDIR)/.bindings-installed: $(SVN_OBJDIR)/.bindings-compiled
env MAKEFLAGS= make install-swig-py
cd $(svn_builddir) && \
env PATH=$(PREFIX)/ruby/bin:$$PATH \
- LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make install-swig-rb
+ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) MAKEFLAGS= make install-swig-rb
if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
- && env MAKEFLAGS= make install-swig-pl-lib; \
- cd subversion/bindings/swig/perl/native \
- && perl Makefile.PL PREFIX="$(SVN_PREFIX)" \
- && env MAKEFLAGS= make install; \
+ && env MAKEFLAGS= LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+ make install-swig-pl-lib; \
+ cd subversion/bindings/swig/perl/native \
+ && perl Makefile.PL PREFIX="$(SVN_PREFIX)" \
+ && env MAKEFLAGS= LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+ make install; \
fi
if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
@@ -1913,6 +2034,7 @@ endif
HTTPD_CMD = env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(LIB_PTHREAD_HACK) \
$(PREFIX)/httpd/bin/apachectl
+HTTPD_LOG_ROTATE = mv $(PREFIX)/httpd/logs/error_log $(PREFIX)/httpd/logs/error_log.old
HTTPD_START_CMD = $(HTTPD_CMD) -f $(HTTPD_CHECK_CONF) -k start
HTTPD_START_CMD_PROXY = $(HTTPD_CMD) -f $(HTTPD_PROXY_CONF)
HTTPD_START_CMD_DEBUG = $(HTTPD_START_CMD) -X
@@ -1931,6 +2053,7 @@ SVNSERVE_STOP_CMD = kill `cat $(PWD)/svnserve-$(WC).pid`; sleep 3; \
rm -f $(PWD)/svnserve-$(WC).pid
start-httpd: $(HTTPD_CHECK_CONF)
+ -$(HTTPD_LOG_ROTATE)
$(HTTPD_START_CMD)
@echo "To run tests over http, run:"
@echo " make check BASE_URL=http://localhost:$(HTTPD_CHECK_PORT)"
@@ -1971,6 +2094,7 @@ define do_check
env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(LIB_PTHREAD_HACK) \
env MAKEFLAGS= make check PARALLEL=$(PARALLEL) CLEANUP=$(CLEANUP) \
EXCLUSIVE_WC_LOCKS=$(EXCLUSIVE_WC_LOCKS) \
+ SVN_BIN_DIR=$(SVN_PREFIX)/bin \
MEMCACHED_SERVER=$(MEMCACHED_SERVER) $1 FS_TYPE=$$fs; \
for log in tests.log fails.log; do \
test -f $$log && mv -f $$log $$log.$@-$$fs; \
@@ -2052,7 +2176,7 @@ svn-check-javahl:
-if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
(cd $(svn_builddir) && \
env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- env MAKEFLAGS= make $(JAVAHL_CHECK_TARGET) 2>&1) | \
+ MAKEFLAGS= make $(JAVAHL_CHECK_TARGET) 2>&1) | \
tee $(svn_builddir)/tests.log.bindings.javahl; \
fi