all: pciutils lshw mokutil

dir:
	mkdir -p bin include lib share

pciutils: dir
	wget http://archive.ubuntu.com/ubuntu/pool/main/p/pciutils/pciutils_3.13.0.orig.tar.gz
	tar -xf pciutils_3.13.0.orig.tar.gz
	rm pciutils_3.13.0.orig.tar.gz
	mv pciutils-3.13.0 src
	mkdir -p build
	mv src/ build/
	cd build/src && make ZLIB=no DNS=no && make install DESTDIR=$(PWD)/build/
	cp build/usr/local/bin/lspci bin
	cp build/usr/local/sbin/setpci bin
	cd share && wget http://pci-ids.ucw.cz/v2.2/pci.ids
	rm -rf build

lshw: dir
	wget http://archive.ubuntu.com/ubuntu/pool/main/l/lshw/lshw_02.18.orig.tar.gz
	tar -xf lshw_02.18.orig.tar.gz
	rm lshw_02.18.orig.tar.gz
	rm lshw.spec
	mv lshw-B.02.18 src
	mkdir -p build
	mv src/ build/
	cd build/src && make && make install DESTDIR=$(PWD)/build/
	cp build/usr/sbin/lshw bin
	rm -rf build

bin/efivar: dir
	wget http://archive.ubuntu.com/ubuntu/pool/main/e/efivar/efivar_34.orig.tar.bz2
	tar -xf efivar_34.orig.tar.bz2
	rm -rf efivar_34.orig.tar.bz2*
	mv efivar-34 src
	mkdir -p build
	mv src/ build/
	cd build/src && make && make install DESTDIR=$(PWD)/build
	cp build/usr/bin/* bin
	cp -r build/usr/include/* include
	cp -r build/usr/lib64/* lib
	cp -r lib/* /usr/lib64/
	cp -r include/* /usr/include/
	rm -rf build

libssl: dir
	wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.1.1.orig.tar.gz
	tar -xf openssl_1.1.1.orig.tar.gz
	rm openssl_1.1.1.orig.tar.gz
	mv openssl-1.1.1 src
	mkdir -p build
	mv src/ build/
	cd build/src && ./config --prefix=$(PWD)/build && make && make install
	cp -r build/include/* include
	cp -r build/lib/* lib
	cp -r lib/* /usr/lib64
	cp -r include/* /usr/include
	rm -rf build

mokutil: bin/efivar
	wget http://archive.ubuntu.com/ubuntu/pool/main/m/mokutil/mokutil_0.3.0+1538710437.fb6250f.orig.tar.xz
	tar -xf mokutil_0.3.0+1538710437.fb6250f.orig.tar.xz
	rm mokutil_0.3.0+1538710437.fb6250f.orig.tar.xz
	mv mokutil-0.3.0+1538710437.fb6250f src
	mkdir -p build
	mv src/ build
	cd build/src && autoreconf --install
	cd build/src && ./configure --prefix=$(PWD)/build
	cd build/src && make
	cd build/src && make install
	cp build/bin/* bin
	rm -rf build

shell:
	docker run --rm -it -v $(PWD):/workspace --entrypoint /bin/bash \
		us-docker.pkg.dev/io-buster/internal/iob-ubuntu:latest

clean:
	-rm -rf bin
	-rm -rf include
	-rm -rf lib
	-rm -rf share
	-rm -rf build