OSDN Git Service

RPM automation
authorKyotaro Horiguchi <horiguchi.kyotaro@lab.ntt.co.jp>
Fri, 5 Sep 2014 04:35:55 +0000 (13:35 +0900)
committerKyotaro Horiguchi <horiguchi.kyotaro@lab.ntt.co.jp>
Fri, 5 Sep 2014 04:40:15 +0000 (13:40 +0900)
Makefile
SPECS/pg_hint_plan94.spec

index ecd21d1..6aaf45c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,8 @@
 #
 
 MODULES = pg_hint_plan
+HINTPLANVER = 1.1.1
+
 REGRESS = init base_plan pg_hint_plan ut-init ut-A ut-S ut-J ut-L ut-G ut-R ut-fdw ut-fini
 
 REGRESSION_EXPECTED = expected/init.out expected/base_plan.out expected/pg_hint_plan.out expected/ut-A.out expected/ut-S.out expected/ut-J.out expected/ut-L.out expected/ut-G.out
@@ -20,7 +22,34 @@ PG_CONFIG = pg_config
 PGXS := $(shell $(PG_CONFIG) --pgxs)
 include $(PGXS)
 
+STARBALL = pg_dbms_stats-$(DBMSSTATSVER).tar.gz
+STARBALL94 = pg_hint_plan94-$(HINTPLANVER).tar.gz
+STARBALLS = $(STARBALL) $(STARBALL94)
+
+TARSOURCES = Makefile *.c  *.h \
+       pg_hint_plan--*.sql \
+       pg_hint_plan.control \
+       doc/* expected/*.out sql/*.sql \
+       input/*.source output/*.source SPECS/*.spec
+
 installcheck: $(REGRESSION_EXPECTED)
 
+rpms: rpm94
+
 # pg_hint_plan.c includes core.c and make_join_rel.c
-pg_hint_plan.o: core.c make_join_rel.c pg_stat_statements.c
+pg_hint_plan.o: core.c make_join_rel.c # pg_stat_statements.c
+
+$(STARBALLS): $(TARSOURCES)
+       if [ -h $(subst .tar.gz,,$@) ]; then rm $(subst .tar.gz,,$@); fi
+       if [ -e $(subst .tar.gz,,$@) ]; then \
+         echo "$(subst .tar.gz,,$@) is not a symlink. Stop."; \
+         exit 1; \
+       fi
+       ln -s . $(subst .tar.gz,,$@)
+       tar -chzf $@ $(addprefix $(subst .tar.gz,,$@)/, $^)
+       rm $(subst .tar.gz,,$@)
+
+rpm94: $(STARBALL94)
+       MAKE_ROOT=`pwd` rpmbuild -bb SPECS/pg_hint_plan94.spec
+
+
index 0b53332..3b2e1f9 100644 (file)
@@ -5,6 +5,10 @@
 %define _bindir  %{_pgdir}/bin
 %define _libdir  %{_pgdir}/lib
 %define _datadir %{_pgdir}/share
+%if "%(echo ${MAKE_ROOT})" != ""
+  %define _rpmdir %(echo ${MAKE_ROOT})/RPMS
+  %define _sourcedir %(echo ${MAKE_ROOT})
+%endif
 
 ## Set general information for pg_hint_plan.
 Summary:    Optimizer hint for PostgreSQL 9.4
@@ -36,11 +40,19 @@ Note that this package is available for only PostgreSQL 9.4.
 
 ## pre work for build pg_hint_plan
 %prep
+PATH=/usr/pgsql-9.4/bin:$PATH
+if [ "${MAKE_ROOT}" != "" ]; then
+  pushd ${MAKE_ROOT}
+  make clean %{name}-%{version}.tar.gz
+  popd
+fi
+if [ ! -d %{_rpmdir} ]; then mkdir -p %{_rpmdir}; fi
 %setup -q
 
 ## Set variables for build environment
 %build
-make %{?_smp_mflags}
+PATH=/usr/pgsql-9.4/bin:$PATH
+make USE_PGXS=1 %{?_smp_mflags}
 
 ## Set variables for install
 %install