At Thu,  1 Mar 2012 10:20:13 +0800,
Liu Yuan wrote:
> 
> From: Liu Yuan <[email protected]>
> 
> 
> Signed-off-by: Liu Yuan <[email protected]>
> ---
>  configure.ac      |   30 ++++++++++++++++++++++++++++--
>  sheep/Makefile.am |    6 +++++-
>  2 files changed, 33 insertions(+), 3 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index bfad873..7341c70 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -66,6 +66,7 @@ if ! ${MAKE-make} --version /cannot/make/this >/dev/null 
> 2>&1; then
>  fi
>  
>  AC_PROG_CC
> +AM_PROG_AS
>  AC_PROG_INSTALL
>  AC_PROG_LN_S
>  AC_PROG_MAKE_SET
> @@ -202,6 +203,11 @@ AC_ARG_ENABLE([farm],
>       [ enable_farm="yes" ],)
>  AM_CONDITIONAL(BUILD_FARM, test x$enable_farm = xyes)
>  
> +AC_ARG_ENABLE([trace],
> +     [  --enable-trace           : enable trace],,
> +     [ enable_trace="yes" ],)
> +AM_CONDITIONAL(BUILD_TRACE, test x$enable_trace = xyes)
> +

Default should be "no" until the trace code becomes mature.

Thanks,

Kazutaka


>  CP=cp
>  OS_LDL="-ldl"
>  case "$host_os" in
> @@ -272,6 +278,13 @@ if test "x${enable_farm}" = xyes; then
>       PACKAGE_FEATURES="$PACKAGE_FEATURES farm"
>  fi
>  
> +if test "x${enable_trace}" = xyes; then
> +     AC_CHECK_LIB([rt], [clock_gettime],,
> +             AC_MSG_ERROR(librt not found))
> +     AC_DEFINE_UNQUOTED([HAVE_TRACE], 1, [have trace])
> +     PACKAGE_FEATURES="$PACKAGE_FEATURES trace"
> +fi
> +
>  # extra warnings
>  EXTRA_WARNINGS=""
>  
> @@ -325,11 +338,23 @@ else
>       WERROR_CFLAGS=""
>  fi
>  
> +if test "x${enable_trace}" = xyes && \
> +             cc_supports_flag -pg && \
> +             cc_supports_flag -gstabs ; then
> +     AC_MSG_NOTICE([Enabling trace (-pg -gstabs)])
> +     TRACE_CFLAGS="-pg -gstabs"
> +     TRACE_LDFLAGS="-T$(pwd)/sheep/trace/trace.ld"
> +     PACKAGE_FEATURES="$PACKAGE_FEATURES trace"
> +else
> +     TRACE_CFLAGS=""
> +fi
> +
>  # final build of *FLAGS
>  CFLAGS="$ENV_CFLAGS $OPT_CFLAGS $GDB_FLAGS $OS_CFLAGS \
> -     $COVERAGE_CFLAGS $EXTRA_WARNINGS $WERROR_CFLAGS $NSS_CFLAGS 
> -D_GNU_SOURCE"
> +     $TRACE_CFLAGS $COVERAGE_CFLAGS $EXTRA_WARNINGS $WERROR_CFLAGS 
> $NSS_CFLAGS \
> +     -D_GNU_SOURCE"
>  CPPFLAGS="$ENV_CPPFLAGS $ANSI_CPPFLAGS $OS_CPPFLAGS"
> -LDFLAGS="$ENV_LDFLAGS $COVERAGE_LDFLAGS $OS_LDFLAGS"
> +LDFLAGS="$ENV_LDFLAGS $COVERAGE_LDFLAGS $OS_LDFLAGS $TRACE_LDFLAGS"
>  
>  # substitute what we need:
>  AC_SUBST([OS_DYFLAGS])
> @@ -383,6 +408,7 @@ AC_MSG_RESULT([  ANSI defined CPPFLAGS    = 
> ${ANSI_CPPFLAGS}])
>  AC_MSG_RESULT([  Coverage     CFLAGS      = ${COVERAGE_CFLAGS}])
>  AC_MSG_RESULT([  Coverage     LDFLAGS     = ${COVERAGE_LDFLAGS}])
>  AC_MSG_RESULT([  Fatal War.   CFLAGS      = ${WERROR_CFLAGS}])
> +AC_MSG_RESULT([  Trace        CFLAGS      = ${TRACE_CFLAGS}])
>  AC_MSG_RESULT([  Final        CFLAGS      = ${CFLAGS}])
>  AC_MSG_RESULT([  Final        CPPFLAGS    = ${CPPFLAGS}])
>  AC_MSG_RESULT([  Final        LDFLAGS     = ${LDFLAGS}])
> diff --git a/sheep/Makefile.am b/sheep/Makefile.am
> index 279af77..4696f6f 100644
> --- a/sheep/Makefile.am
> +++ b/sheep/Makefile.am
> @@ -40,12 +40,16 @@ if BUILD_FARM
>  sheep_SOURCES                += farm/sha1_file.c farm/trunk.c farm/snap.c 
> farm/farm.c
>  endif
>  
> +if BUILD_TRACE
> +sheep_SOURCES                += trace/trace.c trace/mcount.S trace/stabs.c 
> trace/graph.c
> +endif
> +
>  sheep_LDADD          = ../lib/libsheepdog.a -lpthread \
>                         $(libcpg_LIBS) $(libcfg_LIBS) $(libacrd_LIBS) $(LIBS)
>  sheep_DEPENDENCIES   = ../lib/libsheepdog.a
>  
>  
> -noinst_HEADERS               = work.h sheep_priv.h cluster.h strbuf.h 
> farm/farm.h
> +noinst_HEADERS               = work.h sheep_priv.h cluster.h strbuf.h 
> farm/farm.h trace/trace.h
>  
>  EXTRA_DIST           = 
>  
> -- 
> 1.7.8.2
> 
> -- 
> sheepdog mailing list
> [email protected]
> http://lists.wpkg.org/mailman/listinfo/sheepdog
-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to