This repository has been archived on 2025-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
alock/configure
mathias c1e2ccd901 wip
--HG--
extra : convert_revision : svn%3Aeebe1cee-a9af-4fe4-bd26-ad572b19c5ab/trunk%4043
2006-08-23 08:01:26 +00:00

357 lines
8.1 KiB
Bash
Executable file

#!/bin/sh
[[ -z $CC ]] && CC=gcc
[[ -z $CFLAGS ]] && CFLAGS="-I/usr/X11R6/include"
[[ -z $LDFLAGS ]] && LDFLAGS="-L/usr/X11R6/lib"
CHECK_XRENDER=0
CHECK_XCURSOR=0
CHECK_XPM=0
CHECK_IMLIB2=0
CHECK_PAM=0
CHECK_PASSWD=0
CHECK_HASH=1
prefix=/usr/local
##############################################################
msg_chkfor() {
echo -n "checking for "$1" ... "
}
check_docs() {
msg_chkfor "asciidoc"
if which asciidoc 1> /dev/null 2>&3
then
echo "ok."
echo "#_______________________" >&4
echo "WITH_DOCS=1" >&4
echo "" >&4
else
echo "no. you cant rebuild the docs."
fi
}
check_imlib2() {
msg_chkfor "imlib2-config"
if which imlib2-config 1> /dev/null 2>&3
then
echo "ok."
cat << EOF > tmp.c
#include <Imlib2.h>
int main() {
Imlib_Context ctx = NULL;
ctx = imlib_context_new();
return 0;
}
EOF
msg_chkfor "compile with imlib2"
if ${CC} -c tmp.c -o /dev/null `imlib2-config --cflags` 2>&3
then
echo "ok."
msg_chkfor "link with imlib2"
if ${CC} tmp.c -o /dev/null `imlib2-config --cflags` `imlib2-config --libs` 2>&3
then
echo "ok."
echo "#_______________________" >&4
echo "WITH_IMLIB2:=1" >&4
echo "CFLAGS_IMLIB2:=`imlib2-config --cflags`" >&4
echo "LIBS_IMLIB2:=`imlib2-config --libs`" >&4
echo "" >&4
else
echo "no."
echo "error, can't link against imlib2. check 'config.log' for possible"
echo "error messages. you can also call configure with specifying "
echo "special LDFLAGS."
exit 1
fi
else
echo "no."
echo "error, can't compile with imlib2 support. check 'config.log'"
echo "for further detailts."
exit 1
fi
else
echo "no."
fi
}
check_xrender() {
cat << EOF > tmp.c
#include <X11/Xlib.h>
#include <X11/extensions/Xrender.h>
int main() {
XRenderFindVisualFormat(NULL, NULL);
return 0;
}
EOF
msg_chkfor "Xrender.h"
if ${CC} ${CFLAGS} -c tmp.c -o /dev/null 2>&3
then
echo "ok."
msg_chkfor "libXrender"
if ${CC} ${CFLAGS} tmp.c -o /dev/null ${LDFLAGS} -lXrender 2>&3
then
echo "ok."
echo "#_______________________" >&4
echo "WITH_XRENDER:=1" >&4
echo "CFLAGS_XRENDER:=" >&4
echo "LDFLAGS_XRENDER:=-lXrender" >&4
echo "" >&4
else
echo "no."
exit 1
fi
else
echo "no."
exit 1
fi
}
check_xcursor() {
cat << EOF > tmp.c
#include <X11/Xlib.h>
#include <X11/Xcursor/Xcursor.h>
int main() {
XcursorFilenameLoadCursor(NULL, NULL);
return 0;
}
EOF
msg_chkfor "Xcursor.h"
if ${CC} ${CFLAGS} -c tmp.c -o /dev/null 2>&3
then
echo "ok."
msg_chkfor "libXcursor"
if ${CC} ${CFLAGS} tmp.c -o /dev/null ${LDFLAGS} -lXcursor 2>&3
then
echo "ok."
echo "#_______________________" >&4
echo "WITH_XCURSOR:=1" >&4
echo "CFLAGS_XCURSOR:=" >&4
echo "LDFLAGS_XCURSOR:=" >&4
echo "LIBS_XCURSOR:=-lXcursor" >&4
echo "" >&4
else
echo "no."
exit 1
fi
else
echo "no."
exit 1
fi
}
check_xlib() {
cat << EOF > tmp.c
#include <X11/Xlib.h>
int main() {
XOpenDisplay(NULL);
return 0;
}
EOF
msg_chkfor "Xlib.h"
if ${CC} ${CFLAGS} -c tmp.c -o /dev/null 2>&3
then
echo "ok."
msg_chkfor "Xlib"
if ${CC} ${CFLAGS} tmp.c -o /dev/null ${LDFLAGS} -lX11 2>&3
then
echo "ok."
echo "#_______________________" >&4
echo "LIBS += -lX11" >&4
echo "" >&4
else
echo "no."
echo "error: you need Xlibs to build alock."
exit 1
fi
else
echo "no."
echo "error: can't compile without Xlib.h header."
exit 1
fi
}
check_xlogo16() {
cat << EOF > tmp.c
#include <X11/bitmaps/xlogo16>
int main() {
return 0;
}
EOF
msg_chkfor "X11/bitmaps/xlogo16"
if ${CC} ${CFLAGS} -c tmp.c -o /dev/null 2>&3
then
echo "ok."
echo "#_______________________" >&4
echo "WITH_THEME:=1" >&4
echo "" >&4
else
echo "no."
echo "maybe you should install a package called 'xbitmaps'."
fi
}
check_xpm() {
cat << EOF > tmp.c
#include <X11/xpm.h>
int main() {
XpmReadFileToImage(NULL, NULL, NULL, NULL, NULL);
}
EOF
msg_chkfor "X11/xpm.h"
if ${CC} ${CFLAGS} -c tmp.c -o /dev/null 2>&3
then
echo "ok."
msg_chkfor "libXpm"
if ${CC} ${CFLAGS} tmp.c -o /dev/null ${LDFLAGS} -lXpm -lX11 2>&3
then
echo "ok."
echo "#_______________________" >&4
echo "WITH_XPM:=1" >&4
echo "LIBS_XPM:=-lXpm" >&4
echo "" >&4
else
echo "no."
exit 1
fi
else
echo "no."
echo "maybe you should install a package called 'xpm'."
exit 1
fi
}
check_hash() {
echo "configure for hash."
echo "#_______________________" >&4
echo "WITH_HASH:=1" >&4
echo "" >&4
}
check_pam() {
echo "configure for pam."
echo "#_______________________" >&4
echo "WITH_PAM:=1" >&4
echo "LIBS_PAM= -lpam -lpam_misc -lcrypt" >&4
echo "" >&4
}
check_passwd() {
echo "configure for passwd."
echo "#_______________________" >&4
echo "WITH_PASSWD:=1" >&4
echo "LIBS_PASSWD=-lcrypt" >&4
echo "" >&4
}
#############################################################################
while [ $# -gt 0 ]
do
case $1 in
--help)
cat <<EOF
Options for configure:
--prefix <prefix> where to install
--debug enable debug
--with(out)-xrender use Xrender
--with(out)-xcursor use Xcursor
--with(out)-imlib2 use imlib2
--with(out)-xpm use Xpm
--with(out)-pam use pam_login
--with(out)-passwd use /etc/passwd
--with(out)-hash use sha1,sha2 and md5 based passwords
--help shows usage of the configure script
EOF
exit 0
;;
--with-xrender|--enable-xrender) CHECK_XRENDER=1;;
--without-xrender|--disable-xrender) CHECK_XRENDER=0;;
--with-xcursor|--enable-xcursor) CHECK_XCURSOR=1;;
--without-xcursor|--disable-xcursor) CHECK_XCURSOR=0;;
--with-xpm|--enable-xpm) CHECK_XPM=1;;
--without-xpm|--disable-xpm) CHECK_XPM=0;;
--with-imlib2|--enable-imlib2) CHECK_IMLIB2=1;;
--without-imlib2|--disable-imlib2) CHECK_IMLIB2=0;;
--with-pam|--enable-pam) CHECK_PAM=1;;
--without-pam|--disable-pam) CHECK_PAM=0;;
--with-passwd|--enable-passwd) CHECK_PASSWD=1;;
--without-passwd|--disable-passwd) CHECK_PASSWD=0;;
--prefix)
shift
if [[ $# -gt 0 ]]
then
prefix=$1
else
echo "error, missing argument for -prefix."
exit 1
fi
;;
--debug)
CFLAGS="${CFLAGS} -g"
LDFLAGS="${LDFLAGS} -g"
;;
esac
shift
done
##############################################################
exec 3> config.log
exec 4> config.mk
echo "# alock's config.mk" >&4
echo "#_______________________" >&4
echo "VERSION=\\\"1.0\\\"" >&4
echo "prefix=$prefix" >&4
echo "CC=${CC}" >&4
echo "CFLAGS=${CFLAGS}" >&4
echo "LDFLAGS=${LDFLAGS}" >&4
echo "LIBS=${LIBS}" >&4
echo "#_______________________" >&4
echo "" >&4
check_docs
check_xlib
check_xlogo16
[[ $CHECK_XPM == 1 ]] && check_xpm
[[ $CHECK_XRENDER == 1 ]] && check_xrender
[[ $CHECK_XCURSOR == 1 ]] && check_xcursor
[[ $CHECK_IMLIB2 == 1 ]] && check_imlib2
[[ $CHECK_PAM == 1 ]] && check_pam
[[ $CHECK_PASSWD == 1 ]] && check_passwd
[[ $CHECK_HASH == 1 ]] && check_hash
echo "#_______________________" >&4
echo "" >&4
true
# vim:ft=sh