crosstool-ng/Makefile.in
2008-02-14 22:44:34 +00:00

147 lines
4.0 KiB
Makefile

# Makefile.in for building crosstool-NG
# This file serves as source for the ./configure operation
all: Makefile build
# Check if Makefile is up to date:
Makefile: Makefile.in
@echo "$< did changed: you must re-run './configure'"
@false
###############################################################################
# Configuration variables
VERSION:= @@VERSION@@
BINDIR := @@BINDIR@@
LIBDIR := @@LIBDIR@@
DOCDIR := @@DOCDIR@@
MANDIR := @@MANDIR@@
DATE := @@DATE@@
LOCAL := @@LOCAL@@
MAKE := $(shell which $(MAKE) || type -p $(MAKE) || echo /usr/bin/make)
###############################################################################
# Global make rules
build: build-bin build-lib build-man
install: install-local-test build install-bin install-lib install-doc install-man
clean: clean-bin clean-lib clean-doc
distclean: clean
@echo " RM Makefile"
@rm -f Makefile
uninstall: install-local-test uninstall-bin uninstall-lib uninstall-doc uninstall-man
###############################################################################
# Specific make rules
#--------------------------------------
# Build rules
build-bin: ct-ng
@echo " CHMOD $<"
@chmod a+x $<
build-lib:
build-man: docs/ct-ng.1.gz
docs/ct-ng.1.gz: docs/ct-ng.1
@echo " GZIP $@"
@gzip -c9 $< >$@
%: %.in
@echo " SED $@"
@sed -r -e 's,@@CT_MAKE@@,$(MAKE),g;' \
-e 's,@@CT_BINDIR@@,$(BINDIR),g;' \
-e 's,@@CT_LIBDIR@@,$(LIBDIR),g;' \
-e 's,@@CT_DOCDIR@@,$(DOCDIR),g;' \
-e 's,@@CT_MANDIR@@,$(MANDIR),g;' \
-e 's,@@CT_VERSION@@,$(VERSION),g;' \
-e 's,@@CT_DATE@@,$(DATE),g;' \
$@.in >$@
#--------------------------------------
# Clean rules
clean-bin:
@echo " RM ct-ng"
@rm -f ct-ng
clean-lib:
clean-doc:
@echo " RM docs/ct-ng.1"
@rm -f docs/ct-ng.1
@echo " RM docs/ct-ng.1.gz"
@rm -f docs/ct-ng.1.gz
#--------------------------------------
# Install rules
# If using locally, don't install
install-local-test:
@if [ "$(LOCAL)" = "1" ]; then \
echo "You're using local copy as runtime. You can't (un)install."; \
false; \
fi
install-bin: install-local-test $(BINDIR)
@echo " INST ct-ng"
@install -m 755 ct-ng $(BINDIR)/ct-ng
install-lib: install-local-test $(LIBDIR) install-lib-main install-lib-samples
install-lib-main: install-local-test $(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 -); \
done
@rm -f $(LIBDIR)/tools/addToolVersion.sh
@for src_file in steps.mk .version; do \
echo " INST $${src_file}"; \
install -m 644 $${src_file} $(LIBDIR)/$${src_file}; \
done
# Samples need a little love:
# - change every occurrence of CT_TOP_DIR to CT_LIB_DIR
install-lib-samples: install-local-test $(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 \
sed -r -i -e 's,\$$\{CT_TOP_DIR\},\$$\{CT_LIB_DIR\},g;' $${samp_file}; \
done
install-doc: install-local-test $(DOCDIR)
@for doc_file in docs/CREDITS docs/overview.txt; do \
echo " INST $${doc_file}"; \
install -m 644 "$${doc_file}" $(DOCDIR); \
done
install-man: install-local-test $(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 $@
#--------------------------------------
# Uninstall rules
uninstall-bin: install-local-test
@rm -f $(BINDIR)/ct-ng
uninstall-lib: install-local-test
@rm -rf $(LIBDIR)
uninstall-doc: install-local-test
@rm -rf $(DOCDIR)
uninstall-man: install-local-test
@rm -f $(MANDIR)/ct-ng.1{,.gz}