| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #!/bin/bash
- confile=hconfig.h
- # start confile
- cat << END > $confile
- #ifndef HV_CONFIG_H_
- #define HV_CONFIG_H_
- END
- # Checks for compiler
- echo "checking for compiler..."
- if [ $CROSS_COMPILE ]; then
- CC=${CROSS_COMPILE}gcc
- CXX=${CROSS_COMPILE}g++
- fi
- if [ ! $CC ]; then
- CC=gcc
- CXX=g++
- fi
- CC_VERSION=`$CC --version 2>&1 | head -n 1`
- echo "CC = $CC"
- echo "CXX = $CXX"
- echo "$CC_VERSION"
- # shell functions
- write_define() {
- cat << END >> hconfig.h
- #ifndef $macro
- #define $macro $value
- #endif
- END
- }
- mkdir tmp 2>/dev/null
- check_header() {
- echo -n "checking for $header... "
- rm tmp/check 2>/dev/null
- cat << END > tmp/check.c
- #include <$header>
- int main() {
- return 0;
- }
- END
- $CC -o tmp/check tmp/check.c 2>/dev/null
- if [ -x tmp/check ]; then
- value=1
- echo "yes"
- else
- value=0
- echo "no"
- fi
- macro=HAVE_$(echo $header | tr a-z./ A-Z__)
- write_define
- }
- check_function() {
- echo -n "checking for $function... "
- rm tmp/check 2>/dev/null
- cat << END > tmp/check.c
- #include <$header>
- int $function(void** pp) {return 0;}
- int main() {
- void* p;
- return $function(&p);
- }
- END
- $CC -o tmp/check tmp/check.c 2>/dev/null
- if [ -x tmp/check ]; then
- value=0
- echo "no"
- else
- value=1
- echo "yes"
- fi
- macro=HAVE_$(echo $function | tr a-z A-Z)
- write_define
- }
- # Checks for os
- echo "checking for os..."
- HOST_OS=`uname -s`
- HOST_ARCH=`uname -m`
- TARGET_PLATFORM=`$CC -v 2>&1 | grep Target | sed 's/Target: //'`
- TARGET_ARCH=`echo $TARGET_PLATFORM | awk -F'-' '{print $1}'`
- case $TARGET_PLATFORM in
- *mingw*) TARGET_OS=Windows ;;
- *android*) TARGET_OS=Android ;;
- *darwin*) TARGET_OS=Darwin ;;
- *) TARGET_OS=Linux ;;
- esac
- echo "HOST_OS = $HOST_OS"
- echo "HOST_ARCH = $HOST_ARCH"
- echo "TARGET_PLATFORM = $TARGET_PLATFORM"
- echo "TARGET_OS = $TARGET_OS"
- echo "TARGET_ARCH = $TARGET_ARCH"
- # Checks for programs
- # Checks for libraries
- # Checks for header files
- header=stdbool.h && check_header
- header=stdint.h && check_header
- header=sys/types.h && check_header
- header=sys/stat.h && check_header
- header=sys/time.h && check_header
- header=fcntl.h && check_header
- header=pthread.h && check_header
- # Checks for functions
- function=gettid && header=unistd.h && check_function
- function=strlcpy && header=string.h && check_function
- function=strlcat && header=string.h && check_function
- function=clock_gettime && header=time.h && check_function
- function=gettimeofday && header=sys/time.h && check_function
- function=pthread_spin_lock && header=pthread.h && check_function
- function=pthread_mutex_timedlock && header=pthread.h && check_function
- function=sem_timedwait && header=semaphore.h && check_function
- # end confile
- cat << END >> $confile
- #endif // HV_CONFIG_H_
- END
- echo "configure done."
|