blob: a13e9c7f1fc5007d130807d75aa0a0a0120ddb0f [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001# SPDX-License-Identifier: GPL-2.0
Borislav Petkov85c66be2013-02-20 16:32:30 +01002include ../../scripts/Makefile.include
Arnaldo Carvalho de Meloca70c242016-03-18 13:57:20 -03003include ../../scripts/utilities.mak # QUIET_CLEAN
Borislav Petkov85c66be2013-02-20 16:32:30 +01004
Jiri Olsab4f916682015-01-09 16:38:25 +01005ifeq ($(srctree),)
Uwe Kleine-Könige19b7ce2016-11-22 09:30:26 +01006srctree := $(patsubst %/,%,$(dir $(CURDIR)))
Jiri Olsab4f916682015-01-09 16:38:25 +01007srctree := $(patsubst %/,%,$(dir $(srctree)))
8srctree := $(patsubst %/,%,$(dir $(srctree)))
9#$(info Determined 'srctree' to be $(srctree))
10endif
11
David Carrillo-Cisneros12024aa2017-08-27 00:54:39 -070012CC ?= $(CROSS_COMPILE)gcc
13AR ?= $(CROSS_COMPILE)ar
14LD ?= $(CROSS_COMPILE)ld
Rabin Vincent3c4797d2013-05-17 22:27:44 +020015
Jiri Olsab4f916682015-01-09 16:38:25 +010016MAKEFLAGS += --no-print-directory
Borislav Petkov85c66be2013-02-20 16:32:30 +010017
Jiri Olsa285a8f22015-01-10 20:53:13 +010018LIBFILE = $(OUTPUT)libapi.a
Borislav Petkov85c66be2013-02-20 16:32:30 +010019
Jiri Olsab4f916682015-01-09 16:38:25 +010020CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
Jiri Olsa58b79182017-09-08 10:46:19 +020021CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -fPIC
Arnaldo Carvalho de Melo49b3cd32017-02-14 10:55:27 -030022
Jiri Olsa58b79182017-09-08 10:46:19 +020023ifeq ($(DEBUG),0)
David Carrillo-Cisneros38660582017-08-27 00:54:40 -070024ifeq ($(CC_NO_CLANG), 0)
Arnaldo Carvalho de Melo49b3cd32017-02-14 10:55:27 -030025 CFLAGS += -O3
26else
27 CFLAGS += -O6
28endif
Jiri Olsa58b79182017-09-08 10:46:19 +020029endif
30
31ifeq ($(DEBUG),0)
32 CFLAGS += -D_FORTIFY_SOURCE
33endif
Chris Phlipotb983d542016-06-30 22:12:32 -070034
35# Treat warnings as errors unless directed not to
36ifneq ($(WERROR),0)
37 CFLAGS += -Werror
38endif
39
Jiri Olsab4f916682015-01-09 16:38:25 +010040CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
Jiri Olsa975f14f2016-02-14 17:03:42 +010041CFLAGS += -I$(srctree)/tools/lib/api
Arnaldo Carvalho de Melob31e3e32016-07-08 15:26:50 -030042CFLAGS += -I$(srctree)/tools/include
Borislav Petkov85c66be2013-02-20 16:32:30 +010043
44RM = rm -f
45
Jiri Olsa285a8f22015-01-10 20:53:13 +010046API_IN := $(OUTPUT)libapi-in.o
Borislav Petkov85c66be2013-02-20 16:32:30 +010047
Jiri Olsa7c422f52015-09-23 12:34:02 +020048all:
49
Jiri Olsab4f916682015-01-09 16:38:25 +010050export srctree OUTPUT CC LD CFLAGS V
Jiri Olsaab6201d2015-09-23 12:33:56 +020051include $(srctree)/tools/build/Makefile.include
Borislav Petkov85c66be2013-02-20 16:32:30 +010052
Jiri Olsa7c422f52015-09-23 12:34:02 +020053all: fixdep $(LIBFILE)
Borislav Petkov553873e2013-12-09 17:14:23 +010054
Jiri Olsab4f916682015-01-09 16:38:25 +010055$(API_IN): FORCE
Jiri Olsa285a8f22015-01-10 20:53:13 +010056 @$(MAKE) $(build)=libapi
Jiri Olsab4f916682015-01-09 16:38:25 +010057
58$(LIBFILE): $(API_IN)
59 $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(API_IN)
Borislav Petkov85c66be2013-02-20 16:32:30 +010060
61clean:
Jiri Olsa285a8f22015-01-10 20:53:13 +010062 $(call QUIET_CLEAN, libapi) $(RM) $(LIBFILE); \
Riku Voipioc867b152015-06-18 15:52:18 +030063 find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | xargs $(RM)
Borislav Petkov85c66be2013-02-20 16:32:30 +010064
Jiri Olsab4f916682015-01-09 16:38:25 +010065FORCE:
66
67.PHONY: clean FORCE