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 = '

$(PNG)

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

"; \ )) >> $@ sed -e '1,/!-- CONTENT -->/ d' $< >> $@