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 \
86 all: xdelta3-debug32 xdelta3-debug64 xdelta3-debug2 xdelta3
89 all-py: all $(PYTGT) $(SWIGTGT)
91 all-targets: $(TARGETS)
93 all-targets-test: all-targets test
102 tar --exclude ".svn" -czf /tmp/$(RELDIR)-tmp.tar.gz $(SOURCES) $(EXTRA)
103 rm -rf /tmp/$(RELDIR)
105 (cd /tmp/$(RELDIR) && tar -xzf ../$(RELDIR)-tmp.tar.gz)
106 tar -czf ./$(RELDIR).tar.gz -C /tmp $(RELDIR)
107 +tar -tzf ./$(RELDIR).tar.gz
108 rm -rf /tmp/$(RELDIR)
111 tar --exclude ".svn" -czf /tmp/$(RELDIR)-tmp.tar.gz $(SOURCES) $(EXTRA)
112 rm -rf /tmp/$(RELDIR)
114 (cd /tmp/$(RELDIR) && tar -xzf ../$(RELDIR)-tmp.tar.gz)
115 tar -czf ./$(RELDIR).tar.gz -C /tmp $(RELDIR)
116 +zip -r $(RELDIR).zip /tmp/$(RELDIR)
117 rm -rf /tmp/$(RELDIR)
121 rm -rf build Debug Release core cifs* *.stackdump *.exe *~ *.dSYM \
122 xdelta3.ncb xdelta3.suo xdelta3.sln xdelta3.wixobj xdelta3.msi
124 wix: xdelta3.wxs xdelta3.wxi readme.txt Release\xdelta3.exe
125 $(WIXDIR)/candle.exe xdelta3.wxs -out xdelta3.wixobj
126 $(WIXDIR)/light.exe xdelta3.wixobj -out xdelta3.msi
129 $(CC) $(CFLAGS) -O3 xdelta3.c -lm -o xdelta3 \
130 -DREGRESSION_TEST=1 \
136 -DXD3_USE_LARGEFILE64=1
138 xdelta3-debug32: $(SOURCES)
139 $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-debug32 \
141 -DREGRESSION_TEST=1 \
147 -DXD3_USE_LARGEFILE64=1
149 xdelta3-debug64: $(SOURCES)
150 $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-debug64 \
152 -DREGRESSION_TEST=1 \
158 -DXD3_USE_LARGEFILE64=1
160 xdelta3-warnings: $(SOURCES)
161 $(CC) -g $(CFLAGS) $(WFLAGS) xdelta3.c -lm -o xdelta3-warnings \
162 -DREGRESSION_TEST=1 \
168 -DXD3_USE_LARGEFILE64=1
170 xdelta3-32: $(SOURCES)
171 $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-32 \
173 -DXD3_USE_LARGEFILE64=0 \
174 -DREGRESSION_TEST=1 \
180 xdelta3-debug2: $(SOURCES)
182 xdelta3.c -o xdelta3-debug2 \
186 -DXD3_USE_LARGEFILE64=1 \
187 -DREGRESSION_TEST=1 \
192 xdelta3-debugstdio: $(SOURCES)
193 $(CC) -g $(CFLAGS) xdelta3.c -o xdelta3-debugstdio \
195 -DXD3_USE_LARGEFILE64=1 \
197 -DREGRESSION_TEST=1 \
203 $(PYTGT): $(SOURCES) setup.py
204 $(PYTHON) setup.py install --verbose --compile --force
206 xdelta3_wrap.c xdelta3.py: xdelta3.swig
207 swig -python xdelta3.swig
209 xdelta3.o: $(SOURCES)
210 $(CC) -O3 $(CFLAGS) -c xdelta3.c $(SWIG_FLAGS) -o xdelta3.o
212 xdelta3_wrap.o: xdelta3_wrap.c
213 $(CC) -O3 $(CFLAGS) $(SWIG_FLAGS) \
215 -I/usr/include/python$(PYVER) \
216 -I/usr/lib/python$(PYVER)/config \
220 xdelta3module.dll: xdelta3_wrap.o xdelta3.o
221 gcc -shared -Wl,--enable-auto-image-base \
224 -L/usr/lib/python$(PYVER)/config \
227 cp $(SWIGTGT) /usr/lib/python$(PYVER)/site-packages
229 ifeq ("$(DARWIN)", "")
230 xdelta3module.so: xdelta3_wrap.o xdelta3.o
231 ld -shared xdelta3.o xdelta3_wrap.o \
232 -o xdelta3module.so \
233 /usr/lib/libpython$(PYVER).so \
236 xdelta3module.so: xdelta3_wrap.o xdelta3.o
237 gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup \
238 -arch x86_64 $(CFLAGS) \
239 xdelta3.o xdelta3_wrap.o -o xdelta3module.so
240 cp xdelta3module.so /Library/Python/2.6/site-packages
243 xdelta3-decoder: $(SOURCES)
244 $(CC) -O3 -Wall -Wshadow xdelta3.c \
245 -DXD3_ENCODER=0 -DXD3_MAIN=1 -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 \
246 -DXD3_STDIO=1 -DEXTERNAL_COMPRESSION=0 -DVCDIFF_TOOLS=0 \
249 xdelta3-decoder-nomain.o: $(SOURCES) linkxd3lib.c
250 $(CC) -O3 -Wall -Wshadow xdelta3.c linkxd3lib.c \
251 -DXD3_ENCODER=0 -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 \
252 -o xdelta3-decoder-nomain.o
253 strip xdelta3-decoder-nomain.o
255 xdelta3-O++: $(SOURCES)
256 $(CXX) -g -O3 $(CFLAGS) xdelta3.c \
260 -DREGRESSION_TEST=1 \
263 xdelta3-Op: $(SOURCES)
264 $(CC) -g -O3 $(CFLAGS) xdelta3.c \
268 -DREGRESSION_TEST=1 \
271 xdelta3-64: $(SOURCES)
277 -DREGRESSION_TEST=1 \
279 -DXD3_USE_LARGEFILE64=1 \
282 xdelta3-64-O: $(SOURCES)
283 $(CC) -O3 $(CFLAGS) \
288 -DXD3_USE_LARGEFILE64=1 \
291 xdelta3-everything: $(SOURCES)
294 -o xdelta3-everything \
297 -DREGRESSION_TEST=1 \
301 -DEXTERNAL_COMPRESSION=1 \
305 xdelta3-Opg: $(SOURCES)
306 $(CC) -pg -g -O3 $(CFLAGS) \
313 -DXD3_USE_LARGEFILE64=1 \
316 xdelta3-nosec.o: $(SOURCES)
317 $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 -o xdelta3-nosec.o
319 xdelta3-all.o: $(SOURCES)
320 $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=1 -DSECONDARY_DJW=1 -o xdelta3-all.o
322 xdelta3-fgk.o: $(SOURCES)
323 $(CC) -O3 $(CFLAGS) -c xdelta3.c -DSECONDARY_FGK=1 -DSECONDARY_DJW=0 -o xdelta3-fgk.o
325 xdelta3-noext: $(SOURCES)
326 $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -DEXTERNAL_COMPRESSION=0 -o xdelta3-noext
328 xdelta3-tools: $(SOURCES)
329 $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -o xdelta3-tools
331 xdelta3-notools: $(SOURCES)
332 $(CC) -O3 $(CFLAGS) xdelta3.c -DXD3_MAIN=1 -DVCDIFF_TOOLS=0 -o xdelta3-notools