diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2012-12-19 12:18:08 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2012-12-19 12:28:01 +0000 |
commit | f54d4171e59ff7aaba2ca0520de1ef1d130e0fb4 (patch) | |
tree | 2bfbc8a9f6734418215dd09e618f220161e312b7 | |
parent | f5a2fbd8310daaec0642e76f8cfc146e2ac130db (diff) | |
download | linux-baserock/liw/headers-install-in-shell.tar.gz |
Fix more stuffbaserock/liw/headers-install-in-shell
-rw-r--r-- | scripts/Makefile.headersinst | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | scripts/headers_install.sh | 31 |
2 files changed, 18 insertions, 19 deletions
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index a57f5bd5a13d..fb48d96053e4 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst @@ -50,8 +50,8 @@ printdir = $(patsubst $(INSTALL_HDR_PATH)/%/,%,$(dir $@)) quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\ file$(if $(word 2, $(all-files)),s)) cmd_install = \ - $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \ - $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \ + $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \ + $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \ for F in $(wrapper-files); do \ echo "\#include <asm-generic/$$F>" > $(install)/$$F; \ done; \ @@ -77,7 +77,7 @@ __headersinst: $(subdirs) $(install-file) @: targets += $(install-file) -$(install-file): scripts/headers_install.pl $(input-files) FORCE +$(install-file): scripts/headers_install.sh $(input-files) FORCE $(if $(unwanted),$(call cmd,remove),) $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@))) $(call if_changed,install) diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh index d2308ddbb3b5..6c0761e4990d 100644..100755 --- a/scripts/headers_install.sh +++ b/scripts/headers_install.sh @@ -3,7 +3,7 @@ # headers_install prepare the listed header files for use in # user space and copy the files to their destination. # -# Usage: headers_install.pl readdir installdir arch [files...] +# Usage: headers_install.sh readdir installdir arch [files...] # readdir: dir to open files # installdir: dir to install the files # arch: current architecture @@ -16,6 +16,9 @@ # 2) Drop include of compiler.h # 3) Drop all sections defined out by __KERNEL__ (using unifdef) +# This is a port to shell of the original Perl version, to avoid +# requiring Perl when building only the Linux API headers. + set -eu readdir="$1" @@ -27,11 +30,7 @@ unifdef="scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__" for file in "$@" do - tmpfile=$(mktemp -d "$installdir") - - while (my $line = <$in>) { - printf {$out} "%s", $line; - } + tmpfile=$(mktemp --tmpdir="$installdir") sed -r \ -e 's/([[:space:](])__user[[:space:]]/\1/g' \ @@ -39,25 +38,25 @@ do -e 's/([[:space:](])__iomem[[:space:]]/\1/g' \ -e 's/([[:space:]])__attribute_const__[[:space:]]/ /g' \ -e 's/([[:space:]])__attribute_const__$//g' \ - -e 's/\<__packed\>/__attribute__((packed))/g' \ - -e 's/^#include <linux\/compiler.h>//' \ - -e 's/(^|[[:space:]])(inline)\>/\1__\2__/g' \ - -e 's/(^|[[:space:]])(asm)\>([[:space:](]|$)/\1__\2__\3/g' \ - -e 's/(^|[[:space:](])(volatile)\>([[:space:](]|$)/\1__\2__\3/g' \ + -e 's/\<__packed\>/__attribute__((packed))/g' \ + -e 's/^#include <linux\/compiler.h>//' \ + -e 's/(^|[[:space:]])(inline)\>/\1__\2__/g' \ + -e 's/(^|[[:space:]])(asm)\>([[:space:](]|$)/\1__\2__\3/g' \ + -e 's/(^|[[:space:](])(volatile)\>([[:space:](]|$)/\1__\2__\3/g' \ "$readdir/$file" > "$tmpfile" set +e - $unifdef "$tmpfile" > "$installdir/$file" + $unifdef "$tmpfile" > "$installdir/$file" exit=$? set -e - # unifdef will exit 0 on success, and will exit 1 when the - # file was processed successfully but no changes were made, - # so abort only when it's higher than that. + # unifdef will exit 0 on success, and will exit 1 when the + # file was processed successfully but no changes were made, + # so abort only when it's higher than that. if [ "$exit" != 0 ] && [ "$exit" != 1 ] then exit 1 fi - rm "$tmpfile" + rm "$tmpfile" done |