def : $(WANT:%=%.png) index.html

# F/T plots:
WANT += ft_fdma ft_tdma ft_ftdma1 ft_ftdma2
WANT += ft_blank ft_cdma1 ft_cdma2 ft_cdma3

# F/P plots:
WANT += fp_blank fp_voice fp_carrier fp_am fp_ssb
WANT += fp_sig fp_code fp_cdma fp_cdma_low fp_cdma_noise

# code plots:
WANT += cp_data cp_1code cp_code cp_sig cp_dec cp_wrong cp_wrdec

# visual demo:
WANT += vis_s     vis_a     vis_b     vis_c  vis_bc  vis_rx
WANT += vis_sdec  vis_adec  vis_bdec  vis_ss

# external:
WANT += ssb_txrx
WANT += cdma_txrx cdma_txrx2 cdma_txrx3 cdma_txrx4 cdma_txrx5 cdma_tx


# other bits and pieces that made this talk:
ALSO += CDMA.odp CDMA.ppt CDMA.pdf CDMA_WS.ods CDMA_WS.xls
ALSO += CDMA1.ods CDMA2.ods
ALSO += MT63-2000.png MT63-2000fft.png
ALSO += Makefile cp.gnuplot fp.gnuplot ft.gnuplot head.gnuplot
ALSO += cp.pl qso.pl template.html

CDMA_WS.xls : CDMA_WS.ods
	@echo Crap, need to re-export $@ from $< :
	@echo libreoffice $< ; false
CDMA.ppt : CDMA.odp
	@echo Crap, need to re-export $@ from $< :
	@echo libreoffice $< ; false
CDMA.pdf : CDMA.odp
	@echo Crap, need to re-export $@ from $< :
	@echo libreoffice $< ; false

# spreading code, a "wrong" spreading code, and our "signal":
SC = 10001011
WC = 00010111
#    10011100 xor
SIG = $2$2$1$2$1$1

# calculate the inverse of the spreading code, and same number of 1s and 0s:
IC = $(subst I,1,$(subst 1,0,$(subst 0,I,$(SC))))
I  = $(subst 0,1,$(SC))
O  = $(subst 1,0,$(SC))

clean :
	-rm -v *~ ft_*.png fp_*.png cp_*.png cp_*.gnuplot cp_wrdec.sig index.html

ft_%.png : head.gnuplot ft.gnuplot ft_%.gnuplot
	gnuplot $^ > $@

fp_%.png : head.gnuplot fp.gnuplot fp_%.gnuplot
	gnuplot $^ > $@

cp_%.png : head.gnuplot cp.gnuplot cp_%.gnuplot
	gnuplot $^ > $@

vis_%.png : vis-example.pl
	./vis-example.pl $* | pnmtopng > $@

CODE_data  = 16 $(call SIG,0,1)
CODE_1code =  2 $(SC)
CODE_code  =  2 $(call SIG,$(SC),$(SC))
CODE_sig   =  2 $(call SIG,$(IC),$(SC))
CODE_dec   =  2 $(call SIG,$O,$I)
CODE_wrong =  2 $(call SIG,$(WC),$(WC))
CODE_wrdec =  2 $(shell cat cp_wrdec.sig)
cp_wrdec.gnuplot : cp_wrdec.sig

cp_%.gnuplot : cp.pl
	./cp.pl $(CODE_$*) > $@

cp_wrdec.sig : Makefile
	echo 2i 10$(call SIG,$O,$O) 1 - $(call SIG,$(WC),$(WC)) - p \
	$(call SIG,$(IC),$(SC))p  | dc \
	| perl -e '$$a=0+<>; $$b=0+<>; print "2o ",$$a^$$b, "p\n"' | dc \
	| cut -c2- > $@

LINE    = '<h2>$(PNG)</h2><p><a href="$(PNG).png"><img src="$(PNG).png" alt="$(PNG)" /></a><br />'
FROMDIA = '(Made from <a href="$(PNG).dia">$(PNG).dia</a>)<br />'
FROMGP  = '(Made from <a href="$(PNG).gnuplot">$(PNG).gnuplot</a>)<br />'

index.html : template.html $(WANT:%=%.png) $(ALSO)
	sed -e '/<!-- CONTENT -->/,$$ d' $< > $@
	- ($(foreach PNG, $(WANT), echo $(LINE); \
	[ -e $(PNG).dia ] && echo $(FROMDIA); \
	[ -e $(PNG).gnuplot ] && echo $(FROMGP); \
	echo "</p>"; \
	)) >> $@
	sed -e '1,/!-- CONTENT -->/ d' $< >> $@
