From: Subrata <sub...@us...> - 2007-12-26 11:11:58
|
Update of /cvsroot/ltp/ltp/testcases/realtime/func/matrix_mult In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv18188/ltp/testcases/realtime/func/matrix_mult Added Files: GNUmakefile.am GNUmakefile.in matrix_mult.c run_auto.sh Log Message: Initial Set of Real Time Linux Test Cases, by Nivedita Singhvi <ni...@us...> & sudhanshu Singh <sud...@in...> --- NEW FILE: run_auto.sh --- #! /bin/bash if [ ! $SCRIPTS_DIR ]; then # assume we're running standalone export SCRIPTS_DIR=../../scripts/ fi source $SCRIPTS_DIR/setenv.sh $SCRIPTS_DIR/run_c_files.sh "matrix_mult" --- NEW FILE: GNUmakefile.am --- if HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL bin_PROGRAMS = \ matrix_mult endif AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ -I$(DESTDIR)/usr/include/nptl matrix_mult_CPPFLAGS = \ $(AM_CPPFLAGS) \ -D_GNU_SOURCE matrix_mult_CFLAGS = \ -O2 LDADD = \ $(top_builddir)/lib/libjvmsim.a \ $(top_builddir)/lib/librttest.a \ $(top_builddir)/lib/libstats.a matrix_mult_LDFLAGS = \ -lpthread -lrt -lm MAINTAINERCLEANFILES = \ GNUmakefile.in --- NEW FILE: matrix_mult.c --- /****************************************************************************** * * Copyright International Business Machines Corp., 2007 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * NAME * matrix_mult.c * * DESCRIPTION * Compare running sequential matrix multiplication routines * to running them in parallel to judge mutliprocessor * performance * * USAGE: * Use run_auto.sh script in current directory to build and run test. * Use "-j" to enable jvm simulator. * * Compilation : gcc -lrt -lpthread matrix_mult.c * * AUTHOR * Darren Hart <dv...@us...> * * HISTORY * 2007-Mar-9: Initial version by Darren Hart <dv...@us...> * *****************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <librttest.h> #include <libjvmsim.h> #include <libstats.h> #define PRIO 89 #define MATRIX_SIZE 100 #define DEF_OPS_MULTIPLIER 500 /* the higher the number, the more CPU intensive (and therefore SMP performance goes up) */ #define ITERATIONS 100 #define HIST_BUCKETS 100 static int run_jvmsim = 0; static int ops_multiplier = DEF_OPS_MULTIPLIER; static int ops; void usage(void) { rt_help(); printf("matrix_mult specific options:\n"); printf(" -j enable jvmsim\n"); printf(" -l# #: number of multiplications per iteration per cpu (load)\n"); } int parse_args(int c, char *v) { int handled = 1; switch (c) { case 'j': run_jvmsim = 1; break; case 'l': ops_multiplier = atoi(v); break; case 'h': usage(); exit(0); default: handled = 0; break; } return handled; } void matrix_init(float A[MATRIX_SIZE][MATRIX_SIZE], float B[MATRIX_SIZE][MATRIX_SIZE]) { int i, j; for (i = 0; i < MATRIX_SIZE; i++) { for (j = 0; j < MATRIX_SIZE; j++) { A[i][j] = (float)i*j; B[i][j] = (float)((i*j)%10); } } } void matrix_mult(void) { float A[MATRIX_SIZE][MATRIX_SIZE]; float B[MATRIX_SIZE][MATRIX_SIZE]; float C[MATRIX_SIZE][MATRIX_SIZE]; int i, j, k; nsec_t start, end, delta; int ops; matrix_init(A, B); start = rt_gettime(); ops = 0; for (i = 0; i < MATRIX_SIZE; i++) { for (j = 0; j < MATRIX_SIZE; j++) { for (k = 0; k < MATRIX_SIZE; k++) { C[i][j] += A[i][k]*B[k][j]; ops++; } } } end = rt_gettime(); delta = end - start; } /* arg: the number of concurrent threads being run */ void *matrixmult_thread(void *thread) { struct thread *t = (struct thread *)thread; int i; for (i = 0; i < ops/(intptr_t)t->arg; i++) { matrix_mult(); } return NULL; } int main(int argc, char *argv[]) { int i, j; nsec_t start, end; long smin=0, smax=0, cmin=0, cmax=0, delta=0; float savg, cavg; int ret; int numcpus; int criteria; setup(); rt_init("jl:h", parse_args, argc, argv); numcpus = sysconf(_SC_NPROCESSORS_ONLN); criteria = MAX(1, numcpus/2); // the minimum avg concurrent multiplier to pass ops = numcpus * ops_multiplier; int tids[numcpus]; printf("\n---------------------------------------\n"); printf("Matrix Multiplication (SMP Performance)\n"); printf("---------------------------------------\n\n"); printf("Running %d iterations\n", ITERATIONS); printf("Matrix Dimensions: %dx%d\n", MATRIX_SIZE, MATRIX_SIZE); printf("Calculations per iteration: %d\n", ops); printf("Number of CPUs: %u\n", numcpus); if (run_jvmsim) { printf("jvmsim enabled\n"); jvmsim_init(); // Start the JVM simulation } else { printf("jvmsim disabled\n"); } stats_container_t sdat, cdat; stats_container_t shist, chist; stats_container_init(&sdat, ITERATIONS); stats_container_init(&shist, HIST_BUCKETS); stats_container_init(&cdat, ITERATIONS); stats_container_init(&chist, HIST_BUCKETS); // run matrix mult operation sequentially printf("\nSequential:\n"); for (i = 0; i < ITERATIONS; i++) { start = rt_gettime(); tids[0] = create_fifo_thread(matrixmult_thread, (void*)1, PRIO); if (tids[0] == -1) { printf("Thread creation failed (max threads exceeded?)\n"); break; } join_thread(tids[0]); end = rt_gettime(); delta = (long)((end - start)/NS_PER_US); sdat.records[i].x = i; sdat.records[i].y = delta; if (i == 0) smin = smax = delta; else { smin = MIN(smin, delta); smax = MAX(smax, delta); } } savg = stats_avg(&sdat); printf("Min: %ld us\n", smin); printf("Max: %ld us\n", smax); printf("Avg: %.4f us\n", savg); printf("StdDev: %.4f us\n", stats_stddev(&sdat)); stats_hist(&shist, &sdat); stats_container_save("sequential", "Matrix Multiplication Sequential Execution Runtime Scatter Plot",\ "Iteration", "Runtime (us)", &sdat, "points"); stats_container_save("sequential_hist", "Matrix Multiplicatoin Sequential Execution Runtime Histogram",\ "Iteration", "Runtime (us)", &shist, "steps"); // run matrix mult operation concurrently printf("\nConcurrent (%dx):\n", numcpus); for (i = 0; i < ITERATIONS; i++) { start = rt_gettime(); for (j = 0; j < numcpus; j++) { tids[j] = create_fifo_thread(matrixmult_thread, (void*)(intptr_t)numcpus, PRIO); if (tids[j] == -1) { printf("Thread creation failed (max threads exceeded?)\n"); break; } } if (tids[j] == -1) { printf("j=%d\n", j); for (j=0;j<numcpus;j++) printf("tids[%d]=%d\n", j, tids[j]); break; } for (j = 0; j < numcpus; j++) { join_thread(tids[j]); } end = rt_gettime(); delta = (long)((end - start)/NS_PER_US); cdat.records[i].x = i; cdat.records[i].y = delta; if (i == 0) cmin = cmax = delta; else { cmin = MIN(cmin, delta); cmax = MAX(cmax, delta); } } cavg = stats_avg(&cdat); printf("Min: %ld us\n", cmin); printf("Max: %ld us\n", cmax); printf("Avg: %.4f us\n", cavg); printf("StdDev: %.4f us\n", stats_stddev(&cdat)); stats_hist(&chist, &cdat); stats_container_save("concurrent", "Matrix Multiplication Concurrent Execution Runtime Scatter Plot",\ "Iteration", "Runtime (us)", &cdat, "points"); stats_container_save("concurrent_hist", "Matrix Multiplication Concurrent Execution Runtime Histogram",\ "Iteration", "Runtime (us)", &chist, "steps"); printf("\nSeq/Conc Ratios:\n"); printf("Min: %.4f\n", (float)smin/cmin); printf("Max: %.4f\n", (float)smax/cmax); printf("Avg: %.4f\n", (float)savg/cavg); //join_threads(); ret = 1; if (savg > (cavg * criteria)) ret = 0; printf("\nCriteria: %d * average concurrent time < average sequential time\n", criteria); printf("Result: %s\n", ret ? "FAIL" : "PASS"); return ret; } --- NEW FILE: GNUmakefile.in --- # GNUmakefile.in generated by automake 1.9.6 from GNUmakefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL_TRUE@bin_PROGRAMS = \ @HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL_TRUE@ matrix_mult$(EXEEXT) subdir = func/matrix_mult DIST_COMMON = $(srcdir)/GNUmakefile.am $(srcdir)/GNUmakefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/rttests_config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) matrix_mult_SOURCES = matrix_mult.c matrix_mult_OBJECTS = matrix_mult-matrix_mult.$(OBJEXT) matrix_mult_LDADD = $(LDADD) matrix_mult_DEPENDENCIES = $(top_builddir)/lib/libjvmsim.a \ $(top_builddir)/lib/librttest.a $(top_builddir)/lib/libstats.a DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/autoconf/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = matrix_mult.c DIST_SOURCES = matrix_mult.c ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL_FALSE = @HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL_FALSE@ HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL_TRUE = @HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL_TRUE@ HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP_FALSE = @HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP_FALSE@ HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP_TRUE = @HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ -I$(DESTDIR)/usr/include/nptl matrix_mult_CPPFLAGS = \ $(AM_CPPFLAGS) \ -D_GNU_SOURCE matrix_mult_CFLAGS = \ -O2 LDADD = \ $(top_builddir)/lib/libjvmsim.a \ $(top_builddir)/lib/librttest.a \ $(top_builddir)/lib/libstats.a matrix_mult_LDFLAGS = \ -lpthread -lrt -lm MAINTAINERCLEANFILES = \ GNUmakefile.in all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/GNUmakefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/GNUmakefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign func/matrix_mult/GNUmakefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign func/matrix_mult/GNUmakefile .PRECIOUS: GNUmakefile GNUmakefile: $(srcdir)/GNUmakefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) matrix_mult$(EXEEXT): $(matrix_mult_OBJECTS) $(matrix_mult_DEPENDENCIES) @rm -f matrix_mult$(EXEEXT) $(LINK) $(matrix_mult_LDFLAGS) $(matrix_mult_OBJECTS) $(matrix_mult_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrix_mult-matrix_mult.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` matrix_mult-matrix_mult.o: matrix_mult.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(matrix_mult_CPPFLAGS) $(CPPFLAGS) $(matrix_mult_CFLAGS) $(CFLAGS) -MT matrix_mult-matrix_mult.o -MD -MP -MF "$(DEPDIR)/matrix_mult-matrix_mult.Tpo" -c -o matrix_mult-matrix_mult.o `test -f 'matrix_mult.c' || echo '$(srcdir)/'`matrix_mult.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/matrix_mult-matrix_mult.Tpo" "$(DEPDIR)/matrix_mult-matrix_mult.Po"; else rm -f "$(DEPDIR)/matrix_mult-matrix_mult.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matrix_mult.c' object='matrix_mult-matrix_mult.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(matrix_mult_CPPFLAGS) $(CPPFLAGS) $(matrix_mult_CFLAGS) $(CFLAGS) -c -o matrix_mult-matrix_mult.o `test -f 'matrix_mult.c' || echo '$(srcdir)/'`matrix_mult.c matrix_mult-matrix_mult.obj: matrix_mult.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(matrix_mult_CPPFLAGS) $(CPPFLAGS) $(matrix_mult_CFLAGS) $(CFLAGS) -MT matrix_mult-matrix_mult.obj -MD -MP -MF "$(DEPDIR)/matrix_mult-matrix_mult.Tpo" -c -o matrix_mult-matrix_mult.obj `if test -f 'matrix_mult.c'; then $(CYGPATH_W) 'matrix_mult.c'; else $(CYGPATH_W) '$(srcdir)/matrix_mult.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/matrix_mult-matrix_mult.Tpo" "$(DEPDIR)/matrix_mult-matrix_mult.Po"; else rm -f "$(DEPDIR)/matrix_mult-matrix_mult.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matrix_mult.c' object='matrix_mult-matrix_mult.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(matrix_mult_CPPFLAGS) $(CPPFLAGS) $(matrix_mult_CFLAGS) $(CFLAGS) -c -o matrix_mult-matrix_mult.obj `if test -f 'matrix_mult.c'; then $(CYGPATH_W) 'matrix_mult.c'; else $(CYGPATH_W) '$(srcdir)/matrix_mult.c'; fi` uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: GNUmakefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f GNUmakefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f GNUmakefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: |