Makefile 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # Info from v.mod
  2. NAME := $(shell awk '/name:/ {print $$2}' v.mod | sed s/\'//g)
  3. DESC := $(shell awk '/description:/ {sub($$1 FS,""); print }' v.mod | sed s/\'//g)
  4. VERSION := $(shell awk '/version:/ {print $$2}' v.mod | sed s/\'//g)
  5. LICENSE := $(shell awk '/license:/ {print $$2}' v.mod | sed s/\'//g)
  6. DEPS := $(shell awk '/dependencies:/ {print $$2}' v.mod | sed s/\'//g)
  7. # Compiler and flags
  8. VDIR := ~/.local/bin/v
  9. V := $(VDIR)/v
  10. V_FLAGS := #-b native
  11. V.JS := $(V) -b js_browser
  12. V.JS_FLAGS :=
  13. # Directories and files
  14. PROJROOT := $(shell pwd)
  15. OUTDIR := $(PROJROOT)/output
  16. BINDIR := $(OUTDIR)/bin
  17. LIBDIR := $(OUTDIR)/lib
  18. JUNK := $(shell cat .gitignore)
  19. # Adjusting for build type
  20. BUILD_TYPE := Debug
  21. ifeq ($(BUILD_TYPE), Release)
  22. V_FLAGS += -prod
  23. else
  24. V_FLAGS += -cg
  25. endif
  26. all: logo $(V) $(BINDIR)/site
  27. rebuild: clean all
  28. logo:
  29. @figlet $(NAME)
  30. @echo "Version: $(VERSION)"
  31. @echo "License: $(LICENSE)"
  32. # @echo "Description: $(DESC)"
  33. @printf "\n"
  34. clean:
  35. rm -rf $(JUNK)
  36. run: $(BINDIR)/site
  37. $(BINDIR)/site
  38. $(V):
  39. mkdir -p $(VDIR)
  40. git clone https://github.com/vlang/v $(VDIR)
  41. make -C $(VDIR)
  42. $(VDIR)/v install
  43. $(OUTDIR):
  44. mkdir -p $(OUTDIR)
  45. $(BINDIR): $(OUTDIR)
  46. mkdir -p $(BINDIR)
  47. $(LIBDIR): $(OUTDIR)
  48. mkdir -p $(LIBDIR)
  49. $(BINDIR)/site: $(BINDIR)
  50. $(V) $(V_FLAGS) -o $(BINDIR)/site src/