Makefile 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. API := https://api.github.com
  2. GITHUB := https://github.com
  3. METALANG_REPO := Hirrolot/metalang99
  4. INTERFACE_REPO := Hirrolot/interface99
  5. INTERFACE_VERSION := v0.8.0
  6. METALANG_VERSION := v1.12.0
  7. METALANG_HEADERS := metalang99 metalang99.h
  8. INTERFACE_HEADERS := interface99.h
  9. .PHONY: all
  10. all: metalang interface
  11. .PHONY: metalang
  12. metalang: ${METALANG_HEADERS}
  13. .PHONY: interface
  14. interface: ${INTERFACE_HEADERS}
  15. ${METALANG_HEADERS}: _metalang
  16. ${INTERFACE_HEADERS}: _interface
  17. .PHONY: _metalang
  18. _metalang:
  19. set -ue \
  20. ; url="${GITHUB}/${METALANG_REPO}/archive/${METALANG_VERSION}.tar.gz" \
  21. ; curl -L -- "$${url}" | tar zxf - \
  22. ; incdir="$$(printf %s ./metalang99-*/include)" \
  23. ; mv -v -- "$${incdir}"/* . \
  24. ; rm -r -- "$${incdir%/*}"
  25. .PHONY: _interface
  26. _interface:
  27. set -ue \
  28. ; url="${GITHUB}/${INTERFACE_REPO}/archive/${INTERFACE_VERSION}.tar.gz" \
  29. ; curl -L -- "$${url}" | tar zxf - \
  30. ; mv -v -- ./interface99-*/interface99.h . \
  31. ; rm -r -- ./interface99-*
  32. .PHONY: clean
  33. clean:
  34. rm -rf -- ${METALANG_HEADERS} ${INTERFACE_HEADERS} ./*99*