Makefile revision 65e9e8c5e8de192b2b6eea0dcb6089268eb9ad2a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
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#
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#
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#
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#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterVERSION = 119
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# set this to make use of syslog
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterUSE_LOG = true
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
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 FosterDEBUG = false
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# compile with gcc's code coverage option
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterUSE_GCOV = false
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# include Security-Enhanced Linux support
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterUSE_SELINUX = false
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# set this to create statically linked binaries
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterUSE_STATIC = false
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# to build any of the extras programs pass:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# make EXTRAS="extras/<extra1> extras/<extra2>"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterEXTRAS =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# make the build silent
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterV =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterPROGRAMS = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevd \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevadm \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster test-udev
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterHEADERS = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev.h \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevd.h \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_rules.h \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster logging.h \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_sysdeps.h \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_selinux.h \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster list.h
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterUDEV_OBJS = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_device.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_config.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_node.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_db.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_sysfs.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_rules.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_rules_parse.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_utils.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_utils_string.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_utils_file.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevmonitor.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevinfo.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevcontrol.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevtrigger.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevsettle.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevtest.o \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_sysdeps.o
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLIBUDEV = libudev.a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterMAN_PAGES = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev.7 \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevd.8 \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udevadm.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterGEN_HEADERS = \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster udev_version.h
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterprefix ?=
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteretcdir = ${prefix}/etc
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostersbindir = ${prefix}/sbin
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterusrbindir = ${prefix}/usr/bin
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterusrsbindir = ${prefix}/usr/sbin
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterlibudevdir = ${prefix}/lib/udev
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostermandir = ${prefix}/usr/share/man
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterconfigdir = ${etcdir}/udev
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterudevdir = /dev
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterDESTDIR =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALL = install -c
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALL_PROGRAM = ${INSTALL}
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALL_DATA = ${INSTALL} -m 644
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALL_SCRIPT = ${INSTALL}
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterPWD = $(shell pwd)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCROSS_COMPILE ?=
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCC = $(CROSS_COMPILE)gcc
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLD = $(CROSS_COMPILE)gcc
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterAR = $(CROSS_COMPILE)ar
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterRANLIB = $(CROSS_COMPILE)ranlib
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
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 FosterCFLAGS += $(WARNINGS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLDFLAGS += -Wl,-warn-common,--as-needed
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterOPTFLAGS = -Os
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCFLAGS += $(OPTFLAGS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(strip $(USE_LOG)),true)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CFLAGS += -DUSE_LOG
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# if DEBUG is enabled, then we do not strip
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(strip $(DEBUG)),true)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CFLAGS += -DDEBUG
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(strip $(USE_GCOV)),true)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CFLAGS += -fprofile-arcs -ftest-coverage
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LDFLAGS += -fprofile-arcs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(strip $(USE_SELINUX)),true)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster UDEV_OBJS += udev_selinux.o
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LIB_OBJS += -lselinux -lsepol
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CFLAGS += -DUSE_SELINUX
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(strip $(USE_STATIC)),true)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CFLAGS += -DUSE_STATIC
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LDFLAGS += -static
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifeq ($(strip $(V)),)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster E = @echo
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Q = @
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterelse
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster E = @\#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Q =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterexport E Q
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterall: $(PROGRAMS) $(MAN_PAGES)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) CC="$(CC)" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CFLAGS="$(CFLAGS)" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LD="$(LD)" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LDFLAGS="$(LDFLAGS)" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster AR="$(AR)" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster RANLIB="$(RANLIB)" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LIB_OBJS="$(LIB_OBJS)" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster LIBUDEV="$(PWD)/$(LIBUDEV)" \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster -C $$target $@ || exit 1; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster done;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: all
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.DEFAULT: all
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# clear implicit rules
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.SUFFIXES:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# build the objects
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.o: %.c $(HEADERS) $(GEN_HEADERS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(E) " CC " $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) $(CC) -c $(CFLAGS) $< -o $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# "Static Pattern Rule" to build all programs
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(PROGRAMS): %: $(HEADERS) $(GEN_HEADERS) $(LIBUDEV) %.o
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(E) " LD " $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) $(LD) $(LDFLAGS) $@.o -o $@ $(LIBUDEV) $(LIB_OBJS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster$(LIBUDEV): $(HEADERS) $(GEN_HEADERS) $(UDEV_OBJS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) rm -f $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(E) " AR " $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) $(AR) cq $@ $(UDEV_OBJS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(E) " RANLIB " $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) $(RANLIB) $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterudev_version.h:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(E) " GENHDR " $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) echo "/* Generated by make. */" > $@
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
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# man pages
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster%.8 %.7: %.xml
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(E) " XMLTO " $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) xmlto man $?
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PRECIOUS: %.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterclean:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(E) " CLEAN "
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 $(Q) - rm -f udev_gcov.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - rm -f core $(PROGRAMS) $(GEN_HEADERS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - rm -f udev-$(VERSION).tar.gz
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - rm -f udev-$(VERSION).tar.bz2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - rm -f udev-git-HEAD.patch
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) -C $$target $@ || exit 1; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster done;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: clean
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinstall-config:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL) -d $(DESTDIR)$(configdir)/rules.d
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ if [ ! -r $(DESTDIR)$(configdir)/udev.conf ]; then \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_DATA) etc/udev/udev.conf $(DESTDIR)$(configdir); \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fi
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ for i in etc/udev/rules.d/*.rules; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if [ ! -r $(DESTDIR)$(configdir)/rules.d/$$(basename $$i) ]; then \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_DATA) $$i $(DESTDIR)$(configdir)/rules.d; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fi \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster done
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) -C $$target $@ || exit 1; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster done;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: install-config
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinstall-man:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL) -d $(DESTDIR)$(mandir)/man7
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL_DATA) udev.7 $(DESTDIR)$(mandir)/man7/udev.7
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL) -d $(DESTDIR)$(mandir)/man8
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 $(MAKE) -C $$target $@ || exit 1; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster done;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: install-man
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteruninstall-man:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man7/udev.7
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man8/udevadm.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man8/udevinfo.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man8/udevtest.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man8/udevd.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man8/udevtrigger.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man8/udevsettle.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man8/udevmonitor.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(mandir)/man8/udevcontrol.8
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) -C $$target $@ || exit 1; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster done;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: uninstall-man
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinstall-bin:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(INSTALL) -d $(DESTDIR)$(sbindir)
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 $(INSTALL) -d $(DESTDIR)$(usrsbindir)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ln -f -s $(sbindir)/udevadm $(DESTDIR)$(usrsbindir)/udevmonitor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster mkdir -p -m 0755 $(DESTDIR)$(usrbindir)
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 $(MAKE) -C $$target $@ || exit 1; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster done;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifndef DESTDIR
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - killall udevd
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -rf /dev/.udev
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - $(sbindir)/udevd --daemon
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: install-bin
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteruninstall-bin:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(sbindir)/udevd
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(sbindir)/udevadm
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(sbindir)/udevtrigger
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(sbindir)/udevsettle
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(sbindir)/udevcontrol
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(usrsbindir)/udevmonitor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(usrbindir)/udevinfo
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -f $(DESTDIR)$(usrbindir)/udevtest
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterifndef DESTDIR
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - killall udevd
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster - rm -rf /dev/.udev
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterendif
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @extras="$(EXTRAS)"; for target in $$extras; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) -C $$target $@ || exit 1; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster done;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: uninstall-bin
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinstall: all install-bin install-config install-man
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: install
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosteruninstall: uninstall-bin uninstall-man
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: uninstall
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostertest tests: all
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ cd test && ./udev-test.pl
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: test tests
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterbuildtest:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster test/simple-build-check.sh
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: buildtest
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterChangeLog:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster head -1 $@ | grep -q "to v$(shell echo $$(($(VERSION) - 1)))"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ mv $@ $@.tmp
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 @ cat $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ cat $@.tmp >> $@
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ rm $@.tmp
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster head -1 $@ | grep -q "to v$(VERSION)"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: ChangeLog
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PRECIOUS: ChangeLog
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterrelease:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - rm -f udev-$(VERSION).tar.gz
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(Q) - rm -f udev-$(VERSION).tar.bz2
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster head -1 ChangeLog | grep -q "to v$(VERSION)"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster head -1 RELEASE-NOTES | grep -q "udev $(VERSION)"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster git commit -a -m "release $(VERSION)"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster cat .git/refs/heads/master > .git/refs/tags/$(VERSION)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo
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.PHONY: release
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterdist:
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.PHONY: dist
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpatch:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster git diff $(shell echo $$(($(VERSION) - 1))) HEAD > udev-git-HEAD.patch
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: patch
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fostergcov-all:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster $(MAKE) clean all USE_GCOV=true
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo "binaries built with gcov support."
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @ echo "run the tests and analyze with 'make udev_gcov.txt'"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster.PHONY: gcov-all
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# see docs/README-gcov_for_udev
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterudev_gcov.txt: $(wildcard *.gcda) $(wildcard *.gcno)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for file in `find -maxdepth 1 -name "*.gcno"`; do \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster name=`basename $$file .gcno`; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster echo "################" >> $@; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster echo "$$name.c" >> $@; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster echo "################" >> $@; \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if [ -e "$$name.gcda" ]; then \
gcov -l "$$name.c" >> $@ 2>&1; \
else \
echo "code for $$name.c was never executed" >> $@ 2>&1; \
fi; \
echo >> $@; \
done; \
echo "view $@ for the result"