move stuff out of the srcdir
[m6w6/travis-pecl] / Makefile
index 7c570d51b9380a779e3284950018dc12a546aa86..efe8378afc5ca7101399dc8185246c0412c7dc32 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,15 +3,19 @@ export
 PHP ?= 5.6
 JOBS ?= 2
 PHP_MIRROR ?= http://us1.php.net/distributions/
+TMPDIR ?= /tmp
+
+tmpnam := $(TMPDIR)/php-$(PHP)-$(shell env |grep -E '^with_|^enable_' | tr -c '[a-zA-Z_]' -)
+makdir := $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
 
 ifdef TRAVIS_JOB_NUMBER
 prefix ?= $(HOME)/job-$(TRAVIS_JOB_NUMBER)
 else
-prefix ?= $(HOME)
+prefix ?= $(tmpnam)
 endif
 exec_prefix ?= $(prefix)
 bindir = $(exec_prefix)/bin
-srcdir := $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
+srcdir := $(prefix)/src
 ifdef TRAVIS_BUILD_DIR
 curdir ?= $(TRAVIS_BUILD_DIR)
 else
@@ -37,7 +41,7 @@ PECL_DIR := $(if $(filter ext ext%, $(MAKECMDGOALS)), $(curdir), $(srcdir)/pecl-
 
 PHP_VERSION_MAJOR = $(firstword $(subst ., ,$(PHP)))
 PHP_VERSIONS_JSON = $(srcdir)/php-versions$(PHP_VERSION_MAJOR).json
-PHP_VERSION ?= $(shell test -e $(PHP_VERSIONS_JSON) && cat $(PHP_VERSIONS_JSON) | $(srcdir)/php-version.php $(PHP))
+PHP_VERSION ?= $(shell test -e $(PHP_VERSIONS_JSON) && cat $(PHP_VERSIONS_JSON) | $(makdir)/php-version.php $(PHP))
 
 .SUFFIXES:
 
@@ -56,18 +60,18 @@ check: $(PHP_VERSIONS_JSON)
 
 .PHONY: reconf
 reconf: check $(srcdir)/php-$(PHP_VERSION)/configure
-       cd $(srcdir)/php-$(PHP_VERSION) && ./configure -C --prefix=$(prefix)
+       cd $(srcdir)/php-$(PHP_VERSION) && ./configure --cache-file=config.cache --prefix=$(prefix)
 
 .PHONY: php
 php: check $(bindir)/php | $(PECL_INI)
        -for EXT_SONAME in $(extdir)/*.so; do \
                EXT_SONAME=$$(basename $$EXT_SONAME); \
-               if ! grep -q extension=$$EXT_SONAME $(PECL_INI); then \
+               if test "$$EXT_SONAME" != "*.so" && ! grep -q extension=$$EXT_SONAME $(PECL_INI); then \
                        echo extension=$$EXT_SONAME >> $(PECL_INI); \
                fi \
        done
 
-$(PHP_VERSIONS_JSON): $(srcdir)/php-version.php
+$(PHP_VERSIONS_JSON): $(makdir)/php-version.php | $(srcdir)
        curl -Sso $@ "http://php.net/releases/index.php?json&version=$(PHP_VERSION_MAJOR)&max=-1"
 
 $(srcdir)/php-$(PHP_VERSION)/configure: | $(PHP_VERSIONS_JSON)
@@ -78,7 +82,7 @@ $(srcdir)/php-$(PHP_VERSION)/configure: | $(PHP_VERSIONS_JSON)
        fi
 
 $(srcdir)/php-$(PHP_VERSION)/Makefile: $(srcdir)/php-$(PHP_VERSION)/configure | $(PHP_VERSIONS_JSON)
-       cd $(srcdir)/php-$(PHP_VERSION) && ./configure -C --prefix=$(prefix)
+       cd $(srcdir)/php-$(PHP_VERSION) && ./configure --cache-file=config.cache --prefix=$(prefix)
 
 $(srcdir)/php-$(PHP_VERSION)/sapi/cli/php: $(srcdir)/php-$(PHP_VERSION)/Makefile | $(PHP_VERSIONS_JSON)
        cd $(srcdir)/php-$(PHP_VERSION) && make -j $(JOBS) || make
@@ -86,7 +90,7 @@ $(srcdir)/php-$(PHP_VERSION)/sapi/cli/php: $(srcdir)/php-$(PHP_VERSION)/Makefile
 $(bindir)/php: $(srcdir)/php-$(PHP_VERSION)/sapi/cli/php | $(PHP_VERSIONS_JSON)
        cd $(srcdir)/php-$(PHP_VERSION) && make install
 
-$(with_config_file_scan_dir):
+$(srcdir) $(extdir) $(with_config_file_scan_dir):
        mkdir -p $@
 
 ## -- PECL
@@ -114,12 +118,12 @@ $(PECL_DIR)/configure: $(PECL_DIR)/config.m4
        cd $(PECL_DIR) && $(bindir)/phpize
 
 $(PECL_DIR)/Makefile: $(PECL_DIR)/configure
-       cd $(PECL_DIR) && ./configure -C
+       cd $(PECL_DIR) && ./configure --cache-file=config.cache
 
 $(PECL_DIR)/.libs/$(PECL_SONAME).so: $(PECL_DIR)/Makefile
        cd $(PECL_DIR) && make -j $(JOBS) || make
 
-$(extdir)/$(PECL_SONAME).so: $(PECL_DIR)/.libs/$(PECL_SONAME).so
+$(extdir)/$(PECL_SONAME).so: $(PECL_DIR)/.libs/$(PECL_SONAME).so $(extdir)
        cd $(PECL_DIR) && make install
 
 .PHONY: pecl
@@ -134,7 +138,7 @@ ext-rm: pecl-rm
 
 .PHONY: ext
 ext: pecl-check pecl
-       $(srcdir)/check-packagexml.php package.xml
+       $(makdir)/check-packagexml.php package.xml
 
 .PHONY: php
 test: php