Makefile revision 65e9e8c5e8de192b2b6eea0dcb6089268eb9ad2a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Copyright (C) 2003-2004 Greg Kroah-Hartman <greg@kroah.com>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Copyright (C) 2004-2006 Kay Sievers <kay.sievers@vrfy.org>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# This program is free software; you can redistribute it and/or modify
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# it under the terms of the GNU General Public License as published by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# the Free Software Foundation; version 2 of the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# This program is distributed in the hope that it will be useful,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# but WITHOUT ANY WARRANTY; without even the implied warranty of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# General Public License for more details.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# You should have received a copy of the GNU General Public License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# along with this program; if not, write to the Free Software
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# set this to make use of syslog
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# compile-in development debug messages
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# (export UDEV_LOG="debug" or set udev_log="debug" in udev.conf
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# to print the debug messages to syslog)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# compile with gcc's code coverage option
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# include Security-Enhanced Linux support
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# set this to create statically linked binaries
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# to build any of the extras programs pass:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# make EXTRAS="extras/<extra1> extras/<extra2>"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# make the build silent
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCFLAGS += -g -Wall -pipe -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterWARNINGS = -Wstrict-prototypes -Wsign-compare -Wshadow \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -Wchar-subscripts -Wmissing-declarations -Wnested-externs \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -Wpointer-arith -Wcast-align -Wsign-compare -Wmissing-prototypes
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# if DEBUG is enabled, then we do not strip
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# clear implicit rules
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# build the objects
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# "Static Pattern Rule" to build all programs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(PROGRAMS): %: $(HEADERS) $(GEN_HEADERS) $(LIBUDEV) %.o
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) $(LD) $(LDFLAGS) $@.o -o $@ $(LIBUDEV) $(LIB_OBJS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(LIBUDEV): $(HEADERS) $(GEN_HEADERS) $(UDEV_OBJS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) echo \#define UDEV_VERSION \"$(VERSION)\" >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) echo \#define UDEV_ROOT \"$(udevdir)\" >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) echo \#define UDEV_CONFIG_FILE \"$(configdir)/udev.conf\" >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) echo \#define UDEV_RULES_DIR \"$(configdir)/rules.d\" >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - find . -type f -name '*.orig' -print0 | xargs -0r rm -f
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - find . -type f -name '*.rej' -print0 | xargs -0r rm -f
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - find . -type f -name '*~' -print0 | xargs -0r rm -f
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - find . -type f -name '*.[oas]' -print0 | xargs -0r rm -f
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - find . -type f -name "*.gcno" -print0 | xargs -0r rm -f
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - find . -type f -name "*.gcda" -print0 | xargs -0r rm -f
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - find . -type f -name "*.gcov" -print0 | xargs -0r rm -f
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ if [ ! -r $(DESTDIR)$(configdir)/udev.conf ]; then \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_DATA) etc/udev/udev.conf $(DESTDIR)$(configdir); \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if [ ! -r $(DESTDIR)$(configdir)/rules.d/$$(basename $$i) ]; then \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_DATA) $$i $(DESTDIR)$(configdir)/rules.d; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_DATA) udev.7 $(DESTDIR)$(mandir)/man7/udev.7
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_DATA) udevd.8 $(DESTDIR)$(mandir)/man8/udevd.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_DATA) udevadm.8 $(DESTDIR)$(mandir)/man8/udevadm.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevinfo.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevtest.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevtrigger.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevsettle.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevmonitor.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevcontrol.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_PROGRAM) udevd $(DESTDIR)$(sbindir)/udevd
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_PROGRAM) udevadm $(DESTDIR)$(sbindir)/udevadm
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm $(DESTDIR)$(sbindir)/udevtrigger
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm $(DESTDIR)$(sbindir)/udevsettle
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s udevadm $(DESTDIR)$(sbindir)/udevcontrol
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s $(sbindir)/udevadm $(DESTDIR)$(usrsbindir)/udevmonitor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s $(sbindir)/udevadm $(DESTDIR)$(usrbindir)/udevinfo
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s $(sbindir)/udevadm $(DESTDIR)$(usrbindir)/udevtest
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinstall: all install-bin install-config install-man
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ cd test && ./udev-test.pl
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster head -1 $@ | grep -q "to v$(shell echo $$(($(VERSION) - 1)))"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo "Summary of changes from v$(shell echo $$(($(VERSION) - 1))) to v$(VERSION)" >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo "============================================" >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ git log --pretty=short $(shell echo $$(($(VERSION) - 1)))..HEAD | git shortlog >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster head -1 RELEASE-NOTES | grep -q "udev $(VERSION)"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster cat .git/refs/heads/master > .git/refs/tags/$(VERSION)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster git-archive --format=tar --prefix=udev-$(VERSION)/ HEAD | gzip -9v > udev-$(VERSION).tar.gz
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster git-archive --format=tar --prefix=udev-$(VERSION)/ HEAD | bzip2 -9v > udev-$(VERSION).tar.bz2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster git-archive --format=tar --prefix=udev-$(VERSION)/ HEAD | gzip -9v > udev-$(VERSION).tar.gz
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster git-archive --format=tar --prefix=udev-$(VERSION)/ HEAD | bzip2 -9v > udev-$(VERSION).tar.bz2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster git diff $(shell echo $$(($(VERSION) - 1))) HEAD > udev-git-HEAD.patch
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo "binaries built with gcov support."
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo "run the tests and analyze with 'make udev_gcov.txt'"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterudev_gcov.txt: $(wildcard *.gcda) $(wildcard *.gcno)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for file in `find -maxdepth 1 -name "*.gcno"`; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster echo "################" >> $@; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster echo "$$name.c" >> $@; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster echo "################" >> $@; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if [ -e "$$name.gcda" ]; then \