#!/bin/sh
#set at least compiler
CC=gcc
SYSNAME=
SOCK_FLAGS=
MAKEFILE=makefile
PTHREAD_LIB=
STRING_LIB=
#DEBUG="-g -Wall -save-temps -DDEBUG"
DEBUG=
#DEBUG=-DDEBUG
echo Guessing system type.....................
case `uname -s` in
'Linux')
echo Guessed OS: Linux
echo If guess is wrong, please manually set it. Will be fixed later.
SYSNAME=linux
PTHREAD_LIB=-lpthread
SOCK_FLAGS=""
;;
'SunOS')
echo Guessed OS: SunOS
echo If guess is wrong, please manually set it. Will be fixed later.
SYSNAME=sunos
SOCK_FLAGS="-lnsl -lsocket"
PTHREAD_LIB=-lpthread
STRING_LIB="-DSTRINGS_H"
;;
'FreeBSD')
echo Guessed OS: FreeBSD
echo If guess is wrong, please manually set it. Will be fixed later.
SYSNAME=freebsd
SOCK_FLAGS=""
echo FreeBSD links pthread libraries by -pthread, not -lpthread.
PTHREAD_LIB=-pthread
STRING_LIB=""
;;
*)
echo OS Type not supported '('apparently')'
echo Please change this file manually if you feel that this program may still sompile on your machine. Will be fixed later.
exit
;;
esac
echo Searching for compatible components ............
echo 'Searching for inet_ntop()'
echo ' char inet_ntop(); int main(){ inet_ntop(); return 0;} ' > mgettmp.c
$CC $SOCK_FLAGS -o mgettmp mgettmp.c 2>/dev/null;
if test -s mgettmp;
then
HAS_INET_NTOP='-DHAVE_INET_NTOP';
else
HAS_INET_NTOP='';
fi;
rm -rf mgettmp*
echo 'Searching for herror()'
echo ' char herror(); int main(){ herror();return 0;} ' > mgettmp.c
$CC $SOCK_LDFLAGS -o mgettmp mgettmp.c 2>/dev/null;
if test -s mgettmp;
then
HAS_HERROR='-DHAS_HERROR';
else HAS_HERROR='';
fi;
rm -rf mgettmp*
echo 'Searching for getopt_long()'
echo ' char getopt_long(); int main(){ getopt_long();return 0;} ' > mgettmp.c
$CC -o mgettmp mgettmp.c 2>/dev/null;
if test -s mgettmp;
then
HAS_GETOPT='-DHAVE_GETOPT_LONG';
else HAS_GETOPT='';
fi;
rm -rf mgettmp*
if [ -z "$HAS_GETOPT" ]
then
echo 'Searching for getopt() in getopt.h'
echo " #include <getopt.h>" > mgettmp.c
echo "int main(){ return 0;} " >> mgettmp.c
$CC -o mgettmp mgettmp.c 2>/dev/null;
if test -s mgettmp;
then
HAS_GETOPT=-DHAVE_GETOPT_GETOPT_H;
else HAS_GETOPT='' ;
fi;
rm -rf mgettmp*
fi
if [ -z "$HAS_GETOPT" ]
then
echo "Searching for getopt() in stdlib"
echo ' #include <stdlib.h>' >mgettmp.c
echo 'int main(){ getopt(0,NULL,NULL);return 0;} ' >> mgettmp.c
$CC -o mgettmp mgettmp.c 2>/dev/null;
if test -s mgettmp;
then
HAS_GETOPT=-DHAVE_GETOPT_STDLIB_H;
else HAS_GETOPT='' ;
fi;
rm -rf mgettmp*
fi
rm -rf $MAKEFILE; touch $MAKEFILE
echo "CC=$CC" >> $MAKEFILE
echo "SOCK_FLAGS=$SOCK_FLAGS" >> $MAKEFILE
echo "DEBUG=$DEBUG" >> $MAKEFILE
echo "HAS_HERROR=$HAS_HERROR" >> $MAKEFILE
echo "HAS_GETOPT=$HAS_GETOPT" >> $MAKEFILE
echo "HAS_INET_NTOP=$HAS_INET_NTOP" >> $MAKEFILE
echo "STRING_LIB=$STRING_LIB" >> $MAKEFILE
echo "PTHREAD_LIB=$PTHREAD_LIB" >> $MAKEFILE
echo 'DEFS=$(HAS_HERROR) $(HAS_GETOPT) $(HAS_INET_NTOP) $(STRING_LIB)' >> $MAKEFILE
echo 'CFLAGS=$(DEFS) $(DEBUG)' >> $MAKEFILE
echo 'LDFLAGS=$(PTHREAD_LIB) $(SOCK_FLAGS)' >> $MAKEFILE
cat >> $MAKEFILE <<EOF
mget: mget.o mgetutil.o http_connect.o
mget.o: mget.h common.h
mgetutil.o: mgetutil.h common.h
http_connect.o:http_connect.h common.h
clean:
rm -rf *.o
EOF
echo Cleaning previous object files....
make clean
echo $MAKEFILE generation over. Please manually see if it is all right.
syntax highlighted by Code2HTML, v. 0.9.1