]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/mk-test.awk
ncurses 5.6
[ncurses.git] / test / mk-test.awk
diff --git a/test/mk-test.awk b/test/mk-test.awk
new file mode 100644 (file)
index 0000000..a89c150
--- /dev/null
@@ -0,0 +1,105 @@
+# $Id: mk-test.awk,v 1.4 2006/10/21 22:56:50 tom Exp $
+##############################################################################
+# Copyright (c) 2006 Free Software Foundation, Inc.                          #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+#
+# Author: Thomas E. Dickey
+#
+# generate Makefile for ncurses tests.
+BEGIN  {
+               first = 1;
+               count = 0;
+       }
+!/^#/  {
+               if (first) {
+                       print "# generated by mk-test.awk\n";
+                       first = 0;
+               }
+               progs[count] = $1;
+               flags[count] = $2;
+               using[count] = $3;
+               files[count] = "";
+               for (n = 4; n <= NF; ++n) {
+                       files[count] = sprintf("%s $(MODEL)/%s$o", files[count], $n);
+               }
+               count = count + 1;
+       }
+END    {
+       for (n = 0; n < count; ++n) {
+               if (n == 0) {
+                       printf "TESTS\t= ";
+               } else {
+                       printf "\t  ";
+               }
+               printf "$(destdir)%s$x", progs[n];
+               if (n < count - 1) {
+                       printf " \\";
+               }
+               print "";
+       }
+       print   ""
+       print   "all: $(TESTS)"
+       print   ""
+       print   "sources:"
+       print   ""
+       print   "tags:"
+       print   "       ctags *.[ch]"
+       print   ""
+       print   "libs \\"
+       print   "install \\"
+       print   "install.libs \\"
+       print   "install.test:"
+       print   ""
+       print   "uninstall:"
+       print   "uninstall.libs:"
+       print   "uninstall.test:"
+       print   ""
+       print   "mostlyclean ::"
+       print   "       -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace"
+       print   ""
+       print   "clean :: mostlyclean"
+       print   "       -sh -c \"if test -n '$x' ; then $(MAKE) clean x=''; fi\""
+       print   "       -rm -rf *$o screendump *.lis $(TESTS) .libs"
+       print   ""
+       print   "distclean :: clean"
+       print   "       -rm -f Makefile ncurses_cfg.h config.*"
+       print   ""
+       print   "realclean :: distclean"
+       print   ""
+       print   "lint:"
+       print   "       sh -c 'for N in $(TESTS); do echo LINT:$$N; $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/$$N.c $(LINT_LIBS); done'"
+
+       if (ECHO_LINK != "") {
+               ECHO_LINK="@ echo linking $@ ... ;"
+       }
+       for (n = 0; n < count; ++n) {
+               print "";
+               printf "$(destdir)%s$x:%s %s\n", progs[n], files[n], using[n];
+               printf "\t%s$(LINK) -o $@%s %s\n", ECHO_LINK, files[n], flags[n];
+       }
+
+       }