INFO = udevinfo
TESTER = udevtest
STARTER = udevstart
-RULER = udevruler
WAIT = wait_for_sysfs
-VERSION = 036
+VERSION = 042
INSTALL_DIR = /usr/local/bin
RELEASE_NAME = $(ROOT)-$(VERSION)
LOCAL_CFG_DIR = etc/udev
# than the local version of klibc
#USE_KLIBC = true
+# make the build silent (well, at least the udev part) Set this
+# to something else to make it noisy again.
+V=false
+
# set up PWD so that older versions of make will work with our build.
PWD = $(shell pwd)
AR = $(CROSS)ar
STRIP = $(CROSS)strip
RANLIB = $(CROSS)ranlib
+HOSTCC = gcc
export CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS ARCH_LIB_OBJS CRT0
# add -Wredundant-decls when libsysfs gets cleaned up
WARNINGS := -Wall
-CFLAGS := -pipe -Dasmlinkage=
+CFLAGS := -pipe
# set up the proper tdb spinlock code if we can
ifeq ($(strip $(ARCH)),i386)
# 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
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
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
LD="$(LD)" \
SYSFS="$(SYSFS)" \
KERNEL_DIR="$(KERNEL_DIR)" \
+ QUIET="@$(PWD)/ccdv" \
-C $$target $@ ; \
done ; \
udev_config.o \
udev_add.o \
udev_remove.o \
+ udev_sysfs.o \
udevdb.o \
namedev.o \
namedev_parse.o \
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)
+ QUIET=@./ccdv
+ HOST_PROGS=ccdv
+else
+ QUIET=
+ HOST_PROGS=
endif
# header files automatically generated
GEN_HEADERS = udev_version.h
+ccdv:
+ @echo "Building ccdv"
+ @$(HOSTCC) -O1 ccdv.c -o ccdv
+
# Rules on how to create the generated header files
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\" >> $@
$(GEN_MANPAGES): $(GEN_MANPAGESIN)
sed -e "s:@udevdir@:$(udevdir):" < $@.in > $@
-
-$(OBJS): $(GEN_HEADERS)
-$(ROOT).o: $(GEN_HEADERS)
-$(TESTER).o: $(GEN_HEADERS)
-$(INFO).o: $(GEN_HEADERS)
-$(DAEMON).o: $(GEN_HEADERS)
-$(SENDER).o: $(GEN_HEADERS)
-$(STARTER).o: $(GEN_HEADERS)
-$(WAIT).o: $(GEN_HEADERS)
+$(OBJS): $(GEN_HEADERS) $(HOST_PROGS)
+$(ROOT).o: $(GEN_HEADERS) $(HOST_PROGS)
+$(TESTER).o: $(GEN_HEADERS) $(HOST_PROGS)
+$(INFO).o: $(GEN_HEADERS) $(HOST_PROGS)
+$(DAEMON).o: $(GEN_HEADERS) $(HOST_PROGS)
+$(SENDER).o: $(GEN_HEADERS) $(HOST_PROGS)
+$(STARTER).o: $(GEN_HEADERS) $(HOST_PROGS)
+$(WAIT).o: $(GEN_HEADERS) $(HOST_PROGS)
$(ROOT): $(LIBC) $(ROOT).o $(STARTER).o $(OBJS) $(HEADERS) $(GEN_MANPAGES)
- $(LD) $(LDFLAGS) -o $@ $(CRT0) udev.o udevstart.o $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
- $(STRIPCMD) $@
+ $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udev.o udevstart.o $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
+ $(QUIET) $(STRIPCMD) $@
$(TESTER): $(LIBC) $(TESTER).o $(OBJS) $(HEADERS)
- $(LD) $(LDFLAGS) -o $@ $(CRT0) udevtest.o $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
- $(STRIPCMD) $@
+ $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udevtest.o $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
+ $(QUIET) $(STRIPCMD) $@
$(INFO): $(LIBC) $(INFO).o $(OBJS) $(HEADERS)
- $(LD) $(LDFLAGS) -o $@ $(CRT0) udevinfo.o udev_lib.o udev_config.o udevdb.o $(SYSFS) $(TDB) $(LIB_OBJS) $(ARCH_LIB_OBJS)
- $(STRIPCMD) $@
+ $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udevinfo.o udev_lib.o udev_config.o udevdb.o $(SYSFS) $(TDB) $(LIB_OBJS) $(ARCH_LIB_OBJS)
+ $(QUIET) $(STRIPCMD) $@
$(DAEMON): $(LIBC) $(DAEMON).o $(OBJS) udevd.h
- $(LD) $(LDFLAGS) -o $@ $(CRT0) udevd.o udev_lib.o $(KLIBC_FIXUP) $(LIB_OBJS) $(ARCH_LIB_OBJS)
- $(STRIPCMD) $@
+ $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udevd.o udev_lib.o $(KLIBC_FIXUP) $(LIB_OBJS) $(ARCH_LIB_OBJS)
+ $(QUIET) $(STRIPCMD) $@
$(SENDER): $(LIBC) $(SENDER).o $(OBJS) udevd.h
- $(LD) $(LDFLAGS) -o $@ $(CRT0) udevsend.o udev_lib.o $(LIB_OBJS) $(ARCH_LIB_OBJS)
- $(STRIPCMD) $@
-
-$(RULER): $(LIBC) $(RULER).o $(OBJS) $(HEADERS)
- $(LD) $(LDFLAGS) -o $@ $(CRT0) udevruler.o udev_lib.o udev_config.o udevdb.o $(SYSFS) $(TDB) $(LIB_OBJS) $(ARCH_LIB_OBJS) -lnewt
- $(STRIPCMD) $@
+ $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) udevsend.o udev_lib.o $(LIB_OBJS) $(ARCH_LIB_OBJS)
+ $(QUIET) $(STRIPCMD) $@
$(WAIT): $(WAIT).o $(OBJS) $(HEADERS) $(LIBC)
- $(LD) $(LDFLAGS) -o $@ $(CRT0) $(WAIT).o $(SYSFS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
- $(STRIPCMD) $@
+ $(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:
+# $(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) -c -o $@ $<
+.c.o:
+ $(QUIET) $(CC) $(CFLAGS) -c -o $@ $<
+
clean:
-find . \( -not -type d \) -and \( -name '*~' -o -name '*.[oas]' \) -type f -print \
| xargs rm -f
- -rm -f core $(ROOT) $(GEN_HEADERS) $(GEN_CONFIGS) $(GEN_MANPAGES) $(INFO) $(DAEMON) $(SENDER) $(TESTER) $(RULER) $(WAIT)
+ -rm -f core $(ROOT) $(GEN_HEADERS) $(GEN_CONFIGS) $(GEN_MANPAGES) $(INFO) $(DAEMON) $(SENDER) $(TESTER) $(WAIT)
+ -rm -f ccdv
$(MAKE) -C klibc clean
@extras="$(EXTRAS)" ; for target in $$extras ; do \
echo $$target ; \
@echo "Built $(RELEASE_NAME).tar.gz"
-install-initscript: etc/init.d/udev etc/init.d/udev.debian etc/init.d/udev.init.LSB
+install-initscript: etc/init.d/udev etc/init.d/udev.init.LSB
@if [ -f /etc/redhat-release ]; then \
$(INSTALL_DATA) -D etc/init.d/udev $(DESTDIR)$(initdir)/udev; \
elif [ -f /etc/SuSE-release ]; then \
$(INSTALL_DATA) -D etc/init.d/udev.init.LSB $(DESTDIR)$(initdir)/udev; \
- elif [ -f /etc/debian_version ]; then \
- $(INSTALL_DATA) -D etc/init.d/udev.debian $(DESTDIR)$(initdir)/udev; \
fi
install-config:
$(MAKE) prefix=$(prefix) LD="$(LD)" SYSFS="$(SYSFS)" \
-C $$target $@ ; \
done ; \
+
+test: all
+ @ cd test && sudo ./udev-test.pl