1 2# This file must be sourced inside csh using: source 3# 4# @configure_input@ 5# 6# Shell initialization for the GNUstep environment. 7# 8# Copyright (C) 1998-2008 Free Software Foundation, Inc. 9# 10# Author: Scott Christley <scottc@net-community.com> 11# Author: Adam Fedor <fedor@gnu.org> 12# Author: Richard Frith-Macdonald <rfm@gnu.org> 13# Author: Nicola Pero <nicola.pero@meta-innovation.com> 14# 15# This file is part of the GNUstep Makefile Package. 16# 17# This library is free software; you can redistribute it and/or 18# modify it under the terms of the GNU General Public License 19# as published by the Free Software Foundation; either version 3 20# of the License, or (at your option) any later version. 21# 22# You should have received a copy of the GNU General Public 23# License along with this library; see the file COPYING. 24# If not, write to the Free Software Foundation, 25# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 26# 27 28# When this is set to 'yes', strict gnustep-make v2 compatibility mode 29# is turned on. 30set GNUSTEP_MAKE_STRICT_V2_MODE=@GNUSTEP_MAKE_STRICT_V2_MODE@ 31 32# 33# Read our configuration files 34# 35 36# Determine the location of the system configuration file 37if ( ! ${?GNUSTEP_CONFIG_FILE} ) then 38 setenv GNUSTEP_CONFIG_FILE "@GNUSTEP_CONFIG_FILE@" 39else 40 set GNUSTEP_KEEP_CONFIG_FILE=yes 41endif 42 43# Determine the location of the user configuration file 44if ( ! ${?GNUSTEP_USER_CONFIG_FILE} ) then 45 setenv GNUSTEP_USER_CONFIG_FILE "@GNUSTEP_USER_CONFIG_FILE@" 46else 47 set GNUSTEP_KEEP_USER_CONFIG_FILE=yes 48endif 49 50# Read the system configuration file 51if ( -e "${GNUSTEP_CONFIG_FILE}" ) then 52 # 53 # Convert the config file from sh syntax to csh syntax, and execute it. 54 # 55 # We want to convert every line of the type ^xxx=yyy$ into setenv xxx yyy; 56 # and ignore any other line. 57 # 58 # This sed expression will first delete all lines that don't match 59 # the pattern ^[^#=][^#=]*=.*$ -- which means "start of line (^), 60 # followed by a character that is not # and not = ([^#=]), followed 61 # by 0 or more characters that are not # and not = ([^#=]*), 62 # followed by a = (=), followed by some characters until end of the 63 # line (.*$). It will then replace each occurrence of the same 64 # pattern (where the first and second relevant parts are now tagged 65 # -- that's what the additional \(...\) do) with 'setenv \1 \2'. 66 # 67 # The result of all this is ... something that we want to execute! 68 # We use eval to execute the results of `...`. 69 # 70 # Please note that ! must always be escaped in csh, which is why we 71 # write \\! 72 # 73 # Also note that we add a ';' at the end of each setenv command so 74 # that we can pipe all the commands through a single eval. 75 # 76 eval `sed -e '/^[^#=][^#=]*=.*$/\\!d' -e 's/^\([^#=][^#=]*\)=\(.*\)$/setenv \1 \2;/' "${GNUSTEP_CONFIG_FILE}"` 77endif 78 79# FIXME: determining GNUSTEP_HOME 80set GNUSTEP_HOME = ~ 81 82# Read the user configuration file ... unless it is disabled (ie, set 83# to an empty string) 84if ( ${?GNUSTEP_USER_CONFIG_FILE} ) then 85 switch ("${GNUSTEP_USER_CONFIG_FILE}") 86 case /*: # An absolute path 87 if ( -e "${GNUSTEP_USER_CONFIG_FILE}" ) then 88 # See above for an explanation of the sed expression 89 eval `sed -e '/^[^#=][^#=]*=.*$/\\!d' -e 's/^\([^#=][^#=]*\)=\(.*\)$/setenv \1 \2;/' "${GNUSTEP_USER_CONFIG_FILE}"` 90 endif 91 breaksw 92 default: # Something else 93 if ( -e "${GNUSTEP_HOME}/${GNUSTEP_USER_CONFIG_FILE}" ) then 94 eval `sed -e '/^[^#=][^#=]*=.*$/\\!d' -e 's/^\([^#=][^#=]*\)=\(.*\)$/setenv \1 \2;/' "${GNUSTEP_HOME}/${GNUSTEP_USER_CONFIG_FILE}"` 95 endif 96 breaksw 97 endsw 98endif 99 100# Now, set any essential variable (that is not already set) to the 101# built-in values. 102if ( "${GNUSTEP_MAKE_STRICT_V2_MODE}" == "yes" ) then 103 unsetenv GNUSTEP_SYSTEM_ROOT 104 unsetenv GNUSTEP_LOCAL_ROOT 105 unsetenv GNUSTEP_NETWORK_ROOT 106 unsetenv GNUSTEP_FLATTENED 107else 108 if ( ! ${?GNUSTEP_SYSTEM_ROOT} ) then 109 setenv GNUSTEP_SYSTEM_ROOT "@GNUSTEP_SYSTEM_ROOT@" 110 endif 111 112 if ( ! ${?GNUSTEP_LOCAL_ROOT} ) then 113 setenv GNUSTEP_LOCAL_ROOT "@GNUSTEP_LOCAL_ROOT@" 114 endif 115 116 if ( ! ${?GNUSTEP_NETWORK_ROOT} ) then 117 setenv GNUSTEP_NETWORK_ROOT "@GNUSTEP_NETWORK_ROOT@" 118 endif 119 120 # GNUSTEP_FLATTENED is obsolete, please use GNUSTEP_IS_FLATTENED 121 # instead 122 setenv GNUSTEP_FLATTENED "@GNUSTEP_FLATTENED@" 123endif 124 125setenv GNUSTEP_IS_FLATTENED "@GNUSTEP_IS_FLATTENED@" 126if ( ! ${?LIBRARY_COMBO} ) then 127 setenv LIBRARY_COMBO "@ac_cv_library_combo@" 128endif 129 130setenv GNUSTEP_HAS_PKGCONFIG "@GNUSTEP_HAS_PKGCONFIG@" 131 132if ( ! ${?GNUSTEP_MAKEFILES} ) then 133 setenv GNUSTEP_MAKEFILES "@GNUSTEP_MAKEFILES@" 134endif 135 136if ( "${GNUSTEP_MAKE_STRICT_V2_MODE}" == "yes" ) then 137 unsetenv GNUSTEP_USER_DIR 138 unsetenv GNUSTEP_USER_ROOT 139else 140 if ( ! ${?GNUSTEP_USER_DIR} ) then 141 setenv GNUSTEP_USER_DIR "@GNUSTEP_USER_DIR@" 142 endif 143 144 # 145 # Set GNUSTEP_USER_ROOT which is the variable used in practice 146 # 147 switch ("${GNUSTEP_USER_DIR}") 148 case /*: # An absolute path 149 setenv GNUSTEP_USER_ROOT "${GNUSTEP_USER_DIR}" 150 breaksw 151 default: # Something else 152 setenv GNUSTEP_USER_ROOT "${GNUSTEP_HOME}/${GNUSTEP_USER_DIR}" 153 breaksw 154 endsw 155 156 unsetenv GNUSTEP_USER_DIR 157endif 158 159if ( "@GNUSTEP_MULTI_PLATFORM@" == "" ) then 160 setenv GNUSTEP_HOST "@target@" 161 setenv GNUSTEP_HOST_CPU "@clean_target_cpu@" 162 setenv GNUSTEP_HOST_VENDOR "@clean_target_vendor@" 163 setenv GNUSTEP_HOST_OS "@clean_target_os@" 164endif 165 166# 167# Determine the host information 168# 169if ( ! ${?GNUSTEP_HOST} ) then 170 pushd /tmp > /dev/null 171 setenv GNUSTEP_HOST `${GNUSTEP_MAKEFILES}/config.guess` 172 setenv GNUSTEP_HOST `${GNUSTEP_MAKEFILES}/config.sub ${GNUSTEP_HOST}` 173 popd > /dev/null 174endif 175 176if ( ! ${?GNUSTEP_HOST_CPU} ) then 177 setenv GNUSTEP_HOST_CPU `${GNUSTEP_MAKEFILES}/cpu.sh ${GNUSTEP_HOST}` 178 setenv GNUSTEP_HOST_CPU `${GNUSTEP_MAKEFILES}/clean_cpu.sh ${GNUSTEP_HOST_CPU}` 179endif 180 181if ( ! ${?GNUSTEP_HOST_VENDOR} ) then 182 setenv GNUSTEP_HOST_VENDOR `${GNUSTEP_MAKEFILES}/vendor.sh ${GNUSTEP_HOST}` 183 setenv GNUSTEP_HOST_VENDOR `${GNUSTEP_MAKEFILES}/clean_vendor.sh ${GNUSTEP_HOST_VENDOR}` 184endif 185 186if ( ! ${?GNUSTEP_HOST_OS} ) then 187 setenv GNUSTEP_HOST_OS `${GNUSTEP_MAKEFILES}/os.sh ${GNUSTEP_HOST}` 188 setenv GNUSTEP_HOST_OS `${GNUSTEP_MAKEFILES}/clean_os.sh ${GNUSTEP_HOST_OS}` 189endif 190 191# Now load in all the remaining paths 192source "${GNUSTEP_MAKEFILES}/filesystem.csh" 193 194# No longer needed 195unset GNUSTEP_HOME 196 197# Determine if the paths look like Windows paths that need fixing 198set fixup_paths=no 199if ( `echo $GNUSTEP_MAKEFILES | sed 's|^[a-zA-Z]:/.*$||'` == "" ) then 200 set fixup_paths=yes 201endif 202 203# 204# Add the GNUstep tools directories to the path 205# 206if ( "${GNUSTEP_MAKE_STRICT_V2_MODE}" == "no" ) then 207 if ( ! ${?GNUSTEP_PATHLIST} ) then 208 setenv GNUSTEP_PATHLIST `$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_ROOT" "$GNUSTEP_LOCAL_ROOT" "$GNUSTEP_NETWORK_ROOT" "$GNUSTEP_SYSTEM_ROOT" $fixup_paths` 209 endif 210endif 211 212set GNUSTEP_TOOLS_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_TOOLS" "$GNUSTEP_LOCAL_TOOLS" "$GNUSTEP_NETWORK_TOOLS" "$GNUSTEP_SYSTEM_TOOLS" $fixup_paths` 213 214foreach dir ( "${GNUSTEP_SYSTEM_ADMIN_TOOLS}" "${GNUSTEP_NETWORK_ADMIN_TOOLS}" "${GNUSTEP_LOCAL_ADMIN_TOOLS}" "${GNUSTEP_USER_ADMIN_TOOLS}" ) 215 if ( -d "${dir}" && -w "${dir}" ) then 216 if ( { (echo ":${GNUSTEP_TOOLS_PATHLIST}:"\ 217 |grep -v ":${dir}:" >/dev/null) } ) then 218 setenv GNUSTEP_TOOLS_PATHLIST "${dir}:${GNUSTEP_TOOLS_PATHLIST}" 219 endif 220 endif 221end 222 223foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_TOOLS_PATHLIST}"'; do echo $i; done'` ) 224 set path_fragment="${dir}" 225 if ( "${GNUSTEP_IS_FLATTENED}" == "no" ) then 226 set path_fragment="${dir}:${dir}/${GNUSTEP_HOST_CPU}-${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:${dir}/${GNUSTEP_HOST_CPU}-${GNUSTEP_HOST_OS}" 227 endif 228 229 if ( ! ${?PATH} ) then 230 setenv PATH "${path_fragment}" 231 else if ( { (echo ":${PATH}:"\ 232 |grep -v ":${path_fragment}:" >/dev/null) } ) then 233 setenv PATH "${path_fragment}:${PATH}" 234 endif 235end 236unset path_fragment dir 237unset GNUSTEP_TOOLS_PATHLIST 238 239set GNUSTEP_LIBRARIES_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARIES" "$GNUSTEP_LOCAL_LIBRARIES" "$GNUSTEP_NETWORK_LIBRARIES" "$GNUSTEP_SYSTEM_LIBRARIES" $fixup_paths` 240foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_LIBRARIES_PATHLIST}"'; do echo $i; done'` ) 241 if ( "$GNUSTEP_IS_FLATTENED" == "yes" ) then 242 set path_fragment="$dir" 243 else 244 set path_fragment="$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS" 245 endif 246 247 switch ( "${GNUSTEP_HOST_OS}" ) 248 249 case *nextstep4* : 250 case *darwin* : 251 if ( $?DYLD_LIBRARY_PATH == 0 ) then 252 setenv DYLD_LIBRARY_PATH "${path_fragment}" 253 else if ( { (echo ":${DYLD_LIBRARY_PATH}:"\ 254 |grep -v ":${path_fragment}:" >/dev/null) } ) then 255 setenv DYLD_LIBRARY_PATH "${path_fragment}:${DYLD_LIBRARY_PATH}" 256 endif 257 breaksw 258 259 case *hpux* : 260 if ( $?SHLIB_PATH == 0 ) then 261 setenv SHLIB_PATH "${path_fragment}" 262 else if ( { (echo ":${SHLIB_PATH}:"\ 263 |grep -v ":${path_fragment}:" >/dev/null) } ) then 264 setenv SHLIB_PATH "${path_fragment}:${SHLIB_PATH}" 265 endif 266 267 if ( $?LD_LIBRARY_PATH == 0 ) then 268 setenv LD_LIBRARY_PATH "${path_fragment}" 269 else if ( { (echo ":${LD_LIBRARY_PATH}:"\ 270 |grep -v ":${path_fragment}:" >/dev/null) } ) then 271 setenv LD_LIBRARY_PATH "${path_fragment}:${LD_LIBRARY_PATH}" 272 endif 273 274 breaksw 275 276 case * : 277 if ( $?LD_LIBRARY_PATH == 0 ) then 278 setenv LD_LIBRARY_PATH "${path_fragment}" 279 else if ( { (echo ":${LD_LIBRARY_PATH}:"\ 280 |grep -v ":${path_fragment}:" >/dev/null) } ) then 281 setenv LD_LIBRARY_PATH "${path_fragment}:${LD_LIBRARY_PATH}" 282 endif 283 284 breaksw 285 endsw 286end 287unset path_fragment dir 288unset GNUSTEP_LIBRARIES_PATHLIST 289 290switch ( "${GNUSTEP_HOST_OS}" ) 291 case *darwin* : 292 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` 293 foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_FRAMEWORKS_PATHLIST}"'; do echo $i; done'` ) 294 set path_fragment="$dir" 295 if ( $?DYLD_FRAMEWORK_PATH == 0 ) then 296 setenv DYLD_FRAMEWORK_PATH "${path_fragment}" 297 else if ( { (echo ":${DYLD_FRAMEWORK_PATH}:"\ 298 |grep -v ":${path_fragment}:" >/dev/null) } ) then 299 setenv DYLD_FRAMEWORK_PATH "${path_fragment}:${DYLD_FRAMEWORK_PATH}" 300 endif 301 end 302 unset dir path_fragment 303 unset GNUSTEP_FRAMEWORKS_PATHLIST 304 breaksw 305 case * : 306 breaksw 307endsw 308 309set GNUSTEP_LIBRARY_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARY" "$GNUSTEP_LOCAL_LIBRARY" "$GNUSTEP_NETWORK_LIBRARY" "$GNUSTEP_SYSTEM_LIBRARY" $fixup_paths` 310 311foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_LIBRARY_PATHLIST}"'; do echo $i; done'` ) 312 313 set path_fragment="${dir}/Libraries/Java" 314 if ( ! ${?CLASSPATH} ) then 315 setenv CLASSPATH "${path_fragment}" 316 else if ( { (echo ":${CLASSPATH}:"\ 317 |grep -v ":${path_fragment}:" >/dev/null) } ) then 318 setenv CLASSPATH "${path_fragment}:${CLASSPATH}" 319 endif 320 321 set path_fragment="${dir}/Libraries/Guile" 322 if ( ! ${?GUILE_LOAD_PATH} ) then 323 setenv GUILE_LOAD_PATH "${path_fragment}" 324 else if ( { (echo ":${GUILE_LOAD_PATH}:"\ 325 |grep -v ":${path_fragment}:" >/dev/null) } ) then 326 setenv GUILE_LOAD_PATH "${path_fragment}:${GUILE_LOAD_PATH}" 327 endif 328 329end 330unset path_fragment dir 331unset GNUSTEP_LIBRARY_PATHLIST 332 333set 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` 334 335foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_INFO_PATHLIST}"'; do echo $i; done'` ) 336 337 if ( ! ${?INFOPATH} ) then 338 setenv INFOPATH "${dir}:" 339 else if ( { (echo ":${INFOPATH}:"\ 340 |grep -v ":${dir}:" >/dev/null) } ) then 341 setenv INFOPATH "${INFOPATH}:${dir}:" 342 endif 343 344end 345 346unset dir 347 348if ( "${GNUSTEP_HAS_PKGCONFIG}" == "yes" ) then 349set GNUSTEP_PKGCONFIG_FRAGMENT=pkgconfig 350set GNUSTEP_PKGCONFIG_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTEP_USER_LIBRARIES" "$GNUSTEP_LOCAL_LIBRARIES" "$GNUSTEP_NETWORK_LIBRARIES" "$GNUSTEP_SYSTEM_LIBRARIES" $fixup_paths` 351foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_PKGCONFIG_PATHLIST}"'; do echo $i; done'` ) 352 if ( "$GNUSTEP_IS_FLATTENED" == "yes" ) then 353 set path_fragment="$dir/$GNUSTEP_PKGCONFIG_FRAGMENT" 354 else 355 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" 356 endif 357 358 359 if ( $?PKG_CONFIG_PATH == 0 ) then 360 setenv PKG_CONFIG_PATH "${path_fragment}" 361 else if ( { (echo ":${PKG_CONFIG_PATH}:"\ 362 |grep -v ":${path_fragment}:" >/dev/null) } ) then 363 setenv PKG_CONFIG_PATH "${path_fragment}:${PKG_CONFIG_PATH}" 364 endif 365 366end 367unset path_fragment dir 368unset GNUSTEP_PKGCONFIG_PATHLIST GNUSTEP_PKGCONFIG_FRAGMENT 369 370endif 371 372 373if ( "${GNUSTEP_MAKE_STRICT_V2_MODE}" == "yes" ) then 374 unsetenv GNUSTEP_IS_FLATTENED 375 unsetenv LIBRARY_COMBO 376 unsetenv GNUSTEP_HOST 377 unsetenv GNUSTEP_HOST_CPU 378 unsetenv GNUSTEP_HOST_VENDOR 379 unsetenv GNUSTEP_HOST_OS 380endif 381 382unset GNUSTEP_MAKE_STRICT_V2_MODE 383 384if ( ! {$?GNUSTEP_KEEP_CONFIG_FILE} ) then 385 unsetenv GNUSTEP_CONFIG_FILE 386endif 387unset GNUSTEP_KEEP_CONFIG_FILE 388 389if ( ! ${?GNUSTEP_KEEP_USER_CONFIG_FILE} ) then 390 unsetenv GNUSTEP_USER_CONFIG_FILE 391endif 392unset GNUSTEP_KEEP_USER_CONFIG_FILE 393 394unsetenv GNUSTEP_USER_DEFAULTS_DIR 395 396unsetenv GNUSTEP_SYSTEM_APPS 397unsetenv GNUSTEP_SYSTEM_ADMIN_APPS 398unsetenv GNUSTEP_SYSTEM_WEB_APPS 399unsetenv GNUSTEP_SYSTEM_TOOLS 400unsetenv GNUSTEP_SYSTEM_ADMIN_TOOLS 401unsetenv GNUSTEP_SYSTEM_LIBRARY 402unsetenv GNUSTEP_SYSTEM_HEADERS 403unsetenv GNUSTEP_SYSTEM_LIBRARIES 404unsetenv GNUSTEP_SYSTEM_DOC 405unsetenv GNUSTEP_SYSTEM_DOC_MAN 406unsetenv GNUSTEP_SYSTEM_DOC_INFO 407 408unsetenv GNUSTEP_NETWORK_APPS 409unsetenv GNUSTEP_NETWORK_ADMIN_APPS 410unsetenv GNUSTEP_NETWORK_WEB_APPS 411unsetenv GNUSTEP_NETWORK_TOOLS 412unsetenv GNUSTEP_NETWORK_ADMIN_TOOLS 413unsetenv GNUSTEP_NETWORK_LIBRARY 414unsetenv GNUSTEP_NETWORK_HEADERS 415unsetenv GNUSTEP_NETWORK_LIBRARIES 416unsetenv GNUSTEP_NETWORK_DOC 417unsetenv GNUSTEP_NETWORK_DOC_MAN 418unsetenv GNUSTEP_NETWORK_DOC_INFO 419 420unsetenv GNUSTEP_LOCAL_APPS 421unsetenv GNUSTEP_LOCAL_ADMIN_APPS 422unsetenv GNUSTEP_LOCAL_WEB_APPS 423unsetenv GNUSTEP_LOCAL_TOOLS 424unsetenv GNUSTEP_LOCAL_ADMIN_TOOLS 425unsetenv GNUSTEP_LOCAL_LIBRARY 426unsetenv GNUSTEP_LOCAL_HEADERS 427unsetenv GNUSTEP_LOCAL_LIBRARIES 428unsetenv GNUSTEP_LOCAL_DOC 429unsetenv GNUSTEP_LOCAL_DOC_MAN 430unsetenv GNUSTEP_LOCAL_DOC_INFO 431 432unsetenv GNUSTEP_USER_APPS 433unsetenv GNUSTEP_USER_ADMIN_APPS 434unsetenv GNUSTEP_USER_WEB_APPS 435unsetenv GNUSTEP_USER_TOOLS 436unsetenv GNUSTEP_USER_ADMIN_TOOLS 437unsetenv GNUSTEP_USER_LIBRARY 438unsetenv GNUSTEP_USER_HEADERS 439unsetenv GNUSTEP_USER_LIBRARIES 440unsetenv GNUSTEP_USER_DOC 441unsetenv GNUSTEP_USER_DOC_MAN 442unsetenv GNUSTEP_USER_DOC_INFO 443 444unsetenv GNUSTEP_SYSTEM_USERS_DIR 445unsetenv GNUSTEP_LOCAL_USERS_DIR 446unsetenv GNUSTEP_NETWORK_USERS_DIR 447