This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
build:compiling_avidemux [2010/04/14 10:18] j.m Imported the remaining remainder. Phewww... |
build:compiling_avidemux [2010/04/17 09:18] j.m |
||
---|---|---|---|
Line 63: | Line 63: | ||
- <code>cmake .</code> (the dot is required) | - <code>cmake .</code> (the dot is required) | ||
- <code>make</code> | - <code>make</code> | ||
- | |||
- | For more information, see the [[http://www.avidemux.org/admForum/viewtopic.php?id=3281|Switch to CMAKE in progress]] thread in the Avidemux forum. | ||
=== Old method (Avidemux 2.3 and older) === | === Old method (Avidemux 2.3 and older) === | ||
Line 273: | Line 271: | ||
== MinGW == | == MinGW == | ||
- | - Extract the contents of each MinGW tarball (binutils, gcc-core, gcc-g++, mingw-runtime, mingw-utils, w32api) to a folder on your hard-drive, e.g. C:DevMinGW. | + | - Extract the contents of each MinGW tarball (binutils, gcc-core, gcc-g++, mingw-runtime, mingw-utils, w32api) to a folder on your hard-drive, e.g. <nowiki>C:\Dev\MinGW</nowiki>. |
== MSYS == | == MSYS == | ||
- | - Run the MSYS installer (e.g. MSYS-1.0.11-2004.04.30-1.exe) and follow the install wizard. Choose an appropriate destination folder, e.g. C:Devmsys. | + | - Run the MSYS installer (e.g. MSYS-1.0.11-2004.04.30-1.exe) and follow the install wizard. Choose an appropriate destination folder, e.g. <nowiki>C:\Dev\msys</nowiki>. |
- Agree to the post install process. | - Agree to the post install process. | ||
- State that MinGW is installed. | - State that MinGW is installed. | ||
Line 299: | Line 297: | ||
== Netwide Assembler == | == Netwide Assembler == | ||
- | - Extract the contents of the NASM zip file to an appropriate folder, e.g. C:Program FilesNasm. | + | - Extract the contents of the NASM zip file to an appropriate folder, e.g. <nowiki>C:\Program Files\Nasm</nowiki>. |
- Make a copy of **nasmw.exe** and rename it to **nasm.exe** in the Nasm folder. (The optional components expect the filename to be nasm.exe but the Win32 version of NASM has a filename of nasmw.exe) | - Make a copy of **nasmw.exe** and rename it to **nasm.exe** in the Nasm folder. (The optional components expect the filename to be nasm.exe but the Win32 version of NASM has a filename of nasmw.exe) | ||
- Copy **nasm.exe** to the MinGW **bin** folder. | - Copy **nasm.exe** to the MinGW **bin** folder. | ||
Line 316: | Line 314: | ||
- Choose the **Directories** tab. | - Choose the **Directories** tab. | ||
- Select **Executable Files** from the **Show Directories For** dropdown box. | - Select **Executable Files** from the **Show Directories For** dropdown box. | ||
- | - Add the path for NASM, e.g. C:Program FilesNasm. | + | - Add the path for NASM, e.g. <nowiki>C:\Program Files\Nasm</nowiki>. |
=== Downloading source code from SVN === | === Downloading source code from SVN === | ||
Line 328: | Line 326: | ||
- Click **OK** to download the source code. | - Click **OK** to download the source code. | ||
- | ==== Avidemux Dependencies ==== | + | ==== Avidemux dependencies ==== |
=== Download Dependencies === | === Download Dependencies === | ||
Line 393: | Line 391: | ||
== Netscape Portable Runtime == | == Netscape Portable Runtime == | ||
- | - Extract the contents of the nspr zip file to a folder, e.g. C:\Dev. | + | - Extract the contents of the nspr zip file to a folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Copy **libnspr4.dll** from the NSPR **lib** folder to the MinGW **bin** folder. | - Copy **libnspr4.dll** from the NSPR **lib** folder to the MinGW **bin** folder. | ||
Line 399: | Line 397: | ||
- Run the Pthreads-w32 exe to extract required files to a temporary folder. | - Run the Pthreads-w32 exe to extract required files to a temporary folder. | ||
- | - Copy the contents of the **Pre-built.1include** folder to the MinGW **include** folder. | + | - Copy the contents of the **<nowiki>Pre-built.1\include</nowiki>** folder to the MinGW **include** folder. |
- | - Copy all **a** and **lib** files from the **Pre-built.1lib** folder to the MinGW **lib** folder. | + | - Copy all **a** and **lib** files from the **<nowiki>Pre-built.1\lib</nowiki>** folder to the MinGW **lib** folder. |
- | - Copy all **dll** files from the **Pre-built.1lib** folder to the MinGW **bin** folder. | + | - Copy all **dll** files from the **<nowiki>Pre-built.1\lib</nowiki>** folder to the MinGW **bin** folder. |
== Zlib == | == Zlib == | ||
Line 411: | Line 409: | ||
== SpiderMonkey == | == SpiderMonkey == | ||
- | - Extract the contents of the tarball to a folder, e.g. C:Dev. | + | - Extract the contents of the tarball to a folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Build Spidermonkey using Microsoft Visual C++ or MinGW: | - Build Spidermonkey using Microsoft Visual C++ or MinGW: | ||
//Using Microsoft Visual C++ 6.0:// | //Using Microsoft Visual C++ 6.0:// | ||
* a. Open the **js.mak** file in the Spridermonkey **src** folder with a text editor. | * a. Open the **js.mak** file in the Spridermonkey **src** folder with a text editor. | ||
- | * b. Update the compiler options to refer to the Netscape Portable Runtime by replacing all occurrences of: <code>CPP_PROJ=</code> with (includes a trailing space): <code>CPP_PROJ=/I c:\devnspr-4.4.1\include /D "JS_THREADSAFE" </code> | + | * b. Update the compiler options to refer to the Netscape Portable Runtime by replacing all occurrences of: <code>CPP_PROJ=</code> with (includes a trailing space): <code>CPP_PROJ=/I c:\dev\nspr-4.4.1\include /D "JS_THREADSAFE" </code> |
- | * c. Update the linker options to refer to the Netscape Portable Runtime by replacing all occurrences of: <code>LINK32_FLAGS=</code> with (includes a trailing space): <code>LINK32_FLAGS=/libpath:c:devnspr-4.4.1lib libnspr4.lib </code> | + | * c. Update the linker options to refer to the Netscape Portable Runtime by replacing all occurrences of: <code>LINK32_FLAGS=</code> with (includes a trailing space): <code>LINK32_FLAGS=/libpath:c:\dev\nspr-4.4.1\lib libnspr4.lib </code> |
* d. Save the file and close the editor. | * d. Save the file and close the editor. | ||
- | * e. Start a command prompt and run **VCVARS32.BAT** from the Visual C++ **bin** folder. <code>"C:\Program Files\Microsoft Visual StudioVC98\Bin\VCVARS32.BAT"</code> | + | * e. Start a command prompt and run **VCVARS32.BAT** from the Visual C++ **bin** folder. <code>"C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"</code> |
- | * f. Change directory to the Spidermonkey **src** folder. <code>cdDevjssrc</code> | + | * f. Change directory to the Spidermonkey **src** folder. <code>cd\Dev\js\src</code> |
* g. Run **NMAKE** on **js.mak** using the **jsshell – Win32 Release** configuration. <code>nmake /f js.mak CFG="jsshell - Win32 Release"</code> | * g. Run **NMAKE** on **js.mak** using the **jsshell – Win32 Release** configuration. <code>nmake /f js.mak CFG="jsshell - Win32 Release"</code> | ||
* h. Close the command prompt. | * h. Close the command prompt. | ||
* i. Start MSYS. | * i. Start MSYS. | ||
- | * j. Change directory to the Spidermonkey **srcRelease** folder. <code>cd /c/Dev/js/src/Release</code> | + | * j. Change directory to the Spidermonkey **<nowiki>src\Release</nowiki>** folder. <code>cd /c/Dev/js/src/Release</code> |
* k. Using **pexports**, create a module-definition file for the newly created **js32.dll**: <code>pexports js32.dll > js32.def</code> | * k. Using **pexports**, create a module-definition file for the newly created **js32.dll**: <code>pexports js32.dll > js32.def</code> | ||
* l. Use **dlltool** to produce a **libjs** import library. <code>dlltool -d js32.def -l /mingw/lib/libjs.a</code> | * l. Use **dlltool** to produce a **libjs** import library. <code>dlltool -d js32.def -l /mingw/lib/libjs.a</code> | ||
Line 463: | Line 461: | ||
ar r $(BIN) $(OBJECTS) | ar r $(BIN) $(OBJECTS) | ||
ranlib $(BIN)</code> | ranlib $(BIN)</code> | ||
- | * c. Make sure all indentations in the script are tabbed and not spaced. Also ensure **SRCDIR** is correctly set to the Spridermonkey **srcfdlibm** folder. | + | * c. Make sure all indentations in the script are tabbed and not spaced. Also ensure **SRCDIR** is correctly set to the Spidermonkey **<nowiki>src\fdlibm</nowiki>** folder. |
* d. Create a text file named **makefile** in the Spidermonkey **src** folder. | * d. Create a text file named **makefile** in the Spidermonkey **src** folder. | ||
* e. Paste the following script into **makefile**:<code make># Project: js32 | * e. Paste the following script into **makefile**:<code make># Project: js32 | ||
Line 529: | Line 527: | ||
* f. Make sure all indentations in the script are tabbed and not spaced. Also ensure **LIBS** and **CFLAGS** are correctly set to the appropriate Netscape Portable Runtime subdirectories and **SRCDIR** is correctly set to the Spridermonkey **src** folder. | * f. Make sure all indentations in the script are tabbed and not spaced. Also ensure **LIBS** and **CFLAGS** are correctly set to the appropriate Netscape Portable Runtime subdirectories and **SRCDIR** is correctly set to the Spridermonkey **src** folder. | ||
* g. Start MSYS. | * g. Start MSYS. | ||
- | * Make the fdlibm library. <code>cd /c/Dev/js/src/fdlibm | + | * h. Make the fdlibm library. <code>cd /c/Dev/js/src/fdlibm |
make</code> | make</code> | ||
* i. Make the SpiderMonkey library. <code>cd /c/Dev/js/src | * i. Make the SpiderMonkey library. <code>cd /c/Dev/js/src | ||
Line 543: | Line 541: | ||
== Aften == | == Aften == | ||
- | - Extract the contents of the Aften zip file to a temporary folder, e.g. C:\Dev. | + | - Extract the contents of the Aften zip file to a temporary folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Move the Aften **bin**, **include** and **lib** subdirectories to the corresponding MinGW folders. | - Move the Aften **bin**, **include** and **lib** subdirectories to the corresponding MinGW folders. | ||
- Open the file **aften.h** in the MinGW **include** folder with a text editor. | - Open the file **aften.h** in the MinGW **include** folder with a text editor. | ||
Line 562: | Line 560: | ||
== FAAC == | == FAAC == | ||
- | - Extract the contents of the faac zip file to a temporary folder, e.g. C:\Dev. | + | - Extract the contents of the faac zip file to a temporary folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Open the header files **libfaac\frame.h** and **include\faac.h** with a text editor. | - Open the header files **libfaac\frame.h** and **include\faac.h** with a text editor. | ||
- Replace the following line in both files: <code cpp>#define FAACAPI __stdcall</code> with: <code cpp>#define FAACAPI __cdecl</code> | - Replace the following line in both files: <code cpp>#define FAACAPI __stdcall</code> with: <code cpp>#define FAACAPI __cdecl</code> | ||
Line 597: | Line 595: | ||
== FAAD == | == FAAD == | ||
- | - Extract the contents of the FAAD zip file to a temporary folder, e.g. C:\Dev. | + | - Extract the contents of the FAAD zip file to a temporary folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Copy ***.h** in the FAAD **include** folder to the MinGW **include** folder. | - Copy ***.h** in the FAAD **include** folder to the MinGW **include** folder. | ||
- Build FAAD using Microsoft Visual C++ or MinGW: | - Build FAAD using Microsoft Visual C++ or MinGW: | ||
Line 639: | Line 637: | ||
== LAME == | == LAME == | ||
- | - Extract the contents of the lame tarball to a temporary folder, e.g. C:\Dev. | + | - Extract the contents of the lame tarball to a temporary folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Start MSYS. | - Start MSYS. | ||
- Change directory to the lame folder. <code>cd /c/dev/lame-3.97</code> | - Change directory to the lame folder. <code>cd /c/dev/lame-3.97</code> | ||
Line 650: | Line 648: | ||
== Libdca == | == Libdca == | ||
- | - Extract the contents of the libdca tarball to a temporary folder, e.g. C:\Dev. | + | - Extract the contents of the libdca tarball to a temporary folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Start MSYS. | - Start MSYS. | ||
- Change directory to the libdca folder. <code>cd /c/dev/libdts-0.0.2</code> | - Change directory to the libdca folder. <code>cd /c/dev/libdts-0.0.2</code> | ||
Line 672: | Line 670: | ||
== Ogg Vorbis == | == Ogg Vorbis == | ||
- | - Extract the contents of the Ogg and Vorbis zip files to the same temporary folder, e.g. C:\Dev. | + | - Extract the contents of the Ogg and Vorbis zip files to the same temporary folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Build Ogg Vorbis using Microsoft Visual C++ or MinGW: | - Build Ogg Vorbis using Microsoft Visual C++ or MinGW: | ||
Line 694: | Line 692: | ||
* p. Copy **vorbisenc.dll** in the Vorbis **win32\VorbisEnc_Dynamic_Release** folder to the MinGW **bin** folder. | * p. Copy **vorbisenc.dll** in the Vorbis **win32\VorbisEnc_Dynamic_Release** folder to the MinGW **bin** folder. | ||
* q. Copy **vorbisfile.dll** in the Vorbis **win32\VorbisFile_Dynamic_Release** folder to the MinGW **bin** folder. | * q. Copy **vorbisfile.dll** in the Vorbis **win32\VorbisFile_Dynamic_Release** folder to the MinGW **bin** folder. | ||
- | * Copy the Vorbis **include\vorbis** folder to the MinGW **include** folder. | + | * r. Copy the Vorbis **include\vorbis** folder to the MinGW **include** folder. |
* s. Start MSYS. | * s. Start MSYS. | ||
* t. Using **pexports**, create a module-definition file for the Ogg Vorbis runtimes: <code>pexports /mingw/bin/vorbis.dll > vorbis.def | * t. Using **pexports**, create a module-definition file for the Ogg Vorbis runtimes: <code>pexports /mingw/bin/vorbis.dll > vorbis.def | ||
Line 717: | Line 715: | ||
== Simple DirectMedia Layer == | == Simple DirectMedia Layer == | ||
- | - Extract the contents of the SDL zip file to a temporary folder, e.g. C:\Dev. | + | - Extract the contents of the SDL zip file to a temporary folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Start MSYS. | - Start MSYS. | ||
- Change directory to the SDL folder. <code>cd /c/dev/sdl-1.2.11</code> | - Change directory to the SDL folder. <code>cd /c/dev/sdl-1.2.11</code> | ||
Line 724: | Line 722: | ||
make install</code> | make install</code> | ||
- 5. Close MSYS. | - 5. Close MSYS. | ||
- | 6. If you prefer a Microsoft Visual C++ compiled runtime, extract **SDL.dll** in the SDL-dev zip file to the MinGW **bin** folder. Alternatively, compile the supplied **SDL.dsw** using Microsoft Visual C++ 6.0. | + | - If you prefer a Microsoft Visual C++ compiled runtime, extract **SDL.dll** in the SDL-dev zip file to the MinGW **bin** folder. Alternatively, compile the supplied **SDL.dsw** using Microsoft Visual C++ 6.0. |
== x264 == | == x264 == | ||
Line 763: | Line 761: | ||
== Xvid == | == Xvid == | ||
- | - Extract the contents of the Xvid tarball to a temporary folder, e.g. C:\Dev. | + | - Extract the contents of the Xvid tarball to a temporary folder, e.g. <nowiki>C:\Dev</nowiki>. |
- Build Xvid using Microsoft Visual C++ or MinGW: | - Build Xvid using Microsoft Visual C++ or MinGW: | ||