VERSION=1.5.4

include Makefile.sets

#OPTIM += -O0 -fno-inline -g
# -fmudflap
#LDOPTS += -fmudflap -lmudflap

OPTIM += -O3
#OPTIM += -O1 -g -fno-inline
#OPTIM += -O0 -g -fno-inline
# -ftree-vectorize 

#OPTIM += -O1 -pg -g
#LDOPTS += -pg

CPPFLAGS += -I../lib -I..

# multithread versions of lzma -- Windows only
#CPPFLAGS += -DCOMPRESS_MF_MT
#CPPFLAGS += -DCOMPRESS_MT

#OBJS_LZMA += ../lib/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaAlone.o
OBJS_LZMA += ../lib/lzma/CPP/7zip/Compress/LZMA/LZMAEncoder.o
OBJS_LZMA += ../lib/lzma/CPP/7zip/Compress/RangeCoder/RangeCoderBit.o
OBJS_LZMA += ../lib/lzma/CPP/7zip/Common/StreamUtils.o
OBJS_LZMA += ../lib/lzma/CPP/7zip/Common/OutBuffer.o
OBJS_LZMA += ../lib/lzma/C/Compress/Lz/MatchFinder.o
OBJS_LZMA += ../lib/lzma/C/Alloc.o
OBJS_LZMA += ../lib/lzma/CPP/Common/CRC.o
OBJS_LZMA += ../lib/lzma/C/7zCrc.o
OBJS_LZMA += ../lib/lzma.o

OBJS_MK += $(OBJS_LZMA)
OBJS_MK += mkcromfs.o \
	   ../lib/fadvise.o \
	   ../lib/crc32.o ../lib/util.o \
	   ../lib/fnmatch.o ../lib/assert++.o ../lib/append.o \
	   ../lib/sparsewrite.o \
	   ../lib/longfilewrite.o \
	   ../lib/cromfs-inodefun.o \
	   ../lib/cromfs-directoryfun.o \
	   ../lib/cromfs-blockindex.o \
	   ../lib/cromfs-fblockfun.o \
	   ../lib/cromfs-blockifier.o \
	   ../lib/boyermoore.o

OBJS_UN += unmkcromfs.o ../cromfs.o \
	   ../lib/fadvise.o \
	   ../lib/util.o ../lib/fnmatch.o \
	   ../lib/sparsewrite.o \
	   ../lib/longfilewrite.o ../lib/cromfs-inodefun.o

OBJS_CV += $(OBJS_LZMA)
OBJS_CV += cvcromfs.o ../lib/util.o ../lib/sparsewrite.o \
	   ../lib/fadvise.o \
	   ../lib/longfilewrite.o

all: mkcromfs unmkcromfs cvcromfs

unmkcromfs: $(OBJS_UN)
	$(CXX) $(CXXFLAGS) $(LDOPTS) -o $@ $^ $(LDFLAGS) $(LDLIBS)

mkcromfs: $(OBJS_MK)
	$(CXX) $(CXXFLAGS) $(LDOPTS) -o $@ $^ $(LDFLAGS) $(LDLIBS)

cvcromfs: $(OBJS_CV)
	$(CXX) $(CXXFLAGS) $(LDOPTS) -o $@ $^ $(LDFLAGS) $(LDLIBS)

lzmatest: lzmatest.o $(OBJS_LZMA)
	$(CXX) $(CXXFLAGS) $(LDOPTS) -o $@ $^ $(LDFLAGS) $(LDLIBS)

.libdepend: ../lib/.depend
	perl -pe 's@([-+a-zA-Z0-9._/]+)@../lib/$$1@g' < "$<" > "$@"
../lib/.depend:
	make -C ../lib depend
include depfun.mak
include .libdepend

clean:
	rm -f $(OBJS_MK) $(OBJS_UN)
	rm -f mkcromfs unmkcromfs
