0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-01 17:48:56 +02:00

configure: Add --enable-compact for the smallest possible building and linking.

This commit is contained in:
Jason Volk 2019-06-06 05:14:32 -07:00
parent 143e4bda7b
commit 2b43a5a92b
4 changed files with 42 additions and 10 deletions

View file

@ -155,6 +155,22 @@ AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Enable debugging suite fo
AM_CONDITIONAL([DEBUG], [[[[ "$DEBUG" = "1" ]]]]) AM_CONDITIONAL([DEBUG], [[[[ "$DEBUG" = "1" ]]]])
dnl
dnl Compactness
dnl
AC_MSG_CHECKING(Optimize for size; strip symbols; force no debugging)
AC_ARG_ENABLE(compact, AC_HELP_STRING([--enable-compact], [Optimize for size and compactness]),
[
AC_MSG_RESULT([yes])
AC_SUBST(COMPACT, 1)
RB_DEFINE_UNQUOTED([COMPACT], [1], [Not configured for compactness when lit.])
], [
AC_MSG_RESULT([no])
])
AM_CONDITIONAL([COMPACT], [[[[ "$COMPACT" = "1" ]]]])
dnl dnl
dnl Explicit assert switch for still using assert() without --enable-debug dnl Explicit assert switch for still using assert() without --enable-debug
dnl dnl
@ -267,10 +283,18 @@ AC_ARG_WITH(optimize-level, AC_HELP_STRING([--with-optimize-level[[[=3]]]], [Exp
], [ ], [
AM_COND_IF(OPTIMIZE, AM_COND_IF(OPTIMIZE,
[ [
optimize_level="3" AM_COND_IF(COMPACT,
AC_MSG_RESULT([no, but --enable-optimize has implied level -O$optimize_level]) [
AC_SUBST(OPTIMIZE_LEVEL, $optimize_level) optimize_level="s"
RB_DEFINE_UNQUOTED([OPTIMIZE_LEVEL], [$optimize_level], [Explicitly set release mode optimization]) AC_MSG_RESULT([no, but --enable-optimize and --enable-compact means -O$optimize_level])
AC_SUBST(OPTIMIZE_LEVEL, $optimize_level)
RB_DEFINE_UNQUOTED([OPTIMIZE_LEVEL], [$optimize_level], [Implicitly set release mode optimization])
], [
optimize_level="3"
AC_MSG_RESULT([no, but --enable-optimize has implied level -O$optimize_level])
AC_SUBST(OPTIMIZE_LEVEL, $optimize_level)
RB_DEFINE_UNQUOTED([OPTIMIZE_LEVEL], [$optimize_level], [Explicitly set release mode optimization])
])
], [ ], [
AM_COND_IF(DEBUG, AM_COND_IF(DEBUG,
[ [
@ -501,9 +525,14 @@ AM_COND_IF([DEBUG],
CXXFLAGS+=" -fvar-tracking" CXXFLAGS+=" -fvar-tracking"
CXXFLAGS+=" -fvar-tracking-assignments" CXXFLAGS+=" -fvar-tracking-assignments"
], [ ], [
dnl Note these flags are unreliable with LTO AM_COND_IF([COMPACT],
CXXFLAGS+=" -g" [
CXXFLAGS+=" -ggdb"
], [
dnl Note these flags are unreliable with LTO
CXXFLAGS+=" -g"
CXXFLAGS+=" -ggdb"
])
]) ])
dnl Creates an ELF section in the output which contains a list of dnl Creates an ELF section in the output which contains a list of
@ -1625,6 +1654,12 @@ AC_SUBST(EXTRA_CXXFLAGS)
AC_SUBST(EXTRA_LDFLAGS) AC_SUBST(EXTRA_LDFLAGS)
AC_SUBST(EXTRA_LIBS) AC_SUBST(EXTRA_LIBS)
AM_COND_IF([COMPACT],
[
EXTRA_LDFLAGS+=" -Wl,--strip-all"
EXTRA_LDFLAGS+=" -Wl,--gc-sections"
])
AM_COND_IF([MINGW], AM_COND_IF([MINGW],
[ [

View file

@ -28,7 +28,6 @@ AM_LDFLAGS = \
-Wl,--detect-odr-violations \ -Wl,--detect-odr-violations \
-Wl,--unresolved-symbols=report-all \ -Wl,--unresolved-symbols=report-all \
-Wl,--allow-shlib-undefined \ -Wl,--allow-shlib-undefined \
-Wl,--gc-sections \
-Wl,--dynamic-list-data \ -Wl,--dynamic-list-data \
-Wl,--dynamic-list-cpp-new\ -Wl,--dynamic-list-cpp-new\
-Wl,--dynamic-list-cpp-typeinfo \ -Wl,--dynamic-list-cpp-typeinfo \

View file

@ -40,7 +40,6 @@ AM_LDFLAGS = \
-Wl,--unresolved-symbols=report-all \ -Wl,--unresolved-symbols=report-all \
-Wl,--no-undefined-version \ -Wl,--no-undefined-version \
-Wl,--weak-unresolved-symbols \ -Wl,--weak-unresolved-symbols \
-Wl,--no-gc-sections \
-Wl,--icf=all \ -Wl,--icf=all \
-Wl,--rosegment \ -Wl,--rosegment \
-Wl,--gdb-index \ -Wl,--gdb-index \

View file

@ -38,7 +38,6 @@ AM_LDFLAGS = \
-Wl,--warn-execstack \ -Wl,--warn-execstack \
-Wl,--detect-odr-violations \ -Wl,--detect-odr-violations \
-Wl,--allow-shlib-undefined \ -Wl,--allow-shlib-undefined \
-Wl,--gc-sections \
-Wl,--icf=all \ -Wl,--icf=all \
-Wl,--gdb-index \ -Wl,--gdb-index \
-Wl,-z,lazy \ -Wl,-z,lazy \