50 lines
1.5 KiB
Bash
Executable file
50 lines
1.5 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
if test $# -eq 0; then
|
|
echo "user_settings_asm.sh requires one argument specifying compiler flags to pull include directories from." 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Compress multiple spaces to single spaces, then replace instances of
|
|
# "-I " with "-I" (i.e. remove spaces between -I and the include path).
|
|
search_string=$(echo "$1" | sed -e 's/ */ /g' -e 's/-I /-I/g')
|
|
|
|
for token in $search_string
|
|
do
|
|
case "$token" in
|
|
-I*)
|
|
# Trim off the leading "-I".
|
|
path="${token#-I}"
|
|
# Trim off the trailing "/".
|
|
path="${path%/}"
|
|
if test -e "$path/user_settings.h"; then
|
|
user_settings_dir="$path"
|
|
user_settings_path="$path/user_settings.h"
|
|
break
|
|
fi
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Fall back to user_settings.h in the current directory.
|
|
if test -z "${user_settings_path-}"; then
|
|
if test -e "user_settings.h"; then
|
|
user_settings_dir="."
|
|
user_settings_path="user_settings.h"
|
|
fi
|
|
fi
|
|
|
|
if test -z "${user_settings_path-}"; then
|
|
echo "Unable to find user_settings.h." 1>&2
|
|
exit 1
|
|
else
|
|
# Strip out anything from user_settings.h that isn't a preprocessor
|
|
# directive (i.e. any lines not starting with #). Put the result in
|
|
# user_settings_asm.h in the same directory as user_settings.h.
|
|
# user_settings_asm.h is safe to include in assembly files (e.g. .S
|
|
# files).
|
|
sed -e '/^ *#/!d' -e :a -e '$!N;s/\\\n/ /;ta' -e 'P;D' < "$user_settings_path" > "$user_settings_dir/user_settings_asm.h"
|
|
fi
|