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