1 # xdelta 3 - delta compression tools and library
2 # Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007. Joshua P. MacDonald
5 CYGWIN = $(findstring CYGWIN, $(UNAME))
6 DARWIN = $(findstring Darwin, $(UNAME))
10 SWIGTGT = xdelta3module.so
11 PYTGT = build/lib.macosx-10.6-universal-2.6/xdelta3main.so
13 SWIGTGT = xdelta3module.dll
14 PYTGT = build/lib.cygwin-1.5.24-i686-$(PYVER)/xdelta3main.dll
17 SOURCES = xdelta3-blkcache.h \
32 TARGETS = xdelta3-debug \
46 xdelta3-decoder xdelta3-decoder-nomain.o \
47 xdelta3-nosec.o xdelta3-all.o xdelta3-fgk.o \
48 xdelta3-noext xdelta3-tools \
50 xdelta3_wrap.c xdelta3.py \
56 WIXDIR = "/cygdrive/c/Program Files/wix2.0.4820"
58 CFLAGS= -Wall -Wshadow -fno-builtin
59 WFLAGS= -Wextra -Wsign-compare -Wconversion -Wextra -Wno-unused-parameter
61 # $Format: "REL=$Xdelta3Version$" $
66 EXTRA = Makefile COPYING linkxd3lib.c badcopy.c xdelta3.swig \
67 draft-korn-vcdiff.txt xdelta3.vcproj badcopy.vcproj \
68 testing/xdelta3-regtest.py xdelta3-test.py setup.py \
69 examples/Makefile examples/small_page_test.c \
70 examples/README examples/encode_decode_test.c \
71 examples/compare_test.c examples/speed_test.c \
72 examples/test.h examples/checksum_test.cc \
73 xdelta3.py xdelta3_wrap.c xdelta3.wxs xdelta3.wxi \
74 testing/cmp.h testing/delta.h testing/file.h \
75 testing/modify.h testing/random.h testing/segment.h \
76 testing/sizes.h testing/test.h testing/Makefile \
77 testing/regtest.cc README readme.txt xdelta3.1
79 SWIG_FLAGS = -DXD3_DEBUG=1 \
80 -DEXTERNAL_COMPRESSION=0 \
81 -DXD3_USE_LARGEFILE64=1 \
82 -DGENERIC_ENCODE_TABLES=1 \
87 all: xdelta3-debug32 xdelta3-debug64 xdelta3-debug2 xdelta3
90 all-py: all $(PYTGT) $(SWIGTGT)
92 all-targets: $(TARGETS)
94 all-targets-test: all-targets test
103 tar --exclude ".svn" -czf /tmp/$(RELDIR)-tmp.tar.gz $(SOURCES) $(EXTRA)
104 rm -rf /tmp/$(RELDIR)
106 (cd /tmp/$(RELDIR) && tar -xzf ../$(RELDIR)-tmp.tar.gz)
107 tar -czf ./$(RELDIR).tar.gz -C /tmp $(RELDIR)
108 +tar -tzf ./$(RELDIR).tar.gz
109 rm -rf /tmp/$(RELDIR)
112 tar --exclude ".svn" -czf /tmp/$(RELDIR)-tmp.tar.gz $(SOURCES) $(EXTRA)
113 rm -rf /tmp/$(RELDIR)
115 (cd /tmp/$(RELDIR) && tar -xzf ../$(RELDIR)-tmp.tar.gz)
116 tar -czf ./$(RELDIR).tar.gz -C /tmp $(RELDIR)
117 +zip -r $(RELDIR).zip /tmp/$(RELDIR)
118 rm -rf /tmp/$(RELDIR)
122 rm -rf build Debug Release core cifs* *.stackdump *.exe *~ *.dSYM \
123 xdelta3.ncb xdelta3.suo xdelta3.sln xdelta3.wixobj xdelta3.msi
125 wix: xdelta3.wxs xdelta3.wxi readme.txt Release\xdelta3.exe
126 $(WIXDIR)/candle.exe xdelta3.wxs -out xdelta3.wixobj
127 $(WIXDIR)/light.exe xdelta3.wixobj -out xdelta3.msi
130 $(CC) $(CFLAGS) -O3 xdelta3.c -lm -o xdelta3 \
131 -DGENERIC_ENCODE_TABLES=0 \
132 -DREGRESSION_TEST=1 \
138 -DXD3_USE_LARGEFILE64=1
140 xdelta3-debug32: $(SOURCES)
141 $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-debug32 \
143 -DGENERIC_ENCODE_TABLES=1 \
144 -DREGRESSION_TEST=1 \
150 -DXD3_USE_LARGEFILE64=1
152 xdelta3-debug64: $(SOURCES)
153 $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-debug64 \
155 -DGENERIC_ENCODE_TABLES=1 \
156 -DREGRESSION_TEST=1 \
162 -DXD3_USE_LARGEFILE64=1
164 xdelta3-warnings: $(SOURCES)
165 $(CC) -g $(CFLAGS) $(WFLAGS) xdelta3.c -lm -o xdelta3-warnings \
166 -DGENERIC_ENCODE_TABLES=1 \
167 -DREGRESSION_TEST=1 \
173 -DXD3_USE_LARGEFILE64=1
175 xdelta3-32: $(SOURCES)
176 $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-32 \
178 -DXD3_USE_LARGEFILE64=0 \
179 -DREGRESSION_TEST=1 \
185 xdelta3-debug2: $(SOURCES)
187 xdelta3.c -o xdelta3-debug2 \
191 -DXD3_USE_LARGEFILE64=1 \
192 -DGENERIC_ENCODE_TABLES=1 \
193 -DREGRESSION_TEST=1 \
198 xdelta3-debugstdio: $(SOURCES)
199 $(CC) -g $(CFLAGS) xdelta3.c -o xdelta3-debugstdio \
201 -DGENERIC_ENCODE_TABLES=1 \
202 -DXD3_USE_LARGEFILE64=1 \
204 -DREGRESSION_TEST=1 \
210 $(PYTGT): $(SOURCES) setup.py
211 $(PYTHON) setup.py install --verbose --compile --force
213 xdelta3_wrap.c xdelta3.py: xdelta3.swig
214 swig -python xdelta3.swig
216 xdelta3.o: $(SOURCES)
217 $(CC) -O3 $(CFLAGS) -c xdelta3.c $(SWIG_FLAGS) -o xdelta3.o
219 xdelta3_wrap.o: xdelta3_wrap.c
220 $(CC) -O3 $(CFLAGS) $(SWIG_FLAGS) \
222 -I/usr/include/python$(PYVER) \
223 -I/usr/lib/python$(PYVER)/config \
227 xdelta3module.dll: xdelta3_wrap.o xdelta3.o
228 gcc -shared -Wl,--enable-auto-image-base \
231 -L/usr/lib/python$(PYVER)/config \
234 cp $(SWIGTGT) /usr/lib/python$(PYVER)/site-packages
236 ifeq ("$(DARWIN)", "")
237 xdelta3module.so: xdelta3_wrap.o xdelta3.o
238 ld -shared xdelta3.o xdelta3_wrap.o \
239 -o xdelta3module.so \
240 /usr/lib/libpython$(PYVER).so \
243 xdelta3module.so: xdelta3_wrap.o xdelta3.o
244 gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup \
245 -arch x86_64 $(CFLAGS) \
246 xdelta3.o xdelta3_wrap.o -o xdelta3module.so
247 cp xdelta3module.so /Library/Python/2.6/site-packages
250 xdelta3-decoder: $(SOURCES)
251 $(CC) -O3 -Wall -Wshadow xdelta3.c \
252 -DXD3_ENCODER=0 -DXD3_MAIN=1 -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 \
253 -DXD3_STDIO=1 -DEXTERNAL_COMPRESSION=0 -DVCDIFF_TOOLS=0 \
256 xdelta3-decoder-nomain.o: $(SOURCES) linkxd3lib.c
257 $(CC) -O3 -Wall -Wshadow xdelta3.c linkxd3lib.c \
258 -DXD3_ENCODER=0 -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 \
259 -o xdelta3-decoder-nomain.o
260 strip xdelta3-decoder-nomain.o
262 xdelta3-O++: $(SOURCES)
263 $(CXX) -g -O3 $(CFLAGS) xdelta3.c \
267 -DREGRESSION_TEST=1 \
270 xdelta3-Op: $(SOURCES)
271 $(CC) -g -O3 $(CFLAGS) xdelta3.c \
275 -DREGRESSION_TEST=1 \
278 xdelta3-64: $(SOURCES)
284 -DREGRESSION_TEST=1 \
286 -DXD3_USE_LARGEFILE64=1 \
289 xdelta3-64-O: $(SOURCES)
290 $(CC) -O3 $(CFLAGS) \
295 -DXD3_USE_LARGEFILE64=1 \
298 xdelta3-everything: $(SOURCES)
301 -o xdelta3-everything \
304 -DREGRESSION_TEST=1 \
307 -DGENERIC_ENCODE_TABLES=1 \
308 -DGENERIC_ENCODE_TABLES_COMPUTE=1 \
310 -DEXTERNAL_COMPRESSION=1 \
314 xdelta3-Opg: $(SOURCES)
315 $(CC) -pg -g -O3 $(CFLAGS) \
322 -DXD3_USE_LARGEFILE64=1 \
325 xdelta3-nosec.o: $(SOURCES)
326 $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 -o xdelta3-nosec.o
328 xdelta3-all.o: $(SOURCES)
329 $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=1 -DSECONDARY_DJW=1 -o xdelta3-all.o
331 xdelta3-fgk.o: $(SOURCES)
332 $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=1 -DSECONDARY_DJW=0 -o xdelta3-fgk.o
334 xdelta3-noext: $(SOURCES)
335 $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -DEXTERNAL_COMPRESSION=0 -o xdelta3-noext
337 xdelta3-tools: $(SOURCES)
338 $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -o xdelta3-tools
340 xdelta3-notools: $(SOURCES)
341 $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -DVCDIFF_TOOLS=0 -o xdelta3-notools