pinterf / mvtools

mvtools plugin for avisynth
155 stars 17 forks source link

Is building under non-Windows supported? #31

Closed eblanca closed 3 years ago

eblanca commented 4 years ago

I wish to build mvtools under linux for use natively with Avisynth+ but I see neither configure script or Makefile. Now that Avisynth+ reaches also non-Windows users, will this library follow as well?

pinterf commented 4 years ago

Present source has Windows specific parts. For Avisynth plugins in general it's common problem that they can be built only with MS Visual C++ (syntax). I have already done the first steps and this source can be compiled with clang as well. But I suppose still needs actual weeks' time to remove the windows dependencies along with a huge refactor.

Furthermore Posix is case sensitive (files and #include names did not always match their case earlier - I fixed them as well).

Furthermore Avisynth plugins windows builds are usually do not use make files they are build from a VS solution from inside the IDE. Neither use make file this project.

In points

So I won't touch present source other than hotfixing bugs, since another dynamic :) user is considering an mvtools upgrade or replacement and I don't want to put weeks' work into a dead end.

eblanca commented 4 years ago

I see in the code avstp.dll is an optional dependency, while fftw3.dll is a required dependency, is my understanding right?

pinterf commented 4 years ago

fftw3 is used only at specific dct modes. avstp is not required.

eblanca commented 4 years ago

This statement: https://github.com/pinterf/mvtools/blob/31cccacf60f8172201bf395907e6268e2d5cee10/Sources/conc/AtomicPtrIntPair.hpp#L97 issues a call to 'cas_ptr' which is not defined into 'Interlocked.hpp' - it is not defined anywhere, finally. But: does it refer to https://github.com/pinterf/mvtools/blob/31cccacf60f8172201bf395907e6268e2d5cee10/Sources/conc/Interlocked.hpp#L314 perhaps? (I figured this out from _ptr resemblance...)

pinterf commented 3 years ago

Ported to linux/gcc, built on my Ubuntu 19.10 WSL