Makefile 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. SCRIPTS += $(shell find -type f -name '*.sh')
  2. DATECODE=$(shell date "+%Y%m%d")
  3. SHELL=/bin/bash
  4. T_PLATFORMS=rpi-{armv{6,7}l,aarch64}{,-musl} beaglebone{,-musl} cubieboard2{,-musl} odroid-c2{,-musl} GCP{,-musl} pinebookpro{,-musl}
  5. T_ARCHS=i686 x86_64{,-musl} armv{6,7}l{,-musl} aarch64{,-musl}
  6. T_SBC_IMGS=rpi-{armv{6,7}l,aarch64}{,-musl} beaglebone{,-musl} cubieboard2{,-musl} odroid-c2{,-musl} pinebookpro{,-musl}
  7. T_CLOUD_IMGS=GCP{,-musl}
  8. T_PXE_ARCHS=x86_64{,-musl}
  9. ARCHS=$(shell echo $(T_ARCHS))
  10. PLATFORMS=$(shell echo $(T_PLATFORMS))
  11. SBC_IMGS=$(shell echo $(T_SBC_IMGS))
  12. CLOUD_IMGS=$(shell echo $(T_CLOUD_IMGS))
  13. PXE_ARCHS=$(shell echo $(T_PXE_ARCHS))
  14. ALL_ROOTFS=$(foreach arch,$(ARCHS),void-$(arch)-ROOTFS-$(DATECODE).tar.xz)
  15. ALL_PLATFORMFS=$(foreach platform,$(PLATFORMS),void-$(platform)-PLATFORMFS-$(DATECODE).tar.xz)
  16. ALL_SBC_IMAGES=$(foreach platform,$(SBC_IMGS),void-$(platform)-$(DATECODE).img.xz)
  17. ALL_CLOUD_IMAGES=$(foreach cloud,$(CLOUD_IMGS),void-$(cloud)-$(DATECODE).tar.gz)
  18. ALL_PXE_ARCHS=$(foreach arch,$(PXE_ARCHS),void-$(arch)-NETBOOT-$(DATECODE).tar.gz)
  19. SUDO := sudo
  20. XBPS_REPOSITORY := -r https://repo-default.voidlinux.org/current -r https://repo-default.voidlinux.org/current/musl -r https://repo-default.voidlinux.org/current/aarch64
  21. COMPRESSOR_THREADS=2
  22. all:
  23. distdir-$(DATECODE):
  24. mkdir -p distdir-$(DATECODE)
  25. dist: distdir-$(DATECODE)
  26. mv void*$(DATECODE)* distdir-$(DATECODE)/
  27. rootfs-all: $(ALL_ROOTFS)
  28. rootfs-all-print:
  29. @echo $(ALL_ROOTFS) | sed "s: :\n:g"
  30. void-%-ROOTFS-$(DATECODE).tar.xz: $(SCRIPTS)
  31. $(SUDO) ./mkrootfs.sh $(XBPS_REPOSITORY) -x $(COMPRESSOR_THREADS) $*
  32. platformfs-all: $(ALL_PLATFORMFS)
  33. platformfs-all-print:
  34. @echo $(ALL_PLATFORMFS) | sed "s: :\n:g"
  35. void-%-PLATFORMFS-$(DATECODE).tar.xz: $(SCRIPTS)
  36. $(SUDO) ./mkplatformfs.sh $(XBPS_REPOSITORY) -x $(COMPRESSOR_THREADS) $* void-$(shell ./lib.sh platform2arch $*)-ROOTFS-$(DATECODE).tar.xz
  37. images-all: platformfs-all images-all-sbc images-all-cloud
  38. images-all-sbc: $(ALL_SBC_IMAGES)
  39. images-all-sbc-print:
  40. @echo $(ALL_SBC_IMAGES) | sed "s: :\n:g"
  41. images-all-cloud: $(ALL_CLOUD_IMAGES)
  42. images-all-print:
  43. @echo $(ALL_SBC_IMAGES) $(ALL_CLOUD_IMAGES) | sed "s: :\n:g"
  44. void-%-$(DATECODE).img.xz: void-%-PLATFORMFS-$(DATECODE).tar.xz
  45. $(SUDO) ./mkimage.sh -x $(COMPRESSOR_THREADS) void-$*-PLATFORMFS-$(DATECODE).tar.xz
  46. # Some of the images MUST be compressed with gzip rather than xz, this
  47. # rule services those images.
  48. void-%-$(DATECODE).tar.gz: void-%-PLATFORMFS-$(DATECODE).tar.xz
  49. $(SUDO) ./mkimage.sh -x $(COMPRESSOR_THREADS) void-$*-PLATFORMFS-$(DATECODE).tar.xz
  50. pxe-all: $(ALL_PXE_ARCHS)
  51. pxe-all-print:
  52. @echo $(ALL_PXE_ARCHS) | sed "s: :\n:g"
  53. void-%-NETBOOT-$(DATECODE).tar.gz: $(SCRIPTS) void-%-ROOTFS-$(DATECODE).tar.xz
  54. $(SUDO) ./mknet.sh void-$*-ROOTFS-$(DATECODE).tar.xz
  55. .PHONY: all dist rootfs-all-print rootfs-all platformfs-all-print platformfs-all pxe-all-print pxe-all