xref: /openbmc/linux/tools/power/acpi/Makefile (revision 83b80bac)
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	utexcep.o\
116	utglobal.o\
117	utmath.o\
118	utstring.o\
119	utxferror.o\
120	oslinuxtbl.o\
121	cmfsize.o\
122	getopt.o
123
124DUMP_OBJS := $(addprefix $(OUTPUT)tools/acpidump/,$(DUMP_OBJS))
125
126$(OUTPUT)acpidump: $(DUMP_OBJS)
127	$(ECHO) "  LD      " $@
128	$(QUIET) $(LD) $(CFLAGS) $(LDFLAGS) $(DUMP_OBJS) -L$(OUTPUT) -o $@
129	$(QUIET) $(STRIPCMD) $@
130
131$(OUTPUT)tools/acpidump/%.o: %.c
132	$(ECHO) "  CC      " $@
133	$(QUIET) $(CC) -c $(CFLAGS) -o $@ $<
134
135# --- ACPIDUMP END ---
136
137all: $(OUTPUT)acpidump
138	echo $(OUTPUT)
139
140clean:
141	-find $(OUTPUT) \( -not -type d \) -and \( -name '*~' -o -name '*.[oas]' \) -type f -print \
142	 | xargs rm -f
143	-rm -f $(OUTPUT)acpidump
144
145install-tools:
146	$(INSTALL) -d $(DESTDIR)${sbindir}
147	$(INSTALL_PROGRAM) $(OUTPUT)acpidump $(DESTDIR)${sbindir}
148
149install-man:
150	$(INSTALL_DATA) -D man/acpidump.8 $(DESTDIR)${mandir}/man8/acpidump.8
151
152install: all install-tools install-man
153
154uninstall:
155	- rm -f $(DESTDIR)${sbindir}/acpidump
156	- rm -f $(DESTDIR)${mandir}/man8/acpidump.8
157
158.PHONY: all utils install-tools install-man install uninstall clean
159