| # vim: noexpandtab tabstop=8 shiftwidth=8 syntax=make |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| # WARNING: This may or may not work on your system. This Makefile is |
| # an example, rather than a ready-made universal solution. |
| |
| # **************************************************************** |
| # ** IMPORTANT NOTE FOR SVN COMMITTERS: READ THIS. ** |
| # ** ** |
| # **************************************************************** |
| # | This Makefile is used by the bb-openbsd buildbot | |
| # | (http://ci.apache.org/builders/bb-openbsd). Please check | |
| # | the bot's health after making changes to this file. | |
| # |______________________________________________________________| |
| |
| PERL ?= yes |
| ENABLE_PERL_BINDINGS = $(PERL) |
| THREADING ?= yes |
| ifeq ($(THREADING),yes) |
| JAVA ?= yes |
| else |
| JAVA ?= no |
| endif |
| ENABLE_JAVA_BINDINGS = $(JAVA) |
| USE_APR_ICONV ?= no # set to yes to use APR iconv instead of GNU iconv |
| PARALLEL ?= 1 |
| CLEANUP ?= 1 |
| EXCLUSIVE_WC_LOCKS ?= 1 |
| USE_HTTPV1 ?= no |
| USE_AUTHZ_SHORT_CIRCUIT ?= no |
| RAMDISK ?= /ramdisk |
| MAKE_JOBS ?= 4 |
| # available backends: fsfs fsx bdb |
| SVN_CHECK_FS_BACKENDS ?= fsfs |
| |
| PWD = $(shell pwd) |
| UNAME = $(shell uname) |
| RUBY = $(shell which ruby 2>/dev/null) |
| ifeq ($(RUBY),) |
| RUBY = $(shell which ruby24 2>/dev/null) |
| ifeq ($(RUBY),) |
| RUBY = $(shell which ruby23 2>/dev/null) |
| ifeq ($(RUBY),) |
| RUBY = $(shell which ruby22 2>/dev/null) |
| ifeq ($(RUBY),) |
| RUBY = $(shell which ruby21 2>/dev/null) |
| ifeq ($(RUBY),) |
| RUBY = $(shell which ruby20 2>/dev/null) |
| ifeq ($(RUBY),) |
| RUBY = $(shell which ruby19 2>/dev/null) |
| ifeq ($(RUBY),) |
| RUBY = $(shell which ruby18) |
| endif # 1.8 |
| endif # 1.9 |
| endif # 2.0 |
| endif # 2.1 |
| 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 |
| else |
| BRANCH = $(TAG) |
| endif |
| WC ?= $(BRANCH) |
| BRANCH_MAJOR := $(shell echo $(BRANCH) | sed -E 's/([0-9]+)\.([0-9]+)\..*/\1.\2/') |
| ifeq ($(BRANCH_MAJOR), $(filter 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13, $(BRANCH_MAJOR))) |
| PYTHON = python2 |
| else |
| PYTHON = python |
| endif |
| SVN_REL_WC = svn-$(WC) |
| SVN_WC = $(PWD)/$(SVN_REL_WC) |
| PREFIX = $(PWD)/prefix |
| SVN_PREFIX = $(PREFIX)/svn-$(WC) |
| DISTDIR = $(PWD)/distfiles |
| SRCDIR = $(PWD)/src |
| OBJDIR = $(PWD)/objdir |
| |
| BDB_MAJOR_VER = 4.7 |
| BDB_VER = $(BDB_MAJOR_VER).25 |
| APR_VER = 1.7.0 |
| APR_ICONV_VER = 1.2.1 |
| GNU_ICONV_VER = 1.15 |
| APR_UTIL_VER = 1.6.1 |
| PCRE_VER = 8.41 |
| HTTPD_VER = 2.4.37 |
| NEON_VER = 0.30.2 |
| SERF_VER = 1.3.9 |
| SERF_OLD_VER = 0.3.1 |
| CYRUS_SASL_VER = 2.1.25 |
| SQLITE_VER = 3160200 |
| LIBMAGIC_VER = 5.30 |
| RUBY_VER = 2.4.4 |
| BZ2_VER = 1.0.6 |
| PYTHON_VER = 3.7.5 |
| PYTHON2_VER = 2.7.13 |
| PY3C_VER = 1.1 |
| JUNIT_VER = 4.10 |
| GETTEXT_VER = 0.19.8.1 |
| LZ4_VER = 1.7.5 |
| |
| BDB_DIST = db-$(BDB_VER).tar.gz |
| APR_ICONV_DIST = apr-iconv-$(APR_ICONV_VER).tar.gz |
| GNU_ICONV_DIST = libiconv-$(GNU_ICONV_VER).tar.gz |
| NEON_DIST = neon-$(NEON_VER).tar.gz |
| SQLITE_DIST = sqlite-autoconf-$(SQLITE_VER).tar.gz |
| CYRUS_SASL_DIST = cyrus-sasl-$(CYRUS_SASL_VER).tar.gz |
| PCRE_DIST = pcre-$(PCRE_VER).tar.gz |
| HTTPD_DIST = httpd-$(HTTPD_VER).tar.gz |
| LIBMAGIC_DIST = file-$(LIBMAGIC_VER).tar.gz |
| RUBY_DIST = ruby-$(RUBY_VER).tar.gz |
| BZ2_DIST = bzip2-$(BZ2_VER).tar.gz |
| PYTHON_DIST = Python-$(PYTHON_VER).tgz |
| PYTHON2_DIST = Python-$(PYTHON2_VER).tgz |
| PY3C_DIST = py3c-$(PY3C_VER).tar.gz |
| JUNIT_DIST = junit-${JUNIT_VER}.jar |
| GETTEXT_DIST = gettext-$(GETTEXT_VER).tar.gz |
| LZ4_DIST = lz4-$(LZ4_VER).tar.gz |
| |
| SHA256_${BDB_DIST} = f14fd96dd38915a1d63dcb94a63fbb8092334ceba6b5060760427096f631263e |
| SHA256_${APR_ICONV_DIST} = 19381959d50c4a5f3b9c84d594a5f9ffb3809786919b3058281f4c87e1f4b245 |
| SHA256_${GNU_ICONV_DIST} = ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178 |
| SHA256_${PCRE_DIST} = 244838e1f1d14f7e2fa7681b857b3a8566b74215f28133f14a8f5e59241b682c |
| SHA256_${HTTPD_DIST} = aa97a834a32d51974be8d8a013b561e28d327387cb1da2c3c2762acd0146aabd |
| SHA256_${NEON_DIST} = db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca |
| SHA256_${CYRUS_SASL_DIST} = 418c16e6240a4f9b637cbe3d62937b9675627bad27c622191d47de8686fe24fe |
| SHA256_${SQLITE_DIST} = 65cc0c3e9366f50c0679c5ccd31432cea894bc4a3e8947dabab88c8693263615 |
| SHA256_${LIBMAGIC_DIST} = 694c2432e5240187524c9e7cf1ec6acc77b47a0e19554d34c14773e43dbbf214 |
| SHA256_${RUBY_DIST} = 254f1c1a79e4cc814d1e7320bc5bdd995dc57e08727d30a767664619a9c8ae5a |
| SHA256_${BZ2_DIST} = a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd |
| SHA256_${PYTHON_DIST} = 8ecc681ea0600bbfb366f2b173f727b205bb825d93d2f0b286bc4e58d37693da |
| SHA256_${PYTHON2_DIST} = a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1 |
| SHA256_${PY3C_DIST} = c7ffc22bc92dded0ca859db53ef3a0b466f89a9f8aad29359c9fe4ff18ebdd20 |
| SHA256_${JUNIT_DIST} = 36a747ca1e0b86f6ea88055b8723bb87030d627766da6288bf077afdeeb0f75a |
| SHA256_${GETTEXT_DIST} = ff942af0e438ced4a8b0ea4b0b6e0d6d657157c5e2364de57baa279c1c125c43 |
| SHA256_${LZ4_DIST} = 0190cacd63022ccb86f44fa5041dc6c3804407ad61550ca21c382827319e7e7e |
| |
| define do_check_sha256 |
| if [ -x /bin/sha256 ]; then \ |
| (cd $(DISTDIR) && \ |
| echo "SHA256 (${1}) = ${SHA256_${1}}" | /bin/sha256 -C /dev/stdin "${1}"); \ |
| elif [ -x /usr/bin/sha256sum ]; then \ |
| (cd $(DISTDIR) && \ |
| echo "${SHA256_${1}} ${1}" | /usr/bin/sha256sum --quiet --check); \ |
| else \ |
| echo "Error: No tool found to verify checksum"; \ |
| false; \ |
| fi |
| endef |
| |
| DISTFILES = $(DISTDIR)/$(NEON_DIST) \ |
| $(DISTDIR)/$(SERF_DIST) \ |
| $(DISTDIR)/$(SQLITE_DIST) \ |
| $(DISTDIR)/$(PCRE_DIST) \ |
| $(DISTDIR)/$(HTTPD_DIST) \ |
| $(DISTDIR)/$(APR_ICONV_DIST) \ |
| $(DISTDIR)/$(GNU_ICONV_DIST) \ |
| $(DISTDIR)/$(CYRUS_SASL_DIST) \ |
| $(DISTDIR)/$(LIBMAGIC_DIST) \ |
| $(DISTDIR)/$(RUBY_DIST) \ |
| $(DISTDIR)/$(BZ2_DIST) \ |
| $(DISTDIR)/$(PYTHON_DIST) \ |
| $(DISTDIR)/$(PYTHON2_DIST) \ |
| $(DISTDIR)/$(PY3C_DIST) \ |
| $(DISTDIR)/$(JUNIT_DIST) \ |
| $(DISTDIR)/$(GETTEXT_DIST) |
| |
| 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://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 |
| PCRE_URL = https://ftp.pcre.org/pub/pcre/$(PCRE_DIST) |
| HTTPD_URL = https://archive.apache.org/dist/httpd/$(HTTPD_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 = https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-${CYRUS_SASL_VER}/$(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 = https://stsp.name/distfiles/$(BZ2_DIST) |
| PYTHON_URL = https://python.org/ftp/python/$(PYTHON_VER)/$(PYTHON_DIST) |
| PYTHON2_URL = https://python.org/ftp/python/$(PYTHON2_VER)/$(PYTHON2_DIST) |
| PY3C_URL = https://stsp.name/distfiles/py3c-${PY3C_VER}.tar.gz |
| JUNIT_URL = https://stsp.name/distfiles/$(JUNIT_DIST) |
| GETTEXT_URL = https://ftp.gnu.org/pub/gnu/gettext/$(GETTEXT_DIST) |
| LZ4_URL = https://github.com/lz4/lz4/archive/v$(LZ4_VER).tar.gz |
| |
| |
| BDB_SRCDIR = $(SRCDIR)/db-$(BDB_VER) |
| APR_SRCDIR = $(SRCDIR)/apr-$(APR_VER) |
| APR_ICONV_SRCDIR = $(SRCDIR)/apr-iconv-$(APR_ICONV_VER) |
| GNU_ICONV_SRCDIR = $(SRCDIR)/libiconv-$(GNU_ICONV_VER) |
| APR_UTIL_SRCDIR = $(SRCDIR)/apr-util-$(APR_UTIL_VER) |
| PCRE_SRCDIR = $(SRCDIR)/pcre-$(PCRE_VER) |
| HTTPD_SRCDIR = $(SRCDIR)/httpd-$(HTTPD_VER) |
| NEON_SRCDIR = $(SRCDIR)/neon-$(NEON_VER) |
| SERF_SRCDIR = $(SRCDIR)/serf-$(SERF_VER) |
| SERF_OLD_SRCDIR = $(SRCDIR)/serf-$(SERF_OLD_VER) |
| SQLITE_SRCDIR = $(SRCDIR)/sqlite-autoconf-$(SQLITE_VER) |
| CYRUS_SASL_SRCDIR = $(SRCDIR)/cyrus-sasl-$(CYRUS_SASL_VER) |
| LIBMAGIC_SRCDIR = $(SRCDIR)/file-$(LIBMAGIC_VER) |
| RUBY_SRCDIR = $(SRCDIR)/ruby-$(RUBY_VER) |
| BZ2_SRCDIR = $(SRCDIR)/bzip2-$(BZ2_VER) |
| PYTHON_SRCDIR = $(SRCDIR)/Python-$(PYTHON_VER) |
| PYTHON2_SRCDIR = $(SRCDIR)/Python-$(PYTHON2_VER) |
| PY3C_SRCDIR = $(SRCDIR)/py3c-$(PY3C_VER) |
| GETTEXT_SRCDIR = $(SRCDIR)/gettext-$(GETTEXT_VER) |
| LZ4_SRCDIR = ${SRCDIR}/lz4-$(LZ4_VER) |
| SVN_SRCDIR = $(SVN_WC) |
| |
| BDB_OBJDIR = $(OBJDIR)/db-$(BDB_VER) |
| APR_OBJDIR = $(OBJDIR)/apr-$(APR_VER) |
| APR_ICONV_OBJDIR = $(OBJDIR)/apr-iconv-$(APR_ICONV_VER) |
| GNU_ICONV_OBJDIR = $(OBJDIR)/libiconv-$(GNU_ICONV_VER) |
| APR_UTIL_OBJDIR = $(OBJDIR)/apr-util-$(APR_UTIL_VER) |
| PCRE_OBJDIR = $(OBJDIR)/pcre-$(PCRE_VER) |
| HTTPD_OBJDIR = $(OBJDIR)/httpd-$(HTTPD_VER) |
| NEON_OBJDIR = $(OBJDIR)/neon-$(NEON_VER) |
| SERF_OBJDIR = $(OBJDIR)/serf-$(SERF_VER) |
| SERF_OLD_OBJDIR = $(OBJDIR)/serf-$(SERF_OLD_VER) |
| SQLITE_OBJDIR = $(OBJDIR)/sqlite-$(SQLITE_VER) |
| CYRUS_SASL_OBJDIR = $(OBJDIR)/cyrus-sasl-$(CYRUS_SASL_VER) |
| LIBMAGIC_OBJDIR = $(OBJDIR)/file-$(LIBMAGIC_VER) |
| RUBY_OBJDIR = $(OBJDIR)/ruby-$(RUBY_VER) |
| BZ2_OBJDIR = $(OBJDIR)/bzip2-$(BZ2_VER) |
| PYTHON_OBJDIR = $(OBJDIR)/python-$(PYTHON_VER) |
| PYTHON2_OBJDIR = $(OBJDIR)/python-$(PYTHON2_VER) |
| PY3C_OBJDIR = $(OBJDIR)/py3c-$(PY3C_VER) |
| GETTEXT_OBJDIR = $(OBJDIR)/gettext-$(GETTEXT_VER) |
| LZ4_OBJDIR = ${OBJDIR}/lz4-$(LZ4_VER) |
| SVN_OBJDIR = $(OBJDIR)/$(SVN_REL_WC) |
| |
| # Tweak this for out-of-tree builds. Note that running individual |
| # tests in the test suite won't work conveniently with out-of-tree |
| # builds! |
| svn_builddir ?=$(SVN_WC) |
| |
| ifdef PROFILE |
| PROFILE_CFLAGS=-pg |
| 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)/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)/lz4/lib/pkgconfig |
| |
| |
| ####################################################################### |
| # Main targets. |
| ####################################################################### |
| |
| .PHONY: all reset clean nuke fetch |
| |
| all: dirs-create bdb-install apr-install iconv-install apr-util-install \ |
| pcre-install httpd-install neon-install serf-install serf-old-install \ |
| sqlite-install cyrus-sasl-install libmagic-install \ |
| ruby-install bz2-install python-install python2-install py3c-retrieve \ |
| gettext-install lz4-install svn-install svn-bindings-install |
| |
| # Use these to start a build from the beginning. |
| reset: dirs-reset bdb-reset apr-reset iconv-reset apr-util-reset \ |
| pcre-reset httpd-reset neon-reset serf-reset serf-old-reset \ |
| sqlite-reset cyrus-sasl-reset libmagic-reset ruby-reset python-reset \ |
| python2-reset bz2-reset gettext-reset lz4-reset svn-reset |
| |
| # Use to save disk space. |
| clean: bdb-clean apr-clean iconv-clean apr-util-clean pcre-clean httpd-clean \ |
| neon-clean serf-clean serf-old-clean sqlite-clean cyrus-sasl-clean \ |
| libmagic-clean ruby-clean bz2-clean python-clean python2-clean \ |
| gettext-clean lz4-clean svn-clean |
| |
| # Nukes everything (including installed binaries!) |
| # Use this to start ALL OVER AGAIN! Use with caution! |
| nuke: |
| @echo |
| @echo "I will now remove the following directories PERMANENTLY:" |
| @echo |
| @echo " $(SRCDIR)" |
| @echo " $(OBJDIR)" |
| @echo " $(PREFIX)" |
| @echo |
| @echo -n 'Do you want me to continue? ([no]/yes): ' |
| @read ANSWER ; \ |
| case $$ANSWER in \ |
| yes) echo "You said $$ANSWER. I will continue."; \ |
| echo rm -rf $(SRCDIR) $(OBJDIR) $(PREFIX); \ |
| rm -rf $(SRCDIR) $(OBJDIR) $(PREFIX); \ |
| $(MAKE) reset; \ |
| ;; \ |
| "") echo "You said no."; \ |
| ;; \ |
| *) echo "You said $$ANSWER."; \ |
| ;; \ |
| esac |
| |
| fetch: $(DISTFILES) |
| |
| ####################################################################### |
| # directories |
| ####################################################################### |
| |
| dirs-create: $(PWD)/.dirs-created |
| dirs-reset: |
| rm -f $(PWD)/.dirs-created |
| |
| $(PWD)/.dirs-created: |
| $(foreach d, $(PREFIX) $(DISTDIR) $(SRCDIR) $(OBJDIR), \ |
| [ -d $(d) ] || mkdir -p $(d);) |
| touch $@ |
| |
| ####################################################################### |
| # bdb |
| ####################################################################### |
| |
| bdb-retrieve: $(BDB_OBJDIR)/.retrieved |
| bdb-configure: $(BDB_OBJDIR)/.configured |
| bdb-compile: $(BDB_OBJDIR)/.compiled |
| bdb-install: $(BDB_OBJDIR)/.installed |
| bdb-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(BDB_OBJDIR)/$(f);) |
| |
| bdb-clean: |
| -(cd $(BDB_SRCDIR)/build_unix/ && env MAKEFLAGS= make clean) |
| |
| # fetch distfile for bdb |
| $(DISTDIR)/$(BDB_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(BDB_URL) |
| |
| # retrieve bdb |
| $(BDB_OBJDIR)/.retrieved: $(DISTDIR)/$(BDB_DIST) |
| $(call do_check_sha256,$(BDB_DIST)) |
| [ -d $(BDB_OBJDIR) ] || mkdir -p $(BDB_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(BDB_DIST) |
| touch $@ |
| |
| # configure bdb |
| $(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 |
| touch $@ |
| |
| # compile bdb |
| $(BDB_OBJDIR)/.compiled: $(BDB_OBJDIR)/.configured |
| (cd $(BDB_SRCDIR)/build_unix && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install bdb |
| $(BDB_OBJDIR)/.installed: $(BDB_OBJDIR)/.compiled |
| (cd $(BDB_SRCDIR)/build_unix && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # apr |
| ####################################################################### |
| |
| apr-retrieve: $(APR_OBJDIR)/.retrieved |
| apr-configure: $(APR_OBJDIR)/.configured |
| apr-compile: $(APR_OBJDIR)/.compiled |
| apr-install: $(APR_OBJDIR)/.installed |
| apr-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(APR_OBJDIR)/$(f);) |
| |
| apr-clean: |
| -(cd $(APR_OBJDIR) && env MAKEFLAGS= make clean) |
| |
| # retrieve apr if not present yet |
| $(APR_OBJDIR)/.retrieved: |
| [ -d $(APR_OBJDIR) ] || mkdir -p $(APR_OBJDIR) |
| if [ ! -d $(APR_SRCDIR) ]; then \ |
| svn export $(APR_URL)/tags/$(APR_VER)/ $(APR_SRCDIR); \ |
| fi |
| touch $@ |
| |
| ifeq ($(THREADING),yes) |
| THREADS_FLAG=--enable-threads |
| else |
| THREADS_FLAG=--disable-threads |
| endif |
| |
| ifdef POOL_DEBUG |
| POOL_DEBUG_FLAG=--enable-pool-debug=all |
| else |
| # Map apr_palloc()/apr_pool_{clear,destroy}() to malloc()/free(). |
| # This also puts poison bytes into freed memory to help detect use after free. |
| POOL_DEBUG_FLAG=--enable-pool-debug=yes |
| endif |
| |
| # configure apr |
| $(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 \ |
| $(THREADS_FLAG) \ |
| $(POOL_DEBUG_FLAG) |
| touch $@ |
| |
| # compile apr |
| $(APR_OBJDIR)/.compiled: $(APR_OBJDIR)/.configured |
| (cd $(APR_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install apr |
| $(APR_OBJDIR)/.installed: $(APR_OBJDIR)/.compiled |
| (cd $(APR_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # apr-iconv |
| ####################################################################### |
| |
| apr-iconv-retrieve: $(APR_ICONV_OBJDIR)/.retrieved |
| apr-iconv-configure: $(APR_ICONV_OBJDIR)/.configured |
| apr-iconv-compile: $(APR_ICONV_OBJDIR)/.compiled |
| apr-iconv-install: $(APR_ICONV_OBJDIR)/.installed |
| apr-iconv-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(APR_ICONV_OBJDIR)/$(f);) |
| |
| apr-iconv-clean: |
| -(cd $(APR_ICONV_OBJDIR) && env MAKEFLAGS= make clean) |
| |
| # fetch distfile for apr-iconv |
| $(DISTDIR)/$(APR_ICONV_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(APR_ICONV_URL) |
| |
| # retrieve apr-iconv |
| $(APR_ICONV_OBJDIR)/.retrieved: $(DISTDIR)/$(APR_ICONV_DIST) |
| $(call do_check_sha256,$(APR_ICONV_DIST)) |
| [ -d $(APR_ICONV_OBJDIR) ] || mkdir -p $(APR_ICONV_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(APR_ICONV_DIST) |
| touch $@ |
| |
| # configure apr-iconv |
| $(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 |
| touch $@ |
| |
| # 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)" -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install apr-iconv |
| $(APR_ICONV_OBJDIR)/.installed: $(APR_ICONV_OBJDIR)/.compiled |
| (cd $(APR_ICONV_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # gnu-iconv |
| ####################################################################### |
| |
| gnu-iconv-retrieve: $(GNU_ICONV_OBJDIR)/.retrieved |
| gnu-iconv-configure: $(GNU_ICONV_OBJDIR)/.configured |
| gnu-iconv-compile: $(GNU_ICONV_OBJDIR)/.compiled |
| gnu-iconv-install: $(GNU_ICONV_OBJDIR)/.installed |
| gnu-iconv-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(GNU_ICONV_OBJDIR)/$(f);) |
| |
| gnu-iconv-clean: |
| -(cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make clean) |
| rm -f $(GNU_ICONV_OBJDIR)/lib_encodings.def.diff |
| rm -f $(GNU_ICONV_OBJDIR)/lib_aliases.gperf.diff |
| |
| # fetch distfile for gnu-iconv |
| $(DISTDIR)/$(GNU_ICONV_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(GNU_ICONV_URL) |
| |
| $(GNU_ICONV_OBJDIR)/lib_encodings.def.diff: |
| mkdir -p $(dir $@) |
| echo > $@.tmp '--- lib/encodings.def.orig Wed Oct 24 23:41:41 2007' |
| echo >>$@.tmp '+++ lib/encodings.def Wed Oct 24 23:43:47 2007' |
| echo >>$@.tmp '@@ -37,6 +37,7 @@' |
| echo >>$@.tmp ' ' |
| echo >>$@.tmp ' ' |
| echo >>$@.tmp ' DEFENCODING(( "US-ASCII", /* IANA */' |
| echo >>$@.tmp '+ "646",' |
| echo >>$@.tmp ' "ASCII", /* IANA, JDK 1.1 */' |
| echo >>$@.tmp ' "ISO646-US", /* IANA */' |
| echo >>$@.tmp ' "ISO_646.IRV:1991", /* IANA */' |
| mv -f $@.tmp $@ |
| |
| $(GNU_ICONV_OBJDIR)/lib_aliases.gperf.diff: |
| mkdir -p $(dir $@) |
| echo > $@.tmp '--- lib/aliases.gperf.orig Wed Oct 24 23:41:32 2007' |
| echo >>$@.tmp '+++ lib/aliases.gperf Wed Oct 24 23:47:38 2007' |
| echo >>$@.tmp '@@ -10,6 +10,7 @@ struct alias { int name; unsigned int encoding_index; ' |
| echo >>$@.tmp ' %pic' |
| echo >>$@.tmp ' %%' |
| echo >>$@.tmp ' US-ASCII, ei_ascii' |
| echo >>$@.tmp '+646, ei_ascii' |
| echo >>$@.tmp ' ASCII, ei_ascii' |
| echo >>$@.tmp ' ISO646-US, ei_ascii' |
| echo >>$@.tmp ' ISO_646.IRV:1991, ei_ascii' |
| mv -f $@.tmp $@ |
| |
| # retrieve gnu-iconv |
| # Add 646 as an alias for ASCII to fix prop_test 22 on OpenBSD |
| $(GNU_ICONV_OBJDIR)/.retrieved: $(DISTDIR)/$(GNU_ICONV_DIST) \ |
| $(GNU_ICONV_OBJDIR)/lib_encodings.def.diff \ |
| $(GNU_ICONV_OBJDIR)/lib_aliases.gperf.diff |
| $(call do_check_sha256,$(GNU_ICONV_DIST)) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(GNU_ICONV_DIST) |
| cd $(SRCDIR)/libiconv-$(GNU_ICONV_VER) && \ |
| patch -p0 < $(GNU_ICONV_OBJDIR)/lib_encodings.def.diff && \ |
| patch -p0 < $(GNU_ICONV_OBJDIR)/lib_aliases.gperf.diff |
| touch $@ |
| |
| # configure gnu-iconv |
| $(GNU_ICONV_OBJDIR)/.configured: $(GNU_ICONV_OBJDIR)/.retrieved |
| cd $(SRCDIR)/libiconv-${GNU_ICONV_VER} && \ |
| ${MAKE} -f Makefile.devel lib/aliases.h |
| cd $(GNU_ICONV_OBJDIR) \ |
| && env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\ |
| CC=$(CC) CXX=$(CXX) \ |
| PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \ |
| $(GNU_ICONV_SRCDIR)/configure \ |
| --prefix=$(PREFIX)/iconv \ |
| --enable-extra-encodings |
| touch $@ |
| |
| # compile gnu-iconv |
| $(GNU_ICONV_OBJDIR)/.compiled: $(GNU_ICONV_OBJDIR)/.configured |
| (cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install gnu-iconv |
| $(GNU_ICONV_OBJDIR)/.installed: $(GNU_ICONV_OBJDIR)/.compiled |
| (cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # iconv |
| ####################################################################### |
| |
| .PHONY: iconv-install iconv-reset iconv-clean |
| |
| ifeq ($(USE_APR_ICONV),yes) |
| iconv-install: apr-iconv-install |
| iconv-reset: apr-iconv-reset |
| iconv-clean: apr-iconv-clean |
| else |
| iconv-install: gnu-iconv-install |
| iconv-reset: gnu-iconv-reset |
| iconv-clean: gnu-iconv-clean |
| endif |
| |
| ####################################################################### |
| # apr-util |
| ####################################################################### |
| |
| apr-util-retrieve: $(APR_UTIL_OBJDIR)/.retrieved |
| apr-util-configure: $(APR_UTIL_OBJDIR)/.configured |
| apr-util-compile: $(APR_UTIL_OBJDIR)/.compiled |
| apr-util-install: $(APR_UTIL_OBJDIR)/.installed |
| apr-util-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(APR_UTIL_OBJDIR)/$(f);) |
| |
| apr-util-clean: |
| -(cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make clean) |
| |
| |
| # retrieve apr-util if not present yet |
| $(APR_UTIL_OBJDIR)/.retrieved: |
| [ -d $(APR_UTIL_OBJDIR) ] || mkdir -p $(APR_UTIL_OBJDIR) |
| if [ ! -d $(APR_UTIL_SRCDIR) ]; then \ |
| svn export $(APR_UTIL_URL)/tags/$(APR_UTIL_VER)/ \ |
| $(APR_UTIL_SRCDIR); \ |
| fi |
| touch $@ |
| |
| ifeq ($(USE_APR_ICONV),yes) |
| ICONV_FLAG=--with-iconv=$(PREFIX)/apr |
| ICONV_OBJDIR=$(APR_ICONV_OBJDIR) |
| else |
| ICONV_FLAG=--with-iconv=$(PREFIX)/iconv |
| ICONV_OBJDIR=$(GNU_ICONV_OBJDIR) |
| endif |
| |
| # configure apr-util |
| $(APR_UTIL_OBJDIR)/.configured: $(APR_UTIL_OBJDIR)/.retrieved \ |
| $(APR_OBJDIR)/.installed $(ICONV_OBJDIR)/.installed |
| 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 \ |
| --enable-maintainer-mode \ |
| --with-apr=$(PREFIX)/apr \ |
| --with-berkeley-db=$(PREFIX)/bdb \ |
| $(ICONV_FLAG) |
| touch $@ |
| |
| # compile apr-util |
| $(APR_UTIL_OBJDIR)/.compiled: $(APR_UTIL_OBJDIR)/.configured |
| (cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install apr-util |
| $(APR_UTIL_OBJDIR)/.installed: $(APR_UTIL_OBJDIR)/.compiled |
| (cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # pcre |
| ####################################################################### |
| |
| pcre-retrieve: $(PCRE_OBJDIR)/.retrieved |
| pcre-configure: $(PCRE_OBJDIR)/.configured |
| pcre-compile: $(PCRE_OBJDIR)/.compiled |
| pcre-install: $(PCRE_OBJDIR)/.installed |
| pcre-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(PCRE_OBJDIR)/$(f);) |
| |
| pcre-clean: |
| -(cd $(PCRE_OBJDIR) && env MAKEFLAGS= make clean) |
| |
| # fetch distfile for pcre |
| $(DISTDIR)/$(PCRE_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(PCRE_URL) |
| |
| # retrieve pcre |
| $(PCRE_OBJDIR)/.retrieved: $(DISTDIR)/$(PCRE_DIST) |
| $(call do_check_sha256,$(PCRE_DIST)) |
| [ -d $(PCRE_OBJDIR) ] || mkdir -p $(PCRE_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(PCRE_DIST) |
| touch $@ |
| |
| # configure pcre |
| $(PCRE_OBJDIR)/.configured: $(PCRE_OBJDIR)/.retrieved |
| cd $(PCRE_OBJDIR) \ |
| && env CFLAGS="-g $(PROFILE_CFLAGS)" \ |
| CC=$(CC) CXX=$(CXX) \ |
| GREP="`which grep`" \ |
| PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \ |
| $(PCRE_SRCDIR)/configure \ |
| --prefix=$(PREFIX)/pcre |
| touch $@ |
| |
| # compile pcre |
| $(PCRE_OBJDIR)/.compiled: $(PCRE_OBJDIR)/.configured |
| (cd $(PCRE_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install pcre |
| $(PCRE_OBJDIR)/.installed: $(PCRE_OBJDIR)/.compiled |
| (cd $(PCRE_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # httpd |
| ####################################################################### |
| |
| HTTPD_CONF= $(PREFIX)/httpd/conf/httpd-$(SVN_REL_WC).conf |
| httpd-retrieve: $(HTTPD_OBJDIR)/.retrieved |
| httpd-configure: $(HTTPD_OBJDIR)/.configured |
| httpd-compile: $(HTTPD_OBJDIR)/.compiled |
| httpd-install: $(HTTPD_OBJDIR)/.installed $(HTTPD_CONF) |
| httpd-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(HTTPD_OBJDIR)/$(f);) |
| |
| httpd-clean: |
| -(cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make clean) |
| rm -f $(HTTPD_OBJDIR)/mod-proxy-no-threads-2.4.diff |
| rm -f $(HTTPD_OBJDIR)/ssl-init-proxy-certs.diff |
| |
| # fetch distfile for httpd |
| $(DISTDIR)/$(HTTPD_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(HTTPD_URL) |
| |
| $(HTTPD_OBJDIR)/ssl-init-proxy-certs.diff: |
| mkdir -p $(dir $@) |
| echo > $@.tmp '--- modules/ssl/ssl_engine_init.c.orig Sun Dec 16 13:34:14 2018' |
| echo >> $@.tmp '+++ modules/ssl/ssl_engine_init.c Sun Dec 16 13:34:59 2018' |
| echo >> $@.tmp '@@ -1492,7 +1492,7 @@' |
| echo >> $@.tmp ' X509_STORE_CTX *sctx;' |
| echo >> $@.tmp ' X509_STORE *store = SSL_CTX_get_cert_store(mctx->ssl_ctx);' |
| echo >> $@.tmp ' ' |
| echo >> $@.tmp '-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL' |
| echo >> $@.tmp '+#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(LIBRESSL_VERSION_NUMBER)' |
| echo >> $@.tmp ' /* For OpenSSL >=1.1.1, turn on client cert support which is' |
| echo >> $@.tmp ' * otherwise turned off by default (by design).' |
| echo >> $@.tmp ' * https://github.com/openssl/openssl/issues/6933 */' |
| mv -f $@.tmp $@ |
| |
| $(HTTPD_OBJDIR)/mod-proxy-no-threads-2.4.diff: |
| cd $(HTTPD_OBJDIR) && $(FETCH_CMD) https://stsp.name/mod-proxy-no-threads-2.4.diff |
| |
| # retrieve httpd |
| $(HTTPD_OBJDIR)/.retrieved: $(DISTDIR)/$(HTTPD_DIST) \ |
| $(HTTPD_OBJDIR)/ssl-init-proxy-certs.diff \ |
| $(HTTPD_OBJDIR)/mod-proxy-no-threads-2.4.diff |
| $(call do_check_sha256,$(HTTPD_DIST)) |
| [ -d $(HTTPD_OBJDIR) ] || mkdir -p $(HTTPD_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(HTTPD_DIST) |
| (cd $(HTTPD_SRCDIR) && patch -p0 < $(HTTPD_OBJDIR)/ssl-init-proxy-certs.diff) |
| (cd $(HTTPD_SRCDIR) && patch -p0 < $(HTTPD_OBJDIR)/mod-proxy-no-threads-2.4.diff) |
| (cd $(HTTPD_SRCDIR) && svn diff -cr1849590 https://svn.apache.org/repos/asf/httpd/httpd/trunk | patch -p0) |
| (cd $(HTTPD_SRCDIR) && svn diff -cr1663375 https://svn.apache.org/repos/asf/httpd/httpd/trunk | patch -p0) |
| touch $@ |
| |
| # configure httpd |
| $(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJDIR)/.retrieved \ |
| $(APR_UTIL_OBJDIR)/.installed $(PCRE_OBJDIR)/.installed |
| cd $(HTTPD_SRCDIR) && ./buildconf \ |
| --with-apr="$(PREFIX)/apr/bin/apr-1-config" \ |
| --with-apr-util="$(PREFIX)/apr/bin/apu-1-config" |
| 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 \ |
| --with-mpm=prefork \ |
| --enable-ssl \ |
| --enable-dav \ |
| --enable-proxy \ |
| --disable-md \ |
| --disable-http2 \ |
| --disable-brotli \ |
| --with-apr="$(PREFIX)/apr/bin/apr-1-config" \ |
| --with-apr-util="$(PREFIX)/apr/bin/apu-1-config" \ |
| --with-pcre="$(PREFIX)/pcre" |
| touch $@ |
| |
| # compile httpd |
| $(HTTPD_OBJDIR)/.compiled: $(HTTPD_OBJDIR)/.configured |
| (cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install httpd |
| $(HTTPD_OBJDIR)/.installed: $(HTTPD_OBJDIR)/.compiled |
| (cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| # create a httpd.conf for mod_dav_svn |
| $(HTTPD_CONF): |
| mkdir -p $(dir $@) |
| echo > $@.tmp '# httpd config for use with mod_dav_svn' |
| echo >>$@.tmp 'ServerRoot "$(PREFIX)/httpd"' |
| echo >>$@.tmp 'Listen localhost:8080' |
| echo >>$@.tmp 'LoadModule unixd_module modules/mod_unixd.so' |
| echo >>$@.tmp 'LoadModule alias_module modules/mod_alias.so' |
| echo >>$@.tmp 'LoadModule access_compat_module modules/mod_access_compat.so' |
| echo >>$@.tmp 'LoadModule authn_core_module modules/mod_authn_core.so' |
| echo >>$@.tmp 'LoadModule authn_file_module modules/mod_authn_file.so' |
| echo >>$@.tmp 'LoadModule authz_core_module modules/mod_authz_core.so' |
| echo >>$@.tmp 'LoadModule authz_user_module modules/mod_authz_user.so' |
| echo >>$@.tmp 'LoadModule authz_groupfile_module modules/mod_authz_groupfile.so' |
| echo >>$@.tmp 'LoadModule auth_basic_module modules/mod_auth_basic.so' |
| echo >>$@.tmp 'LoadModule dav_module modules/mod_dav.so' |
| echo >>$@.tmp 'LoadModule dav_svn_module modules/svn-$(WC)/mod_dav_svn.so' |
| echo >>$@.tmp 'LoadModule authz_svn_module modules/svn-$(WC)/mod_authz_svn.so' |
| echo >>$@.tmp 'DocumentRoot "$(PREFIX)/httpd/htdocs"' |
| echo >>$@.tmp '<Directory />' |
| echo >>$@.tmp ' Options FollowSymLinks' |
| echo >>$@.tmp ' AllowOverride None' |
| echo >>$@.tmp ' Require all denied' |
| echo >>$@.tmp '</Directory>' |
| echo >>$@.tmp '<Location /repos>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNPath /tmp/svn-sandbox/repos' |
| echo >>$@.tmp ' Require ip localhost' |
| echo >>$@.tmp '</Location>' |
| mv -f $@.tmp $@ |
| |
| ####################################################################### |
| # neon |
| ####################################################################### |
| |
| neon-retrieve: $(NEON_OBJDIR)/.retrieved |
| neon-configure: $(NEON_OBJDIR)/.configured |
| neon-compile: $(NEON_OBJDIR)/.compiled |
| neon-install: $(NEON_OBJDIR)/.installed |
| neon-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(NEON_OBJDIR)/$(f);) |
| |
| neon-clean: |
| -(cd $(NEON_OBJDIR) && env MAKEFLAGS= make clean) |
| |
| # fetch distfile for neon |
| $(DISTDIR)/$(NEON_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(NEON_URL) |
| |
| # retrieve neon |
| $(NEON_OBJDIR)/.retrieved: $(DISTDIR)/$(NEON_DIST) |
| $(call do_check_sha256,$(NEON_DIST)) |
| [ -d $(NEON_OBJDIR) ] || mkdir -p $(NEON_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(NEON_DIST) |
| touch $@ |
| |
| # OpenBSD does not have krb5-config in PATH, but the neon port has |
| # a suitable replacement. |
| ifeq ($(UNAME),OpenBSD) |
| KRB5_CONFIG_PATH=/usr/ports/net/neon/files |
| endif |
| |
| # configure neon |
| $(NEON_OBJDIR)/.configured: $(NEON_OBJDIR)/.retrieved |
| cd $(NEON_SRCDIR) && ./autogen.sh |
| if [ -n "$(KRB5_CONFIG_PATH)" ] && [ -d "$(KRB5_CONFIG_PATH)" ]; then \ |
| cp $(KRB5_CONFIG_PATH)/krb5-config $(NEON_OBJDIR); \ |
| chmod +x $(NEON_OBJDIR)/krb5-config; \ |
| 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 \ |
| --with-ssl \ |
| --enable-shared \ |
| --without-libproxy |
| touch $@ |
| |
| # compile neon |
| $(NEON_OBJDIR)/.compiled: $(NEON_OBJDIR)/.configured |
| (cd $(NEON_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install neon |
| $(NEON_OBJDIR)/.installed: $(NEON_OBJDIR)/.compiled |
| (cd $(NEON_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| |
| ####################################################################### |
| # serf |
| ####################################################################### |
| |
| serf-retrieve: $(SERF_OBJDIR)/.retrieved |
| serf-configure: $(SERF_OBJDIR)/.configured |
| serf-compile: $(SERF_OBJDIR)/.compiled |
| serf-install: $(SERF_OBJDIR)/.installed |
| serf-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(SERF_OBJDIR)/$(f);) |
| |
| serf-clean: |
| -(cd $(SERF_SRCDIR) && scons -c) |
| |
| |
| # fetch distfile for serf |
| #$(DISTDIR)/$(SERF_DIST): |
| # cd $(DISTDIR) && $(FETCH_CMD) $(SERF_URL) |
| # |
| # retrieve serf |
| #$(SERF_OBJDIR)/.retrieved: $(DISTDIR)/$(SERF_DIST) |
| # [ -d $(SERF_OBJDIR) ] || mkdir -p $(SERF_OBJDIR) |
| # tar -C $(SRCDIR) -zxf $(DISTDIR)/$(SERF_DIST) |
| # touch $@ |
| |
| # retrieve serf if not present yet |
| $(SERF_OBJDIR)/.retrieved: |
| [ -d $(SERF_OBJDIR) ] || mkdir -p $(SERF_OBJDIR) |
| if [ ! -d $(SERF_SRCDIR) ]; then \ |
| svn co $(SERF_URL) $(SERF_SRCDIR); \ |
| svn merge ^/serf/branches/1.3.x-sslbuild@1781542 $(SERF_SRCDIR); \ |
| fi |
| touch $@ |
| |
| # compile serf (serf won't compile outside its source tree) |
| $(SERF_OBJDIR)/.compiled: $(SERF_OBJDIR)/.retrieved \ |
| $(APR_UTIL_OBJDIR)/.installed |
| cd $(SERF_SRCDIR) && \ |
| 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 \ |
| PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) |
| touch $@ |
| |
| # install serf |
| $(SERF_OBJDIR)/.installed: $(SERF_OBJDIR)/.compiled |
| rm -rf $(PREFIX)/serf # XXX scons cannot reinstall :( |
| cd $(SERF_SRCDIR) && \ |
| scons install |
| # work around unportable scons shared lib support |
| -ln -s libserf-1.so.$(shell echo $(SERF_VER) | sed -e 's/[0-9]$$/0/') \ |
| $(PREFIX)/serf/lib/libserf-1.so |
| touch $@ |
| |
| ####################################################################### |
| # serf-old (compatible with Subversion 1.5) |
| ####################################################################### |
| |
| serf-old-retrieve: $(SERF_OLD_OBJDIR)/.retrieved |
| serf-old-configure: $(SERF_OLD_OBJDIR)/.configured |
| serf-old-compile: $(SERF_OLD_OBJDIR)/.compiled |
| serf-old-install: $(SERF_OLD_OBJDIR)/.installed |
| serf-old-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(SERF_OLD_OBJDIR)/$(f);) |
| |
| serf-old-clean: |
| -(cd $(SERF_OLD_SRCDIR) && ./serfmake clean) |
| |
| # retrieve serf if not present yet |
| $(SERF_OLD_OBJDIR)/.retrieved: |
| [ -d $(SERF_OLD_OBJDIR) ] || mkdir -p $(SERF_OLD_OBJDIR) |
| if [ ! -d $(SERF_OLD_SRCDIR) ]; then \ |
| svn export $(SERF_OLD_URL) $(SERF_OLD_SRCDIR); \ |
| fi |
| touch $@ |
| |
| # compile serf (serf won't compile outside its source tree) |
| $(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 |
| touch $@ |
| |
| # install serf |
| $(SERF_OLD_OBJDIR)/.installed: $(SERF_OLD_OBJDIR)/.compiled |
| cd $(SERF_OLD_SRCDIR) && \ |
| ./serfmake --with-apr=$(PREFIX)/apr \ |
| --with-apr-util=$(PREFIX)/apr \ |
| --prefix=$(PREFIX)/serf-old \ |
| install |
| touch $@ |
| |
| |
| ####################################################################### |
| # sqlite |
| ####################################################################### |
| |
| sqlite-retrieve: $(SQLITE_OBJDIR)/.retrieved |
| sqlite-configure: $(SQLITE_OBJDIR)/.configured |
| sqlite-compile: $(SQLITE_OBJDIR)/.compiled |
| sqlite-install: $(SQLITE_OBJDIR)/.installed |
| sqlite-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(SQLITE_OBJDIR)/$(f);) |
| |
| sqlite-clean: |
| -cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make clean |
| |
| # fetch distfile for sqlite |
| $(DISTDIR)/$(SQLITE_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(SQLITE_URL) |
| |
| # retrieve sqlite |
| $(SQLITE_OBJDIR)/.retrieved: $(DISTDIR)/$(SQLITE_DIST) |
| $(call do_check_sha256,$(SQLITE_DIST)) |
| [ -d $(SQLITE_OBJDIR) ] || mkdir -p $(SQLITE_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(SQLITE_DIST) |
| touch $@ |
| |
| ifeq ($(THREADING),yes) |
| THREADSAFE_FLAG=--enable-threadsafe |
| else |
| THREADSAFE_FLAG=--disable-threadsafe |
| endif |
| |
| # configure sqlite |
| $(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) |
| touch $@ |
| |
| # compile sqlite |
| $(SQLITE_OBJDIR)/.compiled: $(SQLITE_OBJDIR)/.configured |
| (cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install sqlite |
| $(SQLITE_OBJDIR)/.installed: $(SQLITE_OBJDIR)/.compiled |
| (cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # cyrus-sasl |
| ####################################################################### |
| |
| cyrus-sasl-retrieve: $(CYRUS_SASL_OBJDIR)/.retrieved |
| cyrus-sasl-configure: $(CYRUS_SASL_OBJDIR)/.configured |
| cyrus-sasl-compile: $(CYRUS_SASL_OBJDIR)/.compiled |
| cyrus-sasl-install: $(CYRUS_SASL_OBJDIR)/.installed |
| cyrus-sasl-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(CYRUS_SASL_OBJDIR)/$(f);) |
| |
| cyrus-sasl-clean: |
| -(cd $(CYRUS_SASL_OBJDIR) && env MAKEFLAGS= make distclean) |
| |
| # fetch distfile for cyrus-sasl |
| $(DISTDIR)/$(CYRUS_SASL_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(CYRUS_SASL_URL) |
| |
| # retrieve cyrus-sasl |
| $(CYRUS_SASL_OBJDIR)/.retrieved: $(DISTDIR)/$(CYRUS_SASL_DIST) |
| $(call do_check_sha256,$(CYRUS_SASL_DIST)) |
| [ -d $(CYRUS_SASL_OBJDIR) ] || mkdir -p $(CYRUS_SASL_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(CYRUS_SASL_DIST) |
| # fixes build on Debian: |
| sed 's/#elif WITH_DES/#elif defined(WITH_DES)/' \ |
| < $(CYRUS_SASL_SRCDIR)/plugins/digestmd5.c \ |
| > $(CYRUS_SASL_SRCDIR)/plugins/digestmd5.c.patched |
| mv $(CYRUS_SASL_SRCDIR)/plugins/digestmd5.c.patched \ |
| $(CYRUS_SASL_SRCDIR)/plugins/digestmd5.c |
| ifeq ($(UNAME),OpenBSD) |
| # Fixes GSSAPI support on OpenBSD, which hasn't got libroken: |
| for f in `grep -l -R -- -lroken $(CYRUS_SASL_SRCDIR)`; do \ |
| sed -e 's/-lroken//g' < $$f > $$f.tmp && \ |
| mv $$f.tmp $$f; \ |
| done |
| chmod +x $(CYRUS_SASL_SRCDIR)/configure |
| endif |
| # Fixes excessive auth log spam from sasl if broken .la files exist |
| sed 's/SASL_LOG_WARN/SASL_LOG_DEBUG/' \ |
| < $(CYRUS_SASL_SRCDIR)/lib/dlopen.c \ |
| > $(CYRUS_SASL_SRCDIR)/lib/dlopen.c.patched |
| mv $(CYRUS_SASL_SRCDIR)/lib/dlopen.c.patched \ |
| $(CYRUS_SASL_SRCDIR)/lib/dlopen.c |
| # Fix a weird autotools error about missing cmulocal dir |
| (cd $(CYRUS_SASL_SRCDIR)/saslauthd/ && ln -sf ../cmulocal) |
| touch $@ |
| |
| # configure cyrus-sasl |
| $(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved \ |
| $(BDB_OBJDIR)/.installed $(SQLITE_OBJDIR)/.installed |
| 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 \ |
| --with-configdir=$(PREFIX)/cyrus-sasl/lib/sasl2 \ |
| --with-bdb-libdir=$(PREFIX)/bdb/lib \ |
| --with-bdb-incdir=$(PREFIX)/bdb/include \ |
| --with-dblib=berkeley \ |
| --with-sqlite=$(PREFIX)/sqlite \ |
| --prefix=$(PREFIX)/cyrus-sasl |
| touch $@ |
| |
| # 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 $@ |
| |
| # install cyrus-sasl |
| $(CYRUS_SASL_OBJDIR)/.installed: $(CYRUS_SASL_OBJDIR)/.compiled |
| (cd $(CYRUS_SASL_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # libmagic |
| ####################################################################### |
| |
| libmagic-retrieve: $(LIBMAGIC_OBJDIR)/.retrieved |
| libmagic-configure: $(LIBMAGIC_OBJDIR)/.configured |
| libmagic-compile: $(LIBMAGIC_OBJDIR)/.compiled |
| libmagic-install: $(LIBMAGIC_OBJDIR)/.installed |
| libmagic-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(LIBMAGIC_OBJDIR)/$(f);) |
| |
| libmagic-clean: |
| -(cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make distclean) |
| |
| # fetch distfile for libmagic |
| $(DISTDIR)/$(LIBMAGIC_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(LIBMAGIC_URL) |
| |
| # retrieve libmagic |
| $(LIBMAGIC_OBJDIR)/.retrieved: $(DISTDIR)/$(LIBMAGIC_DIST) |
| $(call do_check_sha256,$(LIBMAGIC_DIST)) |
| [ -d $(LIBMAGIC_OBJDIR) ] || mkdir -p $(LIBMAGIC_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(LIBMAGIC_DIST) |
| touch $@ |
| |
| # configure libmagic |
| $(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 |
| touch $@ |
| |
| # compile libmagic |
| $(LIBMAGIC_OBJDIR)/.compiled: $(LIBMAGIC_OBJDIR)/.configured |
| (cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install libmagic |
| $(LIBMAGIC_OBJDIR)/.installed: $(LIBMAGIC_OBJDIR)/.compiled |
| (cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # ruby |
| ####################################################################### |
| |
| ruby-retrieve: $(RUBY_OBJDIR)/.retrieved |
| ruby-configure: $(RUBY_OBJDIR)/.configured |
| ruby-compile: $(RUBY_OBJDIR)/.compiled |
| ruby-install: $(RUBY_OBJDIR)/.installed |
| ruby-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(RUBY_OBJDIR)/$(f);) |
| |
| ruby-clean: |
| -(cd $(RUBY_OBJDIR) && env MAKEFLAGS= make distclean) |
| |
| # fetch distfile for ruby |
| $(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 $@ |
| |
| $(RUBY_OBJDIR)/sparc64_buserror.patch: |
| mkdir -p $(dir $@) |
| echo > $@.tmp '--- compile.c.orig Thu Mar 12 12:58:26 2020' |
| echo >> $@.tmp '+++ compile.c Thu Mar 12 16:36:55 2020' |
| echo >> $@.tmp '@@ -751,6 +751,16 @@' |
| echo >> $@.tmp ' #define STRICT_ALIGNMENT' |
| echo >> $@.tmp ' #endif' |
| echo >> $@.tmp ' ' |
| echo >> $@.tmp '+/*' |
| echo >> $@.tmp '+ * Some OpenBSD platforms (including sparc64) require strict alignment.' |
| echo >> $@.tmp '+ */' |
| echo >> $@.tmp '+#if defined(__OpenBSD__)' |
| echo >> $@.tmp '+ #include <sys/endian.h>' |
| echo >> $@.tmp '+ #ifdef __STRICT_ALIGNMENT' |
| echo >> $@.tmp '+ #define STRICT_ALIGNMENT' |
| echo >> $@.tmp '+ #endif' |
| echo >> $@.tmp '+#endif' |
| echo >> $@.tmp '+' |
| echo >> $@.tmp ' #ifdef STRICT_ALIGNMENT' |
| echo >> $@.tmp ' #if defined(HAVE_TRUE_LONG_LONG) && SIZEOF_LONG_LONG > SIZEOF_VALUE' |
| echo >> $@.tmp ' #define ALIGNMENT_SIZE SIZEOF_LONG_LONG' |
| echo >> $@.tmp '@@ -2094,7 +2104,8 @@' |
| echo >> $@.tmp ' unref_destination(iobj, 0);' |
| echo >> $@.tmp ' REMOVE_ELEM(&iobj->link);' |
| echo >> $@.tmp ' }' |
| echo >> $@.tmp '- else if (iobj != diobj && IS_INSN_ID(diobj, jump) &&' |
| echo >> $@.tmp '+ else if (iobj != diobj && IS_INSN(&diobj->link) &&' |
| echo >> $@.tmp '+ IS_INSN_ID(diobj, jump) &&' |
| echo >> $@.tmp ' OPERAND_AT(iobj, 0) != OPERAND_AT(diobj, 0)) {' |
| echo >> $@.tmp ' replace_destination(iobj, diobj);' |
| echo >> $@.tmp ' remove_unreachable_chunk(iseq, iobj->link.next);' |
| echo >> $@.tmp '@@ -2136,6 +2147,7 @@' |
| echo >> $@.tmp ' * L2:' |
| echo >> $@.tmp ' */' |
| echo >> $@.tmp ' else if ((piobj = (INSN *)get_prev_insn(iobj)) != 0 &&' |
| echo >> $@.tmp '+ IS_INSN(&piobj->link) &&' |
| echo >> $@.tmp ' (IS_INSN_ID(piobj, branchif) ||' |
| echo >> $@.tmp ' IS_INSN_ID(piobj, branchunless))) {' |
| echo >> $@.tmp ' if (niobj == (INSN *)get_destination_insn(piobj)) {' |
| echo >> $@.tmp '@@ -2176,7 +2188,7 @@' |
| echo >> $@.tmp ' }' |
| echo >> $@.tmp ' ' |
| echo >> $@.tmp ' for (;;) {' |
| echo >> $@.tmp '- if (IS_INSN_ID(nobj, jump)) {' |
| echo >> $@.tmp '+ if (IS_INSN(&nobj->link) && IS_INSN_ID(nobj, jump)) {' |
| echo >> $@.tmp ' replace_destination(iobj, nobj);' |
| echo >> $@.tmp ' }' |
| echo >> $@.tmp ' else if (prev_dup && IS_INSN_ID(nobj, dup) &&' |
| 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)/openssl_missing.patch $(RUBY_OBJDIR)/sparc64_buserror.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 |
| cd $(RUBY_SRCDIR) && patch -p0 < $(RUBY_OBJDIR)/sparc64_buserror.patch |
| touch $@ |
| |
| ifeq ($(THREADING),yes) |
| THREADSAFE_FLAG=--enable-pthread |
| else |
| THREADSAFE_FLAG=--disable-pthread |
| endif |
| |
| # configure ruby |
| $(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 \ |
| --with-baseruby="$(RUBY)" \ |
| $(THREADSAFE_FLAG) \ |
| --disable-install-doc \ |
| --without-valgrind \ |
| --without-gmp |
| touch $@ |
| |
| # compile ruby (ignore MAKE_JOBS; multiple jobs cause random build failures) |
| $(RUBY_OBJDIR)/.compiled: $(RUBY_OBJDIR)/.configured |
| (cd $(RUBY_OBJDIR) && env MAKEFLAGS= make) |
| touch $@ |
| |
| # install ruby |
| $(RUBY_OBJDIR)/.installed: $(RUBY_OBJDIR)/.compiled |
| (cd $(RUBY_OBJDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # bz2 |
| ####################################################################### |
| |
| bz2-retrieve: $(BZ2_OBJDIR)/.retrieved |
| bz2-compile: $(BZ2_OBJDIR)/.compiled |
| bz2-install: $(BZ2_OBJDIR)/.installed |
| bz2-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(BZ2_OBJDIR)/$(f);) |
| |
| bz2-clean: |
| -(cd $(BZ2_SRCDIR) && env MAKEFLAGS= make distclean) |
| |
| # fetch distfile for bz2 |
| $(DISTDIR)/$(BZ2_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(BZ2_URL) |
| |
| # retrieve bz2 |
| $(BZ2_OBJDIR)/.retrieved: $(DISTDIR)/$(BZ2_DIST) |
| $(call do_check_sha256,$(BZ2_DIST)) |
| [ -d $(BZ2_OBJDIR) ] || mkdir -p $(BZ2_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(BZ2_DIST) |
| touch $@ |
| |
| # compile bz2 |
| $(BZ2_OBJDIR)/.compiled: $(BZ2_OBJDIR)/.retrieved |
| (cd $(BZ2_SRCDIR) && env MAKEFLAGS= make CC=$(CC) CXX=$(CXX) \ |
| CFLAGS="-g $(PROFILE_CFLAGS) -fPIC" -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install bz2 |
| $(BZ2_OBJDIR)/.installed: $(BZ2_OBJDIR)/.compiled |
| (cd $(BZ2_SRCDIR) && env MAKEFLAGS= make install PREFIX=$(PREFIX)/bz2) |
| touch $@ |
| |
| |
| ####################################################################### |
| # python |
| ####################################################################### |
| |
| python-retrieve: $(PYTHON_OBJDIR)/.retrieved |
| python-configure: $(PYTHON_OBJDIR)/.configured |
| python-compile: $(PYTHON_OBJDIR)/.compiled |
| python-install: $(PYTHON_OBJDIR)/.installed |
| python-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(PYTHON_OBJDIR)/$(f);) |
| |
| python-clean: |
| -(cd $(PYTHON_OBJDIR) && env MAKEFLAGS= make distclean) |
| |
| # fetch distfile for python |
| $(DISTDIR)/$(PYTHON_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(PYTHON_URL) |
| |
| # retrieve python |
| # |
| $(PYTHON_OBJDIR)/.retrieved: $(DISTDIR)/$(PYTHON_DIST) |
| $(call do_check_sha256,$(PYTHON_DIST)) |
| [ -d $(PYTHON_OBJDIR) ] || mkdir -p $(PYTHON_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(PYTHON_DIST) |
| # Make setup.py use our own dependencies instead of system ones |
| sed -e "s#sqlite_inc_paths = \[ '/usr/include',#sqlite_inc_paths = [ '$(PREFIX)/sqlite/include',#" \ |
| -e "s#'/usr/include/db4'#'$(PREFIX)/bdb/include'#" \ |
| -e "s|\(add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')\)|pass #\1|" \ |
| -e "s|\(add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')\)|pass #\1|" \ |
| -e "s#find_library_file(lib_dirs, 'bz2'#find_library_file(['$(PREFIX)/bz2/lib'] + lib_dirs, 'bz2'#" \ |
| < $(PYTHON_SRCDIR)/setup.py \ |
| > $(PYTHON_SRCDIR)/setup.py.patched |
| mv $(PYTHON_SRCDIR)/setup.py.patched $(PYTHON_SRCDIR)/setup.py |
| chmod +x $(PYTHON_SRCDIR)/setup.py |
| touch $@ |
| |
| # configure python |
| ifdef PROFILE |
| PYTHON_PROFILING=--enable-profiling |
| endif |
| $(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):$(PREFIX)/python/lib:$$LD_LIBRARY_PATH" \ |
| PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \ |
| $(PYTHON_SRCDIR)/configure \ |
| --prefix=$(PREFIX)/python \ |
| --enable-shared \ |
| --with-system-expat \ |
| --with-dbmliborder=bdb \ |
| --without-pymalloc \ |
| $(PYTHON_PROFILING) |
| touch $@ |
| |
| # compile python |
| $(PYTHON_OBJDIR)/.compiled: $(PYTHON_OBJDIR)/.configured |
| (cd $(PYTHON_OBJDIR) && \ |
| env MAKEFLAGS= \ |
| LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(PREFIX)/python/lib:$$LD_LIBRARY_PATH" \ |
| make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install python |
| $(PYTHON_OBJDIR)/.installed: $(PYTHON_OBJDIR)/.compiled |
| (cd $(PYTHON_OBJDIR) && \ |
| env MAKEFLAGS= \ |
| LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(PREFIX)/python/lib:$$LD_LIBRARY_PATH" \ |
| make install) |
| ln -sf $(PREFIX)/python/bin/python3 $(PREFIX)/python/bin/python |
| touch $@ |
| |
| ####################################################################### |
| # python 2 |
| ####################################################################### |
| |
| python2-retrieve: $(PYTHON2_OBJDIR)/.retrieved |
| python2-configure: $(PYTHON2_OBJDIR)/.configured |
| python2-compile: $(PYTHON2_OBJDIR)/.compiled |
| python2-install: $(PYTHON2_OBJDIR)/.installed |
| python2-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(PYTHON2_OBJDIR)/$(f);) |
| |
| python2-clean: |
| -(cd $(PYTHON2_OBJDIR) && env MAKEFLAGS= make distclean) |
| |
| # fetch distfile for python 2 |
| $(DISTDIR)/$(PYTHON2_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(PYTHON2_URL) |
| |
| # https://bugs.python.org/issue12560 |
| $(DISTDIR)/python-issue12560.patch: |
| cd $(DISTDIR) && $(FETCH_CMD) -O "$@" \ |
| https://hg.python.org/cpython/raw-rev/32cc37a89b58 |
| |
| # retrieve python 2 |
| # |
| $(PYTHON2_OBJDIR)/.retrieved: $(DISTDIR)/$(PYTHON2_DIST) $(DISTDIR)/python-issue12560.patch |
| $(call do_check_sha256,$(PYTHON2_DIST)) |
| [ -d $(PYTHON2_OBJDIR) ] || mkdir -p $(PYTHON2_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(PYTHON2_DIST) |
| # Make setup.py use our own dependencies instead of system ones |
| sed -e "s#sqlite_inc_paths = \[ '/usr/include',#sqlite_inc_paths = [ '$(PREFIX)/sqlite/include',#" \ |
| -e "s#'/usr/include/db4'#'$(PREFIX)/bdb/include'#" \ |
| -e "s|\(add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')\)|pass #\1|" \ |
| -e "s|\(add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')\)|pass #\1|" \ |
| -e "s#find_library_file(lib_dirs, 'bz2'#find_library_file(['$(PREFIX)/bz2/lib'] + lib_dirs, 'bz2'#" \ |
| < $(PYTHON2_SRCDIR)/setup.py \ |
| > $(PYTHON2_SRCDIR)/setup.py.patched |
| mv $(PYTHON2_SRCDIR)/setup.py.patched $(PYTHON2_SRCDIR)/setup.py |
| chmod +x $(PYTHON2_SRCDIR)/setup.py |
| cd $(PYTHON2_SRCDIR) && patch -p1 < $(DISTDIR)/python-issue12560.patch |
| mkdir -p $(PYTHON2_OBJDIR)/bin |
| ln -sf "`which python2`" $(PYTHON2_OBJDIR)/bin/python |
| touch $@ |
| |
| # configure python 2 |
| ifdef PROFILE |
| PYTHON2_PROFILING=--enable-profiling |
| endif |
| $(PYTHON2_OBJDIR)/.configured: $(PYTHON2_OBJDIR)/.retrieved \ |
| $(BZ2_OBJDIR)/.installed |
| cd $(PYTHON2_OBJDIR) \ |
| && env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \ |
| CC=$(CC) CXX=$(CXX) \ |
| CPPFLAGS="-I$(PREFIX)/bz2/include" \ |
| LDFLAGS="-Wl,-rpath=$(PREFIX)/python2/lib -L$(PREFIX)/bz2/lib" \ |
| LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(PREFIX)/python2/lib:$$LD_LIBRARY_PATH" \ |
| PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \ |
| PATH=$(PYTHON2_OBJDIR)/bin:$$PATH \ |
| $(PYTHON2_SRCDIR)/configure \ |
| --prefix=$(PREFIX)/python2 \ |
| --enable-shared \ |
| --with-system-expat \ |
| --with-dbmliborder=bdb \ |
| --without-pymalloc \ |
| $(PYTHON2_PROFILING) |
| touch $@ |
| |
| # compile python 2 |
| $(PYTHON2_OBJDIR)/.compiled: $(PYTHON2_OBJDIR)/.configured |
| (cd $(PYTHON2_OBJDIR) && \ |
| env MAKEFLAGS= \ |
| LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(PREFIX)/python2/lib:$$LD_LIBRARY_PATH" \ |
| PATH=$(PYTHON2_OBJDIR)/bin:$$PATH \ |
| make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install python 2 |
| $(PYTHON2_OBJDIR)/.installed: $(PYTHON2_OBJDIR)/.compiled |
| (cd $(PYTHON2_OBJDIR) && \ |
| env MAKEFLAGS= \ |
| LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$(PREFIX)/python2/lib:$$LD_LIBRARY_PATH" \ |
| PATH=$(PYTHON2_OBJDIR)/bin:$$PATH \ |
| make install) |
| ln -sf $(PREFIX)/python2/bin/python2 $(PREFIX)/python2/bin/python |
| touch $@ |
| |
| ####################################################################### |
| # py3c |
| ####################################################################### |
| |
| py3c-retrieve: $(PY3C_OBJDIR)/.retrieved |
| py3c-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(PY3C_OBJDIR)/$(f);) |
| |
| # fetch distfile for py3c |
| $(DISTDIR)/$(PY3C_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(PY3C_URL) |
| |
| # retrieve py3c |
| $(PY3C_OBJDIR)/.retrieved: $(DISTDIR)/$(PY3C_DIST) |
| $(call do_check_sha256,$(PY3C_DIST)) |
| [ -d $(PY3C_OBJDIR) ] || mkdir -p $(PY3C_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(PY3C_DIST) |
| touch $@ |
| |
| ####################################################################### |
| # junit |
| ####################################################################### |
| |
| # fetch distfile for junit |
| $(DISTDIR)/$(JUNIT_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(JUNIT_URL) |
| $(call do_check_sha256,$(JUNIT_DIST)) |
| |
| |
| ####################################################################### |
| # gettext |
| ####################################################################### |
| |
| gettext-retrieve: $(GETTEXT_OBJDIR)/.retrieved |
| gettext-configure: $(GETTEXT_OBJDIR)/.configured |
| gettext-compile: $(GETTEXT_OBJDIR)/.compiled |
| gettext-install: $(GETTEXT_OBJDIR)/.installed |
| gettext-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(GETTEXT_OBJDIR)/$(f);) |
| |
| gettext-clean: |
| -(cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make clean) |
| |
| # fetch distfile for gettext |
| $(DISTDIR)/$(GETTEXT_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) $(GETTEXT_URL) |
| |
| # retrieve gettext |
| $(GETTEXT_OBJDIR)/.retrieved: $(DISTDIR)/$(GETTEXT_DIST) |
| $(call do_check_sha256,$(GETTEXT_DIST)) |
| [ -d $(GETTEXT_OBJDIR) ] || mkdir -p $(GETTEXT_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(GETTEXT_DIST) |
| touch $@ |
| |
| # (gettext won't compile outside its source tree) |
| # configure gettext |
| $(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 \ |
| --disable-c++ \ |
| --disable-java \ |
| --disable-csharp \ |
| $(THREADS_FLAG) |
| -which gsed && \ |
| sed -e 's/sed /gsed /g' < $(GETTEXT_SRCDIR)/build-aux/moopp \ |
| > $(GETTEXT_SRCDIR)/build-aux/moopp.fixed && \ |
| mv $(GETTEXT_SRCDIR)/build-aux/moopp.fixed \ |
| $(GETTEXT_SRCDIR)/build-aux/moopp && \ |
| chmod +x $(GETTEXT_SRCDIR)/build-aux/moopp |
| touch $@ |
| |
| # compile gettext |
| $(GETTEXT_OBJDIR)/.compiled: $(GETTEXT_OBJDIR)/.configured |
| (cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make -j${MAKE_JOBS}) |
| touch $@ |
| |
| # install gettext |
| $(GETTEXT_OBJDIR)/.installed: $(GETTEXT_OBJDIR)/.compiled |
| (cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make install) |
| touch $@ |
| |
| ####################################################################### |
| # lz4 |
| ####################################################################### |
| |
| lz4-retrieve: $(LZ4_OBJDIR)/.retrieved |
| lz4-configure: $(LZ4_OBJDIR)/.configured |
| lz4-compile: $(LZ4_OBJDIR)/.compiled |
| lz4-install: $(LZ4_OBJDIR)/.installed |
| lz4-reset: |
| $(foreach f, .retrieved .configured .compiled .installed, \ |
| rm -f $(LZ4_OBJDIR)/$(f);) |
| |
| lz4-clean: |
| -(cd $(LZ4_SRCDIR) && env MAKEFLAGS= $(MAKE) clean) |
| |
| # fetch distfile for lz4 |
| $(DISTDIR)/$(LZ4_DIST): |
| cd $(DISTDIR) && $(FETCH_CMD) -O $(LZ4_DIST) $(LZ4_URL) |
| |
| # retrieve lz4 |
| $(LZ4_OBJDIR)/.retrieved: $(DISTDIR)/$(LZ4_DIST) |
| $(call do_check_sha256,$(LZ4_DIST)) |
| [ -d $(LZ4_OBJDIR) ] || mkdir -p $(LZ4_OBJDIR) |
| tar -C $(SRCDIR) -zxf $(DISTDIR)/$(LZ4_DIST) |
| touch $@ |
| |
| # configure lz4 |
| $(LZ4_OBJDIR)/.configured: $(LZ4_OBJDIR)/.retrieved |
| touch $@ |
| |
| # compile lz4 |
| $(LZ4_OBJDIR)/.compiled: $(LZ4_OBJDIR)/.configured |
| (cd $(LZ4_SRCDIR)/lib && \ |
| env MAKEFLAGS= $(MAKE) CC=$(CC) CXX=$(CXX) \ |
| -j${MAKE_JOBS} PREFIX=$(PREFIX)/lz4) |
| touch $@ |
| |
| # install lz4 |
| $(LZ4_OBJDIR)/.installed: $(LZ4_OBJDIR)/.compiled |
| mkdir -p $(PREFIX)/lz4/lib |
| (cd $(LZ4_SRCDIR)/lib && \ |
| env MAKEFLAGS= $(MAKE) PREFIX=$(PREFIX)/lz4 install) |
| touch $@ |
| |
| ####################################################################### |
| # svn |
| ####################################################################### |
| |
| .PHONY: svn-configure svn-compile svn-install svn-bindings-compile \ |
| svn-bindings-install svn-bindings-reset svn-clean |
| |
| svn-install-all: svn-install svn-bindings-install |
| |
| svn-retrieve: $(SVN_OBJDIR)/.retrieved |
| svn-configure: $(SVN_OBJDIR)/.configured |
| svn-compile: $(SVN_OBJDIR)/.compiled |
| svn-bindings-compile: $(SVN_OBJDIR)/.bindings-compiled |
| svn-install: $(SVN_OBJDIR)/.installed |
| svn-bindings-install: $(SVN_OBJDIR)/.bindings-installed |
| svn-bindings-reset: |
| $(foreach f, .bindings-compiled .bindings-installed, \ |
| rm -f $(SVN_OBJDIR)/$(f);) |
| svn-reset: svn-bindings-reset |
| $(foreach f, .retrieved .configured .compiled .installed \ |
| .bindings-compiled .bindings-installed, \ |
| rm -f $(SVN_OBJDIR)/$(f);) |
| |
| svn-clean: |
| -(cd $(svn_builddir) && env MAKEFLAGS= make distclean) |
| |
| # retrieve svn if not present yet |
| $(SVN_OBJDIR)/.retrieved: |
| [ -d $(SVN_OBJDIR) ] || mkdir -p $(SVN_OBJDIR) |
| if [ "$(TAG)" != "none" ]; then \ |
| branchdir="tags/$(TAG)"; \ |
| co="export"; \ |
| elif [ $(BRANCH) != trunk ]; then \ |
| branchdir="branches/$(BRANCH)"; \ |
| co="co"; \ |
| else \ |
| branchdir="$(BRANCH)"; \ |
| co="co"; \ |
| fi; \ |
| if [ ! -d $(SVN_WC) ] && [ ! -h $(SVN_WC) ]; then \ |
| svn $${co} $(SUBVERSION_REPOS_URL)/$${branchdir} \ |
| $(SVN_WC); \ |
| fi |
| touch $@ |
| |
| ifeq ($(BRANCH_MAJOR),1.7) |
| BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER) |
| SERF_FLAG=--with-serf="$(PREFIX)/serf" |
| SERF_LDFLAG=-Wl,-rpath,$(PREFIX)/serf/lib -Wl,-rpath,$(PREFIX)/bdb/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 |
| LIBMAGIC_FLAG=--with-libmagic=$(PREFIX)/libmagic |
| NEON_FLAG=--with-neon="$(PREFIX)/neon" |
| JAVAHL_CHECK_TARGET=check-javahl |
| else ifeq ($(BRANCH_MAJOR),1.6) |
| BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER) |
| SERF_FLAG=--with-serf="$(PREFIX)/serf" |
| SERF_LDFLAG=-Wl,-rpath,$(PREFIX)/serf/lib -Wl,-rpath,$(PREFIX)/bdb/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 |
| W_NO_SYSTEM_HEADERS=-Wno-system-headers |
| NEON_FLAG=--with-neon="$(PREFIX)/neon" |
| JAVAHL_CHECK_TARGET=check-javahl |
| else ifeq ($(BRANCH_MAJOR),1.5) |
| BDB_FLAG=$(PREFIX)/bdb |
| SERF_FLAG=--with-serf="$(PREFIX)/serf-old" |
| MOD_DAV_SVN=modules/mod_dav_svn.so |
| MOD_AUTHZ_SVN=modules/mod_authz_svn.so |
| MOD_DONTDOTHAT=modules/mod_dontdothat.so |
| DISABLE_NEON_VERSION_CHECK=--disable-neon-version-check |
| W_NO_SYSTEM_HEADERS=-Wno-system-headers |
| NEON_FLAG=--with-neon="$(PREFIX)/neon" |
| JAVAHL_CHECK_TARGET=check-javahl |
| else ifeq ($(BRANCH_MAJOR), $(filter 1.8 1.9, $(BRANCH_MAJOR))) |
| BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER) |
| 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 |
| 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 |
| LIBMAGIC_FLAG=--with-libmagic=$(PREFIX)/libmagic |
| JAVAHL_CHECK_TARGET=check-all-javahl |
| else # 1.10, 1.11, 1.12, 1.13, 1.14, trunk |
| BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER) |
| 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 |
| LIBMAGIC_FLAG=--with-libmagic=$(PREFIX)/libmagic |
| JAVAHL_CHECK_TARGET=check-all-javahl |
| LZ4_FLAG=--with-lz4=$(PREFIX)/lz4 |
| UTF8PROC_FLAG=--with-utf8proc=internal |
| endif |
| |
| ifeq ($(ENABLE_JAVA_BINDINGS),yes) |
| JAVAHL_FLAG=--enable-javahl=yes --with-jdk --with-jikes=no \ |
| --with-junit=$(DISTDIR)/$(JUNIT_DIST) |
| else |
| JAVAHL_FLAG=--with-jdk=no |
| endif |
| |
| ifdef PROFILE |
| SVN_STATIC_FLAG=--enable-all-static |
| else |
| SVN_STATIC_FLAG=--disable-static |
| SVN_WITH_HTTPD=--with-apxs="$(PREFIX)/httpd/bin/apxs" \ |
| --with-apache-libexecdir="$(PREFIX)/httpd/modules/svn-$(WC)" |
| 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 \ |
| $(HTTPD_OBJDIR)/.installed $(CYRUS_SASL_OBJDIR)/.installed \ |
| $(LIBMAGIC_OBJDIR)/.installed $(NEON_OBJDIR)/.installed \ |
| $(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) $(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):$(PREFIX)/$(PYTHON)/lib:$$LD_LIBRARY_PATH" \ |
| PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PREFIX)/$(PYTHON)/lib/pkgconfig \ |
| PYTHON=$(PREFIX)/$(PYTHON)/bin/python \ |
| GREP="`which grep`" \ |
| PATH=$(PREFIX)/ruby/bin:$(PREFIX)/$(PYTHON)/bin:$(PREFIX)/gettext/bin:$$PATH \ |
| $(SVN_SRCDIR)/configure \ |
| --enable-maintainer-mode \ |
| --prefix="$(SVN_PREFIX)" \ |
| --with-apr="$(PREFIX)/apr" \ |
| --with-apr-util="$(PREFIX)/apr" \ |
| $(NEON_FLAG) \ |
| $(SVN_WITH_HTTPD) \ |
| $(SVN_WITH_SASL) \ |
| $(SERF_FLAG) \ |
| --with-sqlite="$(PREFIX)/sqlite" \ |
| --with-zlib="/usr" \ |
| --without-gnome-keyring \ |
| --with-berkeley-db="$(BDB_FLAG)" \ |
| --with-ruby-sitedir="$(SVN_PREFIX)/lib/ruby/site_ruby" \ |
| --with-py3c="$(SRCDIR)/py3c-${PY3C_VER}" \ |
| --disable-mod-activation \ |
| $(JAVAHL_FLAG) \ |
| $(LIBMAGIC_FLAG) \ |
| $(LZ4_FLAG) \ |
| $(UTF8PROC_FLAG) \ |
| $(SVN_STATIC_FLAG) \ |
| $(DISABLE_NEON_VERSION_CHECK) |
| touch $@ |
| |
| # compile svn |
| $(SVN_OBJDIR)/.compiled: $(SVN_OBJDIR)/.configured |
| cd $(svn_builddir) \ |
| && env MAKEFLAGS= make -j${MAKE_JOBS} EXTRA_CFLAGS="$(PROFILE_CFLAGS) $(W_NO_SYSTEM_HEADERS)" |
| touch $@ |
| |
| # install svn |
| $(SVN_OBJDIR)/.installed: $(SVN_OBJDIR)/.compiled |
| cd $(svn_builddir) \ |
| && env MAKEFLAGS= make install install-tools |
| touch $@ |
| |
| # SWIG 1.x and 2.x are not compatible. If SWIG 2.x is used to generated .swg |
| # files and 1.x is used to build the bindings, the Python bindings fail to |
| # load with errors such as "undefined symbol 'SWIG_Python_str_AsChar'". |
| # So clean any pre-generated .swg files to make sure everything is done |
| # by the same version of SWIG. |
| $(SVN_OBJDIR)/.pre-generated-swig-cleaned: |
| -cd $(svn_builddir) \ |
| && 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 -j${MAKE_JOBS} swig-py |
| cd $(svn_builddir) && \ |
| env PATH=$(PREFIX)/ruby/bin:$$PATH \ |
| 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 -j${MAKE_JOBS} swig-pl; \ |
| fi |
| if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \ |
| cd $(svn_builddir) \ |
| && env MAKEFLAGS= make javahl; \ |
| fi |
| touch $@ |
| |
| $(SVN_OBJDIR)/.bindings-installed: $(SVN_OBJDIR)/.bindings-compiled |
| cd $(svn_builddir) \ |
| && env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \ |
| env MAKEFLAGS= make install-swig-py |
| cd $(svn_builddir) && \ |
| env PATH=$(PREFIX)/ruby/bin:$$PATH \ |
| LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) MAKEFLAGS= make install-swig-rb |
| if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \ |
| cd $(svn_builddir) \ |
| && 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) \ |
| && env MAKEFLAGS= make install-javahl; \ |
| fi |
| touch $@ |
| |
| # run svn regression tests |
| HTTPD_CHECK_CONF=$(PREFIX)/httpd/conf/httpd-svn-check-$(WC).conf |
| HTTPD_PROXY_CONF=$(PREFIX)/httpd/conf/httpd-svn-proxy-$(WC).conf |
| HTTPD_CHECK_USERS=$(PREFIX)/httpd/conf/httpd-svn-check-users |
| HTTPD_CHECK_GROUPS=$(PREFIX)/httpd/conf/httpd-svn-check-groups |
| HTTPD_CHECK_PORT=8081 |
| HTTPD_PROXY_PORT=8082 |
| MOD_DONTDOTHAT_CONF=$(PREFIX)/httpd/conf/dontdothat |
| |
| $(MOD_DONTDOTHAT_CONF): |
| mkdir -p $(dir $@) |
| echo > $@.tmp '[recursive-actions]' |
| echo >>$@.tmp '/ = deny' |
| mv -f $@.tmp $@ |
| |
| $(HTTPD_CHECK_GROUPS): |
| mkdir -p $(dir $@) |
| printf "random: jrandom\nconstant: jconstant\n" > $@ |
| |
| $(HTTPD_CHECK_CONF): $(MOD_DONTDOTHAT_CONF) $(HTTPD_CHECK_GROUPS) |
| mkdir -p $(dir $@) |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd -bc $(HTTPD_CHECK_USERS).tmp jrandom rayjandom |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd -b $(HTTPD_CHECK_USERS).tmp jconstant rayjandom |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd -b $(HTTPD_CHECK_USERS).tmp __dumpster__ __loadster__ |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd -b $(HTTPD_CHECK_USERS).tmp JRANDOM rayjandom |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd -b $(HTTPD_CHECK_USERS).tmp JCONSTANT rayjandom |
| mv -f $(HTTPD_CHECK_USERS).tmp $(HTTPD_CHECK_USERS) |
| echo > $@.tmp '# httpd config for make check' |
| echo >>$@.tmp 'ServerRoot "$(PREFIX)/httpd"' |
| echo >>$@.tmp 'Listen localhost:$(HTTPD_CHECK_PORT)' |
| echo >>$@.tmp 'LogLevel warn' |
| echo >>$@.tmp 'LoadModule unixd_module modules/mod_unixd.so' |
| echo >>$@.tmp 'LoadModule alias_module modules/mod_alias.so' |
| echo >>$@.tmp 'LoadModule access_compat_module modules/mod_access_compat.so' |
| echo >>$@.tmp 'LoadModule authn_core_module modules/mod_authn_core.so' |
| echo >>$@.tmp 'LoadModule authn_file_module modules/mod_authn_file.so' |
| echo >>$@.tmp 'LoadModule authz_core_module modules/mod_authz_core.so' |
| echo >>$@.tmp 'LoadModule authz_user_module modules/mod_authz_user.so' |
| echo >>$@.tmp 'LoadModule authz_groupfile_module modules/mod_authz_groupfile.so' |
| echo >>$@.tmp 'LoadModule auth_basic_module modules/mod_auth_basic.so' |
| echo >>$@.tmp 'LoadModule dav_module modules/mod_dav.so' |
| echo >>$@.tmp 'LoadModule dav_svn_module $(MOD_DAV_SVN)' |
| echo >>$@.tmp 'LoadModule authz_svn_module $(MOD_AUTHZ_SVN)' |
| echo >>$@.tmp 'LoadModule dontdothat_module $(MOD_DONTDOTHAT)' |
| echo >>$@.tmp 'DocumentRoot "$(PREFIX)/httpd/htdocs"' |
| echo >>$@.tmp '# These two Locations are used for "make check"' |
| echo >>$@.tmp '<Directory />' |
| echo >>$@.tmp ' Options FollowSymLinks' |
| echo >>$@.tmp ' AllowOverride None' |
| echo >>$@.tmp ' Require all granted' |
| echo >>$@.tmp '</Directory>' |
| echo >>$@.tmp '<Location /svn-test-work/repositories>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/repositories' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /svn-test-work/local_tmp/repos>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp/repos' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /svn-test-work/local_tmp/trojan>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp/trojan' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '# This Location lets you access repositories dropped in /tmp/' |
| echo >>$@.tmp '<Location /svn>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath /tmp' |
| echo >>$@.tmp ' Require all granted' |
| echo >>$@.tmp ' #AuthType Basic' |
| echo >>$@.tmp ' #AuthName "Subversion Repository"' |
| echo >>$@.tmp ' #AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' #Require valid-user' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >> $@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >> $@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '# Location for tests using mod_dontdothat' |
| echo >>$@.tmp '<Location /ddt-test-work/repositories>' |
| echo >> $@.tmp 'DAV svn' |
| echo >> $@.tmp 'SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/repositories' |
| echo >> $@.tmp 'AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| echo >> $@.tmp 'AuthType Basic' |
| echo >> $@.tmp 'AuthName "Subversion Repository"' |
| echo >> $@.tmp 'AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| echo >> $@.tmp 'AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >> $@.tmp 'Require valid-user' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >> $@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >> $@.tmp 'DontDoThatConfigFile "$(MOD_DONTDOTHAT_CONF)"' |
| echo >> $@.tmp '</Location>' |
| |
| echo >>$@.tmp '# Several locations for mod_authz_svn test follow' |
| echo >>$@.tmp '<Location /authz-test-work/anon>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' <IfModule mod_authz_core.c>' |
| echo >>$@.tmp ' Require all granted' |
| echo >>$@.tmp ' </IfModule>' |
| echo >>$@.tmp ' <IfModule !mod_authz_core.c>' |
| echo >>$@.tmp ' Requite all granted' |
| echo >>$@.tmp ' </IfModule>' |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /authz-test-work/in-repos-authz>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/repositories' |
| echo >>$@.tmp ' AuthzSVNReposRelativeAccessFile "^/authz"' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /authz-test-work/mixed>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| echo >>$@.tmp ' Satisfy Any' |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /authz-test-work/mixed-noauthwhenanon>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| echo >>$@.tmp ' AuthzSVNNoAuthWhenAnonymousAllowed On' |
| echo >>$@.tmp ' SVNPathAuthz On' |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /authz-test-work/authn>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /authz-test-work/authn-anonoff>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| echo >>$@.tmp ' AuthzSVNAnonymous Off' |
| echo >>$@.tmp ' SVNPathAuthz On' |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /authz-test-work/authn-lcuser>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' Require valid-user' |
| echo >>$@.tmp ' AuthzForceUsernameCase Lower' |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<Location /authz-test-work/authn-group>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' AuthGroupFile $(HTTPD_CHECK_GROUPS)' |
| echo >>$@.tmp ' Require group random' |
| echo >>$@.tmp ' AuthzSVNAuthoritative Off' |
| echo >>$@.tmp ' SVNPathAuthz On' |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '<IfModule mod_authz_core.c>' |
| echo >>$@.tmp ' <Location /authz-test-work/sallrany>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' AuthzSendForbiddenOnFailure On' |
| echo >>$@.tmp ' Satisfy All' |
| echo >>$@.tmp ' <RequireAny>' |
| echo >>$@.tmp ' Require valid-user' |
| echo >>$@.tmp ' Require expr req("ALLOW") == "1"' |
| echo >>$@.tmp ' </RequireAny>' |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp ' </Location>' |
| echo >>$@.tmp ' <Location /authz-test-work/sallrall>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath $(SVN_WC)/subversion/tests/cmdline/svn-test-work/local_tmp' |
| echo >>$@.tmp ' AuthzSVNAccessFile $(SVN_WC)/subversion/tests/cmdline/svn-test-work/authz' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >>$@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| echo >>$@.tmp ' SVNListParentPath On' |
| echo >>$@.tmp ' AuthType Basic' |
| echo >>$@.tmp ' AuthName "Subversion Repository"' |
| echo >>$@.tmp ' AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' AuthzSendForbiddenOnFailure On' |
| echo >>$@.tmp ' Satisfy All' |
| echo >>$@.tmp ' <RequireAll>' |
| echo >>$@.tmp ' Require valid-user' |
| echo >>$@.tmp ' Require expr req("ALLOW") == "1"' |
| echo >>$@.tmp ' </RequireAll>' |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >>$@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp ' </Location>' |
| echo >>$@.tmp '</IfModule>' |
| echo >>$@.tmp 'RedirectMatch permanent ^/svn-test-work/repositories/REDIRECT-PERM-(.*)$$ /svn-test-work/repositories/$$1' |
| echo >>$@.tmp 'RedirectMatch ^/svn-test-work/repositories/REDIRECT-TEMP-(.*)$$ /svn-test-work/repositories/$$1' |
| echo >>$@.tmp 'IncludeOptional "conf/$(SVN_REL_WC)*-custom.conf"' |
| echo >> $@.tmp '#SVNInMemoryCacheSize 0' |
| echo >> $@.tmp '#SVNCacheTextDeltas Off' |
| echo >> $@.tmp '#SVNCacheRevProps Off' |
| mv -f $@.tmp $@ |
| |
| $(HTTPD_PROXY_CONF): $(HTTPD_CHECK_CONF) |
| mkdir -p $(dir $@) |
| echo > $@.tmp '# httpd config for a write-through proxy' |
| echo >>$@.tmp 'ServerRoot "$(PREFIX)/httpd"' |
| echo >>$@.tmp 'Listen localhost:$(HTTPD_PROXY_PORT)' |
| echo >>$@.tmp 'LoadModule unixd_module modules/mod_unixd.so' |
| echo >>$@.tmp 'LoadModule alias_module modules/mod_alias.so' |
| echo >>$@.tmp 'LoadModule access_compat_module modules/mod_access_compat.so' |
| echo >>$@.tmp 'LoadModule authn_core_module modules/mod_authn_core.so' |
| echo >>$@.tmp 'LoadModule authn_file_module modules/mod_authn_file.so' |
| echo >>$@.tmp 'LoadModule authz_core_module modules/mod_authz_core.so' |
| echo >>$@.tmp 'LoadModule authz_user_module modules/mod_authz_user.so' |
| echo >>$@.tmp 'LoadModule authz_groupfile_module modules/mod_authz_groupfile.so' |
| echo >>$@.tmp 'LoadModule auth_basic_module modules/mod_auth_basic.so' |
| echo >>$@.tmp 'LoadModule dav_module modules/mod_dav.so' |
| echo >>$@.tmp 'LoadModule dav_svn_module $(MOD_DAV_SVN)' |
| echo >>$@.tmp 'LoadModule authz_svn_module $(MOD_AUTHZ_SVN)' |
| echo >>$@.tmp 'LoadModule dontdothat_module $(MOD_DONTDOTHAT)' |
| echo >>$@.tmp 'DocumentRoot "$(PREFIX)/httpd/htdocs"' |
| echo >>$@.tmp '# This Location lets you access repositories dropped in /tmp/svn-$(BRANCH)-proxy' |
| echo >>$@.tmp '<Location /svn>' |
| echo >>$@.tmp ' DAV svn' |
| echo >>$@.tmp ' SVNParentPath /tmp/svn-$(BRANCH)-proxy' |
| echo >>$@.tmp ' SVNMasterURI http://localhost:$(HTTPD_CHECK_PORT)/svn/' |
| echo >>$@.tmp ' Requite all granted' |
| echo >>$@.tmp ' #AuthType Basic' |
| echo >>$@.tmp ' #AuthName "Subversion Repository"' |
| echo >>$@.tmp ' #AuthUserFile $(HTTPD_CHECK_USERS)' |
| echo >>$@.tmp ' #Require valid-user' |
| ifeq ($(USE_HTTPV1),yes) |
| echo >> $@.tmp ' SVNAdvertiseV2Protocol off' |
| endif |
| ifeq ($(USE_AUTHZ_SHORT_CIRCUIT),yes) |
| echo >> $@.tmp ' SVNPathAuthz short_circuit' |
| endif |
| echo >>$@.tmp '</Location>' |
| echo >>$@.tmp '# This Location allows repositories to be synced' |
| echo >>$@.tmp '<Location /svn-proxy-sync>' |
| echo >>$@.tmp 'DAV svn' |
| echo >>$@.tmp 'SVNParentPath /tmp/svn-$(BRANCH)-proxy' |
| echo >>$@.tmp 'Require all granted' |
| echo >>$@.tmp '</Location>' |
| mv -f $@.tmp $@ |
| |
| .PHONY: libpath |
| libpath: |
| @echo export LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \ |
| "PYTHONPATH=$(SVN_PREFIX)/lib/svn-python" |
| # |
| # OpenBSD requires an LD_PRELOAD hack to dlopen() libraries linked to |
| # libpthread (e.g. libsvn_auth_gnome_keyring.so) into executables that |
| # aren't linked to libpthread. |
| ifeq ($(UNAME),OpenBSD) |
| LIB_PTHREAD_HACK=LD_PRELOAD=libpthread.so |
| endif |
| |
| .PHONY: start-svnserve stop-svnserve start-httpd stop-httpd |
| |
| 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 |
| HTTPD_STOP_CMD = $(HTTPD_CMD) -f $(HTTPD_CHECK_CONF) -k stop; sleep 3 |
| |
| SVNSERVE_START_CMD = (test -e $(PWD)/svnserve-*.pid && \ |
| ls $(PWD)/svnserve-*.pid | while read pidfile; do \ |
| kill `cat "$$pidfile"`; sleep 3; \ |
| rm -f $$pidfile; \ |
| done); \ |
| $(SVN_PREFIX)/bin/svnserve \ |
| --listen-host 127.0.0.1 \ |
| --pid-file $(PWD)/svnserve-$(WC).pid \ |
| -d -r $(svn_builddir)/subversion/tests/cmdline |
| 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)" |
| @echo "The URL http://localhost:$(HTTPD_CHECK_PORT)/svn/" |
| @echo "lets you access repositories dropped into /tmp" |
| |
| start-httpd-debug: $(HTTPD_CHECK_CONF) |
| $(HTTPD_START_CMD_DEBUG) & |
| @echo "To run tests over http, run:" |
| @echo " make check BASE_URL=http://localhost:$(HTTPD_CHECK_PORT)" |
| @echo "The URL http://localhost:$(HTTPD_CHECK_PORT)/svn/" |
| @echo "lets you access repositories dropped into /tmp" |
| @echo "Trying to attach gdb to httpd..." |
| @sleep 1 |
| gdb $(PREFIX)/httpd/bin/httpd `cat $(PREFIX)/httpd/logs/httpd.pid` |
| |
| start-httpd-proxy: $(HTTPD_PROXY_CONF) |
| $(HTTPD_START_CMD_PROXY) |
| @echo "The URL http://localhost:$(HTTPD_PROXY_PORT)/svn/" |
| @echo "lets you access repositories dropped into /tmp/svn-$(BRANCH)-proxy" |
| |
| stop-httpd: $(HTTPD_CHECK_CONF) |
| $(HTTPD_STOP_CMD) |
| |
| stop-httpd-proxy: $(HTTPD_PROXY_CONF) |
| pkill -f '$(PREFIX)/httpd/bin/httpd -f $(HTTPD_PROXY_CONF)' |
| |
| start-svnserve: $(SVN_OBJDIR)/.compiled |
| $(SVNSERVE_START_CMD) |
| |
| stop-svnserve: |
| $(SVNSERVE_STOP_CMD) |
| |
| define do_check |
| -cd $(svn_builddir) && for fs in $(SVN_CHECK_FS_BACKENDS); do \ |
| echo "Begin test: $(subst svn-check-,,$@) x $$fs"; \ |
| test -d "$(RAMDISK)/tmp" && export TMPDIR="$(RAMDISK)/tmp"; \ |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(LIB_PTHREAD_HACK) \ |
| env MAKEFLAGS= make check PARALLEL=$(PARALLEL) CLEANUP=$(CLEANUP) \ |
| EXCLUSIVE_WC_LOCKS=$(EXCLUSIVE_WC_LOCKS) \ |
| THREADED=$(THREADED) \ |
| 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; \ |
| done; \ |
| done |
| endef |
| |
| TEST_WORK=$(svn_builddir)/subversion/tests/cmdline/svn-test-work |
| svn-check-prepare-ramdisk: |
| -rm -rf "$(TEST_WORK)"; \ |
| if [ -d "$(RAMDISK)" ] && \ |
| touch "$(RAMDISK)/$(SVN_REL_WC).writetest" && \ |
| mkdir -p "$(RAMDISK)/$(SVN_REL_WC)"; then \ |
| rm -f "$(RAMDISK)/$(SVN_REL_WC).writetest"; \ |
| ln -s "$(RAMDISK)/$(SVN_REL_WC)" "$(TEST_WORK)"; \ |
| mkdir -p "$(RAMDISK)/tmp"; \ |
| fi |
| |
| ifndef NEON_FLAG |
| svn-check-neon: |
| @echo Neon is not supported by this build of Subversion, skipping tests |
| @true |
| else |
| svn-check-neon: $(HTTPD_CHECK_CONF) $(SVN_OBJDIR)/.compiled $(SVN_OBJDIR)/.bindings-compiled svn-check-prepare-ramdisk |
| $(HTTPD_START_CMD) |
| $(call do_check,BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon) |
| $(HTTPD_STOP_CMD) |
| endif |
| |
| svn-check-serf: $(HTTPD_CHECK_CONF) $(SVN_OBJDIR)/.compiled $(SVN_OBJDIR)/.bindings-compiled svn-check-prepare-ramdisk |
| $(HTTPD_START_CMD) |
| $(call do_check,BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=serf) |
| $(HTTPD_STOP_CMD) |
| |
| svn-check-local: svn-check-prepare-ramdisk |
| $(call do_check) |
| |
| svn-check-svn: svn-check-prepare-ramdisk |
| $(SVNSERVE_START_CMD) |
| $(call do_check,BASE_URL=svn://127.0.0.1) |
| $(SVNSERVE_STOP_CMD) |
| |
| .PHONY: svn-check-swig-pl svn-check-swig-py svn-check-swig-rb svn-check-javahl |
| svn-check-bindings: svn-check-swig-pl svn-check-swig-py svn-check-swig-rb \ |
| svn-check-javahl |
| |
| RUBYLIB=$(SVN_PREFIX)/lib/ruby/site_ruby$(shell grep \ |
| ^svn_cv_ruby_sitedir_archsuffix $(svn_builddir)/config.log | \ |
| cut -d'=' -f2):$(SVN_PREFIX)/lib/ruby/site_ruby$(shell \ |
| grep ^svn_cv_ruby_sitedir_libsuffix $(svn_builddir)/config.log | \ |
| cut -d'=' -f2) |
| svn-check-swig-pl: |
| -if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \ |
| (cd $(svn_builddir) && \ |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \ |
| $(LIB_PTHREAD_HACK) \ |
| env MAKEFLAGS= make check-swig-pl 2>&1) | \ |
| tee $(svn_builddir)/tests.log.bindings.pl; \ |
| fi |
| |
| svn-check-swig-py: |
| -(cd $(svn_builddir) && \ |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \ |
| env MAKEFLAGS= make check-swig-py 2>&1) | \ |
| tee $(svn_builddir)/tests.log.bindings.py |
| |
| # We add the svn prefix to PATH here because the ruby tests |
| # attempt to start an svnserve binary found in PATH. |
| svn-check-swig-rb: |
| (cd $(svn_builddir) && \ |
| env RUBYLIB=$(RUBYLIB) \ |
| LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \ |
| PATH=$(SVN_PREFIX)/bin:$$PATH \ |
| $(LIB_PTHREAD_HACK) \ |
| env MAKEFLAGS= make check-swig-rb 2>&1) | \ |
| tee $(svn_builddir)/tests.log.bindings.rb |
| |
| svn-check-javahl: |
| -if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \ |
| ln -s libsvnjavahl-1.so.0.0 $(PREFIX)/svn-$(WC)/lib/libsvnjavahl-1.so; \ |
| (cd $(svn_builddir) && \ |
| env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \ |
| MAKEFLAGS= make $(JAVAHL_CHECK_TARGET) 2>&1) | \ |
| tee $(svn_builddir)/tests.log.bindings.javahl; \ |
| fi |
| |
| svn-check: svn-check-prepare-ramdisk svn-check-local svn-check-svn \ |
| svn-check-neon svn-check-serf svn-check-bindings |
| |
| .PHONY: sign-email |
| ifdef NEON_FLAG |
| NEON_STR=ra_neon | |
| NEON_VER_LINE=@echo "neon: $(NEON_VER)" |
| endif |
| sign-email: |
| @echo "Summary: +1 to release" |
| @echo "" |
| @echo "Tested: [bdb | fsfs] x [ra_local | ra_svn | $(NEON_STR)ra_serf]" |
| @echo " swig bindings" |
| ifeq ($(ENABLE_JAVA_BINDINGS),yes) |
| @echo " javahl bindings" |
| endif |
| @echo "" |
| @echo "Test results: All passed." |
| @echo "" |
| @echo "Platform: `uname -r -s -m`" |
| @echo "" |
| @echo "Dependencies:" |
| @echo "bdb: $(BDB_VER)" |
| ifeq ($(USE_APR_ICONV),yes) |
| @echo "apr-iconv: $(APR_ICONV_VER)" |
| else |
| @echo "GNU-iconv: $(GNU_ICONV_VER)" |
| endif |
| @echo "apr: $(APR_VER)" |
| @echo "apr-util: $(APR_UTIL_VER)" |
| @echo "httpd: $(HTTPD_VER)" |
| $(NEON_VER_LINE) |
| @echo "serf: $(SERF_VER)" |
| @echo "cyrus-sasl: $(CYRUS_SASL_VER)" |
| @echo "sqlite: $(SQLITE_VER)" |
| ifdef LZ4_FLAG |
| @echo "lz4: $(LZ4_VER)" |
| endif |
| @echo "libssl: `openssl version`" |
| @echo "swig: `swig -version | grep Version | cut -d' ' -f3`" |
| @echo "python: $(PYTHON_VER)" |
| @echo "perl: `eval \`perl -V:version\`; echo $$version`" |
| @echo "ruby: $(RUBY_VER)" |
| ifeq ($(ENABLE_JAVA_BINDINGS),yes) |
| @echo "java: `java -version 2>&1 | grep version | cut -d' ' -f3 | sed -e 's/\"//g'`" |
| endif |
| @echo "" |
| @echo "Signatures:" |
| @echo |
| @echo "subversion-$(TAG).tar.gz" |
| @echo "`cat subversion-$(TAG).tar.gz.asc`" |
| @echo |
| @echo "subversion-$(TAG).tar.bz2" |
| @echo "`cat subversion-$(TAG).tar.bz2.asc`" |