Skip to content

Commit

Permalink
Preliminary support for installing and resolving pkg-config files
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@39968 72102866-910b-0410-8b05-ffd578937521
  • Loading branch information
ngrewe committed Jul 8, 2016
1 parent 0d321a1 commit b3c4eb9
Show file tree
Hide file tree
Showing 10 changed files with 596 additions and 419 deletions.
19 changes: 18 additions & 1 deletion ChangeLog
@@ -1,4 +1,21 @@
2015-06-29 Niels Grewe <niels.grewe@halbordnung.de>
2016-07-08 Niels Grewe <niels.grewe@halbordnung.de>

* GNUstep.conf.in
* GNUstep.csh.in
* GNUstep.sh.in
* Instance/Shared/pkgconfig.make
* Instance/framework.make
* Instance/library.make
* config-noarch.make.in
* configure
* configure.ac
* messages.make

Preliminary support for pkg-config files. The GNUstep.sh scripts
set the PKG_CONFIG_PATH and $(INSTANCE)_PKGCONFIG_FILES can be used
to specify the files to install.

2016-06-29 Niels Grewe <niels.grewe@halbordnung.de>

* Instance/framework.make: Fix installation of Resources symlinks.

Expand Down
87 changes: 57 additions & 30 deletions GNUstep.csh.in
@@ -1,3 +1,4 @@

# This file must be sourced inside csh using: source
#
# @configure_input@
Expand All @@ -17,7 +18,7 @@
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
#
# You should have received a copy of the GNU General Public
# License along with this library; see the file COPYING.
# If not, write to the Free Software Foundation,
Expand Down Expand Up @@ -126,6 +127,8 @@ if ( ! ${?LIBRARY_COMBO} ) then
setenv LIBRARY_COMBO "@ac_cv_library_combo@"
endif

setenv GNUSTEP_HAS_PKGCONFIG "@GNUSTEP_HAS_PKGCONFIG@"

if ( ! ${?GNUSTEP_MAKEFILES} ) then
setenv GNUSTEP_MAKEFILES "@GNUSTEP_MAKEFILES@"
endif
Expand Down Expand Up @@ -342,6 +345,31 @@ end

unset dir

if ( "${GNUSTEP_HAS_PKGCONFIG}" == "yes" ) then
set GNUSTEP_PKGCONFIG_FRAGMENT=pkgconfig
set GNUSTEP_PKGCONFIG_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARIES" "$GNUSTEP_LOCAL_LIBRARIES" "$GNUSTEP_NETWORK_LIBRARIES" "$GNUSTEP_SYSTEM_LIBRARIES" $fixup_paths`
foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_PKGCONFIG_PATHLIST}"'; do echo $i; done'` )
if ( "$GNUSTEP_IS_FLATTENED" == "yes" ) then
set path_fragment="$dir/$GNUSTEP_PKGCONFIG_FRAGMENT"
else
set path_fragment="$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$GNUSTEP_PKGCONFIG_FRAGMENT:$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$GNUSTEP_PKGCONFIG_FRAGMENT"
endif


if ( $?PKG_CONFIG_PATH == 0 ) then
setenv PKG_CONFIG_PATH "${path_fragment}"
else if ( { (echo ":${PKG_CONFIG_PATH}:"\
|grep -v ":${path_fragment}:" >/dev/null) } ) then
setenv PKG_CONFIG_PATH "${path_fragment}:${PKG_CONFIG_PATH}"
endif

end
unset path_fragment dir
unset GNUSTEP_PKGCONFIG_PATHLIST GNUSTEP_PKGCONFIG_FRAGMENT

endif


if ( "${GNUSTEP_MAKE_STRICT_V2_MODE}" == "yes" ) then
unsetenv GNUSTEP_IS_FLATTENED
unsetenv LIBRARY_COMBO
Expand All @@ -365,55 +393,54 @@ unset GNUSTEP_KEEP_USER_CONFIG_FILE

unsetenv GNUSTEP_USER_DEFAULTS_DIR

unsetenv GNUSTEP_SYSTEM_APPS
unsetenv GNUSTEP_SYSTEM_ADMIN_APPS
unsetenv GNUSTEP_SYSTEM_WEB_APPS
unsetenv GNUSTEP_SYSTEM_TOOLS
unsetenv GNUSTEP_SYSTEM_ADMIN_TOOLS
unsetenv GNUSTEP_SYSTEM_APPS
unsetenv GNUSTEP_SYSTEM_ADMIN_APPS
unsetenv GNUSTEP_SYSTEM_WEB_APPS
unsetenv GNUSTEP_SYSTEM_TOOLS
unsetenv GNUSTEP_SYSTEM_ADMIN_TOOLS
unsetenv GNUSTEP_SYSTEM_LIBRARY
unsetenv GNUSTEP_SYSTEM_HEADERS
unsetenv GNUSTEP_SYSTEM_LIBRARIES
unsetenv GNUSTEP_SYSTEM_DOC
unsetenv GNUSTEP_SYSTEM_HEADERS
unsetenv GNUSTEP_SYSTEM_LIBRARIES
unsetenv GNUSTEP_SYSTEM_DOC
unsetenv GNUSTEP_SYSTEM_DOC_MAN
unsetenv GNUSTEP_SYSTEM_DOC_INFO

unsetenv GNUSTEP_NETWORK_APPS
unsetenv GNUSTEP_NETWORK_ADMIN_APPS
unsetenv GNUSTEP_NETWORK_WEB_APPS
unsetenv GNUSTEP_NETWORK_TOOLS
unsetenv GNUSTEP_NETWORK_APPS
unsetenv GNUSTEP_NETWORK_ADMIN_APPS
unsetenv GNUSTEP_NETWORK_WEB_APPS
unsetenv GNUSTEP_NETWORK_TOOLS
unsetenv GNUSTEP_NETWORK_ADMIN_TOOLS
unsetenv GNUSTEP_NETWORK_LIBRARY
unsetenv GNUSTEP_NETWORK_HEADERS
unsetenv GNUSTEP_NETWORK_LIBRARIES
unsetenv GNUSTEP_NETWORK_DOC
unsetenv GNUSTEP_NETWORK_HEADERS
unsetenv GNUSTEP_NETWORK_LIBRARIES
unsetenv GNUSTEP_NETWORK_DOC
unsetenv GNUSTEP_NETWORK_DOC_MAN
unsetenv GNUSTEP_NETWORK_DOC_INFO

unsetenv GNUSTEP_LOCAL_APPS
unsetenv GNUSTEP_LOCAL_ADMIN_APPS
unsetenv GNUSTEP_LOCAL_WEB_APPS
unsetenv GNUSTEP_LOCAL_TOOLS
unsetenv GNUSTEP_LOCAL_APPS
unsetenv GNUSTEP_LOCAL_ADMIN_APPS
unsetenv GNUSTEP_LOCAL_WEB_APPS
unsetenv GNUSTEP_LOCAL_TOOLS
unsetenv GNUSTEP_LOCAL_ADMIN_TOOLS
unsetenv GNUSTEP_LOCAL_LIBRARY
unsetenv GNUSTEP_LOCAL_HEADERS
unsetenv GNUSTEP_LOCAL_LIBRARIES
unsetenv GNUSTEP_LOCAL_DOC
unsetenv GNUSTEP_LOCAL_HEADERS
unsetenv GNUSTEP_LOCAL_LIBRARIES
unsetenv GNUSTEP_LOCAL_DOC
unsetenv GNUSTEP_LOCAL_DOC_MAN
unsetenv GNUSTEP_LOCAL_DOC_INFO

unsetenv GNUSTEP_USER_APPS
unsetenv GNUSTEP_USER_APPS
unsetenv GNUSTEP_USER_ADMIN_APPS
unsetenv GNUSTEP_USER_WEB_APPS
unsetenv GNUSTEP_USER_TOOLS
unsetenv GNUSTEP_USER_ADMIN_TOOLS
unsetenv GNUSTEP_USER_TOOLS
unsetenv GNUSTEP_USER_ADMIN_TOOLS
unsetenv GNUSTEP_USER_LIBRARY
unsetenv GNUSTEP_USER_HEADERS
unsetenv GNUSTEP_USER_LIBRARIES
unsetenv GNUSTEP_USER_DOC
unsetenv GNUSTEP_USER_HEADERS
unsetenv GNUSTEP_USER_LIBRARIES
unsetenv GNUSTEP_USER_DOC
unsetenv GNUSTEP_USER_DOC_MAN
unsetenv GNUSTEP_USER_DOC_INFO

unsetenv GNUSTEP_SYSTEM_USERS_DIR
unsetenv GNUSTEP_LOCAL_USERS_DIR
unsetenv GNUSTEP_NETWORK_USERS_DIR

128 changes: 85 additions & 43 deletions GNUstep.sh.in
@@ -1,3 +1,4 @@

# This file must be sourced inside (ba)sh using: .
#
# @configure_input@
Expand All @@ -17,7 +18,7 @@
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
#
# You should have received a copy of the GNU General Public
# License along with this library; see the file COPYING.
# If not, write to the Free Software Foundation,
Expand Down Expand Up @@ -104,7 +105,7 @@ GNUSTEP_HOME=~
# Read the user configuration file ... unless it is disabled (ie, set
# to an empty string)
if [ -n "$GNUSTEP_USER_CONFIG_FILE" ]; then
case "$GNUSTEP_USER_CONFIG_FILE" in
case "$GNUSTEP_USER_CONFIG_FILE" in
/*) # An absolute path
if [ -f "$GNUSTEP_USER_CONFIG_FILE" ]; then
. "$GNUSTEP_USER_CONFIG_FILE"
Expand Down Expand Up @@ -168,6 +169,9 @@ if [ ! "$GNUSTEP_MAKE_STRICT_V2_MODE" = "yes" ]; then
# is defined - at the end of the script.
fi


GNUSTEP_HAS_PKGCONFIG=@GNUSTEP_HAS_PKGCONFIG@

if [ -z "$GNUSTEP_MAKEFILES" ]; then
GNUSTEP_MAKEFILES=@GNUSTEP_MAKEFILES@
fi
Expand All @@ -189,7 +193,7 @@ else
# Set GNUSTEP_USER_ROOT which is the variable used in practice.
# GNUSTEP_USER_ROOT is deprecated and will be removed
#
case "$GNUSTEP_USER_DIR" in
case "$GNUSTEP_USER_DIR" in
/*) # An absolute path
GNUSTEP_USER_ROOT="$GNUSTEP_USER_DIR";;
*) # Something else
Expand Down Expand Up @@ -243,7 +247,7 @@ if [ -z "$GNUSTEP_HOST_VENDOR" ]; then
GNUSTEP_HOST_VENDOR=`$GNUSTEP_MAKEFILES/clean_vendor.sh $GNUSTEP_HOST_VENDOR`
fi

if [ -z "$GNUSTEP_HOST_OS" ]; then
if [ -z "$GNUSTEP_HOST_OS" ]; then
GNUSTEP_HOST_OS=`$GNUSTEP_MAKEFILES/os.sh $GNUSTEP_HOST`
GNUSTEP_HOST_OS=`$GNUSTEP_MAKEFILES/clean_os.sh $GNUSTEP_HOST_OS`
fi
Expand Down Expand Up @@ -441,7 +445,7 @@ case "$GNUSTEP_HOST_OS" in

# The code below has been temporarily removed, because...
# Frameworks in GNUstep-make are supported by creating a link like
#
#
# Libraries/libMyFramework.dylib ->
# Frameworks/MyFramework.framework/Versions/Current/libMyFramework.dylib,
#
Expand All @@ -459,7 +463,7 @@ case "$GNUSTEP_HOST_OS" in
#
# if [ "$LIBRARY_COMBO" = "apple-apple-apple" -o \
# "$LIBRARY_COMBO" = "apple" ]; then

if [ -z "$DYLD_FRAMEWORK_PATH" ]; then
DYLD_FRAMEWORK_PATH="$path_fragment"
else
Expand Down Expand Up @@ -548,6 +552,44 @@ unset dir
unset GNUSTEP_INFO_PATHLIST
export INFOPATH

if [ "$GNUSTEP_HAS_PKGCONFIG" = "yes" ]; then
# Determine the library paths
GNUSTEP_PKGCONFIG_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARIES" "$GNUSTEP_LOCAL_LIBRARIES" "$GNUSTEP_NETWORK_LIBRARIES" "$GNUSTEP_SYSTEM_LIBRARIES" $fixup_paths`

old_IFS="$IFS"
IFS=:
GNUSTEP_PKGCONFIG_FRAGMENT=pkgconfig

for dir in $GNUSTEP_PKGCONFIG_PATHLIST; do

# prepare the path_fragment for libraries and this dir
if [ "$GNUSTEP_IS_FLATTENED" = "yes" ]; then
path_fragment="$dir/$GNUSTEP_PKGCONFIG_FRAGMENT"
else
path_fragment="$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$GNUSTEP_PKGCONFIG_FRAGMENT:$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$GNUSTEP_PKGCONFIG_FRAGMENT"
fi

if [ -z "$PKG_CONFIG_PATH" ]; then
PKG_CONFIG_PATH="$path_fragment"
else
if ( echo ":${PKG_CONFIG_PATH}:"\
|grep -v ":${path_fragment}:" >/dev/null ); then
PKG_CONFIG_PATH="$path_fragment:$PKG_CONFIG_PATH"
fi
fi
export PKG_CONFIG_PATH

done
IFS="$old_IFS"
unset old_IFS
unset dir
unset path_fragment

unset GNUSTEP_PKGCONFIG_FRAGMENT
unset GNUSTEP_PKGCONFIG_PATHLIST
unset GNUSTEP_HAS_PKGCONFIG
fi # [ "$GNUSTEP_HAS_PKGCONFIG" = "yes" ]

#
# Clean up the environment by removing the filesystem variables. Do
# it unless we were explicitly requested not to clean it up! Mostly
Expand All @@ -568,19 +610,19 @@ if [ -n "$GNUSTEP_SH_EXPORT_ALL_VARIABLES" ]; then
export GNUSTEP_IS_FLATTENED LIBRARY_COMBO
export GNUSTEP_HOST GNUSTEP_HOST_CPU GNUSTEP_HOST_VENDOR GNUSTEP_HOST_OS

export GNUSTEP_SYSTEM_APPS GNUSTEP_SYSTEM_ADMIN_APPS GNUSTEP_SYSTEM_WEB_APPS GNUSTEP_SYSTEM_TOOLS GNUSTEP_SYSTEM_ADMIN_TOOLS
export GNUSTEP_SYSTEM_APPS GNUSTEP_SYSTEM_ADMIN_APPS GNUSTEP_SYSTEM_WEB_APPS GNUSTEP_SYSTEM_TOOLS GNUSTEP_SYSTEM_ADMIN_TOOLS
export GNUSTEP_SYSTEM_LIBRARY GNUSTEP_SYSTEM_HEADERS GNUSTEP_SYSTEM_LIBRARIES
export GNUSTEP_SYSTEM_DOC GNUSTEP_SYSTEM_DOC_MAN GNUSTEP_SYSTEM_DOC_INFO

export GNUSTEP_NETWORK_APPS GNUSTEP_NETWORK_ADMIN_APPS GNUSTEP_NETWORK_WEB_APPS GNUSTEP_NETWORK_TOOLS GNUSTEP_NETWORK_ADMIN_TOOLS
export GNUSTEP_NETWORK_APPS GNUSTEP_NETWORK_ADMIN_APPS GNUSTEP_NETWORK_WEB_APPS GNUSTEP_NETWORK_TOOLS GNUSTEP_NETWORK_ADMIN_TOOLS
export GNUSTEP_NETWORK_LIBRARY GNUSTEP_NETWORK_HEADERS GNUSTEP_NETWORK_LIBRARIES
export GNUSTEP_NETWORK_DOC GNUSTEP_NETWORK_DOC_MAN GNUSTEP_NETWORK_DOC_INFO

export GNUSTEP_LOCAL_APPS GNUSTEP_LOCAL_ADMIN_APPS GNUSTEP_LOCAL_WEB_APPS GNUSTEP_LOCAL_TOOLS GNUSTEP_LOCAL_ADMIN_TOOLS
export GNUSTEP_LOCAL_APPS GNUSTEP_LOCAL_ADMIN_APPS GNUSTEP_LOCAL_WEB_APPS GNUSTEP_LOCAL_TOOLS GNUSTEP_LOCAL_ADMIN_TOOLS
export GNUSTEP_LOCAL_LIBRARY GNUSTEP_LOCAL_HEADERS GNUSTEP_LOCAL_LIBRARIES
export GNUSTEP_LOCAL_DOC GNUSTEP_LOCAL_DOC_MAN GNUSTEP_LOCAL_DOC_INFO

export GNUSTEP_USER_APPS GNUSTEP_USER_ADMIN_APPS GNUSTEP_USER_WEB_APPS GNUSTEP_USER_TOOLS GNUSTEP_USER_ADMIN_TOOLS
export GNUSTEP_USER_APPS GNUSTEP_USER_ADMIN_APPS GNUSTEP_USER_WEB_APPS GNUSTEP_USER_TOOLS GNUSTEP_USER_ADMIN_TOOLS
export GNUSTEP_USER_LIBRARY GNUSTEP_USER_HEADERS GNUSTEP_USER_LIBRARIES
export GNUSTEP_USER_DOC GNUSTEP_USER_DOC_MAN GNUSTEP_USER_DOC_INFO

Expand All @@ -602,7 +644,7 @@ else
if [ -z "$GNUSTEP_KEEP_CONFIG_FILE" ]; then
unset GNUSTEP_CONFIG_FILE
fi
unset GNUSTEP_KEEP_CONFIG_FILE
unset GNUSTEP_KEEP_CONFIG_FILE

if [ -z "$GNUSTEP_KEEP_USER_CONFIG_FILE" ]; then
unset GNUSTEP_USER_CONFIG_FILE
Expand All @@ -612,51 +654,51 @@ else
# Always unset these variables
unset GNUSTEP_USER_DEFAULTS_DIR

unset GNUSTEP_SYSTEM_APPS
unset GNUSTEP_SYSTEM_ADMIN_APPS
unset GNUSTEP_SYSTEM_WEB_APPS
unset GNUSTEP_SYSTEM_TOOLS
unset GNUSTEP_SYSTEM_ADMIN_TOOLS
unset GNUSTEP_SYSTEM_APPS
unset GNUSTEP_SYSTEM_ADMIN_APPS
unset GNUSTEP_SYSTEM_WEB_APPS
unset GNUSTEP_SYSTEM_TOOLS
unset GNUSTEP_SYSTEM_ADMIN_TOOLS
unset GNUSTEP_SYSTEM_LIBRARY
unset GNUSTEP_SYSTEM_HEADERS
unset GNUSTEP_SYSTEM_LIBRARIES
unset GNUSTEP_SYSTEM_DOC
unset GNUSTEP_SYSTEM_HEADERS
unset GNUSTEP_SYSTEM_LIBRARIES
unset GNUSTEP_SYSTEM_DOC
unset GNUSTEP_SYSTEM_DOC_MAN
unset GNUSTEP_SYSTEM_DOC_INFO

unset GNUSTEP_NETWORK_APPS
unset GNUSTEP_NETWORK_ADMIN_APPS
unset GNUSTEP_NETWORK_WEB_APPS
unset GNUSTEP_NETWORK_TOOLS
unset GNUSTEP_NETWORK_ADMIN_TOOLS
unset GNUSTEP_NETWORK_APPS
unset GNUSTEP_NETWORK_ADMIN_APPS
unset GNUSTEP_NETWORK_WEB_APPS
unset GNUSTEP_NETWORK_TOOLS
unset GNUSTEP_NETWORK_ADMIN_TOOLS
unset GNUSTEP_NETWORK_LIBRARY
unset GNUSTEP_NETWORK_HEADERS
unset GNUSTEP_NETWORK_LIBRARIES
unset GNUSTEP_NETWORK_DOC
unset GNUSTEP_NETWORK_HEADERS
unset GNUSTEP_NETWORK_LIBRARIES
unset GNUSTEP_NETWORK_DOC
unset GNUSTEP_NETWORK_DOC_MAN
unset GNUSTEP_NETWORK_DOC_INFO

unset GNUSTEP_LOCAL_APPS
unset GNUSTEP_LOCAL_ADMIN_APPS
unset GNUSTEP_LOCAL_WEB_APPS
unset GNUSTEP_LOCAL_TOOLS
unset GNUSTEP_LOCAL_ADMIN_TOOLS
unset GNUSTEP_LOCAL_APPS
unset GNUSTEP_LOCAL_ADMIN_APPS
unset GNUSTEP_LOCAL_WEB_APPS
unset GNUSTEP_LOCAL_TOOLS
unset GNUSTEP_LOCAL_ADMIN_TOOLS
unset GNUSTEP_LOCAL_LIBRARY
unset GNUSTEP_LOCAL_HEADERS
unset GNUSTEP_LOCAL_LIBRARIES
unset GNUSTEP_LOCAL_DOC
unset GNUSTEP_LOCAL_HEADERS
unset GNUSTEP_LOCAL_LIBRARIES
unset GNUSTEP_LOCAL_DOC
unset GNUSTEP_LOCAL_DOC_MAN
unset GNUSTEP_LOCAL_DOC_INFO

unset GNUSTEP_USER_APPS
unset GNUSTEP_USER_ADMIN_APPS
unset GNUSTEP_USER_WEB_APPS
unset GNUSTEP_USER_TOOLS
unset GNUSTEP_USER_ADMIN_TOOLS
unset GNUSTEP_USER_APPS
unset GNUSTEP_USER_ADMIN_APPS
unset GNUSTEP_USER_WEB_APPS
unset GNUSTEP_USER_TOOLS
unset GNUSTEP_USER_ADMIN_TOOLS
unset GNUSTEP_USER_LIBRARY
unset GNUSTEP_USER_HEADERS
unset GNUSTEP_USER_LIBRARIES
unset GNUSTEP_USER_DOC
unset GNUSTEP_USER_HEADERS
unset GNUSTEP_USER_LIBRARIES
unset GNUSTEP_USER_DOC
unset GNUSTEP_USER_DOC_MAN
unset GNUSTEP_USER_DOC_INFO

Expand Down

0 comments on commit b3c4eb9

Please sign in to comment.