123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- Last update: 05.03.2024
- In this step-by-step guide I show how to build Audiowmark
- to run it on Windows x64.
- I won't explain every single tool, just the creation process.
- That's enough work.
- Following these instructions exactly should lead to success.
- Prerequisites (programs / source codes / libraries):
- - Download source code from Audiowmark
- DL: https://github.com/swesterfeld/audiowmark/releases
- I chose this one : audiowmark-0.6.2.tar.zst
- - Download source code from zita-resampler
- DL: https://github.com/digital-stage/zita-resampler/
- - Download 7zip ( newest beta version to extract .zst files )
- DL: https://www.7-zip.org/
- - Download Notepad++
- DL: https://notepad-plus-plus.org/
- - Download Cygwin
- DL: https://cygwin.com/
- - Download CMAKE
- DL: https://cmake.org/download/
- - Download MinGW-w64
- DL: https://github.com/niXman/mingw-builds-binaries/releases
- I chose this one : x86_64-13.2.0-release-posix-seh-msvcrt-rt_v11-rev0.7z
- - Download FFmpeg
- DL: https://github.com/BtbN/FFmpeg-Builds/releases
- I chose this one : ffmpeg-master-latest-win64-gpl-shared.zip
- Prepare everything:
- - Install Cygwin ( do a clean install )
- We need to add the following libraries to Cygwin ( choose always the latest stable release )
- - gcc-core
- - gcc-debuginfo
- - gcc-g++
- - mingw64-x86_64-gcc-core
- - mingw64-x86_64-gcc-g++
- - make
- - make-debuginfo
- - libfftw3-devel
- - libsndfile-devel
- - libgcrypt-devel
- - libmpg123-devel
- - libzita-resampler ( Not included in Cygwin. We have to compile and copy it later manually )
- - FFmpeg ( It is available in Cygwin, but i had some problems with it. So we add it later manually )
- - Install CMAKE
- - Install Notepad++
- - Install 7zip ( newest beta version to extract .zst files )
- - Extract zita-resempler-main.zip to c:\zita-resempler-main
- - Extract audiowmark-0.6.2.tar.zst to c:\audiowmark-0.6.2
- Edit "c:\audiowmark-0.6.2\src\utils.cc" and insert the following line directly below the comment section ( needed for vasprintf )
- #define _GNU_SOURCE
- - Extract ffmpeg-master-latest-win64-gpl-shared.zip to c:\ffmpeg-master-latest-win64-gpl-shared
- - Extract x86_64-13.2.0-release-posix-seh-msvcrt-rt_v11-rev0.7z\mingw64 to c:\mingw64
- - Add "C:\mingw64\bin" to the system path variable and place it at the very first position
- - Important : Restart Windows !
- - After restart windows edit the file c:\zita-resempler-main\CMakeLists.txt with Notepad++.
- Find the line below # make ( should be line 22 ) and insert the parameter SHARED.
- # make
- before:
- add_library(zita-resampler ${SOURCES} ${HEADER_LIST})
- after:
- add_library(zita-resampler SHARED ${SOURCES} ${HEADER_LIST})
- - Start CMAKE
- Select the source dir c:\zita-resempler-main
- Select / create the build dir ( f.e.: c:\zita-resampler-main\build64 )
- Press "Configure"
- Choose "MinGW Makefiles as generator"
- Choose "Use default native compilers"
- Press "Finish" to complete the configuration
- We should see : Configuring done ( ignore the red values in the list above )
- After successfull configuration press "Generate"
- We should see : Gernerating done
- Close CMAKE
- - Open the command prompt ( cmd.exe ) and go to the directory "c:\zita-resampler-main\build64".
- Type in:
- mingw32-make
- We should see : [100%] Built target zita-resampler
- Now we should have the following two new files:
- "c:\zita-resampler-main\build64\libzita-resampler.dll"
- "c:\zita-resampler-main\build64\libzita-resampler.dll.a"
- Close CMD
- - Install zita-resampler
- - Copy the file "c:\zita-resampler-main\build64\libzita-resampler.dll" to "C:\cygwin64\usr\x86_64-pc-cygwin\bin"
- - Copy the file "c:\zita-resampler-main\build64\libzita-resampler.dll.a" to "C:\cygwin64\usr\x86_64-pc-cygwin\lib"
- - Copy the whole directory "C:\zita-resampler-main\source\zita-resampler" to "C:\audiowmark-0.6.2\src\zita-resampler"
- - Install FFmpeg
- - Copy ALL files from "C:\ffmpeg-master-latest-win64-gpl-shared\bin\*.*" to "C:\cygwin64\usr\x86_64-w64-mingw32\sys-root\mingw\bin"
- - Copy ALL files ( except dir "pkgconfig" ) from "C:\ffmpeg-master-latest-win64-gpl-shared\lib\*.*" to "C:\cygwin64\usr\x86_64-w64-mingw32\sys-root\mingw\lib"
- - Copy ALL files ( except dir "pkgconfig" ) from "C:\ffmpeg-master-latest-win64-gpl-shared\lib\*.*" to "C:\cygwin64\usr\x86_64-pc-cygwin\lib"
- - Copy ALL .pc-files from "C:\ffmpeg-master-latest-win64-gpl-shared\lib\pkgconfig\*.pc" to "C:\cygwin64\lib\pkgconfig"
- - Copy ALL sub directories from "C:\ffmpeg-master-latest-win64-gpl-shared\include\*" to "C:\audiowmark-0.6.2\src\*"
- Now we should be ready to build the audiowmark source code:
- - Start Cygwin64-Terminal with admin rights
- Change the current directory to: /cygdrive/c/audiowmark-0.6.2
- - Type in:
- ./configure --host=x86_64-pc-cygwin --with-ffmpeg
- - Type in:
- make
- All created EXE-files will be saved to "C:\audiowmark-0.6.2\src\.libs"
- Note : There is another, significantly smaller version of each EXE file in "C:\audiowmark-0.6.2\src\". Don't use these. They don't work.
- The last part to do is to build the videowmark.exe.
- The file "C:\audiowmark-0.6.2\src\videowmark" is a linux bash script and can not executed on windows.
- So I ported it to C++.
- To keep it simple, I made only this single CPP file without a header file.
- - Copy the file "C:\audiowmark-0.6.2\docs\videowmark-win.cc" to "C:\audiowmark-0.6.2\src\videowmark.cc"
- - Open Cygwin and and go to the directory "/cygdrive/c/audiowmark-0.6.2/src/"
- - Type in :
- g++ -o videowmark.exe videowmark.cc
- Okay, we are almost finished.
- In order to deliver audiowmark.exe and videowmark.exe all corresponding DLL- and EXE-files must also be delivered.
- And that's a lot.
- Every single DLL- and EXE-file we will find somewhere in "C:\cygwin64"
- Each file must be copied into the SAME directory where the EXE file is located.
- ---------------
- Location in Windows : C:\audiowmark-0.6.2\src\.libs\
- Location in Cygwin : /cygdrive/c/audiowmark-0.6.2/src/.libs
- ---------------
- audiowmark.exe
- ---------------
- Location in Windows : C:\audiowmark-0.6.2\src\
- Location in Cygwin : /cygdrive/c/audiowmark-0.6.2/src/
- ---------------
- videowmark.exe
- ---------------
- Location in Windows : C:\cygwin64\usr\x86_64-w64-mingw32\sys-root\mingw\bin
- Location in Cygwin : /usr/x86_64-w64-mingw32/sys-root/mingw/bin/
- ---------------
- ffmpeg.exe
- ffplay.exe
- ffprobe.exe
- avcodec-60.dll
- avdevice-60.dll
- avfilter-9.dll
- avformat-60.dll
- avutil-58.dll
- libatomic-1.dll
- libgcc_s_seh-1.dll
- libgomp-1.dll
- libquadmath-0.dll
- libssp-0.dll
- libstdc++-6.dll
- libwinpthread-1.dll
- postproc-57.dll
- swresample-4.dll
- swscale-7.dll
- ---------------
- Location in Windows : C:\cygwin64\bin
- Location in Cygwin : /usr/bin/
- ---------------
- cygiconv-2.dll
- cygintl-8.dll
- cyggpg-error-0.dll
- cygvorbis-0.dll
- cygvorbisenc-2.dll
- cygogg-0.dll
- cygFLAC-8.dll
- cygopus-0.dll
- cygmp3lame-0.dll
- cyggcrypt-20.dll
- cygsndfile-1.dll
- cygmpg123-0.dll
- cygstdc++-6.dll
- cygwin1.dll
- cyggcc_s-seh-1.dll
- cygfftw3f-3.dll
- ---------------
- Location in Windows : C:\cygwin64\usr\x86_64-pc-cygwin\bin
- Location in Cygwin : /usr/x86_64-pc-cygwin/bin/
- ---------------
- libzita-resampler.dll
- That's it. We're done.
- That was easy, wasn't it?
- BR
- Andreas
|