diff --git a/Build b/Build
new file mode 100755
index 0000000000000000000000000000000000000000..e0ccd64c857c20bd41a9311085a530496656697e
--- /dev/null
+++ b/Build
@@ -0,0 +1,3 @@
+#!/bin/sh
+make TOPDIR=`pwd` depend
+make TOPDIR=`pwd`
diff --git a/scripts/sub-binaries.make b/scripts/sub-binaries.make
new file mode 100644
index 0000000000000000000000000000000000000000..059bfdb1d7ef54befaf962d5582ad4574324b2ab
--- /dev/null
+++ b/scripts/sub-binaries.make
@@ -0,0 +1,8 @@
+.PHONY: binaries
+binaries:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		[ -d $$i ] && { echo making binaries in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) binaries) }	\
+	done
+
diff --git a/scripts/sub-clean.make b/scripts/sub-clean.make
new file mode 100644
index 0000000000000000000000000000000000000000..d23afa8d44bc18ed865914a29241408f2b2b7b2e
--- /dev/null
+++ b/scripts/sub-clean.make
@@ -0,0 +1,8 @@
+.PHONY: clean
+clean:
+	$(RM) $(GENERIC-CLEAN)
+	for i in $(SUBDIRS); \
+	do \
+	   [ -d $$i ] && { echo making clean in directory $$i; \
+	   (cd $$i; $(MAKE) $(EXPORTS) clean) } \
+	done
diff --git a/scripts/sub-depend.make b/scripts/sub-depend.make
new file mode 100644
index 0000000000000000000000000000000000000000..c2a7a2f4035b55b18edf5f7f909926556f7b181e
--- /dev/null
+++ b/scripts/sub-depend.make
@@ -0,0 +1,12 @@
+dependencies:
+	touch dependencies
+
+.PHONY: depend
+depend:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		[ -d $$i ] && { echo making depend in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) depend) }	\
+	done
+# No trailing blank line, so that this rule can be continued in
+# the calling file. See src/komutils/Makefile for example.
\ No newline at end of file
diff --git a/scripts/sub-includes.make b/scripts/sub-includes.make
new file mode 100644
index 0000000000000000000000000000000000000000..b701bbfcf132186e7d6fc9b290a2bae39ad28dc8
--- /dev/null
+++ b/scripts/sub-includes.make
@@ -0,0 +1,7 @@
+.PHONY: includes
+includes:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		[ -d $$i ] && { (echo making includes in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) includes) }	\
+	done
diff --git a/scripts/sub-install.make b/scripts/sub-install.make
new file mode 100644
index 0000000000000000000000000000000000000000..452447eac17efb755265ef99832b2ce2b48905bb
--- /dev/null
+++ b/scripts/sub-install.make
@@ -0,0 +1,7 @@
+.PHONY: install
+install:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		[ -d $$i ] && { echo making install in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) install) }	\
+	done
diff --git a/scripts/sub-libraries.make b/scripts/sub-libraries.make
new file mode 100644
index 0000000000000000000000000000000000000000..46e80dd89f42cdf381a319ec5b747944e636a325
--- /dev/null
+++ b/scripts/sub-libraries.make
@@ -0,0 +1,7 @@
+.PHONY: libraries
+libraries:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		[ -d $$i ] && { echo making libraries in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) libraries) }	\
+	done