kernel: Sync ACPICA with Intel's version 20140214.
[dragonfly.git] / sys / contrib / dev / acpica / generate / unix / Makefile.config
1 #
2 # Makefile.config
3 #
4 # Common configuration and setup file to generate the ACPICA tools and
5 # utilities: the iASL compiler, acpiexec, acpihelp, acpinames, acpisrc,
6 # acpixtract, acpibin.
7 #
8 # This file is included by the individual makefiles for each tool.
9 #
10
11 #
12 # Note: This makefile is intended to be used from within the native
13 # ACPICA directory structure, from under generate/unix. It specifically
14 # places all object files in a generate/unix subdirectory, not within
15 # the various ACPICA source directories. This prevents collisions
16 # between different compilations of the same source file with different
17 # compile options, and prevents pollution of the source code.
18 #
19
20 #
21 # Configuration
22 #
23 # OPT_CFLAGS can be overridden on the make command line by
24 #   adding OPT_CFLAGS="..." to the invocation.
25 #
26 # Notes:
27 #   gcc should be version 4 or greater, otherwise some of the options
28 #     used will not be recognized.
29 #   Optional: Set HOST to an appropriate value (_LINUX, _FreeBSD, _APPLE, _CYGWIN, etc.)
30 #     See include/platform/acenv.h for supported values.
31 #     Note: HOST is not nearly as important for applications as it
32 #     is for the kernel-resident version of ACPICA, and it may
33 #     not be necessary to change it.
34 #
35 .SUFFIXES :
36 PROGS = acpibin acpidump acpiexamples acpiexec acpihelp acpinames acpisrc acpixtract iasl
37 HOST ?= _CYGWIN
38 CC =    gcc
39
40 #
41 # Common defines
42 #
43 OBJDIR =     obj
44 BINDIR =     bin
45 COMPILEOBJ = $(CC) -c $(CFLAGS) $(OPT_CFLAGS) -o $@ $<
46 LINKPROG =   $(CC) $(OBJECTS) -o $(PROG) $(LDFLAGS)
47 PREFIX ?=    /usr
48 INSTALLDIR = $(PREFIX)/bin
49
50 ifeq ($(HOST), _APPLE)
51 INSTALL  =   cp
52 INSTALLFLAGS ?= -f
53 else
54 INSTALL =    install
55 INSTALLFLAGS ?= -m 555 -s
56 endif
57
58 INSTALLPROG = \
59         mkdir -p $(DESTDIR)$(INSTALLDIR); \
60         $(INSTALL) $(INSTALLFLAGS) ../$(BINDIR)/$(PROG) $(DESTDIR)$(INSTALLDIR)/$(PROG)
61
62 #
63 # Rename a .exe file if necessary
64 #
65 RENAMEPROG = \
66         @if [ -e "$(PROG).exe" ] ; then \
67                 mv $(PROG).exe $(PROG); \
68                 echo "Renamed $(PROG).exe to $(PROG)"; \
69         fi;
70
71 #
72 # Copy the final executable to the local bin directory
73 #
74 COPYPROG = \
75         @mkdir -p ../$(BINDIR); \
76         cp -f $(PROG) ../$(BINDIR); \
77         echo "Copied $(PROG) to $(FINAL_PROG)";
78
79 #
80 # Main ACPICA source directories
81 #
82 ACPICA_SRC =            ../../../source
83 ACPICA_COMMON =         $(ACPICA_SRC)/common
84 ACPICA_TOOLS =          $(ACPICA_SRC)/tools
85 ACPICA_OSL =            $(ACPICA_SRC)/os_specific/service_layers
86 ACPICA_CORE =           $(ACPICA_SRC)/components
87 ACPICA_INCLUDE =        $(ACPICA_SRC)/include
88 ACPICA_DEBUGGER =       $(ACPICA_CORE)/debugger
89 ACPICA_DISASSEMBLER =   $(ACPICA_CORE)/disassembler
90 ACPICA_DISPATCHER =     $(ACPICA_CORE)/dispatcher
91 ACPICA_EVENTS =         $(ACPICA_CORE)/events
92 ACPICA_EXECUTER =       $(ACPICA_CORE)/executer
93 ACPICA_HARDWARE =       $(ACPICA_CORE)/hardware
94 ACPICA_NAMESPACE =      $(ACPICA_CORE)/namespace
95 ACPICA_PARSER =         $(ACPICA_CORE)/parser
96 ACPICA_RESOURCES =      $(ACPICA_CORE)/resources
97 ACPICA_TABLES =         $(ACPICA_CORE)/tables
98 ACPICA_UTILITIES =      $(ACPICA_CORE)/utilities
99
100 #
101 # ACPICA tool and utility source directories
102 #
103 ACPIBIN =               $(ACPICA_TOOLS)/acpibin
104 ACPIDUMP =              $(ACPICA_TOOLS)/acpidump
105 ACPIEXAMPLES =          $(ACPICA_TOOLS)/examples
106 ACPIEXEC =              $(ACPICA_TOOLS)/acpiexec
107 ACPIHELP =              $(ACPICA_TOOLS)/acpihelp
108 ACPINAMES =             $(ACPICA_TOOLS)/acpinames
109 ACPISRC =               $(ACPICA_TOOLS)/acpisrc
110 ACPIXTRACT =            $(ACPICA_TOOLS)/acpixtract
111 ASL_COMPILER =          $(ACPICA_SRC)/compiler
112
113 #
114 # Common ACPICA header files
115 #
116 ACPICA_HEADERS = \
117     $(wildcard $(ACPICA_INCLUDE)/*.h) \
118     $(wildcard $(ACPICA_INCLUDE)/platform/*.h)
119
120 #
121 # Common compiler flags
122 # The _GNU_SOURCE symbol is required for many hosts.
123 #
124 OPT_CFLAGS ?= $(CWARNINGFLAGS)
125
126 #
127 # Optionally disable optimizations. Optimization causes problems on
128 # some compilers such as gcc 4.4
129 #
130 ifneq ($(NOOPT),TRUE)
131 OPT_CFLAGS += -O2 -D_FORTIFY_SOURCE=2
132 endif
133
134 CFLAGS += \
135     -D$(HOST)\
136     -D_GNU_SOURCE\
137     -I$(ACPICA_INCLUDE)
138
139 #
140 # Common compiler warning flags. The warning flags in addition
141 # to -Wall are not automatically included in -Wall.
142 #
143 CWARNINGFLAGS = \
144     -ansi\
145     -Wall\
146     -Wbad-function-cast\
147     -Wdeclaration-after-statement\
148     -Werror\
149     -Wformat=2\
150     -Wmissing-declarations\
151     -Wmissing-prototypes\
152     -Wstrict-aliasing=0\
153     -Wstrict-prototypes\
154     -Wswitch-default\
155     -Wpointer-arith\
156     -Wundef
157
158 #
159 # Common gcc 4+ warning flags
160 #
161 CWARNINGFLAGS += \
162     -Waddress\
163     -Waggregate-return\
164     -Winit-self\
165     -Winline\
166     -Wmissing-declarations\
167     -Wmissing-field-initializers\
168     -Wnested-externs\
169     -Wold-style-definition\
170     -Woverride-init\
171     -Wno-format-nonliteral\
172     -Wredundant-decls
173 #
174 # Per-host flags and exclusions
175 #
176 ifneq ($(HOST), _FreeBSD)
177     CWARNINGFLAGS += \
178         -Wempty-body
179
180     ifneq ($(HOST), _APPLE)
181         CWARNINGFLAGS += \
182         -Wlogical-op\
183         -Wmissing-parameter-type\
184         -Wold-style-declaration\
185         -Wtype-limits
186     endif
187 endif
188
189 #
190 # Extra warning flags (for possible future use)
191 #
192 #CWARNINGFLAGS += \
193 #       -Wcast-qual\
194 #       -Wconversion\
195 #       -Wshadow\
196
197 #
198 # Bison/Flex configuration
199 #
200 # -y: act like yacc
201 #
202 # -i: generate case insensitive scanner
203 # -s: suppress default rule, abort on unknown input
204 #
205 # Optional for Bison/yacc:
206 # -v: verbose, produces a .output file
207 # -d: produces the defines header file
208 #
209 # Berkeley yacc configuration
210 #
211 #YACC=      byacc
212 #YFLAGS +=
213 #
214 YACC=       bison
215 YFLAGS +=   -y
216
217 LEX=        flex
218 LFLAGS +=   -i -s
219