1# tools/power/acpi/Makefile - ACPI tool Makefile 2# 3# Copyright (c) 2013, Intel Corporation 4# Author: Lv Zheng <lv.zheng@intel.com> 5# 6# This program is free software; you can redistribute it and/or 7# modify it under the terms of the GNU General Public License 8# as published by the Free Software Foundation; version 2 9# of the License. 10 11OUTPUT=./ 12ifeq ("$(origin O)", "command line") 13 OUTPUT := $(O)/ 14endif 15 16ifneq ($(OUTPUT),) 17# check that the output directory actually exists 18OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd) 19$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist)) 20endif 21 22SUBDIRS = tools/ec 23 24# --- CONFIGURATION BEGIN --- 25 26# Set the following to `true' to make a unstripped, unoptimized 27# binary. Leave this set to `false' for production use. 28DEBUG ?= true 29 30# make the build silent. Set this to something else to make it noisy again. 31V ?= false 32 33# Prefix to the directories we're installing to 34DESTDIR ?= 35 36# --- CONFIGURATION END --- 37 38# Directory definitions. These are default and most probably 39# do not need to be changed. Please note that DESTDIR is 40# added in front of any of them 41 42bindir ?= /usr/bin 43sbindir ?= /usr/sbin 44mandir ?= /usr/man 45 46# Toolchain: what tools do we use, and what options do they need: 47 48INSTALL = /usr/bin/install -c 49INSTALL_PROGRAM = ${INSTALL} 50INSTALL_DATA = ${INSTALL} -m 644 51INSTALL_SCRIPT = ${INSTALL_PROGRAM} 52 53# If you are running a cross compiler, you may want to set this 54# to something more interesting, like "arm-linux-". If you want 55# to compile vs uClibc, that can be done here as well. 56CROSS = #/usr/i386-linux-uclibc/usr/bin/i386-uclibc- 57CC = $(CROSS)gcc 58LD = $(CROSS)gcc 59STRIP = $(CROSS)strip 60HOSTCC = gcc 61 62# check if compiler option is supported 63cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -x c /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;} 64 65# use '-Os' optimization if available, else use -O2 66OPTIMIZATION := $(call cc-supports,-Os,-O2) 67 68WARNINGS := -Wall 69WARNINGS += $(call cc-supports,-Wstrict-prototypes) 70WARNINGS += $(call cc-supports,-Wdeclaration-after-statement) 71 72KERNEL_INCLUDE := ../../../include 73ACPICA_INCLUDE := ../../../drivers/acpi/acpica 74CFLAGS += -D_LINUX -I$(KERNEL_INCLUDE) -I$(ACPICA_INCLUDE) 75CFLAGS += $(WARNINGS) 76 77ifeq ($(strip $(V)),false) 78 QUIET=@ 79 ECHO=@echo 80else 81 QUIET= 82 ECHO=@\# 83endif 84export QUIET ECHO 85 86# if DEBUG is enabled, then we do not strip or optimize 87ifeq ($(strip $(DEBUG)),true) 88 CFLAGS += -O1 -g -DDEBUG 89 STRIPCMD = /bin/true -Since_we_are_debugging 90else 91 CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer 92 STRIPCMD = $(STRIP) -s --remove-section=.note --remove-section=.comment 93endif 94 95# --- ACPIDUMP BEGIN --- 96 97vpath %.c \ 98 ../../../drivers/acpi/acpica\ 99 tools/acpidump\ 100 common\ 101 os_specific/service_layers 102 103CFLAGS += -DACPI_DUMP_APP -Itools/acpidump 104 105DUMP_OBJS = \ 106 apdump.o\ 107 apfiles.o\ 108 apmain.o\ 109 osunixdir.o\ 110 osunixmap.o\ 111 osunixxf.o\ 112 tbprint.o\ 113 tbxfroot.o\ 114 utbuffer.o\ 115 utdebug.o\ 116 utexcep.o\ 117 utglobal.o\ 118 utmath.o\ 119 utprint.o\ 120 utstring.o\ 121 utxferror.o\ 122 oslibcfs.o\ 123 oslinuxtbl.o\ 124 cmfsize.o\ 125 getopt.o 126 127DUMP_OBJS := $(addprefix $(OUTPUT)tools/acpidump/,$(DUMP_OBJS)) 128 129$(OUTPUT)acpidump: $(DUMP_OBJS) 130 $(ECHO) " LD " $@ 131 $(QUIET) $(LD) $(CFLAGS) $(LDFLAGS) $(DUMP_OBJS) -L$(OUTPUT) -o $@ 132 $(QUIET) $(STRIPCMD) $@ 133 134$(OUTPUT)tools/acpidump/%.o: %.c 135 $(ECHO) " CC " $@ 136 $(QUIET) $(CC) -c $(CFLAGS) -o $@ $< 137 138# --- ACPIDUMP END --- 139 140all: $(OUTPUT)acpidump 141 echo $(OUTPUT) 142 143clean: 144 -find $(OUTPUT) \( -not -type d \) -and \( -name '*~' -o -name '*.[oas]' \) -type f -print \ 145 | xargs rm -f 146 -rm -f $(OUTPUT)acpidump 147 148install-tools: 149 $(INSTALL) -d $(DESTDIR)${sbindir} 150 $(INSTALL_PROGRAM) $(OUTPUT)acpidump $(DESTDIR)${sbindir} 151 152install-man: 153 $(INSTALL_DATA) -D man/acpidump.8 $(DESTDIR)${mandir}/man8/acpidump.8 154 155install: all install-tools install-man 156 157uninstall: 158 - rm -f $(DESTDIR)${sbindir}/acpidump 159 - rm -f $(DESTDIR)${mandir}/man8/acpidump.8 160 161.PHONY: all utils install-tools install-man install uninstall clean 162