5 kx #
5 kx # Copyright (C) 2001-2005,2010 Dmitry V. Levin <ldv@altlinux.org>
5 kx #
5 kx # Makefile for the libutempter project.
5 kx #
5 kx # This library is free software; you can redistribute it and/or
5 kx # modify it under the terms of the GNU Lesser General Public
5 kx # License as published by the Free Software Foundation; either
5 kx # version 2.1 of the License, or (at your option) any later version.
5 kx #
5 kx # This library is distributed in the hope that it will be useful,
5 kx # but WITHOUT ANY WARRANTY; without even the implied warranty of
5 kx # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5 kx # Lesser General Public License for more details.
5 kx #
5 kx # You should have received a copy of the GNU Lesser General Public
5 kx # License along with this library; if not, write to the Free Software
5 kx # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
5 kx #
5 kx
5 kx PROJECT = utempter
5 kx VERSION = $(shell sed '/^Version: */!d;s///;q' libutempter.spec)
5 kx MAJOR = 0
5 kx
5 kx SHAREDLIB = lib$(PROJECT).so
5 kx SONAME = $(SHAREDLIB).$(MAJOR)
5 kx STATICLIB = lib$(PROJECT).a
5 kx MAP = lib$(PROJECT).map
5 kx
5 kx TARGETS = $(PROJECT) $(SHAREDLIB) $(STATICLIB)
5 kx
5 kx INSTALL = install
5 kx libdir ?= /usr/lib
5 kx libexecdir ?= /usr/lib
5 kx includedir = /usr/include
5 kx mandir ?= /usr/share/man
5 kx man3dir = $(mandir)/man3
5 kx DESTDIR =
5 kx
5 kx WARNINGS = -W -Wall -Waggregate-return -Wcast-align -Wconversion \
5 kx -Wdisabled-optimization -Wmissing-declarations \
5 kx -Wmissing-format-attribute -Wmissing-noreturn \
5 kx -Wmissing-prototypes -Wpointer-arith -Wredundant-decls \
5 kx -Wshadow -Wstrict-prototypes -Wwrite-strings
5 kx COMPILE_DIALECT = -std=gnu99
5 kx COMPILE_LFS =
5 kx COMPILE_PIC = -fPIC
5 kx COMPILE_PIE = -fPIE
5 kx LINK_PIE = -pie
5 kx LINK_NOW = -Wl,-z,now
5 kx LINK_RELRO = -Wl,-z,relro
5 kx LINK_STATS = -Wl,-stats
5 kx override CPPFLAGS := $(COMPILE_DIALECT) $(COMPILE_LFS) -DLIBEXECDIR=\"$(libexecdir)\" $(CPPFLAGS)
5 kx override CFLAGS := $(WARNINGS) $(CFLAGS) $(RPM_OPT_FLAGS)
5 kx override LDFLAGS := $(LINK_RELRO) $(LINK_STATS) $(LDFLAGS)
5 kx LDLIBS =
5 kx
5 kx all: $(TARGETS)
5 kx
5 kx %.os: %.c
5 kx $(COMPILE.c) $(COMPILE_PIC) $< $(OUTPUT_OPTION)
5 kx
5 kx $(PROJECT): utempter.c diag.h
5 kx $(LINK.c) $(COMPILE_PIE) $(LINK_PIE) $(LINK_NOW) $(LDLIBS) $< $(OUTPUT_OPTION)
5 kx
5 kx $(SHAREDLIB): iface.os $(MAP)
5 kx $(LINK.o) -shared \
5 kx -Wl,-soname,$(SONAME),--version-script=$(MAP),-z,defs \
5 kx -lc $< $(OUTPUT_OPTION)
5 kx
5 kx $(STATICLIB): iface.o
5 kx $(AR) $(ARFLAGS) $@ $<
5 kx -ranlib $@
5 kx
5 kx iface.os: iface.c utempter.h diag.h
5 kx
5 kx iface.o: iface.c utempter.h diag.h
5 kx
5 kx install:
5 kx mkdir -p $(DESTDIR)$(libdir) $(DESTDIR)$(libexecdir)/$(PROJECT) \
5 kx $(DESTDIR)$(includedir) $(DESTDIR)$(man3dir)
5 kx $(INSTALL) -p -m2711 $(PROJECT) $(DESTDIR)$(libexecdir)/$(PROJECT)/
5 kx $(INSTALL) -p -m644 $(PROJECT).h $(DESTDIR)$(includedir)/
5 kx $(INSTALL) -p -m755 $(SHAREDLIB) $(DESTDIR)$(libdir)/$(SHAREDLIB).$(VERSION)
5 kx $(INSTALL) -p -m644 $(STATICLIB) $(DESTDIR)$(libdir)/
5 kx ln -s $(SHAREDLIB).$(VERSION) $(DESTDIR)$(libdir)/$(SONAME)
5 kx ln -s $(SONAME) $(DESTDIR)$(libdir)/$(SHAREDLIB)
5 kx $(INSTALL) -p -m644 $(PROJECT).3 $(DESTDIR)$(man3dir)/
5 kx for n in lib$(PROJECT) utempter_add_record utempter_remove_record \
5 kx utempter_remove_added_record utempter_set_helper; do \
5 kx ln -s $(PROJECT).3 $(DESTDIR)$(man3dir)/$$n.3; \
5 kx done
5 kx
5 kx clean:
5 kx $(RM) $(TARGETS) iface.o iface.os core *~