Makefile 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. GITVER := $(shell git rev-parse --short HEAD)
  2. VERSION = 0.22
  3. SHIN += $(shell find -type f -name '*.sh.in')
  4. SCRIPTS += $(SHIN:.sh.in=.sh)
  5. DATE=$(shell date "+%Y%m%d")
  6. T_PLATFORMS=rpi{,2,3}{,-musl} beaglebone{,-musl} cubieboard2{,-musl} odroid-c2{,-musl} usbarmory{,-musl} GCP{,-musl}
  7. T_ARCHS=i686 x86_64{,-musl} armv{6,7}l{,-musl} aarch64{,-musl}
  8. T_SBC_IMGS=rpi{,2,3}{,-musl} beaglebone{,-musl} cubieboard2{,-musl} odroid-c2{,-musl} usbarmory{,-musl}
  9. T_CLOUD_IMGS=GCP{,-musl}
  10. ARCHS=$(shell echo $(T_ARCHS))
  11. PLATFORMS=$(shell echo $(T_PLATFORMS))
  12. SBC_IMGS=$(shell echo $(T_SBC_IMGS))
  13. CLOUD_IMGS=$(shell echo $(T_CLOUD_IMGS))
  14. ALL_ROOTFS=$(foreach arch,$(ARCHS),void-$(arch)-ROOTFS-$(DATE).tar.xz)
  15. ALL_PLATFORMFS=$(foreach platform,$(PLATFORMS),void-$(platform)-PLATFORMFS-$(DATE).tar.xz)
  16. ALL_SBC_IMAGES=$(foreach platform,$(SBC_IMGS),void-$(platform)-$(DATE).img.xz)
  17. ALL_CLOUD_IMAGES=$(foreach cloud,$(CLOUD_IMGS),void-$(cloud)-$(DATE).tar.gz)
  18. SUDO := sudo
  19. XBPS_REPOSITORY := -r https://lug.utdallas.edu/mirror/void/current -r https://lug.utdallas.edu/mirror/void/current/musl -r https://lug.utdallas.edu/mirror/void/current/aarch64
  20. %.sh: %.sh.in
  21. sed -e "s|@@MKLIVE_VERSION@@|$(VERSION) $(GITVER)|g" $^ > $@
  22. chmod +x $@
  23. all: $(SCRIPTS)
  24. clean:
  25. rm -v *.sh
  26. distdir-$(DATE):
  27. mkdir -p distdir-$(DATE)
  28. dist: distdir-$(DATE)
  29. mv void*$(DATE)* distdir-$(DATE)/
  30. rootfs-all: $(ALL_ROOTFS)
  31. rootfs-all-print:
  32. echo $(ALL_ROOTFS)
  33. void-%-ROOTFS-$(DATE).tar.xz: $(SCRIPTS)
  34. $(SUDO) ./mkrootfs.sh $(XBPS_REPOSITORY) $*
  35. void-%-PLATFORMFS-$(DATE).tar.xz: $(SCRIPTS)
  36. $(SUDO) ./mkplatformfs.sh $(XBPS_REPOSITORY) $* void-$(shell ./lib.sh platform2arch $*)-ROOTFS-$(DATE).tar.xz
  37. platformfs-all: rootfs-all $(ALL_PLATFORMFS)
  38. platformfs-all-print:
  39. @echo $(ALL_PLATFORMFS) | sed "s: :\n:g"
  40. images-all: platformfs-all images-all-sbc images-all-cloud
  41. images-all-sbc: $(ALL_SBC_IMAGES)
  42. images-all-cloud: $(ALL_CLOUD_IMAGES)
  43. images-all-print:
  44. @echo $(ALL_SBC_IMAGES) $(ALL_CLOUD_IMAGES)
  45. void-%-$(DATE).img.xz:
  46. $(SUDO) ./mkimage.sh void-$*-PLATFORMFS-$(DATE).tar.xz
  47. # The GCP images are special for $reasons
  48. void-GCP-$(DATE).tar.gz:
  49. $(SUDO) ./mkimage.sh void-GCP-PLATFORMFS-$(DATE).tar.xz
  50. void-GCP-musl-$(DATE).tar.gz:
  51. $(SUDO) ./mkimage.sh void-GCP-musl-PLATFORMFS-$(DATE).tar.xz
  52. .PHONY: clean dist rootfs-all-print platformfs-all-print