#! /bin/sh
# simon@kde.org

src=$1
dst=$2

path="`echo "$PATH" | sed -e "s/\:/ /g"`"
find=""
for i in $path; do
  if test -x "$i/gfind"; then
    find="$i/gfind"
    break
  fi  
  if test -x "$i/find"; then
    find="$i/find"
    break 
  fi
done
 
if test -z "$find"; then
  echo "I need GNU find!"
  exit 1
fi    

cp_pr="cp -pr"

echo "*** preparing kde sources (from $src into $dst) ..."

if test ! -x $src; then
	echo "Cannot find kde (kdelibs) sources. Make sure they can be found"
	echo "at the same level as this module (like ../kdelibs) or set the"
	echo "KDESRC environment variable to the directory which contains the"
	echo "kdelibs directory."
	exit 255
fi

# starting with kdecore stuff

# extract KDE versioning string, for user agent
grep KDE_VERSION_STRING $src/kdecore/kapp.h | head -1 > $dst/kdecore/kdeversion.h

cp -p $src/kdecore/kurl.{cpp,h} $dst/kdecore/

cp -p $src/kdecore/krfcdate.{cpp,h} $dst/kdecore/

cp -p $src/kdecore/kdatastream.h $dst/kdecore/

cp -p $src/kdecore/ksock.{cpp,h} $dst/kdecore/

cp -p $src/kdecore/ksockaddr.{cpp,h} $dst/kdecore/

cp -p $src/kdecore/netsupp.{cpp,h} $dst/kdecore/

cp -p $src/kdecore/kextsock.{cpp,h} $dst/kdecore/

cp -p $src/kdecore/kextsocklookup.h $dst/kdecore/

cp -p $src/kdecore/kasyncio.h $dst/kdecore/

cp -p $src/kdecore/kbufferedio.{cpp,h} $dst/kdecore/

cp -p $src/kdecore/kcharsets.{cpp,h} $dst/kdecore/

cp -p $src/kdecore/kentities.c $dst/kdecore

cp -p $src/kdecore/ksharedptr.h $dst/kdecore

cp -p $src/kdecore/kstddirs.{cpp,h} $dst/kdecore

cp -p $src/kdecore/ktempfile.{cpp,h} $dst/kdecore

cp -p $src/kdecore/ksavefile.{cpp,h} $dst/kdecore

cp -p $src/kdecore/charsets.config $dst/kdecore/charsets

cp -p $src/kdecore/kmdcodec.{cpp,h} $dst/kdecore

# let's move over Waldo's KCookieJar

cp -p $src/kio/http/kcookiejar/kcookie*.{cpp,h} $dst/kio/http/kcookiejar/

# now the http ioslave

cp -p $src/kio/http/*.{cpp,cc,h} $dst/kio/http/

cp -p $src/kio/http/http_cache_cleaner.cpp $dst/kio/http/

perl -pi -e "s,main\(,http_cache_cleaner_main\(," $dst/kio/http/http_cache_cleaner.cpp

perl -pi -e "s,kdemain\(,http_kdemain\(,g" $dst/kio/http/http.cc

# some more kio stuff

cp -p $src/kio/slaveconfig.h $dst/kio

cp -p $src/kio/global.h $dst/kio

cp -p $src/kio/slaveinterface.{cpp,h} $dst/kio

cp -p $src/kio/connection.{cpp,h} $dst/kio

cp -p $src/kio/authinfo.{cpp,h} $dst/kio

cp -p $src/kio/http_slave_defaults.h $dst/kio

cp -p $src/kio/ioslave_defaults.h $dst/kio

cp -p $src/kio/tcpslavebase.{cpp,h} $dst/kio

cp -p $src/kio/ftp/ftp.{cc,h} $dst/kio

perl -pi -e "s,kdemain\(,ftp_kdemain\(,g" $dst/kio/ftp.cc

# Harri's javascript

cp -p $src/kjs/*.{cpp,h} $dst/kjs

cp -p $src/kjs/README $dst/kjs

cp -p $src/kjs/THANKS $dst/kjs

cp -p $src/kjs/configure.in.in $dst/kjs

# we need the partmanager and some other stuff from kparts

cp -p $src/kparts/partmanager.{cpp,h} $dst/kparts

cp -p $src/kparts/event.{cpp,h} $dst/kparts

cp -p $src/kparts/browserextension.{cpp,h} $dst/kparts

cp -p $src/kparts/factory.{cpp,h} $dst/kparts

# now let's get the big baby :-)

cp -p $src/khtml/*.{cpp,h,cc} $dst/khtml/

rm $dst/khtml/khtml_ext.*
rm $dst/khtml/khtml_find.*
rm $dst/khtml/khtml_run.*

mkdir -p $dst/khtml/rendering
mkdir -p $dst/khtml/html
mkdir -p $dst/khtml/dom
mkdir -p $dst/khtml/xml
mkdir -p $dst/khtml/css
mkdir -p $dst/khtml/ecma
mkdir -p $dst/khtml/misc

cp -p $src/khtml/rendering/*.{cpp,h} $dst/khtml/rendering/

cp -p $src/khtml/html/*.{cpp,h} $dst/khtml/html/

cp -p $src/khtml/dom/*.{cpp,h} $dst/khtml/dom/

cp -p $src/khtml/xml/*.{cpp,h} $dst/khtml/xml/

cp -p $src/khtml/css/*.{cpp,h} $dst/khtml/css/
cp -p $src/khtml/css/*.c $dst/khtml/css/

cp -p $src/khtml/css/html4.css $dst/khtml/css

cp -p $src/khtml/ecma/*.{cpp,h} $dst/khtml/ecma/

cp -p $src/khtml/misc/*.{cpp,h} $dst/khtml/misc/
cp -p $src/khtml/misc/*.c $dst/khtml/misc/

cp -p $src/khtml/rendering/Makefile.am $dst/khtml/rendering/
cp -p $src/khtml/html/Makefile.am $dst/khtml/html/
cp -p $src/khtml/dom/Makefile.am $dst/khtml/dom/
cp -p $src/khtml/xml/Makefile.am $dst/khtml/xml/
cp -p $src/khtml/css/Makefile.am $dst/khtml/css/
cp -p $src/khtml/ecma/Makefile.am $dst/khtml/ecma/
cp -p $src/khtml/misc/Makefile.am $dst/khtml/misc/

# don't forget KSSL :)
cp -p $src/kssl/kssl.{cc,h} $dst/kssl
cp -p $src/kssl/ksslcertificatehome.{cc,h} $dst/kssl
cp -p $src/kssl/ksslsettings.{cc,h} $dst/kssl
cp -p $src/kssl/ksslcertificate.{cc,h} $dst/kssl
cp -p $src/kssl/ksslconnectioninfo.{cc,h} $dst/kssl
cp -p $src/kssl/ksslcertificatefactory.{cc,h} $dst/kssl
cp -p $src/kssl/ksslcertificatecache.{cc,h} $dst/kssl
cp -p $src/kssl/ksslpeerinfo.{cc,h} $dst/kssl
cp -p $src/kssl/ksslcertdlg.{cc,h} $dst/kssl
cp -p $src/kssl/ksslutils.{cc,h} $dst/kssl
cp -p $src/kssl/ksslcertchain.{cc,h} $dst/kssl
cp -p $src/kssl/ksslx509map.{cc,h} $dst/kssl
cp -p $src/kssl/ksslpkcs12.{cc,h} $dst/kssl
cp -p $src/kssl/kopenssl.{cc,h} $dst/kssl
cp -p $src/kssl/ksslcallback.c $dst/kssl
cp -p $src/kssl/kssldefs.h $dst/kssl
cp -p $src/kssl/ksslall.h $dst/kssl
cp -p $src/kio/kssld/kssld.{cpp,h} $dst/kssl

$cp_pr $src/kssl/kssl $dst/kssl

for i in ./kdesrc/khtml/rendering/Makefile.am \
	 ./kdesrc/khtml/html/Makefile.am \
	 ./kdesrc/khtml/dom/Makefile.am \
 	 ./kdesrc/khtml/xml/Makefile.am \
	 ./kdesrc/khtml/misc/Makefile.am \
	 ./kdesrc/khtml/ecma/Makefile.am \
	 ./kdesrc/khtml/css/Makefile.am ; do
    perl -pi -e "s,\\$\(all_includes\),-I\\$\(srcdir\)/../../../dropin -I\\$\(srcdir\)/../../kdecore -I\\$\(srcdir\)/../.. -I\\$\(srcdir\)/.. -I\\$\(srcdir\)/../misc -I\\$\(srcdir\)/../misc -I\\$\(srcdir\)/../css -I\\$\(srcdir\)/../dom -I\\$\(srcdir\)/../xml -I\\$\(srcdir\)/../html -I\\$\(srcdir\)/../../../dropin/kio -I\\$\(srcdir\)/../../kjs -I\\$\(srcdir\)/../../../dropin/khtml \\\$\(QTOPIA_INCLUDES\) \\$\(all_includes\)," $i
    perl -pi -e "s,-DQT_NO_CAST_ASCII,,g" $i
    echo "KDE_OPTIONS = qtonly" >> $i
done;

perl -pi -e "s,kde_module_LTLIBRARIES,noinst_LTLIBRARIES," ./kdesrc/khtml/ecma/Makefile.am
perl -pi -e "s,kjs_html\.la,libkjs_html_i.la,g" ./kdesrc/khtml/ecma/Makefile.am
perl -pi -e "s,kjs_html_la,libkjs_html_i_la,g" ./kdesrc/khtml/ecma/Makefile.am
perl -pi -e "s,libkjs_html_i_la_LIBADD.*,," ./kdesrc/khtml/ecma/Makefile.am
perl -pi -e "s,libkjs_html_i_la_LDFLAGS.*,," ./kdesrc/khtml/ecma/Makefile.am
cat >> ./kdesrc/khtml/ecma/Makefile.am << EOT
if DLOPEN_JAVASCRIPT
lib_LTLIBRARIES = kjs_html.la
kjs_html_la_LIBADD = libkjs_html_i.la ../libkhtml.la ../../kjs/libkjs.la \$(LIBPCRE)
kjs_html_la_LDFLAGS = -module -avoid-version -no-undefined \$(all_libraries)
kjs_html_la_SOURCES = dummy.cc

dummy.cc:
	echo > dummy.cc
endif
EOT

perl -pi -e "s,\\$\(top_builddir\)/kjs/libkjs.la,../../kjs/libkjs.la," ./kdesrc/khtml/ecma/Makefile.am
perl -pi -e "s,myinclude_HEADERS,noinst_HEADERS," ./kdesrc/khtml/dom/Makefile.am

echo "*** applying khtml add-on patch ..."

( cd ./kdesrc/khtml && patch -p0 < ./khtml_scaling_patch.txt )

echo "*** applying ecma no-window-changes add-on patch ..."
( cd ./kdesrc/khtml && patch -p0 < ./ecma_nowindowchanges.txt )

echo "*** applying khtml javascript connect add-on patch ..."
( cd ./kdesrc/khtml && patch -p0 < ./khtml_jsextend_patch.txt )

#echo "*** applying kcharset unicode patch ..."
#
#( cd ./kdesrc/kdecore && patch -p0 < ./charset_unicode_patch.txt )
