This repository has been archived on 2024-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
adlin/Makefile

51 lines
2.5 KiB
Makefile

tuto1: login-app/login-app token-validator/token-validator login-initrd.img server.iso
fonts: fonts/Inconsolata-16b.psf fonts/Inconsolata-16r.psf fonts/Inconsolata-32b.psf fonts/Inconsolata-32r.psf
fonts/Inconsolata-16b.psf:
wget https://github.com/xeechou/Inconsolata-psf/raw/master/Inconsolata-16b.psf
fonts/Inconsolata-16r.psf:
wget https://github.com/xeechou/Inconsolata-psf/raw/master/Inconsolata-16r.psf
fonts/Inconsolata-32b.psf:
wget https://github.com/xeechou/Inconsolata-psf/raw/master/Inconsolata-32b.psf
fonts/Inconsolata-32r.psf:
wget https://github.com/xeechou/Inconsolata-psf/raw/master/Inconsolata-32r.psf
token-validator/token-validator: token-validator/*.go
go generate ./token-validator
GOOS=linux GOARM=5 GOARCH=arm go build -tags netgo -ldflags '-w -extldflags "-static"' -o $@ ./token-validator
login-app/login-app: login-app/*.go
GOOS=linux GOARCH=amd64 go build -tags netgo -ldflags '-w -extldflags "-static -lncurses"' -o $@ ./login-app
login-initrd.img: login.yml login-app/login-app
linuxkit build $<
challenge-initrd.img: challenge.yml subject/adlin.6.gz subject/adlin-TP1-topologie.png fonts/Inconsolata-16b.psf.gz fonts/Inconsolata-16r.psf.gz fonts/Inconsolata-32b.psf.gz fonts/Inconsolata-32r.psf.gz pkg/challenge/adlin pkg/challenge/issue pkg/challenge/init
linuxkit build $<
server.iso: server.yml students.csv ssl/fullchain.pem ssl/privkey.pem challenge-initrd.img challenge-kernel login-initrd.img
linuxkit build -format iso-bios $<
tuto2-kernel: tuto2.yml
linuxkit build $<
tuto2-initrd.img: tuto2.yml
linuxkit build $<
tuto2-cmdline: tuto2.yml
linuxkit build $<
tuto2.iso: tuto2.yml tuto2-kernel tuto2-initrd.img tuto2-cmdline
linuxkit build -format iso-bios $<
tuto2-srs.iso: tuto2.iso pkg/debian-tuto2/isolinux.cfg
$(eval TDIR := $(shell mktemp -d))
bsdtar xf $< -C $(TDIR)
cp pkg/debian-tuto2/isolinux.cfg /usr/share/syslinux/isolinux.bin /usr/share/syslinux/ldlinux.c32 /usr/share/syslinux/vesamenu.c32 /usr/share/syslinux/menu.c32 /usr/share/syslinux/libcom32.c32 /usr/share/syslinux/libutil.c32 /usr/share/syslinux/poweroff.c32 $(TDIR)/isolinux/
$(eval CMDLINE := $(shell cat tuto2-cmdline | sed 's/console=ttyS0 //;s#root=/dev/sr0 ##;s#root=/dev/sda1 ##;s#adlin.format=/dev/sda ##;'))
sed -i 's#<CMDLINE>#$(CMDLINE)#' $(TDIR)/isolinux/isolinux.cfg
mkisofs -o $@ -l -J -R -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -input-charset utf8 -V AdLin2 $(TDIR)
rm -rf $(TDIR)
isohybrid $@
tuto2-srs.iso.gz: tuto2-srs.iso
gzip -9 < $< > $@