Rewritten adding paths to PATH, CLASSPATH, GUILE_LOAD_PATH, INFOPATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, etc. to check every single path before adding it. Inlined ld_lib_path.sh/csh in GNUstep.sh/csh

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@26945 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2008-10-21 14:45:48 +00:00
parent 0e5f3e138e
commit 0c9645c148
6 changed files with 286 additions and 385 deletions

View file

@ -1,3 +1,24 @@
2008-10-21 Nicola Pero <nicola@localhost.localdomain>
* GNUstep.sh.in: When adding paths to PATH, CLASSPATH,
GUILE_LOAD_PATH and INFOPATH, check that each path is not already
there before adding it. Previously we were checking, but checking
the whole string of paths as a single unit; the new code works
much better when some of the paths, but not all of them, are
already there. Reduced the number of loops and variables.
Inlined code from ld_lib_path.sh, and rewritten it completely to
check every single library and framework path before adding it to
the library path variables. Avoid executing any of the framework
code unless we are on Darwin.
* ld_lib_path.sh: File removed.
* GNUstep.csh.in: Same changes as for GNUstep.sh.in.
* ld_lib_path.csh: File removed.
* GNUmakefile.in (install): Do not install ld_lib_path.sh and
ld_lib_path.csh.
(uninstall): Do not uninstall ld_lib_path.csh.
2008-07-22 Nicola Pero <nicola.pero@meta-innovation.com>
Keep better track of the original source file used to compile each

View file

@ -186,8 +186,6 @@ install: generated-files
$(INSTALL_DATA) GNUstep.csh "$(makedir)"; \
$(INSTALL_DATA) filesystem.sh "$(makedir)"; \
$(INSTALL_DATA) filesystem.csh "$(makedir)"; \
$(INSTALL_DATA) "$(srcdir)/ld_lib_path.sh" "$(makedir)"; \
$(INSTALL_DATA) "$(srcdir)/ld_lib_path.csh" "$(makedir)"; \
$(INSTALL_DATA) "$(srcdir)/GNUstep-reset.sh" "$(makedir)"; \
$(INSTALL_PROGRAM) -m 755 fixpath.sh "$(makedir)"; \
$(INSTALL_PROGRAM) -m 755 openapp "$(tooldir)"; \
@ -251,10 +249,8 @@ uninstall:
-rmdir "$(mandir)"
for f in config.guess config.sub install-sh mkinstalldirs \
clean_cpu.sh clean_os.sh \
clean_vendor.sh cpu.sh ld_lib_path.sh os.sh \
vendor.sh \
print_unique_pathlist.sh \
ld_lib_path.csh fixpath.sh \
clean_vendor.sh cpu.sh os.sh vendor.sh \
print_unique_pathlist.sh fixpath.sh \
filesystem.sh filesystem.csh \
GNUstep.sh GNUstep.csh GNUstep-reset.sh \
relative_path.sh strip_makefiles.sh; do \

View file

@ -216,54 +216,120 @@ foreach dir ( "${GNUSTEP_SYSTEM_ADMIN_TOOLS}" "${GNUSTEP_NETWORK_ADMIN_TOOLS}" "
endif
end
set temp_path = ""
foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_TOOLS_PATHLIST}"'; do echo $i; done'` )
set temp_path="${temp_path}${dir}:"
set path_fragment="${dir}"
if ( "${GNUSTEP_IS_FLATTENED}" == "no" ) then
set temp_path="${temp_path}${dir}/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:"
set temp_path="${temp_path}${dir}/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}:"
set path_fragment="${dir}:${dir}/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:${dir}/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}"
endif
if ( ! ${?PATH} ) then
setenv PATH "${path_fragment}"
else if ( { (echo "$PATH" | fgrep -v "$path_fragment" >/dev/null) } ) then
setenv PATH "${path_fragment}:${PATH}"
endif
end
if ( ! ${?PATH} ) then
setenv PATH "${temp_path}"
else if ( { (echo "$PATH" | fgrep -v "$temp_path" >/dev/null) } ) then
setenv PATH "${temp_path}${PATH}"
endif
unset temp_path dir
unset path_fragment dir
unset GNUSTEP_TOOLS_PATHLIST
source "${GNUSTEP_MAKEFILES}/ld_lib_path.csh"
set GNUSTEP_LIBRARIES_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_LIBRARIES_PATHLIST}"'; do echo $i; done'` )
if ( "$GNUSTEP_IS_FLATTENED" == "yes" ) then
set path_fragment="$dir"
else
set path_fragment="$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS"
endif
set gnustep_class_path=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY/Libraries/Java" "$GNUSTEP_LOCAL_LIBRARY/Libraries/Java" "$GNUSTEP_NETWORK_LIBRARY/Libraries/Java" "$GNUSTEP_SYSTEM_LIBRARY/Libraries/Java" $fixup_paths`
switch ( "${GNUSTEP_HOST_OS}" )
if ( ! ${?CLASSPATH} ) then
setenv CLASSPATH "${gnustep_class_path}"
else if ( { (echo "${CLASSPATH}" | fgrep -v "${gnustep_class_path}" >/dev/null) } ) then
setenv CLASSPATH "${CLASSPATH}:${gnustep_class_path}"
endif
case *nextstep4* | *darwin* :
if ( $?DYLD_LIBRARY_PATH == 0 ) then
setenv DYLD_LIBRARY_PATH "${path_fragment}"
else if ( { (echo "${DYLD_LIBRARY_PATH}" | fgrep -v "${path_fragment}" >/dev/null) } ) then
setenv DYLD_LIBRARY_PATH "${path_fragment}:${DYLD_LIBRARY_PATH}"
endif
breaksw
unset gnustep_class_path
case *hpux* :
if ( $?SHLIB_PATH == 0 ) then
setenv SHLIB_PATH "${path_fragment}"
else if ( { (echo "${SHLIB_PATH}" | fgrep -v "${path_fragment}" >/dev/null) } ) then
setenv SHLIB_PATH "${path_fragment}:${SHLIB_PATH}"
endif
set gnustep_guile_path=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY/Libraries/Guile" "$GNUSTEP_LOCAL_LIBRARY/Libraries/Guile" "$GNUSTEP_NETWORK_LIBRARY/Libraries/Guile" "$GNUSTEP_SYSTEM_LIBRARY/Libraries/Guile" $fixup_paths`
if ( $?LD_LIBRARY_PATH == 0 ) then
setenv LD_LIBRARY_PATH "${path_fragment}"
else if ( { (echo "${LD_LIBRARY_PATH}" | fgrep -v "${path_fragment}" >/dev/null) } ) then
setenv LD_LIBRARY_PATH "${path_fragment}:${LD_LIBRARY_PATH}"
endif
if ( ! ${?GUILE_LOAD_PATH} ) then
setenv GUILE_LOAD_PATH "${gnustep_guile_path}"
else if ( { (echo "${GUILE_LOAD_PATH}" | fgrep -v "${gnustep_guile_path}" >/dev/null) } ) then
setenv GUILE_LOAD_PATH "${gnustep_guile_path}:${GUILE_LOAD_PATH}"
endif
breaksw
unset gnustep_guile_path
case * :
if ( $?LD_LIBRARY_PATH == 0 ) then
setenv LD_LIBRARY_PATH "${path_fragment}"
else if ( { (echo "${LD_LIBRARY_PATH}" | fgrep -v "${path_fragment}" >/dev/null) } ) then
setenv LD_LIBRARY_PATH "${path_fragment}:${LD_LIBRARY_PATH}"
endif
set gnustep_info_path=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_DOC_INFO" "$GNUSTEP_LOCAL_DOC_INFO" "$GNUSTEP_NETWORK_DOC_INFO" "$GNUSTEP_SYSTEM_DOC_INFO" $fixup_paths`
breaksw
endsw
end
unset path_fragment dir
unset GNUSTEP_LIBRARIES_PATHLIST
if ( ! ${?INFOPATH} ) then
setenv INFOPATH "${gnustep_info_path}:"
else if ( { (echo "${INFOPATH}" | fgrep -v "${gnustep_info_path}" >/dev/null) } ) then
setenv INFOPATH "${INFOPATH}:${gnustep_info_path}:"
endif
switch ( "${GNUSTEP_HOST_OS}" )
case *darwin* :
set GNUSTEP_FRAMEWORKS_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY/Frameworks" "$GNUSTEP_LOCAL_LIBRARY/Frameworks" "$GNUSTEP_NETWORK_LIBRARY/Frameworks" "$GNUSTEP_SYSTEM_LIBRARY/Frameworks" $fixup_paths`
foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_FRAMEWORKS_PATHLIST}"'; do echo $i; done'` )
set path_fragment="$dir"
if ( $?DYLD_FRAMEWORK_PATH == 0 ) then
setenv DYLD_FRAMEWORK_PATH "${path_fragment}"
else if ( { (echo "${DYLD_FRAMEWORK_PATH}" | fgrep -v "${path_fragment}" >/dev/null) } ) then
setenv DYLD_FRAMEWORK_PATH "${path_fragment}:${DYLD_FRAMEWORK_PATH}"
endif
end
unset dir path_fragment
unset GNUSTEP_FRAMEWORKS_PATHLIST
breaksw
case * :
breaksw
endsw
unset gnustep_info_path
set GNUSTEP_LIBRARY_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY" "$GNUSTEP_LOCAL_LIBRARY" "$GNUSTEP_NETWORK_LIBRARY" "$GNUSTEP_SYSTEM_LIBRARY" $fixup_paths`
foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_LIBRARY_PATHLIST}"'; do echo $i; done'` )
set path_fragment="${dir}/Libraries/Java"
if ( ! ${?CLASSPATH} ) then
setenv CLASSPATH "${path_fragment}"
else if ( { (echo "$CLASSPATH" | fgrep -v "$path_fragment" >/dev/null) } ) then
setenv CLASSPATH "${CLASSPATH}:${path_fragment}"
endif
set path_fragment="${dir}/Libraries/Guile"
if ( ! ${?GUILE_LOAD_PATH} ) then
setenv GUILE_LOAD_PATH "${path_fragment}"
else if ( { (echo "$GUILE_LOAD_PATH" | fgrep -v "$path_fragment" >/dev/null) } ) then
setenv GUILE_LOAD_PATH "${path_fragment}:${GUILE_LOAD_PATH}"
endif
end
unset path_fragment dir
unset GNUSTEP_TOOLS_PATHLIST
set GNUSTEP_INFO_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_DOC_INFO" "$GNUSTEP_LOCAL_DOC_INFO" "$GNUSTEP_NETWORK_DOC_INFO" "$GNUSTEP_SYSTEM_DOC_INFO" $fixup_paths`
foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_INFO_PATHLIST}"'; do echo $i; done'` )
if ( ! ${?INFOPATH} ) then
setenv INFOPATH "${dir}:"
else if ( { (echo "${INFOPATH}" | fgrep -v "${dir}" >/dev/null) } ) then
setenv INFOPATH "${INFOPATH}:${dir}:"
endif
end
unset dir
if ( "${GNUSTEP_MAKE_STRICT_V2_MODE}" == "yes" ) then
unsetenv GNUSTEP_IS_FLATTENED

View file

@ -293,6 +293,13 @@ fi
#
# Add path to Tools to PATH
#
# NB: functionally, print_unique_pathlist.sh is mostly used to do the
# fixup_paths thing, since duplicated paths will automatically be
# checked below when we add them to the PATH. On the other hand,
# removing duplicates later can be expensive since we do a echo+grep
# for each duplicate. When there are many duplicates it's faster to
# use print_unique_pathlist.sh first to remove them and skip the
# echos+greps later.
GNUSTEP_TOOLS_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_TOOLS" "$GNUSTEP_LOCAL_TOOLS" "$GNUSTEP_NETWORK_TOOLS" "$GNUSTEP_SYSTEM_TOOLS" $fixup_paths`
# Now, we check the paths in GNUSTEP_*_ADMIN_TOOLS. These paths
@ -320,7 +327,6 @@ done
#
old_IFS="$IFS"
IFS=:
temp_path=
for dir in $GNUSTEP_TOOLS_PATHLIST; do
# Prepare the path_fragment
@ -330,90 +336,181 @@ for dir in $GNUSTEP_TOOLS_PATHLIST; do
path_fragment="$dir"
fi
# Add it to temp_path
if [ -z "$temp_path" ]; then
temp_path="$path_fragment"
# Add it to PATH, but only if not already there (eg, typically /usr/bin is already there)
if [ -z "$PATH" ]; then
PATH="$path_fragment"
else
temp_path="$temp_path:$path_fragment"
if ( echo ${PATH}| grep -v "${path_fragment}" >/dev/null ); then
PATH="${path_fragment}:${PATH}"
fi
fi
unset path_fragment
done
IFS="$old_IFS"
unset old_IFS
unset dir
if [ -z "$PATH" ]; then
PATH="$temp_path"
else
if ( echo ${PATH}| grep -v "${temp_path}" >/dev/null ); then
PATH="${temp_path}:${PATH}"
fi
fi
unset temp_path
unset path_fragment
unset GNUSTEP_TOOLS_PATHLIST
export PATH
. $GNUSTEP_MAKEFILES/ld_lib_path.sh
# Determine the library paths
GNUSTEP_LIBRARIES_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=:
for dir in $GNUSTEP_LIBRARIES_PATHLIST; do
# prepare the path_fragment for libraries and this dir
if [ "$GNUSTEP_IS_FLATTENED" = "yes" ]; then
path_fragment="$dir"
else
path_fragment="$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS"
fi
# Append the path_fragment to lib_paths ... in a different way,
# depending on the machine we're on.
case "$GNUSTEP_HOST_OS" in
*nextstep4* | *darwin*)
if [ -z "$DYLD_LIBRARY_PATH" ]; then
DYLD_LIBRARY_PATH="$path_fragment"
else
if ( echo ${DYLD_LIBRARY_PATH}|fgrep -v "${path_fragment}" >/dev/null ); then
DYLD_LIBRARY_PATH="$path_fragment:$DYLD_LIBRARY_PATH"
fi
fi
export DYLD_LIBRARY_PATH;;
*hpux*)
if [ -z "$SHLIB_PATH" ]; then
SHLIB_PATH="$path_fragment"
else
if ( echo ${SHLIB_PATH}|fgrep -v "${path_fragment}" >/dev/null ); then
SHLIB_PATH="$path_fragment:$SHLIB_PATH"
fi
fi
export SHLIB_PATH;
if [ -z "$LD_LIBRARY_PATH" ]; then
LD_LIBRARY_PATH="$path_fragment"
else
if ( echo ${LD_LIBRARY_PATH}| grep -v "${path_fragment}" >/dev/null ); then
LD_LIBRARY_PATH="$path_fragment:$LD_LIBRARY_PATH"
fi
fi
export LD_LIBRARY_PATH;;
*)
if [ -z "$LD_LIBRARY_PATH" ]; then
LD_LIBRARY_PATH="$path_fragment"
else
if ( echo ${LD_LIBRARY_PATH}| grep -v "${path_fragment}" >/dev/null ); then
LD_LIBRARY_PATH="$path_fragment:$LD_LIBRARY_PATH"
fi
fi
export LD_LIBRARY_PATH;;
esac
done
IFS="$old_IFS"
unset old_IFS
unset dir
unset path_fragment
unset GNUSTEP_LIBRARIES_PATHLIST
# Determine the framework paths - but only on Darwin since it's the
# only platform where this is of any use.
case "$GNUSTEP_HOST_OS" in
*darwin*)
GNUSTEP_FRAMEWORKS_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY/Frameworks" "$GNUSTEP_LOCAL_LIBRARY/Frameworks" "$GNUSTEP_NETWORK_LIBRARY/Frameworks" "$GNUSTEP_SYSTEM_LIBRARY/Frameworks" $fixup_paths`
old_IFS="$IFS"
IFS=:
for dir in $GNUSTEP_FRAMEWORKS_PATHLIST; do
# prepare the path_fragment for frameworks
path_fragment="$dir"
# 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,
#
# to mitigate the fact that FSF GCC does not support a -framework flag.
#
# On Darwin, however, we partially emulate -framework by setting the
# "install_name" to the framework name during linking. The dynamic
# linker (dyld) is smart enough to find the framework under this name,
# but only if DYLD_FRAMEWORK_PATH is set (unless we set the
# "install_name" to an absolute path, which we don't). We'd really like
# to fully support -framework, though.
#
# Use otool -L MyApplication.app/MyApplication, for instance, to see
# how the shared libraries/frameworks are linked.
#
# if [ "$LIBRARY_COMBO" = "apple-apple-apple" -o \
# "$LIBRARY_COMBO" = "apple" ]; then
if [ -z "$DYLD_FRAMEWORK_PATH" ]; then
DYLD_FRAMEWORK_PATH="$path_fragment"
else
if ( echo ${DYLD_FRAMEWORK_PATH}|
fgrep -v "${path_fragment}" >/dev/null ); then
DYLD_FRAMEWORK_PATH="$path_fragment:$DYLD_FRAMEWORK_PATH"
fi
fi
export DYLD_FRAMEWORK_PATH
done
IFS="$old_IFS"
unset old_IFS
unset dir
unset path_fragment
unset GNUSTEP_FRAMEWORKS_PATHLIST
;;
*)
;;
esac
#
# Setup Java CLASSPATH and Guile GUILE_LOAD_PATH
#
GNUSTEP_LIBRARY_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY" "$GNUSTEP_LOCAL_LIBRARY" "$GNUSTEP_NETWORK_LIBRARY" "$GNUSTEP_SYSTEM_LIBRARY" $fixup_paths`
old_IFS="$IFS"
IFS=:
gnustep_class_path=
for dir in $GNUSTEP_LIBRARY_PATHLIST; do
if [ -z "$gnustep_class_path" ]; then
gnustep_class_path="$dir/Libraries/Java"
path_fragment="$dir/Libraries/Java"
if [ -z "$CLASSPATH" ]; then
CLASSPATH="$path_fragment"
else
gnustep_class_path="$gnustep_class_path:$dir/Libraries/Java"
if ( echo ${CLASSPATH}| grep -v "${path_fragment}" >/dev/null ); then
CLASSPATH="$CLASSPATH:$path_fragment"
fi
fi
path_fragment="$dir/Libraries/Guile"
if [ -z "$GUILE_LOAD_PATH" ]; then
GUILE_LOAD_PATH="$path_fragment"
else
if ( echo ${GUILE_LOAD_PATH}| grep -v "${path_fragment}" >/dev/null ); then
GUILE_LOAD_PATH="$path_fragment:$GUILE_LOAD_PATH"
fi
fi
done
IFS="$old_IFS"
unset old_IFS
unset dir
if [ -z "$CLASSPATH" ]; then
CLASSPATH="$gnustep_class_path"
else
if ( echo ${CLASSPATH}| grep -v "${gnustep_class_path}" >/dev/null ); then
CLASSPATH="$CLASSPATH:$gnustep_class_path"
fi
fi
unset gnustep_class_path
unset path_fragment
export CLASSPATH
#
# Setup path for loading guile modules too.
#
old_IFS="$IFS"
IFS=:
guile_paths=
for dir in $GNUSTEP_LIBRARY_PATHLIST; do
if [ -z "$guile_paths" ]; then
guile_paths="$dir/Libraries/Guile"
else
guile_paths="$guile_paths:$dir/Libraries/Guile"
fi
done
IFS="$old_IFS"
unset old_IFS
unset dir
if [ -z "$GUILE_LOAD_PATH" ]; then
GUILE_LOAD_PATH="$guile_paths"
else
if ( echo ${GUILE_LOAD_PATH}| grep -v "${guile_paths}" >/dev/null ); then
GUILE_LOAD_PATH="$guile_paths:$GUILE_LOAD_PATH"
fi
fi
export GUILE_LOAD_PATH
unset guile_paths
unset GNUSTEP_LIBRARY_PATHLIST
#
# Make sure info files, that we install by default into
@ -423,33 +520,23 @@ unset GNUSTEP_LIBRARY_PATHLIST
GNUSTEP_INFO_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_DOC_INFO" "$GNUSTEP_LOCAL_DOC_INFO" "$GNUSTEP_NETWORK_DOC_INFO" "$GNUSTEP_SYSTEM_DOC_INFO" $fixup_paths`
old_IFS="$IFS"
IFS=:
gnustep_info_path=
for dir in $GNUSTEP_INFO_PATHLIST; do
if [ -z "$gnustep_info_path" ]; then
gnustep_info_path="$dir"
if [ -z "$INFOPATH" ]; then
# The ':' at the end means to use the built-in paths after searching
# the INFOPATH we provide.
INFOPATH="${dir}:"
else
gnustep_info_path="$gnustep_info_path:$dir"
if ( echo ${INFOPATH}| grep -v "${dir}" >/dev/null ); then
INFOPATH="$INFOPATH:${dir}:"
fi
fi
done
IFS="$old_IFS"
unset old_IFS
unset dir
if [ -z "$INFOPATH" ]; then
# The ':' at the end means to use the built-in paths after searching
# the INFOPATH we provide.
INFOPATH="${gnustep_info_path}:"
else
if ( echo ${INFOPATH}| grep -v "${gnustep_info_path}" >/dev/null ); then
INFOPATH="$INFOPATH:${gnustep_info_path}:"
fi
fi
unset gnustep_info_path
export INFOPATH
unset GNUSTEP_INFO_PATHLIST
export INFOPATH
#
# Clean up the environment by removing the filesystem variables. Do

View file

@ -1,109 +0,0 @@
# This file must be sourced inside csh using: source
#
# ld_lib_path.csh
#
# Set up the LD_LIBRARY_PATH (or similar env variable for your system)
#
# Copyright (C) 1998-2007 Free Software Foundation, Inc.
#
# Author: Scott Christley <scottc@net-community.com>
# Author: Ovidiu Predescu <ovidiu@net-community.com>
# Author: Nicola Pero <nicola.pero@meta-innovation.com>
#
# This file is part of the GNUstep Makefile Package.
#
# This library is free software; you can redistribute it and/or
# 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,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
if ( "$GNUSTEP_IS_FLATTENED" == "yes" ) then
set lib_paths=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARIES" "$GNUSTEP_LOCAL_LIBRARIES" "$GNUSTEP_NETWORK_LIBRARIES" "$GNUSTEP_SYSTEM_LIBRARIES" $fixup_paths`
else
set lib_paths=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARIES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO" "$GNUSTEP_USER_LIBRARIES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" "$GNUSTEP_LOCAL_LIBRARIES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO" "$GNUSTEP_LOCAL_LIBRARIES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" $fixup_paths`
set lib_paths="$lib_paths":`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_NETWORK_LIBRARIES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO" "$GNUSTEP_NETWORK_LIBRARIES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" "$GNUSTEP_SYSTEM_LIBRARIES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO" "$GNUSTEP_SYSTEM_LIBRARIES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" $fixup_paths`:
endif
set fw_paths=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY/Frameworks" "$GNUSTEP_LOCAL_LIBRARY/Frameworks" "$GNUSTEP_NETWORK_LIBRARY/Frameworks" "$GNUSTEP_SYSTEM_LIBRARY/Frameworks" $fixup_paths`
switch ( "${GNUSTEP_HOST_OS}" )
case *nextstep4* :
if ( $?DYLD_LIBRARY_PATH == 0 ) then
setenv DYLD_LIBRARY_PATH "${lib_paths}"
else if ( { (echo "${DYLD_LIBRARY_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
setenv DYLD_LIBRARY_PATH "${lib_paths}:${DYLD_LIBRARY_PATH}"
endif
breaksw
case *darwin* :
if ( $?DYLD_LIBRARY_PATH == 0 ) then
setenv DYLD_LIBRARY_PATH "${lib_paths}"
else if ( { (echo "${DYLD_LIBRARY_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
setenv DYLD_LIBRARY_PATH "${lib_paths}:${DYLD_LIBRARY_PATH}"
endif
# 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,
#
# to mitigate the fact that FSF GCC does not support a -framework flag.
#
# On Darwin, however, we partially emulate -framework by setting the
# "install_name" to the framework name during linking. The dynamic
# linker (dyld) is smart enough to find the framework under this name,
# but only if DYLD_FRAMEWORK_PATH is set (unless we set the
# "install_name" to an absolute path, which we don't). We'd really like
# to fully support -framework, though.
#
# Use otool -L MyApplication.app/MyApplication, for instance, to see
# how the shared libraries/frameworks are linked.
#
# if [ "$LIBRARY_COMBO" = "apple-apple-apple" -o \
# "$LIBRARY_COMBO" = "apple" ]; then
if ( $?DYLD_FRAMEWORK_PATH == 0 ) then
setenv DYLD_FRAMEWORK_PATH "${fw_paths}"
else if ( { (echo "${DYLD_FRAMEWORK_PATH}" | fgrep -v "${fw_paths}" >/dev/null) } ) then
setenv DYLD_FRAMEWORK_PATH "${fw_paths}:${DYLD_FRAMEWORK_PATH}"
endif
breaksw
case *hpux* :
if ( $?SHLIB_PATH == 0 ) then
setenv SHLIB_PATH "${lib_paths}"
else if ( { (echo "${SHLIB_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
setenv SHLIB_PATH "${lib_paths}:${SHLIB_PATH}"
endif
if ( $?LD_LIBRARY_PATH == 0 ) then
setenv LD_LIBRARY_PATH "${lib_paths}"
else if ( { (echo "${LD_LIBRARY_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
setenv LD_LIBRARY_PATH "${lib_paths}:${LD_LIBRARY_PATH}"
endif
breaksw
case * :
if ( $?LD_LIBRARY_PATH == 0 ) then
setenv LD_LIBRARY_PATH "${lib_paths}"
else if ( { (echo "${LD_LIBRARY_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
setenv LD_LIBRARY_PATH "${lib_paths}:${LD_LIBRARY_PATH}"
endif
breaksw
endsw
unset tool_path_part last_path_part host_os dir lib_paths fw_paths

View file

@ -1,160 +0,0 @@
# This file must be sourced inside (ba)sh using: .
#
# ld_lib_path.sh
#
# Set up the LD_LIBRARY_PATH (or similar env variable for your system)
#
# Copyright (C) 1997-2002 Free Software Foundation, Inc.
#
# Author: Scott Christley <scottc@net-community.com>
# Author: Ovidiu Predescu <ovidiu@net-community.com>
# Rewrite: Richard Frith-Macdonald <richard@brainstorm.co.uk>
# Author: Nicola Pero <n.pero@mi.flashnet.it>
#
# This file is part of the GNUstep Makefile Package.
#
# This library is free software; you can redistribute it and/or
# 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,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# The modern version of this file basically expects you to execute it
# inside GNUstep.sh. If not, you need to have at least the
# GNUSTEP_MAKEFILES, GNUSTEP_HOST_*, GNUSTEP_SYSTEM_LIBRARIES,
# GNUSTEP_LOCAL_LIBRARIES, etc. GNUSTEP_SYSTEM_LIBRARY,
# GNUSTEP_LOCAL_LIBRARY, etc. variables defined.
# FIXME/TODO: Update all callers to source GNUstep.sh and not this file.
# This file is sourced. This means extra care is needed when changing
# it. Please read the comments on GNUstep.sh.in before touching it.
lib_paths=
fw_paths=
# Determine the library paths
GNUSTEP_LIBRARIES_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARIES" "$GNUSTEP_LOCAL_LIBRARIES" "$GNUSTEP_NETWORK_LIBRARIES" "$GNUSTEP_SYSTEM_LIBRARIES" $fixup_paths`
if [ "$GNUSTEP_IS_FLATTENED" = "yes" ]; then
lib_paths="$GNUSTEP_LIBRARIES_PATHLIST"
else
old_IFS="$IFS"
IFS=:
for dir in $GNUSTEP_LIBRARIES_PATHLIST; do
# prepare the path_fragment for libraries and this dir
path_fragment="$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS"
# Append the path_fragment to lib_paths
if [ -z "$lib_paths" ]; then
lib_paths="$path_fragment"
else
lib_paths="$lib_paths:$path_fragment"
fi
unset path_fragment
done
IFS="$old_IFS"
unset old_IFS
unset dir
fi
unset GNUSTEP_LIBRARIES_PATHLIST
# Determine the framework paths
fw_paths=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY/Frameworks" "$GNUSTEP_LOCAL_LIBRARY/Frameworks" "$GNUSTEP_NETWORK_LIBRARY/Frameworks" "$GNUSTEP_SYSTEM_LIBRARY/Frameworks" $fixup_paths`
case "$GNUSTEP_HOST_OS" in
*nextstep4*)
if [ -z "$DYLD_LIBRARY_PATH" ]; then
DYLD_LIBRARY_PATH="$lib_paths"
else
if ( echo ${DYLD_LIBRARY_PATH}|fgrep -v "${lib_paths}" >/dev/null ); then
DYLD_LIBRARY_PATH="$lib_paths:$DYLD_LIBRARY_PATH"
fi
fi
export DYLD_LIBRARY_PATH
;;
*darwin*)
if [ -z "$DYLD_LIBRARY_PATH" ]; then
DYLD_LIBRARY_PATH="$lib_paths"
else
if ( echo ${DYLD_LIBRARY_PATH}|fgrep -v "${lib_paths}" >/dev/null ); then
DYLD_LIBRARY_PATH="$lib_paths:$DYLD_LIBRARY_PATH"
fi
fi
export DYLD_LIBRARY_PATH
# 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,
#
# to mitigate the fact that FSF GCC does not support a -framework flag.
#
# On Darwin, however, we partially emulate -framework by setting the
# "install_name" to the framework name during linking. The dynamic
# linker (dyld) is smart enough to find the framework under this name,
# but only if DYLD_FRAMEWORK_PATH is set (unless we set the
# "install_name" to an absolute path, which we don't). We'd really like
# to fully support -framework, though.
#
# Use otool -L MyApplication.app/MyApplication, for instance, to see
# how the shared libraries/frameworks are linked.
#
# if [ "$LIBRARY_COMBO" = "apple-apple-apple" -o \
# "$LIBRARY_COMBO" = "apple" ]; then
if [ -z "$DYLD_FRAMEWORK_PATH" ]; then
DYLD_FRAMEWORK_PATH="$fw_paths"
else
if ( echo ${DYLD_FRAMEWORK_PATH}|
fgrep -v "${fw_paths}" >/dev/null ); then
DYLD_FRAMEWORK_PATH="$fw_paths:$DYLD_FRAMEWORK_PATH"
fi
fi
export DYLD_FRAMEWORK_PATH;;
*hpux*)
if [ -z "$SHLIB_PATH" ]; then
SHLIB_PATH="$lib_paths"
else
if ( echo ${SHLIB_PATH}|fgrep -v "${lib_paths}" >/dev/null ); then
SHLIB_PATH="$lib_paths:$SHLIB_PATH"
fi
fi
export SHLIB_PATH;
if [ -z "$LD_LIBRARY_PATH" ]; then
LD_LIBRARY_PATH="$lib_paths"
else
if ( echo ${LD_LIBRARY_PATH}| grep -v "${lib_paths}" >/dev/null ); then
LD_LIBRARY_PATH="$lib_paths:$LD_LIBRARY_PATH"
fi
fi
export LD_LIBRARY_PATH;;
*)
if [ -z "$LD_LIBRARY_PATH" ]; then
LD_LIBRARY_PATH="$lib_paths"
else
if ( echo ${LD_LIBRARY_PATH}| grep -v "${lib_paths}" >/dev/null ); then
LD_LIBRARY_PATH="$lib_paths:$LD_LIBRARY_PATH"
fi
fi
export LD_LIBRARY_PATH;;
esac
unset lib_paths
unset fw_paths