From: Subrata <sub...@us...> - 2007-12-26 11:11:58
|
Update of /cvsroot/ltp/ltp/testcases/realtime/func/sched_jitter In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv18188/ltp/testcases/realtime/func/sched_jitter Added Files: GNUmakefile.am GNUmakefile.in README run_auto.sh sched_jitter.c Log Message: Initial Set of Real Time Linux Test Cases, by Nivedita Singhvi <ni...@us...> & sudhanshu Singh <sud...@in...> --- NEW FILE: README --- Test: sched_jitter =================== This test measures scheduling jitter w/ realtime processes. It spawns a realtime thread that repeatedly times how long it takes to do a fixed amount of work. It then prints out the maximum jitter seen (longest execution time - the shortest execution time). It also spawns off a realtime thread of higher priority that simply wakes up and goes back to sleep. This tries to measure how much overhead the scheduler adds in switching quickly to another task and back. --- NEW FILE: sched_jitter.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 * sched_jitter.c * * DESCRIPTION * This test measures scheduling jitter w/ realtime processes. * * It spawns a realtime thread that repeatedly times how long it takes to do a * fixed amount of work. It then prints out the maximum jitter seen (longest * execution time - the shortest execution time). * It also spawns off a realtime thread of higher priority that simply wakes up * and goes back to sleep. This tries to measure how much overhead the scheduler * adds in switching quickly to another task and back. * * USAGE: * Use run_auto.sh script in current directory to build and run test. * Use "-j" to enable jvm simulator. * * AUTHOR * John Stultz <joh...@us...> * * HISTORY * 2006-May-05: Initial version by John Stultz <joh...@us...> * 2007-July-18: Support to gather stats by Ankita Garg <an...@in...> * *****************************************************************************/ #include <stdio.h> #include <time.h> #include <pthread.h> #include <sched.h> #include <unistd.h> #include <libstats.h> #include <librttest.h> #include <libjvmsim.h> #define NUMRUNS 1000 #define NUMLOOPS 1000000 #define NSEC_PER_SEC 1000000000 #define WORKLEN 64 #define ISLEEP 50000 int array[WORKLEN]; volatile int flag; /*let interrupter know we're done */ static int run_jvmsim=0; void usage(void) { rt_help(); printf("sched_jitter specific options:\n"); printf(" -j enable jvmsim\n"); } int parse_args(int c, char *v) { int handled = 1; switch (c) { case 'j': run_jvmsim = 1; break; case 'h': usage(); exit(0); default: handled = 0; break; } return handled; } unsigned long long ts_sub(struct timespec a , struct timespec b) { unsigned long long first, second; first = (unsigned long long)a.tv_sec * NSEC_PER_SEC + a.tv_nsec; second = (unsigned long long)b.tv_sec * NSEC_PER_SEC + b.tv_nsec; return first - second; } void print_unit(unsigned long long val) { if (val > 1000000) printf("%f ms\n", (float)(val)/1000000); else if (val > 1000) printf("%f us\n", (float)(val)/1000); else printf("%f ns\n", (float)val); } void do_work(int runs) { int i, j; for (i=0; i < runs; i++) { for (j=0; j < WORKLEN-1; j++) array[j] = array[j]+array[j+1]; for (j=0; j < WORKLEN-1; j++) array[j] = array[j]-array[j+1]; } } void *thread_worker(void* arg) { struct timespec start, stop; int i; unsigned long long delta; unsigned long long min=-1, max=0; stats_container_t dat; stats_container_init(&dat, NUMRUNS); for (i=0; i < NUMRUNS; i++) { do_work(1); /* warm cache */ /* do test */ clock_gettime(CLOCK_MONOTONIC, &start); do_work(NUMLOOPS); clock_gettime(CLOCK_MONOTONIC, &stop); /* calc delta, min and max */ delta = ts_sub(stop, start); if (delta < min) min = delta; if (delta> max) max = delta; dat.records[i].x = i; dat.records[i].y = delta; printf("delta: %llu ns\n", delta); usleep(1); /* let other things happen */ } printf("max jitter: "); print_unit(max - min); stats_container_save("samples", "Scheduling Jitter Scatter Plot",\ "Iteration", "Delay (ns)", &dat, "points"); return NULL; } void *thread_interrupter(void* arg) { while (!flag) usleep(ISLEEP); return NULL; } void create_thread_(pthread_t *thread, void*(*func)(void*), int prio) { pthread_attr_t attr; struct sched_param param; param.sched_priority = sched_get_priority_min(SCHED_FIFO) + prio; pthread_attr_init(&attr); pthread_attr_setinheritsched (&attr, PTHREAD_EXPLICIT_SCHED); pthread_attr_setschedparam(&attr, ¶m); pthread_attr_setschedpolicy(&attr, SCHED_FIFO); if (pthread_create(thread, &attr, func, (void *)0)) { perror("pthread_create failed"); } pthread_attr_destroy(&attr); } int main(int argc, char *argv[]) { pthread_t worker, interrupter; setup(); rt_init("jh",parse_args,argc,argv); if (run_jvmsim) { printf("jvmsim enabled\n"); jvmsim_init(); // Start the JVM simulation } else { printf("jvmsim disabled\n"); } create_thread_(&interrupter, thread_interrupter, 80); sleep(1); create_thread_(&worker, thread_worker, 10); pthread_join(worker, NULL); flag = 1; pthread_join(interrupter, NULL); return 0; } --- NEW FILE: GNUmakefile.am --- bin_PROGRAMS = sched_jitter AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ -I$(DESTDIR)/usr/include/nptl \ -D_GNU_SOURCE sched_jitter_CFLAGS = \ -O2 LDADD = \ $(top_builddir)/lib/librttest.a \ $(top_builddir)/lib/libjvmsim.a \ $(top_builddir)/lib/libstats.a sched_jitter_LDFLAGS = \ -L/usr/lib/nptl \ -lpthread \ -lrt \ -lm MAINTAINERCLEANFILES = \ GNUmakefile.in --- 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@ bin_PROGRAMS = sched_jitter$(EXEEXT) subdir = func/sched_jitter DIST_COMMON = README $(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) sched_jitter_SOURCES = sched_jitter.c sched_jitter_OBJECTS = sched_jitter-sched_jitter.$(OBJEXT) sched_jitter_LDADD = $(LDADD) sched_jitter_DEPENDENCIES = $(top_builddir)/lib/librttest.a \ $(top_builddir)/lib/libjvmsim.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 = sched_jitter.c DIST_SOURCES = sched_jitter.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 \ -D_GNU_SOURCE sched_jitter_CFLAGS = \ -O2 LDADD = \ $(top_builddir)/lib/librttest.a \ $(top_builddir)/lib/libjvmsim.a \ $(top_builddir)/lib/libstats.a sched_jitter_LDFLAGS = \ -L/usr/lib/nptl \ -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/sched_jitter/GNUmakefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign func/sched_jitter/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) sched_jitter$(EXEEXT): $(sched_jitter_OBJECTS) $(sched_jitter_DEPENDENCIES) @rm -f sched_jitter$(EXEEXT) $(LINK) $(sched_jitter_LDFLAGS) $(sched_jitter_OBJECTS) $(sched_jitter_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_jitter-sched_jitter.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) '$<'` sched_jitter-sched_jitter.o: sched_jitter.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sched_jitter_CFLAGS) $(CFLAGS) -MT sched_jitter-sched_jitter.o -MD -MP -MF "$(DEPDIR)/sched_jitter-sched_jitter.Tpo" -c -o sched_jitter-sched_jitter.o `test -f 'sched_jitter.c' || echo '$(srcdir)/'`sched_jitter.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/sched_jitter-sched_jitter.Tpo" "$(DEPDIR)/sched_jitter-sched_jitter.Po"; else rm -f "$(DEPDIR)/sched_jitter-sched_jitter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sched_jitter.c' object='sched_jitter-sched_jitter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sched_jitter_CFLAGS) $(CFLAGS) -c -o sched_jitter-sched_jitter.o `test -f 'sched_jitter.c' || echo '$(srcdir)/'`sched_jitter.c sched_jitter-sched_jitter.obj: sched_jitter.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sched_jitter_CFLAGS) $(CFLAGS) -MT sched_jitter-sched_jitter.obj -MD -MP -MF "$(DEPDIR)/sched_jitter-sched_jitter.Tpo" -c -o sched_jitter-sched_jitter.obj `if test -f 'sched_jitter.c'; then $(CYGPATH_W) 'sched_jitter.c'; else $(CYGPATH_W) '$(srcdir)/sched_jitter.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/sched_jitter-sched_jitter.Tpo" "$(DEPDIR)/sched_jitter-sched_jitter.Po"; else rm -f "$(DEPDIR)/sched_jitter-sched_jitter.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sched_jitter.c' object='sched_jitter-sched_jitter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sched_jitter_CFLAGS) $(CFLAGS) -c -o sched_jitter-sched_jitter.obj `if test -f 'sched_jitter.c'; then $(CYGPATH_W) 'sched_jitter.c'; else $(CYGPATH_W) '$(srcdir)/sched_jitter.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: --- 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 "sched_jitter" |