| # |
| # Makefile.config |
| # |
| # Common configuration and setup file to generate the ACPICA tools and |
| # utilities: the iASL compiler, acpiexec, acpihelp, acpinames, acpisrc, |
| # acpixtract, acpibin. |
| # |
| # This file is included by the individual makefiles for each tool. |
| # |
| |
| # |
| # Note: This makefile is intended to be used from within the native |
| # ACPICA directory structure, from under generate/unix. It specifically |
| # places all object files in a generate/unix subdirectory, not within |
| # the various ACPICA source directories. This prevents collisions |
| # between different compilations of the same source file with different |
| # compile options, and prevents pollution of the source code. |
| # |
| |
| # |
| # Configuration |
| # |
| # OPT_CFLAGS can be overridden on the make command line by |
| # adding OPT_CFLAGS="..." to the invocation. |
| # |
| # Notes: |
| # gcc should be version 4 or greater, otherwise some of the options |
| # used will not be recognized. |
| # Optional: Set HOST to an appropriate value (_LINUX, _FreeBSD, _APPLE, _CYGWIN, etc.) |
| # See include/platform/acenv.h for supported values. |
| # Note: HOST is not nearly as important for applications as it |
| # is for the kernel-resident version of ACPICA, and it may |
| # not be necessary to change it. |
| # |
| .SUFFIXES : |
| PROGS = acpibin acpidump acpiexamples acpiexec acpihelp acpinames acpisrc acpixtract iasl |
| HOST ?= _CYGWIN |
| CC = gcc |
| |
| # |
| # Common defines |
| # |
| OBJDIR = obj |
| BINDIR = bin |
| COMPILEOBJ = $(CC) -c $(CFLAGS) $(OPT_CFLAGS) -o $@ $< |
| LINKPROG = $(CC) $(OBJECTS) -o $(PROG) $(LDFLAGS) |
| PREFIX ?= /usr |
| INSTALLDIR = $(PREFIX)/bin |
| UNAME_S := $(shell uname -s) |
| |
| # |
| # Host detection and configuration |
| # |
| ifeq ($(UNAME_S), Darwin) # Mac OS X |
| HOST = _APPLE |
| endif |
| |
| ifeq ($(UNAME_S), DragonFly) |
| HOST = _DragonFly |
| endif |
| |
| ifeq ($(UNAME_S), FreeBSD) |
| HOST = _FreeBSD |
| endif |
| |
| ifeq ($(UNAME_S), NetBSD) |
| HOST = _NetBSD |
| endif |
| |
| ifeq ($(HOST), _APPLE) |
| INSTALL = cp |
| INSTALLFLAGS ?= -f |
| else |
| INSTALL = install |
| INSTALLFLAGS ?= -m 555 -s |
| endif |
| |
| INSTALLPROG = \ |
| mkdir -p $(DESTDIR)$(INSTALLDIR); \ |
| $(INSTALL) $(INSTALLFLAGS) ../$(BINDIR)/$(PROG) $(DESTDIR)$(INSTALLDIR)/$(PROG) |
| |
| # |
| # Rename a .exe file if necessary |
| # |
| RENAMEPROG = \ |
| @if [ -e "$(PROG).exe" ] ; then \ |
| mv $(PROG).exe $(PROG); \ |
| echo "Renamed $(PROG).exe to $(PROG)"; \ |
| fi; |
| |
| # |
| # Copy the final executable to the local bin directory |
| # |
| COPYPROG = \ |
| @mkdir -p ../$(BINDIR); \ |
| cp -f $(PROG) ../$(BINDIR); \ |
| echo "Copied $(PROG) to $(FINAL_PROG)"; |
| |
| # |
| # Main ACPICA source directories |
| # |
| ACPICA_SRC = ../../../source |
| ACPICA_COMMON = $(ACPICA_SRC)/common |
| ACPICA_TOOLS = $(ACPICA_SRC)/tools |
| ACPICA_OSL = $(ACPICA_SRC)/os_specific/service_layers |
| ACPICA_CORE = $(ACPICA_SRC)/components |
| ACPICA_INCLUDE = $(ACPICA_SRC)/include |
| ACPICA_DEBUGGER = $(ACPICA_CORE)/debugger |
| ACPICA_DISASSEMBLER = $(ACPICA_CORE)/disassembler |
| ACPICA_DISPATCHER = $(ACPICA_CORE)/dispatcher |
| ACPICA_EVENTS = $(ACPICA_CORE)/events |
| ACPICA_EXECUTER = $(ACPICA_CORE)/executer |
| ACPICA_HARDWARE = $(ACPICA_CORE)/hardware |
| ACPICA_NAMESPACE = $(ACPICA_CORE)/namespace |
| ACPICA_PARSER = $(ACPICA_CORE)/parser |
| ACPICA_RESOURCES = $(ACPICA_CORE)/resources |
| ACPICA_TABLES = $(ACPICA_CORE)/tables |
| ACPICA_UTILITIES = $(ACPICA_CORE)/utilities |
| |
| # |
| # ACPICA tool and utility source directories |
| # |
| ACPIBIN = $(ACPICA_TOOLS)/acpibin |
| ACPIDUMP = $(ACPICA_TOOLS)/acpidump |
| ACPIEXAMPLES = $(ACPICA_TOOLS)/examples |
| ACPIEXEC = $(ACPICA_TOOLS)/acpiexec |
| ACPIHELP = $(ACPICA_TOOLS)/acpihelp |
| ACPINAMES = $(ACPICA_TOOLS)/acpinames |
| ACPISRC = $(ACPICA_TOOLS)/acpisrc |
| ACPIXTRACT = $(ACPICA_TOOLS)/acpixtract |
| ASL_COMPILER = $(ACPICA_SRC)/compiler |
| |
| # |
| # Common ACPICA header files |
| # |
| ACPICA_HEADERS = \ |
| $(wildcard $(ACPICA_INCLUDE)/*.h) \ |
| $(wildcard $(ACPICA_INCLUDE)/platform/*.h) |
| |
| # |
| # Common compiler flags |
| # The _GNU_SOURCE symbol is required for many hosts. |
| # |
| OPT_CFLAGS ?= $(CWARNINGFLAGS) |
| |
| # |
| # Optionally disable optimizations. Optimization causes problems on |
| # some compilers such as gcc 4.4 |
| # |
| ifneq ($(NOOPT),TRUE) |
| OPT_CFLAGS += -O2 |
| endif |
| |
| # |
| # Optionally disable fortify source. This option can cause |
| # compile errors in toolchains where it is already defined. |
| # |
| ifneq ($(NOFORTIFY),TRUE) |
| OPT_CFLAGS += -D_FORTIFY_SOURCE=2 |
| endif |
| |
| CFLAGS += \ |
| -D$(HOST)\ |
| -D_GNU_SOURCE\ |
| -I$(ACPICA_INCLUDE) |
| |
| # |
| # Common compiler warning flags. The warning flags in addition |
| # to -Wall are not automatically included in -Wall. |
| # |
| CWARNINGFLAGS = \ |
| -std=c99\ |
| -Wall\ |
| -Wbad-function-cast\ |
| -Wdeclaration-after-statement\ |
| -Werror\ |
| -Wformat=2\ |
| -Wmissing-declarations\ |
| -Wmissing-prototypes\ |
| -Wstrict-aliasing=0\ |
| -Wstrict-prototypes\ |
| -Wswitch-default\ |
| -Wpointer-arith\ |
| -Wundef |
| |
| # |
| # Common gcc 4+ warning flags |
| # |
| CWARNINGFLAGS += \ |
| -Waddress\ |
| -Waggregate-return\ |
| -Winit-self\ |
| -Winline\ |
| -Wmissing-declarations\ |
| -Wmissing-field-initializers\ |
| -Wnested-externs\ |
| -Wold-style-definition\ |
| -Wno-format-nonliteral\ |
| -Wredundant-decls |
| # |
| # Per-host flags and exclusions |
| # |
| ifneq ($(HOST), _FreeBSD) |
| CWARNINGFLAGS += \ |
| -Wempty-body |
| |
| ifneq ($(HOST), _APPLE) |
| CWARNINGFLAGS += \ |
| -Woverride-init\ |
| -Wlogical-op\ |
| -Wmissing-parameter-type\ |
| -Wold-style-declaration\ |
| -Wtype-limits |
| endif |
| endif |
| |
| # |
| # Extra warning flags (for possible future use) |
| # |
| #CWARNINGFLAGS += \ |
| # -Wcast-qual\ |
| # -Wconversion\ |
| # -Wshadow\ |
| |
| # |
| # M4 macro processor is used to build the final parser file |
| # |
| # Bison/Flex configuration |
| # |
| # -y: act like yacc |
| # |
| # -i: generate case insensitive scanner |
| # -s: suppress default rule, abort on unknown input |
| # |
| # Optional for Bison/yacc: |
| # -v: verbose, produces a .output file |
| # -d: produces the defines header file |
| # |
| # Berkeley yacc configuration |
| # |
| #YACC= byacc |
| #YFLAGS += |
| # |
| YACC= bison |
| YFLAGS += -y |
| |
| MACROPROC= m4 |
| MFLAGS= -P -I$(ASL_COMPILER) |
| |
| LEX= flex |
| LFLAGS += -i -s |