X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=Makefile;h=ac60ade52a9b6ca32e28dc44717f67b5f16e332b;hp=47516b3e371408048f22882946360937976e7c90;hb=9bad6028f738e78b69d18947d586dce7b9267785;hpb=fbda4a34d846946bf8ed63deadfd6e65b2299792 diff --git a/Makefile b/Makefile index 47516b3e3..ac60ade52 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ SENDER = udevsend INFO = udevinfo TESTER = udevtest STARTER = udevstart -VERSION = 051 +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 @@ -195,69 +253,6 @@ $(CRT0): fi $(MAKE) -C klibc SUBDIRS=klibc TESTS= -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_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 = \ - udev.a \ - libsysfs/sysfs.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 $(USE_SELINUX)),true) - UDEV_OBJS += udev_selinux.o - LIB_OBJS += -lselinux -endif - -ifeq ($(strip $(V)),false) - QUIET=@$(PWD)/ccdv - HOST_PROGS=ccdv -else - QUIET= - HOST_PROGS= -endif - udev.a: $(UDEV_OBJS) rm -f $@ $(QUIET) $(AR) cq $@ $(UDEV_OBJS) @@ -361,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"