X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=Makefile;h=ac60ade52a9b6ca32e28dc44717f67b5f16e332b;hp=7d4396b9ed4d1d36b2641b8b65b8df6df6062712;hb=9bad6028f738e78b69d18947d586dce7b9267785;hpb=09f275607119e848be4888518a6a3fcd58a32c6d diff --git a/Makefile b/Makefile index 7d4396b9e..ac60ade52 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ SENDER = udevsend INFO = udevinfo TESTER = udevtest STARTER = udevstart -VERSION = 047 +VERSION = 054 INSTALL_DIR = /usr/local/bin RELEASE_NAME = $(ROOT)-$(VERSION) LOCAL_CFG_DIR = etc/udev @@ -108,11 +108,55 @@ GCC_LIB := $(shell $(CC) -print-libgcc-file-name ) OPTIMIZATION := ${shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ then echo "-Os"; else echo "-O2" ; fi} -# add -Wredundant-decls when libsysfs gets cleaned up -WARNINGS := -Wall +# check if compiler option is supported +cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;} + +WARNINGS := -Wall -fno-builtin -Wchar-subscripts -Wpointer-arith -Wstrict-prototypes -Wsign-compare +WARNINGS += $(call cc-supports,-Wno-pointer-sign) +WARNINGS += $(call cc-supports,-Wdeclaration-after-statement) CFLAGS := -pipe +HEADERS = \ + udev.h \ + udev_utils.h \ + namedev.h \ + udev_version.h \ + udev_db.h \ + udev_sysfs.h \ + logging.h \ + udev_selinux.h \ + list.h + +SYSFS_OBJS = \ + libsysfs/sysfs_class.o \ + libsysfs/sysfs_device.o \ + libsysfs/sysfs_dir.o \ + libsysfs/sysfs_driver.o \ + libsysfs/sysfs_utils.o \ + libsysfs/dlist.o + +UDEV_OBJS = \ + udev_utils.o \ + udev_config.o \ + udev_add.o \ + udev_remove.o \ + udev_start.o \ + udev_sysfs.o \ + udev_db.o \ + udev_multiplex.o \ + namedev.o \ + namedev_parse.o + +OBJS = \ + udev.a \ + libsysfs/sysfs.a + +SYSFS = $(PWD)/libsysfs/sysfs.a + +CFLAGS += -I$(PWD)/libsysfs/sysfs \ + -I$(PWD)/libsysfs + ifeq ($(strip $(USE_LOG)),true) CFLAGS += -DLOG endif @@ -129,8 +173,7 @@ else endif # If we are using our version of klibc, then we need to build, link it, and then -# link udev against it statically. -# Otherwise, use glibc and link dynamically. +# 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 @@ -145,7 +188,7 @@ ifeq ($(strip $(USE_KLIBC)),true) CRT0 = $(KLIBC_DIR)/crt0.o LIBC = $(ARCH_LIB_OBJS) $(LIB_OBJS) $(CRT0) CFLAGS += $(WARNINGS) -nostdinc \ - $(OPTFLAGS) \ + $(OPTFLAGS) $(REQFLAGS) \ -D__KLIBC__ -fno-builtin-printf \ -I$(KLIBC_FIXUPS_DIR) \ -include $(KLIBC_FIXUPS_DIR)/klibc_fixups.h \ @@ -156,6 +199,15 @@ ifeq ($(strip $(USE_KLIBC)),true) -I$(LINUX_INCLUDE_DIR) LIB_OBJS = LDFLAGS = --static --nostdlib -nostartfiles -nodefaultlibs + + HEADERS += \ + klibc_fixups/klibc_fixups.h \ + klibc_fixups/pwd.h + + KLIBC_FIXUP_OBJS = \ + klibc_fixups/klibc_fixups.o + + OBJS += klibc_fixups/klibc_fixups.a else WARNINGS += -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations CRT0 = @@ -166,12 +218,18 @@ else endif ifeq ($(strip $(USE_SELINUX)),true) - CFLAGS += -DUSE_SELINUX + UDEV_OBJS += udev_selinux.o LIB_OBJS += -lselinux + CFLAGS += -DUSE_SELINUX endif -CFLAGS += -I$(PWD)/libsysfs/sysfs \ - -I$(PWD)/libsysfs +ifeq ($(strip $(V)),false) + QUIET=@$(PWD)/ccdv + HOST_PROGS=ccdv +else + QUIET= + HOST_PROGS= +endif # config files automatically generated GEN_CONFIGS = $(LOCAL_CFG_DIR)/udev.conf @@ -193,65 +251,7 @@ $(CRT0): @if [ ! -r klibc/linux ]; then \ ln -f -s $(KERNEL_DIR) klibc/linux; \ fi - $(MAKE) -C klibc SUBDIRS=klibc - -HEADERS = \ - udev.h \ - udev_utils.h \ - namedev.h \ - udev_version.h \ - udev_db.h \ - udev_sysfs.h \ - logging.h \ - selinux.h \ - list.h - -SYSFS_OBJS = \ - 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 - -UDEV_OBJS = \ - udev_utils.o \ - udev_config.o \ - udev_add.o \ - udev_remove.o \ - udev_start.o \ - udev_sysfs.o \ - udev_db.o \ - udev_multiplex.o \ - namedev.o \ - namedev_parse.o - -OBJS = \ - libsysfs/sysfs.a \ - udev.a - -SYSFS = $(PWD)/libsysfs/sysfs.a - -ifeq ($(strip $(USE_KLIBC)),true) - HEADERS += \ - klibc_fixups/klibc_fixups.h \ - klibc_fixups/mntent.h \ - klibc_fixups/pwd.h - - KLIBC_FIXUP_OBJS = \ - klibc_fixups/klibc_fixups.o - - OBJS += klibc_fixups/klibc_fixups.a -endif - -ifeq ($(strip $(V)),false) - QUIET=@$(PWD)/ccdv - HOST_PROGS=ccdv -else - QUIET= - HOST_PROGS= -endif + $(MAKE) -C klibc SUBDIRS=klibc TESTS= udev.a: $(UDEV_OBJS) rm -f $@ @@ -284,7 +284,6 @@ udev_version.h: @echo \#define UDEV_CONFIG_DIR \"$(configdir)\" >> $@ @echo \#define UDEV_CONFIG_FILE \"$(configdir)/udev.conf\" >> $@ @echo \#define UDEV_RULES_FILE \"$(configdir)/rules.d\" >> $@ - @echo \#define UDEV_PERMISSION_FILE \"$(configdir)/permissions.d\" >> $@ @echo \#define UDEV_LOG_DEFAULT \"yes\" >> $@ @echo \#define UDEV_BIN \"$(DESTDIR)$(sbindir)/udev\" >> $@ @echo \#define UDEVD_BIN \"$(DESTDIR)$(sbindir)/udevd\" >> $@ @@ -339,7 +338,7 @@ clean: | xargs rm -f -rm -f core $(ROOT) $(GEN_HEADERS) $(GEN_CONFIGS) $(GEN_MANPAGES) $(INFO) $(DAEMON) $(SENDER) $(TESTER) -rm -f ccdv - $(MAKE) -C klibc clean + $(MAKE) -C klibc SUBDIRS=klibc clean @extras="$(EXTRAS)" ; for target in $$extras ; do \ echo $$target ; \ $(MAKE) prefix=$(prefix) LD="$(LD)" SYSFS="$(SYSFS)" \ @@ -347,7 +346,7 @@ clean: done ; \ spotless: clean - $(MAKE) -C klibc spotless + $(MAKE) -C klibc SUBDIRS=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 test/sys | sort ) @@ -357,7 +356,7 @@ release: spotless -rm -rf $(DISTDIR) mkdir $(DISTDIR) chmod 777 $(DISTDIR) - bk export $(DISTDIR) + bk export -w $(DISTDIR) tar -c $(DISTDIR) | gzip -9 > $(RELEASE_NAME).tar.gz rm -rf $(DISTDIR) @echo "$(RELEASE_NAME).tar.gz created" @@ -381,7 +380,6 @@ small_release: $(DISTFILES) spotless install-config: $(INSTALL) -d $(DESTDIR)$(configdir)/rules.d - $(INSTALL) -d $(DESTDIR)$(configdir)/permissions.d @if [ ! -r $(DESTDIR)$(configdir)/udev.conf ]; then \ echo $(INSTALL_DATA) $(LOCAL_CFG_DIR)/udev.conf $(DESTDIR)$(configdir); \ $(INSTALL_DATA) $(LOCAL_CFG_DIR)/udev.conf $(DESTDIR)$(configdir); \ @@ -390,10 +388,6 @@ install-config: echo $(INSTALL_DATA) $(LOCAL_CFG_DIR)/udev.rules $(DESTDIR)$(configdir)/rules.d/50-udev.rules; \ $(INSTALL_DATA) $(LOCAL_CFG_DIR)/udev.rules $(DESTDIR)$(configdir)/rules.d/50-udev.rules; \ fi - @if [ ! -r $(DESTDIR)$(configdir)/permissions.d/50-udev.permissions ]; then \ - echo $(INSTALL_DATA) $(LOCAL_CFG_DIR)/udev.permissions $(DESTDIR)$(configdir)/permissions.d/50-udev.permissions; \ - $(INSTALL_DATA) $(LOCAL_CFG_DIR)/udev.permissions $(DESTDIR)$(configdir)/permissions.d/50-udev.permissions; \ - fi install-dev.d: $(INSTALL) -d $(DESTDIR)$(dev_ddir)/default @@ -444,10 +438,8 @@ endif uninstall: uninstall-man uninstall-dev.d - rm $(hotplugdir)/10-udev.hotplug - rm $(configdir)/rules.d/50-udev.rules - - rm $(configdir)/permissions.d/50-udev.permissions - rm $(configdir)/udev.conf - rmdir $(configdir)/rules.d - - rmdir $(configdir)/permissions.d - rmdir $(configdir) - rm $(sbindir)/$(ROOT) - rm $(sbindir)/$(DAEMON)