summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-07-29 11:30:06 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-07-29 11:30:06 +0000
commit432ce85854aea17f9383519db1c2d3a8307c0760 (patch)
tree201dc84d4cf223dae33e04cc23a092b7fb9acf36 /include
parent3f07a6aa051a0413da8796389a62574955d15982 (diff)
add support for per-package prereq checks, run global prereq checks before (menu-)config
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4318 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'include')
-rw-r--r--include/package.mk2
-rw-r--r--include/prereq-build.mk88
-rw-r--r--include/prereq.mk84
3 files changed, 92 insertions, 82 deletions
diff --git a/include/package.mk b/include/package.mk
index e0765f7ba..cd1a33c48 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -10,6 +10,8 @@ else
all: compile
endif
+include $(INCLUDE_DIR)/prereq.mk
+
define Build/DefaultTargets
ifeq ($(DUMP),)
ifeq ($(CONFIG_AUTOREBUILD),y)
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
new file mode 100644
index 000000000..a6de9b270
--- /dev/null
+++ b/include/prereq-build.mk
@@ -0,0 +1,88 @@
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/prereq.mk
+
+# Required for the toolchain
+define Require/working-make
+ echo 'all: test' > $(TMP_DIR)/check.mk
+ echo 'e0 = $$$$(foreach s,foobar,$$$$(eval $$$$s:))' >> $(TMP_DIR)/check.mk
+ echo 'e1 = $$$$(foreach s,foobar, $$$$(eval $$$$s:))' >> $(TMP_DIR)/check.mk
+ echo 'test: $$$$(strip $$$$(e0)) $$$$(strip $$$$(e1))' >> $(TMP_DIR)/check.mk
+ $(NO_TRACE_MAKE) -f $(TMP_DIR)/check.mk
+endef
+
+$(eval $(call Require,working-make, \
+ Your make version is buggy. Please install GNU make v3.81 or later. \
+))
+
+define Require/working-gcc
+ echo 'int main(int argc, char **argv) { return 0; }' | \
+ gcc -x c -o $(TMP_DIR)/a.out -
+endef
+
+$(eval $(call Require,working-gcc, \
+ No working GNU C Compiler (gcc) was found on your system. \
+))
+
+define Require/working-g++
+ echo 'int main(int argc, char **argv) { return 0; }' | \
+ g++ -x c++ -o $(TMP_DIR)/a.out -lstdc++ -
+endef
+
+$(eval $(call Require,working-g++, \
+ No working GNU C++ Compiler (g++) was found on your system. \
+))
+
+define Require/ncurses
+ echo 'int main(int argc, char **argv) { initscr(); return 0; }' | \
+ gcc -include ncurses.h -x c -o $(TMP_DIR)/a.out -lncurses -
+endef
+
+$(eval $(call Require,ncurses, \
+ No ncurses development files were not found on your system. \
+))
+
+
+define Require/zlib
+ echo 'int main(int argc, char **argv) { gzdopen(0, "rb"); return 0; }' | \
+ gcc -include zlib.h -x c -o $(TMP_DIR)/a.out -lz -
+endef
+
+$(eval $(call Require,zlib, \
+ No zlib development files were not found on your system. \
+))
+
+
+$(eval $(call RequireCommand,bison, \
+ Please install GNU bison. \
+))
+
+$(eval $(call RequireCommand,flex, \
+ Please install flex. \
+))
+
+$(eval $(call RequireCommand,python, \
+ Please install python. \
+))
+
+$(eval $(call RequireCommand,unzip, \
+ Please install unzip. \
+))
+
+$(eval $(call RequireCommand,bzip2, \
+ Please install bzip2. \
+))
+
+$(eval $(call RequireCommand,patch, \
+ Please install patch. \
+))
+
+$(eval $(call RequireCommand,perl, \
+ Please install perl. \
+))
diff --git a/include/prereq.mk b/include/prereq.mk
index e514855a6..c9b82d294 100644
--- a/include/prereq.mk
+++ b/include/prereq.mk
@@ -5,14 +5,12 @@
# See /LICENSE for more information.
#
-include $(TOPDIR)/rules.mk
-
$(TMP_DIR):
mkdir -p $@
prereq:
- echo
if [ -f $(TMP_DIR)/.prereq-error ]; then \
+ echo; \
cat $(TMP_DIR)/.prereq-error; \
echo; \
rm -rf $(TMP_DIR); \
@@ -29,7 +27,7 @@ define Require
prereq-$(1): $(TMP_DIR) FORCE
echo -n "Checking '$(1)'... "
- if $(NO_TRACE_MAKE) -f $(INCLUDE_DIR)/prereq.mk check-$(1) >/dev/null 2>/dev/null; then \
+ if $(NO_TRACE_MAKE) -f $(firstword $(MAKEFILE_LIST)) check-$(1) >/dev/null 2>/dev/null; then \
echo 'ok.'; \
else \
echo 'failed.'; \
@@ -53,81 +51,3 @@ define RequireCommand
$$(eval $$(call Require,$(1),$(2)))
endef
-# Required for the toolchain
-define Require/working-make
- echo 'all: test' > $(TMP_DIR)/check.mk
- echo 'e0 = $$$$(foreach s,foobar,$$$$(eval $$$$s:))' >> $(TMP_DIR)/check.mk
- echo 'e1 = $$$$(foreach s,foobar, $$$$(eval $$$$s:))' >> $(TMP_DIR)/check.mk
- echo 'test: $$$$(strip $$$$(e0)) $$$$(strip $$$$(e1))' >> $(TMP_DIR)/check.mk
- $(NO_TRACE_MAKE) -f $(TMP_DIR)/check.mk
-endef
-
-$(eval $(call Require,working-make, \
- Your make version is buggy. Please install GNU make v3.81 or later. \
-))
-
-define Require/working-gcc
- echo 'int main(int argc, char **argv) { return 0; }' | \
- gcc -x c -o $(TMP_DIR)/a.out -
-endef
-
-$(eval $(call Require,working-gcc, \
- No working GNU C Compiler (gcc) was found on your system. \
-))
-
-define Require/working-g++
- echo 'int main(int argc, char **argv) { return 0; }' | \
- g++ -x c++ -o $(TMP_DIR)/a.out -lstdc++ -
-endef
-
-$(eval $(call Require,working-g++, \
- No working GNU C++ Compiler (g++) was found on your system. \
-))
-
-define Require/ncurses
- echo 'int main(int argc, char **argv) { initscr(); return 0; }' | \
- gcc -include ncurses.h -x c -o $(TMP_DIR)/a.out -lncurses -
-endef
-
-$(eval $(call Require,ncurses, \
- No ncurses development files were not found on your system. \
-))
-
-
-define Require/zlib
- echo 'int main(int argc, char **argv) { gzdopen(0, "rb"); return 0; }' | \
- gcc -include zlib.h -x c -o $(TMP_DIR)/a.out -lz -
-endef
-
-$(eval $(call Require,zlib, \
- No zlib development files were not found on your system. \
-))
-
-
-$(eval $(call RequireCommand,bison, \
- Please install GNU bison. \
-))
-
-$(eval $(call RequireCommand,flex, \
- Please install flex. \
-))
-
-$(eval $(call RequireCommand,python, \
- Please install python. \
-))
-
-$(eval $(call RequireCommand,unzip, \
- Please install unzip. \
-))
-
-$(eval $(call RequireCommand,bzip2, \
- Please install bzip2. \
-))
-
-$(eval $(call RequireCommand,patch, \
- Please install patch. \
-))
-
-$(eval $(call RequireCommand,perl, \
- Please install perl. \
-))