# Makefile for hal/3pp/jfstools-1.1.18


### Requires these modules

REQUIRES += hal/3pp/e2fsprogs-1.37


### Component specification

COMPONENT_IS_3PP = true
COMPONENT_TARGETS = $(TARGET_NAME_VIP)
NEEDS_ABS_PATHS = true


### Tar archive

tar_archive  = $(CURDIR)/jfsutils-1.1.8.tar.gz
src_dir      = $(CURDIR)/$(TARGET)/jfsutils-1.1.8
obj_dir      = $(CURDIR)/$(TARGET)/build


### Targets

BIN_TARGETS  += $(obj_dir)/fsck/jfs_fsck
BIN_TARGETS  += $(obj_dir)/fscklog/jfs_fscklog
BIN_TARGETS  += $(obj_dir)/logdump/jfs_logdump
BIN_TARGETS  += $(obj_dir)/mkfs/jfs_mkfs
BIN_TARGETS  += $(obj_dir)/tune/jfs_tune
BIN_TARGETS  += $(obj_dir)/xpeek/jfs_debugfs

DOC_TARGETS = $(src_dir)/COPYING
DOC_OMIT_SOURCE_DIR = yes
DOC_PATH = ../../doc/doc


### Extra cleanup

CLEANUP_FILES += $(src_dir)


### Common.mk

include ../../../makesystem/common.mk


### Extra setup

CFLAGS := $(filter-out -mips2 -mcpu=r4600,$(CFLAGS))
CFLAGS_FOR_TARGET := $(CFLAGS)
CFLAGS := -O2
CFLAGS += -I$(TARGET_3PP_DIST_DIR)/include/uuid


### Dependencies

$(src_dir): $(tar_archive)
	@echo "Expanding $(tar_archive)"
	@mkdir -p $(TARGET)
	@cd $(TARGET) && tar -xzf $(tar_archive)
	@touch $@

$(obj_dir)/Makefile: $(src_dir)
	@echo "Configuring for target $(TARGET)"
	cd $(src_dir) && \
	  patch -p0 < $(CURDIR)/fix_uuid_h_path.patch && \
	  patch -p0 < $(CURDIR)/mipsel_segfault_fix.patch
	@rm -rf $(obj_dir)
	@mkdir $(obj_dir)
	cd $(obj_dir) && \
	  $(BSG_DEVSETUP) CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" $(src_dir)/configure \
	    --build=$(ARCH_BUILD) \
	    --host=$(TARGET_ARCH) \
	    --target=$(TARGET_ARCH)
	@cd $(obj_dir) && \
	  sed "s%^LDFLAGS =%LDFLAGS = $(LDFLAGS)%" Makefile > Makefile.new && \
	  mv -f Makefile.new Makefile

$(BIN_TARGETS): $(obj_dir)/Makefile
	$(BSG_DEVSETUP) $(MAKE) -C $(obj_dir)
