mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
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:
parent
0e5f3e138e
commit
0c9645c148
6 changed files with 286 additions and 385 deletions
21
ChangeLog
21
ChangeLog
|
@ -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
|
||||
|
|
|
@ -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 \
|
||||
|
|
132
GNUstep.csh.in
132
GNUstep.csh.in
|
@ -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
|
||||
|
|
241
GNUstep.sh.in
241
GNUstep.sh.in
|
@ -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
|
||||
|
|
109
ld_lib_path.csh
109
ld_lib_path.csh
|
@ -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
|
||||
|
160
ld_lib_path.sh
160
ld_lib_path.sh
|
@ -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
|
||||
|
Loading…
Reference in a new issue