Makefile 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. PROJECT = max80
  2. QU = quartus
  3. .SUFFIXES:
  4. .SECONDARY:
  5. .DELETE_ON_ERROR:
  6. # Common options for all Quartus tools
  7. QPRI = --lower_priority
  8. QCPF = $(QU)_cpf $(QPRI)
  9. QSH = $(QU)_sh $(QPRI)
  10. QSTA = $(QU)_sta $(QPRI)
  11. # Common options for Quartus in-flow tools
  12. QOPT = --write_settings_files=off $(QPRI)
  13. QMAP = $(QU)_map $(QOPT)
  14. QFIT = $(QU)_fit $(QOPT)
  15. QCDB = $(QU)_cdb $(QOPT)
  16. QASM = $(QU)_asm $(QOPT)
  17. QPOW = $(QU)_pow $(QOPT)
  18. PERL = perl
  19. SRCDIRS = . ip scripts
  20. outdir = output_files
  21. alltarg := sof jic pow.rpt sta.rpt
  22. allout = $(foreach p,$(1),$(foreach o,$(alltarg),$(outdir)/$(p).$(o)))
  23. all: $(call allout,$(PROJECT))
  24. $(outdir)/%.map.rpt: %.qsf
  25. $(QMAP) $*
  26. $(outdir)/%.fit.rpt: $(outdir)/%.map.rpt
  27. $(QFIT) $*
  28. $(outdir)/%.mif_update.rpt: $(outdir)/%.fit.rpt
  29. $(QCDB) --update_mif $*
  30. $(outdir)/%.sof: $(outdir)/%.mif_update.rpt
  31. $(QASM) $*
  32. $(outdir)/%.sta.rpt: $(outdir)/%.fit.rpt | $(outdir)/%.sof
  33. $(QSTA) $*
  34. $(outdir)/%.pow.rpt: $(outdir)/%.sta.rpt
  35. $(QPOW) $*
  36. # XXX: do all .sof -> conversions using quartus_cpf
  37. $(outdir)/%.jic: %jic.cof $(outdir)/%.sof
  38. $(QCPF) --convert $<
  39. %.deps: %.qsf scripts/qsfdeps.pl
  40. $(PERL) scripts/qsfdeps.pl $< $* > $@
  41. clean:
  42. rm -rf db incremental_db simulation/modelsim \
  43. greybox_tmp */greybox_tmp \
  44. $(outdir)/*.rpt $(outdir)/*.rpt \
  45. $(outdir)/*.summary $(outdir)/*.smsg \
  46. $(outdir)/*.htm $(outdir)/*.htm_files \
  47. $(outdir)/*.map $(outdir)/*.eqn $(outdir)/*.sld \
  48. $(outdir)/*.done
  49. spotless:
  50. rm -rf $(outdir)
  51. -include $(PROJECT).deps