# # 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 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 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 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 # # Flags/option notes: # Global optimization flags (such as -O2, -Os) are not used, # since they cause issues on some compilers (such as gcc 4.4) # The _GNU_SOURCE symbol is required for many hosts. # OPT_CFLAGS ?= \ -D_FORTIFY_SOURCE=2\ $(CWARNINGFLAGS) 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 = \ -ansi\ -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\ -Wchar-subscripts\ -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 += \ -Wlogical-op\ -Wmissing-parameter-type\ -Wold-style-declaration\ -Wtype-limits endif endif # # Extra warning flags (for possible future use) # #CWARNINGFLAGS += \ # -Wcast-qual\ # -Wconversion\ # -Wshadow\ # # 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 LEX= flex LFLAGS += -i -s