summaryrefslogtreecommitdiff
path: root/cocoa/config/detect.sh
blob: 48226615ad30e4f280aa27deada3f7cc53db752b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#!/bin/sh

check_pkgconfig() {
	if ! which pkg-config > /dev/null 
	then
		echo "Error: install pkg-config (and make sure its in your path)" 1>&2
		exit 1
	fi
}

CFLAGS=()
LDFLAGS=()
OPTIONS=()

add_cflags() {
	CFLAGS=("${CFLAGS[@]}" "$@")
}

add_ldflags() {
	LDFLAGS=("${LDFLAGS[@]}" "$@")
}

package() {
    if ! pkg-config $1
    then
     	return 1
    else
     	add_cflags `pkg-config --cflags $1`
     	add_ldflags `pkg-config --libs $1`
	
     	return 0
	fi
}


check_required() {
	if ! package $1
	then
		echo "Error: package '$1' is required" 1>&2
		exit 1
	fi
	return 0
}

check_required_tool() {
  if ! $1 --version > /dev/null
  then
    echo "Error: package '$2' is required" 1>&2
    exit 1
  fi
  
  add_cflags `$1 --cflags`
  add_ldflags `$1 --libs`

  return 0
}

check_optional() {
	if package $2
	then
		add_cflags -D$3
		OPTIONS=("${OPTIONS[@]}" "$1")
		return 0
	else
     	return 1
	fi
}

help() {
  echo "options:"
  echo "   --with-jpeg=<prefix>       Use libjpeg found at <prefix>"
  echo "   --with-mng=<prefiy>        Use libmng found at <prefix>"
  echo "" 
 exit 0
}


parse_cmdline() {
  while test -n "$1" ; do
    case "$1" in
      --help|-h)
	  	echo "configure script for cocoa netsurf"
        help
        exit 0
      ;;
      
      --with-*=*)
        name=`expr "$1" : '--with-\(.*\)=.*'`
        value=`expr "$1" : '--with-.*=\(.*\)'`
        eval "USE_$name='$value'"
      ;;
      
      *)
        echo "Error: invalid argument '$1'" 1>&2
        help 1>&2
        exit 1
      ;;
      
    esac
    shift
  done
}

manual_config() {
  var="USE_$1"
  PREFIX=${!var}
	if test -n "$PREFIX" ; then
		OPTIONS=("${OPTIONS[@]}" "$1")
		add_cflags -D$2 "-I$PREFIX/include"
		add_ldflags "-L$PREFIX/lib" "-l$3"
	fi
}

parse_cmdline "$@"

check_pkgconfig

# Required libraries
check_required libhubbub
check_required libcss
check_required libparserutils
check_required libwapcaplet
check_required libcurl
check_required openssl
check_required_tool xml2-config libxml2

# Optional libraries
check_optional gif libnsgif WITH_GIF 
check_optional bmp libnsbmp WITH_BMP
check_optional rsvg librsvg-2.0 WITH_RSVG
check_optional svgtiny libsvgtiny WITH_NS_SVG
check_optional rosprite librosprite WITH_NSSPRITE


# Optional libraries witout pkg-config information
manual_config jpeg WITH_JPEG jpeg
manual_config mng WITH_MNG mng

# OS X provides libpng in /usr/X11
add_cflags -DWITH_PNG -I/usr/X11/include
add_ldflags -L/usr/X11/lib -lpng

# OS X provides libiconv
add_ldflags -liconv

##
#	Generate config file

cat << EOF > local.xcconfig
// Local configuration generated on `hostname` at `date`
// Activated options: ${OPTIONS[@]}

LOCAL_CONFIG_CFLAGS=${CFLAGS[@]}
LOCAL_CONFIG_LDFLAGS=${LDFLAGS[@]}
EOF