-INSTALL_SCRIPT = ${INSTALL_PROGRAM}
-
-override CFLAGS+=-D_FILE_OFFSET_BITS=64
-
-VOLUME_ID_OBJS= \
- volume_id/ext/ext.o \
- volume_id/fat/fat.o \
- volume_id/hfs/hfs.o \
- volume_id/highpoint/highpoint.o \
- volume_id/iso9660/iso9660.o \
- volume_id/jfs/jfs.o \
- volume_id/linux_raid/linux_raid.o \
- volume_id/linux_swap/linux_swap.o \
- volume_id/lvm/lvm.o \
- volume_id/mac/mac.o \
- volume_id/msdos/msdos.o \
- volume_id/ntfs/ntfs.o \
- volume_id/reiserfs/reiserfs.o \
- volume_id/udf/udf.o \
- volume_id/ufs/ufs.o \
- volume_id/xfs/xfs.o \
- volume_id/dasd/dasd.o \
- volume_id/volume_id.o \
- volume_id/util.o
-
-VOLUME_ID_HEADERS= \
- volume_id/ext/ext.h \
- volume_id/fat/fat.h \
- volume_id/hfs/hfs.h \
- volume_id/highpoint/highpoint.h \
- volume_id/iso9660/iso9660.h \
- volume_id/jfs/jfs.h \
- volume_id/linux_raid/linux_raid.h \
- volume_id/linux_swap/linux_swap.h \
- volume_id/lvm/lvm.h \
- volume_id/mac/mac.h \
- volume_id/msdos/msdos.h \
- volume_id/ntfs/ntfs.h \
- volume_id/reiserfs/reiserfs.h \
- volume_id/udf/udf.h \
- volume_id/ufs/ufs.h \
- volume_id/xfs/xfs.h \
- volume_id/dasd/dasd.h \
- volume_id/volume_id.h \
- volume_id/util.h
-
-OBJS = udev_volume_id.o $(VOLUME_ID_OBJS) $(SYSFS)
-HEADERS = $(VOLUME_ID_HEADERS)
-
-$(OBJS): $(HEADERS)
-
-.c.o:
- $(QUIET) $(CC) $(CFLAGS) -c -o $@ $<
-
-$(PROG): $(OBJS) $(HEADERS)
- $(QUIET) $(LD) $(LDFLAGS) -o $(PROG) $(CRT0) $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS)
+INSTALL_SCRIPT = ${INSTALL}
+
+all: lib $(PROG) $(MAN_PAGES)
+.PHONY: all
+.DEFAULT: all
+
+.SUFFIXES:
+
+%.o: %.c $(GEN_HEADERS)
+ $(E) " CC " $@
+ $(Q) $(CC) -c $(CFLAGS) $< -o $@
+
+lib:
+ $(Q) $(MAKE) -C $@
+.PHONY: lib
+
+lib/libvolume_id.a: lib
+
+$(PROG): %: $(HEADERS) %.o lib/libvolume_id.a
+ $(E) " LD " $@
+ifeq ($(strip $(VOLUME_ID_STATIC)),true)
+ $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) lib/libvolume_id.a $(LIB_OBJS)
+else
+ $(Q) $(LD) $(LDFLAGS) -o $@ $@.o $(LIBUDEV) -Llib -lvolume_id $(LIB_OBJS)
+endif
+
+# man pages
+%.8: %.xml
+ $(E) " XMLTO " $@
+ $(Q) xmlto man $?
+.PRECIOUS: %.8