
tools_dir := $(shell pwd)
packet_dir := $(tools_dir)/packet_src
lzma_dir := $(tools_dir)/lzma-4.32.7
xz_dir := $(tools_dir)/xz-5.0.3
squashfs_dir := $(tools_dir)/squashfs4.2/squashfs-tools

liblzma_dir := /usr/local/lib

CFLAGS      :=
LDFLAGS     :=
CXXFLAGS    :=

AS          := as
LD          := ld
CC          := gcc
CXX         := g++
CPP         := cpp
AR          := ar
NM          := nm
STRIP       := strip
OBJCOPY     := objcopy
OBJDUMP     := objdump
RANLIB      := ranlib
SIZE        := size

tools_obj = packet lzma xz squashfs
tools_clean_obj = packet-clean lzma-clean xz-clean squashfs-clean

.PHONY: all clean
.PHONY: $(tools_obj) $(tools_clean_obj)

all: $(tools_obj)

clean: $(tools_clean_obj)

packet:
	[ ! -d $(packet_dir) ] || [ ! -f $(packet_dir)/Makefile ] || $(MAKE) -C $(packet_dir)
	[ ! -d $(packet_dir) ] || install -D -m 755 $(packet_dir)/packet .

lzma:
	[ ! -d $(lzma_dir) ] || [ -f $(lzma_dir)/Makefile ] || ( cd $(lzma_dir) && ./configure && cd ..)
	[ ! -d $(lzma_dir) ] || [ ! -f $(lzma_dir)/Makefile ] || $(MAKE) -C $(lzma_dir)
	[ ! -d $(lzma_dir) ] || install -D -m 755 $(lzma_dir)/src/lzma/lzma .

xz:
	[ ! -d $(xz_dir) ] || [ -f $(xz_dir)/Makefile ] || ( cd $(xz_dir) && ./configure && cd ..)
	[ ! -d $(xz_dir) ] || [ ! -f $(xz_dir)/Makefile ] || $(MAKE) -C $(xz_dir)
	[ ! -d $(xz_dir) ] || install -D -m 755 $(xz_dir)/src/xz/.libs/xz .

squashfs:
	[ ! -d $(squashfs_dir) ] || [ ! -f $(squashfs_dir)/Makefile ] \
		|| $(MAKE) -C $(squashfs_dir) EXTRA_LDFLAGS="-Wl,-rpath -Wl,$(liblzma_dir)"
	[ ! -d $(squashfs_dir) ] || install -D -m 755 $(squashfs_dir)/mksquashfs .

packet-clean:
	[ ! -d $(packet_dir) ] || [ ! -f $(packet_dir)/Makefile ] || $(MAKE) -C $(packet_dir) clean
	rm -rf packet

lzma-clean:
	[ ! -d $(lzma_dir) ] || [ ! -f $(lzma_dir)/Makefile ] || $(MAKE) -C $(lzma_dir) distclean
	rm -rf lzma

xz-clean:
	[ ! -d $(xz_dir) ] || [ ! -f $(xz_dir)/Makefile ] || $(MAKE) -C $(xz_dir) distclean
	rm -rf xz

squashfs-clean:
	[ ! -d $(squashfs_dir) ] || [ ! -f $(squashfs_dir)/Makefile ] \
		|| $(MAKE) -C $(squashfs_dir) clean
	rm -rf mksquashfs
