| 0 | 1 # Makefile | 
|  | 2 | 
| 3 | 3 # chose build plattform | 
| 0 | 4 include ../make/make.config | 
|  | 5 | 
| 3 | 6 OPTIONS=-DPARAM_STUFF -DPOLLEN_STUFF | 
|  | 7 | 
| 0 | 8 all: 	tools \ | 
|  | 9 	bruyn \ | 
|  | 10 	koch \ | 
|  | 11 	corvi \ | 
|  | 12 	xia \ | 
|  | 13 	xie \ | 
| 3 | 14 	xie2 \ | 
| 0 | 15 	cox \ | 
|  | 16 	zhu \ | 
|  | 17 	dugad \ | 
|  | 18 	wang \ | 
|  | 19 	frid2 \ | 
| 3 | 20 	kim \ | 
|  | 21 	kund2 \ | 
|  | 22 	kund3 | 
| 0 | 23 | 
|  | 24 .SUFFIXES: .c .o .1 .ps | 
|  | 25 | 
|  | 26 .c$(O): | 
| 3 | 27 	$(CC) $(CFLAGS) $(INCLUDES) $(OPTIONS) -o $@ -c $< | 
| 0 | 28 | 
|  | 29 .1.ps: | 
|  | 30 	$(GROFF) $< > $@ | 
|  | 31 | 
|  | 32 # library containing general stuff | 
|  | 33 | 
|  | 34 $(LIBPREFIX)wm$(LIB): dct$(O) coeff$(O) gray$(O) sort$(O) signature$(O) coord$(O) wm$(O) | 
|  | 35 	$(RM) $@ | 
|  | 36 	ar -rc $@ dct$(O) coeff$(O) gray$(O) sort$(O) signature$(O) coord$(O) wm$(O) | 
|  | 37 | 
|  | 38 libraryclean: | 
|  | 39 	$(RM) $(LIBPREFIX)wm$(LIB) | 
|  | 40 | 
|  | 41 # library containing wavelet transform stuff | 
|  | 42 | 
|  | 43 $(LIBPREFIX)wavelet$(LIB): wavelet$(O) dwt$(O) dwt_util$(O) | 
|  | 44 	$(RM) $@ | 
|  | 45 	ar -rc $@ wavelet$(O) dwt$(O) dwt_util$(O) | 
|  | 46 | 
|  | 47 waveletclean: | 
|  | 48 	$(RM) $(LIBPREFIX)wavelet$(LIB) | 
|  | 49 | 
|  | 50 # some general tools to compute difference image, PSNR, ... | 
|  | 51 | 
|  | 52 tools: cmp_pgm$(EXE)  cmp_dct8x8$(EXE)  cmp_dct$(EXE) cmp_dwt$(EXE) | 
|  | 53 | 
|  | 54 toolstest: | 
|  | 55 | 
|  | 56 toolsinstall: tools | 
|  | 57 	$(CP) cmp_pgm$(EXE)  cmp_dct8x8$(EXE)  cmp_dct$(EXE) cmp_dwt$(EXE) $(INSTALLDIR) | 
|  | 58 | 
|  | 59 toolsman: cmp_pgm.ps cmp_dct8x8.ps cmp_dct.ps | 
|  | 60 | 
|  | 61 toolsclean: | 
| 3 | 62 	$(RM) cmp_pgm$(EXE) cmp_dct$(EXE) cmp_dct8x8$(EXE) cmp_dwt$(EXE) | 
| 0 | 63 | 
|  | 64 cmp_pgm$(EXE):  cmp_pgm$(O) $(LIBPREFIX)wm$(LIB) | 
| 3 | 65 	$(CC) $(LDFLAGS) -o $@ cmp_pgm$(O) $(WMLIB) $(PGMLIBS) $(LIBS) | 
| 0 | 66 | 
|  | 67 cmp_dct$(EXE):  cmp_dct$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 68 	$(CC) $(LDFLAGS) -o $@ cmp_dct$(O) $(WMLIB) $(PGMLIBS) | 
|  | 69 | 
|  | 70 cmp_dwt$(EXE):  cmp_dwt$(O) $(LIBPREFIX)wavelet$(LIB)  $(LIBPREFIX)wm$(LIB) | 
|  | 71 	$(CC) $(LDFLAGS) -o $@ cmp_dwt$(O) $(WAVELIB) $(WMLIB) $(PGMLIBS) | 
|  | 72 | 
|  | 73 cmp_dct8x8$(EXE): cmp_dct8x8$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 74 	$(CC) $(LDFLAGS) -o $@ cmp_dct8x8$(O) $(WMLIB) $(PGMLIBS) | 
|  | 75 | 
|  | 76 | 
|  | 77 # Koch's algorithm (8x8 block DCT, blind, binary) | 
|  | 78 | 
|  | 79 koch: gen_koch_sig$(EXE) wm_koch_e$(EXE) wm_koch_d$(EXE) cmp_koch_sig$(EXE) | 
|  | 80 | 
|  | 81 kochtest: koch | 
|  | 82 	gen_koch_sig$(EXE) -n 150 < gen_koch_sig.c > ../sigs/koch.sig | 
|  | 83 	wm_koch_e$(EXE) -s ../sigs/koch.sig -o ../watermarked/koch_lena.pgm ../images/lena.pgm | 
|  | 84 	wm_koch_d$(EXE) -s ../sigs/koch.sig -o ../wms/koch.wm ../watermarked/koch_lena.pgm | 
|  | 85 	cmp_koch_sig$(EXE) -s ../sigs/koch.sig ../wms/koch.wm | 
|  | 86 | 
|  | 87 kochinstall: koch | 
|  | 88 	$(CP) gen_koch_sig$(EXE) wm_koch_e$(EXE) wm_koch_d$(EXE) cmp_koch_sig$(EXE) $(INSTALLDIR) | 
|  | 89 | 
|  | 90 kochclean: | 
|  | 91 	$(RM) gen_koch_sig$(EXE) wm_koch_e$(EXE) wm_koch_d$(EXE) cmp_koch_sig$(EXE) | 
|  | 92 | 
|  | 93 kochman: | 
|  | 94 | 
|  | 95 wm_koch_e$(EXE): wm_koch_e$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 96 	$(CC) $(LDFLAGS) -o $@ wm_koch_e$(O) $(WMLIB) $(LIBS) $(PGMLIBS) | 
|  | 97 | 
|  | 98 wm_koch_d$(EXE): wm_koch_d$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 99 	$(CC) $(LDFLAGS) -o $@  wm_koch_d$(O) $(WMLIB) $(LIBS) $(PGMLIBS) | 
|  | 100 | 
|  | 101 gen_koch_sig$(EXE): gen_koch_sig$(O) wm$(O) | 
|  | 102 	$(CC) $(LDFLAGS) -o $@ gen_koch_sig$(O) wm$(O) $(LIBS) | 
|  | 103 | 
|  | 104 cmp_koch_sig$(EXE): cmp_koch_sig$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 105 	$(CC) $(LDFLAGS) -o $@ cmp_koch_sig$(O) $(WMLIB) $(LIBS) | 
|  | 106 | 
|  | 107 # Fridrich's 2. scheme (full-frame DCT, blind, binary) | 
|  | 108 | 
|  | 109 frid2: gen_frid2_sig$(EXE) wm_frid2_e$(EXE) wm_frid2_d$(EXE) cmp_frid2_sig$(EXE) | 
|  | 110 | 
|  | 111 frid2test: frid2 | 
|  | 112 	gen_frid2_sig$(EXE) -n 250 < gen_frid2_sig.c > ../sigs/frid2.sig | 
|  | 113 	wm_frid2_e$(EXE) -s ../sigs/frid2.sig -o ../watermarked/frid2_lena.pgm ../images/lena.pgm | 
|  | 114 	wm_frid2_d$(EXE) -s ../sigs/frid2.sig -o ../wms/frid2.wm ../watermarked/frid2_lena.pgm | 
|  | 115 	cmp_frid2_sig$(EXE) -s ../sigs/frid2.sig ../wms/frid2.wm | 
|  | 116 | 
|  | 117 frid2install: frid2 | 
|  | 118 	$(CP) gen_frid2_sig$(EXE) wm_frid2_e$(EXE) wm_frid2_d$(EXE) cmp_frid2_sig$(EXE) $(INSTALLDIR) | 
|  | 119 | 
|  | 120 frid2clean: | 
|  | 121 	$(RM) gen_frid2_sig$(EXE) wm_frid2_e$(EXE) wm_frid2_d$(EXE) cmp_frid2_sig$(EXE) | 
|  | 122 | 
|  | 123 frid2man: | 
|  | 124 | 
|  | 125 wm_frid2_e$(EXE): wm_frid2_e$(O) $(LIBPREFIX)wm$(LIB) frid2_common$(O) | 
|  | 126 	$(CC) $(LDFLAGS) -o $@ wm_frid2_e$(O) frid2_common$(O) $(WMLIB) $(LIBS) $(PGMLIBS) | 
|  | 127 | 
|  | 128 wm_frid2_d$(EXE): wm_frid2_d$(O) $(LIBPREFIX)wm$(LIB) frid2_common$(O) | 
|  | 129 	$(CC) $(LDFLAGS) -o $@  wm_frid2_d$(O) frid2_common$(O) $(WMLIB) $(LIBS) $(PGMLIBS) | 
|  | 130 | 
|  | 131 gen_frid2_sig$(EXE): gen_frid2_sig$(O) wm$(O) | 
|  | 132 	$(CC) $(LDFLAGS) -o $@ gen_frid2_sig$(O) wm$(O) $(LIBS) | 
|  | 133 | 
|  | 134 cmp_frid2_sig$(EXE): cmp_frid2_sig$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 135 	$(CC) $(LDFLAGS) -o $@ cmp_frid2_sig$(O) $(WMLIB) $(LIBS) | 
|  | 136 | 
|  | 137 | 
|  | 138 # Bruyndonckx's algorithm (spatial domain, block classification, blind) | 
|  | 139 | 
|  | 140 bruyn: gen_bruyn_sig$(EXE) wm_bruyn_e$(EXE) wm_bruyn_d$(EXE) cmp_bruyn_sig$(EXE) | 
|  | 141 | 
|  | 142 bruyntest: bruyn | 
|  | 143 	gen_bruyn_sig$(EXE) -n 400 < gen_bruyn_sig.c > ../sigs/bruyn.sig | 
|  | 144 	wm_bruyn_e$(EXE) -s ../sigs/bruyn.sig -o ../watermarked/bruyn_lena.pgm ../images/lena.pgm | 
|  | 145 	wm_bruyn_d$(EXE) -s ../sigs/bruyn.sig -o ../wms/bruyn.wm ../watermarked/bruyn_lena.pgm | 
|  | 146 	cmp_bruyn_sig$(EXE) -s ../sigs/bruyn.sig ../wms/bruyn.wm | 
|  | 147 | 
|  | 148 bruyninstall: bruyn | 
|  | 149 	$(CP) gen_bruyn_sig$(EXE) wm_bruyn_e$(EXE) wm_bruyn_d$(EXE) cmp_bruyn_sig$(EXE) $(INSTALLDIR) | 
|  | 150 | 
|  | 151 bruynclean: | 
|  | 152 	$(RM) gen_bruyn_sig$(EXE) wm_bruyn_e$(EXE) wm_bruyn_d$(EXE) cmp_bruyn_sig$(EXE) | 
|  | 153 | 
|  | 154 bruynman: | 
|  | 155 | 
|  | 156 wm_bruyn_e$(EXE): wm_bruyn_e$(O) bruyn_common$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 157 	$(CC) $(LDFLAGS) -o $@ wm_bruyn_e$(O) bruyn_common$(O) $(WMLIB) $(LIBS) $(PGMLIBS) | 
|  | 158 | 
|  | 159 wm_bruyn_d$(EXE): wm_bruyn_d$(O)  bruyn_common$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 160 	$(CC) $(LDFLAGS) -o $@  wm_bruyn_d$(O) bruyn_common$(O) $(WMLIB) $(LIBS) $(PGMLIBS) | 
|  | 161 | 
|  | 162 gen_bruyn_sig$(EXE): gen_bruyn_sig$(O) wm$(O) | 
|  | 163 	$(CC) $(LDFLAGS) -o $@ gen_bruyn_sig$(O) wm$(O) $(LIBS) | 
|  | 164 | 
|  | 165 cmp_bruyn_sig$(EXE): cmp_bruyn_sig$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 166 	$(CC) $(LDFLAGS) -o $@ cmp_bruyn_sig$(O) $(WMLIB) $(LIBS) | 
|  | 167 | 
|  | 168 | 
|  | 169 # Cox's algorithm (full-frame DCT, non-blind, spread-spectrum) | 
|  | 170 | 
|  | 171 cox: gen_cox_sig$(EXE) wm_cox_e$(EXE) wm_cox_d$(EXE) cmp_cox_sig$(EXE) | 
|  | 172 | 
|  | 173 coxtest: cox | 
|  | 174 	gen_cox_sig$(EXE) > ../sigs/cox.sig | 
|  | 175 	wm_cox_e$(EXE) -s ../sigs/cox.sig -o ../watermarked/cox_lena.pgm ../images/lena.pgm | 
|  | 176 	wm_cox_d$(EXE) -s ../sigs/cox.sig -o ../wms/cox.wm -i ../images/lena.pgm ../watermarked/cox_lena.pgm | 
|  | 177 	cmp_cox_sig$(EXE) -s ../sigs/cox.sig ../wms/cox.wm | 
|  | 178 | 
|  | 179 coxinstall: cox | 
|  | 180 	$(CP) gen_cox_sig$(EXE) wm_cox_e$(EXE) wm_cox_d$(EXE) cmp_cox_sig$(EXE) $(INSTALLDIR) | 
|  | 181 | 
|  | 182 coxman: gen_cox_sig.ps wm_cox_e.ps wm_cox_d.ps | 
|  | 183 | 
|  | 184 wm_cox_e$(EXE): wm_cox_e$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 185 	$(CC) $(LDFLAGS) -o $@ wm_cox_e$(O) $(WMLIB) $(LIBS) $(PGMLIBS) | 
|  | 186 | 
|  | 187 wm_cox_d$(EXE): wm_cox_d$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 188 	$(CC) $(LDFLAGS) -o $@  wm_cox_d$(O) $(WMLIB) $(LIBS) $(PGMLIBS) | 
|  | 189 | 
|  | 190 gen_cox_sig$(EXE): gen_cox_sig$(O) | 
|  | 191 	$(CC) $(LDFLAGS) -o $@ gen_cox_sig$(O) $(LIBS) | 
|  | 192 | 
|  | 193 cmp_cox_sig$(EXE): cmp_cox_sig$(O) | 
|  | 194 	$(CC) $(LDFLAGS) -o $@ cmp_cox_sig$(O) $(LIBS) | 
|  | 195 | 
|  | 196 coxclean: | 
|  | 197 	$(RM) gen_cox_sig$(EXE) wm_cox_e$(EXE) wm_cox_d$(EXE) cmp_cox_sig$(EXE) | 
|  | 198 | 
|  | 199 | 
|  | 200 # Corvi's algorithm (DWT, non-blind, spread-spectrum, approximation image) | 
|  | 201 | 
|  | 202 corvi: gen_corvi_sig$(EXE) wm_corvi_e$(EXE) wm_corvi_d$(EXE) cmp_corvi_sig$(EXE) | 
|  | 203 | 
|  | 204 corvitest: corvi | 
|  | 205 	gen_corvi_sig$(EXE) > ../sigs/corvi.sig | 
|  | 206 	wm_corvi_e$(EXE) -s ../sigs/corvi.sig -o ../watermarked/corvi_lena.pgm ../images/lena.pgm | 
|  | 207 	wm_corvi_d$(EXE) -s ../sigs/corvi.sig -o ../wms/corvi.wm -i ../images/lena.pgm ../watermarked/corvi_lena.pgm | 
|  | 208 	cmp_corvi_sig$(EXE) -s ../sigs/corvi.sig ../wms/corvi.wm | 
|  | 209 | 
|  | 210 corviinstall: corvi | 
|  | 211 	$(CP) gen_corvi_sig$(EXE) wm_corvi_e$(EXE) wm_corvi_d$(EXE) cmp_corvi_sig$(EXE) $(INSTALLDIR) | 
|  | 212 | 
|  | 213 corviman: gen_corvi_sig.ps wm_corvi_e.ps wm_corvi_d.ps | 
|  | 214 | 
|  | 215 wm_corvi_e$(EXE): wm_corvi_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 216 	$(CC) $(LDFLAGS) -o $@ wm_corvi_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 217 | 
|  | 218 wm_corvi_d$(EXE): wm_corvi_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 219 	$(CC) $(LDFLAGS) -o $@  wm_corvi_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 220 | 
|  | 221 gen_corvi_sig$(EXE): gen_corvi_sig$(O) | 
|  | 222 	$(CC) $(LDFLAGS) -o $@ gen_corvi_sig$(O) $(LIBS) | 
|  | 223 | 
|  | 224 cmp_corvi_sig$(EXE): cmp_corvi_sig$(O) | 
|  | 225 	$(CC) $(LDFLAGS) -o $@ cmp_corvi_sig$(O) $(LIBS) | 
|  | 226 | 
|  | 227 corviclean: | 
|  | 228 	$(RM) gen_corvi_sig$(EXE) wm_corvi_e$(EXE) wm_corvi_d$(EXE) cmp_corvi_sig$(EXE) | 
|  | 229 | 
|  | 230 | 
|  | 231 # Xia's algorithm (DWT, non-blind, spread-spectrum, detail subbands) | 
|  | 232 | 
|  | 233 xia: gen_xia_sig$(EXE) wm_xia_e$(EXE) wm_xia_d$(EXE) cmp_xia_sig$(EXE) | 
|  | 234 | 
|  | 235 xiatest: xia | 
|  | 236 	gen_xia_sig$(EXE) > ../sigs/xia.sig | 
|  | 237 	wm_xia_e$(EXE) -s ../sigs/xia.sig -o ../watermarked/xia_lena.pgm ../images/lena.pgm | 
|  | 238 	wm_xia_d$(EXE) -s ../sigs/xia.sig -o ../wms/xia.wm -i ../images/lena.pgm ../watermarked/xia_lena.pgm | 
|  | 239 	cmp_xia_sig$(EXE) -s ../sigs/xia.sig ../wms/xia.wm | 
|  | 240 | 
|  | 241 xiainstall: xia | 
|  | 242 	$(CP) gen_xia_sig$(EXE) wm_xia_e$(EXE) wm_xia_d$(EXE) cmp_xia_sig$(EXE) $(INSTALLDIR) | 
|  | 243 | 
|  | 244 xiaman: gen_xia_sig.ps wm_xia_e.ps wm_xia_d.ps | 
|  | 245 | 
|  | 246 wm_xia_e$(EXE): wm_xia_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 247 	$(CC) $(LDFLAGS) -o $@ wm_xia_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 248 | 
|  | 249 wm_xia_d$(EXE): wm_xia_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 250 	$(CC) $(LDFLAGS) -o $@  wm_xia_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 251 | 
|  | 252 gen_xia_sig$(EXE): gen_xia_sig$(O) | 
|  | 253 	$(CC) $(LDFLAGS) -o $@ gen_xia_sig$(O) $(LIBS) | 
|  | 254 | 
|  | 255 cmp_xia_sig$(EXE): cmp_xia_sig$(O) | 
|  | 256 	$(CC) $(LDFLAGS) -o $@ cmp_xia_sig$(O) $(LIBS) | 
|  | 257 | 
|  | 258 xiaclean: | 
|  | 259 	$(RM) gen_xia_sig$(EXE) wm_xia_e$(EXE) wm_xia_d$(EXE) cmp_xia_sig$(EXE) | 
|  | 260 | 
|  | 261 # Wang's algorithm (DWT, non-blind, spread-spectrum, detail subbands) | 
|  | 262 | 
|  | 263 wang: gen_wang_sig$(EXE) wm_wang_e$(EXE) wm_wang_d$(EXE) cmp_wang_sig$(EXE) | 
|  | 264 | 
|  | 265 wangtest: wang | 
|  | 266 	gen_wang_sig$(EXE) -n 1000 > ../sigs/wang.sig | 
|  | 267 	wm_wang_e$(EXE) -s ../sigs/wang.sig -o ../watermarked/wang_lena.pgm ../images/lena.pgm | 
|  | 268 	wm_wang_d$(EXE) -s ../sigs/wang.sig -o ../wms/wang.wm -i ../images/lena.pgm ../watermarked/wang_lena.pgm | 
|  | 269 	cmp_wang_sig$(EXE) -s ../sigs/wang.sig ../wms/wang.wm | 
|  | 270 | 
|  | 271 wanginstall: wang | 
|  | 272 	$(CP) gen_wang_sig$(EXE) wm_wang_e$(EXE) wm_wang_d$(EXE) cmp_wang_sig$(EXE) $(INSTALLDIR) | 
|  | 273 | 
|  | 274 wangman: gen_wang_sig.ps wm_wang_e.ps wm_wang_d.ps | 
|  | 275 | 
|  | 276 wm_wang_e$(EXE): wm_wang_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) wang_common$(O) | 
|  | 277 	$(CC) $(LDFLAGS) -o $@ wm_wang_e$(O) wang_common$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 278 | 
|  | 279 wm_wang_d$(EXE): wm_wang_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) wang_common$(O) | 
|  | 280 	$(CC) $(LDFLAGS) -o $@  wm_wang_d$(O) wang_common$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 281 | 
|  | 282 gen_wang_sig$(EXE): gen_wang_sig$(O) | 
|  | 283 	$(CC) $(LDFLAGS) -o $@ gen_wang_sig$(O) $(LIBS) | 
|  | 284 | 
|  | 285 cmp_wang_sig$(EXE): cmp_wang_sig$(O) | 
|  | 286 	$(CC) $(LDFLAGS) -o $@ cmp_wang_sig$(O) $(LIBS) | 
|  | 287 | 
|  | 288 wangclean: | 
|  | 289 	$(RM) gen_wang_sig$(EXE) wm_wang_e$(EXE) wm_wang_d$(EXE) cmp_wang_sig$(EXE) | 
|  | 290 | 
|  | 291 # Kim's algorithm (DWT, non-blind, spread-spectrum, approx. & detail subbands) | 
|  | 292 | 
|  | 293 kim: gen_kim_sig$(EXE) wm_kim_e$(EXE) wm_kim_d$(EXE) cmp_kim_sig$(EXE) | 
|  | 294 | 
|  | 295 kimtest: kim | 
|  | 296 	gen_kim_sig$(EXE) -n 1000 > ../sigs/kim.sig | 
|  | 297 	wm_kim_e$(EXE) -s ../sigs/kim.sig -o ../watermarked/kim_lena.pgm ../images/lena.pgm | 
|  | 298 	wm_kim_d$(EXE) -s ../sigs/kim.sig -o ../wms/kim.wm -i ../images/lena.pgm ../watermarked/kim_lena.pgm | 
|  | 299 	cmp_kim_sig$(EXE) -s ../sigs/kim.sig ../wms/kim.wm | 
|  | 300 | 
|  | 301 kiminstall: kim | 
|  | 302 	$(CP) gen_kim_sig$(EXE) wm_kim_e$(EXE) wm_kim_d$(EXE) cmp_kim_sig$(EXE) $(INSTALLDIR) | 
|  | 303 | 
|  | 304 kimman: gen_kim_sig.ps wm_kim_e.ps wm_kim_d.ps | 
|  | 305 | 
|  | 306 wm_kim_e$(EXE): wm_kim_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) kim_common$(O) | 
|  | 307 	$(CC) $(LDFLAGS) -o $@ wm_kim_e$(O) kim_common$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 308 | 
|  | 309 wm_kim_d$(EXE): wm_kim_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) kim_common$(O) | 
|  | 310 	$(CC) $(LDFLAGS) -o $@  wm_kim_d$(O) kim_common$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 311 | 
|  | 312 gen_kim_sig$(EXE): gen_kim_sig$(O) | 
|  | 313 	$(CC) $(LDFLAGS) -o $@ gen_kim_sig$(O) $(LIBS) | 
|  | 314 | 
|  | 315 cmp_kim_sig$(EXE): cmp_kim_sig$(O) | 
|  | 316 	$(CC) $(LDFLAGS) -o $@ cmp_kim_sig$(O) $(LIBS) | 
|  | 317 | 
|  | 318 kimclean: | 
|  | 319 	$(RM) gen_kim_sig$(EXE) wm_kim_e$(EXE) wm_kim_d$(EXE) cmp_kim_sig$(EXE) | 
|  | 320 | 
|  | 321 # Zhu's algorithm (DWT, non-blind, spread-spectrum, detail subbands) | 
|  | 322 | 
|  | 323 zhu: gen_zhu_sig$(EXE) wm_zhu_e$(EXE) wm_zhu_d$(EXE) cmp_zhu_sig$(EXE) | 
|  | 324 | 
|  | 325 zhutest: zhu | 
|  | 326 	gen_zhu_sig$(EXE) > ../sigs/zhu.sig | 
|  | 327 	wm_zhu_e$(EXE) -s ../sigs/zhu.sig -o ../watermarked/zhu_lena.pgm ../images/lena.pgm | 
|  | 328 	wm_zhu_d$(EXE) -s ../sigs/zhu.sig -o ../wms/zhu.wm -i ../images/lena.pgm ../watermarked/zhu_lena.pgm | 
|  | 329 	cmp_zhu_sig$(EXE) -s ../sigs/zhu.sig ../wms/zhu.wm | 
|  | 330 | 
|  | 331 zhuinstall: zhu | 
|  | 332 	$(CP) gen_zhu_sig$(EXE) wm_zhu_e$(EXE) wm_zhu_d$(EXE) cmp_zhu_sig$(EXE) $(INSTALLDIR) | 
|  | 333 | 
|  | 334 zhuman: gen_zhu_sig.ps wm_zhu_e.ps wm_zhu_d.ps | 
|  | 335 | 
|  | 336 wm_zhu_e$(EXE): wm_zhu_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 337 	$(CC) $(LDFLAGS) -o $@ wm_zhu_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 338 | 
|  | 339 wm_zhu_d$(EXE): wm_zhu_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 340 	$(CC) $(LDFLAGS) -o $@  wm_zhu_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 341 | 
|  | 342 gen_zhu_sig$(EXE): gen_zhu_sig$(O) | 
|  | 343 	$(CC) $(LDFLAGS) -o $@ gen_zhu_sig$(O) $(LIBS) | 
|  | 344 | 
|  | 345 cmp_zhu_sig$(EXE): cmp_zhu_sig$(O) | 
|  | 346 	$(CC) $(LDFLAGS) -o $@ cmp_zhu_sig$(O) $(LIBS) | 
|  | 347 | 
|  | 348 zhuclean: | 
|  | 349 	$(RM) gen_zhu_sig$(EXE) wm_zhu_e$(EXE) wm_zhu_d$(EXE) cmp_zhu_sig$(EXE) | 
|  | 350 | 
|  | 351 # Xie's algorithm (DWT, blind, binary, quantization, approximation image) | 
|  | 352 | 
|  | 353 xie: gen_xie_sig$(EXE) wm_xie_e$(EXE) wm_xie_d$(EXE) cmp_xie_sig$(EXE) | 
|  | 354 | 
|  | 355 xietest: xie | 
|  | 356 	gen_xie_sig$(EXE) -n 800 gen_xie_sig.c > ../sigs/xie.sig | 
|  | 357 	wm_xie_e$(EXE) -s ../sigs/xie.sig -o ../watermarked/xie_lena.pgm ../images/lena.pgm | 
|  | 358 	wm_xie_d$(EXE) -s ../sigs/xie.sig -o ../wms/xie.wm ../watermarked/xie_lena.pgm | 
|  | 359 	cmp_xie_sig$(EXE) -s ../sigs/xie.sig ../wms/xie.wm | 
|  | 360 | 
|  | 361 xieinstall: xie | 
|  | 362 	$(CP) gen_xie_sig$(EXE) wm_xie_e$(EXE) wm_xie_d$(EXE) cmp_xie_sig$(EXE) $(INSTALLDIR) | 
|  | 363 | 
|  | 364 xieman: gen_xie_sig.ps wm_xie_e.ps wm_xie_d.ps | 
|  | 365 | 
|  | 366 wm_xie_e$(EXE): wm_xie_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 367 	$(CC) $(LDFLAGS) -o $@ wm_xie_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 368 | 
|  | 369 wm_xie_d$(EXE): wm_xie_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 370 	$(CC) $(LDFLAGS) -o $@  wm_xie_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 371 | 
|  | 372 gen_xie_sig$(EXE): gen_xie_sig$(O) wm$(O) | 
|  | 373 	$(CC) $(LDFLAGS) -o $@ gen_xie_sig$(O) wm$(O) $(LIBS) | 
|  | 374 | 
|  | 375 cmp_xie_sig$(EXE): cmp_xie_sig$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 376 	$(CC) $(LDFLAGS) -o $@ cmp_xie_sig$(O) $(WMLIB) $(LIBS) | 
|  | 377 | 
|  | 378 xieclean: | 
|  | 379 	$(RM) gen_xie_sig$(EXE) wm_xie_e$(EXE) wm_xie_d$(EXE) cmp_xie_sig$(EXE) | 
|  | 380 | 
| 3 | 381 # Xie2's algorithm (DWT, blind, binary, quantization, approximation image) | 
|  | 382 | 
|  | 383 xie2: gen_xie2_sig$(EXE) wm_xie2_e$(EXE) wm_xie2_d$(EXE) cmp_xie2_sig$(EXE) | 
|  | 384 | 
|  | 385 xie2test: xie2 | 
|  | 386 	gen_xie2_sig$(EXE) -n 800 gen_xie2_sig.c > ../sigs/xie2.sig | 
|  | 387 	wm_xie2_e$(EXE) -s ../sigs/xie2.sig -o ../watermarked/xie2_lena.pgm ../images/lena.pgm | 
|  | 388 	wm_xie2_d$(EXE) -s ../sigs/xie2.sig -o ../wms/xie2.wm ../watermarked/xie2_lena.pgm | 
|  | 389 	cmp_xie2_sig$(EXE) -s ../sigs/xie2.sig ../wms/xie2.wm | 
|  | 390 | 
|  | 391 xie2install: xie2 | 
|  | 392 	$(CP) gen_xie2_sig$(EXE) wm_xie2_e$(EXE) wm_xie2_d$(EXE) cmp_xie2_sig$(EXE) $(INSTALLDIR) | 
|  | 393 | 
|  | 394 xie2man: gen_xie2_sig.ps wm_xie2_e.ps wm_xie2_d.ps | 
|  | 395 | 
|  | 396 wm_xie2_e$(EXE): wm_xie2_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 397 	$(CC) $(LDFLAGS) -o $@ wm_xie2_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 398 | 
|  | 399 wm_xie2_d$(EXE): wm_xie2_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 400 	$(CC) $(LDFLAGS) -o $@  wm_xie2_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 401 | 
|  | 402 gen_xie2_sig$(EXE): gen_xie2_sig$(O) wm$(O) | 
|  | 403 	$(CC) $(LDFLAGS) -o $@ gen_xie2_sig$(O) wm$(O) $(LIBS) | 
|  | 404 | 
|  | 405 cmp_xie2_sig$(EXE): cmp_xie2_sig$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 406 	$(CC) $(LDFLAGS) -o $@ cmp_xie2_sig$(O) $(WMLIB) $(LIBS) | 
|  | 407 | 
|  | 408 xie2clean: | 
|  | 409 	$(RM) gen_xie2_sig$(EXE) wm_xie2_e$(EXE) wm_xie2_d$(EXE) cmp_xie2_sig$(EXE) | 
|  | 410 | 
|  | 411 # Kundur's algorithm 2 (DWT, blind, binary, quantization, detail subbands, reference watermark) | 
|  | 412 | 
|  | 413 kund2: gen_kund2_sig$(EXE) wm_kund2_e$(EXE) wm_kund2_d$(EXE) cmp_kund2_sig$(EXE) | 
|  | 414 | 
|  | 415 kund2test: kund2 | 
|  | 416 	gen_kund2_sig$(EXE) -n 1000 -l 3 -q 2 gen_kund2_sig.c > ../sigs/kund2.sig | 
|  | 417 	wm_kund2_e$(EXE) -s ../sigs/kund2.sig -o ../watermarked/kund2_lena.pgm ../images/lena.pgm | 
|  | 418 	cjpeg -quality 70 ../watermarked/kund2_lena.pgm | djpeg | wm_kund2_d$(EXE) -s ../sigs/kund2.sig -o ../wms/kund2.wm | 
|  | 419 	cmp_kund2_sig$(EXE) -s ../sigs/kund2.sig ../wms/kund2.wm | 
|  | 420 | 
|  | 421 kund2install: kund2 | 
|  | 422 	$(CP) gen_kund2_sig$(EXE) wm_kund2_e$(EXE) wm_kund2_d$(EXE) cmp_kund2_sig$(EXE) $(INSTALLDIR) | 
|  | 423 | 
|  | 424 kund2man: gen_kund2_sig.ps wm_kund2_e.ps wm_kund2_d.ps | 
|  | 425 | 
|  | 426 wm_kund2_e$(EXE): wm_kund2_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 427 	$(CC) $(LDFLAGS) -o $@ wm_kund2_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 428 | 
|  | 429 wm_kund2_d$(EXE): wm_kund2_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 430 	$(CC) $(LDFLAGS) -o $@  wm_kund2_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 431 | 
|  | 432 gen_kund2_sig$(EXE): gen_kund2_sig$(O) wm$(O) signature$(O) | 
|  | 433 	$(CC) $(LDFLAGS) -o $@ gen_kund2_sig$(O) wm$(O) signature$(O) $(LIBS) | 
|  | 434 | 
|  | 435 cmp_kund2_sig$(EXE): cmp_kund2_sig$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 436 	$(CC) $(LDFLAGS) -o $@ cmp_kund2_sig$(O) $(WMLIB) $(LIBS) | 
|  | 437 | 
|  | 438 kund2clean: | 
|  | 439 	$(RM) gen_kund2_sig$(EXE) wm_kund2_e$(EXE) wm_kund2_d$(EXE) cmp_kund2_sig$(EXE) | 
|  | 440 | 
|  | 441 # Kundur's algorithm 3 (DWT, blind, binary, quantization, detail subbands) | 
|  | 442 | 
|  | 443 kund3: gen_kund3_sig$(EXE) wm_kund3_e$(EXE) wm_kund3_d$(EXE) cmp_kund3_sig$(EXE) | 
|  | 444 | 
|  | 445 kund3test: kund3 | 
|  | 446 	gen_kund3_sig$(EXE) -n 1000 -l 2 -q 2 gen_kund3_sig.c > ../sigs/kund3.sig | 
|  | 447 	wm_kund3_e$(EXE) -s ../sigs/kund3.sig -o ../watermarked/kund3_lena.pgm ../images/lena.pgm | 
|  | 448 	wm_kund3_d$(EXE) -s ../sigs/kund3.sig -o ../wms/kund3.wm ../watermarked/kund3_lena.pgm | 
|  | 449 	cmp_kund3_sig$(EXE) -s ../sigs/kund3.sig ../wms/kund3.wm | 
|  | 450 | 
|  | 451 kund3install: kund3 | 
|  | 452 	$(CP) gen_kund3_sig$(EXE) wm_kund3_e$(EXE) wm_kund3_d$(EXE) cmp_kund3_sig$(EXE) $(INSTALLDIR) | 
|  | 453 | 
|  | 454 kund3man: gen_kund3_sig.ps wm_kund3_e.ps wm_kund3_d.ps | 
|  | 455 | 
|  | 456 wm_kund3_e$(EXE): wm_kund3_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 457 	$(CC) $(LDFLAGS) -o $@ wm_kund3_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 458 | 
|  | 459 wm_kund3_d$(EXE): wm_kund3_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 460 	$(CC) $(LDFLAGS) -o $@  wm_kund3_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 461 | 
|  | 462 gen_kund3_sig$(EXE): gen_kund3_sig$(O) wm$(O) signature$(O) | 
|  | 463 	$(CC) $(LDFLAGS) -o $@ gen_kund3_sig$(O) wm$(O) signature$(O) $(LIBS) | 
|  | 464 | 
|  | 465 cmp_kund3_sig$(EXE): cmp_kund3_sig$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 466 	$(CC) $(LDFLAGS) -o $@ cmp_kund3_sig$(O) $(WMLIB) $(LIBS) | 
|  | 467 | 
|  | 468 kund3clean: | 
|  | 469 	$(RM) gen_kund3_sig$(EXE) wm_kund3_e$(EXE) wm_kund3_d$(EXE) cmp_kund3_sig$(EXE) | 
|  | 470 | 
| 0 | 471 # Dugad's algorithm (DWT, blind) | 
|  | 472 | 
|  | 473 dugad: gen_dugad_sig$(EXE) wm_dugad_e$(EXE) wm_dugad_d$(EXE) cmp_dugad_sig$(EXE) | 
|  | 474 | 
|  | 475 dugadtest: dugad | 
|  | 476 	gen_dugad_sig$(EXE) -o ../sigs/dugad.sig | 
|  | 477 	wm_dugad_e$(EXE) -s ../sigs/dugad.sig -o ../watermarked/dugad_lena.pgm ../images/lena.pgm | 
|  | 478 	wm_dugad_d$(EXE) -s ../sigs/dugad.sig -o ../wms/dugad.wm ../watermarked/dugad_lena.pgm | 
|  | 479 	cmp_dugad_sig$(EXE) -s ../sigs/dugad.sig ../wms/dugad.wm | 
|  | 480 | 
|  | 481 dugadinstall: dugad | 
|  | 482 	$(CP) gen_dugad_sig$(EXE) wm_dugad_e$(EXE) wm_dugad_d$(EXE) cmp_dugad_sig$(EXE) $(INSTALLDIR) | 
|  | 483 | 
|  | 484 dugadman: gen_dugad_sig.ps wm_dugad_e.ps wm_dugad_d.ps | 
|  | 485 | 
|  | 486 wm_dugad_e$(EXE): wm_dugad_e$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 487 	$(CC) $(LDFLAGS) -o $@ wm_dugad_e$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 488 | 
|  | 489 wm_dugad_d$(EXE): wm_dugad_d$(O) $(LIBPREFIX)wm$(LIB) $(LIBPREFIX)wavelet$(LIB) | 
|  | 490 	$(CC) $(LDFLAGS) -o $@  wm_dugad_d$(O) $(WMLIB) $(WAVELIB) $(LIBS) $(PGMLIBS) | 
|  | 491 | 
|  | 492 gen_dugad_sig$(EXE): gen_dugad_sig$(O) | 
|  | 493 	$(CC) $(LDFLAGS) -o $@ gen_dugad_sig$(O) $(LIBS) | 
|  | 494 | 
|  | 495 cmp_dugad_sig$(EXE): cmp_dugad_sig$(O) $(LIBPREFIX)wm$(LIB) | 
|  | 496 	$(CC) $(LDFLAGS) -o $@ cmp_dugad_sig$(O) $(WMLIB) $(LIBS) | 
|  | 497 | 
|  | 498 dugadclean: | 
|  | 499 	$(RM) gen_dugad_sig$(EXE) wm_dugad_e$(EXE) wm_dugad_d$(EXE) cmp_dugad_sig$(EXE) | 
|  | 500 | 
|  | 501 | 
|  | 502 | 
| 3 | 503 clean:	coxclean bruynclean kochclean corviclean xiaclean zhuclean xieclean kund3clean kund2clean \ | 
|  | 504 	dugadclean kimclean wangclean frid2clean toolsclean libraryclean waveletclean xie2clean | 
| 0 | 505 	$(RM) *$(O) *.ps ../sigs/* ../wms/* ../watermarked/* | 
|  | 506 | 
|  | 507 | 
|  | 508 man:	coxman bruynman kochman corviman xiaman xieman toolsman | 
|  | 509 | 
|  | 510 test:	coxtest bruyntest kochtest corvitest xiatest xietest dugadtest zhutest \ | 
| 3 | 511 	wangtest frid2test kimtest toolstest kund3test kund2test | 
| 0 | 512 | 
|  | 513 install: coxinstall bruyninstall kochinstall corviinstall xiainstall xieinstall \ | 
| 3 | 514 	dugadinstall zhuinstall wanginstall frid2install kiminstall toolsinstall kund3install kund2install | 
| 0 | 515 | 
|  | 516 depend: | 
|  | 517 	$(MAKEDEP) *.h *.c | 
|  | 518 |