react-native-update
Version:
react-native hot update
158 lines (136 loc) • 4.02 kB
Plain Text
# args
DIR_DIFF := 1
MT := 1
LZMA := 1
MD5 := 0
HPATCH_OBJ := \
libHDiffPatch/HPatch/patch.o \
file_for_patch.o
ifeq ($(DIR_DIFF),0)
else
HPATCH_OBJ += \
dirDiffPatch/dir_patch/dir_patch.o \
dirDiffPatch/dir_patch/res_handle_limit.o \
dirDiffPatch/dir_patch/ref_stream.o \
dirDiffPatch/dir_patch/new_stream.o \
dirDiffPatch/dir_patch/dir_patch_tools.o \
dirDiffPatch/dir_patch/new_dir_output.o \
libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.o
endif
HDIFF_OBJ := \
libHDiffPatch/HDiff/diff.o \
libHDiffPatch/HDiff/private_diff/bytes_rle.o \
libHDiffPatch/HDiff/private_diff/suffix_string.o \
libHDiffPatch/HDiff/private_diff/compress_detect.o \
libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.o \
libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.o \
libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.o \
libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.o \
libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.o \
$(HPATCH_OBJ)
ifeq ($(DIR_DIFF),0)
else
HDIFF_OBJ += \
dirDiffPatch/dir_diff/dir_diff.o \
dirDiffPatch/dir_diff/dir_diff_tools.o \
dirDiffPatch/dir_diff/dir_manifest.o
endif
ifeq ($(MT),0)
else
HDIFF_OBJ += \
libParallel/parallel_import.o \
libParallel/parallel_channel.o \
compress_parallel.o
endif
DEF_FLAGS := \
-Os -DNDEBUG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \
-D_IS_NEED_ALL_CompressPlugin=0 \
-D_IS_NEED_DEFAULT_CompressPlugin=0 \
-D_CompressPlugin_zlib \
-D_CompressPlugin_bz2 \
-D_IS_NEED_ALL_ChecksumPlugin=0 \
-D_IS_NEED_DEFAULT_ChecksumPlugin=0
ifeq ($(DIR_DIFF),0)
DEF_FLAGS += -D_IS_NEED_DIR_DIFF_PATCH=0
else
DEF_FLAGS += \
-D_IS_NEED_DIR_DIFF_PATCH=1 \
-D_ChecksumPlugin_crc32 \
-D_ChecksumPlugin_fadler64
ifeq ($(MD5),0)
else
DEF_FLAGS += -D_ChecksumPlugin_md5 -I'../libmd5'
endif
endif
ifeq ($(LZMA),0)
else
DEF_FLAGS += \
-D_CompressPlugin_lzma -I'../lzma/C' \
-D_CompressPlugin_lzma2 -I'../lzma/C'
endif
ifeq ($(MT),0)
DEF_FLAGS += \
-D_7ZIP_ST \
-D_IS_USED_MULTITHREAD=0
else
DEF_FLAGS += \
-D_IS_USED_MULTITHREAD=1 \
-D_IS_USED_PTHREAD=1
endif
PATCH_LINK := -lz -lbz2
DIFF_LINK := $(PATCH_LINK)
ifeq ($(MT),0)
else
DIFF_LINK += -lpthread
endif
CFLAGS += $(DEF_FLAGS)
CXXFLAGS += $(DEF_FLAGS)
all: md5Lib lzmaLib libhdiffpatch.a hdiffz hpatchz
ifeq ($(DIR_DIFF),0)
MD5_OBJ :=
md5Lib :
else
ifeq ($(MD5),0)
MD5_OBJ :=
md5Lib :
else
MD5_OBJ := 'md5.o'
md5Lib : # https://sourceforge.net/projects/libmd5-rfc https://github.com/sisong/libmd5
$(CC) -c $(CFLAGS) '../libmd5/md5.c'
endif
endif
ifeq ($(LZMA),0)
LZMA_DEC_OBJ :=
LZMA_OBJ :=
lzmaLib :
else
LZMA_DEC_OBJ := 'LzmaDec.o' 'Lzma2Dec.o'
LZMA_OBJ := 'LzFind.o' 'LzmaEnc.o' 'Lzma2Enc.o' $(LZMA_DEC_OBJ)
LZMA_SRC := '../lzma/C/LzFind.c' '../lzma/C/LzmaDec.c' '../lzma/C/LzmaEnc.c' \
'../lzma/C/Lzma2Dec.c' '../lzma/C/Lzma2Enc.c'
ifeq ($(MT),0)
else
LZMA_OBJ += 'LzFindMt.o' 'MtCoder.o' 'MtDec.o' 'ThreadsP.o'
LZMA_SRC += '../lzma/C/LzFindMt.c' '../lzma/C/MtCoder.c' \
'../lzma/C/MtDec.c' '../lzma/C/ThreadsP.c'
endif
lzmaLib: # https://github.com/sisong/lzma
$(CC) -c $(CFLAGS) $(LZMA_SRC)
endif
libhdiffpatch.a: $(HDIFF_OBJ)
$(AR) rcs $@ $^
hdiffz:
$(CXX) hdiffz.cpp libhdiffpatch.a $(MD5_OBJ) $(LZMA_OBJ) $(CXXFLAGS) $(DIFF_LINK) -o hdiffz
hpatchz:
$(CC) hpatchz.c $(HPATCH_OBJ) $(MD5_OBJ) $(LZMA_DEC_OBJ) $(CFLAGS) $(PATCH_LINK) -o hpatchz
RM := rm -f
INSTALL_X := install -m 0755
INSTALL_BIN := $(DESTDIR)/usr/local/bin
clean:
$(RM) libhdiffpatch.a hdiffz hpatchz $(HDIFF_OBJ) $(MD5_OBJ) $(LZMA_OBJ)
install: all
$(INSTALL_X) hdiffz $(INSTALL_BIN)/hdiffz
$(INSTALL_X) hpatchz $(INSTALL_BIN)/hpatchz
uninstall:
$(RM) $(INSTALL_BIN)/hdiffz $(INSTALL_BIN)/hpatchz