X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=Makefile;h=50c72279f85b542ae9f2ebdf04e7365048f438e3;hp=167c88e55e9ca5a69e7c66f14fc7c41c50b8a16b;hb=13f24d596c5638443ffc7bc48c10a66758335c74;hpb=32935a50ea9d0f97f9416da1512c11a346888d28 diff --git a/Makefile b/Makefile index 167c88e55..50c72279f 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,7 @@ INFO = udevinfo TESTER = udevtest STARTER = udevstart WAIT = wait_for_sysfs -VERSION = 038 +VERSION = 045 INSTALL_DIR = /usr/local/bin RELEASE_NAME = $(ROOT)-$(VERSION) LOCAL_CFG_DIR = etc/udev @@ -68,7 +68,8 @@ INSTALL_SCRIPT = ${INSTALL_PROGRAM} EXTRAS= # place to put our device nodes -udevdir = ${prefix}/udev +udevdir = ${prefix}/udev +udevdb = ${udevdir}/.udevdb # Comment out this line to build with something other # than the local version of klibc @@ -113,11 +114,6 @@ WARNINGS := -Wall CFLAGS := -pipe -# set up the proper tdb spinlock code if we can -ifeq ($(strip $(ARCH)),i386) - CFLAGS += -DUSE_SPINLOCKS -DINTEL_SPINLOCKS -endif - ifeq ($(strip $(USE_LOG)),true) CFLAGS += -DLOG endif @@ -137,6 +133,7 @@ endif # link udev against it statically. # Otherwise, use glibc and link dynamically. ifeq ($(strip $(USE_KLIBC)),true) + KLIBC_FIXUPS_DIR= $(PWD)/klibc_fixups KLIBC_BASE = $(PWD)/klibc KLIBC_DIR = $(KLIBC_BASE)/klibc INCLUDE_DIR := $(KLIBC_BASE)/include @@ -149,13 +146,15 @@ ifeq ($(strip $(USE_KLIBC)),true) CRT0 = $(KLIBC_DIR)/crt0.o LIBC = $(ARCH_LIB_OBJS) $(LIB_OBJS) $(CRT0) - CFLAGS += $(WARNINGS) -nostdinc \ - $(OPTFLAGS) \ - -D__KLIBC__ -fno-builtin-printf \ - -I$(INCLUDE_DIR) \ - -I$(INCLUDE_DIR)/arch/$(ARCH) \ - -I$(INCLUDE_DIR)/bits$(BITSIZE) \ - -I$(GCCINCDIR) \ + CFLAGS += $(WARNINGS) -nostdinc \ + $(OPTFLAGS) \ + -D__KLIBC__ -fno-builtin-printf \ + -I$(KLIBC_FIXUPS_DIR) \ + -include $(KLIBC_FIXUPS_DIR)/klibc_fixups.h \ + -I$(INCLUDE_DIR) \ + -I$(INCLUDE_DIR)/arch/$(ARCH) \ + -I$(INCLUDE_DIR)/bits$(BITSIZE) \ + -I$(GCCINCDIR) \ -I$(LINUX_INCLUDE_DIR) LIB_OBJS = LDFLAGS = --static --nostdlib -nostartfiles -nodefaultlibs @@ -173,7 +172,8 @@ ifeq ($(strip $(USE_SELINUX)),true) LIB_OBJS += -lselinux endif -CFLAGS += -I$(PWD)/libsysfs +CFLAGS += -I$(PWD)/libsysfs/sysfs \ + -I$(PWD)/libsysfs # config files automatically generated GEN_CONFIGS = $(LOCAL_CFG_DIR)/udev.conf @@ -183,7 +183,9 @@ all: $(ROOT) $(SENDER) $(DAEMON) $(INFO) $(TESTER) $(WAIT) $(GEN_CONFIGS) echo $$target ; \ $(MAKE) prefix=$(prefix) \ LD="$(LD)" \ + SYSFS="$(SYSFS)" \ KERNEL_DIR="$(KERNEL_DIR)" \ + QUIET="@$(PWD)/ccdv" \ -C $$target $@ ; \ done ; \ @@ -195,41 +197,42 @@ $(CRT0): fi $(MAKE) -C klibc SUBDIRS=klibc -TDB = tdb/tdb.o \ - tdb/spinlock.o - -SYSFS = libsysfs/sysfs_bus.o \ - libsysfs/sysfs_class.o \ - libsysfs/sysfs_device.o \ - libsysfs/sysfs_dir.o \ - libsysfs/sysfs_driver.o \ - libsysfs/sysfs_utils.o \ - libsysfs/dlist.o +SYSFS = $(PWD)/libsysfs/sysfs_bus.o \ + $(PWD)/libsysfs/sysfs_class.o \ + $(PWD)/libsysfs/sysfs_device.o \ + $(PWD)/libsysfs/sysfs_dir.o \ + $(PWD)/libsysfs/sysfs_driver.o \ + $(PWD)/libsysfs/sysfs_utils.o \ + $(PWD)/libsysfs/dlist.o OBJS = udev_lib.o \ udev_config.o \ udev_add.o \ udev_remove.o \ + udev_sysfs.o \ udevdb.o \ namedev.o \ namedev_parse.o \ dev_d.o \ - $(SYSFS) \ - $(TDB) + $(SYSFS) HEADERS = udev.h \ udev_lib.h \ namedev.h \ udev_version.h \ udevdb.h \ - klibc_fixups.h \ + udev_sysfs.h \ logging.h \ selinux.h \ list.h ifeq ($(strip $(USE_KLIBC)),true) - OBJS += klibc_fixups.o - KLIBC_FIXUP = klibc_fixups.o + HEADERS += klibc_fixups/klibc_fixups.h \ + klibc_fixups/mntent.h \ + klibc_fixups/pwd.h + + OBJS += klibc_fixups/klibc_fixups.o + KLIBC_FIXUP = klibc_fixups/klibc_fixups.o endif ifeq ($(strip $(V)),false) @@ -251,8 +254,8 @@ ccdv: udev_version.h: @echo "Creating udev_version.h" @echo \#define UDEV_VERSION \"$(VERSION)\" > $@ - @echo \#define UDEV_ROOT \"$(udevdir)/\" >> $@ - @echo \#define UDEV_DB \"$(udevdir)/.udev.tdb\" >> $@ + @echo \#define UDEV_ROOT \"$(udevdir)\" >> $@ + @echo \#define UDEV_DB \"$(udevdb)\" >> $@ @echo \#define UDEV_CONFIG_DIR \"$(configdir)\" >> $@ @echo \#define UDEV_CONFIG_FILE \"$(configdir)/udev.conf\" >> $@ @echo \#define UDEV_RULES_FILE \"$(configdir)/rules.d\" >> $@ @@ -262,14 +265,14 @@ udev_version.h: @echo \#define UDEVD_BIN \"$(DESTDIR)$(sbindir)/udevd\" >> $@ # Rules on how to create the generated config files -$(LOCAL_CFG_DIR)/udev.conf: $(HOST_PROGS) - $(QUIET) sed -e "s:@udevdir@:$(udevdir):" -e "s:@configdir@:$(configdir):" < $(LOCAL_CFG_DIR)/udev.conf.in > $@ +$(LOCAL_CFG_DIR)/udev.conf: + sed -e "s:@udevdir@:$(udevdir):" -e "s:@configdir@:$(configdir):" < $(LOCAL_CFG_DIR)/udev.conf.in > $@ GEN_MANPAGES = udev.8 GEN_MANPAGESIN = udev.8.in # Rules on how to create the man pages -$(GEN_MANPAGES): $(GEN_MANPAGESIN) $(HOST_PROGS) - $(QUIET) sed -e "s:@udevdir@:$(udevdir):" < $@.in > $@ +$(GEN_MANPAGES): $(GEN_MANPAGESIN) + sed -e "s:@udevdir@:$(udevdir):" < $@.in > $@ $(OBJS): $(GEN_HEADERS) $(HOST_PROGS) $(ROOT).o: $(GEN_HEADERS) $(HOST_PROGS) @@ -289,7 +292,7 @@ $(TESTER): $(LIBC) $(TESTER).o $(OBJS) $(HEADERS) $(QUIET) $(STRIPCMD) $@ $(INFO): $(LIBC) $(INFO).o $(OBJS) $(HEADERS) - $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udevinfo.o udev_lib.o udev_config.o udevdb.o $(SYSFS) $(TDB) $(LIB_OBJS) $(ARCH_LIB_OBJS) + $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udevinfo.o udev_lib.o udev_config.o udevdb.o $(SYSFS) $(LIB_OBJS) $(ARCH_LIB_OBJS) $(QUIET) $(STRIPCMD) $@ $(DAEMON): $(LIBC) $(DAEMON).o $(OBJS) udevd.h @@ -297,11 +300,11 @@ $(DAEMON): $(LIBC) $(DAEMON).o $(OBJS) udevd.h $(QUIET) $(STRIPCMD) $@ $(SENDER): $(LIBC) $(SENDER).o $(OBJS) udevd.h - $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udevsend.o udev_lib.o $(LIB_OBJS) $(ARCH_LIB_OBJS) + $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udevsend.o $(LIB_OBJS) $(ARCH_LIB_OBJS) $(QUIET) $(STRIPCMD) $@ $(WAIT): $(WAIT).o $(OBJS) $(HEADERS) $(LIBC) - $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) $(WAIT).o $(SYSFS) $(LIB_OBJS) $(ARCH_LIB_OBJS) + $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) $(WAIT).o udev_sysfs.o udev_lib.o udev_config.o $(SYSFS) $(LIB_OBJS) $(ARCH_LIB_OBJS) $(QUIET) $(STRIPCMD) $@ #.c.o: @@ -326,10 +329,10 @@ spotless: clean $(MAKE) -C klibc spotless -rm -f klibc/linux -DISTFILES = $(shell find . \( -not -name '.' \) -print | grep -v -e CVS -e "\.tar\.gz$" -e "\/\." -e releases -e BitKeeper -e SCCS -e "\.tdb$" -e test/sys | sort ) +DISTFILES = $(shell find . \( -not -name '.' \) -print | grep -v -e CVS -e "\.tar\.gz" -e "\/\." -e releases -e BitKeeper -e SCCS -e test/sys | sort ) DISTDIR := $(RELEASE_NAME) srcdir = . -release: clean +release: spotless -rm -rf $(DISTDIR) mkdir $(DISTDIR) chmod 777 $(DISTDIR) @@ -339,7 +342,7 @@ release: clean @echo "$(RELEASE_NAME).tar.gz created" -small_release: $(DISTFILES) clean +small_release: $(DISTFILES) spotless # @echo $(DISTFILES) @-rm -rf $(DISTDIR) @mkdir $(DISTDIR) @@ -418,8 +421,8 @@ install: install-initscript install-config install-man install-dev.d all - ln -f -s $(sbindir)/$(SENDER) $(DESTDIR)$(hotplugdir)/10-udev.hotplug - ln -f -s $(sbindir)/$(WAIT) $(DESTDIR)$(hotplugdir)/05-wait_for_sysfs.hotplug ifndef DESTDIR - - killall udevd - - rm -f $(udevdir)/.udev.tdb + - killall $(DAEMON) + - rm -rf $(udevdb) endif @extras="$(EXTRAS)" ; for target in $$extras ; do \ echo $$target ; \ @@ -445,10 +448,14 @@ uninstall: uninstall-man uninstall-dev.d - rm $(usrbindir)/$(TESTER) - rm $(usrbindir)/$(WAIT) - rmdir $(hotplugdir) - - rm $(udevdir)/.udev.tdb + - rm -rf $(udevdb) - rmdir $(udevdir) + - killall $(DAEMON) @extras="$(EXTRAS)" ; for target in $$extras ; do \ echo $$target ; \ $(MAKE) prefix=$(prefix) LD="$(LD)" SYSFS="$(SYSFS)" \ -C $$target $@ ; \ done ; \ + +test: all + @ cd test && ./udev-test.pl