mirror of
https://github.com/novatiq/packages.git
synced 2026-07-05 03:29:37 +01:00
8e9ad7bb51
- The extra include is removed; the postgresql build system adds this
include by itself.
- '-lpthread' is removed; the postgresql build system is able to detect
how to access pthread features by itself.
- '$(FPIC)' is removed; adding this to CFLAGS is not recommendable:
a) The postgresql build system adds its own PIC flag behind OpenWrt's
CFLAGS when compiling shared objects, overriding OpenWrt's setting.
b) Forcing applications into PIC mode will just slow them down.
c) This leads to build failures on aarch64:
access/transam/commit_ts.o: In function `CommitTsPagePrecedes':
commit_ts.c:(.text+0x14): relocation truncated to fit: R_AARCH64_LD64_GOTPAGE_LO15 against symbol `TransactionIdPrecedes' defined in .text section in access/transam/transam.o
commit_ts.c:(.text+0x14): warning: Too many GOT entries for -fpic, please recompile with -fPIC
/var/lib/buildbot/slaves/dave-builder/aarch64_generic/build/sdk/staging_dir/toolchain-aarch64_generic_gcc-7.3.0_musl/bin/../lib/gcc/aarch64-openwrt-linux-musl/7.3.0/../../../../aarch64-openwrt-linux-musl/bin/ld: final link failed: Symbol needs debug section which does not exist
collect2: error: ld returned 1 exit status
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
246 lines
6.7 KiB
Makefile
246 lines
6.7 KiB
Makefile
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=postgresql
|
|
PKG_VERSION:=9.6.6
|
|
PKG_RELEASE:=1
|
|
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
|
|
PKG_LICENSE:=PostgreSQL
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
|
PKG_SOURCE_URL:=\
|
|
https://ftp.postgresql.org/pub/source/v$(PKG_VERSION) \
|
|
http://ftp.postgresql.org/pub/source/v$(PKG_VERSION) \
|
|
ftp://ftp.postgresql.org/pub/source/v$(PKG_VERSION)
|
|
|
|
PKG_HASH:=399cdffcb872f785ba67e25d275463d74521566318cfef8fe219050d063c8154
|
|
|
|
PKG_USE_MIPS16:=0
|
|
PKG_FIXUP:=autoreconf
|
|
PKG_MACRO_PATHS:=config
|
|
PKG_BUILD_DEPENDS += readline/host postgresql/host
|
|
PKG_INSTALL:=1
|
|
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/libpq
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
DEPENDS:=+zlib +libreadline +libpthread +libncursesw
|
|
TITLE:=PostgreSQL client library
|
|
URL:=http://www.postgresql.org/
|
|
SUBMENU:=database
|
|
endef
|
|
|
|
define Package/libpq/description
|
|
PostgreSQL client library.
|
|
endef
|
|
|
|
define Package/pgsql-cli
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
DEPENDS:=+libpq +librt
|
|
TITLE:=Command Line Interface (CLI) to PostgreSQL databases
|
|
URL:=http://www.postgresql.org/
|
|
SUBMENU:=database
|
|
endef
|
|
|
|
define Package/pgsql-cli/description
|
|
Command Line Interface (CLI) to PostgreSQL databases.
|
|
endef
|
|
|
|
define Package/pgsql-cli-extra
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
DEPENDS:=+libpq +librt
|
|
TITLE:=Command Line extras for PostgreSQL databases
|
|
URL:=http://www.postgresql.org/
|
|
SUBMENU:=database
|
|
endef
|
|
|
|
define Package/pgsql-cli-extra/description
|
|
Command Line extras for PostgreSQL databases.
|
|
endef
|
|
|
|
define Package/pgsql-server
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
DEPENDS:=+libpq +librt +pgsql-cli
|
|
TITLE:=PostgreSQL databases Server
|
|
URL:=http://www.postgresql.org/
|
|
SUBMENU:=database
|
|
USERID:=postgres=5432:postgres=5432
|
|
endef
|
|
|
|
define Package/pgsql-server/description
|
|
PostgreSQL databases Server.
|
|
endef
|
|
|
|
PGSQL_SERVER_BIN := \
|
|
pg_archivecleanup \
|
|
pg_basebackup \
|
|
pg_controldata \
|
|
pg_ctl \
|
|
pg_dump \
|
|
pg_dumpall \
|
|
pg_isready \
|
|
pg_receivexlog \
|
|
pg_recvlogical \
|
|
pg_resetxlog \
|
|
pg_restore \
|
|
pg_standby \
|
|
pg_upgrade \
|
|
pg_xlogdump \
|
|
postgres \
|
|
initdb
|
|
|
|
PGSQL_CLI_EXTRA_BIN := \
|
|
clusterdb \
|
|
createdb \
|
|
createlang \
|
|
createuser \
|
|
dropdb \
|
|
droplang \
|
|
dropuser \
|
|
pgbench \
|
|
reindexdb \
|
|
vacuumdb
|
|
|
|
PGSQL_CONFIG_VARS:= \
|
|
pgac_cv_snprintf_long_long_int_format="%lld" \
|
|
pgac_cv_snprintf_size_t_support=yes
|
|
|
|
ifeq ($(CONFIG_USE_UCLIBC),y)
|
|
# PostgreSQL does not build against uClibc with locales
|
|
# enabled, due to an uClibc bug, see
|
|
# http://lists.uclibc.org/pipermail/uclibc/2014-April/048326.html
|
|
# so overwrite automatic detection and disable locale support
|
|
PGSQL_CONFIG_VARS+= \
|
|
pgac_cv_type_locale_t=no
|
|
endif
|
|
|
|
TARGET_CONFIGURE_OPTS+=$(PGSQL_CONFIG_VARS)
|
|
|
|
HOST_CONFIGURE_ARGS += \
|
|
--disable-nls \
|
|
--disable-rpath \
|
|
--without-bonjour \
|
|
--without-gssapi \
|
|
--without-ldap \
|
|
--without-openssl \
|
|
--without-pam \
|
|
--without-perl \
|
|
--without-python \
|
|
--without-readline \
|
|
--without-tcl \
|
|
--with-zlib="yes" \
|
|
--enable-depend
|
|
|
|
CONFIGURE_ARGS += \
|
|
$(DISABLE_NLS) \
|
|
--disable-rpath \
|
|
--without-bonjour \
|
|
--without-gssapi \
|
|
--without-ldap \
|
|
--without-openssl \
|
|
--without-pam \
|
|
--without-perl \
|
|
--without-python \
|
|
--without-tcl \
|
|
--with-zlib="yes" \
|
|
--enable-depend \
|
|
$(if $(CONFIG_TARGET_avr32),--disable-spinlocks)
|
|
|
|
# Need a native ecpg, pg_config and zic for build
|
|
define Host/Compile
|
|
$(MAKE) -C $(HOST_BUILD_DIR)/src/bin/pg_config CC="$(HOSTCC)"
|
|
$(MAKE) -C $(HOST_BUILD_DIR)/src/interfaces/ecpg/preproc CC="$(HOSTCC)"
|
|
$(MAKE) -C $(HOST_BUILD_DIR)/src/timezone CC="$(HOSTCC)"
|
|
endef
|
|
|
|
define Host/Install
|
|
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/lib/
|
|
$(INSTALL_BIN) $(HOST_BUILD_DIR)/src/common/libpgcommon.a $(STAGING_DIR_HOSTPKG)/lib/
|
|
$(INSTALL_BIN) $(HOST_BUILD_DIR)/src/port/libpgport.a $(STAGING_DIR_HOSTPKG)/lib/
|
|
$(INSTALL_BIN) $(HOST_BUILD_DIR)/src/bin/pg_config/pg_config $(STAGING_DIR_HOSTPKG)/lib/
|
|
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
|
|
$(INSTALL_BIN) $(HOST_BUILD_DIR)/src/interfaces/ecpg/preproc/ecpg $(STAGING_DIR_HOSTPKG)/bin/
|
|
$(INSTALL_BIN) $(HOST_BUILD_DIR)/src/timezone/zic $(STAGING_DIR_HOSTPKG)/bin/
|
|
endef
|
|
|
|
define Build/Configure
|
|
$(Build/Configure/Default)
|
|
$(SED) 's@ECPG = ../../preproc/ecpg@ECPG = $(STAGING_DIR_HOSTPKG)/bin/ecpg@' $(PKG_BUILD_DIR)/src/interfaces/ecpg/test/Makefile.regress
|
|
endef
|
|
|
|
# because PROFILE means something else in the project Makefile
|
|
unexport PROFILE
|
|
|
|
define Package/libpq/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpq.so.* $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/pgsql-cli/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/psql $(1)/usr/bin/
|
|
endef
|
|
|
|
define Package/pgsql-cli-extra/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(foreach bin,$(PGSQL_CLI_EXTRA_BIN),$(PKG_INSTALL_DIR)/usr/bin/$(bin)) $(1)/usr/bin/
|
|
endef
|
|
|
|
define Package/pgsql-server/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(foreach bin,$(PGSQL_SERVER_BIN),$(PKG_INSTALL_DIR)/usr/bin/$(bin)) $(1)/usr/bin/
|
|
|
|
ln -sf postgres $(1)/usr/bin/postmaster
|
|
|
|
$(INSTALL_DIR) $(1)/usr/share/postgresql
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/share/postgresql/* \
|
|
$(1)/usr/share/postgresql
|
|
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/postgresql \
|
|
$(1)/usr/lib/
|
|
|
|
$(INSTALL_DIR) $(1)/lib/functions
|
|
$(INSTALL_BIN) ./files/postgresql.sh $(1)/lib/functions/
|
|
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_DATA) ./files/postgresql.config $(1)/etc/config/postgresql
|
|
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/postgresql.init $(1)/etc/init.d/postgresql
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(CP) $(STAGING_DIR_HOSTPKG)/lib/pg_config $(1)/usr/bin
|
|
$(INSTALL_DIR) $(1)/host/bin/
|
|
$(LN) $(STAGING_DIR)/usr/bin/pg_config $(1)/host/bin
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/libpq $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/libpq-fe.h $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/pg_config.h $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/pg_config_manual.h $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/postgres_ext.h $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/pg_config_ext.h $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/postgresql $(1)/usr/include/
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpq.{a,so*} $(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpq.pc $(1)/usr/lib/pkgconfig/
|
|
endef
|
|
|
|
$(eval $(call HostBuild))
|
|
$(eval $(call BuildPackage,libpq))
|
|
$(eval $(call BuildPackage,pgsql-cli))
|
|
$(eval $(call BuildPackage,pgsql-cli-extra))
|
|
$(eval $(call BuildPackage,pgsql-server))
|