EXTENSION    = $(shell grep -m 1 '"name":' META.json | \
               sed -e 's/[[:space:]]*"name":[[:space:]]*"\([^"]*\)",/\1/')

EXTVERSION   = $(shell grep -m 1 '[[:space:]]\{8\}"version":' META.json | \
               sed -e 's/[[:space:]]*"version":[[:space:]]*"\([^"]*\)",\{0,1\}/\1/')

DISTVERSION  = $(shell grep -m 1 '[[:space:]]\{3\}"version":' META.json | \
               sed -e 's/[[:space:]]*"version":[[:space:]]*"\([^"]*\)",\{0,1\}/\1/')

DATA 		    = $(wildcard extension_sql/*--*.sql)

TESTS        = $(wildcard test/sql/*.sql)

REGRESS      = $(patsubst test/sql/%.sql,%,$(TESTS))

REGRESS_OPTS = --inputdir=test --load-extension=pg_retry

MODULES      = $(patsubst %.c,%,$(wildcard src/*.c))

PG_CONFIG   ?= pg_config

PG91         = $(shell $(PG_CONFIG) --version | grep -qE " 8\.| 9\.0" && echo no || echo yes)

EXTRA_CLEAN = extension_sql/$(EXTENSION)--$(EXTVERSION).sql

# Additional compiler flags (PGXS provides most flags)
PG_CFLAGS = -DUSE_ASSERT_CHECKING -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare -std=c11 \
	-Wimplicit-fallthrough -g -O2 -fno-omit-frame-pointer \
	-fstack-protector-strong -D_FORTIFY_SOURCE=3

PGXS := $(shell $(PG_CONFIG) --pgxs)

include $(PGXS)

all: extension_sql/$(EXTENSION)--$(EXTVERSION).sql

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

dist: clean all
	mkdir -p $(EXTENSION)-$(DISTVERSION)
	cp -r extension_sql src test META.json Makefile pg_retry.control README.md LICENSE $(EXTENSION)-$(DISTVERSION)/
	# Remove compiled binaries from distribution
	rm -f $(EXTENSION)-$(DISTVERSION)/src/*.o $(EXTENSION)-$(DISTVERSION)/src/*.dylib
	zip -r $(EXTENSION)-$(DISTVERSION).zip $(EXTENSION)-$(DISTVERSION)
	rm -rf $(EXTENSION)-$(DISTVERSION)
