[flac-dev] Include directories

Evan Ramos hendricks266 at gmail.com
Mon Jun 16 03:48:23 PDT 2014

On Mon, Jun 16, 2014 at 4:10 AM, lvqcl <lvqcl.mail at gmail.com> wrote:
> Erik de Castro Lopo wrote:
>> Ok, done for the autotool build system. Would appreciate it if someone
>> could look that the VS build files.
> I'll do it, but: I cannot build 32-bit flac with MinGW:
> <------------------------------------------------------------->
>    CC     grabbag/replaygain.lo
> In file included from grabbag/replaygain.c:38:0:
> ../../include/share/replaygain_analysis.h:45:17: error: conflicting types for
> 'float_t'
>   typedef float   float_t;         /* Type used for filtering */
>                   ^
> In file included from grabbag/replaygain.c:25:0:
> D:/MSYS/mingw/i686-w64-mingw32/include/math.h:329:21: note: previous declaration
> of 'float_t' was here
>   typedef long double float_t;
> <------------------------------------------------------------->
> Also, what about Makefile.lite files? MinGW refuses to build flac
> using them, so I cannot test. But 3 of them --
>      src\share\getopt\Makefile.lite
>      src\share\replaygain_synthesis\Makefile.lite
>      src\share\utf8\Makefile.lite
> add both 'include' and 'include/share', and one file --
>      src\share\replaygain_analysis\Makefile.lite
> adds 'include/share' only.
> Or maybe they are unsupported?

Speaking of the Makefile.lite build system, the attached patch will
update it to reflect changes to the FLAC project since my last patch
in 2012 and add other important tweaks:
* Account for the updates to UTF-8 on Windows.
* Add missing object and library entries to the system to ensure all
components link properly.
* Add USE_LROUND and USE_FSEEKO Makefile variables to allow clean
addressing of the HAVE_LROUND and HAVE_FSEEKO conditional sections,
normally resolved elsewhere in the full build system.
* Add Makefile variables CCFLAGS and CCCFLAGS to specify gcc-only and
g++-only flags, respectively. This was done to eliminate the following
warnings, which were repeated for every g++ invocation:
>cc1plus.exe: warning: command line option '-Wmissing-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
>cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
* Remove inclusion of "include/share" and ensure inclusion of
"include" in its place, in line with commit
* Allow the user to specify CUSTOM_CFLAGS on the make invocation in
case a user (like myself) wants to specify additional cflags. For
example: make -f Makefile.lite libFLAC CUSTOM_CFLAGS="-fno-stack-check
-fno-stack-protector -mno-stack-arg-probe".

Please alert me if this build breaks anything on non-Win32 and/or
non-Makefile.lite build systems and I will provide an updated patch.

I also encountered the error lvqcl identified involving MinGW and
float_t. It was caused by commit
b4f7528e9a267cf7a8f03827429008cb994e1bb7. I was able to fix it on my
end by removing the following line:
typedef float   float_t;         /* Type used for filtering */
I was also able to fix it by replacing all "float_t" with something
namespaced like "rg_float_t", but that would effectively revert said
commit. I do not know what the correct course of action is. I suggest
testing the removal of the line under other build systems and

-------------- next part --------------
A non-text attachment was scrubbed...
Name: flac-update-Makefile-lite.patch.gz
Type: application/x-gzip
Size: 4345 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/flac-dev/attachments/20140616/1c8e7ef2/attachment.bin 

More information about the flac-dev mailing list