summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile117
1 files changed, 117 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..e302c2b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,117 @@
+#
+# Copyright (c) 2000, 2001 Dmitry Butskoy
+# <dmitry@butskoy.name>
+# License: GPL v2 or any later
+#
+# See COPYING for the status of this software.
+#
+
+#
+# Global Makefile.
+# Global rules, targets etc.
+#
+# See Make.defines for specific configs.
+#
+
+
+srcdir = $(CURDIR)
+
+override TARGET := .MAIN
+
+dummy: all
+
+include ./Make.rules
+
+
+targets = $(EXEDIRS) $(LIBDIRS) $(MODDIRS)
+
+
+# be happy, easy, perfomancy...
+.PHONY: $(subdirs) dummy all force
+.PHONY: depend indent clean distclean libclean release store libs mods
+
+
+allprereq := $(EXEDIRS)
+
+ifneq ($(LIBDIRS),)
+libs: $(LIBDIRS)
+ifneq ($(EXEDIRS),)
+$(EXEDIRS): libs
+else
+allprereq += libs
+endif
+endif
+
+ifneq ($(MODDIRS),)
+mods: $(MODDIRS)
+ifneq ($(MODUSERS),)
+$(MODUSERS): mods
+else
+allprereq += mods
+endif
+ifneq ($(LIBDIRS),)
+$(MODDIRS): libs
+endif
+endif
+
+all: $(allprereq)
+
+depend install: $(allprereq)
+
+$(foreach goal,$(filter install-%,$(MAKECMDGOALS)),\
+ $(eval $(goal): $(patsubst install-%,%,$(goal))))
+
+
+what = all
+depend: what = depend
+install install-%: what = install
+
+ifneq ($(share),)
+$(share): shared = yes
+endif
+ifneq ($(noshare),)
+$(noshare): shared =
+endif
+
+
+$(targets): mkfile = $(if $(wildcard $@/Makefile),,-f $(srcdir)/default.rules)
+
+$(targets): force
+ @$(MAKE) $(mkfile) -C $@ $(what) TARGET=$@
+
+force:
+
+
+indent:
+ find . -type f -name "*.[ch]" -print -exec $(INDENT) {} \;
+
+clean:
+ rm -f $(foreach exe, $(EXEDIRS), ./$(exe)/$(exe)) nohup.out
+ rm -f `find . \( -name "*.[oa]" -o -name "*.[ls]o" \
+ -o -name core -o -name "core.[0-9]*" -o -name a.out \) -print`
+
+distclean: clean
+ rm -f `find $(foreach dir, $(subdirs), $(dir)/.) \
+ \( -name "*.[oa]" -o -name "*.[ls]o" \
+ -o -name core -o -name "core.[0-9]*" -o -name a.out \
+ -o -name .depend -o -name "_*" -o -name ".cross:*" \) \
+ -print`
+
+
+libclean:
+ rm -f $(foreach lib, $(LIBDIRS), ./$(lib)/$(lib).a ./$(lib)/$(lib).so)
+
+
+# Rules to make whole-distributive operations.
+#
+
+STORE_DIR = $(HOME)/pub
+
+release release1 release2 release3:
+ @./chvers.sh $@
+ @$(MAKE) store
+
+store: distclean
+ @./store.sh $(NAME) $(STORE_DIR)
+
+