# # 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: # $(BITS) must be set to either 32 or 64 # gcc should be version 4 or greater, otherwise some of the options # used will not be recognized. # Global optimization flags (such as -O2, -Os) may cause issues on # some compilers. # The _GNU_SOURCE symbol is required for many hosts. # .SUFFIXES : PROGS = acpibin acpiexec acpihelp acpinames acpisrc acpixtract iasl HOST = _CYGWIN CC = gcc # # Common defines # OBJDIR = obj$(BITS) BINDIR = bin$(BITS) BITSFLAG = -m$(BITS) COMPILEOBJ = $(CC) -c $(CFLAGS) $(OPT_CFLAGS) -o $@ $< LINKPROG = $(CC) $(OBJECTS) -o $(PROG) $(LDFLAGS) INSTALLDIR = /usr/bin INSTALLPROG = install -D ../$(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 file to the local bin[32|64] directory # COPYPROG = \ @mkdir -p ../$(BINDIR); \ cp --remove-destination $(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 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 # OPT_CFLAGS ?= \ -D_FORTIFY_SOURCE=2\ -O2\ $(CWARNINGFLAGS) CFLAGS += \ $(BITSFLAG)\ -D$(HOST)\ -D_GNU_SOURCE\ -I$(ACPICA_INCLUDE) LDFLAGS += $(BITSFLAG) # # 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 # # Additional gcc 4+ warning flags # CWARNINGFLAGS += \ -Waddress\ -Waggregate-return\ -Wchar-subscripts\ -Wempty-body\ -Wlogical-op\ -Wmissing-declarations\ -Wmissing-field-initializers\ -Wmissing-parameter-type\ -Wnested-externs\ -Wold-style-declaration\ -Wold-style-definition\ -Wredundant-decls\ -Wtype-limits # # Extra warning flags (for possible future use) # #CWARNINGFLAGS += \ # -Wcast-qual\ # -Wconversion\ # -Wshadow\ # # Bison/Flex configuration # # -v: verbose, produces a .output file # -d: produces the defines header file # -y: act like yacc # # -i: generate case insensitive scanner # -s: suppress default rule, abort on unknown input # # Berkeley yacc configuration # #YACC= byacc #YFLAGS += -v -d # YACC= bison YFLAGS += -v -d -y LEX= flex LFLAGS += -i -s