diff options
author | Alexey Neyman <stilor@att.net> | 2017-02-12 14:23:16 -0800 |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-02-12 22:02:28 -0800 |
commit | f9bec4ed7c4540de73c82c94053f975c5c7c29e4 (patch) | |
tree | 3d9e2a73ebca96ed9bd5a616658e018ecefc4920 /scripts | |
parent | 41ba1d99c8801cf27bf59daf3663eee89156afa0 (diff) | |
download | crosstool-ng-f9bec4ed7c4540de73c82c94053f975c5c7c29e4.tar.gz crosstool-ng-f9bec4ed7c4540de73c82c94053f975c5c7c29e4.tar.bz2 crosstool-ng-f9bec4ed7c4540de73c82c94053f975c5c7c29e4.zip |
stat: determine whether it is BSD or GNU flavor
Seems like MacOS may have either in the path.
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/functions | 8 | ||||
-rwxr-xr-x | scripts/scripts.mk | 64 |
2 files changed, 68 insertions, 4 deletions
diff --git a/scripts/functions b/scripts/functions index 65ce4981..84054d58 100644 --- a/scripts/functions +++ b/scripts/functions @@ -567,15 +567,15 @@ CT_DoForceRmdir() { local mode for dir in "${@}"; do [ -d "${dir}" ] || continue - case "$CT_SYS_OS" in - Linux|CYGWIN*) + case "${CT_CONFIGURE_has_stat_flavor_GNU},${CT_CONFIGURE_has_stat_flavor_BSD}" in + y,*) mode="$(stat -c '%a' "$(dirname "${dir}")")" ;; - Darwin|*BSD) + *,y) mode="$(stat -f '%Lp' "$(dirname "${dir}")")" ;; *) - CT_Abort "Unhandled host OS $CT_SYS_OS" + CT_Abort "Unknown stat format options" ;; esac CT_DoExecLog ALL chmod u+w "$(dirname "${dir}")" diff --git a/scripts/scripts.mk b/scripts/scripts.mk new file mode 100755 index 00000000..42aacab6 --- /dev/null +++ b/scripts/scripts.mk @@ -0,0 +1,64 @@ +# Makefile for the scripts/ sub-directory + +# Here, we can update the config.* scripts. +# If we're in CT_LIB_DIR, then CT_LIB_DIR == CT_TOP_DIR, and we can update those +# scripts for later inclusion mainline. If CT_LIB_DIR != CT_TOP_DIR, then those +# scripts are downloaded only for use in CT_TOP_DIR. + +# ---------------------------------------------------------- +# The tools help entry + +help-distrib:: + @echo ' updatetools - Update the config tools' + +# ---------------------------------------------------------- +# Where to get tools from, and where to store them into +# The tools are: config.guess and config.sub + +CONFIG_SUB_SRC="http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" +CONFIG_SUB_DEST=scripts/config.sub +CONFIG_GUESS_SRC="http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" +CONFIG_GUESS_DEST=scripts/config.guess + +PHONY += updatetools +updatetools: $(CONFIG_SUB_DEST) $(CONFIG_GUESS_DEST) + +# ---------------------------------------------------------- +# How to retrieve the tools + +ifneq ($(strip $(V)),2) + wget_silent_opt = -o /dev/null + curl_silent_opt = --silent +endif + +ifneq (wget,) +download_cmd = wget --passive-ftp $(wget_silent_opt) -O $@ +else +ifneq (curl,) +download_cmd = curl --ftp-pasv $(curl_silent_opt) -o $@ +else +download_cmd = $(error wget or curl needed for downloads) +endif +endif + +PHONY += scripts +scripts: + @$(CT_ECHO) ' MKDIR $@' + $(SILENT)mkdir -p $@ + +$(CONFIG_SUB_DEST): scripts FORCE + @$(CT_ECHO) ' DOWNLOAD $@' + $(SILENT)$(download_cmd) $(CONFIG_SUB_SRC) + $(SILENT)chmod u+rwx,go+rx-w $@ + +$(CONFIG_GUESS_DEST): scripts FORCE + @$(CT_ECHO) ' DOWNLOAD $@' + $(SILENT)$(download_cmd) $(CONFIG_GUESS_SRC) + $(SILENT)chmod u+rwx,go+rx-w $@ + +# ---------------------------------------------------------- +# Clean up the mess + +distclean:: + @$(CT_ECHO) " CLEAN scripts" + $(SILENT)[ $(CT_TOP_DIR) = $(CT_LIB_DIR) ] || rm -rf $(CT_TOP_DIR)/scripts |