diff --git a/README b/README index 2b7a4d5b..7ba85b47 100644 --- a/README +++ b/README @@ -123,6 +123,10 @@ by default. Note that --disable-asm-optimizations overrides --with-libiconv-prefix= Use these if you have these packages but configure can't find them. +If you want to build completely from scratch (i.e. starting with just +configure.in and Makefile.am) you should be able to just run 'autogen.sh' +but make sure and read the comments in that file first. + =============================================================================== Building with Makefile.lite @@ -132,7 +136,7 @@ There is a more lightweight build system for do-it-yourself-ers. It is also useful if configure isn't working, which may be the case since lately we've had some problems with different versions of automake and libtool. The Makefile.lite system should work -on Gnu systems with few or no adjustments. +on GNU systems with few or no adjustments. From the top level just 'make -f Makefile.lite'. You can specify zero or one optional target from 'release', 'debug', @@ -151,10 +155,12 @@ Building with MSVC =============================================================================== There are two ways to build with MSVC: -@@@@Prerequisite: Ogg headers/libs 1. Project Files ---------------- + Prerequisite: you must have the Ogg libraries installed as described + later. + Prerequisite: you must have nasm installed, and have the environment variable FLAC_NASM set to the full path to nasmw.exe, e.g @@ -165,11 +171,16 @@ There are two ways to build with MSVC: from the tree, do right-mouse-button and 'Set as active project'. The default build mode will probably be Debug; to change to release do Build|Set Active Configuration and select 'all - Win32 Release'. - Then do Project|Build. The libraries will be built as and DLLs and - you'll need to install these as well. + Then do Project|Build. This will build all libraries both statically + (e.g. obj\debug\lib\libFLAC_static.lib) and as DLLs (e.g. + obj\debug\bin\libFLAC.dll), and it will build all binaries, statically + linked (e.g. obj\debug\bin\flac.exe). 2. nmake -------- + 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. @@ -189,17 +200,25 @@ There are two ways to build with MSVC: Makefile.vc Everything will end up in the 'obj' directory. DLLs and .exe files -are all that are needed and can be copied to an installation area an +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. For Winamp2 this is \Plugins and for Winamp3 this is \Wacs. +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 +'obj\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). + =============================================================================== Building on Mac OS X =============================================================================== -If you have Fink, the Gnu flow above should work. Otherwise, +If you have Fink, the GNU flow above should work. Otherwise, there is a Project Builder project in the top-level source directory to build libFLAC and the command-line utilities on Mac OS X. In a terminal, cd to the top-level directory (the diff --git a/autogen.sh b/autogen.sh index 39cabf4a..a7974b4e 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,3 +1,22 @@ #!/bin/sh -aclocal && autoconf && autoheader && automake --foreign --include-deps --add-missing --copy +# 'hacks' is the place to put some commands you may need. There are at +# least two that seem to be necessary in some situations: +# +# 1. Some (newer?) versions automake --add-missing --copy do not copy +# in ltmain.sh, maybe because this is now supposed to be done by +# libtoolize. +# 2. FLAC uses iconv but not gettext. iconv requires config.rpath which +# is supplied by gettext, which is copied in by gettextize. But we +# can't run gettextize since we do not fulfill all it's requirements +# (since we don't use it). +# +# If both these apply try: +# +#hacks=cp /usr/share/libtool/ltmain.sh . && cp /usr/share/gettext/config.rpath . +# +# Otherwise, this is the no-op: +hacks=true +# + +aclocal && autoconf && autoheader && $hacks && automake --foreign --include-deps --add-missing --copy