1
0
src/Makefile
2022-06-15 09:07:02 -04:00

245 lines
7.8 KiB
Makefile

# System utilities
CC=cc
CFLAGS=-Iinclude/ -Ilib/ -g -Wall
RM=rm -f
all: libraries programs
cleanall: clean cleanlibraries cleanprograms
clean:
$(RM) src/*.o
cleanlibraries:
$(RM) lib/libshell.o
$(RM) lib/libstr.o
cleanprograms:
$(RM) bin/add
$(RM) bin/cut
$(RM) bin/echo
$(RM) bin/eq
$(RM) bin/false
$(RM) bin/fdivide
$(RM) bin/gt
$(RM) bin/lowercase
$(RM) bin/lt
$(RM) bin/mm
$(RM) bin/multiply
$(RM) bin/nonzero
$(RM) bin/simexec
$(RM) bin/sleep
$(RM) bin/streq
$(RM) bin/str
$(RM) bin/substitute
$(RM) bin/tail
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) -o bin/sysexits src/sysexits.c
sysexits: sysexits_bin
bin/sysexits >include/sysexits.h
programs: echo false id lowercase nonzero simexec sleep streq str
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: sysexits src/echo.c
$(CC) $(CFLAGS) -o bin/echo src/echo.c
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: src/nutshell.c src/nutshell.h src/nutshell_builtins.c
$(CC) $(CFLAGS) -o bin/nutshell src/nutshell.c
roll.o: lib/libio.h src/roll.c sysexits
$(CC) $(CFLAGS) -c -o build/roll.o src/roll.c
roll: libio sysexits roll.o
$(CC) $(CFLAGS) -o bin/roll build/libio.o build/roll.o
runlength: sysexits src/runlength.c usefulmacros
$(CC) $(CFLAGS) -o bin/runlength src/runlength.c
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.o: src/str.c
$(CC) $(CFLAGS) -c -o build/str.o src/str.c
str: libio str.o
$(CC) $(CFLAGS) -o bin/str build/libio.o build/str.o
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
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 </dev/zero >/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 stdbool sysexits usefulmacros