From 114fdac199a320dca0a3243b51c7709b45f04b36 Mon Sep 17 00:00:00 2001 From: Luca Bilke Date: Fri, 17 May 2024 12:03:44 +0200 Subject: [PATCH] WIP --- .gitignore | 23 +++++++ Makefile | 67 ++++++++++--------- build.sh | 20 ------ config.h => config/config.h | 0 config.mk => config/config.mk | 0 patches.h => config/patches.h | 0 .../patches}/default-class-name.diff | 0 .../patches}/font-features.diff | 0 {patches => config/patches}/histsize.diff | 0 9 files changed, 59 insertions(+), 51 deletions(-) delete mode 100755 build.sh rename config.h => config/config.h (100%) rename config.mk => config/config.mk (100%) rename patches.h => config/patches.h (100%) rename {patches => config/patches}/default-class-name.diff (100%) rename {patches => config/patches}/font-features.diff (100%) rename {patches => config/patches}/histsize.diff (100%) diff --git a/.gitignore b/.gitignore index caf9763..6a02ec5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,26 @@ st-final pkg *.xbps +patch +FAQ +LEGACY +LICENSE +README +TODO +arg.h +config.def.h +config.h +config.mk +hb.c +hb.h +sixel.c +sixel.h +sixel_hls.c +sixel_hls.h +st.1 +st.c +st.desktop +st.h +st.info +win.h +x.c diff --git a/Makefile b/Makefile index 9eb2abc..570c81e 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ # st - simple terminal # See LICENSE file for copyright and license details. +.PHONY: all clean install uninstall + .POSIX: include config.mk @@ -7,41 +9,44 @@ include config.mk SRC = st.c x.c $(LIGATURES_C) $(SIXEL_C) OBJ = $(SRC:.c=.o) -all: st +all: st terminfo -config.h: - cp config.def.h config.h - -patches.h: - cp patches.def.h patches.h - -.c.o: - $(CC) $(STCFLAGS) -c $< - -st.o: config.h st.h win.h -x.o: arg.h config.h st.h win.h $(LIGATURES_H) - -$(OBJ): config.h config.mk patches.h - -st: $(OBJ) - $(CC) -o $@ $(OBJ) $(STLDFLAGS) +# TODO: Update command to update submodules clean: - rm -f st $(OBJ) st-$(VERSION).tar.gz + find . -maxdepth 1 -type f | grep -Pv "^\./\.|Makefile$$" | xargs -r rm + rm -r tmp patch 2>/dev/null || true + git -C st-flexipatch reset --hard HEAD + git -C st-flexipatch clean -fdx -dist: clean - mkdir -p st-$(VERSION) - cp -R FAQ LEGACY TODO LICENSE Makefile README config.mk\ - config.def.h st.info st.1 arg.h st.h win.h $(LIGATURES_H) $(SRC)\ - st-$(VERSION) - tar -cf - st-$(VERSION) | gzip > st-$(VERSION).tar.gz - rm -rf st-$(VERSION) +buildroot: + cp config/patches.h st-flexipatch/patches.h + flexipatch-finalizer/flexipatch-finalizer.sh -r -d st-flexipatch -o tmp + rm -r tmp/Makefile + mv tmp/* ./ -terminfo: - mkdir terminfo +config.mk: + cp config/config.mk ./config.mk + +config.h: + cp config/config.h ./config.h + +*.h: buildroot +.c.o: buildroot + $(CC) $(STCFLAGS) -c $< + +st.o: buildroot config.h st.h win.h +x.o: buildroot arg.h config.h st.h win.h $(LIGATURES_H) + +$(OBJ): config.h config.mk buildroot + +st: buildroot $(OBJ) + $(CC) -o $@ $(OBJ) $(STLDFLAGS) + +terminfo: buildroot tic -sx -o terminfo st.info -install: st +install: st terminfo mkdir -p $(DESTDIR)$(PREFIX)/bin cp -f st $(DESTDIR)$(PREFIX)/bin chmod 755 $(DESTDIR)$(PREFIX)/bin/st @@ -50,9 +55,11 @@ install: st chmod 644 $(DESTDIR)$(MANPREFIX)/man1/st.1 mkdir -p $(DESTDIR)$(PREFIX)/share cp -a terminfo $(DESTDIR)$(PREFIX)/share/terminfo + chmod 755 $(DESTDIR)$(PREFIX)/share/terminfo/s + chmod 644 $(DESTDIR)$(PREFIX)/share/terminfo/st-* # mkdir -p $(DESTDIR)$(PREFIX)/share/applications # desktop-entry patch # test -f ${DESTDIR}${PREFIX}/share/applications/st.desktop || cp -n st.desktop $(DESTDIR)$(PREFIX)/share/applications # desktop-entry patch - + uninstall: rm -f $(DESTDIR)$(PREFIX)/bin/st rm -f $(DESTDIR)$(MANPREFIX)/man1/st.1 @@ -64,5 +71,3 @@ uninstall: rm -f $(DESTDIR)$(PREFIX)/share/terminfo/s/st-meta rm -f $(DESTDIR)$(PREFIX)/share/terminfo/s/st-meta-256color rm -f $(DESTDIR)$(PREFIX)/share/terminfo/s/st-mono - -.PHONY: all clean dist install uninstall diff --git a/build.sh b/build.sh deleted file mode 100755 index 4052d2b..0000000 --- a/build.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -cp -f config.mk Makefile patches.h st-flexipatch/ -flexipatch-finalizer/flexipatch-finalizer.sh -r -d st-flexipatch -o st-final -git -C st-flexipatch reset --hard HEAD && git -C st-flexipatch clean -fd -for patch in patches/*.diff; do - patch -d st-final <"$patch" -done -cp -f config.h st-final/ -cd st-final || exit 1 - -if [ "$1" = "-i" ]; then - sudo make install -elif [ "$1" = "-ti" ]; then - mkdir -p /usr/local/share/terminfo/s/ - make terminfo - cp -a terminfo/s/* /usr/local/share/terminfo/s/ -else - make -fi diff --git a/config.h b/config/config.h similarity index 100% rename from config.h rename to config/config.h diff --git a/config.mk b/config/config.mk similarity index 100% rename from config.mk rename to config/config.mk diff --git a/patches.h b/config/patches.h similarity index 100% rename from patches.h rename to config/patches.h diff --git a/patches/default-class-name.diff b/config/patches/default-class-name.diff similarity index 100% rename from patches/default-class-name.diff rename to config/patches/default-class-name.diff diff --git a/patches/font-features.diff b/config/patches/font-features.diff similarity index 100% rename from patches/font-features.diff rename to config/patches/font-features.diff diff --git a/patches/histsize.diff b/config/patches/histsize.diff similarity index 100% rename from patches/histsize.diff rename to config/patches/histsize.diff