#!/usr/bin/env bash # # ToscoConf 0.04 # Copyright (c) 2003-2004 Leandro Pereira # 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 .\n"