# -*- sh -*-

BUILD_CC = $(CC)
CFLAGS += -D__USE_BSD -I. -I$(KERNEL_FULL_DIR)/include -I$(ZLIB_DIR) $(EXTRA_CFLAGS)
LDFLAGS +=$(EXTRA_LDFLAGS)
BUILD_CFLAGS = $(CFLAGS)

CPPFLAGS += -I./include $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)

ifeq ($(WITHOUT_XATTR), 1)
  CPPFLAGS += -DWITHOUT_XATTR
endif
ifeq ($(WITHOUT_LZO), 1)
  CPPFLAGS += -DWITHOUT_LZO
else
  LZOLDLIBS = -llzo2
endif

#SUBDIRS = lib ubi-utils mkfs.ubifs
#TESTS = tests
SUBDIRS = lib 
TESTS = 

#TARGETS = ftl_format flash_erase nanddump doc_loadbios \
	ftl_check mkfs.jffs2 flash_lock flash_unlock flash_info \
	flash_otp_info flash_otp_dump mtd_debug flashcp nandwrite nandtest \
	jffs2dump \
	nftldump nftl_format docfdisk \
	rfddump rfdformat \
	serve_image recv_image \
	sumtool #jffs2reader

TARGETS=flash_erase mkfs.jffs2 flashcp

INSTALL_CMDS=flash_erase flashcp

ifeq ($(IS_BUILD_FOR_NAND),1)
TARGETS+=nandwrite nanddump nandtest 
INSTALL_CMDS+=nandwrite nanddump nandtest 
SUBDIRS+= ubi-utils mkfs.ubifs
INSTALL_CMDS+=ubiattach ubicrc32 ubidetach ubiformat ubimkvol ubinfo ubinize ubirename ubirmvol ubirsvol ubiupdatevol mkfs.ubifs
endif


SCRIPTS = flash_eraseall

SYMLINKS =

LDLIBS = -L$(BUILDDIR)/lib -lmtd
LDDEPS = $(BUILDDIR)/lib/libmtd.a

include common.mk

# mkfs.ubifs needs -lubi which is in ubi-utils/
subdirs_mkfs.ubifs_all: subdirs_ubi-utils_all

clean::	
	rm -f *.o *.gdb $(TARGETS) $(BUILD_TARGETS) $(SYMLINKS)
	rm -rf build
	find ./ -name "*.o" |xargs rm -rf
	find ./ -name ".*.dep" |xargs rm -rf  
	find ./ -name "*.a" |xargs rm -rf


clean_org::
	-rm -f $(SYMLINKS)
ifneq ($(BUILDDIR)/.git,)
ifneq ($(BUILDDIR),.)
ifneq ($(BUILDDIR),$(CURDIR))
	rm -rf $(BUILDDIR)
endif
endif
endif
	$(MAKE) -C $(TESTS) clean

$(SYMLINKS):
	ln -sf ../fs/jffs2/$@ $@

$(BUILDDIR)/mkfs.jffs2: $(addprefix $(BUILDDIR)/,\
	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 $(LZOLDLIBS)

$(BUILDDIR)/jffs2reader: $(BUILDDIR)/jffs2reader.o
LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS)
LDLIBS_jffs2reader  = -lz $(LZOLDLIBS)

$(BUILDDIR)/lib/libmtd.a: subdirs_lib_all ;

install__:: ${TARGETS} ${SCRIPTS}
	mkdir -p ${DESTDIR}/${SBINDIR}
	install -m 0755 ${TARGETS} ${SCRIPTS} ${DESTDIR}/${SBINDIR}/
	mkdir -p ${DESTDIR}/${MANDIR}/man1
	gzip -9c mkfs.jffs2.1 > ${DESTDIR}/${MANDIR}/man1/mkfs.jffs2.1.gz

tests::
	$(MAKE) -C $(TESTS)

cscope:
	cscope -bR

do_strip:
	for file in ${TARGETS}; do \
		$(STRIP) $$file; \
		ls -al $$file; \
	done
 

install2:
	mkdir -p ${INSTALL_PATH}/sbin ;\
	echo ${INSTALL_CMDS} ;\
	for file in ${INSTALL_CMDS}; do \
		find ./ -name $$file -type f|xargs -i cp {} ${INSTALL_PATH}/sbin;\
	done


