mirror of
https://github.com/acpica/acpica/
synced 2025-02-25 18:04:08 +03:00

This patch adds a demo EFI application for stdin/stdout testing. This utility can be used to narrow down root causes of porting issues. Lv Zheng. Signed-off-by: Lv Zheng <lv.zheng@intel.com>
249 lines
5.4 KiB
Makefile
249 lines
5.4 KiB
Makefile
|
|
# Makefile.config
|
|
#
|
|
# Common configuration and setup file to generate the ACPICA tools and
|
|
# utilities: the acpidump.
|
|
#
|
|
# 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/efi. It specifically
|
|
# places all object files in a generate/efi 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
|
|
#
|
|
# TARGET Build target platform can be overridden on the make command
|
|
# line by adding the followings to the invocation:
|
|
# TARGET="..."
|
|
# Possible target (ia32, x86_64, etc.) can be used to initiate
|
|
# a possible cross build.
|
|
# OPT_CFLAGS Optimization CFLAGS can be overridden on the make command
|
|
# line by adding the followings to the invocation:
|
|
# OPT_CFLAGS="..."
|
|
#
|
|
# Notes:
|
|
# gcc should be version 4 or greater, otherwise some of the options
|
|
# used will not be recognized.
|
|
#
|
|
|
|
.SUFFIXES :
|
|
|
|
#
|
|
# Common defines
|
|
#
|
|
PROGS = acpidump efihello
|
|
HOST = $(shell uname -m | sed s,i[3456789]86,ia32,)
|
|
TARGET = $(shell uname -m | sed s,i[3456789]86,ia32,)
|
|
OBJDIR = obj
|
|
BINDIR = bin
|
|
|
|
#
|
|
# 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_EFI = $(ACPICA_SRC)/os_specific/efi
|
|
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
|
|
#
|
|
ACPIDUMP = $(ACPICA_TOOLS)/acpidump
|
|
EFIHELLO = $(ACPICA_TOOLS)/efihello
|
|
|
|
#
|
|
# Common ACPICA header files
|
|
#
|
|
ACPICA_HEADERS = \
|
|
$(wildcard $(ACPICA_INCLUDE)/*.h) \
|
|
$(wildcard $(ACPICA_INCLUDE)/platform/*.h)
|
|
|
|
#
|
|
# GCC configuration
|
|
#
|
|
CC = gcc
|
|
LD = ld
|
|
OBJCOPY = objcopy
|
|
|
|
CFLAGS = \
|
|
--save-temps\
|
|
-nostdinc\
|
|
-nostdlib\
|
|
-std=c99\
|
|
-U__linux__\
|
|
-U_LINUX\
|
|
-D_GNU_EFI\
|
|
-D_GNU_SOURCE\
|
|
-fno-builtin\
|
|
-iwithprefix include\
|
|
-fno-stack-protector\
|
|
-fno-strict-aliasing\
|
|
-fpic\
|
|
-fshort-wchar\
|
|
-I$(ACPICA_INCLUDE)
|
|
LDFLAGS = \
|
|
-nostdinc\
|
|
-nostdlib\
|
|
-znocombreloc\
|
|
-Bsymbolic\
|
|
-shared\
|
|
-no-undefined
|
|
OBJCOPYFLAGS = \
|
|
-j .text\
|
|
-j .sdata\
|
|
-j .data\
|
|
-j .dynamic\
|
|
-j .dynsym\
|
|
-j .rel\
|
|
-j .rela\
|
|
-j .reloc\
|
|
--target=efi-app-$(TARGET)
|
|
|
|
#
|
|
# 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
|
|
|
|
|
|
# Common compiler warning flags. The warning flags in addition
|
|
# to -Wall are not automatically included in -Wall.
|
|
#
|
|
CWARNINGFLAGS = \
|
|
-Wall\
|
|
-Wbad-function-cast\
|
|
-Wdeclaration-after-statement\
|
|
-Werror\
|
|
-Wformat=2\
|
|
-Wmissing-declarations\
|
|
-Wmissing-prototypes\
|
|
-Wstrict-aliasing=0\
|
|
-Wswitch-default\
|
|
-Wpointer-arith\
|
|
-Wempty-body\
|
|
-Wlogical-op\
|
|
-Wmissing-parameter-type\
|
|
-Wold-style-declaration\
|
|
-Wtype-limits
|
|
#
|
|
# Extra warning flags (for possible future use)
|
|
#
|
|
#CWARNINGFLAGS += \
|
|
# -Wcast-qual\
|
|
# -Wconversion\
|
|
# -Wshadow\
|
|
# -Wstrict-prototypes\
|
|
# -Wundef\
|
|
|
|
CFLAGS += $(OPT_CFLAGS)
|
|
|
|
#
|
|
# EFI environment definitions
|
|
#
|
|
EFIINC = /usr/include/efi
|
|
|
|
ifeq ($(TARGET),ia32)
|
|
|
|
CFLAGS += -DACPI_MACHINE_WIDTH=32
|
|
ifeq ($(HOST),x86_64)
|
|
EFILIB = /usr/lib32
|
|
CFLAGS += -m32
|
|
LDFLAGS += -melf_i386
|
|
else # HOST eq ia32
|
|
EFILIB = /usr/lib
|
|
endif
|
|
|
|
else # TARGET eq x86_64
|
|
|
|
CFLAGS += \
|
|
-DEFI_FUNCTION_WRAPPER\
|
|
-DACPI_MACHINE_WIDTH=64
|
|
ifeq ($(HOST),ia32)
|
|
EFILIB = /usr/lib64
|
|
CFLAGS += -m64
|
|
LDFLAGS += -melf_x86_64
|
|
else # HOST eq x86_64
|
|
EFILIB = /usr/lib
|
|
endif
|
|
|
|
endif
|
|
|
|
CFLAGS += \
|
|
-I$(EFIINC)\
|
|
-I$(EFIINC)/$(TARGET)\
|
|
-I$(EFIINC)/protocol
|
|
LDFLAGS += \
|
|
-T $(EFILIB)/elf_$(TARGET)_efi.lds\
|
|
-L$(EFILIB)\
|
|
$(EFILIB)/crt0-efi-$(TARGET).o
|
|
LIBS = \
|
|
-lefi\
|
|
-lgnuefi\
|
|
$(shell $(CC) -print-libgcc-file-name)
|
|
|
|
#
|
|
# 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
|
|
#
|
|
YACC= bison
|
|
YFLAGS += -y
|
|
|
|
LEX= flex
|
|
LFLAGS += -i -s
|
|
|
|
#
|
|
# Command definitions
|
|
#
|
|
COMPILEOBJ = $(CC) -c $(CFLAGS) -o $@ $<
|
|
LINKPROG = $(LD) $(LDFLAGS) $(OBJECTS) -o $@ $(LIBS)
|
|
OBJCOPYPROG = $(OBJCOPY) $(OBJCOPYFLAGS) $< $@
|
|
COPYPROG = \
|
|
@mkdir -p ../$(BINDIR); \
|
|
cp -f $< ../$(BINDIR); \
|
|
echo "Copied $< to $@";
|