DST?=kazan-109a
TMPPFX?=tmp-a

CPUS?=4
MEM?=3072
DEPTH?=16
IMCOMP?=lzw
ENCOMP?=LZW
RGBPROFILE?=../../tools/profiles/RGB.icc
sRGBPROFILE?=../../tools/profiles/sRGB.icm

CONV?=convert -limit area ${MEM}MiB
REMAP?=eval nona -v -t ${CPUS} -m TIFF_m -r ldr -p UINT${DEPTH} -z ${ENCOMP} -o ${TMPPFX}-
FFUSE?=eval enfuse -v --compression=${ENCOMP} -m ${MEM} -b 16384 --exposure-weight=0 --saturation-weight=0  --contrast-weight=1 --hard-mask --fallback-profile='../../tools/profiles/RGB.icc' --ciecam
MERGE?=unset EXIFTOOL EXIFTAG; eval sh ../../tools/pfshdrcalibrate-wrapper -v -x -c none -b 16 -m 65536 -f ${DST}.m -O
DEGHOST?=deghosting_mask -v -s 60 -c 0.8 -t 150 -i 8 -a mw
BLEND?=eval enblend -v --compression=${ENCOMP} -m ${MEM} -b 16384 --fine-mask --primary-seam-generator=nearest-feature-transform --mask-vectorize=8 -f 3408x2272+80+288

EXIFTFF?=exiftool -overwrite_original -P -TagsFromFile
EXIFTAG?=-EXIF:ExposureTime -EXIF:ShutterSpeedValue -EXIF:ApertureValue -EXIF:ISO

RMSRC=echo
RMTMP=echo
RMDST=echo
MV=mv
LN=ln -f

all: ${DST}.tiff

${TMPPFX}-0000.tif: ${DST}.pto 00-e00-f0000.tiff
	@${REMAP} -i 0 -e -0.507401517427503 ${DST}.pto
${TMPPFX}f00-e00-f0000.tiff: ${TMPPFX}-0000.tif
	@${LN} ${TMPPFX}-0000.tif ${TMPPFX}f00-e00-f0000.tiff
	@${EXIFTFF} 00-e00-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e00-f0000.tiff
	@${RMTMP} ${TMPPFX}-0000.tif
${TMPPFX}e00-e00.tiff: ${TMPPFX}f00-e00-f0000.tiff
	@${LN} ${TMPPFX}f00-e00-f0000.tiff ${TMPPFX}e00-e00.tiff
	@${EXIFTFF} ${TMPPFX}f00-e00-f0000.tiff ${EXIFTAG} ${TMPPFX}e00-e00.tiff
	@${RMTMP} ${TMPPFX}f00-e00-f0000.tiff
${TMPPFX}-0001.tif: ${DST}.pto 00-e01-f0000.tiff
	@${REMAP} -i 1 -e 1.01197264166608 ${DST}.pto
${TMPPFX}f00-e01-f0000.tiff: ${TMPPFX}-0001.tif
	@${LN} ${TMPPFX}-0001.tif ${TMPPFX}f00-e01-f0000.tiff
	@${EXIFTFF} 00-e01-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e01-f0000.tiff
	@${RMTMP} ${TMPPFX}-0001.tif
${TMPPFX}e00-e01.tiff: ${TMPPFX}f00-e01-f0000.tiff
	@${LN} ${TMPPFX}f00-e01-f0000.tiff ${TMPPFX}e00-e01.tiff
	@${EXIFTFF} ${TMPPFX}f00-e01-f0000.tiff ${EXIFTAG} ${TMPPFX}e00-e01.tiff
	@${RMTMP} ${TMPPFX}f00-e01-f0000.tiff
${TMPPFX}-0002.tif: ${DST}.pto 00-e02-f0000.tiff
	@${REMAP} -i 2 -e 2.59693514238723 ${DST}.pto
${TMPPFX}f00-e02-f0000.tiff: ${TMPPFX}-0002.tif
	@${LN} ${TMPPFX}-0002.tif ${TMPPFX}f00-e02-f0000.tiff
	@${EXIFTFF} 00-e02-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e02-f0000.tiff
	@${RMTMP} ${TMPPFX}-0002.tif
${TMPPFX}-0003.tif: ${DST}.pto 00-e02-f0001.tiff
	@${REMAP} -i 3 -e 2.59693514238723 ${DST}.pto
${TMPPFX}f00-e02-f0001.tiff: ${TMPPFX}-0003.tif
	@${LN} ${TMPPFX}-0003.tif ${TMPPFX}f00-e02-f0001.tiff
	@${EXIFTFF} 00-e02-f0001.tiff ${EXIFTAG} ${TMPPFX}f00-e02-f0001.tiff
	@${RMTMP} ${TMPPFX}-0003.tif
${TMPPFX}-0004.tif: ${DST}.pto 00-e02-f0002.tiff
	@${REMAP} -i 4 -e 2.59693514238723 ${DST}.pto
${TMPPFX}f00-e02-f0002.tiff: ${TMPPFX}-0004.tif
	@${LN} ${TMPPFX}-0004.tif ${TMPPFX}f00-e02-f0002.tiff
	@${EXIFTFF} 00-e02-f0002.tiff ${EXIFTAG} ${TMPPFX}f00-e02-f0002.tiff
	@${RMTMP} ${TMPPFX}-0004.tif
${TMPPFX}et00-e02.tiff: ${TMPPFX}f00-e02-f0000.tiff ${TMPPFX}f00-e02-f0001.tiff ${TMPPFX}f00-e02-f0002.tiff
	@${FFUSE} -o ${TMPPFX}et00-e02.tiff ${TMPPFX}f00-e02-f0000.tiff ${TMPPFX}f00-e02-f0001.tiff ${TMPPFX}f00-e02-f0002.tiff
	@${EXIFTFF} ${TMPPFX}f00-e02-f0000.tiff ${EXIFTAG} ${TMPPFX}et00-e02.tiff
	@${RMTMP} ${TMPPFX}f00-e02-f0000.tiff ${TMPPFX}f00-e02-f0001.tiff ${TMPPFX}f00-e02-f0002.tiff
${TMPPFX}e00-e02.tiff: ${TMPPFX}et00-e02.tiff
	@${LN} ${TMPPFX}et00-e02.tiff ${TMPPFX}e00-e02.tiff
	@${EXIFTFF} ${TMPPFX}et00-e02.tiff ${EXIFTAG} ${TMPPFX}e00-e02.tiff
	@${RMTMP} ${TMPPFX}et00-e02.tiff
${TMPPFX}-0005.tif: ${DST}.pto 00-e03-f0000.tiff
	@${REMAP} -i 5 -e 4.24079131066413 ${DST}.pto
${TMPPFX}f00-e03-f0000.tiff: ${TMPPFX}-0005.tif
	@${LN} ${TMPPFX}-0005.tif ${TMPPFX}f00-e03-f0000.tiff
	@${EXIFTFF} 00-e03-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e03-f0000.tiff
	@${RMTMP} ${TMPPFX}-0005.tif
${TMPPFX}e00-e03.tiff: ${TMPPFX}f00-e03-f0000.tiff
	@${LN} ${TMPPFX}f00-e03-f0000.tiff ${TMPPFX}e00-e03.tiff
	@${EXIFTFF} ${TMPPFX}f00-e03-f0000.tiff ${EXIFTAG} ${TMPPFX}e00-e03.tiff
	@${RMTMP} ${TMPPFX}f00-e03-f0000.tiff
${TMPPFX}-0006.tif: ${DST}.pto 00-e04-f0000.tiff
	@${REMAP} -i 6 -e 5.91886323727459 ${DST}.pto
${TMPPFX}f00-e04-f0000.tiff: ${TMPPFX}-0006.tif
	@${LN} ${TMPPFX}-0006.tif ${TMPPFX}f00-e04-f0000.tiff
	@${EXIFTFF} 00-e04-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e04-f0000.tiff
	@${RMTMP} ${TMPPFX}-0006.tif
${TMPPFX}e00-e04.tiff: ${TMPPFX}f00-e04-f0000.tiff
	@${LN} ${TMPPFX}f00-e04-f0000.tiff ${TMPPFX}e00-e04.tiff
	@${EXIFTFF} ${TMPPFX}f00-e04-f0000.tiff ${EXIFTAG} ${TMPPFX}e00-e04.tiff
	@${RMTMP} ${TMPPFX}f00-e04-f0000.tiff
${TMPPFX}-0008.tif: ${DST}.pto 00-e06-f0000.tiff
	@${REMAP} -i 8 -e 9.24079131066413 ${DST}.pto
${TMPPFX}f00-e06-f0000.tiff: ${TMPPFX}-0008.tif
	@${LN} ${TMPPFX}-0008.tif ${TMPPFX}f00-e06-f0000.tiff
	@${EXIFTFF} 00-e06-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e06-f0000.tiff
	@${RMTMP} ${TMPPFX}-0008.tif
${TMPPFX}e00-e06.tiff: ${TMPPFX}f00-e06-f0000.tiff
	@${LN} ${TMPPFX}f00-e06-f0000.tiff ${TMPPFX}e00-e06.tiff
	@${EXIFTFF} ${TMPPFX}f00-e06-f0000.tiff ${EXIFTAG} ${TMPPFX}e00-e06.tiff
	@${RMTMP} ${TMPPFX}f00-e06-f0000.tiff
${TMPPFX}-0009.tif: ${DST}.pto 00-e07-f0000.tiff
	@${REMAP} -i 9 -e 10.8257537576407 ${DST}.pto
${TMPPFX}f00-e07-f0000.tiff: ${TMPPFX}-0009.tif
	@${LN} ${TMPPFX}-0009.tif ${TMPPFX}f00-e07-f0000.tiff
	@${EXIFTFF} 00-e07-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e07-f0000.tiff
	@${RMTMP} ${TMPPFX}-0009.tif
${TMPPFX}e00-e07.tiff: ${TMPPFX}f00-e07-f0000.tiff
	@${LN} ${TMPPFX}f00-e07-f0000.tiff ${TMPPFX}e00-e07.tiff
	@${EXIFTFF} ${TMPPFX}f00-e07-f0000.tiff ${EXIFTAG} ${TMPPFX}e00-e07.tiff
	@${RMTMP} ${TMPPFX}f00-e07-f0000.tiff
${TMPPFX}-0010.tif: ${DST}.pto 00-e08-f0000.tiff
	@${REMAP} -i 10 -e 12.5627194592961 ${DST}.pto
${TMPPFX}f00-e08-f0000.tiff: ${TMPPFX}-0010.tif
	@${LN} ${TMPPFX}-0010.tif ${TMPPFX}f00-e08-f0000.tiff
	@${EXIFTFF} 00-e08-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e08-f0000.tiff
	@${RMTMP} ${TMPPFX}-0010.tif
${TMPPFX}e00-e08.tiff: ${TMPPFX}f00-e08-f0000.tiff
	@${LN} ${TMPPFX}f00-e08-f0000.tiff ${TMPPFX}e00-e08.tiff
	@${EXIFTFF} ${TMPPFX}f00-e08-f0000.tiff ${EXIFTAG} ${TMPPFX}e00-e08.tiff
	@${RMTMP} ${TMPPFX}f00-e08-f0000.tiff
${TMPPFX}-0011.tif: ${DST}.pto 00-e09-f0000.tiff
	@${REMAP} -i 11 -e 14.2407913106641 ${DST}.pto
${TMPPFX}f00-e09-f0000.tiff: ${TMPPFX}-0011.tif
	@${LN} ${TMPPFX}-0011.tif ${TMPPFX}f00-e09-f0000.tiff
	@${EXIFTFF} 00-e09-f0000.tiff ${EXIFTAG} ${TMPPFX}f00-e09-f0000.tiff
	@${RMTMP} ${TMPPFX}-0011.tif
${TMPPFX}e00-e09.tiff: ${TMPPFX}f00-e09-f0000.tiff
	@${LN} ${TMPPFX}f00-e09-f0000.tiff ${TMPPFX}e00-e09.tiff
	@${EXIFTFF} ${TMPPFX}f00-e09-f0000.tiff ${EXIFTAG} ${TMPPFX}e00-e09.tiff
	@${RMTMP} ${TMPPFX}f00-e09-f0000.tiff
${TMPPFX}t00.tiff: ${TMPPFX}e00-e00.tiff ${TMPPFX}e00-e01.tiff ${TMPPFX}e00-e02.tiff ${TMPPFX}e00-e03.tiff ${TMPPFX}e00-e04.tiff ${TMPPFX}e00-e06.tiff ${TMPPFX}e00-e07.tiff ${TMPPFX}e00-e08.tiff ${TMPPFX}e00-e09.tiff
	@${MERGE} -o ${TMPPFX}t00.tiff ${TMPPFX}e00-e00.tiff ${TMPPFX}e00-e01.tiff ${TMPPFX}e00-e02.tiff ${TMPPFX}e00-e03.tiff ${TMPPFX}e00-e04.tiff ${TMPPFX}e00-e06.tiff ${TMPPFX}e00-e07.tiff ${TMPPFX}e00-e08.tiff ${TMPPFX}e00-e09.tiff
	@${RMTMP} ${TMPPFX}e00-e00.tiff ${TMPPFX}e00-e01.tiff ${TMPPFX}e00-e02.tiff ${TMPPFX}e00-e03.tiff ${TMPPFX}e00-e04.tiff ${TMPPFX}e00-e06.tiff ${TMPPFX}e00-e07.tiff ${TMPPFX}e00-e08.tiff ${TMPPFX}e00-e09.tiff
${TMPPFX}00.tiff: ${TMPPFX}t00.tiff
	@${LN} ${TMPPFX}t00.tiff ${TMPPFX}00.tiff
	@${RMTMP} ${TMPPFX}t00.tiff

${TMPPFX}.tiff: ${TMPPFX}00.tiff
	@${RMSRC}  00-e00-f0000.tiff ${TMPPFX}-0000_gray.pgm 00-e01-f0000.tiff ${TMPPFX}-0001_gray.pgm 00-e02-f0000.tiff ${TMPPFX}-0002_gray.pgm 00-e02-f0001.tiff ${TMPPFX}-0003_gray.pgm 00-e02-f0002.tiff ${TMPPFX}-0004_gray.pgm 00-e03-f0000.tiff ${TMPPFX}-0005_gray.pgm 00-e04-f0000.tiff ${TMPPFX}-0006_gray.pgm 00-e06-f0000.tiff ${TMPPFX}-0008_gray.pgm 00-e07-f0000.tiff ${TMPPFX}-0009_gray.pgm 00-e08-f0000.tiff ${TMPPFX}-0010_gray.pgm 00-e09-f0000.tiff ${TMPPFX}-0011_gray.pgm
	@${BLEND} -o ${TMPPFX}.tiff ${TMPPFX}00.tiff
	@${RMTMP} ${TMPPFX}00.tiff
kazan-0046-hdr: ${TMPPFX}.tiff
	@pfsin ${TMPPFX}.tiff \
	 | pfstag --set FILE_NAME="kazan-0046.pfs" \
	 | pfsclamp --min 1e-20 --max 1e+20 \
	 | pfssize --maxx 1024 --maxy 768 \
	 | pfswb -v -r 0.900 -g 1.000 -b 1.100 \
	 | pfsclamp --min 1e-20 --max 1e+20 \
	 | ( \
	    rm -rf 'kazan-0046-hdr' && mkdir 'kazan-0046-hdr' && cd 'kazan-0046-hdr' \
	    && pfsouthdrhtml \
	        -q 4 \
	        -p /usr/local/share/pfstools/hdrhtml_hdrlabs_templ/hdrhtml_page_templ.html \
	        -i /usr/local/share/pfstools/hdrhtml_hdrlabs_templ/hdrhtml_image_templ.html \
	        index.html 	    && cp -r /usr/local/share/pfstools/hdrhtml_hdrlabs_templ/hdrhtml_assets ./ \
	   )
${DST}.tiff: ${TMPPFX}.tiff kazan-0046-hdr
	@pfsin ${TMPPFX}.tiff \
	 | pfsclamp --min 1e-20 --max 1e+20 \
	 | pfsgamma -m 1.92555793041034e-04 -g 1.00 \
	 | pfswb -v -r 0.900 -g 1.000 -b 1.100 \
	 | pfsclamp --min 1e-20 --max 1e+20 \
	 | pfstmo_reinhard05 -v -b 0.67 -c 0.60 -l 0.75 \
	 | pfsoutimgmagick -s -b 16 ${DST}.tiff
	@${RMTMP} ${TMPPFX}.tiff
	@${CONV} ${DST}.tiff \
		+matte +repage  \
		-compress ${IMCOMP} ${DST}.tiff

clean: 
	@-${RMSRC} 00-e00-f0000.tiff ${TMPPFX}-0000_gray.pgm 00-e01-f0000.tiff ${TMPPFX}-0001_gray.pgm 00-e02-f0000.tiff ${TMPPFX}-0002_gray.pgm 00-e02-f0001.tiff ${TMPPFX}-0003_gray.pgm 00-e02-f0002.tiff ${TMPPFX}-0004_gray.pgm 00-e03-f0000.tiff ${TMPPFX}-0005_gray.pgm 00-e04-f0000.tiff ${TMPPFX}-0006_gray.pgm 00-e06-f0000.tiff ${TMPPFX}-0008_gray.pgm 00-e07-f0000.tiff ${TMPPFX}-0009_gray.pgm 00-e08-f0000.tiff ${TMPPFX}-0010_gray.pgm 00-e09-f0000.tiff ${TMPPFX}-0011_gray.pgm
	@-${RMTMP} ${TMPPFX}-0000.tif ${TMPPFX}-0001.tif ${TMPPFX}-0002.tif ${TMPPFX}-0003.tif ${TMPPFX}-0004.tif ${TMPPFX}f00-e02-f0000.tiff ${TMPPFX}f00-e02-f0001.tiff ${TMPPFX}f00-e02-f0002.tiff ${TMPPFX}-0005.tif ${TMPPFX}-0006.tif ${TMPPFX}-0008.tif ${TMPPFX}-0009.tif ${TMPPFX}-0010.tif ${TMPPFX}-0011.tif
	@-${RMTMP}  ${TMPPFX}f00-e00-f0000.tiff ${TMPPFX}f00-e01-f0000.tiff ${TMPPFX}et00-e02.tiff ${TMPPFX}f00-e03-f0000.tiff ${TMPPFX}f00-e04-f0000.tiff ${TMPPFX}f00-e06-f0000.tiff ${TMPPFX}f00-e07-f0000.tiff ${TMPPFX}f00-e08-f0000.tiff ${TMPPFX}f00-e09-f0000.tiff ${TMPPFX}e00-e00.tiff ${TMPPFX}e00-e01.tiff ${TMPPFX}e00-e02.tiff ${TMPPFX}e00-e03.tiff ${TMPPFX}e00-e04.tiff ${TMPPFX}e00-e06.tiff ${TMPPFX}e00-e07.tiff ${TMPPFX}e00-e08.tiff ${TMPPFX}e00-e09.tiff ${TMPPFX}t00.tiff
	@-${RMTMP} ${TMPPFX}00.tiff
	@-${RMTMP} ${TMPPFX}.tiff 
	@-${RMDST} ${DST}.tiff
