diff mbox

[FFmpeg-devel] configure: Correct detection of pre-processor defines for configure _LISTS.

Message ID CAHVN4mj=hRpBuCSD_8h-5DYx4GutCQ3a3E=9+H_=KoPfhak7iA@mail.gmail.com
State Withdrawn
Headers show

Commit Message

Matt Oliver April 22, 2017, 11:09 a.m. UTC
Currently the find_things configure function will scan a code file (e.g.
allfilters.c) and then create a list of pre-processor values to be added
to configure.
Unfortunately the way it currently does it is incorrect with what the
original c code expects. For example the following exists in
REGISTER_FILTER(FREI0R,         frei0r_src,     vsrc);

where REGISTER_FILTER is defined as:
#define REGISTER_FILTER(X, x, y)
    extern AVFilter ff_##y##_##x;
    if (CONFIG_##X##_FILTER)

In c code this will check a configuration pre-processor define called
CONFIG_FREI0R_FILTER and then register the filter if currently set.

The issue arises in that configure currently looks for REGISTER_FILTER
but when found it will use the second parameter in the macro to create
the configuration option. So it will actually return that the
pre-processor define is CONFIG_FREI0R_SRC_FILTER and not
CONFIG_FREI0R_FILTER as the source code actually expects.

This patch changes the behaviour to match what the c code expects by
using the first parameter in the macro to create configure values. Since
the first parameter is in upper case it needs to be converted to lower
case to be usable within configure (this may be why currently the
incorrect - although lower case 2nd parameter is currently used).
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

 ENCODER_LIST=$(find_things  encoder  ENC      libavcodec/allcodecs.c)
diff mbox


diff --git a/configure b/configure
index e6fe05a6ee..346dbc660b 100755
--- a/configure
+++ b/configure
@@ -3366,7 +3366,7 @@  find_things(){
-    sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p"
+    sed -n "s/^[^#]*$pattern.*(\([^,]*\),
*\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file" | tr '[:upper:]' '[:lower:]'