blob: 1e83e3c0744845278aa6ea03b1c440400a1188fb [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)
Jiri Olsa58b79182017-09-08 10:46:19 +020020CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -fPIC
Arnaldo Carvalho de Melo49b3cd32017-02-14 10:55:27 -030021
Jiri Olsa58b79182017-09-08 10:46:19 +020022ifeq ($(DEBUG),0)
David Carrillo-Cisneros38660582017-08-27 00:54:40 -070023ifeq ($(CC_NO_CLANG), 0)
Arnaldo Carvalho de Melo49b3cd32017-02-14 10:55:27 -030024 CFLAGS += -O3
25else
26 CFLAGS += -O6
27endif
Jiri Olsa58b79182017-09-08 10:46:19 +020028endif
29
30ifeq ($(DEBUG),0)
31 CFLAGS += -D_FORTIFY_SOURCE
32endif
Chris Phlipotb983d542016-06-30 22:12:32 -070033
34# Treat warnings as errors unless directed not to
35ifneq ($(WERROR),0)
36 CFLAGS += -Werror
37endif
38
Jiri Olsab4f916682015-01-09 16:38:25 +010039CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
Jiri Olsa975f14f2016-02-14 17:03:42 +010040CFLAGS += -I$(srctree)/tools/lib/api
Arnaldo Carvalho de Melob31e3e32016-07-08 15:26:50 -030041CFLAGS += -I$(srctree)/tools/include
Borislav Petkov85c66be2013-02-20 16:32:30 +010042
43RM = rm -f
44
Jiri Olsa285a8f22015-01-10 20:53:13 +010045API_IN := $(OUTPUT)libapi-in.o
Borislav Petkov85c66be2013-02-20 16:32:30 +010046
Jiri Olsa7c422f52015-09-23 12:34:02 +020047all:
48
Jiri Olsab4f916682015-01-09 16:38:25 +010049export srctree OUTPUT CC LD CFLAGS V
Jiri Olsaab6201d2015-09-23 12:33:56 +020050include $(srctree)/tools/build/Makefile.include
Borislav Petkov85c66be2013-02-20 16:32:30 +010051
Jiri Olsa7c422f52015-09-23 12:34:02 +020052all: fixdep $(LIBFILE)
Borislav Petkov553873e2013-12-09 17:14:23 +010053
Jiri Olsab4f916682015-01-09 16:38:25 +010054$(API_IN): FORCE
Jiri Olsa285a8f22015-01-10 20:53:13 +010055 @$(MAKE) $(build)=libapi
Jiri Olsab4f916682015-01-09 16:38:25 +010056
57$(LIBFILE): $(API_IN)
58 $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(API_IN)
Borislav Petkov85c66be2013-02-20 16:32:30 +010059
60clean:
Jiri Olsa285a8f22015-01-10 20:53:13 +010061 $(call QUIET_CLEAN, libapi) $(RM) $(LIBFILE); \
Riku Voipioc867b152015-06-18 15:52:18 +030062 find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | xargs $(RM)
Borislav Petkov85c66be2013-02-20 16:32:30 +010063
Jiri Olsab4f916682015-01-09 16:38:25 +010064FORCE:
65
66.PHONY: clean FORCE