c - How to change python version in makefile - compiling Multicorn (PostgreSQL FDW extension) -
i'm trying install postgresql extension multicorn on centos 6.5. problem have though default version of python on centos 2.6 , multicorn requires 2.7 or 3.3. i'm trying compile multicorn using this tutorial, it's little dated , step python version changed doesn't work anymore:
sed -i 's/^pyexec = python$/pyexec = python2.7/' makefile can me make above command work again, or show me how edit makefile change version of python? can call python version 2.7 in command line python2.7. version 2.6 called python - apparently can't change without breaking centos.
this makefile:
module_big = multicorn objs = src/errors.o src/python.o src/query.o src/multicorn.o data = $(filter-out $(wildcard sql/*--*.sql),$(wildcard sql/*.sql)) docs = $(wildcard doc/*.md) extension = multicorn extversion = $(shell grep default_version $(extension).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/") all: preflight-check sql/$(extension)--$(extversion).sql install: python_code sql/$(extension)--$(extversion).sql: sql/$(extension).sql cp $< $@ preflight-check: ./preflight-check.sh python_code: setup.py cp ./setup.py ./setup--$(extversion).py sed -i -e "s/__version__/$(extversion)-dev/g" ./setup--$(extversion).py $(python) ./setup--$(extversion).py install rm ./setup--$(extversion).py release-zip: git archive --format zip --prefix=multicorn-$(extversion)/ --output ./multicorn-$(extversion).zip head unzip ./multicorn-$(extversion).zip rm ./multicorn-$(extversion).zip sed -i -e "s/__version__/$(extversion)/g" ./multicorn-$(extversion)/meta.json ./multicorn-$(extversion)/setup.py ./multicorn-$(extversion)/python/multicorn/__init__.py zip -r ./multicorn-$(extversion).zip ./multicorn-$(extversion)/ rm ./multicorn-$(extversion) -rf coverage: lcov -d . -c -o lcov.info genhtml --show-details --legend --output-directory=coverage --title=postgresql --num-spaces=4 --prefix=./src/ `find . -name lcov.info -print` data = sql/$(extension)--$(extversion).sql extra_clean = sql/$(extension)--$(extversion).sql ./multicorn-$(extversion).zip pg_config ?= pg_config pgxs := $(shell $(pg_config) --pgxs) regress = virtual_tests include $(pgxs) with_python_no_override = no ifeq ($(with_python),yes) with_python_no_override = yes endif ifdef python_override with_python_no_override = no endif ifeq ($(with_python_no_override),yes) shlib_link = $(python_libspec) $(python_additional_libs) $(filter -lintl,$(libs)) override cppflags := -i. -i$(srcdir) $(python_includespec) $(cppflags) override python = python${python_version} else ifdef python_override override python = ${python_override} endif ifeq (${python}, ) override python = python endif python_version = $(shell ${python} --version 2>&1 | cut -d ' ' -f 2 | cut -d '.' -f 1-2) python_config ?= python${python_version}-config py_libspec = $(shell ${python_config} --libs) py_includespec = $(shell ${python_config} --includes) py_cflags = $(shell ${python_config} --cflags) py_ldflags = $(shell ${python_config} --ldflags) shlib_link = $(py_libspec) $(py_ldflags) $(py_additional_libs) $(filter -lintl,$(libs)) override pg_cppflags := $(py_includespec) $(pg_cppflags) override cppflags := $(pg_cppflags) $(cppflags) endif python_test_version ?= $(python_version) pg_test_version ?= $(majorversion) supports_write=$(shell expr ${pg_test_version} \>= 9.3) tests = $(wildcard test-$(python_test_version)/sql/multicorn*.sql) ifeq (${supports_write}, 1) tests += $(wildcard test-$(python_test_version)/sql/write*.sql) endif regress = $(patsubst test-$(python_test_version)/sql/%.sql,%,$(tests)) regress_opts = --inputdir=test-$(python_test_version) --load-language=plpgsql $(info python version $(python_version))
the best practice run make as
python=python2.7 make if take @ line 26 of makefile, you'll see compilation handled setup.py script invoked executable specified in $(python) variable can override setting environment. way (e.g. if want multiple builds) one:
export python=python2.7 make changing script behavior enviroment variables or command line arguments more reasonable , more simple patching script source itself.
more makefile variables: http://ftp.gnu.org/old-gnu/manuals/make-3.79.1/html_chapter/make_6.html#sec68
Comments
Post a Comment