dyne / frei0r

A large collection of free and portable video plugins
https://frei0r.dyne.org/
GNU General Public License v2.0
427 stars 89 forks source link

issues creating/installing static libs #18

Closed tessus closed 6 years ago

tessus commented 6 years ago

./configure --prefix=${TARGET}2 --without-cairo --without-opencv --without-gavl --enable-static --disable-shared

The compile phase works, but at make install, I get the following errors:

mkdir -p //Users/Shared/ffmpeg/sw2/lib/frei0r-1
list='3dflippo.la addition.la addition_alpha.la alpha0ps.la alphaatop.la alphagrad.la alphain.la alphainjection.la alphaout.la alphaover.la alphaspot.la alphaxor.la B.la balanc0r.la baltan.la blend.la bluescreen0r.la bgsubtract0r.la brightness.la burn.la bw0r.la c0rners.la cartoon.la cluster.la colgate.la coloradj_RGB.la colordistance.la colorhalftone.la colorize.la colortap.la color_only.la composition.la contrast0r.la curves.la d90stairsteppingfix.la darken.la defish0r.la delay0r.la delaygrab.la difference.la distort0r.la dither.la divide.la dodge.la edgeglow.la emboss.la equaliz0r.la flippo.la G.la gamma.la glow.la glitch0r.la grain_extract.la grain_merge.la hardlight.la hqdn3d.la hue.la hueshift0r.la IIRblur.la invert0r.la ising0r.la keyspillm0pup.la lenscorrection.la letterb0xed.la levels.la lighten.la lightgraffiti.la lissajous0r.la luminance.la mask0mate.la medians.la multiply.la ndvi.la nervous.la nois0r.la nosync0r.la onecol0r.la overlay.la partik0l.la perspective.la pixeliz0r.la plasma.la posterize.la pr0be.la pr0file.la primaries.la R.la RGB.la rgbnoise.la rgbsplit0r.la saturation.la saturat0r.la scanline0r.la screen.la select0r.la sharpness.la sigmoidaltransfer.la sobel.la softglow.la softlight.la sopsat.la spillsupress.la squareblur.la subtract.la tehroxx0r.la test_pat_B.la test_pat_C.la test_pat_G.la test_pat_I.la test_pat_L.la test_pat_R.la three_point_balance.la threshold0r.la threelay0r.la timeout.la tint0r.la transparency.la twolay0r.la uvmap.la value.la vertigo.la vignette.la xfade0r.la   '; \
    for file in $list; do \
      sofile=`basename $file .la`.so; \
      /usr/bin/install -c .libs/$sofile //Users/Shared/ffmpeg/sw2/lib/frei0r-1; \
    done
install: .libs/3dflippo.so: No such file or directory
install: .libs/addition.so: No such file or directory
install: .libs/addition_alpha.so: No such file or directory
install: .libs/alpha0ps.so: No such file or directory
install: .libs/alphaatop.so: No such file or directory
install: .libs/alphagrad.so: No such file or directory
install: .libs/alphain.so: No such file or directory
install: .libs/alphainjection.so: No such file or directory
install: .libs/alphaout.so: No such file or directory
install: .libs/alphaover.so: No such file or directory
install: .libs/alphaspot.so: No such file or directory
install: .libs/alphaxor.so: No such file or directory
install: .libs/B.so: No such file or directory
install: .libs/balanc0r.so: No such file or directory
install: .libs/baltan.so: No such file or directory
install: .libs/blend.so: No such file or directory
install: .libs/bluescreen0r.so: No such file or directory
install: .libs/bgsubtract0r.so: No such file or directory
install: .libs/brightness.so: No such file or directory
install: .libs/burn.so: No such file or directory
install: .libs/bw0r.so: No such file or directory
install: .libs/c0rners.so: No such file or directory
install: .libs/cartoon.so: No such file or directory
install: .libs/cluster.so: No such file or directory
install: .libs/colgate.so: No such file or directory
install: .libs/coloradj_RGB.so: No such file or directory
install: .libs/colordistance.so: No such file or directory
install: .libs/colorhalftone.so: No such file or directory
install: .libs/colorize.so: No such file or directory
install: .libs/colortap.so: No such file or directory
install: .libs/color_only.so: No such file or directory
install: .libs/composition.so: No such file or directory
install: .libs/contrast0r.so: No such file or directory
install: .libs/curves.so: No such file or directory
install: .libs/d90stairsteppingfix.so: No such file or directory
install: .libs/darken.so: No such file or directory
install: .libs/defish0r.so: No such file or directory
install: .libs/delay0r.so: No such file or directory
install: .libs/delaygrab.so: No such file or directory
install: .libs/difference.so: No such file or directory
install: .libs/distort0r.so: No such file or directory
install: .libs/dither.so: No such file or directory
install: .libs/divide.so: No such file or directory
install: .libs/dodge.so: No such file or directory
install: .libs/edgeglow.so: No such file or directory
install: .libs/emboss.so: No such file or directory
install: .libs/equaliz0r.so: No such file or directory
install: .libs/flippo.so: No such file or directory
install: .libs/G.so: No such file or directory
install: .libs/gamma.so: No such file or directory
install: .libs/glow.so: No such file or directory
install: .libs/glitch0r.so: No such file or directory
install: .libs/grain_extract.so: No such file or directory
install: .libs/grain_merge.so: No such file or directory
install: .libs/hardlight.so: No such file or directory
install: .libs/hqdn3d.so: No such file or directory
install: .libs/hue.so: No such file or directory
install: .libs/hueshift0r.so: No such file or directory
install: .libs/IIRblur.so: No such file or directory
install: .libs/invert0r.so: No such file or directory
install: .libs/ising0r.so: No such file or directory
install: .libs/keyspillm0pup.so: No such file or directory
install: .libs/lenscorrection.so: No such file or directory
install: .libs/letterb0xed.so: No such file or directory
install: .libs/levels.so: No such file or directory
install: .libs/lighten.so: No such file or directory
install: .libs/lightgraffiti.so: No such file or directory
install: .libs/lissajous0r.so: No such file or directory
install: .libs/luminance.so: No such file or directory
install: .libs/mask0mate.so: No such file or directory
install: .libs/medians.so: No such file or directory
install: .libs/multiply.so: No such file or directory
install: .libs/ndvi.so: No such file or directory
install: .libs/nervous.so: No such file or directory
install: .libs/nois0r.so: No such file or directory
install: .libs/nosync0r.so: No such file or directory
install: .libs/onecol0r.so: No such file or directory
install: .libs/overlay.so: No such file or directory
install: .libs/partik0l.so: No such file or directory
install: .libs/perspective.so: No such file or directory
install: .libs/pixeliz0r.so: No such file or directory
install: .libs/plasma.so: No such file or directory
install: .libs/posterize.so: No such file or directory
install: .libs/pr0be.so: No such file or directory
install: .libs/pr0file.so: No such file or directory
install: .libs/primaries.so: No such file or directory
install: .libs/R.so: No such file or directory
install: .libs/RGB.so: No such file or directory
install: .libs/rgbnoise.so: No such file or directory
install: .libs/rgbsplit0r.so: No such file or directory
install: .libs/saturation.so: No such file or directory
install: .libs/saturat0r.so: No such file or directory
install: .libs/scanline0r.so: No such file or directory
install: .libs/screen.so: No such file or directory
install: .libs/select0r.so: No such file or directory
install: .libs/sharpness.so: No such file or directory
install: .libs/sigmoidaltransfer.so: No such file or directory
install: .libs/sobel.so: No such file or directory
install: .libs/softglow.so: No such file or directory
install: .libs/softlight.so: No such file or directory
install: .libs/sopsat.so: No such file or directory
install: .libs/spillsupress.so: No such file or directory
install: .libs/squareblur.so: No such file or directory
install: .libs/subtract.so: No such file or directory
install: .libs/tehroxx0r.so: No such file or directory
install: .libs/test_pat_B.so: No such file or directory
install: .libs/test_pat_C.so: No such file or directory
install: .libs/test_pat_G.so: No such file or directory
install: .libs/test_pat_I.so: No such file or directory
install: .libs/test_pat_L.so: No such file or directory
install: .libs/test_pat_R.so: No such file or directory
install: .libs/three_point_balance.so: No such file or directory
install: .libs/threshold0r.so: No such file or directory
install: .libs/threelay0r.so: No such file or directory
install: .libs/timeout.so: No such file or directory
install: .libs/tint0r.so: No such file or directory
install: .libs/transparency.so: No such file or directory
install: .libs/twolay0r.so: No such file or directory
install: .libs/uvmap.so: No such file or directory
install: .libs/value.so: No such file or directory
install: .libs/vertigo.so: No such file or directory
install: .libs/vignette.so: No such file or directory
install: .libs/xfade0r.so: No such file or directory
make[2]: *** [install-pluginLTLIBRARIES] Error 71
make[1]: *** [install-am] Error 2
make: *** [install-recursive] Error 1

I checked the src/.libs dir and the static libs (*.a) are available (so the compile process worked).

But the install process tries to install shared objects (the dyn libs) instead.

I also find it strange that there are 123 static libraries. I want one single static library. I understand that these are plugins, but I want them all to be available in a static binary, thus one library would be an advantage.

jaromil commented 6 years ago

We have never supported static build, also noone has asked so far. Because of the way frei0r plugins are made (the principal function calls have the same namespace across different plugins) it is not trivial to have a static build. I can imagine one would need to rewrite the function names perhaps automatically. Feel free to contribute such a build setup, also considering that right now the preferred way to build frei0r is using cmake.

tessus commented 6 years ago

@jaromil ok, now you have me totally confused.

There are configure switches for --enable-static and --disabled-shared. So how can it not be supported? Also, how would you incorporate frei0r in a static build of ffmpeg? Btw, I have seen ffmpeg builds that use a static frei0r lib. But according to your statement above that should not even be possible. Also, I don't quite understand how they could do that, since it errors out anyway.

As I mentioned before: I'm totally confused.

ddennedy commented 6 years ago

Those are standard switches provided by autoconf, which is a tool used to generate the configure script. Jaromil is correct, and we should close this. I have no idea how someone could be making a static frei0r lib and using it with FFmpeg unless there is some fork somewhere with a fairly heavy amount of changes to make it possible. I think you were mislead by this build you claim to have seen. More than likely, it includes support for frei0r plugins in a static build of ffmpeg, but it still dynamically loads any frei0r plugins you have to have installed.

tessus commented 6 years ago

@ddennedy I'm using autotools myself and in my projects those options do not show up in ./configure --help. Anyhow, I understand that the plugin architecture does not make it possible to use one static library.

IT WOULDE BE AWESOME though! :-) The plugins are great and I'm sure people would love to be able to use them with a static ffmpeg build.

More than likely, it includes support for frei0r plugins in a static build of ffmpeg, but it still dynamically loads any frei0r plugins you have to have installed.

This could be the case. I haven't used these static ffmpeg builds, I just saw that libfrei0r was in their configure lines.