1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-02 17:09:26 +02:00

Revert some of my changes to compile.txt

This commit is contained in:
lllucius 2014-11-14 15:44:12 +00:00
parent f6e04c2e79
commit 64e836fd8e

View File

@ -22,27 +22,20 @@ email audacity-devel@lists.sourceforge.net.
Audacity releases for Windows are currently built with Microsoft Visual Audacity releases for Windows are currently built with Microsoft Visual
Studio 2013 C++. Most of us use the Express edition, which is free. Studio 2013 C++. Most of us use the Express edition, which is free.
For instructions on compiling Audacity under the Cygwin
UNIX Emulation Layer, see the "Compiling Audacity under
Cygwin" section below. This is not maintained.
Note that Audacity uses VC++'s multithreaded DLL runtime libraries. Note that Audacity uses VC++'s multithreaded DLL runtime libraries.
If you have MSVC installed, these are in your PATH, but users to If you have MSVC installed, these are in your PATH, but users to
whom you distribute your builds may not have them, so you may have whom you distribute your builds may not have them, so you may have
to distribute them, as described for the wxWidgets DLLs, below. to distribute them, as described for the wxWidgets DLLs, below.
For instructions on compiling Audacity under the Cygwin
UNIX Emulation Layer, see the "Compiling Audacity under
Cygwin" section below. This is not maintained (for a very long time!).
--------------------------- ------------------------------------------------------------------------
MSVC++ STEP 1: Download and Install wxWidgets MSVC++ STEP 1: Download and Install wxWidgets
--------------------------- ------------------------------------------------------------------------
To simplify the implementation of a near-identical user To simplify the implementation of a near-identical user interface across
interface across platforms, Audacity uses wxWidgets, a platforms, Audacity uses wxWidgets, a GUI framework. (https://www.wxwidgets.org/).
GUI framework. (https://www.wxwidgets.org/).
Audacity 2.1.0 requires wxWidgets 2.8.12. Audacity 2.1.0 requires wxWidgets 2.8.12.
@ -54,9 +47,9 @@ To be able to build Audacity for Windows, download and install wxWidgets:
-------------------------- ------------------------------------------------------------------------
MSVC++ STEP 2: Download and Install Audacity MSVC++ STEP 2: Download and Install Audacity
-------------------------- ------------------------------------------------------------------------
To check out the latest To check out the latest
source code from SVN, see the instructions at source code from SVN, see the instructions at
@ -64,55 +57,106 @@ source code from SVN, see the instructions at
-------------------------------------------- ------------------------------------------------------------------------
MSVC++ STEP 3: Set wxWidgets location for Audacity MSVC++ STEP 3: Build wxWidgets
-------------------------------------------- ------------------------------------------------------------------------
Before you can start the build process, you must update the 3.1. Open "C:\wxWidgets-2.8.12\build\msw\wx_dll.dsw" with
project settings to tell Visual C++ where to find wxWidgets. Microsoft Visual Studio.
There are three settings that need changing: Make sure to use wx_dll.dsw, not wx.dsw, because wx.dsw
3.1. Include Directory (e.g., "C:\wxWidgets-2.8.12\include") does not have the correct dependencies for the DLL builds.
3.2. Resource Directory (e.g., "C:\wxWidgets-2.8.12\include") When you open wx_dll.dsw, Visual Studio will prompt whether
3.3. Library Directory (e.g., "C:\wxWidgets-2.8.12\lib") to convert. Click "Yes To All". Next time you open a Visual
Studio session, you can avoid this prompt by opening
Fortunately, this is parameterized, using a Windows "C\wxWidgets-2.8.12\build\msw\wx_dll.sln" instead of wx_dll.dsw.
environment variable, WXWIN. There are various ways to set
these, so look in the Windows help system.
In the Audacity project file, there are declarations like
$(WXWIN)\include
that get interpreted as, e.g., "C:\wxWidgets-2.8.12\include".
The typical setting for WXWIN is "C:\wxWidgets-2.8.12".
For example,
set WXWIN =C:\wxWidgets-2.8.12
Once you have set the WXWIN environment variable correctly, 3.2. If you want to use the wxWidgets accessibility features, we have
the Audacity project file's declarations will do the rest. modified one of the wxWidgets files. Rather than provide a patch,
we store the modified file in the Audacity code repository, and you
can replace the corresponding wxWidgets file. You will need to
download Audacity (next step) to get these.
Note that you must restart the Audacity solution (sln) In "audacity\win\wxWidgets_additions" is one .h file.
file so it picks up changes in the environment variables. You may want to make a backup of the wxWidgets original of it,
in "C:\wxWidgets-2.8.12\include\wx\msw\setup.h",
e.g., by renaming it "setup.h.bak" before copying the replacement,
in case you also build without these accessibility features.
In some cases, you may need to reboot the computer to ensure Copy "audacity\win\wxWidgets_additions\setup.h" to
the variables are read correctly. "C:\wxWidgets-3.0.2\include\wx\msw\setup.h".
Audacity releases are built with these accessibility features.
3.3. Build wxWidgets for all configurations of Audacity that you want.
* Build "DLL Unicode Release" to use in a "Release"
version of Audacity.
With VS2013 you will get an error for missing pbt.h header, you can (apparently safely) comment t
See "MSVC++ STEP 6: Build Audacity" for the differences
between these versions of Audacity.
Because of dependencies, this should also build these projects:
But it may not on VS2013 so you will have to make sure to build these as well:
* wxexpat
* wxjpeg
* wxpng
* wxregex
* wxtiff
* wxzlib
If you build the whole solution, ignore the linker errors for
wxbase28*_odbc*.* dbgrid.
----------------------- ------------------------------------------------------------------------
MSVC++ STEP 4: Consider and Configure Optional Features MSVC++ STEP 4: Set wxWidgets location for Audacity
----------------------- ------------------------------------------------------------------------
4.1. Locally installed help is optional, but required for a full Release The Audacity Visual Studio project has been set up to use enviornment
variables to locate all externally referenced SDKs. For wxWidgets, it
uses the "WXWIN" environment variable.
Before you can build Audacity, you must set the variable. This process
can vary depending on the version of Windows you're using. The following
is based on Windows 7, so you may need to make adjustments.
4.1. Open the "Control Panel"
4.2. Click the "System" app
4.3. Click the "Advanced system settings" link
4.4. On the "Advanced" tab, click the "Envirnment Variables..." button
4.5. Click "New..." in the "System variables" group
4.6. Set the "Variable name" to "WXWIN" (without the quotes)
4.7. Set the "Variable value" to the full path of where you installed
wxWidgets (typically c:\wxWidgets-2.8.12)
4.8. Click "Ok" until you exit the "System Properties" app
Once you have set the WXWIN environment variable correctly, the Audacity
Project file's declarations will do the rest.
Note that if you currently have the Audacity Solution open in Visual
Studio, you must restart Visual Studio for it to recognize the new
environment variable.
In some cases, you may need to reboot the computer to ensure the
variable it updated.
------------------------------------------------------------------------
MSVC++ STEP 5: Consider and Configure Optional Features
------------------------------------------------------------------------
5.1. Locally installed help is optional, but required for a full Release
build. (The "help" folder is included in the installer, but removed from build. (The "help" folder is included in the installer, but removed from
the zip distribution.) The Python library is required, obtainable from the zip distribution.) The Python library is required, obtainable from
http://www.python.org/download/ . Add the location of the top-level http://www.python.org/download/ . Add the location of the top-level
directory where you installed Python to your Path environment directory where you installed Python to your Path environment variable.
variable. For instructions on setting environment variables, see the For instructions on setting environment variables, see the previous
previous section, "MSVC++ STEP 3: Set wxWidgets location for Audacity". section, "MSVC++ STEP 4: Set wxWidgets location for Audacity".
Build the "help" project by enabling it in the MS Visual Studio Build the "help" project by enabling it in the MS Visual Studio
Configuration Manager (Build menu). This will download a copy of the Configuration Manager (Build menu). This will download a copy of the
@ -122,7 +166,7 @@ audacity\scripts\mw2html_audacity\wiki2htm.bat
and re-build the "help" project. and re-build the "help" project.
4.2. To support languages other than English in your build of Audacity, 5.2. To support languages other than English in your build of Audacity,
you must enable and build the optional "locale" project. This is you must enable and build the optional "locale" project. This is
required for a full release. You will need to obtain msgfmt.exe from required for a full release. You will need to obtain msgfmt.exe from
http://audacity.sourceforge.net/files/msgfmt.zip. Add the location of http://audacity.sourceforge.net/files/msgfmt.zip. Add the location of
@ -131,7 +175,7 @@ Alternatively, put msgfmt.exe somewhere already in the Path,
e.g., C:\Windows. e.g., C:\Windows.
4.3. Some functionality in Audacity is currently turned on in its default 5.3. Some functionality in Audacity is currently turned on in its default
configuration, but requires that extra libraries be downloaded configuration, but requires that extra libraries be downloaded
separately to use it. separately to use it.
@ -147,57 +191,35 @@ To change the libraries enabled in Audacity, edit
"win\configwin.h" and comment or uncomment the entries. "win\configwin.h" and comment or uncomment the entries.
4.4. TO ADD SUPPORT FOR ASIO: 5.4. To add support for ASIO:
ASIO (from Steinberg) isa a sound card interface protocol that ASIO (from Steinberg) is a sound card interface protocol that is faster
is faster than standard WMME. Unlike WMME, not all soundcard than standard WMME. Unlike WMME, not all soundcard drivers support it.
drivers support it.
Because ASIO is a proprietary, closed standard, Because ASIO is a proprietary, closed standard, we (or any third party)
we (or any third party) cannot distribute its SDK. cannot distribute its SDK. That means we cannot distribute builds of
That means we cannot distribute builds of Audacity that support Audacity that support ASIO, because Audacity is licensed under the GPL
ASIO, because Audacity is licensed under the (http://audacity.sourceforge.net/about/license), which requires we
GPL (http://audacity.sourceforge.net/about/license), which requires distribute all source code.
we distribute all source code.
So, although you can build your own copies of Audacity with So, although you can build your own copies of Audacity with ASIO
ASIO support, for personal use, you cannot distribute them without support, for personal use, you cannot distribute them without violating
violating the Audacity license and the ASIO license. the Audacity license and the ASIO license. If you build ASIO support
If you build ASIO support into Audacity, do not distribute that build. into Audacity, do not distribute that build.
For ASIO support, get the ASIO SDK from Steinberg For ASIO support, get the ASIO SDK from Steinberg:
(http://www.steinberg.net/en/company/developers.html),
install at C:\ASIOSDK, then define an environment variable called
ASIOSDK_DIR.
The value should be the full path to the base directory of the http://www.steinberg.net/en/company/developers.html
ASIO SDK, e.g.,
set ASIOSDK_DIR=C:\ASIOSDK2 Install at C:\ASIOSDK, then define an environment variable called
ASIOSDK_DIR. The value should be the full path to the base directory
of the ASIO SDK.
------------------------ ------------------------------------------------------------------------
MSVC++ STEP 5: Build wxWidgets
------------------------
This typically has to be done only once.
5.1. Run Visual C++ and load the Audacity solution, "audacity\win\audacity.sln".
5.2. In the Solution Explorer, right click the "wxWidgets-2.8.12" project and
select "Build".
This will add the Audacity specific configuration to wxWidgets and correct
a minor incompatibility between wxWidgets 2.8.12 and Visual Studio 2013.
It will then build both the Debug and Release versions of wxWidgets.
-----------------------
MSVC++ STEP 6: Build Audacity MSVC++ STEP 6: Build Audacity
----------------------- ------------------------------------------------------------------------
Now you can compile Audacity. Run Visual C++ and load the Audacity Now you can compile Audacity. Run Visual C++ and load the Audacity
solution, "audacity\win\audacity.sln". solution, "audacity\win\audacity.sln".
@ -215,9 +237,9 @@ Build Audacity by giving the "Build" menu > "Rebuild Solution"
command. command.
----------------------- ------------------------------------------------------------------------
MSVC++ STEP 7: Provide Access to the wxWidgets DLLs MSVC++ STEP 7: Provide Access to the wxWidgets DLLs
----------------------- ------------------------------------------------------------------------
Each Audacity executable needs access to five specific wxWidgets Each Audacity executable needs access to five specific wxWidgets
DLLs from those you built in "MSVC++ STEP 2: Build wxWidgets" DLLs from those you built in "MSVC++ STEP 2: Build wxWidgets"
@ -261,9 +283,9 @@ installation of the wxWidgets source and the latest Audacity source
from SVN". So if that's not what you attempted, please try that first. from SVN". So if that's not what you attempted, please try that first.
--------------------------- ------------------------------------------------------------------------
HELP! I get linker errors! HELP! I get linker errors!
--------------------------- ------------------------------------------------------------------------
In some cases, Audacity does compile, but during the linking In some cases, Audacity does compile, but during the linking
process you get a bunch of error messages like this: process you get a bunch of error messages like this: