comparison Makefile @ 1398:c6aaf7d9c746

check most of the requirements in advance
author Volker Grabsch <vog@notjusthosting.com>
date Thu, 18 Nov 2010 12:00:26 +0100
parents b33871ee26a3
children 6b28a4f27b8c
comparison
equal deleted inserted replaced
1397:b33871ee26a3 1398:c6aaf7d9c746
19 LIBTOOLIZE := $(shell glibtoolize --help >/dev/null 2>&1 && echo g)libtoolize 19 LIBTOOLIZE := $(shell glibtoolize --help >/dev/null 2>&1 && echo g)libtoolize
20 PATCH := $(shell gpatch --help >/dev/null 2>&1 && echo g)patch 20 PATCH := $(shell gpatch --help >/dev/null 2>&1 && echo g)patch
21 SED := $(shell gsed --help >/dev/null 2>&1 && echo g)sed 21 SED := $(shell gsed --help >/dev/null 2>&1 && echo g)sed
22 VERSION := $(shell $(SED) -n 's,^.*<span id="latest-version">\([^<]*\)</span>.*$$,\1,p' '$(TOP_DIR)/doc/index.html') 22 VERSION := $(shell $(SED) -n 's,^.*<span id="latest-version">\([^<]*\)</span>.*$$,\1,p' '$(TOP_DIR)/doc/index.html')
23 23
24 REQUIREMENTS := autoconf automake bash bison bzip2 cmake flex \
25 gcc $(INSTALL) intltoolize $(LIBTOOLIZE) $(MAKE) \
26 openssl $(PATCH) $(PERL) pkg-config scons $(SED) \
27 unzip wget xz yasm
28
24 # unexport any environment variables that might cause trouble 29 # unexport any environment variables that might cause trouble
25 unexport AR CC CFLAGS C_INCLUDE_PATH CPATH CPLUS_INCLUDE_PATH CPP 30 unexport AR CC CFLAGS C_INCLUDE_PATH CPATH CPLUS_INCLUDE_PATH CPP
26 unexport CPPFLAGS CROSS CXX CXXCPP CXXFLAGS EXEEXT EXTRA_CFLAGS 31 unexport CPPFLAGS CROSS CXX CXXCPP CXXFLAGS EXEEXT EXTRA_CFLAGS
27 unexport EXTRA_LDFLAGS LD LDFLAGS LIBRARY_PATH LIBS NM 32 unexport EXTRA_LDFLAGS LD LDFLAGS LIBRARY_PATH LIBS NM
28 unexport OBJC_INCLUDE_PATH PKG_CONFIG PKG_CONFIG_PATH QMAKESPEC 33 unexport OBJC_INCLUDE_PATH PKG_CONFIG PKG_CONFIG_PATH QMAKESPEC
66 $(SED) 's,^[^ ]* ,,' 71 $(SED) 's,^[^ ]* ,,'
67 72
68 .PHONY: all 73 .PHONY: all
69 all: $(PKGS) 74 all: $(PKGS)
70 75
76 .PHONY: check-requirements
77 define CHECK_REQUIREMENT
78 @if ! $(1) --help &>/dev/null; then \
79 echo; \
80 echo 'Missing requirement: $(1)'; \
81 echo; \
82 echo 'Please have a look at "doc/index.html" to ensure'; \
83 echo 'that your system meets all requirements.'; \
84 echo; \
85 exit 1; \
86 fi
87
88 endef
89 check-requirements:
90 @echo '[check requirements]'
91 $(foreach REQUIREMENT,$(REQUIREMENTS),$(call CHECK_REQUIREMENT,$(REQUIREMENT)))
92
71 .PHONY: download 93 .PHONY: download
72 download: $(addprefix download-,$(PKGS)) 94 download: $(addprefix download-,$(PKGS))
73 95
74 define PKG_RULE 96 define PKG_RULE
75 .PHONY: download-$(1) 97 .PHONY: download-$(1)
79 $(call CHECK_PKG_ARCHIVE,$(1)) || { echo 'Wrong checksum!'; exit 1; }; \ 101 $(call CHECK_PKG_ARCHIVE,$(1)) || { echo 'Wrong checksum!'; exit 1; }; \
80 fi 102 fi
81 103
82 .PHONY: $(1) 104 .PHONY: $(1)
83 $(1): $(PREFIX)/installed/$(1) 105 $(1): $(PREFIX)/installed/$(1)
84 $(PREFIX)/installed/$(1): $(TOP_DIR)/src/$(1).mk \ 106 $(PREFIX)/installed/$(1): check-requirements \
107 $(TOP_DIR)/src/$(1).mk \
85 $(wildcard $(TOP_DIR)/src/$(1)-*.patch) \ 108 $(wildcard $(TOP_DIR)/src/$(1)-*.patch) \
86 $(wildcard $(TOP_DIR)/src/$(1)-test*) \ 109 $(wildcard $(TOP_DIR)/src/$(1)-test*) \
87 $(addprefix $(PREFIX)/installed/,$($(1)_DEPS)) 110 $(addprefix $(PREFIX)/installed/,$($(1)_DEPS))
88 @[ -d '$(LOG_DIR)/$(TIMESTAMP)' ] || mkdir -p '$(LOG_DIR)/$(TIMESTAMP)' 111 @[ -d '$(LOG_DIR)/$(TIMESTAMP)' ] || mkdir -p '$(LOG_DIR)/$(TIMESTAMP)'
89 @if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \ 112 @if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \