title: How to change python version in makefile - compiling Multicorn (PostgreSQL FDW extension)
body: <p>I'm trying to install <a href="https://github.com/Kozea/Multicorn" rel="nofollow">PostgreSQL extension Multicorn</a> on CentOS 6.5. The problem that I have though is that default version of python on Centos is 2.6 and Multicorn requires 2.7 or 3.3. I'm trying to compile Multicorn using <a href="http://databaseblog.myname.nl/2013/01/installing-unicorn-on-rhel6.html" rel="nofollow">this tutorial</a>, but it's a little dated and the step where python version is changed doesn't work anymore:</p>
  
  <pre><code>sed -i 's/^PYEXEC = python$/PYEXEC = python2.7/' Makefile
  </code></pre>
  
  <p>Can someone help me to make the above command work again, or show me how to edit the makefile to change the version of python? I can call python version 2.7 in the command line with <code>python2.7</code>. The version 2.6 is called with just <code>python</code> - apparently I can't change that without breaking CentOS.</p>
  
  <p>This is the makefile:</p>
  
  <pre><code>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 $&lt; $@
  
  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: all
      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&gt;&amp;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} \&gt;= 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 is $(python_version))
  </code></pre>