diff mk/progs.mk @ 0:13d2b8934445

Import AnaGram (near-)release tree into Mercurial.
author David A. Holland
date Sat, 22 Dec 2007 17:52:45 -0500
parents
children bb115deb6fb2
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mk/progs.mk	Sat Dec 22 17:52:45 2007 -0500
@@ -0,0 +1,50 @@
+#
+# progs.mk - compile multiple programs, in portable make.
+#
+# Before including, set:
+#    SRCS                        sources of programs to build
+#    SYNS (optional)             AG syntax files
+#    SYNOUTPUTEXT (optional)     output suffix for AG files
+#    AGFILEDEST (optional)       destination for AG files ("here" or "srcdir")
+#
+
+SYNOUTPUTEXT?=.cpp
+AGFILEDEST?=srcdir
+
+include $(BUILDTOP)/config.mk
+
+# beforeall used by: agfile-rules.sh when AGFILEDEST==here
+# afterall used by: nobody
+
+all: beforeall doall afterall
+beforeall doall afterall:;
+
+# BSD make has .WAIT to make beforeall/afterall work, but gmake doesn't.
+.NOTPARALLEL:
+
+TYPE=PROG
+
+include rules.mk
+include depend.mk
+
+rules:
+	@$(TOP)/mk/include-defs.sh '$(INCDIRS)' > rules.mk
+	@$(TOP)/mk/progs-rules.sh '$(SRCS)' >> rules.mk
+	@$(TOP)/mk/compile-rules.sh '$(SRCS)' '' >> rules.mk
+	@$(TOP)/mk/agfile-rules.sh $(AGFILEDEST) '$(SYNS)' '$(SYNOUTPUTEXT)' \
+	    >> rules.mk
+#	@echo '        [RULES]'
+
+depend:
+	@echo '        [DEP]'
+	@$(MKDEP)
+
+clean:
+	@echo '        [RM]      $(CLEANFILES) *~'
+	@rm -f $(PROGS) $(CLEANFILES) *~
+
+distclean: clean
+	@echo '        [RM]      $(DISTCLEANFILES) *~'
+	@rm -f $(DISTCLEANFILES) *~
+
+.PHONY: all rules depend clean distclean