2023-03-24 15:28:42 +01:00
#!/bin/bash
[ -z " $CC " ] && CC = gcc
[ -z " $PREFIX " ] && PREFIX = "/usr"
[ -z " $INCDIR " ] && INCDIR = "/usr/include"
[ -z " $OPT " ] && OPT = "-O2"
check_dist( ) {
[ -f "/etc/pacman.conf" ] && printf "hint: detected Pacman. if you want you can run 'makepkg' with proper arguments to install it using pacman.\n" && pacman = true
[ -f "/System/Library/CoreServices/SystemVersion.plist" ] && printf "hint: detected a Mac. Please report any issues you find as it is untested.\n" && mac = true
uname -a | grep -q OpenBSD && printf "hint: detected OpenBSD. Please report any issues you find as it is untested.\n" && openbsd = true
}
check( ) {
[ ! -x " $( command -v ldconfig) " ] && printf "ldconfig not found in %s. Please make sure your system is set up properly." "\$PATH" && exit 1
[ ! -x " $( command -v make) " ] && printf "make not found in %s. Please make sure your system is set up properly." "\$PATH" && exit 1
[ ! -x " $( command -v $CC ) " ] && printf "%s not found in %s. Please make sure your system is set up properly." " $CC " "\$PATH"
[ -n " $( ldconfig -p | grep Imlib2) " ] && printf "Imlib2 found\n" && imlib2 = true || imlib2 = false
[ -n " $( ldconfig -p | grep libXft) " ] && printf "libXft found\n" && xft = true || xft = false
[ -n " $( ldconfig -p | grep libX11) " ] && printf "libX11 found\n" && x11 = true || x11 = false
[ -n " $( ldconfig -p | grep libXrender) " ] && printf "libXrender found\n" && xrender = true || xrender = false
[ -n " $( ldconfig -p | grep libpango) " ] && printf "libpango found\n" && pango = true || pango = false
[ -n " $( ldconfig -p | grep libpangoxft) " ] && printf "libpangoxft found\n" && pangoxft = true || pangoxft = false
[ -n " $( ldconfig -p | grep libxcb-xinerama) " ] && printf "libxcb-xinerama found\n" && xinerama = true || xinerama = false
[ -n " $( ldconfig -p | grep libgnutls-openssl) " ] && printf "openssl found\n" && openssl = true || openssl = false
[ -n " $( ldconfig -p | grep fribidi) " ] && printf "fribidi found\n" && fribidi = true || fribidi = false
[ -n " $( ldconfig -p | grep freetype) " ] && printf "freetype found\n" && freetype = true || freetype = false
}
loadconf( ) {
[ -x "buildconf" ] && source buildconf
# mandatory deps
[ " $freetype " = "false" ] && printf "Freetype not found. Install it.\n" && exit 1
2023-03-28 21:46:23 +02:00
[ " $openssl " = "false" ] && [ " $imlib2 " = "true" ] && printf "OpenSSL not found. Install it.\n" && exit 1
2023-03-24 15:28:42 +01:00
[ " $xrender " = "false" ] && printf "libXrender not found. Install it.\n" && exit 1
[ " $x11 " = "false" ] && printf "libX11 not found. Install it.\n" && exit 1
[ " $xft " = "false" ] && printf "libXft not found. Install it.\n" && exit 1
}
build( ) {
# to be overriden
FREETYPEINC = " $INCDIR /freetype2 "
X11INC = "/usr/X11R6/include"
X11LIB = "/usr/X11R6/lib"
# macOS
if [ " $mac " = "true" ] ; then
INCDIR = "/usr/local/include"
FREETYPEINC = " $INCDIR /freetype2 "
X11INC = "/opt/X11/include"
X11LIB = "/opt/X11/lib"
fi
# openbsd
if [ " $openbsd " = "true" ] ; then
INCDIR = " $X11INC "
FREETYPEINC = " $INCDIR /freetype2 "
fi
# xinerama
if [ " $xinerama " = "true" ] ; then
xineramalib = "-lXinerama"
xineramatoggle = "-DXINERAMA"
fi
# imlib2
if [ " $imlib2 " = "true" ] ; then
imlib2libs = "-lImlib2"
imlib2toggle = "-DIMAGE"
fi
2023-03-28 21:46:23 +02:00
# openssl
if [ " $openssl " = "true" ] ; then
opensslconf = "openssl"
fi
2023-03-24 15:28:42 +01:00
# pango
if [ " $pango " = "true" ] && [ " $pangoxft " = "true" ] ; then
pangoconf = "pango"
pangoxftconf = "pangoxft"
pangotoggle = "-DPANGO"
fi
# fribidi
if [ " $fribidi " = "true" ] ; then
bdlibs = "-lfribidi"
bdinc = " $INCDIR /fribidi "
bdtoggle = "-DRTL"
2023-03-25 15:29:51 +01:00
else
bdlibs = ""
bdinc = ""
bdtoggle = ""
2023-03-24 15:28:42 +01:00
fi
make clean
[ " $GEN_MANUAL " != "false" ] && make man
2023-03-28 21:46:23 +02:00
2023-03-24 15:28:42 +01:00
make \
CC = " $CC " \
PREFIX = " $PREFIX " \
OPT = " $OPT " \
XINERAMALIBS = " $xineramalib " \
XINERAMATOGGLE = " $xineramatoggle " \
IMLIB2LIBS = " $imlib2libs " \
IMLIB2TOGGLE = " $imlib2toggle " \
PANGOCONF = " $pangoconf " \
PANGOXFTCONF = " $pangoxftconf " \
PANGOTOGGLE = " $pangotoggle " \
BDLIBS = " $bdlibs " \
BDINC = " $bdinc " \
BDTOGGLE = " $bdtoggle " \
2023-03-25 15:29:51 +01:00
FREETYPEINC = " $FREETYPEINC " \
2023-03-28 21:46:23 +02:00
OPENSSLCONF = " $opensslconf " \
2023-03-24 15:28:42 +01:00
X11LIB = " $X11LIB " \
X11INC = " $X11INC "
}
install( ) {
[ " $( id -u) " != "0" ] && printf "You must run this as root in order to install.\n" && exit 1
make install \
CC = " $CC " \
PREFIX = " $PREFIX " \
OPT = " $OPT " \
XINERAMALIBS = " $xineramalib " \
XINERAMATOGGLE = " $xineramatoggle " \
IMLIB2LIBS = " $imlib2libs " \
IMLIB2TOGGLE = " $imlib2toggle " \
PANGOCONF = " $pangoconf " \
PANGOXFTCONF = " $pangoxftconf " \
PANGOTOGGLE = " $pangotoggle " \
BDLIBS = " $bdlibs " \
BDINC = " $bdinc " \
BDTOGGLE = " $bdtoggle " \
2023-03-25 15:29:51 +01:00
FREETYPEINC = " $FREETYPEINC " \
2023-03-28 21:46:23 +02:00
OPENSSLCONF = " $opensslconf " \
2023-03-24 15:28:42 +01:00
X11LIB = " $X11LIB " \
X11INC = " $X11INC "
}
check_dist
check
loadconf
build
2023-03-28 22:16:30 +02:00
[ " $install " != "false" ] && install