Mercurial > mxe-octave
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 \ |