summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c460163)
raw | patch | inline | side by side (parent: c460163)
author | Sebastian Harl <sh@tokkee.org> | |
Sat, 28 Jun 2014 08:07:55 +0000 (10:07 +0200) | ||
committer | Sebastian Harl <sh@tokkee.org> | |
Sat, 28 Jun 2014 08:07:55 +0000 (10:07 +0200) |
configure.ac | patch | blob | history | |
src/Makefile.am | patch | blob | history |
diff --git a/configure.ac b/configure.ac
index 5f778027b601b44d25473a1bae31d88c24db816a..b94b2a0e0fca679d3f55f697649f177d39e64e51 100644 (file)
--- a/configure.ac
+++ b/configure.ac
AC_SUBST([COVERAGE_CFLAGS])
AC_SUBST([COVERAGE_LDFLAGS])
+AC_ARG_ENABLE([gprof],
+ AS_HELP_STRING([--enable-gprof],
+ [Gprof profiling @<:@default=no@:>@]),
+ [enable_gprof="$enableval"],
+ [enable_gprof="no"])
+
+PROFILING_CFLAGS=""
+PROFILING_LDFLAGS=""
+if test "x$enable_gprof" = "xyes"; then
+ PROFILING_CFLAGS="-O0"
+ profiling_flag_have_problem="no"
+
+ AC_MSG_CHECKING([whether $CC accepts -pg])
+ if test_cc_flags -pg; then
+ PROFILING_CFLAGS="$PROFILING_CFLAGS -pg"
+ PROFILING_LDFLAGS="$PROFILING_LDFLAGS -pg"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ profiling_flag_have_problem="yes"
+ fi
+
+ for flag in -fprofile-arcs; do
+ AC_MSG_CHECKING([whether $CC accepts $flag])
+ if test_cc_flags $flag; then
+ PROFILING_CFLAGS="$PROFILING_CFLAGS $flag"
+ AC_MSG_RESULT([yes])
+ fi
+ # else: this is not a serious problem
+ done
+
+ if test "x$profiling_flag_have_problem" != "xno"; then
+ AC_MSG_WARN([Some profiling flags are not supported by your compiler!])
+ fi
+fi
+AC_SUBST([PROFILING_CFLAGS])
+AC_SUBST([PROFILING_LDFLAGS])
+
m4_divert_once([HELP_ENABLE], [
Build dependencies:])
AC_MSG_RESULT([ stdio mocking: . . . . . $have_fopencookie])
AC_MSG_RESULT([ coverage testing: . . . . . $enable_gcov])
AC_MSG_RESULT([ integration testing: . . . $integration_tests])
+AC_MSG_RESULT([ profiling: . . . . . . . . $enable_gprof])
AC_MSG_RESULT()
AC_MSG_RESULT([ Libraries:])
AC_MSG_RESULT([ libdbi: . . . . . . . . . . $with_libdbi])
diff --git a/src/Makefile.am b/src/Makefile.am
index d851492580b9d4620b272e2a76d96254a8936cf4..686827b5a470ca2a8f5af18cd39c3832219f928e 100644 (file)
--- a/src/Makefile.am
+++ b/src/Makefile.am
SUBDIRS = liboconfig
# coverage related flags are only set when gcov is enabled
-AM_CFLAGS = @STRICT_CFLAGS@ @COVERAGE_CFLAGS@
-AM_LDFLAGS = @COVERAGE_LDFLAGS@
+AM_CFLAGS = @STRICT_CFLAGS@ @COVERAGE_CFLAGS@ @PROFILING_CFLAGS@
+AM_LDFLAGS = @COVERAGE_LDFLAGS@ @PROFILING_LDFLAGS@
AM_CPPFLAGS = -I"${top_srcdir}/src/include"
AM_CPPFLAGS += -DSYSCONFDIR='"${sysconfdir}"'
AM_CPPFLAGS += -DLOCALSTATEDIR='"${localstatedir}"'
noinst_LTLIBRARIES += libsysdb_fe_parser.la
libsysdb_fe_parser_la_SOURCES = \
frontend/grammar.y frontend/scanner.l
-libsysdb_fe_parser_la_CFLAGS = -DBUILD_DATE="\"$$( date --utc '+%F %T' ) (UTC)\""
+libsysdb_fe_parser_la_CFLAGS = @COVERAGE_CFLAGS@ @PROFILING_CFLAGS@ \
+ -DBUILD_DATE="\"$$( date --utc '+%F %T' ) (UTC)\""
libsysdb_la_SOURCES = \
sysdb.c include/sysdb.h \
core/object.c include/core/object.h \
# don't use strict CFLAGS for flex code
noinst_LTLIBRARIES += libsysdb_scanner.la
libsysdb_scanner_la_SOURCES = tools/sysdb/scanner.l
-libsysdb_scanner_la_CFLAGS = -DBUILD_DATE="\"$$( date --utc '+%F %T' ) (UTC)\""
+libsysdb_scanner_la_CFLAGS = @COVERAGE_CFLAGS@ @PROFILING_CFLAGS@ \
+ -DBUILD_DATE="\"$$( date --utc '+%F %T' ) (UTC)\""
sysdb_SOURCES = tools/sysdb/main.c include/client/sysdb.h \
tools/sysdb/command.c tools/sysdb/command.h \
tools/sysdb/input.c tools/sysdb/input.h \