@@ -7,7 +7,7 @@ ifeq ($(WITHOUT_XATTR), 1)
CPPFLAGS += -DWITHOUT_XATTR
endif
-SUBDIRS = ubi-utils mkfs.ubifs
+SUBDIRS = lib ubi-utils mkfs.ubifs
TARGETS = ftl_format flash_erase flash_eraseall nanddump doc_loadbios \
ftl_check mkfs.jffs2 flash_lock flash_unlock flash_info \
@@ -20,6 +20,9 @@ TARGETS = ftl_format flash_erase flash_eraseall nanddump doc_loadbios \
SYMLINKS =
+LDLIBS = -L$(BUILDDIR)/lib -lmtd
+LDDEPS = $(BUILDDIR)/lib/libmtd.a
+
include common.mk
clean::
@@ -36,28 +39,16 @@ $(SYMLINKS):
ln -sf ../fs/jffs2/$@ $@
$(BUILDDIR)/mkfs.jffs2: $(addprefix $(BUILDDIR)/,\
- crc32.o compr_rtime.o mkfs.jffs2.o compr_zlib.o compr_lzo.o \
+ compr_rtime.o mkfs.jffs2.o compr_zlib.o compr_lzo.o \
compr.o rbtree.o)
LDFLAGS_mkfs.jffs2 = $(ZLIBLDFLAGS) $(LZOLDFLAGS)
LDLIBS_mkfs.jffs2 = -lz -llzo2
-$(BUILDDIR)/flash_eraseall: $(BUILDDIR)/crc32.o $(BUILDDIR)/flash_eraseall.o
-
$(BUILDDIR)/jffs2reader: $(BUILDDIR)/jffs2reader.o
LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS)
LDLIBS_jffs2reader = -lz -llzo2
-$(BUILDDIR)/jffs2dump: $(BUILDDIR)/jffs2dump.o $(BUILDDIR)/crc32.o
-
-$(BUILDDIR)/sumtool: $(BUILDDIR)/sumtool.o $(BUILDDIR)/crc32.o
-
-$(BUILDDIR)/serve_image: $(BUILDDIR)/serve_image.o $(BUILDDIR)/crc32.o $(BUILDDIR)/fec.o
-
-$(BUILDDIR)/recv_image: $(BUILDDIR)/recv_image.o $(BUILDDIR)/crc32.o $(BUILDDIR)/fec.o
-
-$(BUILDDIR)/fectest: $(BUILDDIR)/fectest.o $(BUILDDIR)/crc32.o $(BUILDDIR)/fec.o
-
-
+$(BUILDDIR)/lib/libmtd.a: subdirs_lib_all ;
install:: ${TARGETS}
mkdir -p ${DESTDIR}/${SBINDIR}
@@ -47,7 +47,7 @@ clean:: $(SUBDIRS_CLEAN)
install:: $(TARGETS) $(SUBDIRS_INSTALL)
-%: %.o
+%: %.o $(LDDEPS) $(LDDEPS_$(notdir $@))
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_$(notdir $@)) -g -o $@ $^ $(LDLIBS) $(LDLIBS_$(notdir $@))
$(BUILDDIR)/%.a:
@@ -8,7 +8,7 @@
#include <sys/stat.h>
#include "mcast_image.h"
-#include "crc32.h"
+#include <crc32.h>
#define ERASE_SIZE 131072
//#define PKT_SIZE 1400
@@ -35,7 +35,7 @@
#include <getopt.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
-#include "crc32.h"
+#include <crc32.h>
#include <mtd/mtd-user.h>
#include <mtd/jffs2-user.h>
@@ -10,7 +10,7 @@
extern const uint32_t crc32_table[256];
/* Return a 32-bit CRC of the contents of the buffer. */
-static inline uint32_t ubifs_crc32(uint32_t val, const void *ss, int len)
+static inline uint32_t crc32(uint32_t val, const void *ss, int len)
{
const unsigned char *s = ss;
@@ -31,7 +31,7 @@
#include <endian.h>
#include <byteswap.h>
#include <getopt.h>
-#include "crc32.h"
+#include <crc32.h>
#include "summary.h"
#define PROGRAM "jffs2dump"
new file mode 100644
@@ -0,0 +1,22 @@
+#
+# Makefile for libmtd
+#
+
+SUBDIRS =
+
+# CFLAGS += -Werror
+CPPFLAGS += -I../include
+LIBS = libmtd
+TARGETS = libmtd.a
+
+include ../common.mk
+
+$(BUILDDIR)/libmtd.a: $(addprefix $(BUILDDIR)/,\
+ libmtd.o libmtd_legacy.o crc32.o fec.o)
+
+clean::
+ rm -f $(addsuffix .a, $(LIBS))
+
+install::
+
+uninstall:
@@ -69,10 +69,10 @@
#include <sys/acl.h>
#endif
#include <byteswap.h>
-#define crc32 __complete_crap
+#define crc32 __zlib_crc32
#include <zlib.h>
#undef crc32
-#include "crc32.h"
+#include <crc32.h>
#include "rbtree.h"
/* Do not use the weird XPG version of basename */
@@ -7,12 +7,13 @@ ALL_SOURCES=*.[ch] hashtable/*.[ch]
TARGETS = mkfs.ubifs
LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid -L$(BUILDDIR)/../ubi-utils/ -lubi
+LDLIBS_mkfs.ubifs += -L$(BUILDDIR)/../lib -lmtd
LDLIBS_mkfs.ubifs += $(ZLIBLDFLAGS) $(LZOLDFLAGS)
include ../common.mk
$(BUILDDIR)/mkfs.ubifs: $(addprefix $(BUILDDIR)/,\
- crc16.o crc32.o lpt.o compr.o devtable.o \
+ crc16.o lpt.o compr.o devtable.o \
hashtable/hashtable.o hashtable/hashtable_itr.o)
clean::
@@ -24,10 +24,12 @@
#include <stdio.h>
#include <stdint.h>
#include <string.h>
-#include <zlib.h>
#include <lzo/lzo1x.h>
#include <linux/types.h>
+#define crc32 __zlib_crc32
+#include <zlib.h>
+
#include "compr.h"
#include "ubifs-media.h"
#include "mkfs.ubifs.h"
@@ -21,6 +21,7 @@
*/
#include "mkfs.ubifs.h"
+#include <crc32.h>
#define PROGRAM_VERSION "1.3"
@@ -752,7 +753,7 @@ static void prepare_node(void *node, int len)
ch->group_type = UBIFS_NO_NODE_GROUP;
ch->sqnum = cpu_to_le64(++c->max_sqnum);
ch->padding[0] = ch->padding[1] = 0;
- crc = ubifs_crc32(UBIFS_CRC32_INIT, node + 8, len - 8);
+ crc = crc32(UBIFS_CRC32_INIT, node + 8, len - 8);
ch->crc = cpu_to_le32(crc);
}
@@ -822,7 +823,7 @@ static int do_pad(void *buf, int len)
pad_len -= UBIFS_PAD_NODE_SZ;
pad_node->pad_len = cpu_to_le32(pad_len);
- crc = ubifs_crc32(UBIFS_CRC32_INIT, buf + 8,
+ crc = crc32(UBIFS_CRC32_INIT, buf + 8,
UBIFS_PAD_NODE_SZ - 8);
ch->crc = cpu_to_le32(crc);
@@ -49,7 +49,6 @@
#include <sys/file.h>
#include "libubi.h"
-#include "crc32.h"
#include "defs.h"
#include "crc16.h"
#include "ubifs-media.h"
@@ -16,7 +16,7 @@
#include <netinet/in.h>
#include <sys/ioctl.h>
#include <sys/time.h>
-#include "crc32.h"
+#include <crc32.h>
#include "mtd/mtd-user.h"
#include "mcast_image.h"
@@ -16,7 +16,7 @@
#include <sys/mman.h>
#include <netinet/in.h>
#include <sys/time.h>
-#include "crc32.h"
+#include <crc32.h>
#include "mcast_image.h"
int tx_rate = 80000;
@@ -44,7 +44,7 @@
#include <endian.h>
#include <byteswap.h>
#include <getopt.h>
-#include "crc32.h"
+#include <crc32.h>
#include "summary.h"
#define PAD(x) (((x)+3)&~3)
@@ -9,11 +9,12 @@ SUBDIRS = old-utils
# CFLAGS += -Werror
CPPFLAGS += -Iinclude -Isrc -I$(KERNELHDR)
-LIBS = libubi libmtd libubigen libiniparser libscan
+LIBS = libubi libubigen libiniparser libscan
TARGETS = ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \
ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol
VPATH = src
+LDLIBS = -L$(BUILDDIR)/../lib -lmtd
include ../common.mk
@@ -23,32 +24,30 @@ $(TARGETS): $(addprefix $(BUILDDIR)/,\
# $(CC) $(CFLAGS) $(filter %.o, $^) -L. -lubi -o $@
$(BUILDDIR)/ubicrc32: $(addprefix $(BUILDDIR)/,\
- ubicrc32.o crc32.o)
+ ubicrc32.o)
# $(CC) $(CFLAGS) -o $@ $^
$(BUILDDIR)/ubinize: $(addprefix $(BUILDDIR)/,\
- ubinize.o common.o crc32.o libiniparser.a libubigen.a)
+ ubinize.o common.o libiniparser.a libubigen.a)
# $(CC) $(CFLAGS) $(filter %.o, $^) -L. -liniparser -lubigen -o $@
$(BUILDDIR)/mtdinfo: $(addprefix $(BUILDDIR)/,\
- libmtd.a libubigen.a crc32.o common.o)
+ libubigen.a common.o)
# $(CC) $(CFLAGS) $(filter %.o, $^) -L. -lmtd -lubigen -o $@
$(BUILDDIR)/ubiformat: $(addprefix $(BUILDDIR)/,\
- ubiformat.o common.o crc32.o libmtd.a libscan.a libubi.a libubigen.a)
+ ubiformat.o common.o libscan.a libubi.a libubigen.a)
# $(CC) $(CFLAGS) $(filter %.o, $^) -L. -lmtd -lscan -lubi -lubigen -o $@
$(BUILDDIR)/libubi.a: $(BUILDDIR)/libubi.o
-$(BUILDDIR)/libmtd.a: $(BUILDDIR)/libmtd.o $(BUILDDIR)/libmtd_legacy.o
-
$(BUILDDIR)/libubigen.a: $(BUILDDIR)/libubigen.o
$(BUILDDIR)/libiniparser.a: $(addprefix $(BUILDDIR)/,\
libiniparser.o dictionary.o)
$(BUILDDIR)/libscan.a: $(addprefix $(BUILDDIR)/,\
- libscan.o crc32.o)
+ libscan.o)
clean::
rm -f $(addsuffix .a, $(LIBS))
@@ -32,8 +32,8 @@
#include <mtd/mtd-user.h>
#include <libmtd.h>
#include <libscan.h>
+#include <crc32.h>
#include "common.h"
-#include "crc32.h"
#define PROGRAM_NAME "libscan"
@@ -32,7 +32,7 @@
#include <mtd/ubi-media.h>
#include <mtd_swab.h>
#include <libubigen.h>
-#include "crc32.h"
+#include <crc32.h>
#include "common.h"
#define PROGRAM_NAME "libubigen"
@@ -28,8 +28,8 @@
#include <getopt.h>
#include <unistd.h>
#include <mtd/ubi-media.h>
+#include <crc32.h>
-#include "crc32.h"
#include "common.h"
#define BUFSIZE 4096
@@ -41,7 +41,7 @@
#include <libscan.h>
#include <libubigen.h>
#include <mtd_swab.h>
-#include "crc32.h"
+#include <crc32.h>
#include "common.h"
#define PROGRAM_VERSION "1.5"
Modify the build system and source code so that libmtd.a can be built from a "common" location (lib/). Statically link all utilities at the top level with libmtd.a . Minor changes to mkfs.ubifs to allow using the common crc32 implementation. Signed-off-by: Kevin Cernekee <cernekee@gmail.com> --- Makefile | 21 ++++++--------------- common.mk | 2 +- fectest.c | 2 +- flash_eraseall.c | 2 +- include/crc32.h | 2 +- jffs2dump.c | 2 +- lib/Makefile | 22 ++++++++++++++++++++++ mkfs.jffs2.c | 4 ++-- mkfs.ubifs/Makefile | 3 ++- mkfs.ubifs/compr.c | 4 +++- mkfs.ubifs/mkfs.ubifs.c | 5 +++-- mkfs.ubifs/mkfs.ubifs.h | 1 - recv_image.c | 2 +- serve_image.c | 2 +- sumtool.c | 2 +- ubi-utils/Makefile | 15 +++++++-------- ubi-utils/src/libscan.c | 2 +- ubi-utils/src/libubigen.c | 2 +- ubi-utils/src/ubicrc32.c | 2 +- ubi-utils/src/ubiformat.c | 2 +- 20 files changed, 57 insertions(+), 42 deletions(-) create mode 100644 lib/Makefile