File: Makefile

package info (click to toggle)
postgresql-multicorn 1.3.4-4
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,428 kB
  • sloc: ansic: 3,252; python: 2,227; sql: 755; makefile: 282; sh: 35
file content (132 lines) | stat: -rwxr-xr-x 4,869 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
srcdir       = .
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 $(srcdir)/doc/*.md)

EXTENSION    = multicorn
EXTVERSION   = $(shell grep default_version $(srcdir)/$(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/")

all: preflight-check sql/$(EXTENSION)--$(EXTVERSION).sql

directories.stamp:
	[ -d sql ] || mkdir sql
	[ -d src ] || mkdir src
	touch $@

$(OBJS): directories.stamp

sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql directories.stamp
	cp $< $@

preflight-check:
	$(srcdir)/preflight-check.sh

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 --no-external
	genhtml --show-details --legend --output-directory=coverage --title="Multicorn Code Coverage" --no-branch-coverage --num-spaces=4 --prefix=./src/ `find . -name lcov.info -print`

DATA = sql/$(EXTENSION)--$(EXTVERSION).sql
EXTRA_CLEAN = sql/$(EXTENSION)--$(EXTVERSION).sql ./multicorn-$(EXTVERSION).zip directories.stamp
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

ifeq ($(PORTNAME),darwin)
	override LDFLAGS += -undefined dynamic_lookup -bundle_loader $(shell $(PG_CONFIG) --bindir)/postgres
endif

PYTHON_TEST_VERSION ?= $(python_version)
PG_VERSION_NUM = $(shell awk '/PG_VERSION_NUM/ { print $$3 }' $(shell $(PG_CONFIG) --includedir-server)/pg_config.h)
SUPPORTS_WRITE=$(shell expr ${PG_VERSION_NUM} \>= 90300)
SUPPORTS_IMPORT=$(shell expr ${PG_VERSION_NUM} \>= 90500)
UNSUPPORTS_SQLALCHEMY=$(shell python -c "import sqlalchemy;import psycopg2"  1> /dev/null 2>&1; echo $$?)

TESTS        = test-$(PYTHON_TEST_VERSION)/sql/multicorn_cache_invalidation.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_column_options_test.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_error_test.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_logger_test.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_planner_test.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_regression_test.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_sequence_test.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_test_date.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_test_dict.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_test_list.sql \
  test-$(PYTHON_TEST_VERSION)/sql/multicorn_test_sort.sql

ifeq (${UNSUPPORTS_SQLALCHEMY}, 0)
  TESTS += test-$(PYTHON_TEST_VERSION)/sql/multicorn_alchemy_test.sql
endif
ifeq (${SUPPORTS_WRITE}, 1)
  ifneq (${PYTHON_TEST_VERSION}, 3.6)
  ifneq (${PYTHON_TEST_VERSION}, 3.7)
    TESTS += test-$(PYTHON_TEST_VERSION)/sql/write_filesystem.sql
  endif
  endif
  TESTS += test-$(PYTHON_TEST_VERSION)/sql/write_savepoints.sql \
	test-$(PYTHON_TEST_VERSION)/sql/write_test.sql
  ifeq (${UNSUPPORTS_SQLALCHEMY}, 0)
	TESTS += test-$(PYTHON_TEST_VERSION)/sql/write_sqlalchemy.sql
  endif
endif
ifeq (${SUPPORTS_IMPORT}, 1)
  TESTS += test-$(PYTHON_TEST_VERSION)/sql/import_test.sql
  ifeq (${UNSUPPORTS_SQLALCHEMY}, 0)
	TESTS += test-$(PYTHON_TEST_VERSION)/sql/import_sqlalchemy.sql
  endif
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))