Implements a Proxy detection (WPAD) interface for Linux, Mac OSX and Windows. Offers a GUI for manual proxy settings and automatic WPAD detection. The GUI is based on QT.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

322 lines
8.7 KiB

#! /bin/bash
16 years ago
## @file
##
## $Id$
##
## $Date: 2004/08/31 15:57:19 $
## $Author: marc $
##
## @copy © Marc Wäckerlin
## @license LGPL, see file <a href="license.html">COPYING</a>
##
## $Log: bootstrap.sh,v $
## Revision 1.3 2004/08/31 15:57:19 marc
## added file header
##
configure=0
while test $# -gt 0; do
case "$1" in
(--configure|-c) configure=1;;
(*) break;;
esac
shift;
done
MY_NAME=${0##*/}
PROJECT_PATH=$(pwd)
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
HEADER='## @id $Id$
#
# This file has been added by '${MY_NAME}' on '$(date -R)'
# Feel free to change it or even remove and rebuild it, up to your needs
#
## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
'
run() {
check=1
while test $# -gt 0; do
case "$1" in
(--no-check) check=0;;
(*) break;;
esac
shift;
done
echo -en "\e[1m-> running:\e[0m $* ..."
result=$($* 2>&1)
res=$?
if test $res -ne 0; then
if test $check -eq 1; then
echo -e " \e[31merror\e[0m"
echo -e "\e[1m*** Failed with return code: $res\e[0m"
if test -n "$result"; then
echo "$result"
fi
exit 1
else
echo -e " \e[33mignored\e[0m"
fi
else
echo -e " \e[32msuccess\e[0m"
fi
}
testtag() {
egrep -q '^ *'"$1" configure.ac
}
checkdir() {
if ! test -d "$1"; then # create path
run mkdir -p "$1"
run svn add "$1"
fi
}
to() {
while test $# -gt 0; do
case "$1" in
(--condition) shift # test for a tag, abort if not set
if ! testtag "$1" configure.ac; then
return
fi;;
(*) break;;
esac
shift;
done
if test -f "$1"; then # file already exists
return
fi
checkdir "$(dirname ${1})"
echo -en "\e[1m-> generating:\e[0m $1 ..."
result=$(cat > "$1" 2>&1)
res=$?
if test $res -ne 0; then
echo -e " \e[31merror\e[0m"
echo -e "\e[1m*** Failed with return code: $res\e[0m"
if test -n "$result"; then
echo "$result"
fi
exit 1
else
echo -e " \e[32msuccess\e[0m"
fi
run svn add "$1"
run svn propset svn:keywords "Id" "$1"
}
copy() {
if ! test -f "$1"; then
run cp "${0%/*}/$1" "$1"
run svn add "$1"
run svn propset svn:keywords "Id" "$1"
fi
}
doxyreplace() {
echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..."
if sed -i 's|\(^'"$1"' *=\) *|\1'" $2"'|g' doc/doxyfile.in; then
echo -e " \e[32msuccess\e[0m"
else
echo -e " \e[31merror\e[0m"
echo -e "\e[1m**** command: sed -i 's|\(^'"$1"' *=\) *|\1'" $2"'|g' doc/doxyfile.in;\e[0m"
exit 1
fi
}
# Initialize the environment:
copy ${MY_NAME}
copy ax_init_standard_project.m4
copy ax_cxx_compile_stdcxx_11.m4
copy ax_check_qt.m4
copy AUTHORS
if ! test -f configure.ac; then
to configure.ac <<EOF
${HEADER}m4_define(x_package_name, ${DEFAULT_PROJECT_NAME}) # project's name
m4_define(x_major, 0) # project's major version
m4_define(x_minor, 0) # project's minor version
m4_include(ax_init_standard_project.m4)
AC_INIT(x_package_name, x_major.x_minor.x_least, x_bugreport, x_package_name)
AM_INIT_AUTOMAKE([1.9 tar-pax])
AX_INIT_STANDARD_PROJECT
# requirements, uncomment, what you need:
#AX_USE_CXX
#AX_USE_LIBTOOL
#AX_USE_DOXYGEN
#AX_USE_DEBIAN_PACKAGING
#AX_USE_RPM_PACKAGING
#AX_USE_CPPUNIT
#AX_BUILD_EXAMPLES
# create output
AC_OUTPUT
EOF
echo "please edit configure.ac, then rerun $0"
exit 0
fi
PACKAGE_NAME=$(sed -n 's/.*m4_define *( *x_package_name *, *\([^ ]*\) *).*/\1/p' configure.ac)
echo "${HEADER}" | to --condition AX_USE_CXX src/makefile.am
echo "${HEADER}" | to --condition AX_USE_DOXYGEN doc/makefile.am
to --condition AX_USE_CPPUNIT test/makefile.am <<EOF
${HEADER}AM_CPPFLAGS = -I${top_srcdir}/src -I${top_builddir}/src
AM_LDFLAGS = -L${top_builddir}/src/.libs
LDADD = -l${PACKAGE_NAME}
EOF
to --condition AX_BUILD_EXAMPLES examples/makefile.am <<EOF
${HEADER}AM_CPPFLAGS = -I${top_srcdir}/src -I${top_builddir}/src
AM_LDFLAGS = -L${top_builddir}/src/.libs
LDADD = -l${PACKAGE_NAME}
EOF
if testtag AX_USE_DOXYGEN && ! test -f doc/doxyfile.in; then
run doxygen -g doc/doxyfile.in
run svn add doc/doxyfile.in
run svn propset svn:keywords "Id" doc/doxyfile.in
doxyreplace PROJECT_NAME "@PACKAGE_NAME@"
doxyreplace PROJECT_NUMBER "@PACKAGE_VERSION@"
doxyreplace PROJECT_BRIEF "@DESCRIPTION@"
doxyreplace PROJECT_LOGO "@PROJECT_LOGO@"
doxyreplace INLINE_INHERITED_MEMB YES
doxyreplace MULTILINE_CPP_IS_BRIEF YES
doxyreplace TAB_SIZE 2
doxyreplace ALIASES '"id=\par File-ID\n" "copy=\par Copyright\n" "license=\par License\n" "classmutex=\par Reentrant:\nAccess is locked with class static mutex @c " "instancemutex=\par Reentrant:\nAccess is locked with per instance mutex @c " "mutex=\par Reentrant:\nAccess is locked with mutex @c "'
doxyreplace BUILTIN_STL_SUPPORT YES
doxyreplace DISTRIBUTE_GROUP_DOC YES
doxyreplace EXTRACT_ALL YES
doxyreplace EXTRACT_PRIVATE YES
doxyreplace EXTRACT_STATIC YES
doxyreplace EXTRACT_LOCAL_CLASSES YES
doxyreplace EXTRACT_LOCAL_METHODS YES
doxyreplace EXTRACT_ANON_NSPACES YES
doxyreplace SORT_MEMBERS_CTORS_1ST YES
doxyreplace WARN_IF_UNDOCUMENTED NO
doxyreplace WARN_LOGFILE doxygen.errors
doxyreplace INPUT "@top_srcdir@/src"
doxyreplace RECURSIVE YES
doxyreplace EXCLUDE_PATTERNS "moc_* uic_* qrc_*"
if testtag AX_BUILD_EXAMPLES; then
doxyreplace EXAMPLE_PATH @top_srcdir@/examples
fi
doxyreplace EXAMPLE_RECURSIVE YES
doxyreplace SOURCE_BROWSER YES
doxyreplace INLINE_SOURCES YES
doxyreplace GENERATE_TREEVIEW NO
doxyreplace SEARCHENGINE YES
doxyreplace GENERATE_HTML YES
doxyreplace GENERATE_LATEX NO
doxyreplace LATEX_BATCHMODE YES
doxyreplace LATEX_HIDE_INDICES YES
doxyreplace COMPACT_RTF YES
doxyreplace RTF_HYPERLINKS YES
doxyreplace GENERATE_TAGFILE "@PACKAGE_NAME@.doxytag"
doxyreplace HIDE_UNDOC_RELATIONS NO
doxyreplace HAVE_DOT YES
doxyreplace CLASS_GRAPH YES
doxyreplace TEMPLATE_RELATIONS YES
doxyreplace DOT_IMAGE_FORMAT svg
doxyreplace INTERACTIVE_SVG YES
doxyreplace DOT_TRANSPARENT YES
fi
if testtag AX_USE_DEBIAN_PACKAGING; then
checkdir debian
to debian/changelog.in <<EOF
@PACKAGE@ (@PACKAGE_VERSION@~@DISTRO@.@BUILD_NUMBER@) @DISTRO@; urgency=low
* Please see ChangeLog of @PACKAGE@
-- @AUTHOR@ @BUILD_DATE@
EOF
to debian/control.in <<EOF
Source: @PACKAGE_NAME@
Priority: extra
Maintainer: @AUTHOR@
Build-Depends: debhelper, pkg-config, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CXX_CHECK_QT; then echo -n ", qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools"; fi)
Package: @PACKAGE_NAME@
$(if testtag AX_USE_LIBTOOL; then echo "Section: libs"; fi)
Architecture: any
Depends: \${shlibs:Depends}, \${misc:Depends}
Description: @DESCRIPTION@
@README_DEB@
$( if testtag AX_USE_LIBTOOL; then
cat <<EOF2
Package: @PACKAGE_NAME@-dev
Section: libdevel
Architecture: any
Depends: @PACKAGE_NAME@ (= \${binary:Version})
Description: @DESCRIPTION@ - Development Package
@README_DEB@
EOF2
fi)
EOF
to debian/docs <<EOF
NEWS
README
EOF
to debian/${PACKAGE_NAME}.install <<EOF
usr/bin/*
usr/lib/lib*.so.*
EOF
to debian/${PACKAGE_NAME}.dirs <<EOF
usr/lib
EOF
if testtag AX_USE_LIBTOOL; then
to debian/${PACKAGE_NAME}-dev.install <<EOF
usr/include/*
usr/lib/lib*.a
usr/lib/lib*.so
usr/lib/pkgconfig/*
usr/lib/*.la
EOF
to debian/${PACKAGE_NAME}-dev.dirs <<EOF
usr/lib
usr/include
EOF
fi
to debian/rules <<EOF
${HEADER}%:
dh \$@
EOF
echo 7 | to debian/compat
fi
if ! test -f makefile.am; then
SUBDIRS=""
for d in src test doc examples; do
test -d $d && SUBDIRS="${SUBDIRS} $d"
done
echo "${HEADER}SUBDIRS =${SUBDIRS}" | to makefile.am
fi
to --condition AX_USE_LIBTOOL src/${PACKAGE_NAME}.pc.in <<EOF
${HEADER}prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: @PACKAGE_NAME@
Description: @DESCRIPTION@
Version: @VERSION@
Libs: -L${libdir} -l@PACKAGE_NAME@ @LDFLAGS@
Cflags: -I${includedir} @CPPFLAGS@
EOF
#### Cleanup If Makefile Exists ####
if test -f makefile; then
run --no-check make distclean
fi
#### Bootstrap Before Configure ####
run aclocal
run libtoolize --force
run automake -a
run autoconf
#### Run Configure If User Requires ####
if test "$configure" -eq 1; then
./configure $*
fi