diff mk/prog.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/prog.mk	Sat Dec 22 17:52:45 2007 -0500
@@ -0,0 +1,58 @@
+#
+# prog.mk - compile a program, in portable make.
+#
+# Before including, set:
+#    PROG                        program to build
+#    SRCS                        sources
+#    RCFILES (optional)          Windows resource files
+#    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: none
+
+all: beforeall doall afterall
+beforeall doall afterall:;
+
+# BSD make has .WAIT to make beforeall/afterall work, but gmake doesn't.
+.NOTPARALLEL:
+
+doall: $(PROG)$(EXEEXT)
+TYPE=PROG
+
+include rules.mk
+include depend.mk
+
+$(PROG)$(EXEEXT): $(OBJS) $(RESFILES) $(MYLIBS)
+	@echo '        [DEP]'
+	@$(MKDEP)
+	@echo '        [LINK]    $@'
+	@$(LDCC) $(LDFLAGS) $(OBJS) $(RESFILES) $(MYLIBS) $(LIBS) -o $@
+
+rules:
+	@$(TOP)/mk/include-defs.sh '$(INCDIRS)' > rules.mk
+	@$(TOP)/mk/compile-rules.sh '$(SRCS)' '$(RCFILES)' >> rules.mk
+	@$(TOP)/mk/agfile-rules.sh $(AGFILEDEST) '$(SYNS)' '$(SYNOUTPUTEXT)' \
+	    >> rules.mk
+#	@echo '        [RULES]'
+
+depend:
+	@echo '        [DEP]'
+	@$(MKDEP)
+
+clean:
+	@echo '        [RM]      $(PROG)$(EXEEXT) $(CLEANFILES) *~'
+	@rm -f $(PROG)$(EXEEXT) $(CLEANFILES) *~
+
+distclean: clean
+	@echo '        [RM]      $(DISTCLEANFILES) *~'
+	@rm -f $(DISTCLEANFILES) *~
+
+.PHONY: all rules depend clean distclean