summaryrefslogtreecommitdiffstats
path: root/include/prereq-build.mk
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/prereq-build.mk
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/prereq-build.mk')
-rw-r--r--include/prereq-build.mk88
1 files changed, 88 insertions, 0 deletions
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. \
+))