Patch from Janne Hyvärinen <cse@sci.fi>.
Building with MSVC
===============================================================================
-There are .dsp projects and a master FLAC.dsw workspace to build all
-the libraries and executables with MSVC6. There are also .vcproj
-projects and a master FLAC.sln solution to build all the libraries and
-executables with VC++ 2005.
+There are .vcproj projects and a master FLAC.sln solution to build all
+the libraries and executables with MSVC 2005 or newer.
Prerequisite: you must have the Ogg libraries installed as described
later.
-Prerequisite: you must have nasm installed, and nasmw.exe must be in
-your PATH, or the path to nasmw.exe must be added to the list of
+Prerequisite: you must have nasm installed, and nasm.exe must be in
+your PATH, or the path to nasm.exe must be added to the list of
directories for executable files in the MSVC global options.
-MSVC6:
-To build everything, run Developer Studio, do File|Open Workspace,
-and open FLAC.dsw. Select "Build | Set active configuration..."
-from the menu, then in the dialog, select "All - Win32 Release" (or
-Debug if you prefer). Click "Ok" then hit F7 to build.
-
VC++ 2005:
To build everything, run Visual Studio, do File|Open and open FLAC.sln.
From the dropdown in the toolbar, select "Release" instead of "Debug",
then hit F7 to build.
-Either way, this will build all libraries both statically (e.g.
+This will build all libraries both statically (e.g.
objs\release\lib\libFLAC_static.lib) and as DLLs (e.g.
objs\release\lib\libFLAC.dll), and it will build all binaries, statically
linked (e.g. objs\release\bin\flac.exe).
-Everything will end up in the "obj" directory. DLLs and .exe files
+Everything will end up in the "objs" directory. DLLs and .exe files
are all that are needed and can be copied to an installation area and
-added to the PATH. The plugins have to be copied to their appropriate
-place in the player area.
+added to the PATH.
-By default the code is configured with Ogg support. Before building FLAC
+By default the code is configured with Ogg support. Before building FLAC
you will need to get the Ogg source distribution
-(see http://xiph.org/ogg/vorbis/download/), build ogg_static.lib (load and
-build win32\ogg_static.dsp), copy ogg_static.lib into FLAC's
-'objs\release\lib' directory, and copy the entire include\ogg tree into
-FLAC's 'include' directory (so that there is an 'ogg' directory in FLAC's
+(see http://xiph.org/downloads/), build libogg_static.lib (load
+win32\libogg_static.sln, change solution configuration to "Release" and
+code generation to "Multi-threaded (/MT)", then build), copy libogg_static.lib
+into FLAC's 'objs\release\lib' directory, and copy the entire include\ogg tree
+into FLAC's 'include' directory (so that there is an 'ogg' directory in FLAC's
'include' directory with the files ogg.h, os_types.h and config_types.h).
-If you want to build without Ogg support, instead edit all .dsp or
-.vcproj files and remove any occurrences of "/D FLAC__HAS_OGG".
+If you want to build without Ogg support, instead edit all .vcproj files
+and remove any "FLAC__HAS_OGG" definitions.
===============================================================================
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
- IgnoreDefaultLibraryNames="uuid.lib"\r
+ IgnoreDefaultLibraryNames="uuid.lib;libcmt.lib"\r
GenerateDebugInformation="true"\r
SubSystem="2"\r
TargetMachine="1"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/bitreader_asm.nasm -o ia32/bitreader_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/bitreader_asm.nasm -o ia32/bitreader_asm.obj
"\r
AdditionalDependencies="ia32/bitreader_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/bitreader_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/bitreader_asm.nasm -o ia32/bitreader_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/bitreader_asm.nasm -o ia32/bitreader_asm.obj
"\r
AdditionalDependencies="ia32/bitreader_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/bitreader_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
"\r
AdditionalDependencies="ia32/cpu_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/cpu_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
"\r
AdditionalDependencies="ia32/cpu_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/cpu_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
"\r
AdditionalDependencies="ia32/fixed_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/fixed_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
"\r
AdditionalDependencies="ia32/fixed_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/fixed_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj
"\r
AdditionalDependencies="ia32/lpc_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/lpc_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj
"\r
AdditionalDependencies="ia32/lpc_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/lpc_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/stream_encoder_asm.nasm -o ia32/stream_encoder_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/stream_encoder_asm.nasm -o ia32/stream_encoder_asm.obj
"\r
AdditionalDependencies="ia32/stream_encoder_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/stream_encoder_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/stream_encoder_asm.nasm -o ia32/stream_encoder_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/stream_encoder_asm.nasm -o ia32/stream_encoder_asm.obj
"\r
AdditionalDependencies="ia32/stream_encoder_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/stream_encoder_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/bitreader_asm.nasm -o ia32/bitreader_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/bitreader_asm.nasm -o ia32/bitreader_asm.obj
"\r
AdditionalDependencies="ia32/bitreader_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/bitreader_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/bitreader_asm.nasm -o ia32/bitreader_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/bitreader_asm.nasm -o ia32/bitreader_asm.obj
"\r
AdditionalDependencies="ia32/bitreader_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/bitreader_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
"\r
AdditionalDependencies="ia32/cpu_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/cpu_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
"\r
AdditionalDependencies="ia32/cpu_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/cpu_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
"\r
AdditionalDependencies="ia32/fixed_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/fixed_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
"\r
AdditionalDependencies="ia32/fixed_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/fixed_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj
"\r
AdditionalDependencies="ia32/lpc_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/lpc_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj
"\r
AdditionalDependencies="ia32/lpc_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/lpc_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/stream_encoder_asm.nasm -o ia32/stream_encoder_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/stream_encoder_asm.nasm -o ia32/stream_encoder_asm.obj
"\r
AdditionalDependencies="ia32/stream_encoder_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/stream_encoder_asm.obj"\r
/>\r
>\r
<Tool\r
Name="VCCustomBuildTool"\r
- CommandLine="nasmw.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/stream_encoder_asm.nasm -o ia32/stream_encoder_asm.obj
"\r
+ CommandLine="nasm.exe -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/stream_encoder_asm.nasm -o ia32/stream_encoder_asm.obj
"\r
AdditionalDependencies="ia32/stream_encoder_asm.nasm;ia32/nasm.h"\r
Outputs="ia32/stream_encoder_asm.obj"\r
/>\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="2"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r
/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="..\..\..\objs\release\lib\ogg_static.lib"\r
+ AdditionalDependencies="..\..\..\objs\release\lib\libogg_static.lib"\r
LinkIncremental="1"\r
IgnoreDefaultLibraryNames="uuid.lib"\r
GenerateDebugInformation="true"\r