blob: 2538675731c7a52c8afa708ba82e75855a5e9abb [file] [log] [blame]
Borislav Petkov85c66be2013-02-20 16:32:30 +01001include ../../scripts/Makefile.include
Arnaldo Carvalho de Meloca70c242016-03-18 13:57:20 -03002include ../../scripts/utilities.mak # QUIET_CLEAN
Borislav Petkov85c66be2013-02-20 16:32:30 +01003
Jiri Olsab4f916682015-01-09 16:38:25 +01004ifeq ($(srctree),)
Uwe Kleine-Könige19b7ce2016-11-22 09:30:26 +01005srctree := $(patsubst %/,%,$(dir $(CURDIR)))
Jiri Olsab4f916682015-01-09 16:38:25 +01006srctree := $(patsubst %/,%,$(dir $(srctree)))
7srctree := $(patsubst %/,%,$(dir $(srctree)))
8#$(info Determined 'srctree' to be $(srctree))
9endif
10
David Carrillo-Cisneros12024aa2017-08-27 00:54:39 -070011CC ?= $(CROSS_COMPILE)gcc
12AR ?= $(CROSS_COMPILE)ar
13LD ?= $(CROSS_COMPILE)ld
Rabin Vincent3c4797d2013-05-17 22:27:44 +020014
Jiri Olsab4f916682015-01-09 16:38:25 +010015MAKEFLAGS += --no-print-directory
Borislav Petkov85c66be2013-02-20 16:32:30 +010016
Jiri Olsa285a8f22015-01-10 20:53:13 +010017LIBFILE = $(OUTPUT)libapi.a
Borislav Petkov85c66be2013-02-20 16:32:30 +010018
Jiri Olsab4f916682015-01-09 16:38:25 +010019CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
Arnaldo Carvalho de Melo49b3cd32017-02-14 10:55:27 -030020CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
21
22ifeq ($(CC), clang)
23 CFLAGS += -O3
24else
25 CFLAGS += -O6
26endif
Chris Phlipotb983d542016-06-30 22:12:32 -070027
28# Treat warnings as errors unless directed not to
29ifneq ($(WERROR),0)
30 CFLAGS += -Werror
31endif
32
Jiri Olsab4f916682015-01-09 16:38:25 +010033CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
Jiri Olsa975f14f2016-02-14 17:03:42 +010034CFLAGS += -I$(srctree)/tools/lib/api
Arnaldo Carvalho de Melob31e3e32016-07-08 15:26:50 -030035CFLAGS += -I$(srctree)/tools/include
Borislav Petkov85c66be2013-02-20 16:32:30 +010036
37RM = rm -f
38
Jiri Olsa285a8f22015-01-10 20:53:13 +010039API_IN := $(OUTPUT)libapi-in.o
Borislav Petkov85c66be2013-02-20 16:32:30 +010040
Jiri Olsa7c422f52015-09-23 12:34:02 +020041all:
42
Jiri Olsab4f916682015-01-09 16:38:25 +010043export srctree OUTPUT CC LD CFLAGS V
Jiri Olsaab6201d2015-09-23 12:33:56 +020044include $(srctree)/tools/build/Makefile.include
Borislav Petkov85c66be2013-02-20 16:32:30 +010045
Jiri Olsa7c422f52015-09-23 12:34:02 +020046all: fixdep $(LIBFILE)
Borislav Petkov553873e2013-12-09 17:14:23 +010047
Jiri Olsab4f916682015-01-09 16:38:25 +010048$(API_IN): FORCE
Jiri Olsa285a8f22015-01-10 20:53:13 +010049 @$(MAKE) $(build)=libapi
Jiri Olsab4f916682015-01-09 16:38:25 +010050
51$(LIBFILE): $(API_IN)
52 $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(API_IN)
Borislav Petkov85c66be2013-02-20 16:32:30 +010053
54clean:
Jiri Olsa285a8f22015-01-10 20:53:13 +010055 $(call QUIET_CLEAN, libapi) $(RM) $(LIBFILE); \
Riku Voipioc867b152015-06-18 15:52:18 +030056 find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | xargs $(RM)
Borislav Petkov85c66be2013-02-20 16:32:30 +010057
Jiri Olsab4f916682015-01-09 16:38:25 +010058FORCE:
59
60.PHONY: clean FORCE