summaryrefslogtreecommitdiff
path: root/cocoa/config
diff options
context:
space:
mode:
authorSven Weidauer <sven.weidauer@gmail.com>2011-01-12 22:07:27 +0000
committerSven Weidauer <sven.weidauer@gmail.com>2011-01-12 22:07:27 +0000
commit040922106491f061ba3bbff3fdbd6fe295ea8347 (patch)
tree27b7162788adf67ece29141fc73b165bea5cb0e4 /cocoa/config
parent9e317534205df240dbc31fafa80d226106e47122 (diff)
downloadnetsurf-040922106491f061ba3bbff3fdbd6fe295ea8347.tar.gz
netsurf-040922106491f061ba3bbff3fdbd6fe295ea8347.tar.bz2
Changed project file to use .xcconfig files and added shell script (config/detect.sh) to auto-generate local config file using pkg-config
svn path=/trunk/netsurf/; revision=11295
Diffstat (limited to 'cocoa/config')
-rw-r--r--cocoa/config/NetSurf.xcconfig15
-rw-r--r--cocoa/config/common.xcconfig9
-rw-r--r--cocoa/config/debug.xcconfig7
-rwxr-xr-xcocoa/config/detect.sh155
-rw-r--r--cocoa/config/release.xcconfig3
5 files changed, 189 insertions, 0 deletions
diff --git a/cocoa/config/NetSurf.xcconfig b/cocoa/config/NetSurf.xcconfig
new file mode 100644
index 000000000..144c8d74a
--- /dev/null
+++ b/cocoa/config/NetSurf.xcconfig
@@ -0,0 +1,15 @@
+INSTALL_PATH = $(HOME)/Applications
+INFOPLIST_FILE = res/NetSurf-Info.plist
+GCC_PREFIX_HEADER = Prefix.pch
+GCC_PRECOMPILE_PREFIX_HEADER = YES
+GCC_MODEL_TUNING = G5
+ALWAYS_SEARCH_USER_PATHS = NO
+PRODUCT_NAME = NetSurf
+
+LOCAL_CONFIG_CFLAGS = -I/usr/local/include -I/usr/include/libxml2
+LOCAL_CONFIG_LDFLAGS = -L/usr/local/lib -lxml2 -lz -lpthread -licucore -lm -lssl -lhubbub -lcss -lcrypto -lparserutils -lwapcaplet -liconv -lcurl
+
+#include "local.xcconfig"
+
+OTHER_LDFLAGS = $(inherited) $(LOCAL_CONFIG_LDFLAGS)
+OTHER_CFLAGS = $(inherited) $(LOCAL_CONFIG_CFLAGS)
diff --git a/cocoa/config/common.xcconfig b/cocoa/config/common.xcconfig
new file mode 100644
index 000000000..b45951b79
--- /dev/null
+++ b/cocoa/config/common.xcconfig
@@ -0,0 +1,9 @@
+ARCHS = $(ARCHS_STANDARD_32_64_BIT)
+SDKROOT = macosx10.5
+GCC_VERSION =
+OTHER_LDFLAGS =
+PREBINDING = NO
+HEADER_SEARCH_PATHS = ${SRCROOT}/../
+GCC_C_LANGUAGE_STANDARD = gnu99
+GCC_WARN_ABOUT_RETURN_TYPE = YES
+GCC_WARN_UNUSED_VARIABLE = YES
diff --git a/cocoa/config/debug.xcconfig b/cocoa/config/debug.xcconfig
new file mode 100644
index 000000000..82504178e
--- /dev/null
+++ b/cocoa/config/debug.xcconfig
@@ -0,0 +1,7 @@
+#include "common.xcconfig"
+
+ONLY_ACTIVE_ARCH = YES
+GCC_OPTIMIZATION_LEVEL = 0
+COPY_PHASE_STRIP = NO
+GCC_ENABLE_FIX_AND_CONTINUE = YES
+GCC_DYNAMIC_NO_PIC = NO
diff --git a/cocoa/config/detect.sh b/cocoa/config/detect.sh
new file mode 100755
index 000000000..48226615a
--- /dev/null
+++ b/cocoa/config/detect.sh
@@ -0,0 +1,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
diff --git a/cocoa/config/release.xcconfig b/cocoa/config/release.xcconfig
new file mode 100644
index 000000000..efcded046
--- /dev/null
+++ b/cocoa/config/release.xcconfig
@@ -0,0 +1,3 @@
+#include "common.xcconfig"
+
+DEBUG_INFORMATION_FORMAT = dwarf-with-dsym