1 # FLAC - Free Lossless Audio Codec
2 # Copyright (C) 2001-2009 Josh Coalson
3 # Copyright (C) 2011-2016 Xiph.Org Foundation
5 # This file is part the FLAC project. FLAC is comprised of several
6 # components distributed under different licenses. The codec libraries
7 # are distributed under Xiph.Org's BSD-like license (see the file
8 # COPYING.Xiph in this distribution). All other programs, libraries, and
9 # plugins are distributed under the GPL (see COPYING.GPL). The documentation
10 # is distributed under the Gnu FDL (see COPYING.FDL). Each file in the
11 # FLAC distribution contains at the top the terms under which it may be
14 # Since this particular file is relevant to all components of FLAC,
15 # it may be distributed under the Xiph.Org license, which is the least
16 # restrictive of those mentioned above. See the file COPYING.Xiph in this
20 # customizable settings from the make invocation
27 USE_LANGINFO_CODESET ?
= 1
30 # debug/release selection
33 DEFAULT_BUILD
= release
37 # returns Linux, Darwin, FreeBSD, etc.
39 OS
:= $(shell uname
-s
)
41 # returns i386, x86_64, powerpc, etc.
43 ifeq ($(findstring Windows
,$(OS
)),Windows
)
44 PROC
:= i386
# failsafe
45 # ifeq ($(findstring i686,$(shell gcc -dumpmachine)),i686) # MinGW-w64: i686-w64-mingw32
46 ifeq ($(findstring x86_64
,$(shell gcc
-dumpmachine
)),x86_64
) # MinGW-w64: x86_64-w64-mingw32
50 ifeq ($(shell uname
-p
),amd64
)
53 PROC
:= $(shell uname
-p
)
57 ifeq ($(PROC
),powerpc
)
60 # x64_64 Mac OS outputs 'i386' in uname -p; use uname -m instead
63 PROC
:= $(shell uname
-m
)
68 PROC
:= $(shell uname
-m
)
72 ifeq ($(findstring Windows
,$(OS
)),Windows
)
75 USE_LANGINFO_CODESET
:= 0
76 ifeq (mingw32
,$(shell gcc
-dumpmachine
)) # MinGW (mainline): mingw32
82 valgrind
: BUILD
= debug
83 release
: BUILD
= release
85 # override LINKAGE on OS X until we figure out how to get 'cc -static' to work
87 LINKAGE
= -arch
$(PROC
)
89 debug
: LINKAGE
= -static
90 valgrind
: LINKAGE
= -dynamic
91 release
: LINKAGE
= -static
94 all default
: $(DEFAULT_BUILD
)
97 # GNU makefile fragment for emulating stuff normally done by configure
102 CONFIG_CFLAGS
=$(CUSTOM_CFLAGS
) -DHAVE_STDINT_H
-DHAVE_INTTYPES_H
-DHAVE_CXX_VARARRAYS
-D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS
=64
105 CONFIG_CFLAGS
+= -DFLAC__SYS_DARWIN
-DHAVE_SYS_PARAM_H
-arch
$(PROC
)
107 CONFIG_CFLAGS
+= -DHAVE_SOCKLEN_T
111 CONFIG_CFLAGS
+= -DWORDS_BIGENDIAN
=1 -DCPU_IS_LITTLE_ENDIAN
=0
113 CONFIG_CFLAGS
+= -DWORDS_BIGENDIAN
=0 -DCPU_IS_LITTLE_ENDIAN
=1
117 ifeq ($(PROC
),x86_64
)
118 CONFIG_CFLAGS
+= -fPIC
122 CONFIG_CFLAGS
+= -DHAVE_SYS_PARAM_H
125 ifneq (0,$(USE_ICONV
))
126 CONFIG_CFLAGS
+= -DHAVE_ICONV
133 CONFIG_CFLAGS
+= -DFLAC__HAS_OGG
=1
134 OGG_INCLUDES
= -I
$(OGG_INCLUDE_DIR
)
135 OGG_EXPLICIT_LIBS
= $(OGG_LIB_DIR
)/libogg.a
136 OGG_LIBS
= -L
$(OGG_LIB_DIR
) -logg
137 OGG_SRCS
= $(OGG_SRCS_C
)
139 CONFIG_CFLAGS
+= -DFLAC__HAS_OGG
=0
146 OGG_INCLUDE_DIR
=$(HOME
)/local
/include
147 OGG_LIB_DIR
=$(HOME
)/local
/lib
149 ifneq (0,$(USE_LROUND
))
150 CONFIG_CFLAGS
+= -DHAVE_LROUND
153 ifneq (0,$(USE_FSEEKO
))
154 CONFIG_CFLAGS
+= -DHAVE_FSEEKO
157 ifneq (0,$(USE_LANGINFO_CODESET
))
158 CONFIG_CFLAGS
+= -DHAVE_LANGINFO_CODESET