Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ AC_INIT([libmodbus],
AC_CONFIG_SRCDIR([src/modbus.c])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([check-news foreign 1.11 silent-rules tar-pax subdir-objects])

# Check if user provided CFLAGS before AC_PROG_CC sets defaults
user_set_cflags="${CFLAGS+set}"

AC_PROG_CC
AC_USE_SYSTEM_EXTENSIONS
AC_SYS_LARGEFILE
Expand Down Expand Up @@ -178,13 +182,18 @@ AC_ARG_ENABLE([debug],
[enable_debug=$enableval],
[enable_debug=no])

# Set project-specific optimization flags based on debug mode.
# These are added via AM_CFLAGS in Makefile.am, preserving user's CFLAGS.
AS_IF([test "x$enable_debug" = "xyes"], [
CFLAGS="-g -O0"
CXXFLAGS="-g -O0"
LIBMODBUSCFLAGS="-g -O0"
# Clear AC_PROG_CC's default -O2 so debug mode works, unless user set CFLAGS
AS_IF([test "x$user_set_cflags" != "xset"], [
CFLAGS="-g"
])
], [
CFLAGS="-O2"
CXXFLAGS="-O2"
LIBMODBUSCFLAGS="-O2"
])
AC_SUBST([LIBMODBUSCFLAGS])

AC_OUTPUT
AC_MSG_RESULT([
Expand All @@ -197,7 +206,7 @@ AC_MSG_RESULT([
includedir: ${includedir}

compiler: ${CC}
cflags: ${CFLAGS} ${WARNING_CFLAGS}
cflags: ${LIBMODBUSCFLAGS} ${WARNING_CFLAGS} ${CFLAGS}
ldflags: ${LDFLAGS}

tests: ${enable_tests}
Expand Down
2 changes: 1 addition & 1 deletion src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ AM_CPPFLAGS = \
-DLIBEXECDIR=\""$(libexecdir)"\" \
-I${top_srcdir}/src

AM_CFLAGS = ${WARNING_CFLAGS}
AM_CFLAGS = $(LIBMODBUSCFLAGS) $(WARNING_CFLAGS)

libmodbus_la_SOURCES = \
modbus.c \
Expand Down
2 changes: 1 addition & 1 deletion tests/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ AM_CPPFLAGS = \
-I${top_srcdir}/src \
-I${top_builddir}/src

AM_CFLAGS = ${WARNING_CFLAGS}
AM_CFLAGS = $(LIBMODBUSCFLAGS) $(WARNING_CFLAGS)

CLEANFILES = *~ *.log

Expand Down