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 MINGW = $(findstring MINGW32, $(UNAME))
9 ifneq ("$(CYGWIN)", "")
10 SWIGTGT = xdelta3module.dll
11 PYTGT = build/lib.cygwin-1.5.24-i686-$(PYVER)/xdelta3main.dll
13 ifneq ("$(MINGW)", "")
14 # FIXME: WHAT TO DO HERE???
15 # FIXME: WHAT IF WE ARE CROSS-COMPILING???
19 SOURCES = xdelta3-cfgs.h \
33 TARGETS = xdelta3-debug.exe \
41 xdelta3-everything.exe \
42 xdelta3-decoder.exe xdelta3-decoder-nomain.o \
43 xdelta3-nosec.o xdelta3-all.o xdelta3-fgk.o \
44 xdelta3-noext.exe xdelta3-tools.exe \
46 xdelta3_wrap.c xdelta3.py \
51 WIXDIR = "/cygdrive/c/Program Files/wix2.0.4820"
54 CFLAGS= -Wall -Wshadow -fno-builtin
55 XDWINFLAGS:=-DXD3_STDIO=0 -DXD3_POSIX=0 -DXD3_WIN32=1 -DEXTERNAL_COMPRESSION=0
57 # $Format: "REL=$Xdelta3Version$" $
62 EXTRA = Makefile COPYING linkxd3lib.c badcopy.c xdelta3.swig \
63 draft-korn-vcdiff.txt xdelta3.vcproj badcopy.vcproj \
64 xdelta3-regtest.py xdelta3-test.py setup.py \
65 examples/Makefile examples/small_page_test.c \
66 examples/README examples/encode_decode_test.c \
67 examples/compare_test.c examples/speed_test.c \
68 examples/test.h examples/checksum_test.cc \
69 xdelta3.py xdelta3_wrap.c xdelta3.wxs xdelta3.wxi \
72 SWIG_FLAGS = -DXD3_DEBUG=0 \
73 -DEXTERNAL_COMPRESSION=0 \
74 -DXD3_USE_LARGEFILE64=1 \
79 all: xdelta3-debug.exe xdelta3.exe
81 all-py: all $(PYTGT) $(SWIGTGT)
83 all-targets: $(TARGETS)
85 all-targets-test: all-targets test
91 ./xdelta3-debug.exe test
92 # FIXME: Not good when cross-compiling
96 rm -rf build Debug Release core cifs* *.stackdump *.exe \
97 xdelta3.ncb xdelta3.suo xdelta3.sln xdelta3.wixobj xdelta3.msi
99 wix: xdelta3.wxs xdelta3.wxi readme.txt Release\xdelta3.exe
100 $(WIXDIR)/candle.exe xdelta3.wxs -out xdelta3.wixobj
101 $(WIXDIR)/light.exe xdelta3.wixobj -out xdelta3.msi
104 xdelta3.exe: $(SOURCES)
105 $(CC) $(CFLAGS) -O3 xdelta3.c -lm -o xdelta3.exe \
107 -DREGRESSION_TEST=1 \
112 -DXD3_USE_LARGEFILE64=1
114 xdelta3-debug.exe: $(SOURCES)
115 $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-debug.exe \
117 -DREGRESSION_TEST=1 \
122 -DXD3_USE_LARGEFILE64=1
124 xdelta3-32.exe: $(SOURCES)
125 $(CC) -O3 $(CFLAGS) xdelta3.c -lm -o xdelta3-32.exe \
128 -DXD3_USE_LARGEFILE64=0 \
129 -DREGRESSION_TEST=1 \
134 xdelta3-debug2.exe: $(SOURCES)
136 xdelta3.c -o xdelta3-debug2.exe \
140 -DXD3_USE_LARGEFILE64=1 \
141 -DREGRESSION_TEST=1 \
146 xdelta3-debug3.exe: $(SOURCES)
147 $(CC) -g $(CFLAGS) xdelta3.c -o xdelta3-debug3.exe \
150 -DXD3_USE_LARGEFILE64=1 \
151 -DREGRESSION_TEST=1 \
157 $(PYTGT): $(SOURCES) setup.py
158 $(PYTHON) setup.py install --verbose --compile --force
160 xdelta3_wrap.c xdelta3.py: xdelta3.swig
161 swig -python xdelta3.swig
163 xdelta3.o: $(SOURCES)
164 $(CC) -O3 $(CFLAGS) -c xdelta3.c $(SWIG_FLAGS) -o xdelta3.o
166 xdelta3_wrap.o: xdelta3_wrap.c
167 $(CC) -O3 $(CFLAGS) $(SWIG_FLAGS) \
169 -I/usr/include/python$(PYVER) \
170 -I/usr/lib/python$(PYVER)/config \
175 xdelta3module.dll: xdelta3_wrap.o xdelta3.o
176 gcc -shared -Wl,--enable-auto-image-base \
179 -L/usr/lib/python$(PYVER)/config \
182 cp $(SWIGTGT) /usr/lib/python$(PYVER)/site-packages
185 xdelta3-decoder.exe: $(SOURCES)
186 $(CC) -O3 -Wall -Wshadow xdelta3.c \
187 -DXD3_ENCODER=0 -DXD3_MAIN=1 -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 \
188 $(XDWINFLAGS) -DVCDIFF_TOOLS=0 \
189 -o xdelta3-decoder.exe
191 xdelta3-decoder-nomain.o: $(SOURCES) linkxd3lib.c
192 $(CC) -O3 -Wall -Wshadow xdelta3.c linkxd3lib.c \
193 -DXD3_ENCODER=0 -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 \
194 -o xdelta3-decoder-nomain.o
195 strip xdelta3-decoder-nomain.o
196 # FIXME: this OK with MinGW?? What's with strip??
198 xdelta3-64.exe: $(SOURCES)
204 -DREGRESSION_TEST=1 \
206 -DXD3_USE_LARGEFILE64=1 \
209 xdelta3-everything.exe: $(SOURCES)
212 -o xdelta3-everything.exe \
216 -DREGRESSION_TEST=1 \
222 xdelta3-nosec.o: $(SOURCES)
223 $(CC) -O3 $(CFLAGS) -c xdelta3.c $(XDWINFLAGS) -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 -o xdelta3-nosec.o
225 xdelta3-all.o: $(SOURCES)
226 $(CC) -O3 $(CFLAGS) -c xdelta3.c $(XDWINFLAGS) -DSECONDARY_FGK=1 -DSECONDARY_DJW=1 -o xdelta3-all.o
228 xdelta3-fgk.o: $(SOURCES)
229 $(CC) -O3 $(CFLAGS) -c xdelta3.c $(XDWINFLAGS) -DSECONDARY_FGK=1 -DSECONDARY_DJW=0 -o xdelta3-fgk.o
231 xdelta3-noext.exe: $(SOURCES)
232 $(CC) -O3 $(CFLAGS) xdelta3.c $(XDWINFLAGS) -DEXTERNAL_COMPRESSION=0 -DXD3_MAIN=1 -o xdelta3-noext.exe
234 xdelta3-tools.exe: $(SOURCES)
235 $(CC) -O3 $(CFLAGS) xdelta3.c $(XDWINFLAGS) -DXD3_MAIN=1 -o xdelta3-tools.exe
237 xdelta3-notools.exe: $(SOURCES)
238 $(CC) -O3 $(CFLAGS) xdelta3.c $(XDWINFLAGS) -DXD3_MAIN=1 -DVCDIFF_TOOLS=0 -o xdelta3-notools.exe