1ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 2ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# library include Makefile. 3ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 4ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# Copyright (C) 2009, Cisco Systems Inc. 5ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 6ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# This program is free software; you can redistribute it and/or modify 7ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# it under the terms of the GNU General Public License as published by 8ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# the Free Software Foundation; either version 2 of the License, or 9ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# (at your option) any later version. 10ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 11ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# This program is distributed in the hope that it will be useful, 12ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# but WITHOUT ANY WARRANTY; without even the implied warranty of 13ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# GNU General Public License for more details. 15ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 16ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# You should have received a copy of the GNU General Public License along 17ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# with this program; if not, write to the Free Software Foundation, Inc., 18ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 208967f960f820f449162101a02ee5747f195a8a57Ngie Cooper# Ngie Cooper, July 2009 21ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 22ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubis# Copyright (C) Cyril Hrubis <chrubis@suse.cz> 2012 23ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubis# 24ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 25ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# Makefile to include for libraries. 26ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 27ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyainclude $(top_srcdir)/include/mk/env_pre.mk 28ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 29ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyaINSTALL_DIR := $(libdir) 30ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 31ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# An extension of generic_leaf_target, strictly for libraries. 32ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya.PHONY: install_headers 33ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 34ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyaifndef LIB 35ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubisifndef INTERNAL_LIB 36ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubis$(error You must define LIB or INTERNAL_LIB when including this Makefile) 37ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubisendif 38ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyaendif 39ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 40ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyainstall_headers: $(addprefix $(DESTDIR)/$(includedir)/,$(notdir $(HEADER_FILES))) 41ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 42ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyaINSTALL_MODE ?= 00664 43ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 44ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubis# Hide the LIB target for internal libs on install 45ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubisifneq ($(MAKECMDGOALS),install) 46ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril HrubisLIB ?= $(INTERNAL_LIB) 47ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubisendif 48ae1b9f1fe109d105652caed0c6584fb1d34d46fbCyril Hrubis 49abaa460b225ac40cc2f1f5f1052cd9ce44036111Cyril HrubisMAKE_TARGETS += $(LIB) 50ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 51ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyaLIBSRCS ?= $(wildcard $(abs_srcdir)/*.c) 520388c856ba838cd568d3aa519e1b8b3c204c2d8dyaberauneya 530388c856ba838cd568d3aa519e1b8b3c204c2d8dyaberauneyaifdef MAKE_3_80_COMPAT 5437550cf5a86c7ca7424a2a318dd64e550f13f5dfChris DearmanLIBSRCS := $(call MAKE_3_80_abspath,$(LIBSRCS)) 550388c856ba838cd568d3aa519e1b8b3c204c2d8dyaberauneyaelse 560388c856ba838cd568d3aa519e1b8b3c204c2d8dyaberauneyaLIBSRCS := $(abspath $(LIBSRCS)) 570388c856ba838cd568d3aa519e1b8b3c204c2d8dyaberauneyaendif 580388c856ba838cd568d3aa519e1b8b3c204c2d8dyaberauneya 59c9639c859fdd46337bc1413f5a785b7b5bdf8014Garrett CooperLIBSRCS := $(subst $(abs_srcdir)/,,$(wildcard $(LIBSRCS))) 60c9639c859fdd46337bc1413f5a785b7b5bdf8014Garrett Cooper 61c9639c859fdd46337bc1413f5a785b7b5bdf8014Garrett CooperLIBSRCS := $(filter-out $(FILTER_OUT_LIBSRCS),$(LIBSRCS)) 62ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 63ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyaLIBOBJS := $(LIBSRCS:.c=.o) 64ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 65ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya$(LIB): $(notdir $(LIBOBJS)) 66ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if [ -z "$(strip $^)" ] ; then \ 67ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya echo "Cowardly refusing to create empty archive"; \ 68ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya exit 1; \ 69ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 7014f1a92331189ec546dfc571cd0b157276faac82yaberauneya $(if $(AR),$(AR),ar) -rc "$@" $^ 7114f1a92331189ec546dfc571cd0b157276faac82yaberauneya $(if $(RANLIB),$(RANLIB),ranlib) "$@" 72ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 73ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyainclude $(top_srcdir)/include/mk/generic_leaf_target.mk 74