www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

Makefile (1932B)


      1 SHELL = bash -euET -o pipefail -c
      2 tmp_image := $(shell echo $$$$)
      3 
      4 all: hello.tar hello.sizes vm-image to-be-run-in-vm.sh Makefile
      5 	qemu-img create -f qcow2 -o backing_file=vm-image vm-image-tmp-${tmp_image}
      6 # TODO: qcow2: make a derived image.
      7 	qemu-system-x86_64 -enable-kvm -m 4096 -nographic \
      8 	  vm-image-tmp-${tmp_image} \
      9 	  -drive format=raw,file=hello.sizes,if=ide,index=1,media=disk \
     10 	  -drive format=raw,file=to-be-run-in-vm.sh,if=ide,index=2,media=disk \
     11 	  -drive format=raw,file=hello.tar,if=ide,index=3,media=disk
     12 	rm vm-image-tmp-${tmp_image}
     13 
     14 %.sizes: %.tar signing-key.pub to-be-run-in-vm.sh Makefile
     15 	printf "%020d\\n%020d\\n%$$((512-((20+1)*2)-1))s\\n" \
     16 	  "$$(wc -c "to-be-run-in-vm.sh" | sed -e 's/^[[:space:]]*\([0-9][0-9]*\)[[:space:]].*$$/\1/')" \
     17 	  "$$(wc -c "$*.tar" | sed -e 's/^[[:space:]]*\([0-9][0-9]*\)[[:space:]].*$$/\1/')" \
     18 	  "" \
     19 	  > '$@'
     20 
     21 %.nar: Makefile
     22 	guix archive --export --recursive '$*' $$(guix build --source --sources=transitive '$*' $$(for i in \
     23 	  binutils-2.23.2.tar.xz \
     24 	  bison-3.0.4.tar.xz \
     25 	  gc-7.6.4.tar.gz \
     26 	  gcc-4.8.2.tar.xz \
     27 	  glibc-2.18.tar.xz \
     28 	  guile-2.0.9.tar.xz \
     29 	  gcc-4.9.4.tar.xz \
     30 	  gettext-0.19.8.1.tar.gz \
     31 	  gmp-6.1.2.tar.xz \
     32 	  guile-2.2.3.tar.xz \
     33 	  libatomic_ops-7.6.4.tar.gz \
     34 	  libffi-3.2.1.tar.gz \
     35 	  libtool-2.4.6.tar.xz \
     36 	  libunistring-0.9.9.tar.xz \
     37 	  m4-1.4.18.tar.xz \
     38 	  perl-5.26.1.tar.gz \
     39 	  pkg-config-0.29.2.tar.gz \
     40 	  static-binaries.tar.xz \
     41 	  texinfo-6.5.tar.xz \
     42 	  zlib-1.2.11.tar.gz; do \
     43 	    echo /gnu/store/*-$$i.drv; \
     44 	  done) | sort -u) > '$@'
     45 
     46 %.tar: %.nar signing-key.pub Makefile
     47 	tar -cf '$@' '$*.nar' signing-key.pub
     48 
     49 signing-key.pub: /etc/guix/signing-key.pub Makefile
     50 	cp '$<' '$@'
     51 	chmod +w '$@'
     52 
     53 vm-image: config.scm Makefile
     54 	rm -f '$@'
     55 	ln -sf "$$(guix system vm-image --image-size=8G config.scm)" '$@'
     56 
     57 clean:
     58 	rm -f vm-image vm-image-tmp-* signing-key.pub \
     59 	  hello.nar hello.tar hello.sizes