+all: $(KLCC) $(PROGRAMS) $(MAN_PAGES)
+ @extras="$(EXTRAS)"; for target in $$extras; do \
+ echo $$target; \
+ $(MAKE) prefix=$(prefix) \
+ LD="$(LD)" \
+ LIBUDEV="$(PWD)/$(LIBUDEV)" \
+ LIBSYSFS="$(PWD)/$(LIBSYSFS)" \
+ KERNEL_DIR="$(KERNEL_DIR)" \
+ QUIET="$(QUIET)" \
+ -C $$target $@; \
+ done;
+.PHONY: all
+
+$(PROGRAMS): $(HOST_PROGS) $(KLCC) $(HEADERS) $(GEN_HEADERS) $(LIBSYSFS) $(LIBUDEV)
+ $(QUIET) $(CC) $(CFLAGS) -c -o $@.o $@.c
+ $(QUIET) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) $(LIBSYSFS) $(LIB_OBJS)
+ $(QUIET) $(STRIPCMD) $@
+
+# our own copy of klibc if KLCC is specified it will not be used
+$(KLCC):
+ $(MAKE) -j1 -C klibc KRNLSRC=$(KERNEL_DIR) SUBDIRS=klibc TESTS= \
+ SHLIBDIR=$(KLIBC_INSTALL)/lib \
+ INSTALLDIR=$(KLIBC_INSTALL) \
+ bindir=$(KLIBC_INSTALL)/bin \
+ mandir=$(KLIBC_INSTALL)/man all install
+ -find $(KLIBC_INSTALL)/include -name SCCS -print| xargs rm -rf
+
+$(UDEV_OBJS): $(KLCC)
+$(LIBUDEV): $(HOST_PROGS) $(HEADERS) $(GEN_HEADERS) $(UDEV_OBJS)
+ @rm -f $@
+ $(QUIET) $(AR) cq $@ $(UDEV_OBJS)
+ $(QUIET) $(RANLIB) $@
+
+$(SYSFS_OBJS): $(KLCC)
+$(LIBSYSFS): $(HOST_PROGS) $(SYSFS_OBJS)
+ @rm -f $@
+ $(QUIET) $(AR) cq $@ $(SYSFS_OBJS)
+ $(QUIET) $(RANLIB) $@
+
+# generate config files
+$(GEN_CONFIGS):
+ sed -e "s:@udevdir@:$(udevdir):" -e "s:@configdir@:$(configdir):" < $@.in > $@
+
+# generate config header file