mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-19 04:47:52 +00:00
Include the full version number in the directory paths installed.
Change the version string so that it does not break 'make', and so that it has no '/' (it would be a hell if installed directories would mirror the SVN branches... :-/ ) Do not use implicit rules for the Makefile. Simplify and enc=hance the --local test to refuse (un)installing. Double-quotes variables, they are based on user input. Eye-candy in the 'compile' and install messages. /trunk/configure | 26 14 12 0 ++++++++++--------- /trunk/Makefile.in | 83 45 38 0 +++++++++++++++++++++++++++++++++--------------------------- 2 files changed, 59 insertions(+), 50 deletions(-)
This commit is contained in:
parent
b35770100e
commit
62df5c3fed
83
Makefile.in
83
Makefile.in
@ -1,6 +1,8 @@
|
||||
# Makefile.in for building crosstool-NG
|
||||
# This file serves as source for the ./configure operation
|
||||
|
||||
MAKEFLAGS += --no-print-directory --no-builtin-rules
|
||||
|
||||
all: Makefile build
|
||||
|
||||
# Check if Makefile is up to date:
|
||||
@ -25,15 +27,15 @@ MAKE := $(shell which $(MAKE) || type -p $(MAKE) || echo /usr/bin/make)
|
||||
|
||||
build: build-bin build-lib build-man
|
||||
|
||||
install: install-local-test build install-bin install-lib install-doc install-man
|
||||
install: build install-bin install-lib install-doc install-man
|
||||
|
||||
clean: clean-bin clean-lib clean-doc
|
||||
|
||||
distclean: clean
|
||||
@echo " RM Makefile"
|
||||
@echo " RM 'Makefile'"
|
||||
@rm -f Makefile
|
||||
|
||||
uninstall: install-local-test uninstall-bin uninstall-lib uninstall-doc uninstall-man
|
||||
uninstall: uninstall-bin uninstall-lib uninstall-doc uninstall-man
|
||||
|
||||
###############################################################################
|
||||
# Specific make rules
|
||||
@ -42,7 +44,7 @@ uninstall: install-local-test uninstall-bin uninstall-lib uninstall-doc uninstal
|
||||
# Build rules
|
||||
|
||||
build-bin: ct-ng
|
||||
@echo " CHMOD $<"
|
||||
@echo " CHMOD '$<'"
|
||||
@chmod a+x $<
|
||||
|
||||
build-lib:
|
||||
@ -50,11 +52,11 @@ build-lib:
|
||||
build-man: docs/ct-ng.1.gz
|
||||
|
||||
docs/ct-ng.1.gz: docs/ct-ng.1
|
||||
@echo " GZIP $@"
|
||||
@echo " GZIP '$@'"
|
||||
@gzip -c9 $< >$@
|
||||
|
||||
%: %.in Makefile
|
||||
@echo " SED $@"
|
||||
@echo " SED '$@'"
|
||||
@sed -r -e 's,@@CT_MAKE@@,$(MAKE),g;' \
|
||||
-e 's,@@CT_BINDIR@@,$(BINDIR),g;' \
|
||||
-e 's,@@CT_LIBDIR@@,$(LIBDIR),g;' \
|
||||
@ -68,79 +70,84 @@ docs/ct-ng.1.gz: docs/ct-ng.1
|
||||
# Clean rules
|
||||
|
||||
clean-bin:
|
||||
@echo " RM ct-ng"
|
||||
@echo " RM 'ct-ng'"
|
||||
@rm -f ct-ng
|
||||
|
||||
clean-lib:
|
||||
|
||||
clean-doc:
|
||||
@echo " RM docs/ct-ng.1"
|
||||
@echo " RM 'docs/ct-ng.1'"
|
||||
@rm -f docs/ct-ng.1
|
||||
@echo " RM docs/ct-ng.1.gz"
|
||||
@echo " RM 'docs/ct-ng.1.gz'"
|
||||
@rm -f docs/ct-ng.1.gz
|
||||
|
||||
#--------------------------------------
|
||||
# Install rules
|
||||
# Check for --local setup
|
||||
|
||||
# If using locally, don't install
|
||||
install-local-test:
|
||||
local-test:
|
||||
@if [ "$(LOCAL)" = "1" ]; then \
|
||||
echo "You're using local copy as runtime. You can't (un)install."; \
|
||||
false; \
|
||||
fi
|
||||
|
||||
install-%: install-local-test
|
||||
#--------------------------------------
|
||||
# Install rules
|
||||
|
||||
install-%: local-test
|
||||
|
||||
install-bin: $(BINDIR)
|
||||
@echo " INST ct-ng"
|
||||
@install -m 755 ct-ng $(BINDIR)/ct-ng
|
||||
@echo " INST 'ct-ng'"
|
||||
@install -m 755 ct-ng "$(BINDIR)/ct-ng"
|
||||
|
||||
install-lib: uninstall-lib $(LIBDIR) install-lib-main install-lib-samples
|
||||
|
||||
install-lib-main: $(LIBDIR)
|
||||
@for src_dir in arch config kconfig patches scripts tools; do \
|
||||
echo " INST $${src_dir}/"; \
|
||||
tar cf - --exclude=.svn $${src_dir} |(cd $(LIBDIR); tar xf -); \
|
||||
@for src_dir in arch config kconfig patches scripts tools; do \
|
||||
echo " INST '$${src_dir}/'"; \
|
||||
tar cf - --exclude=.svn $${src_dir} |(cd "$(LIBDIR)"; tar xf -); \
|
||||
done
|
||||
@rm -f $(LIBDIR)/tools/addToolVersion.sh
|
||||
@echo " INST steps.mk"
|
||||
@install -m 644 steps.mk $(LIBDIR)/steps.mk
|
||||
@rm -f "$(LIBDIR)/tools/addToolVersion.sh"
|
||||
@echo " INST 'steps.mk'"
|
||||
@install -m 644 steps.mk "$(LIBDIR)/steps.mk"
|
||||
|
||||
# Samples need a little love:
|
||||
# - change every occurrence of CT_TOP_DIR to CT_LIB_DIR
|
||||
install-lib-samples: $(LIBDIR) install-lib-main
|
||||
@echo " INST samples/"
|
||||
@tar cf - --exclude=.svn samples |(cd $(LIBDIR); tar xf -)
|
||||
@for samp_file in $(LIBDIR)/samples/*/crosstool.config; do \
|
||||
@echo " INST 'samples/'"
|
||||
@tar cf - --exclude=.svn samples |(cd "$(LIBDIR)"; tar xf -)
|
||||
@for samp_file in "$(LIBDIR)/samples/"*"/crosstool.config"; do \
|
||||
sed -r -i -e 's,\$$\{CT_TOP_DIR\},\$$\{CT_LIB_DIR\},g;' $${samp_file}; \
|
||||
done
|
||||
|
||||
install-doc: $(DOCDIR)
|
||||
@for doc_file in docs/CREDITS docs/overview.txt; do \
|
||||
echo " INST $${doc_file}"; \
|
||||
install -m 644 "$${doc_file}" $(DOCDIR); \
|
||||
@for doc_file in docs/CREDITS docs/overview.txt; do \
|
||||
echo " INST '$${doc_file}'"; \
|
||||
install -m 644 "$${doc_file}" "$(DOCDIR)"; \
|
||||
done
|
||||
|
||||
install-man: $(MANDIR)
|
||||
@echo " INST ct-ng.1.gz"
|
||||
@install -m 644 docs/ct-ng.1.gz $(MANDIR)
|
||||
@echo " INST 'ct-ng.1.gz'"
|
||||
@install -m 644 docs/ct-ng.1.gz "$(MANDIR)"
|
||||
|
||||
$(BINDIR) $(LIBDIR) $(DOCDIR) $(MANDIR)::
|
||||
@echo " MKDIR $@"
|
||||
@install -m 755 -d $@
|
||||
@echo " MKDIR '$@'"
|
||||
@install -m 755 -d "$@"
|
||||
|
||||
|
||||
#--------------------------------------
|
||||
# Uninstall rules
|
||||
|
||||
uninstall-bin: install-local-test
|
||||
@rm -f $(BINDIR)/ct-ng
|
||||
uninstall-%: local-test
|
||||
|
||||
uninstall-lib: install-local-test
|
||||
@rm -rf $(LIBDIR)
|
||||
uninstall-bin:
|
||||
@rm -f "$(BINDIR)/ct-ng"
|
||||
|
||||
uninstall-doc: install-local-test
|
||||
@rm -rf $(DOCDIR)
|
||||
uninstall-lib:
|
||||
@rm -rf "$(LIBDIR)"
|
||||
|
||||
uninstall-man: install-local-test
|
||||
@rm -f $(MANDIR)/ct-ng.1{,.gz}
|
||||
uninstall-doc:
|
||||
@rm -rf "$(DOCDIR)"
|
||||
|
||||
uninstall-man:
|
||||
@rm -f "$(MANDIR)/ct-ng.1"{,.gz}
|
||||
|
26
configure
vendored
26
configure
vendored
@ -113,11 +113,6 @@ if [ "${LOCAL_set}" = "1" ]; then
|
||||
set_mandir "" $(pwd)/docs
|
||||
fi
|
||||
|
||||
[ -z "${BINDIR_set}" ] && BINDIR="${PREFIX}/bin"
|
||||
[ -z "${LIBDIR_set}" ] && LIBDIR="${PREFIX}/lib/ct-ng-${VERSION}"
|
||||
[ -z "${DOCDIR_set}" ] && DOCDIR="${PREFIX}/share/doc/ct-ng-${VERSION}"
|
||||
[ -z "${MANDIR_set}" ] && MANDIR="${PREFIX}/share/man/man1"
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Some sanity checks, now
|
||||
|
||||
@ -129,17 +124,24 @@ case "${VERSION}" in
|
||||
REVISION=$(LC_ALL=C svnversion)
|
||||
case "${REVISION}" in
|
||||
exported)
|
||||
VERSION="${VERSION}:unknown@$(date +%Y%m%d.%H%M%S)";;
|
||||
VERSION="${VERSION}unknown@$(date +%Y%m%d.%H%M%S)";;
|
||||
*)
|
||||
URL=$(LC_ALL=C svn info 2>/dev/null |egrep 'URL: ' |cut -d ' ' -f 2-)
|
||||
ROOT=$(LC_ALL=C svn info 2>/dev/null |egrep 'Repository Root: ' |cut -d ' ' -f 3-)
|
||||
VERSION="${VERSION}:${URL#${ROOT}}@${REVISION}"
|
||||
VERSION="${VERSION}${URL#${ROOT}}@${REVISION}"
|
||||
;;
|
||||
esac
|
||||
VERSION="${VERSION/\//_}"
|
||||
;;
|
||||
esac
|
||||
echo "${VERSION}"
|
||||
|
||||
# Now we have the version string, we can buyild up the paths
|
||||
[ -z "${BINDIR_set}" ] && BINDIR="${PREFIX}/bin"
|
||||
[ -z "${LIBDIR_set}" ] && LIBDIR="${PREFIX}/lib/ct-ng-${VERSION}"
|
||||
[ -z "${DOCDIR_set}" ] && DOCDIR="${PREFIX}/share/doc/ct-ng-${VERSION}"
|
||||
[ -z "${MANDIR_set}" ] && MANDIR="${PREFIX}/share/man/man1"
|
||||
|
||||
# Check bash is present, and at least version 3.0
|
||||
echo -n "Checking bash is at least bash-3.0... "
|
||||
[ -x /bin/bash ] || do_error "bash 3.0 or above was not found in /bin/bash"
|
||||
@ -161,9 +163,9 @@ echo "ok"
|
||||
|
||||
cat <<__EOF__
|
||||
crosstool-NG configured as follows:
|
||||
PREFIX="${PREFIX}"
|
||||
BINDIR="${BINDIR}"
|
||||
LIBDIR="${LIBDIR}"
|
||||
DOCDIR="${DOCDIR}"
|
||||
MANDIR="${MANDIR}"
|
||||
PREFIX='${PREFIX}'
|
||||
BINDIR='${BINDIR}'
|
||||
LIBDIR='${LIBDIR}'
|
||||
DOCDIR='${DOCDIR}'
|
||||
MANDIR='${MANDIR}'
|
||||
__EOF__
|
||||
|
Loading…
Reference in New Issue
Block a user