xref: /netbsd-src/sys/external/bsd/acpica/dist/generate/unix/Makefile.config (revision 9ac63422b666fbe53a067de74d8af2aa4e45a08b)
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# Notes:
23#   gcc should be version 4 or greater, otherwise some of the options
24#       used will not be recognized.
25#   Global optimization flags (such as -O2, -Os) are not used, since
26#       they cause issues on some compilers.
27#   The _GNU_SOURCE symbol is required for many hosts.
28#
29PROGS =         acpibin acpiexec acpihelp acpinames acpisrc acpixtract iasl
30
31HOST =          _CYGWIN
32CC =            gcc
33COMPILE =       $(CC) -c $(CFLAGS) $(CWARNINGFLAGS) -o$@ $?
34
35#
36# Common defines
37#
38ACPICA_SRC =    ../../../source
39ACPICA_COMMON = $(ACPICA_SRC)/common
40ACPICA_CORE =   $(ACPICA_SRC)/components
41ACPICA_TOOLS =  $(ACPICA_SRC)/tools
42ACPICA_OSL =    $(ACPICA_SRC)/os_specific/service_layers
43ASL_COMPILER =  $(ACPICA_SRC)/compiler
44COPYPROG =      @mkdir -p ../bin; rm -f ../bin/$(PROG); cp --remove-destination $(PROG) ../bin
45INSTALLDIR =    /usr/bin
46INSTALLPROG =   cp --remove-destination $(PROG) $(INSTALLDIR)
47#
48# Common compiler flags. The warning flags in addition to -Wall are not
49# automatically included in -Wall.
50#
51CFLAGS += \
52    -D$(HOST) \
53    -D_GNU_SOURCE \
54    -I$(ACPICA_SRC)/include
55
56CWARNINGFLAGS = \
57    -ansi \
58    -Wall \
59    -Wbad-function-cast \
60    -Wdeclaration-after-statement \
61    -Werror \
62    -Wformat=2 \
63    -Wmissing-declarations \
64    -Wmissing-prototypes \
65    -Wstrict-aliasing=0 \
66    -Wstrict-prototypes \
67    -Wswitch-default \
68    -Wpointer-arith \
69    -Wundef
70
71#
72# gcc 4+ flags
73#
74CWARNINGFLAGS += \
75    -Waddress \
76    -Waggregate-return \
77    -Wchar-subscripts \
78    -Wempty-body \
79    -Wlogical-op \
80    -Wmissing-declarations \
81    -Wmissing-field-initializers \
82    -Wmissing-parameter-type \
83    -Wnested-externs \
84    -Wold-style-declaration \
85    -Wold-style-definition \
86    -Wredundant-decls \
87    -Wtype-limits
88
89#
90# Extra warning flags (possible future use)
91#
92#CWARNINGFLAGS += \
93#	-Wcast-qual \
94#	-Wconversion
95#	-Wshadow \
96
97#
98# Bison/Flex configuration
99#
100# -v: verbose, produces a .output file
101# -d: produces the defines header file
102# -y: act like yacc
103#
104# -i: generate case insensitive scanner
105# -s: suppress default rule, abort on unknown input
106#
107# Berkeley yacc configuration
108#
109#YACC=      byacc
110#YFLAGS +=  -v -d
111#
112YACC=       bison
113YFLAGS +=   -v -d -y
114
115LEX=        flex
116LFLAGS +=   -i -s
117