Merge pull request #2116 from felixhandte/pkg-config-again-again

Fix pkg-config File Generation Again Again
This commit is contained in:
Felix Handte 2020-05-08 17:14:43 -04:00 committed by GitHub
commit 3b39ce6b52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 40 additions and 11 deletions

View File

@ -184,6 +184,7 @@ matrix:
os: osx os: osx
script: script:
- make test - make test
- make -C lib all
- name: zbuff test - name: zbuff test
if: branch = master if: branch = master

View File

@ -45,7 +45,7 @@ allmost: allzstd zlibwrapper
# skip zwrapper, can't build that on alternate architectures without the proper zlib installed # skip zwrapper, can't build that on alternate architectures without the proper zlib installed
.PHONY: allzstd .PHONY: allzstd
allzstd: lib allzstd: lib-all
$(MAKE) -C $(PRGDIR) all $(MAKE) -C $(PRGDIR) all
$(MAKE) -C $(TESTDIR) all $(MAKE) -C $(TESTDIR) all
@ -55,7 +55,7 @@ all32:
$(MAKE) -C $(TESTDIR) all32 $(MAKE) -C $(TESTDIR) all32
.PHONY: lib lib-release libzstd.a .PHONY: lib lib-release libzstd.a
lib lib-release : lib lib-release lib-all :
@$(MAKE) -C $(ZSTDDIR) $@ @$(MAKE) -C $(ZSTDDIR) $@
.PHONY: zstd zstd-release .PHONY: zstd zstd-release

View File

@ -137,11 +137,12 @@ endif ()
if (UNIX) if (UNIX)
# pkg-config # pkg-config
set(PREFIX "${CMAKE_INSTALL_PREFIX}") set(PREFIX "${CMAKE_INSTALL_PREFIX}")
set(LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") set(LIBDIR "${CMAKE_INSTALL_LIBDIR}")
set(INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}")
set(VERSION "${zstd_VERSION}") set(VERSION "${zstd_VERSION}")
add_custom_target(libzstd.pc ALL add_custom_target(libzstd.pc ALL
${CMAKE_COMMAND} -DIN="${LIBRARY_DIR}/libzstd.pc.in" -DOUT="libzstd.pc" ${CMAKE_COMMAND} -DIN="${LIBRARY_DIR}/libzstd.pc.in" -DOUT="libzstd.pc"
-DPREFIX="${PREFIX}" -DVERSION="${VERSION}" -DPREFIX="${PREFIX}" -DLIBDIR="${LIBDIR}" -DINCLUDEDIR="${INCLUDEDIR}" -DVERSION="${VERSION}"
-P "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake" -P "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake"
COMMENT "Creating pkg-config file") COMMENT "Creating pkg-config file")

View File

@ -180,10 +180,13 @@ else
endif endif
.PHONY: default all clean install uninstall .PHONY: default lib-all all clean install uninstall
default: lib-release default: lib-release
# alias
lib-all: all
all: lib all: lib
libzstd.a: ARFLAGS = rcs libzstd.a: ARFLAGS = rcs
@ -250,6 +253,8 @@ clean:
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku)) ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku))
all: libzstd.pc
DESTDIR ?= DESTDIR ?=
# directory variables : GNU conventions prefer lowercase # directory variables : GNU conventions prefer lowercase
# see https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html # see https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html
@ -257,11 +262,31 @@ DESTDIR ?=
prefix ?= /usr/local prefix ?= /usr/local
PREFIX ?= $(prefix) PREFIX ?= $(prefix)
exec_prefix ?= $(PREFIX) exec_prefix ?= $(PREFIX)
libdir ?= $(exec_prefix)/lib EXEC_PREFIX ?= $(exec_prefix)
libdir ?= $(EXEC_PREFIX)/lib
LIBDIR ?= $(libdir) LIBDIR ?= $(libdir)
includedir ?= $(PREFIX)/include includedir ?= $(PREFIX)/include
INCLUDEDIR ?= $(includedir) INCLUDEDIR ?= $(includedir)
PCLIBDIR ?= $(shell echo "$(LIBDIR)" | sed -n -E -e "s@^$(EXEC_PREFIX)(/|$$)@@p")
PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | sed -n -E -e "s@^$(PREFIX)(/|$$)@@p")
ifeq (,$(PCLIBDIR))
# Additional prefix check is required, since the empty string is technically a
# valid PCLIBDIR
ifeq (,$(shell echo "$(LIBDIR)" | sed -n -E -e "\\@^$(EXEC_PREFIX)(/|$$)@ p"))
$(error configured libdir ($(LIBDIR)) is outside of prefix ($(PREFIX)), can't generate pkg-config file)
endif
endif
ifeq (,$(PCINCDIR))
# Additional prefix check is required, since the empty string is technically a
# valid PCINCDIR
ifeq (,$(shell echo "$(INCLUDEDIR)" | sed -n -E -e "\\@^$(PREFIX)(/|$$)@ p"))
$(error configured includedir ($(INCLUDEDIR)) is outside of exec_prefix ($(EXEC_PREFIX)), can't generate pkg-config file)
endif
endif
ifneq (,$(filter $(shell uname),FreeBSD NetBSD DragonFly)) ifneq (,$(filter $(shell uname),FreeBSD NetBSD DragonFly))
PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig
else else
@ -281,9 +306,11 @@ INSTALL_DATA ?= $(INSTALL) -m 644
libzstd.pc: libzstd.pc:
libzstd.pc: libzstd.pc.in libzstd.pc: libzstd.pc.in
@echo creating pkgconfig @echo creating pkgconfig
$(Q)sed -e 's|@PREFIX@|$(PREFIX)|' \ $(Q)@sed -E -e 's|@PREFIX@|$(PREFIX)|' \
-e 's|@VERSION@|$(VERSION)|' \ -e 's|@LIBDIR@|$(PCLIBDIR)|' \
$< >$@ -e 's|@INCLUDEDIR@|$(PCINCDIR)|' \
-e 's|@VERSION@|$(VERSION)|' \
$< >$@
install: install-pc install-static install-shared install-includes install: install-pc install-static install-shared install-includes
@echo zstd static and shared library installed @echo zstd static and shared library installed

View File

@ -4,8 +4,8 @@
prefix=@PREFIX@ prefix=@PREFIX@
exec_prefix=${prefix} exec_prefix=${prefix}
includedir=${prefix}/include includedir=${prefix}/@INCLUDEDIR@
libdir=${exec_prefix}/lib libdir=${exec_prefix}/@LIBDIR@
Name: zstd Name: zstd
Description: fast lossless compression algorithm library Description: fast lossless compression algorithm library