Codebase list hardinfo / debian/0.3.7pre-4 configure
debian/0.3.7pre-4

Tree @debian/0.3.7pre-4 (Download .tar.gz)

configure @debian/0.3.7pre-4raw · history · blame

#!/usr/bin/env bash
#
# ToscoConf 0.04
# Copyright (c) 2003-2004 Leandro Pereira <leandro@linuxmag.com.br>
# All rights reserved.
#
# This script is in the Tosco Public License. It may be copied and/or
# modified, in whole or in part, provided that all copies must retain the
# above copyright notice, this condition and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
#
# (yes, I did a copy&paste from the BSD license, eat me)
#
# ---------------------------------------------------------------------------
# Some defaults

DISABLE_NLS=0
IGNORE_LSPCI=0

# ---------------------------------------------------------------------------

PACKAGE=`basename ${PWD} | cut -d"-" -f1`;
VERSION=`basename ${PWD} | cut -d"-" -f2`;

echo "ToscoConf (version 0.04) for $PACKAGE version $VERSION"

# ---------------------------------------------------------------------------
# Damn-cool command line argument parsing. Yay.

while [ "$1" != "" ]; do
	case $1 in
		--disable-lspci)
			echo "Disabling lspci"
			IGNORE_LSPCI=1;;
		--disable-nls)
			echo "NLS disabled."
			DISABLE_NLS=1 ;;
		--help)
			echo ""
			echo " --disable-nls		Don't use i18n."
			echo " --disable-lspci		Disable lspci."
			echo ""
			echo " --help			This help screen."

			exit 1;;
		*)
			echo "Please use the --help switch."
			exit 1;;
	esac
	shift
done


# ---------------------------------------------------------------------------

echo -n "Running: "
OS=`uname`
echo -n $OS
case $OS in		
	Linux)
		echo -n " (OK) " ;;
	*)
		echo " (not supported, yet!)"
		exit ;;
esac	

PROC=`uname -m`
case $PROC in
	i?86)
		ARCH="ARCH_i386" ;;
	ppc)
		ARCH="ARCH_PPC" ;;
	x86_64)
		ARCH="ARCH_x86_64" ;;
	mips*)
		ARCH="ARCH_MIPS" ;;
	parisc*)
		ARCH="ARCH_PARISC" ;;
	ia64)
		ARCH="ARCH_IA64" ;;
	*)
		# uname -m on m68k doesn't return anything useful :/
		cat /proc/cpuinfo | grep "680?0" >/dev/null
		if [ "$?" == "0" ]; then
			ARCH="ARCH_m68k"
		else
			echo "Architeture \"$ARCH\" not supported." 
			exit
		fi

		;;
esac

echo "$PROC ($ARCH)"

# ---------------------------------------------------------------------------

echo -n "Checking for lspci... "
LSPCIPATH="`which lspci` /sbin/lspci /usr/sbin/lspci /bin/lspci /usr/bin/lspci"
for i in $LSPCIPATH; do
	if [ -x "$i" ]; then
		USE_LSPCI=1
		LSPCI=$i
		break;
	fi
done

if [ -e "$LSPCI" ]; then
	echo $LSPCI
else
	if [ -e "/proc/pci" ]; then
		echo "not found, will parse /proc/pci"
	else
		echo "no lspci, no /proc/pci..."
		echo "Are you sure you're running Linux?"
		exit
	fi
fi

if [ "$IGNORE_LSPCI" -eq 1 ]; then
	echo "Ignoring lspci (as requested)..."
	LSPCI=""
	USE_LSPCI=0
fi

# ---------------------------------------------------------------------------


GTK2=-1
MIN_VERSION="2.2.0"
echo -n "Checking for GTK ${MIN_VERSION}... "
for i in `which pkg-config`; do
	pkg-config --errors-to-stdout gtk+-2.0 \
		--atleast-version=$MIN_VERSION > /dev/null
	case $? in
		0)
			GTK_FLAGS=`pkg-config gtk+-2.0 --cflags`
			GTK_LIBS=`pkg-config gtk+-2.0 --libs`
			echo "OK (pkgconfig)"
			GTK2=1 ;;
		*)
			echo "not found." ;;
	esac
done

# If the user doesn't have GTK2, try to compile with GTK1.2 :)
# GTK 1.2 is no longer supported

# --------------------------------------------------------------------------

if [ $GTK2 -eq -1 ]; then
	echo -e "\nYou need the GTK libraries, including the development stuff."
	echo "If you're using Debian, running the command as root:"
	echo -e "\n\tapt-get install libgtk2.0-dev\n"
	echo "Will do the trick."
	exit
fi

# --------------------------------------------------------------------------

echo -e "\nWriting config.h..."
rm -f config.h
echo -e "#ifndef __CONFIG_H__\n#define __CONFIG_H__\n" > config.h

echo "#define VERSION \"$VERSION\"" >> config.h

if [ "$LSPCI" ]; then
	echo "#define USE_LSPCI" >> config.h
	echo "#define LSPCI \"$LSPCI -v\"" >> config.h
fi

echo "#define GTK2" >> config.h

if [ "$DISABLE_NLS" != "1" ]; then
	echo "#define ENABLE_NLS" >> config.h
fi

echo "#define $ARCH" >> config.h

echo "#define PLATFORM \"`uname`\"" >> config.h
echo "#define KERNEL   \"`uname -r`\"" >> config.h
echo "#define HOSTNAME \"`hostname`\"" >> config.h

echo -e "\n#endif	/* __CONFIG_H__ */" >> config.h

echo "Writing Makefile..."
rm -f Makefile
echo "TARGET = GTK2" > Makefile

echo "GTK_LIBS = ${GTK_LIBS}" >> Makefile
echo "GTK_CFLAGS = ${GTK_FLAGS}" >> Makefile
echo "PACKAGE = `basename ${PWD}`" >> Makefile

cat Makefile.in >> Makefile

echo -e "\nDone. Type \"make\" to compile the program.\n"
echo "If you get errors, probably you don't have the right libraries,"
echo "includes or utilities. However, if you're sure this is a bug in my"
echo -e "code, please send a patch (use \"diff -u\") to <leandro@linuxmag.com.br>.\n"