#!/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