update docs, remove makefile

This commit is contained in:
speedie 2023-05-08 11:39:34 +02:00
parent a26f64de33
commit 7f43d03a0d
7 changed files with 35 additions and 183 deletions

142
Makefile
View file

@ -1,142 +0,0 @@
# spmenu - fancy dynamic menu
# See LICENSE file for copyright and license details.
include host.mk
include toggle.mk
# spmenu version
VERSION = 1.1
CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L -D_POSIX_C_SOURCE=200809L -DVERSION=\"$(VERSION)\" $(XINERAMATOGGLE) $(BDTOGGLE) $(PANGOTOGGLE) $(IMLIB2TOGGLE) $(LIBCONFIGTOGGLE) $(XRDBTOGGLE)
CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations $(OPT) $(INCS) $(CPPFLAGS)
LDFLAGS = $(LIBS)
INCS = -I$(X11INC) -I$(FREETYPEINC) -I$(BDINC) `pkg-config --cflags $(PANGOCONF) $(PANGOXFTCONF) $(OPENSSLCONF) $(LIBCONFIGCONF)`
LIBS = -L$(X11LIB) $(X11LIBS) $(XINERAMALIBS) $(FREETYPELIBS) $(XRENDERLIBS) -lm `pkg-config --libs $(PANGOCONF) $(PANGOXFTCONF) $(OPENSSLCONF) $(LIBCONFIGCONF)` $(BDLIBS) $(IMLIB2LIBS)
SRC = libs/libdrw/draw.c spmenu.c libs/sl/main.c
OBJ = $(SRC:.c=.o)
all: options spmenu
options:
@echo spmenu build options:
@echo "CFLAGS = $(CFLAGS)"
@echo "LDFLAGS = $(LDFLAGS)"
@echo "CC = $(CC)"
.c.o:
$(CC) -c $(CFLAGS) -g $<
$(OBJ): options.h libs/libdrw/draw.h
spmenu: spmenu.o libs/libdrw/draw.o libs/sl/main.o
$(CC) -o $@ spmenu.o draw.o main.o $(LDFLAGS)
clean:
rm -f spmenu spmenu-$(VERSION).tar.gz spmenu-$(VERSION).PKGBUILD *.o *zst*
dist: clean man
mkdir -p spmenu-$(VERSION)
cp -rf LICENSE Makefile *.h *.mk *.c scripts/ docs/ libs/ PKGBUILD build.sh spmenu-$(VERSION)
[ -f buildconf ] && cp buildconf spmenu-$(VERSION) || :
[ -f spmenu.1 ] && cp spmenu.1 spmenu-$(VERSION) || :
tar -cf spmenu-$(VERSION).tar spmenu-$(VERSION)
gzip spmenu-$(VERSION).tar
rm -rf spmenu-$(VERSION)
install: spmenu
rm -rf $(DESTDIR)$(PREFIX)/share/spmenu/
mkdir -p $(DESTDIR)$(PREFIX)/bin
mkdir -p $(DESTDIR)$(PREFIX)/share/spmenu
cp docs/example.Xresources example.Xresources.orig && sed -i "s/VERSION/$(VERSION)/g" docs/example.Xresources
cp -r docs/* $(DESTDIR)$(PREFIX)/share/spmenu/
mv example.Xresources.orig docs/example.Xresources
echo "$(VERSION)" > $(DESTDIR)$(PREFIX)/share/spmenu/version
echo "$(CC)" > $(DESTDIR)$(PREFIX)/share/spmenu/cc
echo "$(CFLAGS)" > $(DESTDIR)$(PREFIX)/share/spmenu/cflags
echo "$$(date "+%D %T")" > $(DESTDIR)$(PREFIX)/share/spmenu/compile-date
cp -r spmenu scripts/spmenu* $(DESTDIR)$(PREFIX)/bin
[ -f spmenu.1 ] && mkdir -p $(DESTDIR)$(MANPREFIX)/man1 || :
[ -f spmenu.1 ] && cp spmenu.1 $(DESTDIR)$(MANPREFIX)/man1/spmenu.1 || :
chmod 755 $(DESTDIR)$(PREFIX)/bin/spmenu*
rm -f *.o
rm -f spmenu
install_mac: spmenu
rm -rf $(DESTDIR)$(PREFIX)/share/spmenu/
mkdir -p $(DESTDIR)$(PREFIX)/bin
mkdir -p $(DESTDIR)$(PREFIX)/share/spmenu
cp -r docs/* $(DESTDIR)$(PREFIX)/share/spmenu/
echo "$(VERSION)" > $(DESTDIR)$(PREFIX)/share/spmenu/version
echo "$(CC)" > $(DESTDIR)$(PREFIX)/share/spmenu/cc
echo "$(CFLAGS)" > $(DESTDIR)$(PREFIX)/share/spmenu/cflags
echo "$$(date "+%D %T")" > $(DESTDIR)$(PREFIX)/share/spmenu/compile-date
cp -r spmenu scripts/spmenu* $(DESTDIR)$(PREFIX)/bin
[ -f spmenu.1 ] && mkdir -p $(DESTDIR)$(MANPREFIX)/man1 || :
[ -f spmenu.1 ] && cp spmenu.1 $(DESTDIR)$(MANPREFIX)/man1/spmenu.1 || :
chmod 755 $(DESTDIR)$(PREFIX)/bin/spmenu*
rm -f *.o
rm -f spmenu
compat:
rm -f $(DESTDIR)$(PREFIX)/bin/dmenu
rm -f $(DESTDIR)$(PREFIX)/bin/dmenu_run
ln -s $(DESTDIR)$(PREFIX)/bin/spmenu $(DESTDIR)$(PREFIX)/bin/dmenu
ln -s $(DESTDIR)$(PREFIX)/bin/spmenu_run $(DESTDIR)$(PREFIX)/bin/dmenu_run
uninstall:
rm -f \
$(DESTDIR)$(PREFIX)/bin/spmenu*
help:
@echo spmenu Makefile help
@echo
@echo install: Installs spmenu. You may need to run this as root.
@echo install_mac: Installs spmenu on a Mac. You may need to run this as root.
@echo uninstall: Uninstalls spmenu. You may need to run this as root.
@echo install_arch: Uses the PKGBUILD to install spmenu using pacman.
@echo dist: Creates a release for spmenu.
@echo clean: Removes objects and tarballs.
@echo docs: Generate full documentation for spmenu
@echo man: Generate man page for spmenu
@echo compat: Installs compatibility with dmenu. WARNING: This will overwrite dmenu and dmenu_run
@echo commit: Commit to the repository
@echo pkg_arch: Creates an Arch package based on the PKGBUILD
@echo help: Displays this help sheet.
man:
printf "%% spmenu(1) $(VERSION) | fancy dynamic menu\n" > .man.md
grep -v docs/preview.png docs/docs.md >> .man.md
pandoc --standalone --to man .man.md -o spmenu.1
pandoc --standalone .man.md -o spmenu.html
rm -f .man.md
docs: man
scripts/make/generate-code-docs.sh docs/code-docs.md code.html || exit 1
pandoc --standalone README.md -o README.html
pkg_arch: dist
command -v makepkg > /dev/null || exit 1
[ -f PKGBUILD ] || exit 1
cp -f PKGBUILD PKGBUILD.orig
sed -i "s/VERSION/$(VERSION)/g; s/MD5SUM/$$(md5sum *.tar.gz | cut -d ' ' -f 1)/g" PKGBUILD
makepkg -sfr --sign || exit 1
rm -rf src/ pkg/ *.tar.gz
cp PKGBUILD spmenu-$(VERSION).PKGBUILD; mv PKGBUILD.orig PKGBUILD
install_arch: dist
command -v makepkg > /dev/null || exit 1
[ -f PKGBUILD ] || exit 1
cp -f PKGBUILD PKGBUILD.orig
sed -i "s/VERSION/$(VERSION)/g; s/MD5SUM/$$(md5sum *.tar.gz | cut -d ' ' -f 1)/g" PKGBUILD
makepkg -si || :
rm -rf src/ pkg/ *.tar.gz
cp PKGBUILD spmenu-$(VERSION).PKGBUILD; mv PKGBUILD.orig PKGBUILD
commit: docs
command -v git > /dev/null || exit 1
git add *
git commit -a || :
.PHONY: all options clean dist install install_mac install_arch uninstall pkg_arch help man docs commit

View file

@ -7,8 +7,8 @@ pkgdesc="Fancy dynamic menu, compatible with dmenu!"
url="https://git.speedie.site/spmenu" url="https://git.speedie.site/spmenu"
arch=(i686 x86_64) arch=(i686 x86_64)
license=(MIT) license=(MIT)
depends=(sh libxinerama libxft pango libx11 imlib2 fribidi libconfig gcc) depends=(sh libxinerama libxft pango libx11 imlib2 fribidi libconfig)
makedepends=(git) makedepends=(git meson ninja pandoc)
provides=($pkgname) provides=($pkgname)
conflicts=($pkgname) conflicts=($pkgname)
source=( source=(
@ -20,14 +20,20 @@ md5sums=(MD5SUM)
build(){ build(){
cd $pkgname-$pkgver cd $pkgname-$pkgver
make \ mkdir -p build/
X11INC=/usr/include/X11 \ meson setup --reconfigure build
X11LIB=/usr/lib/X11 \ ninja -C build
CC=gcc
} }
package() { package() {
cd "$pkgname-$pkgver" cd "$pkgname-$pkgver"
make PREFIX=/usr DESTDIR="$pkgdir" CC=gcc install
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE mkdir -p "$pkgdir/usr/share/spmenu"
install -Dm644 docs/docs.md "$pkgdir/usr/share/spmenu/"
install -Dm644 docs/code-docs.md "$pkgdir/usr/share/spmenu/"
install -Dm644 docs/example.Xresources "$pkgdir/usr/share/spmenu/"
install -Dm644 docs/spmenu.conf "$pkgdir/usr/share/spmenu/"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm755 scripts/spmenu_run "$pkgdir/usr/bin/spmenu"
install -Dm755 scripts/spmenu_test "$pkgdir/usr/bin/spmenu"
} }

View file

@ -220,8 +220,6 @@ with dmenu. Just pass the original arguments.</p>
<ul> <ul>
<li>build.sh: Setting <code>imlib2=false</code> in <li>build.sh: Setting <code>imlib2=false</code> in
<code>buildconf</code>.</li> <code>buildconf</code>.</li>
<li>Makefile: Editing <code>toggle.mk</code> and commenting out a few
lines.</li>
</ul></li> </ul></li>
</ul></li> </ul></li>
<li>libXinerama <li>libXinerama
@ -230,16 +228,12 @@ lines.</li>
<ul> <ul>
<li>build.sh: Setting <code>xinerama=false</code> in <li>build.sh: Setting <code>xinerama=false</code> in
<code>buildconf</code>.</li> <code>buildconf</code>.</li>
<li>Makefile: Editing <code>toggle.mk</code> and commenting out a few
lines.</li>
</ul></li> </ul></li>
</ul></li> </ul></li>
<li>tcc compiler <li>tcc compiler
<ul> <ul>
<li>You can swap it out for GCC or any other C99 compatible compiler by: <li>You can swap it out for GCC or any other C99 compatible compiler by:
<ul> <ul>
<li>Makefile: Passing <code>CC="gcc"</code> to the <code>make</code>
command.</li>
<li>build.sh: Adding <code>CC="gcc"</code> to the <li>build.sh: Adding <code>CC="gcc"</code> to the
<code>buildconf</code>. command if you want)</li> <code>buildconf</code>. command if you want)</li>
</ul></li> </ul></li>
@ -251,8 +245,6 @@ disabled if you dont want this by:
<ul> <ul>
<li>build.sh: Setting <code>imlib2=false</code> and <li>build.sh: Setting <code>imlib2=false</code> and
<code>openssl=false</code> in <code>buildconf</code>.</li> <code>openssl=false</code> in <code>buildconf</code>.</li>
<li>Makefile: Editing <code>toggle.mk</code> and commenting out a few
lines.</li>
</ul></li> </ul></li>
</ul></li> </ul></li>
<li>Pango <li>Pango
@ -261,8 +253,6 @@ lines.</li>
<ul> <ul>
<li>build.sh: Setting <code>pango=false</code> and <li>build.sh: Setting <code>pango=false</code> and
<code>pangoxft=false</code> in <code>buildconf</code>.</li> <code>pangoxft=false</code> in <code>buildconf</code>.</li>
<li>Makefile: Editing <code>toggle.mk</code> and commenting out a few
lines.</li>
</ul></li> </ul></li>
</ul></li> </ul></li>
<li>libconfig <li>libconfig
@ -271,10 +261,12 @@ lines.</li>
<ul> <ul>
<li>build.sh: Setting <code>libconfig=false</code> in <li>build.sh: Setting <code>libconfig=false</code> in
<code>buildconf</code>.</li> <code>buildconf</code>.</li>
<li>Makefile: Editing <code>toggle.mk</code> and commenting out a few
lines.</li>
</ul></li> </ul></li>
</ul></li> </ul></li>
<li>meson
<ul>
<li>Used to compile spmenu</li>
</ul></li>
</ul> </ul>
<h2 id="installation-gnulinux-bsd">Installation (GNU/Linux, *BSD)</h2> <h2 id="installation-gnulinux-bsd">Installation (GNU/Linux, *BSD)</h2>
<p><code>emerge dev-vcs/git</code>, <code>pacman -S git</code>, <p><code>emerge dev-vcs/git</code>, <code>pacman -S git</code>,
@ -282,9 +274,7 @@ lines.</li>
<p><code>git clone https://git.speedie.site/spmenu</code></p> <p><code>git clone https://git.speedie.site/spmenu</code></p>
<p><code>cd spmenu/</code></p> <p><code>cd spmenu/</code></p>
<p><code>./build.sh # Run as root. Install any missing dependencies.</code></p> <p><code>./build.sh # Run as root. Install any missing dependencies.</code></p>
<p>Report any issues with the build.sh script. Theres also a Makefile <p>Report any issues with the build.sh script.</p>
which you can use but it may require editing host.mk and toggle.mk
manually.</p>
<h2 id="installation-macosos-xmac-os-x">Installation (macOS/OS X/Mac OS <h2 id="installation-macosos-xmac-os-x">Installation (macOS/OS X/Mac OS
X)</h2> X)</h2>
<p>NOTE: Adds Xquartz as a dependency. I highly recommend you use <p>NOTE: Adds Xquartz as a dependency. I highly recommend you use
@ -309,9 +299,10 @@ packages.</p>
<p>If you are on Arch GNU/Linux, you can add <a <p>If you are on Arch GNU/Linux, you can add <a
href="https://git.speedie.site/speedie-repository">my repository</a> href="https://git.speedie.site/speedie-repository">my repository</a>
which includes <code>spmenu</code> as well as other useful packages.</p> which includes <code>spmenu</code> as well as other useful packages.</p>
<p>Theres also a PKGBUILD. To use it, simply <p>Theres also a PKGBUILD. To use it, simply run
<code>make install_arch</code> in the directory the PKGBUILD is <code>scripts/make/generate-pacman-pkg.sh</code> in the directory the
located.</p> PKGBUILD is located. You can then <code>pacman -U</code> this package,
or add it to your repository.</p>
<p>If you wish to package spmenu for your GNU/Linux distribution, feel <p>If you wish to package spmenu for your GNU/Linux distribution, feel
free to add it to this list.</p> free to add it to this list.</p>
<h2 id="todo">TODO</h2> <h2 id="todo">TODO</h2>

View file

@ -45,29 +45,25 @@ Just pass the original arguments.
- imlib2 - imlib2
- Used for image support, can be disabled if you don't want this by: - Used for image support, can be disabled if you don't want this by:
- build.sh: Setting `imlib2=false` in `buildconf`. - build.sh: Setting `imlib2=false` in `buildconf`.
- Makefile: Editing `toggle.mk` and commenting out a few lines.
- libXinerama - libXinerama
- Can be disabled if you don't want/need multi-monitor support by: - Can be disabled if you don't want/need multi-monitor support by:
- build.sh: Setting `xinerama=false` in `buildconf`. - build.sh: Setting `xinerama=false` in `buildconf`.
- Makefile: Editing `toggle.mk` and commenting out a few lines.
- tcc compiler - tcc compiler
- You can swap it out for GCC or any other C99 compatible compiler by: - You can swap it out for GCC or any other C99 compatible compiler by:
- Makefile: Passing `CC="gcc"` to the `make` command.
- build.sh: Adding `CC="gcc"` to the `buildconf`. - build.sh: Adding `CC="gcc"` to the `buildconf`.
command if you want) command if you want)
- OpenSSL - OpenSSL
- Used to calculate MD5 of images if image support is enabled, can be - Used to calculate MD5 of images if image support is enabled, can be
disabled if you don't want this by: disabled if you don't want this by:
- build.sh: Setting `imlib2=false` and `openssl=false` in `buildconf`. - build.sh: Setting `imlib2=false` and `openssl=false` in `buildconf`.
- Makefile: Editing `toggle.mk` and commenting out a few lines.
- Pango - Pango
- Can be disabled if you don't want/need Pango markup by: - Can be disabled if you don't want/need Pango markup by:
- build.sh: Setting `pango=false` and `pangoxft=false` in `buildconf`. - build.sh: Setting `pango=false` and `pangoxft=false` in `buildconf`.
- Makefile: Editing `toggle.mk` and commenting out a few lines.
- libconfig - libconfig
- Can be disabled if you don't want/need config file support by: - Can be disabled if you don't want/need config file support by:
- build.sh: Setting `libconfig=false` in `buildconf`. - build.sh: Setting `libconfig=false` in `buildconf`.
- Makefile: Editing `toggle.mk` and commenting out a few lines. - meson
- Used to compile spmenu
## Installation (GNU/Linux, \*BSD) ## Installation (GNU/Linux, \*BSD)
@ -79,8 +75,7 @@ disabled if you don't want this by:
`./build.sh # Run as root. Install any missing dependencies.` `./build.sh # Run as root. Install any missing dependencies.`
Report any issues with the build.sh script. There's also a Makefile which Report any issues with the build.sh script.
you can use but it may require editing host.mk and toggle.mk manually.
## Installation (macOS/OS X/Mac OS X) ## Installation (macOS/OS X/Mac OS X)
@ -110,8 +105,9 @@ If you are on Arch GNU/Linux, you can add
[my repository](https://git.speedie.site/speedie-repository) which includes [my repository](https://git.speedie.site/speedie-repository) which includes
`spmenu` as well as other useful packages. `spmenu` as well as other useful packages.
There's also a PKGBUILD. To use it, simply `make install_arch` in the directory There's also a PKGBUILD. To use it, simply run
the PKGBUILD is located. `scripts/make/generate-pacman-pkg.sh` in the directory the PKGBUILD is
located. You can then `pacman -U` this package, or add it to your repository.
If you wish to package spmenu for your GNU/Linux distribution, feel free to add If you wish to package spmenu for your GNU/Linux distribution, feel free to add
it to this list. it to this list.

View file

@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="generator" content="pandoc" /> <meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>spmenu documentation 1.1</title> <title>spmenu documentation unknown</title>
<style> <style>
html { html {
color: #1a1a1a; color: #1a1a1a;
@ -166,7 +166,7 @@
</head> </head>
<body> <body>
<header id="title-block-header"> <header id="title-block-header">
<h1 class="title">spmenu documentation 1.1</h1> <h1 class="title">spmenu documentation unknown</h1>
</header> </header>
<nav id="TOC" role="doc-toc"> <nav id="TOC" role="doc-toc">
<ul> <ul>

View file

@ -5,7 +5,7 @@ scripts/make/generate-pkg.sh
command -v makepkg > /dev/null || exit 1 command -v makepkg > /dev/null || exit 1
[ -f PKGBUILD ] || exit 1 [ -f PKGBUILD ] || exit 1
cp -f PKGBUILD PKGBUILD.orig cp -f PKGBUILD PKGBUILD.orig
sed -i "s/VERSION/${VERSION}/g; s/MD5SUM/$(md5sum *.tar.gz | cut -d ' ' -f 1)/g" PKGBUILD sed -i "s/VERSION/${version}/g; s/MD5SUM/$(md5sum *.tar.gz | cut -d ' ' -f 1)/g" PKGBUILD
makepkg -sfr --sign || exit 1 makepkg -sfr --sign || exit 1
rm -rf src/ pkg/ *.tar.gz rm -rf src/ pkg/ *.tar.gz
cp PKGBUILD spmenu-${VERSION}.PKGBUILD; mv PKGBUILD.orig PKGBUILD cp PKGBUILD spmenu-${version}.PKGBUILD; mv PKGBUILD.orig PKGBUILD

View file

@ -3,8 +3,9 @@ version="$(grep "version : '" meson.build | awk '{ print $3 }' | sed "s/'\"//g;
rm -f spmenu spmenu-${version}.tar.gz spmenu-${version}.PKGBUILD *.o *zst* rm -f spmenu spmenu-${version}.tar.gz spmenu-${version}.PKGBUILD *.o *zst*
mkdir -p spmenu-${version} mkdir -p spmenu-${version}
cp -rf LICENSE Makefile *.h *.mk *.c scripts/ docs/ libs/ PKGBUILD build.sh spmenu-${version} cp -rf LICENSE meson.build *.h *.mk *.c scripts/ docs/ libs/ PKGBUILD build.sh spmenu-${version}
[ -f buildconf ] && cp buildconf spmenu-${version} || : [ -f buildconf ] && cp buildconf spmenu-${version} || :
[ -f Makefile ] && cp Makefile spmenu-${version} || :
[ -f spmenu.1 ] && cp spmenu.1 spmenu-${version} || : [ -f spmenu.1 ] && cp spmenu.1 spmenu-${version} || :
tar -cf spmenu-${version}.tar spmenu-${version} tar -cf spmenu-${version}.tar spmenu-${version}
gzip spmenu-${version}.tar gzip spmenu-${version}.tar