blob: b504975db0cc3837d481b627d9160586687c0bad [file] [log] [blame]
Mike Frysingerd89e5e62005-04-24 05:15:12 +00001# Makefile for busybox
2#
3# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
4#
Mike Frysinger0d4ee682005-09-24 06:01:57 +00005# Licensed under the GPL v2, see the file LICENSE in this tarball.
Mike Frysingerd89e5e62005-04-24 05:15:12 +00006
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +00007E2FSPROGS_AR:=e2fsprogs.a
8
9E2FSPROGS_DIR:=$(top_builddir)/e2fsprogs
10E2FSPROGS_SRC:=$(top_srcdir)/e2fsprogs
11
12E2FSPROGS_CFLAGS := -include $(E2FSPROGS_SRC)/e2fsbb.h
Eric Andersen9cc7f322005-05-11 23:20:09 +000013
"Vladimir N. Oleynik"b71e6022005-09-19 13:48:39 +000014BLKID_SRC := cache.c dev.c devname.c devno.c blkid_getsize.c \
Mike Frysingerbe7c5392006-05-11 04:37:25 +000015 probe.c read.c resolve.c save.c tag.c
Mike Frysinger174808c2005-06-11 01:14:09 +000016BLKID_SRCS := $(patsubst %,blkid/%, $(BLKID_SRC))
17BLKID_OBJS := $(patsubst %.c,%.o, $(BLKID_SRCS))
18
19E2P_SRC := fgetsetflags.c fgetsetversion.c pf.c iod.c mntopts.c \
Mike Frysingerbe7c5392006-05-11 04:37:25 +000020 feature.c ls.c uuid.c pe.c ostype.c ps.c hashstr.c \
21 parse_num.c
Mike Frysingerf3d28842005-06-11 00:27:50 +000022E2P_SRCS := $(patsubst %,e2p/%, $(E2P_SRC))
23E2P_OBJS := $(patsubst %.c,%.o, $(E2P_SRCS))
Eric Andersen9cc7f322005-05-11 23:20:09 +000024
Mike Frysinger174808c2005-06-11 01:14:09 +000025EXT2FS_SRC := gen_bitmap.c bitops.c ismounted.c mkjournal.c unix_io.c \
Mike Frysingerbe7c5392006-05-11 04:37:25 +000026 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
Mike Frysinger174808c2005-06-11 01:14:09 +000034EXT2FS_SRCS := $(patsubst %,ext2fs/%, $(EXT2FS_SRC))
35EXT2FS_OBJS := $(patsubst %.c,%.o, $(EXT2FS_SRCS))
36
37UUID_SRC := compare.c gen_uuid.c pack.c parse.c unpack.c unparse.c \
Mike Frysingerbe7c5392006-05-11 04:37:25 +000038 uuid_time.c
Mike Frysinger174808c2005-06-11 01:14:09 +000039UUID_SRCS := $(patsubst %,uuid/%, $(UUID_SRC))
40UUID_OBJS := $(patsubst %.c,%.o, $(UUID_SRCS))
41
Bernhard Reutner-Fischer5c071bc2005-10-05 07:40:46 +000042# for building out-of-tree we need to make sure that the directories to hold
43# the object tree are created
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000044$(patsubst %,$(E2FSPROGS_DIR)/%, blkid e2fsck e2p ext2fs uuid):
Bernhard Reutner-Fischer7abe7092005-10-05 10:06:11 +000045 @mkdir -p "$@"
Bernhard Reutner-Fischer5c071bc2005-10-05 07:40:46 +000046
Bernhard Reutner-Fischer7abe7092005-10-05 10:06:11 +000047# 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).
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000051$(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
Bernhard Reutner-Fischer07a79e72006-03-09 09:03:37 +000056
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000057E2FSPROGS-y:=
Mike Frysinger174808c2005-06-11 01:14:09 +000058E2FSPROGS-$(CONFIG_CHATTR) += chattr.o $(E2P_OBJS)
Mike Frysingerdc251032005-10-05 00:52:37 +000059E2FSPROGS-$(CONFIG_E2FSCK) += e2fsck.o util.o $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS)
Mike Frysinger25f67d42006-03-18 04:11:51 +000060E2FSPROGS-$(CONFIG_FSCK) += fsck.o util.o $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS)
Mike Frysinger174808c2005-06-11 01:14:09 +000061E2FSPROGS-$(CONFIG_LSATTR) += lsattr.o $(E2P_OBJS)
Mike Frysinger6447ac02005-06-11 05:29:40 +000062E2FSPROGS-$(CONFIG_MKE2FS) += mke2fs.o util.o $(E2P_OBJS) $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS)
Mike Frysinger174808c2005-06-11 01:14:09 +000063E2FSPROGS-$(CONFIG_TUNE2FS) += tune2fs.o util.o $(E2P_OBJS) $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS)
Mike Frysingerd89e5e62005-04-24 05:15:12 +000064
Bernhard Reutner-Fischer7ca61b62006-01-15 14:04:57 +000065E2FSPROGS-y:=$(sort $(E2FSPROGS-y))
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000066
67ifneq ($(strip $(E2FSPROGS-y)),)
68libraries-y+=$(E2FSPROGS_DIR)/$(E2FSPROGS_AR)
Rob Landleyd6e14d82006-02-21 19:11:35 +000069endif
70
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000071E2FSPROGS_SRC-y:=$(patsubst %.o,$(E2FSPROGS_SRC)/%.c,$(E2FSPROGS-y))
72E2FSPROGS_SRC-a:=$(wildcard $(E2FSPROGS_SRC)/*.c) $(patsubst %,$(E2FSPROGS_SRC)/%,$(BLKID_SRCS) $(E2P_SRCS) $(EXT2FS_SRCS) $(UUID_SRCS))
73APPLET_SRC-y+=$(E2FSPROGS_CFLAGS) $(E2FSPROGS_SRC-y)
74APPLET_SRC-a+=$(E2FSPROGS_CFLAGS) $(E2FSPROGS_SRC-a)
Bernhard Reutner-Fischer7ca61b62006-01-15 14:04:57 +000075
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000076# XXX: FIXME: change .c to include their stuff relative to $(E2FSPROGS_SRC)
77E2FSPROGS_TMP_KLUDGE:=$(patsubst %,-I$(E2FSPROGS_SRC)/%,blkid e2fsck e2p ext2fs uuid)
Bernhard Reutner-Fischer7ca61b62006-01-15 14:04:57 +000078
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000079APPLETS_DEFINE-y+=$(E2FSPROGS_CFLAGS) -I$(E2FSPROGS_SRC) $(E2FSPROGS_TMP_KLUDGE)
80APPLETS_DEFINE-a+=$(E2FSPROGS_CFLAGS) -I$(E2FSPROGS_SRC) $(E2FSPROGS_TMP_KLUDGE)
Eric Andersen9cc7f322005-05-11 23:20:09 +000081
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000082$(E2FSPROGS_DIR)/$(E2FSPROGS_AR): $(patsubst %,$(E2FSPROGS_DIR)/%, $(E2FSPROGS-y))
83 $(do_ar)
Mike Frysingerd89e5e62005-04-24 05:15:12 +000084
Bernhard Reutner-Fischerdf100942006-03-13 19:04:00 +000085$(E2FSPROGS_DIR)/%.o: $(subst $(top_builddir),$(top_srcdir),$(E2FSPROGS_DIR)/%.c)
86 $(compile.c) $(E2FSPROGS_CFLAGS)