st/Makefile
2022-08-12 21:41:04 +02:00

96 lines
3 KiB
Makefile

# st - simple terminal
# See LICENSE file for copyright and license details.
.POSIX:
include config.mk
SRC = st.c x.c boxdraw.c hb.c
OBJ = $(SRC:.c=.o)
all: options st
options:
@echo st build options:
@echo "CFLAGS = $(STCFLAGS)"
@echo "LDFLAGS = $(STLDFLAGS)"
@echo "CC = $(CC)"
config.h:
cp config.def.h config.h
.c.o:
$(CC) $(STCFLAGS) -c $<
st.o: config.h st.h win.h
x.o: arg.h config.h st.h win.h hb.h
hb.o: st.h
boxdraw.o: config.h st.h boxdraw_data.h
$(OBJ): config.h config.mk
st: $(OBJ)
$(CC) -o $@ $(OBJ) $(STLDFLAGS)
clean:
rm -f st $(OBJ) st-spde-$(VERSION).tar.gz
dist: clean
mkdir -p st-spde-$(VERSION)
cp -R arg.h autocomplete.h boxdraw.c boxdraw_data.h config.def.h config.mk st.png st.desktop docs hb.c hb.h Makefile st.1 st-autocomplete st.c st.h st.info win.h x.c docs/st-keybinds st-spde-$(VERSION)
tar -cf - st-spde-$(VERSION) | gzip > st-spde-$(VERSION).tar.gz
rm -rf st-spde-$(VERSION)
install: st
touch config.h boxdraw.o hb.o st.o x.o
mkdir -p $(DESTDIR)$(PREFIX)/bin
cp -f st $(DESTDIR)$(PREFIX)/bin
cp -f docs/bindlist $(DESTDIR)$(PREFIX)/bin/stbindlist
cp -f docs/st-keybinds $(DESTDIR)$(PREFIX)/bin
chmod +x $(DESTDIR)$(PREFIX)/bin/st-keybinds
chmod 755 $(DESTDIR)$(PREFIX)/bin/st
cp -f st-autocomplete $(DESTDIR)$(PREFIX)/bin
chmod 755 $(DESTDIR)$(PREFIX)/bin/st-autocomplete
mkdir -p $(DESTDIR)$(MANPREFIX)/man1
sed "s/VERSION/$(VERSION)/g" < st.1 > $(DESTDIR)$(MANPREFIX)/man1/st.1
chmod 644 $(DESTDIR)$(MANPREFIX)/man1/st.1
rm -f config.h boxdraw.o hb.o st.o x.o
tic -sx st.info
@echo Please see the README file regarding the terminfo entry of st.
mkdir -p $(DESTDIR)$(ICONPREFIX)
mkdir -p $(DESTDIR)$(APPPREFIX)
cp -f st.desktop $(DESTDIR)$(APPPREFIX)
[ -f $(ICONNAME) ] && cp -f $(ICONNAME) $(DESTDIR)$(ICONPREFIX) || :
uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/st
rm -f $(DESTDIR)$(APPPREFIX)/st.desktop
rm -f $(DESTDIR)$(PREFIX)/bin/st-autocomplete
rm -f $(DESTDIR)$(MANPREFIX)/man1/st.1
rm -f $(DESTDIR)$(ICONPREFIX)/$(ICONNAME)
libxftfix:
git clone https://github.com/uditkarode/libxft-bgra && cd libxft-bgra
sh autogen.sh --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man
make install
cd .. && rm -r libxft-bgra
gentoo-libxftfix:
mkdir -pv /etc/portage/patches/x11-libs/libXft
curl -o /etc/portage/patches/x11-libs/libXft/bgra.diff https://gitlab.freedesktop.org/xorg/lib/libxft/-/merge_requests/1.patch
emerge x11-libs/libXft
arch-libxftfix:
git clone https://aur.archlinux.org/libxft-bgra
cd libxft-bgra
makepkg -i
help:
@echo install: Installs st. You may need to run this as root.
@echo uninstall: Uninstalls st. You may need to run this as root.
@echo libxftfix: This option compiles and installs libXft-bgra which is necessary to prevent st from crashing.
@echo gentoo-libxftfix: This option installs libXft-bgra by patching it for Gentoo only.
@echo arch-libxftfix: This option installs libXft-bgra using the AUR on Arch Linux only.
@echo help: Displays this help sheet.
.PHONY: all options clean dist install uninstall libxftfix arch-libxftfix gentoo-libxftfix help