# System utilities CC=cc CFLAGS=-Iinclude/ -Ilib/ -g -Wall -Wextra -Wpedantic RM=rm -f all: libraries programs cleanall: clean cleanprograms clean: $(RM) build/* cleanprograms: $(RM) bin/add $(RM) bin/calculate $(RM) bin/cut $(RM) bin/echo $(RM) bin/eq $(RM) bin/false $(RM) bin/fdivide $(RM) bin/gt $(RM) bin/id $(RM) bin/lowercase $(RM) bin/lt $(RM) bin/mm $(RM) bin/multiply $(RM) bin/nonzero $(RM) bin/pscat $(RM) bin/rot13 $(RM) bin/simexec $(RM) bin/sleep $(RM) bin/streq $(RM) bin/str $(RM) bin/substitute $(RM) bin/sysexits $(RM) bin/retval $(RM) bin/rldecode $(RM) bin/rlencode $(RM) bin/roll $(RM) bin/tail $(RM) bin/true libraries: libio libshell stdbool sysexits libio: lib/libio.c $(CC) $(CFLAGS) -c -o build/libio.o lib/libio.c libshell: lib/libshell.c lib/libshell.h $(CC) $(CFLAGS) -o lib/libshell.o -c lib/libshell.c libstr: lib/libstr.c lib/libstr.h $(CC) $(CFLAGS) -o lib/libstr.o -c lib/libstr.c stdbool: include/stdbool.h sysexits_bin: src/sysexits.c $(CC) $(CFLAGS) -c -o build/sysexits.o src/sysexits.c $(CC) $(CFLAGS) -o bin/sysexits build/sysexits.o sysexits: sysexits_bin bin/sysexits >include/sysexits.h programs: echo false id lowercase nonzero pscat roll simexec sleep streq str true calculate: libstr sysexits src/calculate.c $(CC) $(CFLAGS) -o src/calculate.o -c src/calculate.c $(CC) $(CFLAGS) -o bin/calculate lib/libstr.o src/calculate.o echo: bin/echo bin/echo: echo/echo mv echo/echo bin/echo echo/echo: echo/Makefile echo/echo.c $(MAKE) -C echo sane false: src/false.c $(CC) $(CFLAGS) -o bin/false src/false.c id: stdbool sysexits src/id.c $(CC) $(CFLAGS) -o bin/id src/id.c levenshtein: src/levenshtein.c $(CC) $(CFLAGS) -o bin/levenshtein src/levenshtein.c lowercase: sysexits src/lowercase.c $(CC) $(CFLAGS) -o bin/lowercase src/lowercase.c nonzero: src/nonzero.c $(CC) $(CFLAGS) -o bin/nonzero src/nonzero.c nutshell.o: libio usefulmacros src/nutshell.c src/nutshell.h src/nutshell_builtins.c $(CC) $(CFLAGS) -c -o build/nutshell.o src/nutshell.c nutshell: libio nutshell.o $(CC) $(CFLAGS) -o bin/nutshell build/libio.o build/nutshell.o pscat: bin/pscat bin/pscat: pscat/pscat mv pscat/pscat bin/pscat pscat/pscat: sysexits pscat/pscat.c pscat/Makefile $(MAKE) -C pscat sane retval.o: libio src/retval.c sysexits $(CC) $(CFLAGS) -c -o build/retval.o src/retval.c retval: libio retval.o $(CC) $(CFLAGS) -o bin/retval build/retval.o build/libio.o roll: bin/roll bin/roll: roll/roll mv roll/roll bin/roll roll/roll: sysexits roll/roll.c roll/Makefile $(MAKE) -C roll sane rot13: bin/rot13 bin/rot13: rot13/rot13 mv rot13/rot13 bin/rot13 rot13/rot13: sysexits rot13/rot13.c rot13/Makefile $(MAKE) -C rot13 sane rldecode.o: sysexits src/runlength.c $(CC) $(CFLAGS) -Df=decode -c -o build/rldecode.o src/runlength.c rlencode.o: sysexits src/runlength.c $(CC) $(CFLAGS) -Df=encode -c -o build/rlencode.o src/runlength.c runlength: rldecode.o rlencode.o $(CC) $(CFLAGS) -o bin/rldecode build/rldecode.o $(CC) $(CFLAGS) -o bin/rlencode build/rlencode.o simexec.o: libio sysexits src/simexec.c $(CC) $(CFLAGS) -c -o build/simexec.o src/simexec.c simexec: libio simexec.o $(CC) $(CFLAGS) -o bin/simexec build/libio.o build/simexec.o streq.o: libio sysexits src/streq.c $(CC) $(CFLAGS) -c -o build/streq.o src/streq.c streq: libio streq.o $(CC) $(CFLAGS) -o bin/streq build/libio.o build/streq.o str: bin/str bin/str: str/str mv str/str bin/str str/str: sysexits str/str.c str/Makefile $(MAKE) -C str sane sleep.o: libio sysexits src/sleep.c usefulmacros $(CC) $(CFLAGS) -c -o build/sleep.o src/sleep.c sleep: libio sleep.o $(CC) $(CFLAGS) -o bin/sleep build/libio.o build/sleep.o substitute: stdbool src/substitute.c $(CC) $(CFLAGS) -c -o src/substitute.o src/substitute.c $(CC) $(CFLAGS) -o bin/substitute src/substitute.o tail.o: libio src/tail.c $(CC) $(CFLAGS) -c -o build/tail.o src/tail.c tail: libio tail.o $(CC) $(CFLAGS) -o bin/tail build/libio.o build/tail.o true: src/true.c $(CC) $(CFLAGS) -o bin/true src/true.c usefulmacros: include/usefulmacros.h which: libshell src/which.c $(CC) $(CFLAGS) -c -o src/which.o src/which.c $(CC) $(CFLAGS) -o bin/which lib/libshell.o src/which.o # Convenience PROGRAMS= \ alsa-plugins-nice alsa-utils \ anki audacious \ curl wget \ dvdbackup ffmpeg mpv \ vlc \ awk nawk sed moreutils \ ed vim \ feh ffmpeg imagemagick \ gcc \ git mercurial \ gparted \ gperf gwenview \ htop powertop \ inetutils iptables k3b \ kate kdenlive krita \ lame linux-headers lynx \ macchanger make \ man-pages man-pages-posix \ moc \ net-tools \ nmap p7zip pkgfile \ progress \ pulseaudio pulseaudio-alsa pulseaudio-utils \ pulsemixer \ python3 qbittorrent qemu \ rsync s-tui \ screen tmux twin \ scrot sed smartmontools \ thunar thunderbird \ ttf-liberation tlp \ units \ unrar unzip \ util-linux \ virt-manager \ wireguard-tools \ xclip \ xf86-input-libinput xf86-input-wacom xf86-video-intel \ xscreensaver xterm \ zathura zathura-cb zathura-djvu \ zathura-ps alpine-programs: apk add $(PROGRAMS) arch-doas: cd dist/doas-sudo makepkg -si arch-yay: git clone "https://aur.archlinux.org/yay.git" || true cd yay git pull makepkg -si yay -V audacious-skins: curl https://archive.org/download/winampskin_Sailor_Moon_Gang/Sailor_Moon_Gang.wsz -o /usr/share/audacious/Skins/Sailor_Moon_Gang.wsz # i made this script to fetch icons for my grandmother and put them in icons/ # so i wouldn't have to fetch the icons for her desktop when i made her a new # system. # i could have downloaded all the icons and put them into a repo for her but # this uses less space # all these icons are on the internet archive so if the local sites change # they'll still be available grammy-icons: mkdir -p "~/Pictures/icons/" cd "~/Pictures/icons/" curl -o "989wclz.com.png" "https://web.archive.org/web/20200629174002if_/https://989wclz.com/wp-content/themes/wclz/img/touch-icon-144.png" curl -o "amazon.com.ico" "https://web.archive.org/web/20200718050400if_/https://www.amazon.com/favicon.ico" curl -o "bangordailynews.com.png" "http://web.archive.org/web/20200721195123if_/https://i0.wp.com/bdn-data.s3.amazonaws.com/uploads/2020/06/BDN-logo_green-3-1.png" curl -o "theguardian.com.png" "https://web.archive.org/web/20200720041457if_/https://assets.guim.co.uk/images/favicons/fee5e2d638d1c35f6d501fa397e53329/152x152.png" curl -o "centralmaine.com.png" "https://web.archive.org/web/20200720023956if_/https://multifiles.pressherald.com/uploads/sites/2/2014/06/apple-touch-icon-iphone-retina-display.png" curl -o "dictionary.com.png" "https://web.archive.org/web/20200719135458if_/https://www.dictionary.com/hp-assets/dcom_favicon-1bff2f1b49c077ed504e55c3649f2a4b.png" curl -o "google.com.jpg" "https://web.archive.org/web/20170621105937if_/https://yt3.ggpht.com/-v0soe-ievYE/AAAAAAAAAAI/AAAAAAAAAAA/OixOH_h84Po/s900-c-k-no/photo.jpg" curl -o "longfellowsgreenhouses.com.jpg" "https://web.archive.org/web/20200718173559im_/https://longfellowsgreenhouses.com/wp-content/uploads/2020/03/Longfellows-Logo-Light-Green.jpg" curl -o "mainepublic.org.png" "https://d3kle7qwymxpcy.cloudfront.net/images/broadcasts/e5/8e/30457/1/c300.png" curl -o "news.google.com.png" "https://upload.wikimedia.org/wikipedia/commons/0/0b/Google_News_icon.png" curl -o "newscentermaine.com.png" "https://web.archive.org/web/20200721190548if_/https://www.newscentermaine.com/assets/favicons/WCSH.png?ver=2.4.7.4" curl -o "pressherald.com.png" "https://multifiles.pressherald.com/uploads/sites/4/2014/06/apple-touch-icon-iphone-retina-display.png" curl -o "weather.com.png" "https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/The_Weather_Channel_logo_2005-present.svg/1200px-The_Weather_Channel_logo_2005-present.svg.png" # nmap 7.80 is the last Free nmap release nmap: mkdir -p ~/src cd ~/src curl "https://nmap.org/dist/nmap-7.80.tar.bz2" | bzip2 -cd | tar -x ./configure make spacer: # creates an 8GB empty file in the root dir # that way when the alarm bells go off you can delete it to save a # couple minutes before the system really runs out of disk # # 512 * 16777216 = 8GB dd bs=512 count=16777216 /spacer.bin unscii-pkgsrc: cd /usr/pkgsrc/fonts/unscii make install clean clean-depends unscii-system: mkdir -p /usr/share/fonts/unscii curl "http://viznut.fi/unscii/unscii-16-full.otf" >"/usr/share/fonts/unscii/unscii-16-full.otf" curl "http://viznut.fi/unscii/unscii-16-full.pcf" >"/usr/share/fonts/unscii/unscii-16-full.pcf" curl "http://viznut.fi/unscii/unscii-16-full.ttf" >"/usr/share/fonts/unscii/unscii-16-full.ttf" unscii-user: mkdir -p ~/.fonts curl "http://viznut.fi/unscii/unscii-16-full.otf" >"~/.fonts/unscii-16-full.otf" curl "http://viznut.fi/unscii/unscii-16-full.pcf" >"~/.fonts/unscii-16-full.pcf" curl "http://viznut.fi/unscii/unscii-16-full.ttf" >"~/.fonts/unscii-16-full.ttf" .PHONY: all clean cleanlibraries cleanprograms echo pscat roll rot13 stdbool str sysexits usefulmacros