tizen 2.4 release
[external/xdelta3.git] / Makefile.mingw
1 # xdelta 3 - delta compression tools and library
2 # Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007.  Joshua P. MacDonald
3
4 UNAME = $(shell uname)
5 CYGWIN = $(findstring CYGWIN, $(UNAME))
6 MINGW = $(findstring MINGW32, $(UNAME))
7 PYVER = 2.5
8
9 ifneq ("$(CYGWIN)", "")
10 SWIGTGT = xdelta3module.dll
11 PYTGT = build/lib.cygwin-1.5.24-i686-$(PYVER)/xdelta3main.dll
12 else
13 ifneq ("$(MINGW)", "")
14 # FIXME: WHAT TO DO HERE???
15 # FIXME: WHAT IF WE ARE CROSS-COMPILING???
16 endif
17 endif
18
19 SOURCES = xdelta3-cfgs.h \
20           xdelta3-decode.h \
21           xdelta3-djw.h \
22           xdelta3-fgk.h \
23           xdelta3-hash.h \
24           xdelta3-list.h \
25           xdelta3-main.h \
26           xdelta3-python.h \
27           xdelta3-second.h \
28           xdelta3-test.h \
29           xdelta3-test2.h \
30           xdelta3.c \
31           xdelta3.h
32
33 TARGETS = xdelta3-debug.exe \
34           xdelta3.exe \
35           xdelta3-debug2.exe \
36           xdelta3-debug3.exe \
37           xdelta3.o \
38           xdelta3_wrap.o \
39           xdelta3-32.exe \
40           xdelta3-64.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 \
45           xdelta3-notools.exe \
46           xdelta3_wrap.c xdelta3.py \
47           $(PYTGT) $(SWIGTGT)
48
49 PYTHON = python
50
51 WIXDIR = "/cygdrive/c/Program Files/wix2.0.4820"
52 # FIXME: MinGW ????
53
54 CFLAGS= -Wall -Wshadow -fno-builtin
55 XDWINFLAGS:=-DXD3_STDIO=0 -DXD3_POSIX=0 -DXD3_WIN32=1 -DEXTERNAL_COMPRESSION=0
56
57 # $Format: "REL=$Xdelta3Version$" $
58 REL=3.0.1
59
60 RELDIR = xdelta$(REL)
61
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 \
70         README readme.txt
71
72 SWIG_FLAGS = -DXD3_DEBUG=0 \
73               -DEXTERNAL_COMPRESSION=0 \
74               -DXD3_USE_LARGEFILE64=1 \
75               -DSECONDARY_DJW=1 \
76               -DVCDIFF_TOOLS=1 \
77               -DSWIG_MODULE=1
78
79 all: xdelta3-debug.exe xdelta3.exe
80
81 all-py: all $(PYTGT) $(SWIGTGT)
82
83 all-targets: $(TARGETS)
84
85 all-targets-test: all-targets test
86
87 pytgt: $(PYTGT)
88 swigtgt: $(SWIGTGT)
89
90 test:
91         ./xdelta3-debug.exe test
92 #       FIXME: Not good when cross-compiling
93
94 clean:
95         rm -f $(TARGETS)
96         rm -rf build Debug Release core cifs* *.stackdump *.exe \
97                 xdelta3.ncb xdelta3.suo xdelta3.sln xdelta3.wixobj xdelta3.msi
98
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
102 #       FIXME: MinGW ????
103
104 xdelta3.exe: $(SOURCES)
105         $(CC) $(CFLAGS) -O3 xdelta3.c -lm -o xdelta3.exe \
106               $(XDWINFLAGS) \
107               -DREGRESSION_TEST=1 \
108               -DSECONDARY_DJW=1 \
109               -DSECONDARY_FGK=1 \
110               -DXD3_DEBUG=0 \
111               -DXD3_MAIN=1 \
112               -DXD3_USE_LARGEFILE64=1
113
114 xdelta3-debug.exe: $(SOURCES)
115         $(CC) -g $(CFLAGS) xdelta3.c -lm -o xdelta3-debug.exe \
116                 $(XDWINFLAGS) \
117                 -DREGRESSION_TEST=1 \
118                 -DSECONDARY_DJW=1 \
119                 -DSECONDARY_FGK=1 \
120                 -DXD3_DEBUG=1 \
121                 -DXD3_MAIN=1 \
122                 -DXD3_USE_LARGEFILE64=1
123
124 xdelta3-32.exe: $(SOURCES)
125         $(CC) -O3 $(CFLAGS) xdelta3.c -lm -o xdelta3-32.exe \
126               $(XDWINFLAGS) \
127               -DXD3_DEBUG=1 \
128               -DXD3_USE_LARGEFILE64=0 \
129               -DREGRESSION_TEST=1 \
130               -DSECONDARY_DJW=1 \
131               -DSECONDARY_FGK=1 \
132               -DXD3_MAIN=1
133
134 xdelta3-debug2.exe: $(SOURCES)
135         $(CC) -g $(CFLAGS) \
136                 xdelta3.c -o xdelta3-debug2.exe \
137                 $(XDWINFLAGS) \
138                 -DXD3_DEBUG=2 \
139                 -DXD3_MAIN=1 \
140                 -DXD3_USE_LARGEFILE64=1 \
141                 -DREGRESSION_TEST=1 \
142                 -DSECONDARY_DJW=1 \
143                 -DSECONDARY_FGK=1 \
144                 -lm
145
146 xdelta3-debug3.exe: $(SOURCES)
147         $(CC) -g $(CFLAGS) xdelta3.c -o xdelta3-debug3.exe \
148                 $(XDWINFLAGS) \
149                 -DXD3_MAIN=1 \
150                 -DXD3_USE_LARGEFILE64=1 \
151                 -DREGRESSION_TEST=1 \
152                 -DXD3_DEBUG=3 \
153                 -DSECONDARY_DJW=1 \
154                 -DSECONDARY_FGK=1 \
155                 -lm
156
157 $(PYTGT): $(SOURCES) setup.py
158         $(PYTHON) setup.py install --verbose --compile --force
159
160 xdelta3_wrap.c xdelta3.py: xdelta3.swig
161         swig -python xdelta3.swig
162
163 xdelta3.o: $(SOURCES)
164         $(CC) -O3 $(CFLAGS) -c xdelta3.c $(SWIG_FLAGS) -o xdelta3.o
165
166 xdelta3_wrap.o: xdelta3_wrap.c
167         $(CC) -O3 $(CFLAGS) $(SWIG_FLAGS) \
168               -DHAVE_CONFIG_H \
169               -I/usr/include/python$(PYVER) \
170               -I/usr/lib/python$(PYVER)/config \
171               -fpic \
172               -c xdelta3_wrap.c
173 #       FIXME: MinGW ????
174
175 xdelta3module.dll: xdelta3_wrap.o xdelta3.o
176         gcc -shared -Wl,--enable-auto-image-base \
177                 xdelta3.o \
178                 xdelta3_wrap.o \
179                 -L/usr/lib/python$(PYVER)/config \
180                 -lpython$(PYVER) \
181                 -o xdelta3module.dll
182         cp $(SWIGTGT) /usr/lib/python$(PYVER)/site-packages
183 #       FIXME: MinGW ????
184
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
190
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??
197
198 xdelta3-64.exe: $(SOURCES)
199         $(CC) -g $(CFLAGS) \
200                 xdelta3.c \
201                 -o xdelta3-64.exe \
202                 $(XDWINFLAGS) \
203                 -DXD3_MAIN=1 \
204                 -DREGRESSION_TEST=1 \
205                 -DXD3_DEBUG=0 \
206                 -DXD3_USE_LARGEFILE64=1 \
207                 -lm
208
209 xdelta3-everything.exe: $(SOURCES)
210         $(CC) -g $(CFLAGS) \
211                 xdelta3.c \
212                 -o xdelta3-everything.exe \
213                 $(XDWINFLAGS) \
214                 -DXD3_MAIN=1 \
215                 -DVCDIFF_TOOLS=1 \
216                 -DREGRESSION_TEST=1 \
217                 -DSECONDARY_FGK=1 \
218                 -DSECONDARY_DJW=1 \
219                 -DXD3_DEBUG=1 \
220                 -lm
221
222 xdelta3-nosec.o: $(SOURCES)
223         $(CC) -O3 $(CFLAGS) -c xdelta3.c $(XDWINFLAGS) -DSECONDARY_FGK=0 -DSECONDARY_DJW=0 -o xdelta3-nosec.o
224
225 xdelta3-all.o: $(SOURCES)
226         $(CC) -O3 $(CFLAGS) -c xdelta3.c $(XDWINFLAGS) -DSECONDARY_FGK=1 -DSECONDARY_DJW=1 -o xdelta3-all.o
227
228 xdelta3-fgk.o: $(SOURCES)
229         $(CC) -O3 $(CFLAGS) -c xdelta3.c $(XDWINFLAGS) -DSECONDARY_FGK=1 -DSECONDARY_DJW=0 -o xdelta3-fgk.o
230
231 xdelta3-noext.exe: $(SOURCES)
232         $(CC) -O3 $(CFLAGS) xdelta3.c $(XDWINFLAGS) -DEXTERNAL_COMPRESSION=0 -DXD3_MAIN=1 -o xdelta3-noext.exe
233
234 xdelta3-tools.exe: $(SOURCES)
235         $(CC) -O3 $(CFLAGS) xdelta3.c $(XDWINFLAGS) -DXD3_MAIN=1 -o xdelta3-tools.exe
236
237 xdelta3-notools.exe: $(SOURCES)
238         $(CC) -O3 $(CFLAGS) xdelta3.c $(XDWINFLAGS) -DXD3_MAIN=1 -DVCDIFF_TOOLS=0 -o xdelta3-notools.exe