make the build system puuuuuuuuuuurty
[platform/upstream/busybox.git] / e2fsprogs / Makefile.in
1 # Makefile for busybox
2 #
3 # Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
4 #
5 # Licensed under the GPL v2, see the file LICENSE in this tarball.
6
7 E2FSPROGS_AR:=e2fsprogs.a
8
9 E2FSPROGS_DIR:=$(top_builddir)/e2fsprogs
10 E2FSPROGS_SRC:=$(top_srcdir)/e2fsprogs
11
12 E2FSPROGS_CFLAGS := -include $(E2FSPROGS_SRC)/e2fsbb.h
13
14 BLKID_SRC   := cache.c dev.c devname.c devno.c blkid_getsize.c \
15                probe.c read.c resolve.c save.c tag.c
16 BLKID_SRCS  := $(patsubst %,blkid/%, $(BLKID_SRC))
17 BLKID_OBJS  := $(patsubst %.c,%.o, $(BLKID_SRCS))
18
19 E2P_SRC     := fgetsetflags.c fgetsetversion.c pf.c iod.c mntopts.c \
20                feature.c ls.c uuid.c pe.c ostype.c ps.c hashstr.c \
21                parse_num.c
22 E2P_SRCS    := $(patsubst %,e2p/%, $(E2P_SRC))
23 E2P_OBJS    := $(patsubst %.c,%.o, $(E2P_SRCS))
24
25 EXT2FS_SRC  := gen_bitmap.c bitops.c ismounted.c mkjournal.c unix_io.c \
26                rw_bitmaps.c initialize.c bitmaps.c block.c \
27                ind_block.c inode.c freefs.c alloc_stats.c closefs.c \
28                openfs.c io_manager.c finddev.c read_bb.c alloc.c badblocks.c \
29                getsize.c getsectsize.c alloc_tables.c read_bb_file.c mkdir.c \
30                bb_inode.c newdir.c alloc_sb.c lookup.c dirblock.c expanddir.c \
31                dir_iterate.c link.c res_gdt.c icount.c get_pathname.c dblist.c \
32                dirhash.c version.c flushb.c unlink.c check_desc.c valid_blk.c \
33                ext_attr.c bmap.c dblist_dir.c ext2fs_inline.c swapfs.c
34 EXT2FS_SRCS := $(patsubst %,ext2fs/%, $(EXT2FS_SRC))
35 EXT2FS_OBJS := $(patsubst %.c,%.o, $(EXT2FS_SRCS))
36
37 UUID_SRC    := compare.c gen_uuid.c pack.c parse.c unpack.c unparse.c \
38                uuid_time.c
39 UUID_SRCS   := $(patsubst %,uuid/%, $(UUID_SRC))
40 UUID_OBJS   := $(patsubst %.c,%.o, $(UUID_SRCS))
41
42 # for building out-of-tree we need to make sure that the directories to hold
43 # the object tree are created
44 $(patsubst %,$(E2FSPROGS_DIR)/%, blkid e2fsck e2p ext2fs uuid):
45         @mkdir -p "$@"
46
47 # make sure that the directories are order-only prerequisites. Otherwise we
48 # may have object files created after the timestamp of the directory was
49 # updated which would lead to spurious rebuilds (as some of the dentries
50 # may be older than the dir itself).
51 $(patsubst %,$(E2FSPROGS_DIR)/%, $(BLKID_OBJS)):|$(E2FSPROGS_DIR)/blkid
52 $(patsubst %,$(E2FSPROGS_DIR)/%, $(E2FSCK_OBJS)):|$(E2FSPROGS_DIR)/e2fsck
53 $(patsubst %,$(E2FSPROGS_DIR)/%, $(E2P_OBJS)):|$(E2FSPROGS_DIR)/e2p
54 $(patsubst %,$(E2FSPROGS_DIR)/%, $(EXT2FS_OBJS)):|$(E2FSPROGS_DIR)/ext2fs
55 $(patsubst %,$(E2FSPROGS_DIR)/%, $(UUID_OBJS)):|$(E2FSPROGS_DIR)/uuid
56
57 E2FSPROGS-y:=
58 E2FSPROGS-$(CONFIG_CHATTR)     += chattr.o $(E2P_OBJS)
59 E2FSPROGS-$(CONFIG_E2FSCK)     += e2fsck.o util.o $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS)
60 E2FSPROGS-$(CONFIG_FSCK)       += fsck.o util.o $(BLKID_OBJS) $(UUID_OBJS)
61 E2FSPROGS-$(CONFIG_LSATTR)     += lsattr.o $(E2P_OBJS)
62 E2FSPROGS-$(CONFIG_MKE2FS)     += mke2fs.o util.o $(E2P_OBJS) $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS)
63 E2FSPROGS-$(CONFIG_TUNE2FS)    += tune2fs.o util.o $(E2P_OBJS) $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS)
64
65 E2FSPROGS-y:=$(sort $(E2FSPROGS-y))
66
67 libraries-y+=$(E2FSPROGS_DIR)/$(E2FSPROGS_AR)
68 E2FSPROGS_SRC-y:=$(patsubst %.o,$(E2FSPROGS_SRC)/%.c,$(E2FSPROGS-y))
69 E2FSPROGS_SRC-a:=$(wildcard $(E2FSPROGS_SRC)/*.c) $(patsubst %,$(E2FSPROGS_SRC)/%,$(BLKID_SRCS) $(E2P_SRCS) $(EXT2FS_SRCS) $(UUID_SRCS))
70 APPLET_SRC-y+=$(E2FSPROGS_CFLAGS) $(E2FSPROGS_SRC-y)
71 APPLET_SRC-a+=$(E2FSPROGS_CFLAGS) $(E2FSPROGS_SRC-a)
72
73 # XXX: FIXME: change .c to include their stuff relative to $(E2FSPROGS_SRC)
74 E2FSPROGS_TMP_KLUDGE:=$(patsubst %,-I$(E2FSPROGS_SRC)/%,blkid e2fsck e2p ext2fs uuid)
75
76 APPLETS_DEFINE-y+=$(E2FSPROGS_CFLAGS) -I$(E2FSPROGS_SRC) $(E2FSPROGS_TMP_KLUDGE)
77 APPLETS_DEFINE-a+=$(E2FSPROGS_CFLAGS) -I$(E2FSPROGS_SRC) $(E2FSPROGS_TMP_KLUDGE)
78
79 $(E2FSPROGS_DIR)/$(E2FSPROGS_AR): $(patsubst %,$(E2FSPROGS_DIR)/%, $(E2FSPROGS-y))
80         $(do_ar)
81
82 $(E2FSPROGS_DIR)/%.o: $(subst $(top_builddir),$(top_srcdir),$(E2FSPROGS_DIR)/%.c)
83         $(compile.c) $(E2FSPROGS_CFLAGS)