|
|
|
@ -1,6 +1,9 @@
|
|
|
|
|
#!/bin/sh
|
|
|
|
|
# Usage:
|
|
|
|
|
# ../../move-asn1-headers.sh osmocom/foo/bar File1.h File2.h ...
|
|
|
|
|
# ../../move-asn1-headers.sh subdir_name File1.h File2.h ...
|
|
|
|
|
# All .h and .c files in the current directory are edited to use #include <...>
|
|
|
|
|
# style for the .h files given on the cmdline. The given .h files are also
|
|
|
|
|
# moved to ../include/<subdir_name>/ so that #include <...> will work.
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
@ -13,13 +16,12 @@ include_dir="$base_dir/include/$include_subdir"
|
|
|
|
|
mkdir -p "$include_dir"
|
|
|
|
|
echo "$PWD/*.h --> $include_dir"
|
|
|
|
|
|
|
|
|
|
sed_includes() {
|
|
|
|
|
collect_sed_commands() {
|
|
|
|
|
while [ -n "$1" ]; do
|
|
|
|
|
fname="$1"
|
|
|
|
|
shift
|
|
|
|
|
|
|
|
|
|
echo 'sed -i "s,^#include \"'$fname'\"$,#include <'$include_subdir/$fname'>," *.[hc]'
|
|
|
|
|
sed -i "s,^#include \"$fname\"$,#include <$include_subdir/$fname>," *.[hc]
|
|
|
|
|
echo "s,^#include \"$fname\"$,#include <$include_subdir/$fname>,"
|
|
|
|
|
done
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -28,8 +30,15 @@ move_headers() {
|
|
|
|
|
mv $@ "$include_dir/"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# first replace all `#include "foo.h"' with `#include <dir/foo.h>' locally
|
|
|
|
|
sed_includes $@
|
|
|
|
|
|
|
|
|
|
# move sed'ed *.h files to the proper include/dir
|
|
|
|
|
# Replace all `#include "foo.h"' with `#include <dir/foo.h>' locally
|
|
|
|
|
# - Collect sed commands to replace all header includes, for efficiency
|
|
|
|
|
cmds="$(mktemp)"
|
|
|
|
|
echo "collecting sed commands..."
|
|
|
|
|
collect_sed_commands $@ > "$cmds"
|
|
|
|
|
# - Run commands on all h and c files
|
|
|
|
|
echo "sed -i -f \"$cmds\" *.[hc]"
|
|
|
|
|
sed -i -f "$cmds" *.[hc]
|
|
|
|
|
rm "$cmds"
|
|
|
|
|
|
|
|
|
|
# Now move sed'ed *.h files to the proper ../include/dir
|
|
|
|
|
move_headers $@
|
|
|
|
|