^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) include ../../scripts/Makefile.include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) include ../../scripts/utilities.mak # QUIET_CLEAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ifeq ($(srctree),)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) srctree := $(patsubst %/,%,$(dir $(CURDIR)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) srctree := $(patsubst %/,%,$(dir $(srctree)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) srctree := $(patsubst %/,%,$(dir $(srctree)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #$(info Determined 'srctree' to be $(srctree))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) CC ?= $(CROSS_COMPILE)gcc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) AR ?= $(CROSS_COMPILE)ar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) LD ?= $(CROSS_COMPILE)ld
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) MAKEFLAGS += --no-print-directory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) LIBFILE = $(OUTPUT)libapi.a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -fPIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) ifeq ($(DEBUG),0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) ifeq ($(CC_NO_CLANG), 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) CFLAGS += -O3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) CFLAGS += -O6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) ifeq ($(DEBUG),0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) CFLAGS += -D_FORTIFY_SOURCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) # Treat warnings as errors unless directed not to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) ifneq ($(WERROR),0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) CFLAGS += -Werror
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) CFLAGS += -I$(srctree)/tools/lib/api
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) CFLAGS += -I$(srctree)/tools/include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) RM = rm -f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) API_IN := $(OUTPUT)libapi-in.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) all:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) export srctree OUTPUT CC LD CFLAGS V
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) include $(srctree)/tools/build/Makefile.include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) all: fixdep $(LIBFILE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) $(API_IN): FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) @$(MAKE) $(build)=libapi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) $(LIBFILE): $(API_IN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(API_IN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) clean:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) $(call QUIET_CLEAN, libapi) $(RM) $(LIBFILE); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | xargs $(RM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) FORCE:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) .PHONY: clean FORCE