diff --git a/build/make/configure.sh b/build/make/configure.sh
index e787c5d2c591afe2376f97344db2a9537f0e206a..e4a3da6b6b2d2445b2f977f4f18501e5d05d091d 100755
--- a/build/make/configure.sh
+++ b/build/make/configure.sh
@@ -880,9 +880,9 @@ process_common_toolchain() {
     enabled gcov &&
         check_add_cflags -fprofile-arcs -ftest-coverage &&
         check_add_ldflags -fprofile-arcs -ftest-coverage
-    enabled optimizations && check_add_cflags -O3
-    if enabled rvct; then
-        enabled optimizations && check_add_cflags -Otime
+    if enabled optimizations; then
+        enabled rvct && check_add_cflags -Otime
+        enabled small && check_add_cflags -O2 || check_add_cflags -O3
     fi
 
     # Position Independant Code (PIC) support, for building relocatable
diff --git a/configure b/configure
index 33ab74ad1f0317167576a798fa41e078bfe5cd94..b3cd0c72b8dbd736c4daa0ed5414ac062f1d7eda 100755
--- a/configure
+++ b/configure
@@ -38,6 +38,7 @@ Advanced options:
   ${toggle_realtime_only}         enable this option while building for real-time encoding
   ${toggle_runtime_cpu_detect}    runtime cpu detection
   ${toggle_shared}                shared library support
+  ${toggle_small}                 favor smaller size over speed
   ${toggle_arm_asm_detok}         assembly version of the detokenizer (ARM platforms only)
 
 Codecs:
@@ -244,6 +245,7 @@ CONFIG_LIST="
     spatial_resampling
     realtime_only
     shared
+    small
     arm_asm_detok
 "
 CMDLINE_SELECT="
@@ -281,6 +283,7 @@ CMDLINE_SELECT="
     spatial_resampling
     realtime_only
     shared
+    small
     arm_asm_detok
 "