147c4b0deSDaniel Lezcano# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) 247c4b0deSDaniel Lezcano# Most of this file is copied from tools/lib/perf/Makefile 347c4b0deSDaniel Lezcano 447c4b0deSDaniel LezcanoLIBTHERMAL_VERSION = 0 547c4b0deSDaniel LezcanoLIBTHERMAL_PATCHLEVEL = 0 647c4b0deSDaniel LezcanoLIBTHERMAL_EXTRAVERSION = 1 747c4b0deSDaniel Lezcano 847c4b0deSDaniel LezcanoMAKEFLAGS += --no-print-directory 947c4b0deSDaniel Lezcano 1047c4b0deSDaniel Lezcanoifeq ($(srctree),) 1147c4b0deSDaniel Lezcanosrctree := $(patsubst %/,%,$(dir $(CURDIR))) 1247c4b0deSDaniel Lezcanosrctree := $(patsubst %/,%,$(dir $(srctree))) 1347c4b0deSDaniel Lezcanosrctree := $(patsubst %/,%,$(dir $(srctree))) 1447c4b0deSDaniel Lezcano# $(info Determined 'srctree' to be $(srctree)) 1547c4b0deSDaniel Lezcanoendif 1647c4b0deSDaniel Lezcano 1747c4b0deSDaniel LezcanoINSTALL = install 1847c4b0deSDaniel Lezcano 1947c4b0deSDaniel Lezcano# Use DESTDIR for installing into a different root directory. 2047c4b0deSDaniel Lezcano# This is useful for building a package. The program will be 2147c4b0deSDaniel Lezcano# installed in this directory as if it was the root directory. 2247c4b0deSDaniel Lezcano# Then the build tool can move it later. 2347c4b0deSDaniel LezcanoDESTDIR ?= 2447c4b0deSDaniel LezcanoDESTDIR_SQ = '$(subst ','\'',$(DESTDIR))' 2547c4b0deSDaniel Lezcano 2647c4b0deSDaniel Lezcanoinclude $(srctree)/tools/scripts/Makefile.include 2747c4b0deSDaniel Lezcanoinclude $(srctree)/tools/scripts/Makefile.arch 2847c4b0deSDaniel Lezcano 2947c4b0deSDaniel Lezcanoifeq ($(LP64), 1) 3047c4b0deSDaniel Lezcano libdir_relative = lib64 3147c4b0deSDaniel Lezcanoelse 3247c4b0deSDaniel Lezcano libdir_relative = lib 3347c4b0deSDaniel Lezcanoendif 3447c4b0deSDaniel Lezcano 3547c4b0deSDaniel Lezcanoprefix ?= 3647c4b0deSDaniel Lezcanolibdir = $(prefix)/$(libdir_relative) 3747c4b0deSDaniel Lezcano 3847c4b0deSDaniel Lezcano# Shell quotes 3947c4b0deSDaniel Lezcanolibdir_SQ = $(subst ','\'',$(libdir)) 4047c4b0deSDaniel Lezcanolibdir_relative_SQ = $(subst ','\'',$(libdir_relative)) 4147c4b0deSDaniel Lezcano 4247c4b0deSDaniel Lezcano# Set compile option CFLAGS 4347c4b0deSDaniel Lezcanoifdef EXTRA_CFLAGS 4447c4b0deSDaniel Lezcano CFLAGS := $(EXTRA_CFLAGS) 4547c4b0deSDaniel Lezcanoelse 4647c4b0deSDaniel Lezcano CFLAGS := -g -Wall 4747c4b0deSDaniel Lezcanoendif 4847c4b0deSDaniel Lezcano 4947c4b0deSDaniel LezcanoINCLUDES = \ 5047c4b0deSDaniel Lezcano-I/usr/include/libnl3 \ 5147c4b0deSDaniel Lezcano-I$(srctree)/tools/lib/thermal/include \ 5247c4b0deSDaniel Lezcano-I$(srctree)/tools/lib/ \ 5347c4b0deSDaniel Lezcano-I$(srctree)/tools/include \ 5447c4b0deSDaniel Lezcano-I$(srctree)/tools/arch/$(SRCARCH)/include/ \ 5547c4b0deSDaniel Lezcano-I$(srctree)/tools/arch/$(SRCARCH)/include/uapi \ 5647c4b0deSDaniel Lezcano-I$(srctree)/tools/include/uapi 5747c4b0deSDaniel Lezcano 5847c4b0deSDaniel Lezcano# Append required CFLAGS 5947c4b0deSDaniel Lezcanooverride CFLAGS += $(EXTRA_WARNINGS) 6047c4b0deSDaniel Lezcanooverride CFLAGS += -Werror -Wall 6147c4b0deSDaniel Lezcanooverride CFLAGS += -fPIC 6247c4b0deSDaniel Lezcanooverride CFLAGS += $(INCLUDES) 6347c4b0deSDaniel Lezcanooverride CFLAGS += -fvisibility=hidden 6447c4b0deSDaniel Lezcanooverride CFGLAS += -Wl,-L. 6547c4b0deSDaniel Lezcanooverride CFGLAS += -Wl,-lthermal 6647c4b0deSDaniel Lezcano 6747c4b0deSDaniel Lezcanoall: 6847c4b0deSDaniel Lezcano 6947c4b0deSDaniel Lezcanoexport srctree OUTPUT CC LD CFLAGS V 7047c4b0deSDaniel Lezcanoexport DESTDIR DESTDIR_SQ 7147c4b0deSDaniel Lezcano 7247c4b0deSDaniel Lezcanoinclude $(srctree)/tools/build/Makefile.include 7347c4b0deSDaniel Lezcano 7447c4b0deSDaniel LezcanoVERSION_SCRIPT := libthermal.map 7547c4b0deSDaniel Lezcano 7647c4b0deSDaniel LezcanoPATCHLEVEL = $(LIBTHERMAL_PATCHLEVEL) 7747c4b0deSDaniel LezcanoEXTRAVERSION = $(LIBTHERMAL_EXTRAVERSION) 7847c4b0deSDaniel LezcanoVERSION = $(LIBTHERMAL_VERSION).$(LIBTHERMAL_PATCHLEVEL).$(LIBTHERMAL_EXTRAVERSION) 7947c4b0deSDaniel Lezcano 8047c4b0deSDaniel LezcanoLIBTHERMAL_SO := $(OUTPUT)libthermal.so.$(VERSION) 8147c4b0deSDaniel LezcanoLIBTHERMAL_A := $(OUTPUT)libthermal.a 8247c4b0deSDaniel LezcanoLIBTHERMAL_IN := $(OUTPUT)libthermal-in.o 8347c4b0deSDaniel LezcanoLIBTHERMAL_PC := $(OUTPUT)libthermal.pc 8447c4b0deSDaniel LezcanoLIBTHERMAL_ALL := $(LIBTHERMAL_A) $(OUTPUT)libthermal.so* 8547c4b0deSDaniel Lezcano 8647c4b0deSDaniel LezcanoTHERMAL_UAPI := include/uapi/linux/thermal.h 8747c4b0deSDaniel Lezcano 8847c4b0deSDaniel Lezcano$(THERMAL_UAPI): FORCE 8947c4b0deSDaniel Lezcano ln -sf $(srctree)/$@ $(srctree)/tools/$@ 9047c4b0deSDaniel Lezcano 9147c4b0deSDaniel Lezcano$(LIBTHERMAL_IN): FORCE 9247c4b0deSDaniel Lezcano $(Q)$(MAKE) $(build)=libthermal 9347c4b0deSDaniel Lezcano 9447c4b0deSDaniel Lezcano$(LIBTHERMAL_A): $(LIBTHERMAL_IN) 9547c4b0deSDaniel Lezcano $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIBTHERMAL_IN) 9647c4b0deSDaniel Lezcano 9747c4b0deSDaniel Lezcano$(LIBTHERMAL_SO): $(LIBTHERMAL_IN) 9847c4b0deSDaniel Lezcano $(QUIET_LINK)$(CC) --shared -Wl,-soname,libthermal.so \ 9947c4b0deSDaniel Lezcano -Wl,--version-script=$(VERSION_SCRIPT) $^ -o $@ 10047c4b0deSDaniel Lezcano @ln -sf $(@F) $(OUTPUT)libthermal.so 10147c4b0deSDaniel Lezcano @ln -sf $(@F) $(OUTPUT)libthermal.so.$(LIBTHERMAL_VERSION) 10247c4b0deSDaniel Lezcano 10347c4b0deSDaniel Lezcano 10447c4b0deSDaniel Lezcanolibs: $(THERMAL_UAPI) $(LIBTHERMAL_A) $(LIBTHERMAL_SO) $(LIBTHERMAL_PC) 10547c4b0deSDaniel Lezcano 10647c4b0deSDaniel Lezcanoall: fixdep 10747c4b0deSDaniel Lezcano $(Q)$(MAKE) libs 10847c4b0deSDaniel Lezcano 10947c4b0deSDaniel Lezcanoclean: 11047c4b0deSDaniel Lezcano $(call QUIET_CLEAN, libthermal) $(RM) $(LIBTHERMAL_A) \ 111*c5426dccSzhang jiao *.o *~ *.a *.so *.so.$(VERSION) *.so.$(LIBTHERMAL_VERSION) \ 112*c5426dccSzhang jiao .*.d .*.cmd LIBTHERMAL-CFLAGS $(LIBTHERMAL_PC) \ 113*c5426dccSzhang jiao $(srctree)/tools/$(THERMAL_UAPI) 11447c4b0deSDaniel Lezcano 11547c4b0deSDaniel Lezcano$(LIBTHERMAL_PC): 11647c4b0deSDaniel Lezcano $(QUIET_GEN)sed -e "s|@PREFIX@|$(prefix)|" \ 11747c4b0deSDaniel Lezcano -e "s|@LIBDIR@|$(libdir_SQ)|" \ 11847c4b0deSDaniel Lezcano -e "s|@VERSION@|$(VERSION)|" \ 11947c4b0deSDaniel Lezcano < libthermal.pc.template > $@ 12047c4b0deSDaniel Lezcano 12147c4b0deSDaniel Lezcanodefine do_install_mkdir 12247c4b0deSDaniel Lezcano if [ ! -d '$(DESTDIR_SQ)$1' ]; then \ 12347c4b0deSDaniel Lezcano $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$1'; \ 12447c4b0deSDaniel Lezcano fi 12547c4b0deSDaniel Lezcanoendef 12647c4b0deSDaniel Lezcano 12747c4b0deSDaniel Lezcanodefine do_install 12847c4b0deSDaniel Lezcano if [ ! -d '$(DESTDIR_SQ)$2' ]; then \ 12947c4b0deSDaniel Lezcano $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$2'; \ 13047c4b0deSDaniel Lezcano fi; \ 13147c4b0deSDaniel Lezcano $(INSTALL) $1 $(if $3,-m $3,) '$(DESTDIR_SQ)$2' 13247c4b0deSDaniel Lezcanoendef 13347c4b0deSDaniel Lezcano 13447c4b0deSDaniel Lezcanoinstall_lib: libs 13547c4b0deSDaniel Lezcano $(call QUIET_INSTALL, $(LIBTHERMAL_ALL)) \ 13647c4b0deSDaniel Lezcano $(call do_install_mkdir,$(libdir_SQ)); \ 13747c4b0deSDaniel Lezcano cp -fpR $(LIBTHERMAL_ALL) $(DESTDIR)$(libdir_SQ) 13847c4b0deSDaniel Lezcano 13947c4b0deSDaniel Lezcanoinstall_headers: 14047c4b0deSDaniel Lezcano $(call QUIET_INSTALL, headers) \ 14147c4b0deSDaniel Lezcano $(call do_install,include/thermal.h,$(prefix)/include/thermal,644); \ 14247c4b0deSDaniel Lezcano 14347c4b0deSDaniel Lezcanoinstall_pkgconfig: $(LIBTHERMAL_PC) 14447c4b0deSDaniel Lezcano $(call QUIET_INSTALL, $(LIBTHERMAL_PC)) \ 14547c4b0deSDaniel Lezcano $(call do_install,$(LIBTHERMAL_PC),$(libdir_SQ)/pkgconfig,644) 14647c4b0deSDaniel Lezcano 14747c4b0deSDaniel Lezcanoinstall_doc: 14847c4b0deSDaniel Lezcano $(Q)$(MAKE) -C Documentation install-man install-html install-examples 14947c4b0deSDaniel Lezcano 15047c4b0deSDaniel Lezcanoinstall: install_lib install_headers install_pkgconfig 15147c4b0deSDaniel Lezcano 15247c4b0deSDaniel LezcanoFORCE: 15347c4b0deSDaniel Lezcano 15447c4b0deSDaniel Lezcano.PHONY: all install clean FORCE 155