libFLAC: Support 64bit brword/bwword
[flac.git] / build / config.mk
1 #  FLAC - Free Lossless Audio Codec
2 #  Copyright (C) 2001-2009  Josh Coalson
3 #  Copyright (C) 2011-2014  Xiph.Org Foundation
4 #
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
12 #  distributed.
13 #
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
17 #  distribution.
18
19 #
20 # customizable settings from the make invocation
21 #
22
23 USE_OGG     ?= 1
24 USE_ICONV   ?= 1
25 USE_LROUND  ?= 1
26 USE_FSEEKO  ?= 1
27 USE_LANGINFO_CODESET ?= 1
28
29 #
30 # debug/release selection
31 #
32
33 DEFAULT_BUILD = release
34
35 F_PIC := -fPIC
36
37 # returns Linux, Darwin, FreeBSD, etc.
38 ifndef OS
39     OS := $(shell uname -s)
40 endif
41 # returns i386, x86_64, powerpc, etc.
42 ifndef PROC
43     ifeq ($(findstring Windows,$(OS)),Windows)
44         PROC := i386 # failsafe
45         USE_ICONV := 0
46         USE_LANGINFO_CODESET := 0
47         ifeq (mingw32,$(shell gcc -dumpmachine)) # MinGW (mainline): mingw32
48             USE_FSEEKO := 0
49         endif
50         # ifeq ($(findstring i686,$(shell gcc -dumpmachine)),i686) # MinGW-w64: i686-w64-mingw32
51         ifeq ($(findstring x86_64,$(shell gcc -dumpmachine)),x86_64) # MinGW-w64: x86_64-w64-mingw32
52             PROC := x86_64
53             F_PIC :=
54         endif
55     else
56         ifeq ($(shell uname -p),amd64)
57             PROC := x86_64
58         else
59             PROC := $(shell uname -p)
60         endif
61     endif
62 endif
63 ifeq ($(PROC),powerpc)
64     PROC := ppc
65 endif
66 # x64_64 Mac OS outputs 'i386' in uname -p; use uname -m instead
67 ifeq ($(PROC),i386)
68     ifeq ($(OS),Darwin)
69         PROC := $(shell uname -m)
70     endif
71 endif
72
73 ifeq ($(OS),Linux)
74     PROC := $(shell uname -m)
75     USE_ICONV := 0
76 endif
77
78 debug    : BUILD = debug
79 valgrind : BUILD = debug
80 release  : BUILD = release
81
82 # override LINKAGE on OS X until we figure out how to get 'cc -static' to work
83 ifeq ($(OS),Darwin)
84 LINKAGE = -arch $(PROC)
85 else
86 debug    : LINKAGE = -static
87 valgrind : LINKAGE = -dynamic
88 release  : LINKAGE = -static
89 endif
90
91 all default: $(DEFAULT_BUILD)
92
93 #
94 # GNU makefile fragment for emulating stuff normally done by configure
95 #
96
97 VERSION=\"1.3.1\"
98
99 CONFIG_CFLAGS=$(CUSTOM_CFLAGS) -DHAVE_STDINT_H -DHAVE_INTTYPES_H -DHAVE_CXX_VARARRAYS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
100
101 ifeq ($(OS),Darwin)
102     CONFIG_CFLAGS += -DFLAC__SYS_DARWIN -DHAVE_SYS_PARAM_H -arch $(PROC)
103 else
104     CONFIG_CFLAGS += -DHAVE_SOCKLEN_T
105 endif
106
107 ifeq ($(PROC),ppc)
108     CONFIG_CFLAGS += -DWORDS_BIGENDIAN=1 -DCPU_IS_LITTLE_ENDIAN=0
109 else
110     CONFIG_CFLAGS += -DWORDS_BIGENDIAN=0 -DCPU_IS_LITTLE_ENDIAN=1
111 endif
112
113 ifeq ($(OS),Linux)
114         ifeq ($(PROC),x86_64)
115         CONFIG_CFLAGS += -fPIC
116         endif
117 endif
118 ifeq ($(OS),FreeBSD)
119     CONFIG_CFLAGS += -DHAVE_SYS_PARAM_H
120 endif
121
122 ifneq (0,$(USE_ICONV))
123     CONFIG_CFLAGS += -DHAVE_ICONV
124     ICONV_LIBS = -liconv
125 else
126     ICONV_LIBS =
127 endif
128
129 ifneq (0,$(USE_OGG))
130     CONFIG_CFLAGS += -DFLAC__HAS_OGG=1
131     OGG_INCLUDES = -I$(OGG_INCLUDE_DIR)
132     OGG_EXPLICIT_LIBS = $(OGG_LIB_DIR)/libogg.a
133     OGG_LIBS = -L$(OGG_LIB_DIR) -logg
134     OGG_SRCS = $(OGG_SRCS_C)
135 else
136     CONFIG_CFLAGS += -DFLAC__HAS_OGG=0
137     OGG_INCLUDES =
138     OGG_EXPLICIT_LIBS =
139     OGG_LIBS =
140     OGG_SRCS =
141 endif
142
143 OGG_INCLUDE_DIR=$(HOME)/local/include
144 OGG_LIB_DIR=$(HOME)/local/lib
145
146 ifneq (0,$(USE_LROUND))
147     CONFIG_CFLAGS += -DHAVE_LROUND
148 endif
149
150 ifneq (0,$(USE_FSEEKO))
151     CONFIG_CFLAGS += -DHAVE_FSEEKO
152 endif
153
154 ifneq (0,$(USE_LANGINFO_CODESET))
155     CONFIG_CFLAGS += -DHAVE_LANGINFO_CODESET
156 endif