Compare commits

...

11 Commits

Author SHA1 Message Date
Mario Fetka dd04b72a67 Import release 2.0 2009-07-25 14:07:41 +00:00
Mario Fetka 9d0ee5010b Import release 2.0rc1 2009-07-17 15:44:01 +00:00
Mario Fetka 919dbe2a0f Import release 2.0beta2 2009-05-13 18:20:42 +00:00
Mario Fetka 8c44bbd89b Import release 1.5.2 2009-03-23 23:35:55 +00:00
Mario Fetka a899084e37 Import release 2.0beta1 2009-03-23 23:26:37 +00:00
Mario Fetka 8b3dac7ce6 Import release 2.0alpha2 2008-08-10 11:56:25 +00:00
Mario Fetka 47cc8f14fa Import release 2.0alpha 2008-05-01 22:23:21 +00:00
Mario Fetka ca041a4e14 Import release 1.5.1 2008-04-06 14:46:38 +00:00
Mario Fetka 5165abf494 Import release 1.5 2008-01-09 22:42:53 +00:00
Mario Fetka 80c63a8d5b Import CVS HEAD before SVN migration 2007-03-19 12:00:00 +00:00
Mario Fetka 41192641d3 Import release 1.5pre2 2007-03-18 19:34:31 +00:00
838 changed files with 193763 additions and 140826 deletions
-28
View File
@@ -1,28 +0,0 @@
acinclude.m4
aclocal.m4
autom4te*.cache
build-debug
build-default
config.h
config.h.in
config.log
config.status
configure
configure.files
configure.in
conftest
inst-apps
kmess.kdevelop.pcs
kmess.kdevses
libtool
Makefile
Makefile.am
Makefile.in
Makefile.rules.in
MakeVars.in
snapshot-info
stamp-h
stamp-h1
stamp-h1.in
stamp-h.in
subdirs
+43
View File
@@ -0,0 +1,43 @@
[Buildset]
Number of Builditems=1
[Buildset][Builditem0]
Itemname=KMess
Itempath=./
Projectname=KMess
[CMake]
BuildDirs=./build
CMakeDir=/usr/share/cmake/Modules
Current CMake binary=cmake
CurrentBuildDir=./build
CurrentInstallDir=
ProjectRootRelative=./
[Chat Window debug-Run Options]
Arguments=--runtest chatwindow
Executable=./build/src/kmess
Working Directory=./build/src/
[Contact List debug-Run Options]
Arguments=--runtest contactlist
Executable=./build/src/kmess
Working Directory=./build/src/
[Debug-Run Options]
Executable=./build/src/kmess
[MakeBuilder]
Abort on First Error=false
Number Of Jobs=3
Run Multiple Jobs=true
[Project]
VersionControlSupport=kdevsubversion
[Run Options]
Run Targets=Chat Window debug,Contact List debug,Debug
[Veritas]
executables=
framework=QTest
+186 -29
View File
@@ -1,45 +1,171 @@
Developers:
-- Developers --
Mike K. Bennett <mkb137@users.sourceforge.net>
Michael Curtis <mdcurtis@users.sourceforge.net>
Jan Toenjes <jan.toenjes@web.de>
Lin Haoxiang <linhaoxiang@hotmail.com>
Diederik van der Boor <vdboor@codingdomain.com>
Richard Conway <richardconway@users.sourceforge.net>
Valerio Pilo <amroth@coldshock.net>
Antonio Nastasi <sifcenter@gmail.com>
Ruben Vandamme <vandammeru@gmail.com>
Sjors Gielen <dazjorz@dazjorz.com>
Adam Goossens <fontknocker@gmail.com>
Translations:
Arabic - Mohamed Aser <mohasr@link.net>
Brazilian Portuguese - Mauricio Rother <mauricio@digicomm.com.br>
Catalan - Jaume Cornadó <jaumec@lleida.net>
Danish - Lars Sommer <admin@lasg.dk>
Dutch - Arend van Beelen Jr. <arend@auton.nl>
Estonian - Jyri Toomessoo <nuubik@hotmail.com>
German - Jan Tönjes <jan.toenjes@web.de>
French - Choplair <pachilor@yahoo.co.jp>
Vincent Fretin <fretinvincent@hotmail.com>
Italian - David Vignoni <dvgn@libero.it>
Korean - Park Dong Cheon <pdc@kaist.ac.kr>
Norsk Bokmal - Øyvind Sæther <oyvind@sather.tk>
Simplified Chinese - Lin Haoxiang <linhaoxiang@hotmail.com>
Spanish - Johanna Gersch
J.C.A. Javi <yovoya30ks@hotmail.com>
Thai - Rachan Hongpairote <rachanh@yahoo.com>
Turkish - Gorkem Cetin <gorkem@gelecek.com.tr>
Barbaros Ulutas <tebarul@yahoo.com>
-- Translations --
Translations Maintainer:
Panagiotis Papadopoulos <pano_90@gmx.net>
Arabic:
Mohamed Aser <mohasr@link.net>
Youssef Chahibi <chahibi@gmail.com>
Ma'moun Diraneyya <mamoun.diraneyya@gmail.com>
Brazilian Portuguese:
Mauricio Rother <mauricio@digicomm.com.br>
Leonel Freire <leonelfreire@gmail.com>
Sergio Rafael Lemke <bedi.com@gmail.com>
Maurício Arozi Moraes
Catalan:
Jaume Cornadó <jaumec@lleida.net>
Adrià Arrufat <swiftscythe@gmail.com>
Chinese (Simplified):
Lin Haoxiang <linhaoxiang@hotmail.com>
Liu Sizhuang <chinatslsz@hotmail.com>
Cheng Yang <yangzju@gmail.com>
Chinese (Traditional):
Yen-chou Chen <yenchou.mse90@nctu.edu.tw>
Tryneeds-Chinese Translation Platform <http://tryneeds.westart.tw/tryneeds>
Danish:
Lars Sommer <admin@lasg.dk>
Pascal d'Hermilly <pascal@tipisoft.dk>
Dutch:
Arend van Beelen Jr. <arend@auton.nl>
Diederik van der Boor <vdboor@codingdomain.com>
Jaap Woldringh <jjh.woldringh@planet.nl>
Elve <elve@savage-elve.net>
Sander Pientka <cumulus0007@gmail.com>
Heimen Stoffels <djmusic121@gmail.com>
Estonian:
Jyri Toomessoo <nuubik@hotmail.com>
Finnish:
Markus Vuori <markus@vuoret.net>
Joonas Niilola <juippis@roskakori.org>
Jussi Timperi <jussi.timperi@gmail.com>
Antony Hussi <antony.hussi@tranciend.com>
French:
Choplair <pachilor@yahoo.co.jp>
Vincent Fretin <fretinvincent@hotmail.com>
Andrea Blankenstijn <darkan9el@gmail.com>
Barthe Guillaume <gu_barthe@yahoo.fr>
Scias <shining.scias@gmail.com>
German:
Jan Tönjes <jan.toenjes@web.de>
Panagiotis Papadopoulos <pano_90@gmx.net>
Greek:
Panagiotis Papadopoulos <pano_90@gmx.net>
Dimitrios Glentadakis <dglent@gmail.com>
Hungarian:
Páder Rezső <rezso@rezso.net>
Pauli Henrik <henrik.pauli@drangolin.net>
Italian:
David Vignoni <dvgn@libero.it>
Valerio Pilo <amroth@coldshock.net>
Vincenzo Reale <smart2128@baslug.org>
Andrea Decorte <adecorte@gmail.com>
Japanese:
Daniel E. Moctezuma <shinsen27@gmail.com>
Korean:
Park Dong Cheon <pdc@kaist.ac.kr>
Norsk Bokmal:
Øyvind Sæther <oyvind@sather.tk>
Serbian:
Zoran Milovanović <provalisam@gmail.com>
Slovak:
Rastislav Krupanský <ra100@atlas.sk>
Slovenian:
Matjaž Kaše <kase@g-kabel.si>
Spanish:
Johanna Gersch
J.C.A. Javi <yovoya30ks@hotmail.com>
Alejandro Araiza Alvarado <mebrelith@gmail.com>
Jaume Corbí <jaume4@gmail.com>
Christian Kaiser <k39@users.sourceforge.net>
Juan Pablo González Tognarelli <jotapesan@gmail.com>
Alexis Daniel Medina Medina <alexismedina@gmail.com>
Manuel Ramírez <elpreto@kde.org.ar>
Mauricio Muñoz Lucero <real.mml@gmail.com>
Swedish:
Christian Lundgren <zeflunk@gmail.com>
Mattias Newzella <newzella@gmail.com>
Thai:
Rachan Hongpairote <rachanh@yahoo.com>
Turkish:
Gorkem Cetin <gorkem@gelecek.com.tr>
Barbaros Ulutas <tebarul@yahoo.com>
Uğur Çetin <ugur.jnmbk@gmail.com>
-- Thanks to --
Also tranks to:
Jan Tönjes <jan.toenjes@web.de>
- testing, documentation, web master, project management, etc
Dane Harnett <dynamitedane@hotmail.com>
- web design
David Vignoni <dvgn@libero.it>
- the main yellow/blue/violet emoticon sets
Laurence Anderson <l.d.anderson@warwick.ac.uk>
- original file receive code
Scott Morgan <blumf@blumf.freeserve.co.uk>
- Xinerama fixes
@@ -51,12 +177,12 @@ Also tranks to:
Choe Hwanjin <hjchoe@hancom.com>
- Various internationalization fixes.
Vincent Fretin <fretinvincent@hotmail.com>
- MSN6 emoticon definitions
Lin Haoxiang <linhaoxiang@hotmail.com>
- Send file bugfix
- Send file bugfix, proxy code
Tobias Tönjes
- Guy with a bag over his head
@@ -64,12 +190,43 @@ Also tranks to:
Damien Sandras <dsandras@seconix.com>
- GnomeMeeting developer
Liu Sizhuang <chinatslsz@hotmail.com>
- P4-Context field support
Guido Solinas <whereismwhite@gmail.com>
- Pictures in contact list code
- Contact client info
- Chat font zoom
Pedro Ferreira <pedro.ferreira@fe.up.pt>
- File transfer thumbnails
Matteo Nardi <91.matteo@gmail.com>
- KWallet support
Andrea Decorte <adecorte@gmail.com>
- Group selection in 'contact added user' dialog
Dario Freddi <drf_av@users.sourceforge.net>
- Chat history dialog
KMerlin <http://kmerlin.olsd.de/>
- Inspiration and assorted code
Kopete <http://kopete.kde.org/>
- Popup Balloon code, initial p2p code
- Old Popup Balloon code
- Initial p2p code
- MSN Challenge handler
KScreensaver
- Idle timer code
BasKet
- Close-to-tray icon screenshot code
Amarok
- Custom crash handler implementation
- System tray icon overlay implementation
Quassel
- KNotify not giving focus bug fix and KWin focus stealing prevention workaround
+242
View File
@@ -0,0 +1,242 @@
PROJECT( kmess )
#### System checks ####
# To add checks, see in one or more of these paths
# /usr/share/cmake/Modules
# /usr/share/kde4/apps/cmake/modules
# /usr/share/apps/cmake
# Check for cmake, same as minimum for KDE 4.0.0
CMAKE_MINIMUM_REQUIRED( VERSION 2.4.5 )
# Check for KDE 4
FIND_PACKAGE( KDE4 REQUIRED )
# Check for libxml2
FIND_PACKAGE( LibXml2 )
MACRO_LOG_FEATURE( LIBXML2_FOUND "LibXML2" "Libraries used to develop XML-aware applications" "http://www.xmlsoft.org/" TRUE ""
" Required for the chat styles system.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are:
on Ubuntu: 'libxml2' and 'libxml2-dev'
on openSUSE: 'libxml2' and 'libxml2-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Check for libxslt
FIND_PACKAGE( LibXslt )
MACRO_LOG_FEATURE( LIBXSLT_FOUND "LibXSLT" "A library to transform XML into other formats" "http://www.xmlsoft.org/XSLT" TRUE ""
" Required for the chat styles system.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are:
on Ubuntu: 'libxslt' and 'libxslt-dev'
on openSUSE: 'libxslt' and 'libxslt-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Check for qca2
FIND_PACKAGE( QCA2 )
MACRO_LOG_FEATURE( QCA2_FOUND "QCA 2" "A cryptographic library written in Qt to access various encryption methods" "http://delta.affinix.com/qca/" TRUE ""
" Required for the Windows Live Messenger login process.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are:
on Ubuntu: 'libqca2', 'libqca2-dev' and 'libqca2-plugin-ossl'
on openSUSE: 'libqca2' and 'libqca2-devel'
on Fedora: 'qca2' and 'qca2-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# As far as I know, it is impossible to find out if the required QCA plugin for OpenSSL is installed:
# so we need to ask QCA itself it it's got such a plugin. Pretty darned unportable stuff.
IF( QCA2_FOUND )
IF( UNIX )
EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/check-qca2-ossl.sh OUTPUT_VARIABLE HAS_QCA2_OSSL_PLUGIN )
IF( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
SET( QCA2_OSSL_PLUGIN_FOUND TRUE )
ELSE( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
SET( QCA2_OSSL_PLUGIN_FOUND FALSE )
ENDIF( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
MACRO_LOG_FEATURE( QCA2_OSSL_PLUGIN_FOUND "QCA 2 - OpenSSL Plugin" "OpenSSL interaction library for QCA2" "http://delta.affinix.com/qca/" TRUE ""
" Required for the Windows Live Messenger login process.
* This package should have been installed along QCA2: if you have QCA2 installed
but still see this message, your distribution probably packages it separately.
Ubuntu does this, the package name is 'libqca2-plugin-ossl'.
* Please refer to the KMess forum for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
ELSE( UNIX )
# TODO: Find another *portable* way to detect the OSSL plugin.
MESSAGE( STATUS "NOTE: The qca2 OpenSSL can't be detected on this platform yet. Make sure you have it installed." )
ENDIF( UNIX )
ENDIF( QCA2_FOUND )
# Check for XScreenSaver extension
OPTION( WANT_XSCREENSAVER "Build with X11 screensaver auto-away support" ON )
IF( WANT_XSCREENSAVER )
MACRO_BOOL_TO_01( X11_Xscreensaver_FOUND HAVE_XSCREENSAVER )
MACRO_OPTIONAL_FIND_PACKAGE(X11)
IF( X11_FOUND )
MACRO_LOG_FEATURE( X11_Xscreensaver_FOUND "XScreenSaver" "X11 extension used to check idle state" "" FALSE ""
" Required for the auto-away feature.
* Usually the package names for this library are:
on Ubuntu: 'libxss-dev'
on openSUSE: 'xorg-x11-libs'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
ELSE( X11_FOUND )
MESSAGE( STATUS "NOTE: The auto-away feature is not supported on this platform yet." )
ENDIF( X11_FOUND )
ENDIF( WANT_XSCREENSAVER )
# Check for libkonq
# QUIET is to fix compiling on systems like Debian Lenny, which don't have FindLibKonq.cmake
# (for an optional feature, we don't want that to be fatal)
MACRO_OPTIONAL_FIND_PACKAGE( LibKonq QUIET )
MACRO_LOG_FEATURE( LIBKONQ_FOUND "LibKonq" "Integration with Konqueror context menu" "http://www.kde.org/" FALSE ""
" Optional context menu integration with Konqueror.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are:
on Ubuntu: 'libkonq5' and 'libkonq5-dev'
on openSUSE: 'libkonq5' and 'libkonq-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Check for libgif
INCLUDE( "cmake/giflib_hack.cmake" )
MACRO_OPTIONAL_FIND_PACKAGE( GIF )
MACRO_BOOL_TO_01( GIF_FOUND HAVE_LIBGIF )
MACRO_LOG_FEATURE( GIF_FOUND "GIF" "Handwriting messages support" "http://sourceforge.net/projects/giflib/" FALSE ""
" Optional support to send handwriting messages compatible with Windows Live Messenger.
* You will need to install both the library and development packages of the GIF Library, giflib.
* Usually the package names for this library are:
on Ubuntu: 'libgif4' and 'libgif-dev'
on openSUSE: 'giflib' and 'giflib-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Display the dependency collection results
MACRO_DISPLAY_FEATURE_LOG()
#### Configure build ####
INCLUDE( MacroLibrary )
INCLUDE( KDE4Defaults )
ADD_DEFINITIONS( ${QT_DEFINITIONS} ${KDE4_DEFINITIONS} )
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${LIBXML2_INCLUDE_DIR} )
#### Define the app version number ####
# Switch between the following two commands to force using a predefined version number
# EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/get-svn-version.sh OUTPUT_VARIABLE KMESS_VERSION )
SET( KMESS_VERSION "2.0" )
#### Define compiler flags ####
# Tune the debug build with even more flags
# also see FindKDE4Internal.cmake for more defaults
IF( CMAKE_COMPILER_IS_GNUCXX )
# skipped: -ansi -pendantic -Wfatal-errors -Wold-style-cast -Wconversion
SET( CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall" )
SET( CMAKE_CXX_FLAGS_DEBUGFULL "-O0 -g3 -fno-inline -Wall -Woverloaded-virtual -Wsign-compare -Wundef" )
# the -fvisibility option makes symbols also visible to the KDE backtrace dumper, but
# the MinGW gcc doesn't seem to understand it well, so only add it if we're not on win32
IF( NOT WIN32 )
SET( CMAKE_CXX_FLAGS_DEBUGFULL "${CMAKE_CXX_FLAGS_DEBUGFULL} -fvisibility=default" )
ENDIF( NOT WIN32 )
ENDIF( CMAKE_COMPILER_IS_GNUCXX )
# Define the default build type
# Possible values:
# - none
# - release
# - debug
# - debugfull (even fewer optimisations)
# - relwithdebinfo (release with debug info)
# - minsizerel (minsize release)
# Uncomment the next line to always force building in full debug mode
#SET( CMAKE_BUILD_TYPE debugfull )
# Enable the KMess debug output when compiling a debug build
IF( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
SET( KMESS_ENABLE_DEBUG_OUTPUT "1" )
ELSE( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
SET( KMESS_ENABLE_DEBUG_OUTPUT "0" )
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
# Change symbol visibility, to obtain clearer KDE backtraces
SET( __KDE_HAVE_GCC_VISIBILITY 0 )
# Disable LikeBack if not needed
IF( KMESS_DISABLE_LIKEBACK EQUAL 1 )
SET( KMESS_DISABLE_LIKEBACK "1" )
ELSE( KMESS_DISABLE_LIKEBACK EQUAL 1 )
SET( KMESS_DISABLE_LIKEBACK "0" )
ENDIF( KMESS_DISABLE_LIKEBACK EQUAL 1 )
# Set a default installation path
IF( NOT CMAKE_INSTALL_PREFIX )
SET( CMAKE_INSTALL_PREFIX "/usr" )
ENDIF( NOT CMAKE_INSTALL_PREFIX )
IF( CMAKE_USE_CPACK EQUAL 1 )
MESSAGE( STATUS "Enabling the CPack package target..." )
# source: http://www.vtk.org/Wiki/CMake:Packaging_With_CPack
INCLUDE( InstallRequiredSystemLibraries )
# the installer will be named ${PACKAGENAME}-{VERSIONMAJOR}.{VERSIONMINOR}.{VERSIONPATCH}-win32.exe.
# the installer will say "Welcome to the ${INSTALL_DIRECTORY} Setup Wizard and install to ${INSTALL_DIRECTORY} too, and
# put the program in start menu under the ${INSTALL_DIRECTORY} name.
# it will ask if ${PACKAGENAME} should be put in PATH.
SET( CPACK_PACKAGE_NAME "KMess" )
SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "KMess (package description)" )
SET( CPACK_PACKAGE_VENDOR "The KMess team" )
SET( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README" )
SET( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING" )
SET( CPACK_PACKAGE_VERSION_MAJOR "1" )
SET( CPACK_PACKAGE_VERSION_MINOR "0" )
SET( CPACK_PACKAGE_VERSION_PATCH "0" )
SET( CPACK_PACKAGE_INSTALL_DIRECTORY "KMess" )
IF( WIN32 AND NOT UNIX )
# There is a bug in NSI that does not handle full unix paths properly. Make
# sure there is at least one set of four (4) backslashes.
SET( CPACK_GENERATOR "NSIS" )
SET( CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/data/icons\\\\hi32-app-kmess.png" )
SET( CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\kmess.exe" )
SET( CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} KMess (display name)" )
SET( CPACK_NSIS_HELP_LINK "http:\\\\\\\\kmess.org" )
SET( CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\kmess.org" )
SET( CPACK_NSIS_CONTACT "project@kmess.org" )
SET( CPACK_NSIS_MODIFY_PATH ON )
ELSE( WIN32 AND NOT UNIX )
SET( CPACK_STRIP_FILES "bin/kmess" )
SET( CPACK_SOURCE_STRIP_FILES "" )
ENDIF( WIN32 AND NOT UNIX )
SET( CPACK_PACKAGE_EXECUTABLES "kmess" "KMess" )
INCLUDE( CPack )
ENDIF( CMAKE_USE_CPACK EQUAL 1 )
#### Other settings ####
# Generate config-kmess.h
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/config-kmess.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-kmess.h )
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
# continue in directories
ADD_SUBDIRECTORY( po )
ADD_SUBDIRECTORY( data )
ADD_SUBDIRECTORY( doc )
ADD_SUBDIRECTORY( src )
IF( LIBKONQ_FOUND )
ADD_SUBDIRECTORY( src/utils/kmess-send )
ENDIF( LIBKONQ_FOUND )
# Also add the tests if compiling in development mode
IF( CMAKE_BUILD_TYPE STREQUAL debugfull AND KMESS_DEBUG_OUTPUT EQUAL 1 )
ADD_SUBDIRECTORY( tests )
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull AND KMESS_DEBUG_OUTPUT EQUAL 1 )
+4135 -2
View File
File diff suppressed because it is too large Load Diff
+76 -46
View File
@@ -1,14 +1,14 @@
# Doxyfile 1.4.1-KDevelop
# Doxyfile 1.5.5-KDevelop
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = KMess
PROJECT_NUMBER = 1.4.2
PROJECT_NUMBER = 2.0
OUTPUT_DIRECTORY = ./apidocs
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
@@ -25,19 +25,28 @@ ABBREVIATE_BRIEF = "The $name class" \
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 2
ALIASES =
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@@ -46,6 +55,7 @@ EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
@@ -57,16 +67,19 @@ SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = YES
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = NO
SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
@@ -76,22 +89,28 @@ WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ./kmess
FILE_PATTERNS = *.cpp *.h *.dox
INPUT = ./src
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.cpp \
*.h \
*.dox
RECURSIVE = YES
EXCLUDE = *.moc *.moc.cpp *.moc.h
EXCLUDE = *.moc \
*.moc.cpp \
*.moc.h
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */build-*/*
EXAMPLE_PATH =
EXCLUDE_PATTERNS = */build*/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
@@ -101,13 +120,15 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 4
IGNORE_PREFIX =
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
@@ -119,15 +140,20 @@ HTML_FOOTER = doc/apidocs_footer.html
HTML_STYLESHEET = doc/doxygen.css
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
HTML_DYNAMIC_SECTIONS = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = YES
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
GENERATE_TREEVIEW = NONE
TREEVIEW_WIDTH = 250
FORMULA_FONTSIZE = 10
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
@@ -137,8 +163,8 @@ LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
@@ -150,8 +176,8 @@ GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
@@ -164,8 +190,8 @@ MAN_LINKS = NO
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
@@ -177,54 +203,58 @@ GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = KMESSTEST KMESS_NETWORK_WINDOW
EXPAND_AS_DEFINED =
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = KMESSTEST \
KMESS_NETWORK_WINDOW
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
TAGFILES =
GENERATE_TAGFILE = kmess.tag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
DOT_FONTNAME = FreeSans
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = NO
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
DOT_PATH =
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
+48 -7
View File
@@ -1,16 +1,57 @@
KMess Feature list
========================
- 2.0 -
Support to receive and send hand-written (Ink) messages (still doesn't work with some Messengers).
Options to copy a contact's email, name, message, listened music and links present in the name/message.
List of contact events, such as logins and logouts.
Chat Windows can be used again after reconnecting.
Quick retype of previous sent messages, using Ctrl+Up/Ctrl+Down.
MSN connections over HTTP, to deal with corporate firewalls which only allow connections to browse the web.
Support to chat with offline and invisible contacts.
Support to search in the contact list.
Support to send longer chat messages.
Option to hide annoying contact emoticons.
Option to choose the browser used to open web sites, Live Mail, and MSN support sites.
Option to manually send commands to the server in developer builds.
Support to group all chats in the same chat window (tabbed chatting).
Option to select a directory where all received files will be put.
Option to choose the interval of ports used for fast file transfers.
Option to keep short notes for each contact.
Option to hide annoying contact emoticons.
Support to MSN Plus text formatting.
Support for DBus remote application control.
Option to choose a previously chosen display picture.
Support for dark KDE color schemes.
More options to improve customization of the Contact List.
Support for KDE's KWallet, to store in a secure way the accounts passwords.
Automatic detection of network connection and disconnection.
Option to block notifications when the status is set to Busy.
Option to disable displaying of received winks.
Automatic reconnection to MSN after unwanted disconnections with keeping of last status.
- 1.5.1 -
Contact's MSN client detection.
Option to view contacts' Display Pictures in the contact list.
Option to enable spell checking in the chat windows.
Disable notification popups when there's a screen saver or a full screen application.
Added option to manually set your own MSN status to Idle.
When closing KMess to tray for the first time, a little screenshot of the notification area will help finding KMess' tray icon.
- 1.5 -
Support for new chat content:
- custom emoticons
- nudges
- winks
- offline-im messages.
File transfers support MSN6-style direct connections
Support to exchange (send and receive) custom emoticons and nudges.
Receive-only support for winks and offline-im messages.
Fast file transfers, supporting MSN6+ direct connections.
MSN7 personal status messages are supported.
The appearance of chat message and emoticons can be changed on the fly.
Users with a temporary "guest" account can upgrade to a regular "stored" account.
Messages from the same contact can be grouped.
New default chat style, 'Fresh', making chats more colorful and friendly.
Now listening information can be exchanged.
New KDE style balloon notification popups.
Right-click options for links in the chat window.
Improved and more compact visual style for the chat windows.
Automatically download the display pictures of your contacts.
Option to select an image to use as display picture and to then crop unneeded parts away.
- 1.4 -
MSN6 display picture transfers are supported
@@ -57,4 +98,4 @@ Chats can be configured to show timestamps when contacts send messages.
A "compact" chat format can be used to remove extraneous line breaks and reduce the size of the chat.
The chat window caption in the taskbar alternates between lower and upper case to inform the user of a received message when the window is not on top.
Internationalization support, with translations in: English, Dutch, German, Italian, Portuguese, Spanish, Turkish, Chinese, French, Catalan, Arabic, Korean, Norsk, Thai, Danish, and Estonian
There is now a method, though not absolute, to tell if a contact is blocking you. If a chat is started with a contact that appears offline, you will be informed if the contact is offline or online and blocking you.
There is now a method, though not absolute, to tell if a contact is blocking you. If a chat is started with a contact that appears offline, you will be informed if the contact is offline or online and blocking you.
+41 -189
View File
@@ -1,209 +1,61 @@
Installation Tip:
=================
Installation Hints:
===================
In order for KMess to work properly, it must be configured first.
Run the configure script like this:
NOTE: This package is used to build KMess from source code.
If you're looking for a simple way to install KMess,
take a look at http://www.kmess.org/download/.
NOTE: These instructions are meant for UNIX-like systems. If they don't
work for you, please tell us at http://www.kmess.org/board/.
For building on Windows, see this Wiki page:
http://trac.kmess.org/wiki/Compiling%20KMess%20for%20Windows
To install KMess from this source package you need to create a separate
build directory first. It must be created outside the source folder. After
that, you must configure your build using cmake.
To ease the building process, KMess comes with a 'configure' script that
creates the directory and runs CMake for you. To build this package, simply
run:
cd kmess
./configure
If the ./configure script completed with success, then type
make
and then, as root, type
To install on most systems, you can run:
make install
sudo make install
That's it.
If your system doesn't come with sudo, you can use:
su -c 'make install'
That's it!
Of course, building without the configure script is also possible:
Important:
==========
mkdir build
cd build
cmake ..
make
sudo make install
The configure script tries to detect your KDE3 directory automatically.
If configure fails to detect KDE, you should tell KMess which directory
to use. Basically, we're talking about the parent directory
of /share/apps/k~bunch of kapps~
Not doing this will result in emoticons being displayed
as text, and icons being displayed incorrectly as well.
If configure tells you you're missing something that you think you
have installed on your system, you probably need to install the
"devel" version of that thing. i.e. If it tells you you're missing
libfam, install the libfam-devel rpm.
More information can be found in the README file.
The following paragraphs below provide generic installation instructions:
Basic Installation
Useful parameters:
==================
These are generic installation instructions.
The configure script automatically makes the right build for you. For a release (non-alpha or beta)
package, the configure script builds KMess in release mode; for an alpha or beta package, KMess will
run in debug mode. When something goes wrong, debug mode will help us find the cause, and fix it. :-)
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you want to modify your build, you can try the following options to the configure script:
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
--prefix=/usr
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
Install in the /usr directory instead.
The simplest way to compile this package is:
--build-type=(one of debug,debugfull,release,relwithdebuginfo,minsizerel)
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes a while. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Type `make install' to install the programs and any data files and
documentation.
4. You can remove the program binaries and object files from the
source code directory by typing `make clean'.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made.
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.
Tell CMake to build this specific build type.
Also consider running "ccmake" for an curses-interface to cmake.
ccmake only works after the build directory has been configured with cmake before.
-15
View File
@@ -1,15 +0,0 @@
####### kdevelop will overwrite this part!!! (begin)##########
SUBDIRS = kmess po doc
EXTRA_DIST = kmess.kdevelop admin AUTHORS COPYING ChangeLog INSTALL README TODO FEATURES kmess.lsm
MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files
# Code for standard deps
# (like regenerating configure)
include admin/deps.am
include admin/Doxyfile.am
-14
View File
@@ -1,14 +0,0 @@
all:
@echo "This Makefile is only for the CVS repository"
@echo "This will be deleted before making the distribution"
@echo ""
@if test ! -d admin; then \
echo "Please recheckout this module!" ;\
echo "for cvs: use checkout once and after that update again" ;\
echo "for cvsup: checkout kde-common from cvsup and" ;\
echo " link kde-common/admin to ./admin" ;\
exit 1 ;\
fi
$(MAKE) -f admin/Makefile.common cvs
.SILENT:
+448 -2
View File
@@ -1,6 +1,452 @@
Changes between KMess 1.5-pre1 and 1.4.3:
-----------------------------------------
Changes between KMess 2.0 and 2.0-rc1:
--------------------------------------
- updated German translation by Panagiotis Papadopoulos.
- updated Simplified Chinese translation by Cheng Yang.
Changes between KMess 2.0-rc1 and 2.0-beta2:
--------------------------------------
- added Japanese translation by Daniel E. Moctezuma.
- added display of emoticons in presence messages.
- added status restoring on reconnection.
- added fading effect for long text labels and the contact list.
- changed the image used for unknown display pictures.
- changed the application windows icons.
- changed the system tray icon with one showing both the bird and the current
status.
- fixed a crash triggered by clients aborting while we're sending data.
- fixed appearance when using right-to-Left languages, like Arabic.
- fixed bug preventing temporary accounts to be correctly cleaned up.
- fixed file selection errors in chat logging.
- fixed newly added contacts appearing as not having added the user in their
list.
- improved appearance of the contact list when antialiasing is enabled.
- removed all experimental features which could not be finished in time.
- updated Arabic translation by Ma'moun Diraneyya.
- updated Brazilian Portuguese translation by Maurício Arozi Moraes and Sergio
Rafael Lemke.
- updated Catalan translation by Adrià Arrufat.
- updated Finnish translation by Antony Hussi.
- updated Dutch translation by Sander Pientka and Sjors Gielen.
- updated French translation by Scias.
- updated German translation by Panagiotis Papadopoulos.
- updated Greek translation by Dimitrios Glentadakis.
- updated Hungarian translation by Pauli Henrik.
- updated Italian translation by Valerio Pilo.
- updated Slovak translation by Rastislav Krupanský.
- updated Spanish translation by Mauricio Muñoz Lucero.
- updated Simplified Chinese translation by Cheng Yang.
- updated Traditional Chinese translation by Yen-chou Chen.
Changes between KMess 2.0-beta2 and 2.0-beta1:
--------------------------------------
- completed drag&drop support.
- fixed quick retype.
- fixed winks playing and naming support.
- fixed disconnections after many hours of use.
- fixed losing KDE Wallet passwords.
- fixed typing notifications not appearing in WLM 2009.
- fixed long words breaking was breaking copy-pastes.
- fixed weird characters which were breaking the chat styles.
- fixed resending messages already sent as offline messages.
- fixed searching for offline contacts.
- fixed time of arrival of offline messages.
- fixed new chat windows or tabs opened by contacts sometimes stole focus.
- fixed contact list group sorting.
- fixed many memory leaks.
- fixed overflowing contact list background picture and color.
- improved the Chat History dialog and its integration with KMess.
- improved drag and drop support in contact list.
- improved the color of the less important contact status messages in chat.
- improved client detection support.
- improved handwriting message sending.
- improved the file transfers window's behavior.
- improved chat session management.
- improved the LikeBack buttons bar.
- updated English handbook.
- updated Arabic translation by Ma'moun Diraneyya.
- updated Brazilian Portuguese translation by Sergio Rafael Lemke.
- updated Brazilian Portuguese translation by Maurício Arozi Moraes.
- updated Catalan translation by Adrià Arrufat.
- updated Dutch translation by Heimen Stoffels.
- updated Dutch translation by Sander Pientka.
- updated Finnish translation by Antony Hussi.
- updated French translation by Barthe Guillaume.
- updated French translation by Scias.
- updated German translation by Panagiotis Papadopoulos.
- updated Greek translation by Dimitrios Glentadakis.
- updated Italian translation by Andrea Decorte.
- updated Spanish translation by Manuel Ramírez.
- updated Spanish translation by Mauricio Muñoz Lucero.
- updated Traditional Chinese translation by Yen-chou Chen.
- updated Traditional Chinese translation by the Tryneeds-Chinese Translation Platform.
Changes between KMess 2.0-beta1 and 2.0-alpha2:
--------------------------------------
- added support to start chats while you're invisible.
- added automatic reconnection after unwanted disconnections.
- added IRC like command handling in the chat window (/away, etc..)
- added 'Send with KMess' menu item to Konqueror context menu's.
- added verbose status message when KMess fallbacks to the HTTP connection.
- added contact emoticon blacklist, to block annoying custom emoticons from contacts.
- added Likeback support to collect user feedback, ported from Basket of KDE 3.
- added support to configure the toolbars and menus in the chat window.
- added contact list export dialog.
- added context menu to the contact list, to open the contact menu with the left mouse too.
- added confirmation dialogs when the menu gets hidden with Ctrl+M.
- added confirmation dialogs when deleting custom emoticons.
- added confirmation dialogs when deleting old display pictures.
- added filtering options to the file transfer window, to show downloads/uploads only.
- added Greek translation by Panagiotis Papadopoulos.
- added Serbian translation by Zoran Milovanović.
- added Slovak translation by Rastislav Krupanský.
- improved protocol support, upgraded the server core protocol to MSNP15.
- improved user interface of the main login dialog, added links.
- improved overall user interface with further fine tuning.
- improved KDE session restoring; KMess will reconnect if you were connected at logout.
- improved chat notifications to be compatible with the new Plasma notifications of KDE 4.2.
- improved emoticon panels; users can choose between message editors or permanent sidebar panels.
- improved painting controls for the Ink handwriting.
- improved chat logging support (support XML, TXT output) in preparation of a chat logging browser.
- improved chat autoscroll feature.
- improved chat window status bar.
- improved several English messages in the user interface.
- improved reporting of error messages, using notifications for warnings.
- improved cmake detection of libqca2-plugin-ossl package for Ubuntu.
- changed contact sidebar, clicking the contact always shows the context menu.
- fixed multiple bugs with automatic reconnecting.
- fixed blocked login view when there is no network connection.
- fixed saving passwords when the 'save password' account option is off.
- fixed saving passwords when KWallet is not supported, or the user refused to use it.
- fixed contact list group expanding/collapsing with incremental search.
- fixed contact list sorting and grouping.
- fixed context menu to chat with a blocked/offline/allowed contact.
- fixed double error box when adding a non-existing contact to the list.
- fixed chat window focus issues.
- fixed chat tabs for contacts with HTML characters in their name.
- fixed chat tabs for contacts with long names.
- fixed chat tabs being displayed when tabbed chatting is disabled.
- fixed chat messages displayed in the wrong tab.
- fixed chat message wordwrapping for long unbreakable words.
- fixed chat spell checker setting, the setting was not remembered correctly.
- fixed typing messages for tabbed chats.
- fixed adding custom emoticons from the chat window sidebar.
- fixed and improved shortcut keys to switch between chat tabs, start a chat, etc...
- fixed layouting issue in the Classic Compact chat style.
- fixed displaying a 'contact left chat' message twice if there was no conversation in between.
- fixed unclickable display picture in the chat if the contact is offline.
- fixed invalid dates being displayed for contact properties.
- fixed updating the chat windows after an emoticon theme is changed.
- fixed updating the chat style preview when "Group follow up messages" is toggled.
- fixed start folder of the file browser for account pictures.
- fixed displaying the filename for files transferred with the old MSNFTP protocol.
- fixed cancel link not being removed when a file transfer invitation hit the timeout
- fixed notification default settings.
- fixed missing nudge event in the notification settings.
- fixed missing detection of "Windows Media Center" in the list of known MSN clients.
- fixed now listening icon, using a common icon now.
- fixed now listening support, added support for all MPris-compatible players.
- fixed inconsistent order of the artist and track title in now Listening information.
- fixed position of the red circle in the system tray screenshot.
- fixed protocol support of group chats.
- fixed protocol support of the MSN-HTTP fallback.
- fixed protocol support of MSNP2P by Windows Live Messenger 2009, should fix picture/emoticon transfers.
- fixed protocol support of MSN Plus! markup, displaying contact names incorrectly at various places.
- fixed protocol support for resetting your Personal Message, was not recognized by Windows Live Messenger 2009.
- fixed displaying of Offline-IM messages, wrong sender was displayed when receiving many messages.
- fixed error handling for SOAP protocol errors.
- fixed "view profile" pages with updated MSN website.
- fixed crashes in the contact list model code.
- fixed a crash when receiving MSN Plus! predefined messages.
- fixed a crash with receiving files with the old MSNFTP protocol.
- fixed an assertion crashing KMess caused by read-only configuration files with a KDE 4 debug build.
- fixed compiling issues with KDE 4.0, 'KDE on Windows' and MinGW32.
- fixed compiler warnings.
- fixed adblock icons showing up by the embedded KHTMLPart component in the chat window.
- fixed network code to use QNetworkAccessManager, this should give us proper Proxy support.
- fixed browser invocation code, using KToolInvocation to have instant invocation.
- fixed issues with network detection if Solid/NetworkManager is not available.
- fixed removed translator name entries in the .po files; some languages appear to have translated names.
- removed custom notification settings in favour of KNotify settings in the global settings panel.
- updated English handbook by Heimen Stoffels.
- updated Brazilian Portuguese translation by Leonel Freire.
- updated Brazilian Portuguese translation by Sergio Rafael Lemke.
- updated Dutch translation by Elve and Sander Pientka.
- updated French translation by Barthe Guillaume.
- updated German translation by Panagiotis Papadopoulos.
- updated Greek translation by Panagiotis Papadopoulos, Dimitrios Glentadakis.
- updated Hungarian translation by Pauli Henrik.
- updated Italian translation.
- updated Norsk Bokmal translation by Øyvind Sæther.
- updated Simplified Chinese translation by Cheng Yang.
- updated Spanish translation by Alexis Daniel Medina Medina, Juan Pablo González Tognarelli.
- updated Swedish translation by Mattias Newzella.
- updated Traditional Chinese translation by Yen-chou Chen, the Tryneeds-Chinese Translation Platform.
Changes between KMess 2.0-alpha2 and 2.0-alpha:
--------------------------------------
- added connecting over HTTP, to deal with corporate firewalls which only allow connections to browse the web.
- added tabbed chatting support!
- added offline messaging functionality.
- added the support to send ink messages.
- added the support to send huge messages.
- added full MSN Plus text-formatting support in chat and in the contact list.
- added application-wide settings dialog, which includes an account manager.
- added option to choose the interval of ports used for fast file transfers.
- added option to change the groups of a contact from the contact's properties dialog.
- added option to choose a previously set display picture for the account.
- added option to choose the dimensions of the pictures in the contact list.
- added option to specify where received files will be downloaded to.
- added option to display all offline contacts in a single group ("mixed" group mode).
- added option to hide currently empty groups.
- added option to block notifications when the status is set to Busy.
- added option to disable displaying of received winks.
- added option to choose a default directory where to put all received files.
- added option to choose the browser and e-mail client used to open Web links.
- added copy menu entry for the music a contact is listening.
- added a dark chat style suitable for use with dark KDE color themes.
- added ability to keep short notes for each contact.
- added a search box in the contact list.
- added an history box in the contact list, which displays recent contact events.
- added a close button on the notification popups (for people who don't know about right-click to close).
- added a DBus remote control interface, to enable interaction with KMess from other applications.
- added KWallet support to store in a secure way the passwords of the saved accounts.
- added detection of network connection availability, using Solid.
- added tracking of the 'last seen' and 'last chat message' dates for a contact.
- improved reporting of error messages.
- improved the user interface of many dialogs.
- improved the Now Playing support with Amarok 2 support. Amarok 1.4 is still supported.
- improved the file transfer messages within the chat.
- improved the auto-message feature, displays the automessage more often.
- fixed displaying old contact names and no personal messages after login.
- fixed loading emoticon themes containing non-PNG picture files.
- fixed compatibility and styling issues with dark KDE color schemes.
Changes between KMess 2.0-alpha and 1.5.1:
--------------------------------------
- ported to KDE 4.
- added support to receive ink messages.
- added ability to re-use previously opened chat windows after reconnecting.
- added a log for contact logins and logouts at the bottom of the contact list
- added copy options for name, email, personal message, and links to right-click menu of contacts.
- added fast-retype of previous sentences using Ctrl+Up.
- added group selection box to the "add contact" dialog.
- improved overall user interface.
- improved client name detection of contacts.
- improved contact properties dialog
- fixed font color chooser in the chat window, settings could be lost.
- fixed contact re-invites (chat resumes) to the chat when the first attempt failed.
Changes between KMess 1.5.2 and 1.5.1:
--------------------------------------
- added a warning message if a file transfer is started when a non-P2P capable client.
- fixed displaying passwords in the debug window, make it easier to share debug logs.
- fixed displaying old contact names after login.
- fixed enabled auto-away settings if the XScreenSaver extension was not found.
- fixed a bug which caused a disconnection when setting an extremely long nickname.
- fixed a bug which discarded saved settings for an account when quitting and when just disconnecting.
- fixed a bug which prevented non-PNG emoticon themes from loading.
- fixed a crash in debug builds for unknown contacts.
- fixed a possible crash in the passive popups.
- fixed a potential crash in background picture transfers (unlikely to occur).
- fixed a potential passport login problem, not seen yet unfortunately.
- fixed compiler warning on newer GCC.
- updated Brazilian Portuguese translation, made by Darlan Campos.
- updated Simplified Chinese translation by Liu Sizhuang.
Changes between KMess 1.5.1 and 1.5:
--------------------------------------
- added checking if a screensaver or fullscreen app is running, and disable notification popups.
- added option to show contact display pictures in the contact list.
- added spell checker to the chat window, its option is in the Settings menu.
- added a contact list popup text showing which MSN client your contacts use.
- added a little screenshot of the tray icon area when closing KMess to tray for the first time, to help finding where it is.
- added ability to manually select the Idle MSN status.
- added a warning message for broken SOCKS implementations which could cause KMess to freeze.
- fixed selecting a picture in the Autopackage version, and KDE 3.2 / KDE 3.3 installations.
- fixed a possible freeze, could only happen in developer builds (--enable-debug-output).
- fixed focus of typing area when reactivating the chat window.
- fixed the chat window title, which could continue blinking after its window had been given focus.
- updated Danish translation by Pascal d'Hermilly
- updated Traditional Chinese translation by Yen-chou Chen.
Changes between KMess 1.5 and 1.5pre2:
--------------------------------------
- added support to send custom emoticons.
- added support for P4-Context field, used for by plugins of the official client for contact aliases (i.e. Xiaoi's Qun). Patch by LiuSizhuang.
- added initial status chooser at login, and in the account settings.
- added drag&drop for files in the chat window to send files.
- added internationalization support to the service status URL.
- added automatic download of new display pictures in the background.
- added option to crop a picture before using it as display picture.
- added zoom buttons to scale the chat window text.
- added context menu to open and copy links in chat window.
- added "remove and block" option in the contact remove dialog.
- added dialog to confirm overwrite when saving a chat to file.
- added dialog to confirm overwrite when renaming custom emoticons.
- added auto clean up of the configuration files for outdated info.
- added keepalive support to see when a contact really closed the chat window, or the chat went idle.
- added a tooltip to the system tray, showing current name and status.
- added warning message when chatlogs can't be saved (e.g. wrong permissions).
- added status message upon server shutdown for maintenance notification.
- added notification balloons for contact typing and contact status changes.
- added a workaround for NAT timeouts when behind a "black hole" router.
- changed default chat style to "Fresh", old style is renamed to "Classic".
- improved notification balloons, completely new implementation using more standard KDE functionality.
- improved notifications with correct balloons when transferring files and receiving winks and nudges.
- improved taskbar notification of new messages, added asterisk in front.
- improved "Remember this profile" checkbox, it's consistent with the selected account.
- improved error messages for adding invalid MSN accounts.
- improved memory usage by reducing dependencies on QWidget.
- improved memory usage when a chat is started to download a display picture in the background.
- improved tests for invalid e-mail addresses when adding a new contacts.
- improved account settings dialog behavior when adding invalid email addresses.
- improved chat window appearance, with a new right-click menu for the listed contacts, and a resizable message box.
- improved file transfer speed over high speed links.
- improved saving of settings; save directly, not only when KMess quits.
- improved login handling to Passport 3.0 webservices.
- improved the user manual, reorganized completely.
- improved developer API documentation, especially the networking classes.
- improved transfer window's reliability.
- prepared preliminary support for tabbed chats.
- fixed multiple problems with broken file/picture transfers, especially over slow links or slow systems.
- fixed replacing of custom emoticon placeholders which contain <, > or & characters, or quotes.
- fixed support for default messages from MSN Plus!.
- fixed keyboard shortcut to insert new lines in the chat messages.
- fixed keyboard shortcut to copy text in the chat window.
- fixed background rendering in the contact list.
- fixed now playing icon, previous one was SUSE-specific.
- fixed Hotmail folders opening in wrong browser.
- fixed login selectbox, display last selected account at logout.
- fixed opening the main window when KMess is started with KDE.
- fixed missing emoticon example pictures next to the emoticons checkbox.
- fixed settings dialog height, was too big for 800x600 displays.
- fixed settings of notification balloons, balloons can be disabled again.
- fixed emoticon theme settings previews, some themes lacked a preview image.
- fixed links to account registration and verification in the settings dialog.
- fixed maximum length of displayed messages in the message balloons.
- fixed notification balloons text with special messages, like nudges or file transfers.
- fixed resuming chats when there was no connection to switchboard (gray display pictures in the chat).
- fixed raising existing chats when trying to open one from the contact list.
- fixed duplicate chat windows when clicking repeatedly on a contact in the list.
- fixed reuse of chat windows to use expected behavour.
- fixed subtle GUI flashing in the chat window for the contact picture.
- fixed changing an accounts email, it did not get reflected in the initial login UI and the menu's.
- fixed personal message being sent when the main window lost focus, not only when we confirm its change.
- fixed non working 'open inbox/send mail' links for non-Hotmail accounts, which now open the mail account specified in the settings.
- fixed broken contact images which don't get updated; added data hash check.
- fixed connection timeout error with downloading offline-im messages.
- fixed connection timeout issues during login for slow connections.
- fixed incorrect "transfer failed" message when sending files to Mercury Messenger.
- fixed internal protocol message to withdraw a started file transfer (not visible with WLM).
- fixed internal protocol encoding with commands which update groups in the contact list.
- fixed internal protocol handling to allow MSNSLP ACK messages.
- fixed invalid image when contacts don't have a display picture or it's not valid anymore.
- fixed unwanted destroying of the direct connection if a switchboard connection restarts.
- fixed handling of direct connection write errors, revering to the switchboard.
- fixed unwanted "session is cancelled" messages after completing a file transfer.
- fixed issues with aborting invitations when a chat window closes.
- fixed blocking KMess user interface with account settings dialog.
- fixed blocking user interface when the network is down or slow during the login.
- fixed 'eventsrc' file not being found by KMess.
- fixed 'eventsrc' warning, path should be 'kmess/eventsrc'.
- fixed compiling in Mac OS X (fink environment with KDE3/X11).
- fixed a series of potential crashes with closing the chat window.
- fixed a crash when closing the application.
- fixed a crash when downloading offline-im messages.
- fixed a crash when the contact was removed with it's chat window open.
- fixed a crash when the contact cancels a file transfer and the user is still choosing a destination folder.
- fixed a crash when the direct connection could not be initialized correctly.
- fixed a crash when a contact changes status but its chatwindow is not yet loaded.
- fixed a freeze when receiving custom emoticons from Kopete.
- fixed a freeze when starting/resuming multiple chats at the same time.
- fixed a freeze when there are too many unacked P2P messages in a chat.
- fixed a freeze when starting a file transfer with direct connections.
- fixed a possible freeze when inserting emoticons into the messages.
- fixed memory leaks in the chat window using Valgrind.
- fixed many compiler warnings.
- fixed word puzzles in translations with notification balloons.
- fixed translations for the Transfer Window messages.
- removed custom proxy support in favor of the global KDE settings.
- reduced the time KMess waits before detecting a connection error.
- updated Arabic translation by Youssef Chahibi.
- updated Danish translation by Pascal d'Hermilly.
- updated Dutch translation by Jaap Woldringh.
- updated Finnish translation by Jussi Timperi.
- updated French translation by Andrea Blankenstijn and Choplair.
- updated German translation.
- updated Hungarian translation by Páder Rezsõ.
- updated Italian translation by Vincento Reale.
- updated Spanish translation by Christian Kaiser.
- updated Swedish translation by Christian Lundgren.
- updated Thai translation by Rachan Hongpairote.
- updated Turkish translation by Uğur Çetin.
- updated Simplified Chinese translation by Liu Sizhuang.
- updated Traditional Chinese translation by Yen-chou Chen.
Changes between KMess 1.5pre2 and 1.5pre1:
--------------------------------------
- added "now playing" support, both sending and receiving.
- added file transfer preview support, both sending and receiving.
- added x-clientcaps message for third party client exchange.
- added option to disable the nudge shaking effect, completing the nudge support.
- added proper error message for webcam invitations, which are currently not supported yet.
- added support for an second incoming file transfer invitation to become client instead of server.
- added translation support for chat styles, fixed untranslated "says:" message in the chat window.
- added emoticon image conversion to the the personal status message.
- added warning message when KMess is installed in a folder where it can't find it's resources.
- added warning dialog when KMess can't find it's eventsrc file to handle notifications.
- improved visual *bold*, /italic/ and _underline_ effects, they don't hide the ASCII codes anymore.
- improved account menu's, display account handle instead of long friendly name.
- improved compatibility with Windows Live Messenger's protocol for client-to-client invitations.
- restored context menu in the chat window.
- fixed file transfers, a timer was not stopped to detect a direct connection timeout.
- fixed crash when a timeout occurs during a direct file transfer.
- fixed login problems with "restricted passport accounts".
- fixed image width/height of received custom emoticons.
- fixed link parsing, adding http:// before www. URL's, and fixed geek-style links (links without www. or http://).
- fixed unwanted resizing of the chat window when the statusbar text didn't fit.
- fixed unwanted resizing of the chat window sidebar.
- fixed contact window alignment, right-to-left names aligned randomly.
- fixed contact window updating when a group was succesfuly renamed.
- fixed lost personal status message when moving contacts.
- fixed own personal status message, it could literally become "<Enter your personal message here>".
- fixed missing right-to-left flag in sent chat messages.
- fixed message "<handle> has left the chat", displays contact name now.
- fixed missing contact name when adding new contacts.
- fixed missing "overwrite file" question when saving sent files.
- fixed tab order of the 'chatting' options panel.
- fixed revoking of sent invitations when a timeout occurred.
- fixed typing notification, these were not sent instantly when the user continues to type after sending a message.
- fixed emoticons support for KDE 3.3 and below.
- fixed emoticons installation with the installer.
- fixed compiling with automake 2.10.
- fixed compiling of the RPM with patch level KDE versions (e.g. 3.1-10).
- fixed character encoding problem in the desktop file.
- fixed filename of Estonian translation.
- updated website address, moved to www.kmess.org.
- updated Dutch translation by Jaap Woldringh.
- updated Danish translation by Pascal d'Hermilly.
- updated German translation.
- updated Finnish translation by Joonas Niilola.
- updated Hungarian translation by Páder Rezsõ.
- updated Italian translation by Valerio Pilo.
- updated Spanish translation by Jaume Corbí.
- updated Turkish translation by Uğur Çetin.
- updated Traditional Chinese translation, by Yen-chou Chen.
- added Hungarian translation by Páder Rezsõ.
- Removed ASL and unhappy icon because these are no longer used in Windows Live Messenger.
Changes between KMess 1.5pre1 and 1.4.3:
----------------------------------------
- added direct connection support, faster file transfers.
- added chat message styles. Styles can use all CSS2 features supported by KHTML.
- added emoticon themes to the chat window. They can be switched on-the-fly.
+16 -166
View File
@@ -2,171 +2,23 @@
About KMess:
============
KMess is a MSN Messenger clone for Linux. It enables Linux users
to chat with friends online who are using MSN Messenger in
Windows or Mac OS. The strength of KMess is it's integration
with the KDE desktop environment, focus on MSN Messenger
specific features and an easy-to-use interface.
KMess is a Windows Live Messenger client for Linux. It enables
Linux, Mac and even Windows users to chat with friends online
who are using the official Messenger client for Windows. The
strengths of KMess are its integration with the KDE desktop
environment, its focus on Live Messenger specific features
and an easy-to-use interface.
Like many Linux and KDE applications, KMess is free software.
The licensing terms are the GNU General Public License.
Installation Tip:
Installing KMess:
=================
In order for KMess to work properly, it must be configured first.
Run the configure script like this:
./configure
If the ./configure script completed with success, then type
make
and then, as root, type
make install
That's it.
Important:
==========
The configure script tries to detect your KDE3 directory automatically.
If configure fails to detect KDE, you should tell KMess which directory
to use. Basically, we're talking about the parent directory
of /share/apps/k~bunch of kapps~
Not doing this will result in emoticons being displayed
as text, and icons being displayed incorrectly as well.
Troubleshooting
===============
The following packages are required to install KMess:
- make
- gcc
- gcc-c++ (if available)
- qt
- kdelibs
If your distribution uses separate "devel" or "dev" packages,
make sure you have these packages installed also:
- qt-devel (or qt3-devel)
- kdelibs-devel (or kdelibs3-devel)
- x-devel (or xfree-devel/xorg-x11-devel)
- libstdc++-devel
Likely the dependencies of these "devel" packages will
be installed automatically. Some worth mentioning are:
- fontconfig-devel
- freetype2-devel
- libfam-devel (or fam-devel)
- libjpeg-devel
- libpng-devel
- zlib-devel
- libart_lgpl-devel
If configure tells you you're missing something that you think you
have installed on your system, you probably need to install the
"devel" package of that thing.
i.e. If it tells you you're missing libfam, install the libfam-devel rpm.
If you get this error:
''configure: error: no acceptable C compiler found in $PATH''
you need to install the packages "gcc" and "make".
If you get this error:
''Your Installation isn't able to compile simple C++ programs.''
you need to install "libstdc++-devel" and some distributions
also require a "gcc-c++" package for C++ support.
If you get this error:
''error: Can't find X includes. Please check your installation [...]''
you need to install the x developer packages. Depending on your distribution,
this can be something like "x-devel", "xfree-devel", "xorg-devel".
If you get this eror:
''checking for libz... configure: error: not found.''
you need to install the "zlib-devel" package.
If you get this error:
''configure: WARNING: libjpeg not found. disable JPEG support.''
you need to install the "libjpeg-devel" package.
If you get this error:
''checking for Qt... configure: error:
Qt (>= Qt 3.1 (20021021)) (headers and libraries) not found.
Please check your installation!''
you need to install the "qt-devel" (or "qt3-devel") package.
If you get this error:
''checking for KDE... configure: error:
in the prefix, you've chosen, are no KDE headers installed. This will fail.
So, check this please and use another prefix!''
you need to make sure "kdelibs-devel" (or "kdelibs3-devel") is installed!
Installing from CVS:
====================
If there is any need to install the CVS version, read on.
The KMess CVS contains the latest changes made to KMess.
Each new feature or bugfix will be stored into CVS by developers.
The code in CVS will eventually become the new KMess release.
Note that the CVS version is the equivalent
of an "alpha" or "beta" release!
The changes made to CVS could take a few days to reach
the public servers. To install KMess from CVS you need to
have the packages "autoconf" and "automake" installed.
To download the CVS version, run these commands:
cvs -d :pserver:anonymous@cvs.sf.net/cvsroot/kmess login
(hit enter when prompted for a password)
cvs -d :pserver:anonymous@cvs.sf.net/cvsroot/kmess -z3 checkout kmess
If the download succeeds, run this command:
make -f Makefile.dist
This will generate the ./configure script and Makefile templates.
Then you can proceed with the normal installation.
Each time the CVS version is updated, you can run
cvs update
make -f Makefile.dist
./configure
make
make install
and you'll have the latest KMess version installed.
Please see the INSTALL file for help with compiling and installing
KMess from source.
@@ -183,16 +35,14 @@ This is what you need to do:
- Open the language "po" file, and start translating!
Also watch for translations marked as "fuzzy",
they often need updating.
- The the following commands in the "po" folder:
make
make install
(if this doesn't work, run configure first)
- Update the translations.
- Test the new translation.
(to test other languages, run 'KDE_LANG=<code> kmess')
- Contact the KMess developers.
- Contact the KMess developers to send your changes!
A more detailed tutorial can be found online
at http://kmess.sourceforge.net/translating/
at http://trac.kmess.org/wiki/Translating%20KMess
Building RPM Packages
@@ -207,9 +57,9 @@ To build a RPM package for your distribution, run:
Building Slackware Packages
===========================
To build a TGZ package for Slackware, also run:
To build a TGZ package for Slackware, run:
rpmbuild -tb kmess-1.4.tar.gz
rpmbuild -tb kmess-2.0.tar.gz
@@ -217,5 +67,5 @@ More Information
================
For more information about KMess, help forums, and the latest
releases, visit the homepage at http://kmess.sourceforge.net/
releases, visit the homepage at http://www.kmess.org/
+5 -262
View File
@@ -1,266 +1,9 @@
Before release:
===============
___ Update Changelog, NEWS, FEATURES
___ Update version in: configure.in.in kmess.spec autopackage/default.apspec
___ Run includemocs
___ Set <UI version="3.1" ..> in *.ui files
check using: find . -name *.ui | xargs grep 'version='
___ Test P2P support with new clients, including msn 7.5, amsn, gaim, e-messenger, kopete.
___ Test rtl support with chat styles:
cd kmess/styles
for i in */*.xsl; do name=`dirname $i`; xsltproc $i examplemessage.xml > $name/test.html; done
konqueror */test.html
Creating the release:
=====================
___ Checkout CVS in a fresh directory:
mkdir kmess-ver
cvs -d ":ext:account@kmess.cvs.sourceforge.net:/cvsroot/kmess" checkout -d kmess-ver kmess
___ run make -f Makefile.dist (this also updates version from configure.in.in)
___ Remove autom4te.cache and the 'CVS' dirs.
rm -Rf autom4te.cache
find . -type d -name CVS -exec rm -Rf {} \;
___ Create the tarball.
___ Verify whether it compiles with KDE 3.2 (using Slackware 10.0 for example)
When it doesn't work, commit fixes to CVS and start over. This avoids releasing the wrong code.
___ Tag version in CVS
For bugs, future ideas, et cetera, please check our developer site
powered by trac at http://trac.kmess.org/.
If you're looking for junior jobs, you may also contact us at the
KMess help forums: http://kmess.org/board/
After release:
==============
___ Update freshmeat, kde-look, kde-announce
To do:
======
Unfinished new features:
___ Invite contacts for a new chat session when the current chat is used for file transfers.
___ Invite contacts for a new chat session when the current chat has multiple participants (display dialog to choose the contact).
___ Change mouse cursor when hovering over the "personal status message" widget, make non-active background color less dark.
___ Restore the context menu in the chat window.
___ Implement i18n() for chat styles, e.g. use libxml to replace all text nodes, create an XSLT to extract all text nodes.
___ Lookup all "TODO" items in the code.
Unfinished protocol features:
___ Integrate UPnP support with file transfer invitation code.
___ Make sure KMess can send two files at once with the classic file transfer method (test this).
___ Support a SLP Decline/error message for a sent P2P/SLP transfer invitation, and continue to transfer over the switchboard.
___ Support a second invitation for file transfers, detect when remote client only returns it's internal IP.
___ Find out how to make the other client server for file transfer (sending a second transfer-invite).
___ Update the classic FileTransfer application to use the new async-cnnect, DirectConnectionPool and showTransfer*() API.
Junior jobs:
___ Drag and drop of files in the chat window.
___ Add save log button to network window.
___ Improve wink playing, include preview, offer "play" button (also see other showWink() issues). Also fixes issues when chat is started with a wink.
___ Allow users to scale fonts in the chat window (zoom icons).
___ Fix settings for balloon notifications, see http://kmess.sourceforge.net/board/viewtopic.php?t=559
___ Fix e-mail support for non-Hotmail accounts, don't attempt to use Hotmail. Use chosen app or default KDE mail app instead).
___ Balloon size fix (2 contacts on balloon).
___ Add a balloon if the contact start the chat with an filetransfer/nudge/wink.
___ Automatically save settings when pressing OK, not when closing KMess.
___ Implement phone settings (PRP and BPR fields).
___ Implement privacy settings (GTC and BLP fields, messages like "can't chat with invited contact" because not in the AL).
___ Test whether a display picture is fully received, and remove the image from the cache otherwise.
___ Implement setEnabled() checks for the contact group context menu in KMessView::slotContextMenu().
... And if you're up for a challenge, you could try one of the "Low priority protocol features" below too.
... Or try to implement a new MSN feature (see "Future ideas" section).
Critical bugs:
___ Fix problems with clicking on contacts rapidly, see http://kmess.sourceforge.net/board/viewtopic.php?t=533
___ Fix MsnConnection::addPercents(), replace with KURL::encode_string(), but test for compatibility.
___ Restore the documentation
___ Restore the translations
Annoying bugs:
___ When the switchboard is disconnected (gray contact pictures), it's not possible to invite new contacts.
___ Display a message box if the chat logs can't be saved because the folder no longer exists.
___ New chat window with message "Contact is offline", possibly due not aborting an application.
___ Fix repeated picture transfer invitations when contact declines or aborts the invitation (preferably disable only for a few minutes).
___ Login blocks all gui-events: make all connection attempts async.
___ Fix any problems when cancelling a connection during a connection attempt.
___ Fix error messages with 'actions -> new contact' on a 'non-existing contact', 'existing contact' and 'contact without @'.
___ Fix contact list background picture scrolling
___ Add detection for NAK responses to file transfer invitations
___ Hide the register link when editing an account.
___ Replace warning message "you can't change your friendly name" with something less unobtrusive.
___ Improve settingsdialog height, for 800x600 displays.
___ Improve performance of restyling the chat window: combine xml to one string.
___ Implement cleaning up of display picture cache.
___ Contact sidebar width is not saved/restord anymore.
___ Contact sidebar width is changed when the chat window resizes.
___ Check if our eventsrc file is found in the KDE-dirs, otherwise warn KMess can't notify or flash the taskbar.
___ Fix sending/queueing of messages when the contact has not entered the chat yet (also sending 'CAL' again).
___ Make moving of contacts smoother, see MsnNotificationConnection::getAdc().
Low-priority features:
___ Add a checkbox to the settingspanel to disable the shaking window effect.
___ Implement i18n support for chat styles
___ Highlight the text of the contact list item when it's active.
___ Improve wink processing messages of `cabextract` output in ChatWindow::showWink().
___ In the emoticon settings panel, don't assume "smile.png" will always be available (parse theme, preferably with an EmoticonTheme class).
___ When chat window closes, inform user the file transfers will also abort.
___ See what happens when there is a picture transfer in a multi-chat, and: 1) a private chat with the same contact is started 2) when one of the chats becomes buzy.
___ Automaticaly clean up the kmessrc file, remove old Contact entries that are no longer used.
___ Automatically clean up the displaypics folder, and msnpicture-alias-##.png images that are older then 1 month.
___ Delete contact settings when contact no longer exists in the contact list.
___ Improve the parsing of *bold* /italics/ and _underline_, so http:/website/ does not become italic and avoid mangling <a href="http:/<i>website</i>">.
___ Disable cut/copy for the password line (InitialViewInterface, not using KPasswordEdit because it disables too much).
_N_ Create an Apt repository online
Low-priority code changes:
___ Update binreloc support to version 2.0.
___ Add Application::get..TransferAbortMessage().
___ Only allow plugins/non-local files temporary when displaying winks?
___ Implement Application::attachToChat(..) feature to improve aborting?
___ Implement a better free-port detection of DirectConnectionBase::openServerPort().
___ Create a WinkArchive class for the code in ChatWindow::showWink().
___ Include contact meta-data in receivedMessage() call in ChatWindow::showWink().
___ Fix the memory-leak of sentMessages_ for chat messages, these are only cleared at a NAK currently.
___ Use kdWarning() instead of kdDebug() << "WARNING", for warning messages.
___ Use if(KMESS_NULL(..)) checks instead of current if(.. != 0) { .. }
___ Remove the dependency on QWidget for data-classes.
___ Move chat/invitedcontact.h to the contact folder.
___ Move network/extra/httpsoapconnection to the network root folder.
___ Decouple the MsnSwitchboardConnection from the ChatWindow class, for picture transfers in the background.
Low-priority protocol features:
___ Support removing a contact from just one group.
___ Support adding contacts to multiple groups.
___ Support "now playing" by other contacts, use dcop for our status.
___ Fix detection of context field splitter in FileTransferP2P::contactStarted1..(), also needed to show image previews.
___ Improve removing contacts, offer dialog to block the contact as well (currently always kept in allowed list).
___ Detect multiple external IP addresses to advertise in file transfer invite message.
___ Support sending the data-preparation ACK later with Windows Live Messenger picture transfers.
___ Support direct connection setups when requesting contact pictures.
___ Support aborting the data-preparation, also detect when contact does this.
___ Support the datacast emulation over MSNP2P for MSNC1-compatible clients (for winks).
___ Optionally download contact pictures when the picture changed but they're not in a chat yet.
___ Test whether applications need to be aborted when the switchboard reconnects.
___ Check P2P incomingMessages_ / outgoingMessages_ cache for timeouts.
___ Leave a P2PApplication half-open to receive a final error message.
___ Make sure the proxy code works withouta sockaddr_in structure (need to test somehow).
___ Check if the mutex lock in MsnConnection is really needed anymore.
___ Use "URL PERSON/PROFILE" settings.
Whishes by users for 1.5:
___ Include a tooltip in the contact sidebar.
___ Include a contact menu in the contact sidebar (see https://www.lab.fi.uva.es/~albgonz/kmesss.jpg)
___ Improve the contact list contact menu
___ Compact sidebar list as described in http://kmess.sourceforge.net/board/viewtopic.php?t=460
(make it optional, let the user choose between "no", "compact", "full")
___ Maybe: improve chat window layout like http://kde-apps.org/content/show.php?content=24461
(looks more clean, though it's a bit kmerlin like though, and the current pictures list is not that bad for multi-chat)
___ Group off-line contacts in one single group.
Open for discussion:
___ Implement text/x-keepalive message so be sure when a contact really left a chat.
___ Implement text/x-clientcaps message and MsnObject name to advertise KMess to other third-party messengers.
___ When the contact disables it's picture, should we leave the current one active, or revert the the "unknown" picture?
Implemented:
_Y_ Upgrade to MSNP11 support (new LST commands for contact list, etc..)
_Y_ When someone adds you, they're not visible in the contactlist when they're accepted.
_Y_ Include the display icon above the contact list (too bad msn7 already implemented the same idea, makes it look like copying)
_Y_ Add nudge support (easy, and make the kmess-version less annoying, highlight of contact picture for example)
_Y_ Improve the login dialog, the selectionbox/login is confusing.
_Y_ Fix the direct login at the main page, it creates a temporary profile if an existing one already exists.
_Y_ Chat window XML/XSLT support, like http://kde-look.org/content/show.php?content=22640
_Y_ Support images/css in XSLT chat styles (locating resources, allowing <head> tags).
_Y_ Support retheming of the chat window after a new chat style is selected.
_Y_ Emoticon themes (instead of overwriting existing emoticons)
_Y_ Chat style themes (XSL files)
_Y_ When the display picture is changed, it won't be shown until the chat window reloads (caching issue, filename is still the same).
_Y_ Fix ftp://user:pass@host/ in chat conversations, requires a new message parser.
_Y_ Implement MSN6 direct connection filetransfers
_Y_ either support msn6 file sending, or support classic msn5 transfers
_Y_ Support re-use of the direct connection by other P2P applications.
_Y_ Test sending multiple files at once over msnp2p, second application should wait for first direct connection.
_Y_ Restore aborting applications when chat window is closed by user or contact.
_Y_ Support aborting the file transfer invitations before the contact accepted (send a SLP BYE, not decline).
_Y_ Handle spontaneous disconnects better, fix difference between disconnectFromServer() and closeConnection() to cleanup works correctly.
_Y_ Update the classic MsnFtpConnection to use new async-connect, and setAuthorized() API.
_Y_ Fix picture transfer timeout warnings if possible, see http://kmess.sourceforge.net/board/viewtopic.php?t=573
_Y_ Check for isPrivateChatRequired() in ChatMaster::slotSwitchboardReady().
_Y_ Support picture tranfers in a multi chat using Application::isPrivateChatRequired().
_Y_ Add invited contacts a new collection in CurrentAccount, which is cleaned up automatically when the contact left all chats.
_Y_ Move contact clientcaps field from Contact to ContactBase, making use of new JOI parameter in MSNP12.
_Y_ Fix picture transfers with invited contacts.
_Y_ Add detection for empty switchboard sessions before sending file transfer invitations.
_Y_ Fix emoticons in user names, causes problems with XSL themes.
_Y_ Add a link to "register.passport.net" somewhere
_Y_ Improve the contact list tooltip
_Y_ Fix crash when cancelling a meeting.
_Y_ Fix crash in event loop, http://kmess.sourceforge.net/board/viewtopic.php?t=543
_Y_ Fix crash from getContactActionByHandle(), see http://kmess.sourceforge.net/board/viewtopic.php?t=554
_Y_ Make sure ChatInfo gets deleted somewhere.
_Y_ Fix the saving of font settings, something it saved Comic &Sans MS
_Y_ Restore copy support in the chat window.
_Y_ Fix grouping of multiple messages, sometimes the last message can't be found.
_Y_ Support dark color schemes, e.g. NighBlack from kde-look, see http://kmess.sourceforge.net/board/viewtopic.php?t=211.
_Y_ Catch mouse clicks for the custom status text widget in the main window, change widget background (solution: http://www.qtcentre.org/forum/showthread.php?p=14022)
_N_ Fix login code for special characters in the handle/password (a comma or ä for example).
_Y_ Verify that right-to-left writing support still works, http://kmess.sourceforge.net/board/viewtopic.php?t=505
_Y_ Chat log is overwritten in some cases (leaving chat half-open?).
_Y_ Rename dk.po to da.po
_Y_ Rename CANCEL_SESSION to CANCEL_ABORT.
_Y_ Fix MsnObject friendly name, is not displayed correctly.
_Y_ Restore hotmail e-mail notifications for MSNP12 code.
_Y_ Fix problems with sending chat messages before the switchboard is connected (no contact left in to invite).
_Y_ Fix fallback to switchboard when remote server only returns internal IP or has a connection timeout.
_Y_ Fix "&Verdana" string in chat message font face tag.
_Y_ Fix 'QGArray::at: Absolute index 12 out of range' error at the console.
_Y_ Detect when passport is not verified yet, name can't be changed (USR OK parameter).
_Y_ Optimize getContactByHandle(), contactlists can have 600 items, making it slow!
_Y_ Fix temporary/guest accounts. some settings should be grayed out, contact information should not be saved.
_Y_ Password field does not respond to the "enter" button.
_Y_ Password field sometimes hangs for input.
_Y_ The "contact is offline" message is repeated because KMess keeps sending 'user is typing' messages.
_Y_ Fix Dutch abort message for invitations "u heeft gewijgerd"
Future ideas:
=============
MSN Protocol support:
___ Improve old file transfer code, multiple connections like MSN5 does.
_Y_ Implement UPnP support
___ Implement a settings category ("File transfers") where the user can at least choose:
- "[x] Allow KMess to control my internet router programmatically [learn more]"
- "Use the following port to receive UPnP broadcast responses: [default 1900]"
___ Implement STUN support, also for Connection-Type field, see http://en.wikipedia.org/wiki/STUN and http://en.wikipedia.org/wiki/UDP_hole_punching.
___ Add voice (SIP) support
___ Add Voice clips support, see http://www.hypothetic.org/docs/msn/phorum/read.php?f=1&i=11505&t=11437
___ Add webcam (RTP) support, see http://www.hypothetic.org/docs/msn/phorum/read.php?f=1&i=9837&t=9837
_Y_ Add winks support
_Y_ Add emoticon transfer support
___ Add Ink support?
___ Previews in msn file transfers for images,
___ Fix msn remote desktop invitation support (context field with user/pass)
___ Add HTTP connection method.
___ Implement MSN Spaces integration
___ Implement MSN Games support (ActicitiesCollection : public QPtrList<Activity>)
___ Implement shared folders.
___ Upgrade to MSNP14, but not until the protocol is fully understood! (it has some radical changes).
Invitation support:
___ Check whether gnomemeeting, krdc exists before starting/acceping a session
___ Support Konference for netmeeting invitations as well.
___ Detect whether gnomemeeting or konference exists before starting a netmeeting session.
Interface features:
___ Update contact properties edit dialog, icon button for contact icon.
___ Browse/view the contact picture cache (include meta data, like contact handle and date/time)
___ Show an icon overlay for contact connected with webmessenger.msn.com / MSN Mobile
___ Add contact icon (purple?) for unknown contacts added by others in a multi-chat session.
_N_ "Who has me in his/hers contact list?" dialog (allowed/removed groups already reveal this)
_N_ Include the network-window as "--with-network-window" if the network-window-code displays traffic nicer.
KDE Integration:
___ KDE-IM bridge (http://developer.kde.org/documentation/library/cvs-api/interfaces/html/classKIMIface.html)
___ GetHotNewStuff (as of KDE 3.4, either support it through a KPart, or wait for KDE 4 conversion)
___ Add "now playing" support, using dcop to query the common kde multimedia applications.
___ KWallet integration
- The KMess team
-102
View File
@@ -1,102 +0,0 @@
## generate API documentation with doxygen
apidox-am-yes:
@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$DOXDATA" ; then \
export DOXDATA=$(kde_libs_htmldir)/en/common ; \
fi ; \
abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
test -d $(top_builddir)/apidocs || \
( cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--no-modulename --installdir=$(kde_libs_htmldir)/en \
--no-recurse $(abs_top_srcdir) . ) ; \
cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--recurse --no-modulename --installdir=$(kde_libs_htmldir)/en \
$$abs_top_srcdir $(subdir)
apidox-am-toplevel-yes:
@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$ADMIN" ; then \
export DOXDATA=$(kde_libs_htmldir)/en/common ; \
fi ; \
abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--no-modulename --installdir=$(kde_libs_htmldir)/en \
$$abs_top_srcdir
## Don't generate API documentation without doxygen
apidox-am-no:
apidox-am-toplevel-no:
apidox:
@if test "$(subdir)" != "."; then \
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
else \
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
fi
install-data-local: install-apidox
## install API documentation
install-apidox:
@if test "$(subdir)" != "."; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
fi; \
if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
for file in $$list; do \
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
done; \
fi; \
else\
if test -d $(top_builddir)/apidocs; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
list=`cd $(top_builddir)/apidocs && ls -1`; \
echo "installing $(top_builddir)/apidocs/$$file" ;\
echo "target directory $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs" ; \
for file in $$list; do \
if test -f $(top_builddir)/apidocs/$$file; then \
$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
fi; \
done ; fi; \
fi
uninstall-local: uninstall-apidox
## uninstall API documentation
uninstall-apidox:
@if test "$(subdir)" != "."; then \
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
fi \
else \
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
fi \
fi
install-apidox-recurse: install-apidox
@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
list='$(SUBDIRS)'; \
for subdir in $$list; do \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \
echo "Installing apidox from $$subdir"; \
if test "$$subdir" != "."; then \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no install-apidox-recurse) || exit 1; \
fi ; fi ;\
done; \
fi
.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
# Local Variables:
# mode: makefile
# End:
-192
View File
@@ -1,192 +0,0 @@
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = NO
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 4
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
QUIET = YES
WARNINGS = NO
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_FORMAT =
WARN_LOGFILE =
INPUT =
FILE_PATTERNS = *.h \
*.cpp \
*.cc \
*.hpp \
*.dox \
*.c++ \
*.cxx \
*.h++ \
*.hh
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = *.moc.* \
moc* \
*.all_cpp.* \
*unload.* \
*/test/* \
*/tests/* \
*_p.h
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_SOURCE_FILES = NO
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
VERBATIM_HEADERS = YES
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 3
HTML_OUTPUT =
HTML_FILE_EXTENSION = .html
HTML_HEADER = ../apidocs/common/header.html
HTML_FOOTER = ../apidocs/common/footer.html
HTML_STYLESHEET = ../apidocs/common/doxygen.css
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = YES
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
GENERATE_LATEX = NO
LATEX_OUTPUT =
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
GENERATE_RTF = NO
RTF_OUTPUT =
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
GENERATE_MAN = NO
MAN_OUTPUT =
MAN_EXTENSION = .kde3
MAN_LINKS = YES
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = NO
GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
ENABLE_PREPROCESSING = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = QT_VERSION=320 \
__cplusplus \
Q_WS_X11
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = NO
PERL_PATH =
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = NO
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 800
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 0
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
SEARCHENGINE = NO
### KDE Settings
ALIASES = \
"intern=\par<b>Internal use only.</b>" \
"reimp=\par<b>Reimplemented from superclass.</b>" \
"obsolete=@deprecated" \
"feature=\xrefitem features \"Feature(s)\" \"Features\"" \
"maintainer=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \
"unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \
"requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \
"faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \
"authors=\xrefitem authors \"Author(s)\" \"Authors\"" \
"FIXME=\xrefitem fixme \"Fixme\" \"Fixme\""
HTML_ALIGN_MEMBERS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
VERBATIM_HEADERS = NO
GENERATE_HTML = YES
SOURCE_BROWSER = YES
GENERATE_AUTOGEN_DEF = NO
DETAILS_AT_TOP = YES
SORT_MEMBER_DOCS = YES
GENERATE_TODOLIST = YES
IGNORE_PREFIX = K
GENERATE_HTML = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
-37
View File
@@ -1,37 +0,0 @@
### Makefile.common
###
### Copyright (C) 2002 by the KDE developers
### All the real work is done by the shellscript cvs.sh
SHELL=/bin/sh
cvs dist configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4 extract-messages:
@admindir=$(admindir); \
if test "x$$admindir" = x; then \
admindir=.; until test -f $$admindir/admin/cvs.sh; do \
admindir=$$admindir/..; \
if test `cd $$admindir && pwd` = / ; then break; fi; \
done; \
admindir=$$admindir/admin; \
if test -f $$admindir/cvs.sh; then :; else \
echo "Can't find the admin/ directory in any parent of the"; \
echo "current directory. Please set it with admindir=..."; \
exit 1; \
fi; \
fi; \
if test "$@" = "package-merge"; then \
MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
$(SHELL) $$admindir/cvs.sh package-merge ;\
else \
MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
fi
configure.in: configure.files subdirs
configure.files: subdirs
svn: cvs
.SILENT:
.PHONY: svn cvs dist package-merge package-messages
File diff suppressed because it is too large Load Diff
-2445
View File
File diff suppressed because it is too large Load Diff
-157
View File
@@ -1,157 +0,0 @@
#!/usr/bin/perl -w
use DB_File;
use Fcntl ':flock';
if (!defined($ARGV[0])) {
print "usage: requires .class dump as parameter!\n";
exit;
}
sub bailout
{
untie %bcheckdb if(defined(%bcheckdb));
if(defined(MYLOCK)) {
flock MYLOCK, LOCK_UN;
close(MYLOCK);
}
print @_;
exit 5;
}
sub ask_user
{
my ($dbkey, $dbchunk) = @_;
if (defined($ENV{"BCHECK_UPDATE"})) {
$bcheckdb{$dbkey} = $dbchunk;
return;
}
&bailout("BC problem detected") if (! -t STDIN);
print "(I)gnore / (Q)uit / (U)pdate: ";
my $key;
while(defined(read STDIN, $key, 1)) {
$key = lc($key);
print "got: >$key<\n";
return if ($key eq 'i');
&bailout("BC problem. aborted") if ($key eq 'q');
if ($key eq 'u') {
$bcheckdb{$dbkey} = $dbchunk;
return;
}
print "\n(I)gnore / (Q)uit / (U)pdate: ";
}
}
sub diff_chunk($$)
{
my ($oldl, $newl) = @_;
my @old = split /^/m, $oldl;
my @new = split /^/m, $newl;
my $haschanges = 0;
my $max = $#old > $#new ? $#old : $#new;
die "whoops. key different" if ($old[0] ne $new[0]);
if ($#old != $#new) {
warn ("Structural difference.\n");
print @old;
print "-----------------------------------------------\n";
print @new;
$haschanges = 1;
return $haschanges;
}
print $old[0];
my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
my $c = 1;
while ($c < $max) {
my ($o, $n) = ($old[$c], $new[$c]);
chomp $o;
chomp $n;
$c++;
next if ($o eq $n);
if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
next if ($n eq "$1$class$2");
}
$haschanges = 1;
print "-$o\n+$n\n\n";
}
return $haschanges;
}
local $dblock = $ENV{"HOME"} . "/bcheck.lock";
my $dbfile = $ENV{"HOME"} . "/bcheck.db";
my $cdump = $ARGV[0];
die "file $cdump is not readable: $!" if (! -f $cdump);
# make sure the advisory lock exists
open(MYLOCK, ">$dblock");
print MYLOCK "";
flock MYLOCK, LOCK_EX;
tie %bcheckdb, 'DB_File', $dbfile;
my $chunk = "";
open (IN, "<$cdump") or die "cannot open $cdump: $!";
while (<IN>) {
chop;
s/0x[0-9a-fA-F]+/0x......../g;
s/base size=/size=/g;
s/\(\)\s*$//g;
s/base align=/align=/g;
$chunk .= $_ . "\n";
if(/^\s*$/) {
my @lines = split /^/m, $chunk;
my $key = $lines[0];
chomp $key;
if($key !~ /<anonymous struct>/ &&
$key !~ /<anonymous union>/) {
if(defined($bcheckdb{$key})) {
my $dbversion = $bcheckdb{$key};
if($dbversion ne $chunk) {
&ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
}
}
else {
$bcheckdb{$key} = $chunk;
print "NEW: $key\n";
}
}
$chunk = "";
next;
}
}
close(IN);
untie %bcheckdb;
flock MYLOCK, LOCK_UN;
close(MYLOCK);
exit 0;
-142
View File
@@ -1,142 +0,0 @@
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
scriptversion=2005-05-14.22
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand `-c -o'.
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file `INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
esac
ofile=
cfile=
eat=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we strip `-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no `-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
-191
View File
@@ -1,191 +0,0 @@
#!/usr/bin/env perl
# this script patches a config.status file, to use our own perl script
# in the main loop
# we do it this way to circumvent hacking (and thereby including)
# autoconf function (which are GPL) into our LGPL acinclude.m4.in
# written by Michael Matz <matz@kde.org>
# adapted by Dirk Mueller <mueller@kde.org>
#
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
# we have to change two places
# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
# later autoconf's
# 2. the big main loop which patches all Makefile.in's
use strict;
use File::Basename;
my $ac_aux_dir = dirname($0);
my ($flag);
my $ac_version = 0;
my $vpath_seen = 0;
$flag = 0;
while (<>) {
# usage of $flag: 0 -- we have seen nothing yet
# 1 -- we are in (1)
# 2 -- we have ended (1)
# 3 -- we are in (2)
# 4 -- we ended (2)
if ($flag == 4) {
print;
} elsif ($flag == 0) {
# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
# ends with (excluding) "CONFIG_FILE=..."
# in later autoconf (2.14.1) there is no CONFIG_FILES= line,
# but instead the (2) directly follow (1)
if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
$flag = 1;
if ($1 eq 'lines') {
# lets hope its different with 2141,
# wasn't able to verify that
if ($2 eq '48') {
$ac_version = 250;
}
else {
$ac_version = 2141;
}
} elsif ($1 eq 'cmds') {
$ac_version = 213;
}
# hmm, we don't know the autoconf version, but we try anyway
} else {
print;
}
} elsif ($flag == 1) {
if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
print;
$flag = 2;
} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
$flag = 3;
}
} elsif ($flag == 2) {
# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1))
# end with: "rm -f conftest.s\*"
# on autoconf 250, it ends with '# CONFIG_HEADER section'
#
# gg: if a post-processing commands section is found first,
# stop there and insert a new loop to honor the case/esac.
# (pattern: /^\s+#\sRun the commands associated with the file./)
if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
$flag = 3;
} else {
print;
}
} elsif ($flag == 3) {
if (/^\s*rm\s+-f\s+conftest/ ) {
$flag = 4;
&insert_main_loop();
} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
$flag = 4;
&insert_main_loop();
#die "hhhhhhh";
if ($ac_version != 2141) {
print STDERR "hmm, don't know autoconf version\n";
}
} elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
$flag = 4;
my $commands = defined $2;
&insert_main_loop();
$commands && insert_command_loop();
if($ac_version != 250) {
print STDERR "hmm, something went wrong :-(\n";
}
} elsif (/VPATH/ ) {
$vpath_seen = 1;
}
}
}
die "wrong input (flag != 4)" unless $flag == 4;
print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
sub insert_main_loop {
if ($ac_version == 250) {
&insert_main_loop_250();
}
else {
&insert_main_loop_213();
}
}
sub insert_main_loop_250 {
print <<EOF;
#echo Doing the fast build of Makefiles -- autoconf $ac_version
EOF
if ($vpath_seen) {
print <<EOF;
# VPATH subst was seen in original config.status main loop
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >>\$tmp/subs.sed
EOF
}
print <<EOF;
rm -f \$tmp/subs.files
for ac_file in .. \$CONFIG_FILES ; do
if test "x\$ac_file" != x..; then
echo \$ac_file >> \$tmp/subs.files
fi
done
if test -f \$tmp/subs.files ; then
perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
fi
rm -f \$tmp/subs.files
fi
EOF
return;
}
sub insert_main_loop_213 {
print <<EOF;
#echo Doing the fast build of Makefiles -- autoconf $ac_version
if test "x\$ac_cs_root" = "x" ; then
ac_cs_root=conftest
fi
EOF
if ($vpath_seen) {
print <<EOF;
# VPATH subst was seen in original config.status main loop
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >> \$ac_cs_root.subs
EOF
}
print <<EOF;
rm -f \$ac_cs_root.sacfiles
for ac_file in .. \$CONFIG_FILES ; do
if test "x\$ac_file" != x..; then
echo \$ac_file >> \$ac_cs_root.sacfiles
fi
done
if test -f \$ac_cs_root.sacfiles ; then
perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
fi
rm -f \$ac_cs_root.s*
EOF
return;
}
sub insert_command_loop {
print <<EOF;
for ac_file in .. \$CONFIG_FILES ; do
EOF
}
-1464
View File
File diff suppressed because it is too large Load Diff
-238
View File
@@ -1,238 +0,0 @@
#!/usr/bin/env perl
# a script for use by autoconf to make the Makefiles
# from the Makefile.in's
#
# the original autoconf mechanism first splits all substitutions into groups
# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
# (so around 2-3 times per Makefile.in). So this takes forever, as sed
# has to recompile the regexps every time.
#
# this script does better. It changes all Makefile.ins in one process.
# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
#
# written by Michael Matz <matz@kde.org>
# adapted by Dirk Mueller <mueller@kde.org>
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
use strict;
use File::Path;
my $ac_subs=$ARGV[0];
my $ac_sacfiles = $ARGV[1];
my $ac_given_srcdir=$ARGV[2];
my $ac_given_INSTALL=$ARGV[3];
my @comp_match;
my @comp_subs;
#print "ac_subs=$ac_subs\n";
#print "ac_sacfiles=$ac_sacfiles\n";
#print "ac_given_srcdir=$ac_given_srcdir\n";
#print "ac_given_INSTALL=$ac_given_INSTALL\n";
my $configure_input;
my ($srcdir, $top_srcdir);
my $INSTALL;
my $bad_perl = ($] < 5.005);
my $created_file_count = 0;
open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
my @subs = <CF>;
my $pat;
close(CF);
chomp @subs;
@comp_match=();
@comp_subs=();
if ($bad_perl) {
print "Using perl older than version 5.005\n";
foreach $pat (@subs) {
if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
|| ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
|| ($pat =~ m/s,([^,]*),(.*),;t/)
|| ($pat =~ m%s/([^/]*)/([^/]*)/g% )
|| ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
) {
# form : s%bla%blubb%g
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
# or s,bla,blubb,;t t (autoconf 2.52)
my $srch = $1;
my $repl = $2;
$repl =~ s/\\(.)/$1/g;
push @comp_subs, make_closure($srch, $repl);
} elsif ( ($pat =~ /%([^%]*)%d/ )
|| ($pat =~ m%/([^/]*)/d% )
) {
push @comp_subs, make_closure($1, "");
} else {
die "Uhh. Malformed pattern in $ac_subs ($pat)"
unless ( $pat =~ /^\s*$/ ); # ignore white lines
}
}
} else {
foreach $pat (@subs) {
if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
($pat =~ /s,([^,]*),(.*),;t/) ) {
# form : s%bla%blubb%g
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
# or s,bla,blubb,;t t (autoconf 2.52)
my $srch = $1;
my $repl = $2;
push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern
$repl =~ s/\\(.)/$1/g;
push @comp_subs, $repl;
} elsif ( ($pat =~ /%([^%]*)%d/ )
|| ($pat =~ m%/([^/]*)/d% )
) {
push @comp_match, eval "qr/\Q$1\E/";
push @comp_subs, "";
} else {
die "Uhh. Malformed pattern in $ac_subs ($pat)"
unless ( $pat =~ /^\s*$/ ); # ignore white lines
}
}
}
undef @subs;
# read the list of files to be patched, form:
# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
my @ac_files = <CF>;
close(CF);
chomp @ac_files;
my $ac_file;
foreach $ac_file (@ac_files) {
next if $ac_file =~ /\.\./;
next if $ac_file =~ /^\s*$/;
my $ac_file_in;
my ($ac_dir, $ac_dots, $ac_dir_suffix);
if ($ac_file =~ /.*:.*/ ) {
($ac_file_in = $ac_file) =~ s%[^:]*:%%;
$ac_file =~ s%:.*%%;
} else {
$ac_file_in = $ac_file.".in";
}
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
# Remove last slash and all that follows it. Not all systems have dirname.
($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
# The file is in a subdirectory.
if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
($ac_dir_suffix = $ac_dir) =~ s%^./%%;
$ac_dir_suffix="/".$ac_dir_suffix;
# A "../" for each directory in $ac_dir_suffix.
($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
} else {
$ac_dir_suffix="";
$ac_dots="";
}
if ($ac_given_srcdir eq ".") {
$srcdir=".";
if ($ac_dots) {
( $top_srcdir = $ac_dots) =~ s%/$%%;
} else { $top_srcdir="."; }
} elsif ($ac_given_srcdir =~ m%^/%) {
$srcdir=$ac_given_srcdir.$ac_dir_suffix;
$top_srcdir = $ac_given_srcdir;
} else {
$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
$top_srcdir = $ac_dots.$ac_given_srcdir;
}
if ($ac_given_INSTALL) {
if ($ac_given_INSTALL =~ m%^/% ) {
$INSTALL = $ac_given_INSTALL;
} else {
$INSTALL = $ac_dots.$ac_given_INSTALL;
}
}
print "fast creating $ac_file\n";
unlink $ac_file;
my $ac_comsub="";
my $fname=$ac_file_in;
$fname =~ s%.*/%%;
$configure_input="$ac_file. Generated from $fname by config.pl.";
my $ac_file_inputs;
($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
$ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
patch_file($ac_file, $ac_file_inputs);
++$created_file_count;
}
print "config.pl: fast created $created_file_count file(s).\n";
sub patch_file {
my ($outf, $infiles) = @_;
my $filedata;
my @infiles=split(' ', $infiles);
my $i=0;
my $name;
foreach $name (@infiles) {
if (open(CF, "< $name")) {
while (<CF>) {
$filedata .= $_;
}
close(CF);
} else {
print STDERR "can't open $name: $!"."\n";
}
}
$filedata =~ s%\@configure_input\@%$configure_input%g;
$filedata =~ s%\@srcdir\@%$srcdir%g;
$filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
$filedata =~ s%\@INSTALL\@%$INSTALL%g;
if ($bad_perl) {
while ($i <= $#comp_subs) {
my $ref = $comp_subs[$i];
&$ref(\$filedata);
$i++;
}
} else {
while ($i <= $#comp_match) {
$filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
$i++;
}
}
open(CF, "> $outf") || die "can't create $outf: $!";
print CF $filedata;
close(CF);
}
sub make_closure {
my ($pat, $sub) = @_;
my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
if ($@) {
print "can't create CODE: $@\n";
}
return $ret;
}
-1575
View File
File diff suppressed because it is too large Load Diff
-45
View File
@@ -1,45 +0,0 @@
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
# And if so, warn when they don't match
if test "$kde_libs_prefix" != "$given_prefix"; then
# And if kde doesn't know about the prefix yet
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
if test $? -ne 0; then
echo ""
echo "Warning: you chose to install this package in $given_prefix,"
echo "but KDE was found in $kde_libs_prefix."
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
echo "Then restart KDE."
echo ""
fi
fi
fi
if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
echo ""
echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
echo "was not included. Therefore, GCC symbol visibility support remains disabled."
echo ""
echo "For better performance, consider including the Qt visibility supporting patch"
echo "located at:"
echo ""
echo "http://bugs.kde.org/show_bug.cgi?id=109386"
echo ""
echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
echo "everything will continue to work just fine without it."
echo ""
fi
if test "$all_tests" = "bad"; then
if test ! "$cache_file" = "/dev/null"; then
echo ""
echo "Please remove the file $cache_file after changing your setup"
echo "so that configure will find the changes next time."
echo ""
fi
else
echo ""
echo "Good - your configure finished. Start make now"
echo ""
fi
-57
View File
@@ -1,57 +0,0 @@
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
dnl Boston, MA 02110-1301, USA.
# Original Author was Kalle@kde.org
# I lifted it in some mater. (Stephan Kulow)
# I used much code from Janos Farkas
dnl Process this file with autoconf to produce a configure script.
AC_INIT(acinclude.m4) dnl a source file from your sub dir
dnl This is so we can use kde-common
AC_CONFIG_AUX_DIR(admin)
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH
dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM
dnl Perform program name transformation
AC_ARG_PROGRAM
dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
KDE_SET_PREFIX
dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
dnl Checks for programs.
AC_CHECK_COMPILERS
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL
dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS
dnl KDE_USE_QT
AC_PATH_KDE
-661
View File
@@ -1,661 +0,0 @@
#! /bin/sh
#
# cvs.sh
#
# This file contains support code from Makefile.common
# It defines a shell function for each known target
# and then does a case to call the correct function.
unset MAKEFLAGS
call_and_fix_autoconf()
{
$AUTOCONF || exit 1
if test -r configure.in.in ; then
perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
\\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
\\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
\\n rm -f \\\$CONFIG_STATUS.bak\\nfi\
\\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
fi
}
strip_makefile()
{
if test ! -f $makefile_wo; then
perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
fi
}
check_autotool_versions()
{
required_autoconf_version="2.53 or newer"
AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
case $AUTOCONF_VERSION in
Autoconf*2.5* | autoconf*2.5* | autoconf*2.6* ) : ;;
"" )
echo "*** AUTOCONF NOT FOUND!."
echo "*** KDE requires autoconf $required_autoconf_version"
exit 1
;;
* )
echo "*** YOU'RE USING $AUTOCONF_VERSION."
echo "*** KDE requires autoconf $required_autoconf_version"
exit 1
;;
esac
AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
case $AUTOHEADER_VERSION in
Autoconf*2.5* | autoheader*2.5* | autoheader*2.6* ) : ;;
"" )
echo "*** AUTOHEADER NOT FOUND!."
echo "*** KDE requires autoheader $required_autoconf_version"
exit 1
;;
* )
echo "*** YOU'RE USING $AUTOHEADER_VERSION."
echo "*** KDE requires autoheader $required_autoconf_version"
exit 1
;;
esac
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
required_automake_version="1.6.1 or newer"
case $AUTOMAKE_STRING in
automake*1.5d* | automake*1.5* | automake*1.5-* )
echo "*** YOU'RE USING $AUTOMAKE_STRING."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9*)
echo "*** $AUTOMAKE_STRING found."
UNSERMAKE=no
;;
"" )
echo "*** AUTOMAKE NOT FOUND!."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
*unsermake* ) :
echo "*** YOU'RE USING UNSERMAKE."
echo "*** GOOD LUCK!! :)"
UNSERMAKE=unsermake
;;
* )
echo "*** YOU'RE USING $AUTOMAKE_STRING."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
esac
unset required_automake_version
}
cvs()
{
check_autotool_versions
acinclude_m4
### Make new subdirs and configure.in.
### The make calls could be optimized away here,
### with a little thought.
if test -r configure.in.in; then
rm -f configure.in
echo "*** Creating list of subdirectories"
create_subdirs
if test -r Makefile.am.in; then
echo "*** Creating Makefile.am"
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
else
Makefile_am
fi
fi
configure_files
echo "*** Creating configure.in"
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
else
configure_in
fi
fi
echo "*** Creating aclocal.m4"
$ACLOCAL $ACLOCALFLAGS || exit 1
echo "*** Creating configure"
call_and_fix_autoconf
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
echo "*** Creating config.h template"
$AUTOHEADER || exit 1
touch config.h.in
fi
echo "*** Creating Makefile templates"
$AUTOMAKE || exit 1
if test "$UNSERMAKE" = no; then
echo "*** Postprocessing Makefile templates"
perl -w admin/am_edit || exit 1
fi
if egrep "^cvs-local:" $makefile_am >/dev/null; then \
strip_makefile
$MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
fi
echo "*** Creating date/time stamp"
touch stamp-h.in
echo "*** Finished"
echo " Don't forget to run ./configure"
echo " If you haven't done so in a while, run ./configure --help"
}
dist()
{
check_autotool_versions
###
### First build all of the files necessary to do just "make"
###
acinclude_m4
if test -r configure.in.in; then
rm -f configure.in
create_subdirs
if test -r Makefile.am.in; then
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
else
Makefile_am
fi
fi
configure_files
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
else
configure_in
fi
fi
$ACLOCAL $ACLOCALFLAGS
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
echo "*** Creating config.h template"
$AUTOHEADER || exit 1
touch config.h.in
fi
$AUTOMAKE --foreign || exit 1
if test "$UNSERMAKE" = no; then
echo "*** Postprocessing Makefile templates"
perl -w admin/am_edit || exit 1
fi
call_and_fix_autoconf
touch stamp-h.in
if grep "^cvs-local:" $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo cvs-local top_srcdir=.
fi
###
### Then make messages
###
if test -d po; then
LIST=`find ./po -name "*.po"`
for i in $LIST; do
file2=`echo $i | sed -e "s#\.po#\.gmo#"`
msgfmt -o $file2 $i || touch $file2
done
fi
if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
fi
}
subdir_dist()
{
$ACLOCAL $ACLOCALFLAGS
$AUTOHEADER
touch config.h.in
$AUTOMAKE
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
case $AUTOMAKE_STRING in
*unsermake* ) :
;;
*)
perl -w ../admin/am_edit --path=../admin
esac
call_and_fix_autoconf
touch stamp-h.in
}
configure_in()
{
rm -f configure.in configure.in.new
kde_use_qt_param=
test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
: > configure.in.new
for file in $list; do
echo "dnl =======================================================" >> configure.in.new
echo "dnl FILE: $file" >> configure.in.new
echo "dnl =======================================================" >> configure.in.new
echo "" >> configure.in.new
cat $file >> configure.in.new
done
echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
if test -f Makefile.am.in; then
subdirs=`cat subdirs`
for dir in $subdirs; do
vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
if test -f "$dir/configure.in"; then
echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
echo "fi" >> configure.in.new
fi
done
fi
echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
if test -f inst-apps; then
topleveldirs=`cat inst-apps`
else
topleveldirs=
for dir in `ls -1d * | sort`; do
if test "$dir" != "debian" && test -d $dir; then
topleveldirs="$topleveldirs $dir"
fi
done
fi
for topleveldir in $topleveldirs; do
if test -f $topleveldir/configure.in; then
continue
fi
if test -f $topleveldir/Makefile.am; then :; else
continue
fi
mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \
sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
for i in $mfs; do
echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
done
done
files=`cat configure.files`
list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
for file in $list; do
echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new
done
midfiles=`cat configure.files | fgrep "configure.in.mid"`
test -n "$midfiles" && cat $midfiles >> configure.in.new
echo "AC_OUTPUT" >> configure.in.new
modulename=
if test -f configure.in.in; then
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
fi
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
if test -n "$line"; then
modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
fi
sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
configure.in.new > configure.in && mv configure.in configure.in.new
fi
fi
if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
VERSION="\"3.5.3\""
fi
if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
modulename=`pwd`;
modulename=`basename $modulename`
esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
fi
if test -n "$kde_use_qt_param"; then
sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
configure.in.new > configure.in && mv configure.in configure.in.new
fi
sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
sed -e "s#@VERSION@#$VERSION#" > configure.in
botfiles=`cat configure.files | egrep "configure.in.bot"`
test -n "$botfiles" && cat $botfiles >> configure.in
cat $admindir/configure.in.bot.end >> configure.in
rm -f configure.in.new
}
configure_files()
{
echo "*** Creating configure.files"
admindir=NO
for i in . .. ../.. ../../..; do
if test -x $i/admin; then admindir=$i/admin; break; fi
done
rm -f configure.files
touch configure.files
if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
echo $admindir/configure.in.min >> configure.files
fi
test -f configure.in.in && echo configure.in.in >> configure.files
# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
if test -f inst-apps; then
inst=`cat inst-apps`
list=""
for i in $inst; do
list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
done
else
list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
fi
for i in $list; do if test -f $i && test `dirname $i` != "." ; then
echo $i >> configure.files
fi; done
test -f configure.in.mid && echo configure.in.mid >> configure.files
test -f configure.in.bot && echo configure.in.bot >> configure.files
if test ! -s configure.files; then
echo "There are no files to build a configure. Please check your checkout."
exit 1
fi
}
create_subdirs()
{
if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then
# as many modules contain rules to create subdirs without any
# dependencies make won't create it unless there is no file.
# so we check if that's a dummy rule or one that works
rm -f subdirs.cvs.sh.$$
if test -f subdirs; then
mv subdirs subdirs.cvs.sh.$$
fi
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
if test -f subdirs.cvs.sh.$$; then
if test -s subdirs; then
rm subdirs.cvs.sh.$$
else
mv subdirs.cvs.sh.$$ subdirs
fi
fi
else
subdirs
fi
}
subdirs()
{
dirs=
idirs=
if test -f inst-apps; then
idirs=`cat inst-apps`
else
idirs=`ls -1 | sort`
fi
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
for i in $idirs; do
if test -f $i/Makefile.am; then
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
fi
done
: > ./_SUBDIRS
for d in $compilefirst; do
echo $d >> ./_SUBDIRS
done
(for d in $dirs; do
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
for s in $list; do
echo $s $d
done
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
for s in $list; do
echo $d $s
done
echo $d $d
done ) | tsort >> ./_SUBDIRS
for d in $compilelast; do
echo $d >> ./_SUBDIRS
done
if test -r subdirs && cmp -s subdirs _SUBDIRS; then
rm -f _SUBDIRS
fi
test -r _SUBDIRS && mv _SUBDIRS subdirs || true
}
Makefile_am()
{
if test -f Makefile.am.in; then
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
idirs=
dirs=
if test -f inst-apps; then
idirs=`cat inst-apps`
else
idirs=`cat subdirs`
fi
for i in $idirs; do
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
done
adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
if echo "$adds" | fgrep "*" >/dev/null ; then
adds=`ls -d -1 $adds 2>/dev/null`
fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
str='$(top_srcdir)/acinclude.m4:'
for add in $adds; do
str="$str \$(top_srcdir)/$add"
done
echo $str >> Makefile.am.in.adds
else
cat Makefile.am.in > Makefile.am.in.adds
fi
cat Makefile.am.in.adds | \
sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
rm Makefile.am.in.adds
fi
}
acinclude_m4()
{
echo "*** Creating acinclude.m4"
adds=
if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
strip_makefile
rm -f acinclude.m4
adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
if echo $adds | fgrep "*" >/dev/null ; then
adds=`ls -d -1 $adds 2>/dev/null`
else
$MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
fi
else
rm -f acinclude.m4
fi
# if it wasn't created up to now, then we do it better
if test ! -f acinclude.m4; then
cat admin/acinclude.m4.in admin/libtool.m4.in admin/pkg.m4.in $adds > acinclude.m4
fi
}
package_merge()
{
catalogs=$POFILES
for cat in $catalogs; do
msgmerge -o $cat.new $cat $PACKAGE.pot
if test -s $cat.new; then
grep -v "\"POT-Creation" $cat.new > $cat.new.2
grep -v "\"POT-Creation" $cat >> $cat.new.1
if diff $cat.new.1 $cat.new.2; then
rm $cat.new
else
mv $cat.new $cat
fi
rm -f $cat.new.1 $cat.new.2
fi
done
}
extract_messages()
{
podir=${podir:-$PWD/po}
files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
dirs=`for i in $files; do echo \`dirname $i\`; done`
tmpname="$PWD/messages.log"
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
export EXTRACTRC PREPARETIPS
for subdir in $dirs; do
test -z "$VERBOSE" || echo "Making messages in $subdir"
(cd $subdir
if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
$EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
else
candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
if test -n "$candidates"; then
echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
fi
fi
if find . -name \*.c\* -o -name \*.h\* | fgrep -v ".svn" | xargs fgrep -s -q KAboutData ; then
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
else echo " " > _translatorinfo.cpp
fi
perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot
if ! test -f $kdepotpath; then
kdepotpath=`kde-config --expandvars --prefix`/include/kde.pot
fi
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \
XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages
exit_code=$?
if test "$exit_code" != 0; then
echo "make exit code: $exit_code"
fi
) 2>&1 | grep -v '^make\[1\]' > $tmpname
test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
rm -f $subdir/_translatorinfo.cpp
rm -f $subdir/_transMakefile
done
rm -f $tmpname
}
package_messages()
{
rm -rf po.backup
mkdir po.backup
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
cat po/$i > po.backup/backup_$i
touch -r po/$i po.backup/backup_$i
rm po/$i
done
extract_messages
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
test -f po/$i || echo "disappeared: $i"
done
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
#msgmerge -q -o po/$i po/$i po/$i
egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then
echo "will update $i"
else
if test -f po.backup/backup_$i; then
test -z "$VERBOSE" || echo "I'm restoring $i"
mv po.backup/backup_$i po/$i
rm po.backup/$i
else
echo "will add $i"
fi
fi
done
rm -f temp.pot
rm -rf po.backup
}
# Make sure that sorting is always done the same way
LC_ALL=C
export LC_ALL
unset LANG || :
unset LC_CTYPE || :
unset LANGUAGE || :
unset CDPATH || :
admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
test "x$admindir" = "x$0" && admindir=.
test "x$MAKE" = x && MAKE=make
makefile_am=Makefile.am
makefile_wo=Makefile.am.wo
if test -f Makefile.am.in; then
makefile_am=Makefile.am.in
makefile_wo=Makefile.am.in.wo
rm -f $makefile_wo
fi
# Call script to find autoconf and friends. Uses eval since the script outputs
# sh-compatible code.
eval `$admindir/detect-autoconf.pl`
###
### Main
###
arg=`echo $1 | tr .- __`
case $arg in
cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;;
configure ) call_and_fix_autoconf ;;
* ) echo "Usage: cvs.sh <target>"
echo "Target can be one of:"
echo " cvs svn dist"
echo " configure.in configure.files"
echo " package-merge package-messages"
echo ""
echo "Usage: anything but $1"
exit 1 ;;
esac
if test -f $makefile_wo; then
rm $makefile_wo
fi
exit 0
-43
View File
@@ -1,43 +0,0 @@
#!/usr/bin/perl -w
use Shell qw(mv cp mkdir rm) ;
use File::Find;
use Cwd;
$origPwd = `pwd`;
chomp $origPwd;
$kde_prefix = "/usr";
$sysconfdir = "/etc";
$kde_includedir = "$kde_prefix/include/kde";
$infodir = "$kde_prefix/share/info";
$mandir = "$kde_prefix/share/man";
$qtdir = "/usr/share/qt3";
$kde_cgidir = "$kde_prefix/lib/cgi-bin";
$kde_confdir = "$sysconfdir/kde3";
$kde_htmldir = "$kde_prefix/share/doc/kde/HTML";
if (defined $ENV{DEB_BUILD_OPTIONS} &&
$ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) {
$enable_debug="--enable-debug=full";
} else {
$enable_debug="--disable-debug";
}
if (@ARGV && $ARGV[0] eq 'echodirs') {
print STDOUT "export kde_prefix=$kde_prefix\n";
print STDOUT "export sysconfdir=$sysconfdir\n";
print STDOUT "export kde_includedir=$kde_includedir\n";
print STDOUT "export infodir=$infodir\n";
print STDOUT "export mandir=$mandir\n";
print STDOUT "export qtdir=$qtdir\n";
print STDOUT "export kde_cgidir=$kde_cgidir\n";
print STDOUT "export kde_confdir=$kde_confdir\n";
print STDOUT "export kde_htmldir=$kde_htmldir\n";
print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n";
exit
}
-530
View File
@@ -1,530 +0,0 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2005-07-09.11
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test -f "$tmpdepfile"; then :
else
stripped=`echo "$stripped" | sed 's,^.*/,,'`
tmpdepfile="$stripped.u"
fi
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mecanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no
for arg in "$@"; do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
for arg
do
case "$arg" in
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
-19
View File
@@ -1,19 +0,0 @@
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh $(top_srcdir)/admin/pkg.m4.in
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4
$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in
$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES)
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh
$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am
$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs
# defining default rules for files that may not be present
$(top_srcdir)/Makefile.am.in:
$(CONF_FILES):
-173
View File
@@ -1,173 +0,0 @@
#!/usr/bin/env perl
# Try to locate best version of auto*
# By Michael Pyne <michael.pyne@kdemail.net>
#
# Copyright (c) 2005.
# This code is public domain. You may use it however you like (including
# relicensing).
# Emulate the 'which' program.
sub which
{
my $prog = shift;
my @paths = split(/:/, $ENV{'PATH'});
for $path (@paths)
{
return "$path/$prog" if -x "$path/$prog";
}
return "";
}
# Subroutine to determine the highest installed version of the given program,
# searching from the given paths.
sub findBest
{
my ($program, @paths) = @_;
my $best_version_found = '0'; # Deliberately a string.
my %versions;
my %minimumVersions = (
'autoconf' => '2.5',
'automake' => '1.6',
);
# Allow user to use environment variable to override search.
return $ENV{uc $program} if $ENV{uc $program};
for $prefix (@paths)
{
@files = glob "$prefix/$program*";
for $file (@files)
{
# Don't check non-executable scripts.
next unless -x $file;
($version) = $file =~ /$prefix\/$program-?(.*)$/;
$version =~ s/-|\.//g;
# Special case some programs to make sure it has a minimum version.
if (not $version and exists $minimumVersions{$program})
{
my $min_version = $minimumVersions{$program};
my $versionOutput = `$program --version 2>/dev/null | head -n 1`;
# If we can't run the script to get the version it likely won't work later.
next unless $versionOutput;
# Use number.number for version (we don't need the excess in general).
($versionOutput) = ($versionOutput =~ /(\d\.\d)/);
# Use lt to do lexicographical comparison of strings (which should be
# equivalent and doesn't involve issues with floating point conversions).
if (not $versionOutput or $versionOutput lt $min_version)
{
next;
}
}
# If no version suffix then use it in favor of a versioned autotool
# since the ever-popular WANT_AUTOFOO should then work (in theory).
return $file unless $version;
# Emulate 'which', and abort if we've already seen this version.
next if exists $versions{$version};
# Save filename of program.
$versions{$version} = $file;
# Use string comparison so that e.g. 253a will be > 253 but < 254.
if ($version gt $best_version_found)
{
$best_version_found = $version;
}
}
}
return $versions{$best_version_found};
}
# Find an appropriate "which" program for later use by the shell script calling
# us.
sub findWhich
{
for $candidate ('type -p', 'which', 'type')
{
$test = `$candidate sh 2>/dev/null`;
chomp $test;
return $candidate if -x $test;
}
}
# Uses which() to find a program unless the user provided its path in the
# environment (the upper case program name is searched).
sub findProgram
{
$suffix = ""; # For use if @_ has only one param.
my ($program, $suffix) = @_;
return $ENV{uc $program} if $ENV{uc $program};
return which("$program$suffix");
}
# SCRIPT STARTS.
# Search in path.
@paths = split(/:/, $ENV{'PATH'});
# Make sure at least /usr/bin and /usr/local/bin are in this search.
unshift @paths, '/usr/local/bin' unless grep $_ eq '/usr/local/bin', @paths;
unshift @paths, '/usr/bin' unless grep $_ eq '/usr/bin', @paths;
$autoconf = findBest('autoconf', @paths);
($autoconf_suffix) = $autoconf =~ /.*autoconf(.*)$/;
# Find matching autoconf companions.
$autoheader = findProgram('autoheader', $autoconf_suffix);
$autom4te = findProgram('autom4te', $autoconf_suffix);
# Get best automake, and look for unsermake to possibly override it.
$automake = findBest('automake', @paths);
$unsermake = "";
# backward compatible: if $UNSERMAKE points to a path, use it
$unsermake = findProgram('unsermake') if (defined($ENV{'UNSERMAKE'}) and $ENV{'UNSERMAKE'} =~ /\//);
# new compatible: if it says 'yes', use the one from path
$unsermake = which('unsermake') if ($ENV{'UNSERMAKE'} eq 'yes');
($automake_suffix) = $automake =~ /.*automake(.*)$/;
# Use unsermake if we found it.
$automake = "$unsermake -c" if $unsermake;
# Find matching automake companions.
$aclocal = findProgram('aclocal', $automake_suffix);
$which = findWhich();
# Make sure we have all of the needed programs.
for $i (qw'autoconf autoheader autom4te automake aclocal')
{
unless(${$i})
{
print "# Unable to find $i!!\n";
exit 1;
}
}
# Print results in eval-able form.
print <<EOF;
AUTOCONF="$autoconf"
AUTOHEADER="$autoheader"
AUTOM4TE="$autom4te"
AUTOMAKE="$automake"
ACLOCAL="$aclocal"
WHICH="$which"
export AUTOCONF AUTOHEADER AUTOM4TE AUTOMAKE ACLOCAL WHICH
EOF
exit 0;
-96
View File
@@ -1,96 +0,0 @@
#!/bin/bash
# this is a script around make which basicly checks
# if it's in srcdir or in builddir and changes to
# the right directory for calling /usr/bin/make
# (C) Stephan Kulow
# You may need to set OBJ_REPLACEMENT variable to get it to work.
# In the variable use the sed syntax to switch directories, for example
# export OBJ_REPLACEMENT="s:/home/zack/cvs/kde:/home/zack/build:"
# will assure that the builds are performed under /home/zack/build
# directory, when the cvs is held under /home/zack/cvs/kde.
file=Makefile
dir=.
args=()
jobs=
while test $# -gt 0 ; do
case "${1}" in
-f)
shift
file="${1}"
shift
args=("${args[@]}" -f $file)
;;
-C)
shift
dir="${1}"
shift ;;
-j)
shift
jobs="${1}"
shift ;;
-j*)
jobs="${1/-j/}"
shift ;;
*)
args=("${args[@]}" "$1")
shift
;;
esac
done
if test ! -f $dir/$file; then
if test -n "$OBJ_SUBDIR"; then
dir=$PWD
subdir=.
while test ! -f $dir/$OBJ_SUBDIR/$file; do
subdir=`basename $dir`"/$subdir"
dir=`dirname $dir`
if test "$dir" = "/"; then
# the case that someone puts the compile dir in /
# is very unlikely, so we better skip here ;)
echo "can't find $OBJ_SUBDIR above current dir"
exit 1
fi
done
cd $dir/$OBJ_SUBDIR/$subdir
else
if test -n "$OBJ_REPLACEMENT"; then
pwd=`echo $PWD | sed -e "$OBJ_REPLACEMENT"`
if test ! -f $pwd/$dir/$file; then
echo "no objdir found. Tried $pwd"
exit 1
fi
cd $pwd/$dir
fi
fi
else
cd $dir
fi
echo "makeobj[0]: Entering directory \`$PWD'"
if test -z "$MAKE"; then
if head -n 1 $file | grep unsermake >/dev/null; then
MAKE=`type -p unsermake`
if test ! -x "$MAKE"; then
echo 'Makefile was created with unsermake, but there'
echo 'is no unsermake in $PATH'
exit 1
fi
MAKE="$MAKE --no-real-compare VERBOSE=1"
if test -n "$jobs"; then args=("${args[@]}" --compile-jobs=$jobs); fi
else
MAKE=/usr/bin/make
if test -n "$jobs"; then args=("${args[@]}" -j $jobs); fi
fi
fi
echo "Calling $MAKE ${args[@]}"
LANGUAGE=C $MAKE "${args[@]}"
retval=$?
echo "makeobj[0]: Leaving directory \`$PWD'"
exit $retval
-883
View File
@@ -1,883 +0,0 @@
#! /bin/sh
#
# doxygen.sh Copyright (C) 2005 by Adriaan de Groot
# Based on some code from Doxyfile.am, among other things.
# License: GPL version 2.
# See file COPYING in kdelibs for details.
echo "*** doxygen.sh"
# Recurse handling is a little complicated, since normally
# subdir (given on the command-line) processing doesn't recurse
# but you can force it to do so.
recurse=1
recurse_given=NO
use_modulename=1
cleanup=YES
while test -n "$1" ; do
case "x$1" in
"x--no-cleanup" )
cleanup=NO
;;
"x--no-recurse" )
recurse=0
recurse_given=YES
;;
"x--recurse" )
recurse=1
recurse_given=YES
;;
"x--no-modulename" )
use_modulename=0
;;
"x--modulename" )
use_modulename=1
;;
"x--help" )
echo "doxygen.sh usage:"
echo "doxygen.sh [--no-recurse] [--no-modulename] <srcdir> [<subdir>]"
exit 2
;;
x--doxdatadir=* )
DOXDATA=`echo $1 | sed -e 's+--doxdatadir=++'`
;;
x--installdir=*)
PREFIX=`echo $1 | sed -e 's+--installdir=++'`
;;
x--* )
echo "Unknown option: $1"
exit 1
;;
* )
top_srcdir="$1"
break
;;
esac
shift
done
### Sanity check the mandatory "top srcdir" argument.
if test -z "$top_srcdir" ; then
echo "Usage: doxygen.sh <top_srcdir>"
exit 1
fi
if test ! -d "$top_srcdir" ; then
echo "top_srcdir ($top_srcdir) is not a directory."
exit 1
fi
### Normalize top_srcdir so it is an absolute path.
if expr "x$top_srcdir" : "x/" > /dev/null ; then
# top_srcdir is absolute already
:
else
top_srcdir=`cd "$top_srcdir" 2> /dev/null && pwd`
if test ! -d "$top_srcdir" ; then
echo "top_srcdir ($top_srcdir) is not a directory."
exit 1
fi
fi
### Sanity check and guess QTDOCDIR.
if test -z "$QTDOCDIR" ; then
if test -z "$QTDIR" ; then
for i in /usr/X11R6/share/doc/qt/html
do
QTDOCDIR="$i"
test -d "$QTDOCDIR" && break
done
else
for i in share/doc/qt/html doc/html
do
QTDOCDIR="$QTDIR/$i"
test -d "$QTDOCDIR" && break
done
fi
fi
if test -z "$QTDOCDIR" || test ! -d "$QTDOCDIR" ; then
if test -z "$QTDOCDIR" ; then
echo "* QTDOCDIR could not be guessed."
else
echo "* QTDOCDIR does not name a directory."
fi
if test -z "$QTDOCTAG" ; then
echo "* QTDOCDIR set to \"\""
QTDOCDIR=""
else
echo "* But I'll use $QTDOCDIR anyway because of QTDOCTAG."
fi
fi
### Get the "top srcdir", also its name, and handle the case that subdir "."
### is given (which would be top_srcdir then, so it's equal to none-given
### but no recursion either).
###
# top_srcdir="$1" # Already set by options processing
module_name=`basename "$top_srcdir"`
subdir="$2"
if test "x." = "x$subdir" ; then
subdir=""
if test "x$recurse_given" = "xNO" ; then
recurse=0
fi
fi
if test "x" != "x$subdir" ; then
# If no recurse option given explicitly, default to
# no recurse when processing subdirs given on the command-line.
if test "x$recurse_given" = "xNO" ; then
recurse=0
fi
fi
if test -z "$DOXDATA" || test ! -d "$DOXDATA" ; then
if test -n "$DOXDATA" ; then
echo "* \$DOXDATA is '$DOXDATA' which does not name a directory"
fi
DOXDATA="$top_srcdir/doc/common"
fi
if test ! -d "$DOXDATA" ; then
echo "* \$DOXDATA does not name a directory ( or is unset ), tried \"$DOXDATA\""
exit 1
fi
if test -n "$PREFIX" && test ! -d "$PREFIX" ; then
echo "* \$PREFIX does not name a directory, tried \"$PREFIX\""
echo "* \$PREFIX is disabled."
PREFIX=""
fi
### We need some values from top-level files, which
### are not preserved between invocations of this
### script, so factor it out for easy use.
create_doxyfile_in()
{
eval `grep 'VERSION="' "$top_srcdir/admin/cvs.sh"`
echo "PROJECT_NUMBER = $VERSION" > Doxyfile.in
grep '^KDE_INIT_DOXYGEN' "$top_srcdir/configure.in.in" | \
sed -e 's+[^[]*\[\([^]]*\)+PROJECT_NAME = "\1"+' \
-e 's+].*++' >> Doxyfile.in
}
apidoxdir="$module_name"-apidocs
test "x$use_modulename" = "x0" && apidoxdir="apidocs"
### If we're making the top subdir, create the structure
### for the apidox and initialize it. Otherwise, just use the
### structure assumed to be there.
if test -z "$subdir" ; then
if test ! -d "$apidoxdir" ; then
mkdir "$apidoxdir" > /dev/null 2>&1
fi
cd "$apidoxdir" > /dev/null 2>&1 || {
echo "Cannot create and cd into $apidoxdir"
exit 1
}
test -f "Doxyfile.in" || create_doxyfile_in
# Copy in logos and the like
for i in "favicon.ico" "kde_gear_64.png"
do
cp "$DOXDATA/$i" . > /dev/null 2> /dev/null
done
for i in "$top_srcdir/doc/api/Dox-"*.png
do
T=`basename "$i" | sed -e 's+Dox-++'`
test -f "$i" && cp "$i" "./$T" > /dev/null 2> /dev/null
done
top_builddir="."
srcdir="$1"
subdir="."
else
cd "$apidoxdir" > /dev/null 2>&1 || {
echo "Cannot cd into $apidoxdir -- maybe you need to"
echo "build the top-level dox first."
exit 1
}
if test "x1" = "x$recurse" ; then
# OK, so --recurse was requested
if test ! -f "subdirs.top" ; then
echo "* No subdirs.top available in the $apidoxdir."
echo "* The --recurse option will be ignored."
recurse=0
fi
fi
fi
### Read a single line (TODO: support \ continuations) from the Makefile.am.
### Used to extract variable assignments from it.
extract_line()
{
file="$2" ; test -z "$file" && file="$srcdir/Makefile.am"
pattern=`echo "$1" | tr + .`
grep "^$1" "$file" | \
sed -e "s+$pattern.*=\s*++"
}
### Handle the COMPILE_{FIRST,LAST,BEFORE,AFTER} part of Makefile.am
### in the toplevel. Copied from admin/cvs.sh. Licence presumed LGPL).
create_subdirs()
{
echo "* Sorting top-level subdirs"
dirs=
idirs=
if test -f "$top_srcdir/inst-apps"; then
idirs=`cat "$top_srcdir/"inst-apps`
else
idirs=`cd "$top_srcdir" && ls -1 | sort`
fi
compilefirst=""
compilelast=""
if test -f "$top_srcdir/"Makefile.am.in ; then
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1`
fi
for i in $idirs; do
if test -f "$top_srcdir/$i"/Makefile.am; then
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
fi
done
: > ./_SUBDIRS
for d in $compilefirst; do
echo $d >> ./_SUBDIRS
done
(for d in $dirs; do
list=""
if test -f "$top_srcdir/"Makefile.am.in ; then
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1`
fi
for s in $list; do
echo $s $d
done
list=""
if test -f "$top_srcdir/"Makefile.am.in ; then
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1`
fi
for s in $list; do
echo $d $s
done
echo $d $d
done ) | tsort >> ./_SUBDIRS
for d in $compilelast; do
echo $d >> ./_SUBDIRS
done
test -r _SUBDIRS && mv _SUBDIRS subdirs.top || true
}
### Add HTML header, footer, CSS tags to Doxyfile.
### Assumes $subdir is set. Argument is a string
### to stick in front of the file if needed.
apidox_htmlfiles()
{
dox_header="$top_srcdir/doc/api/$1header.html"
dox_footer="$top_srcdir/doc/api/$1footer.html"
dox_css="$top_srcdir/doc/api/doxygen.css"
test -f "$dox_header" || dox_header="$DOXDATA/$1header.html"
test -f "$dox_footer" || dox_footer="$DOXDATA/$1footer.html"
test -f "$dox_css" || dox_css="$DOXDATA/doxygen.css"
echo "HTML_HEADER = $dox_header" >> "$subdir/Doxyfile" ; \
echo "HTML_FOOTER = $dox_footer" >> "$subdir/Doxyfile" ; \
echo "HTML_STYLESHEET = $dox_css" >> "$subdir/Doxyfile"
}
apidox_specials()
{
line=`extract_line DOXYGEN_PROJECTNAME "$1"`
test -n "$line" && echo "PROJECT_NAME = \"$line\"" >> "$2"
}
apidox_local()
{
for i in "$top_srcdir/doc/api/Doxyfile.local"
do
if test -f "$i" ; then
cat "$i" >> "$subdir/Doxyfile"
break
fi
done
}
### Post-process HTML files by substituting in the menu files
#
# In non-top directories, both <!-- menu --> and <!-- gmenu -->
# are calculated and replaced. Top directories get an empty <!-- menu -->
# if any.
doxyndex()
{
# Special case top-level to have an empty MENU.
if test "x$subdir" = "x." ; then
MENU=""
htmldir="."
htmltop="$top_builddir" # Just ., presumably
echo "* Post-processing top-level files"
else
MENU="<ul>"
htmldir="$subdir/html"
htmltop="$top_builddir.." # top_builddir ends with /
echo "* Post-processing files in $htmldir"
# Build a little PHP file that maps class names to file
# names, for the quick-class-picker functionality.
# (The quick-class-picker is disabled due to styling
# problems in IE & FF).
(
echo "<?php \$map = array("; \
for htmlfile in `find $htmldir/ -type f -name "class[A-Z]*.html" | grep -v "\-members.html$"`; do
classname=`echo $htmlfile | sed -e "s,.*/class\\(.*\\).html,\1," -e "s,_1_1,::,g" -e "s,_01, ,g" -e "s,_4,>,g" -e "s+_00+,+g" -e "s+_3+<+g" | tr "[A-Z]" "[a-z]"`
echo " \"$classname\" => \"$htmlfile\","
done | sort ; \
echo ") ?>"
) > "$subdir/classmap.inc"
# This is a list of pairs, with / separators so we can use
# basename and dirname (a crude shell hack) to split them
# into parts. For each, if the file part exists (as a html
# file) tack it onto the MENU variable as a <li> with link.
for i in "Main Page/index" \
"Modules/modules" \
"Namespace List/namespaces" \
"Class Hierarchy/hierarchy" \
"Alphabetical List/classes" \
"Class List/annotated" \
"File List/files" \
"Directories/dirs" \
"Namespace Members/namespacemembers" \
"Class Members/functions" \
"Related Pages/pages"
do
NAME=`dirname "$i"`
FILE=`basename "$i"`
test -f "$htmldir/$FILE.html" && MENU="$MENU<li><a href=\"$FILE.html\">$NAME</a></li>"
done
MENU="$MENU</ul>"
fi
# Get the list of global Menu entries.
GMENU=`cat subdirs | tr -d '\n'`
PMENU=`grep '<!-- pmenu' "$htmldir/index.html" | sed -e 's+.*pmenu *++' -e 's+ *-->++' | awk '{ c=split($0,a,"/"); for (j=1; j<=c; j++) { printf " / <a href=\""; if (j==c) { printf("."); } for (k=j; k<c; k++) { printf "../"; } if (j<c) { printf("../html/index.html"); } printf "\">%s</a>\n" , a[j]; } }' | tr -d '\n'`
# Map the PHP file into HTML options so that
# it can be substituted in for the quick-class-picker.
CMENU=""
# For now, leave the CMENU disabled
CMENUBEGIN="<!--"
CMENUEND="-->"
if test "x$subdir" = "x." ; then
# Disable CMENU on toplevel anyway
CMENUBEGIN="<!--"
CMENUEND="-->"
else
test -f "$subdir/classmap.inc" && \
CMENU=`grep '=>' "$subdir/classmap.inc" | sed -e 's+"\([^"]*\)" => "'"$subdir/html/"'\([^"]*\)"+<option value="\2">\1<\/option>+' | tr -d '\n'`
if test -f "$subdir/classmap.inc" && grep "=>" "$subdir/classmap.inc" > /dev/null 2>&1 ; then
# Keep the menu, it's useful
:
else
CMENUBEGIN="<!--"
CMENUEND="-->"
fi
fi
# Now substitute in the MENU in every file. This depends
# on HTML_HEADER (ie. header.html) containing the
# <!-- menu --> comment.
for i in "$htmldir"/*.html
do
if test -f "$i" ; then
sed -e "s+<!-- menu -->+$MENU+" \
-e "s+<!-- gmenu -->+$GMENU+" \
-e "s+<!-- pmenu.*-->+$PMENU+" \
-e "s+<!-- cmenu.begin -->+$CMENUBEGIN+" \
-e "s+<!-- cmenu.end -->+$CMENUEND+" \
< "$i" | sed -e "s+@topdir@+$htmltop+g" > "$i.new" && mv "$i.new" "$i"
sed -e "s+<!-- cmenu -->+$CMENU+" < "$i" > "$i.new"
test -s "$i.new" && mv "$i.new" "$i"
fi
done
}
### Handle the Doxygen processing of a toplevel directory.
apidox_toplevel()
{
echo ""
echo "*** Creating API documentation main page for $module_name"
echo "*"
rm -f "Doxyfile"
for i in "$top_srcdir/doc/api/Doxyfile.global" \
"$top_srcdir/admin/Doxyfile.global" \
"$DOXDATA/Doxyfile.global"
do
if test -f "$i" ; then
cp "$i" Doxyfile
break
fi
done
if test ! -f "Doxyfile" ; then
echo "* Cannot create Doxyfile."
exit 1
fi
cat "$top_builddir/Doxyfile.in" >> Doxyfile
echo "INPUT = $top_srcdir" >> Doxyfile
echo "OUTPUT_DIRECTORY = $top_builddir" >> Doxyfile ; \
echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \
echo "RECURSIVE = NO" >> Doxyfile ; \
echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \
echo "HTML_OUTPUT = ." >> Doxyfile ; \
apidox_htmlfiles "main"
# KDevelop has a top-level Makefile.am with settings.
for i in "$top_srcdir/Makefile.am.in" "$top_srcdir/Makefile.am"
do
if test -f "$i" ; then
grep '^DOXYGEN_SET_' "$i" | \
sed -e 's+DOXYGEN_SET_++' -e "s+@topdir@+$top_srcdir+" >> Doxyfile
apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile"
break
fi
done
apidox_local
doxygen Doxyfile
( cd "$top_srcdir" && grep -l '^include.*Doxyfile.am' `find . -name Makefile.am` ) | sed -e 's+/Makefile.am$++' -e 's+^\./++' | sort > subdirs.in
for i in `cat subdirs.in`
do
test "x." = "x$i" && continue;
dir=`dirname "$i"`
file=`basename "$i"`
if test "x." = "x$dir" ; then
dir=""
else
dir="$dir/"
fi
indent=`echo "$dir" | sed -e 's+[^/]*/+\&nbsp;\&nbsp;+g' | sed -e 's+&+\\\&+g'`
entryname=`extract_line DOXYGEN_SET_PROJECT_NAME "$top_srcdir/$dir/$file/Makefile.am"`
test -z "$entryname" && entryname="$file"
if grep DOXYGEN_EMPTY "$top_srcdir/$dir/$file/Makefile.am" > /dev/null 2>&1 ; then
echo "<li>$indent$file</li>"
else
echo "<li>$indent<a href=\"@topdir@/$dir$file/html/index.html\">$entryname</a></li>"
fi
done > subdirs
doxyndex
}
### Handle the Doxygen processing of a non-toplevel directory.
apidox_subdir()
{
echo ""
echo "*** Creating apidox in $subdir"
echo "*"
rm -f "$subdir/Doxyfile"
if test ! -d "$top_srcdir/$subdir" ; then
echo "* No source (sub)directory $subdir"
return
fi
for i in "$top_srcdir/doc/api/Doxyfile.global" \
"$top_srcdir/admin/Doxyfile.global" \
"$DOXDATA/Doxyfile.global"
do
if test -f "$i" ; then
cp "$i" "$subdir/Doxyfile"
break
fi
done
test -f "Doxyfile.in" || create_doxyfile_in
cat "Doxyfile.in" >> "$subdir/Doxyfile"
echo "PROJECT_NAME = \"$subdir\"" >> "$subdir/Doxyfile"
echo "INPUT = $srcdir" >> "$subdir/Doxyfile"
echo "OUTPUT_DIRECTORY = ." >> "$subdir/Doxyfile"
if grep -l "$subdir/" subdirs.in > /dev/null 2>&1 ; then
echo "RECURSIVE = NO" >> "$subdir/Doxyfile"
fi
echo "HTML_OUTPUT = $subdir/html" >> "$subdir/Doxyfile"
echo "GENERATE_TAGFILE = $subdir/$subdirname.tag" >> "$subdir/Doxyfile"
test -d "$top_srcdir/doc/api" && \
echo "IMAGE_PATH = $top_srcdir/doc/api" >> "$subdir/Doxyfile"
apidox_htmlfiles ""
# Makefile.ams may contain overrides to our settings,
# so copy them in.
grep '^DOXYGEN_SET_' "$srcdir/Makefile.am" | \
sed -e 's+DOXYGEN_SET_++' >> "$subdir/Doxyfile"
apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile"
excludes=`extract_line DOXYGEN_EXCLUDE`
if test -n "$excludes"; then
patterns=""
dirs=""
for item in `echo "$excludes"`; do
if test -d "$top_srcdir/$subdir/$item"; then
dirs="$dirs $top_srcdir/$subdir/$item/"
else
patterns="$patterns $item"
fi
done
echo "EXCLUDE_PATTERNS += $patterns" >> "$subdir/Doxyfile"
echo "EXCLUDE += $dirs" >> "$subdir/Doxyfile"
fi
echo "TAGFILES = \\" >> "$subdir/Doxyfile"
## For now, don't support \ continued references lines
tags=`extract_line DOXYGEN_REFERENCES`
for i in $tags qt ; do
tagsubdir=`dirname $i` ; tag=`basename $i`
tagpath=""
not_found=""
if test "x$tagsubdir" = "x." ; then
tagsubdir=""
else
tagsubdir="$tagsubdir/"
fi
# Find location of tag file
if test -f "$tagsubdir$tag/$tag.tag" ; then
file="$tagsubdir$tag/$tag.tag"
loc="$tagsubdir$tag/html"
else
# This checks for dox built with_out_ --no-modulename
# in the same build dir as this dox run was started in.
file=`ls -1 ../*-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null`
if test -n "$file" ; then
loc=`echo "$file" | sed -e "s/$tag.tag\$/html/"`
else
# If the tag file doesn't exist yet, but should
# because we have the right dirs here, queue
# this directory for re-processing later.
if test -d "$top_srcdir/$tagsubdir$tag" ; then
echo "* Need to re-process $subdir for tag $i"
echo "$subdir" >> "subdirs.later"
else
# Re-check in $PREFIX if needed.
test -n "$PREFIX" && \
file=`cd "$PREFIX" && \
ls -1 *-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null`
# If something is found, patch it up. The location must be
# relative to the installed location of the dox and the
# file must be absolute.
if test -n "$file" ; then
loc=`echo "../$file" | sed -e "s/$tag.tag\$/html/"`
file="$PREFIX/$file"
echo "* Tags for $tagsubdir$tag will only work when installed."
not_found="YES"
fi
fi
fi
fi
if test "$tag" = "qt" ; then
if test -z "$QTDOCDIR" ; then
echo " $file" >> "$subdir/Doxyfile"
else
if test -z "$file" ; then
# Really no Qt tags
echo "" >> "$subdir/Doxyfile"
else
echo " $file=$QTDOCDIR" >> "$subdir/Doxyfile"
fi
fi
else
if test -n "$file" ; then
test -z "$not_found" && echo "* Found tag $file"
echo " $file=../$top_builddir$loc \\" >> "$subdir/Doxyfile"
fi
fi
done
apidox_local
if grep '^DOXYGEN_EMPTY' "$srcdir/Makefile.am" > /dev/null 2>&1 ; then
# This directory is empty, so don't process it, but
# *do* handle subdirs that might have dox.
:
else
# Regular processing
doxygen "$subdir/Doxyfile"
doxyndex
fi
}
### Run a given subdir by setting up global variables first.
do_subdir()
{
subdir=`echo "$1" | sed -e 's+/$++'`
srcdir="$top_srcdir/$subdir"
subdirname=`basename "$subdir"`
mkdir -p "$subdir" 2> /dev/null
if test ! -d "$subdir" ; then
echo "Can't create dox subdirectory $subdir"
return
fi
top_builddir=`echo "/$subdir" | sed -e 's+/[^/]*+../+g'`
apidox_subdir
}
### Create installdox-slow in the toplevel
create_installdox()
{
# Fix up the installdox script so it accepts empty args
#
# This code is copied from the installdox generated by Doxygen,
# copyright by Dimitri van Heesch and released under the GPL.
# This does a _slow_ update of the dox, because it loops
# over the given substitutions instead of assuming all the
# needed ones are given.
#
cat <<\EOF
#! /usr/bin/env perl
%subst = () ;
$quiet = 0;
if (open(F,"search.cfg"))
{
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
}
while ( @ARGV ) {
$_ = shift @ARGV;
if ( s/^-// ) {
if ( /^l(.*)/ ) {
$v = ($1 eq "") ? shift @ARGV : $1;
($v =~ /\/$/) || ($v .= "/");
$_ = $v;
if ( /(.+)\@(.+)/ ) {
$subst{$1} = $2;
} else {
print STDERR "Argument $_ is invalid for option -l\n";
&usage();
}
}
elsif ( /^q/ ) {
$quiet = 1;
}
elsif ( /^\?|^h/ ) {
&usage();
}
else {
print STDERR "Illegal option -$_\n";
&usage();
}
}
else {
push (@files, $_ );
}
}
if ( ! @files ) {
if (opendir(D,".")) {
foreach $file ( readdir(D) ) {
$match = ".html";
next if ( $file =~ /^\.\.?$/ );
($file =~ /$match/) && (push @files, $file);
($file =~ "tree.js") && (push @files, $file);
}
closedir(D);
}
}
if ( ! @files ) {
print STDERR "Warning: No input files given and none found!\n";
}
foreach $f (@files)
{
if ( ! $quiet ) {
print "Editing: $f...\n";
}
$oldf = $f;
$f .= ".bak";
unless (rename $oldf,$f) {
print STDERR "Error: cannot rename file $oldf\n";
exit 1;
}
if (open(F,"<$f")) {
unless (open(G,">$oldf")) {
print STDERR "Error: opening file $oldf for writing\n";
exit 1;
}
if ($oldf ne "tree.js") {
while (<F>) {
foreach $sub (keys %subst) {
s/doxygen\=\"$sub\:([^ \"\t\>\<]*)\" (href|src)=\"\1/doxygen\=\"$sub:$subst{$sub}\" \2=\"$subst{$sub}/g;
print G "$_";
}
}
}
else {
while (<F>) {
foreach $sub (keys %subst) {
s/\"$sub\:([^ \"\t\>\<]*)\", \"\1/\"$sub:$subst{$sub}\" ,\"$subst{$sub}/g;
print G "$_";
}
}
}
}
else {
print STDERR "Warning file $f does not exist\n";
}
unlink $f;
}
sub usage {
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
print STDERR "Options:\n";
print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
print STDERR " -q Quiet mode\n\n";
exit 1;
}
EOF
}
# Do only the subdirs that match the RE passed in as $1
do_subdirs_re()
{
RE=`echo "$1" | sed -e 's+/$++'`
# Here's a queue of dirs to re-process later when
# all the rest have been done already.
> subdirs.later
# subdirs.top lists _all_ subdirs of top in the order they
# should be handled; subdirs.in lists those dirs that contain
# dox. So the intersection of the two is the ordered list
# of top-level subdirs that contain dox.
#
# subdirs.top also doesn't contain ".", so that special
# case can be ignored in the loop.
(
for i in `grep "^$RE" subdirs.top`
do
if test "x$i" = "x." ; then
continue
fi
# Calculate intersection of this element and the
# set of dox dirs.
if grep "^$i\$" subdirs.in > /dev/null 2>&1 ; then
echo "$i"
mkdir -p "$i" 2> /dev/null
# Handle the subdirs of this one
for j in `grep "$i/" subdirs.in`
do
echo "$j"
mkdir -p "$j" 2> /dev/null
done
fi
done
# Now we still need to handle whatever is left
for i in `cat subdirs.in`
do
test -d "$i" || echo "$i"
mkdir -p "$i" 2> /dev/null
done
) > subdirs.sort
for i in `cat subdirs.sort`
do
do_subdir "$i"
done
if test -s "subdirs.later" ; then
sort subdirs.later | uniq > subdirs.sort
for i in `cat subdirs.sort`
do
: > subdirs.later
echo "*** Reprocessing $i"
do_subdir "$i"
test -s "subdirs.later" && echo "* Some tag files were still not found."
done
fi
}
if test "x." = "x$top_builddir" ; then
apidox_toplevel
create_subdirs
create_installdox > installdox-slow
if test "x$recurse" = "x1" ; then
if test "x$module_name" = "xkdelibs" ; then
if test -z "$QTDOCTAG" && test -d "$QTDOCDIR" && \
test ! -f "qt/qt.tag" ; then
# Special case: create a qt tag file.
echo "*** Creating a tag file for the Qt library:"
mkdir qt
doxytag -t qt/qt.tag "$QTDOCDIR" > /dev/null 2>&1
fi
fi
if test -n "$QTDOCTAG" && test -r "$QTDOCTAG" ; then
echo "*** Copying tag file for the Qt library:"
mkdir qt
cp "$QTDOCTAG" qt/qt.tag
fi
do_subdirs_re "."
fi
else
if test "x$recurse" = "x1" ; then
do_subdirs_re "$subdir"
else
do_subdir "$subdir"
fi
fi
# At the end of a run, clean up stuff.
if test "YES" = "$cleanup" ; then
rm -f subdirs.in subdirs.later subdirs.sort subdirs.top Doxyfile.in
rm -f `find . -name Doxyfile`
rm -f qt/qt.tag
rmdir qt > /dev/null 2>&1
fi
exit 0
-401
View File
@@ -1,401 +0,0 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2005-11-07.23
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
posix_glob=
posix_mkdir=
# Symbolic mode for testing mkdir with directories.
# It is the same as 755, but also tests that "u+" works.
test_mode=u=rwx,g=rx,o=rx,u+wx
# Desired mode of installed file.
mode=0755
# Desired mode of newly created intermediate directories.
# It is empty if not known yet.
intermediate_mode=
chmodcmd=$chmodprog
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=
dst=
dir_arg=
dstarg=
no_target_directory=
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
-c (ignored)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while test -n "$1"; do
case $1 in
-c) shift
continue;;
-d) dir_arg=true
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t) dstarg=$2
shift
shift
continue;;
-T) no_target_directory=true
shift
continue;;
--version) echo "$0 $scriptversion"; exit $?;;
*) # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
test -n "$dir_arg$dstarg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg"
shift # fnord
fi
shift # arg
dstarg=$arg
done
break;;
esac
done
if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
test -n "$dir_arg" || trap '(exit $?); exit' 1 2 13 15
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src ;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dstarg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dstarg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst ;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dstarg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| \
. : '\(.\)' 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'
`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
posix_mkdir=false
if $mkdirprog -m $test_mode -p -- / >/dev/null 2>&1; then
posix_mkdir=true
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./-m "$test_mode" ./-p ./-- 2>/dev/null
fi ;;
esac
if
$posix_mkdir && {
# With -d, create the new directory with the user-specified mode.
# Otherwise, create it using the same intermediate mode that
# mkdir -p would use when creating intermediate directories.
# POSIX says that this mode is "$(umask -S),u+wx", so use that
# if umask -S works.
if test -n "$dir_arg"; then
mkdir_mode=$mode
else
case $intermediate_mode in
'')
if umask_S=`(umask -S) 2>/dev/null`; then
intermediate_mode=$umask_S,u+wx
else
intermediate_mode=$test_mode
fi ;;
esac
mkdir_mode=$intermediate_mode
fi
$mkdirprog -m "$mkdir_mode" -p -- "$dstdir"
}
then :
else
# mkdir does not conform to POSIX, or it failed possibly due to
# a race condition. Create the directory the slow way, step by
# step, checking for races as we go.
case $dstdir in
/*) pathcomp=/ ;;
-*) pathcomp=./ ;;
*) pathcomp= ;;
esac
case $posix_glob in
'')
if (set -f) 2>/dev/null; then
posix_glob=true
else
posix_glob=false
fi ;;
esac
oIFS=$IFS
IFS=/
$posix_glob && set -f
set fnord $dstdir
shift
$posix_glob && set +f
IFS=$oIFS
for d
do
test "x$d" = x && continue
pathcomp=$pathcomp$d
if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp"
# Don't fail if two instances are running concurrently.
test -d "$pathcomp" || exit 1
fi
pathcomp=$pathcomp/
done
obsolete_mkdir_used=true
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
$doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dsttmp"; } &&
# Now rename the file to the real destination.
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
|| {
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
if test -f "$dst"; then
$doit $rmcmd -f "$dst" 2>/dev/null \
|| { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
&& { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
|| {
echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
} || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
-5891
View File
File diff suppressed because it is too large Load Diff
-6389
View File
File diff suppressed because it is too large Load Diff
-353
View File
@@ -1,353 +0,0 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
scriptversion=2004-09-07.08
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Send bug reports to <bug-automake@gnu.org>."
exit 0
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit 0
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program).
case "$1" in
lex|yacc)
# Not GNU programs, they don't have --version.
;;
tar)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
exit 1
fi
;;
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
tar)
shift
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
-158
View File
@@ -1,158 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
scriptversion=2005-06-29.22
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain.
#
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
errstatus=0
dirmode=
usage="\
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
Create each directory DIR (with mode MODE, if specified), including all
leading file name components.
Report bugs to <bug-automake@gnu.org>."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
echo "$usage"
exit $?
;;
-m) # -m PERM arg
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
dirmode=$1
shift
;;
--version)
echo "$0 $scriptversion"
exit $?
;;
--) # stop option processing
shift
break
;;
-*) # unknown option
echo "$usage" 1>&2
exit 1
;;
*) # first non-opt arg
break
;;
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
# mkdir -p a/c at the same time, both will detect that a is missing,
# one will create a, then the other will try to create a and die with
# a "File exists" error. This is a problem when calling mkinstalldirs
# from a parallel make. We use --version in the probe to restrict
# ourselves to GNU mkdir, which is thread-safe.
case $dirmode in
'')
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
# directories to create, and then abort because `.' already
# exists.
test -d ./-p && rmdir ./-p
test -d ./--version && rmdir ./--version
fi
;;
*)
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
test ! -d ./--version; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
else
# Clean up after NextStep and OpenStep mkdir.
for d in ./-m ./-p ./--version "./$dirmode";
do
test -d $d && rmdir $d
done
fi
;;
esac
for file
do
case $file in
/*) pathcomp=/ ;;
*) pathcomp= ;;
esac
oIFS=$IFS
IFS=/
set fnord $file
shift
IFS=$oIFS
for d
do
test "x$d" = x && continue
pathcomp=$pathcomp$d
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp=$pathcomp/
done
done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
-371
View File
@@ -1,371 +0,0 @@
#!/usr/bin/perl -w
# Check namespace cleanness of a library.
# Allowed symbols are passed as arguments.
# They may have trailing * = wildcard.
# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
# Symbols are listed as full function unmangled names without arguments,
# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
# and all symbols in namespace/class nspace.
# If an argument has comma in it, it's a filename of a file containing
# allowed symbols, one per line.
$thisProg = "$0"; # This programs name
$library = "";
$allowed_symbols = "";
$debug = 0;
$allowed_weak = "";
$weak_specified = 0;
while( defined( $ARGV[ 0 ] ))
{
$_ = shift;
if( /^--verbose$|^-v$/ )
{
$debug = 1;
}
elsif( /^--help$|^-h$/ )
{
print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
"\n",
"Check if the given library has only allowed public symbols.\n",
"\n",
" --allowweak=[symbol] allow only these weak symbols\n",
" -v, --verbose verbosely list files processed\n",
" -h, --help print this help, then exit\n";
exit 0;
}
elsif( /^--allowweak=(.*)$/ )
{
$allowed_weak .= " " . $1;
$weak_specified = 1;
}
elsif( /^--allowweak$/ ) # simply list all weak
{
$allowed_weak .= " ";
$weak_specified = 1;
}
elsif( /^--*/ )
{
die "Invalid argument!\n";
}
else
{
if( ! $library )
{
$library = $_;
}
else
{
$allowed_symbols .= " " . $_;
}
}
}
if( ! $weak_specified )
{
$allowed_weak = "*";
# allow all weak symbols by default
# instances of templates and similar stuff - unfortunately includes also things from other libraries,
# so it cannot be on by default
}
print STDERR "library:" . $library . "\n" if $debug;
print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
$default_symbols = "_fini _init"; # system symbols
# on my system, every .so has :
# A _DYNAMIC
# A _GLOBAL_OFFSET_TABLE_
# A __bss_start
# A _edata
# A _end
# T _fini
# T _init
# no need to list A symbols in $default_symbols
print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
print STDOUT "Namespace cleanness check for " . $library . " :\n";
$lib_file = "";
if( $library =~ /\.la$/ )
{
# get the real library file from .la
open( FILEIN, $library ) || die "Couldn't open $! !\n";
while( $line = <FILEIN> )
{
if( $line =~ /library_names=\'([^ ]*).*/o )
{
$lib_file = $1;
}
}
close( FILEIN );
if( ! $lib_file )
{
print STDERR "Library file not found in .la file!\n";
exit 1;
}
my $libpath = $library;
$libpath =~ s%[^/]*$%%;
if( -e $libpath . ".libs/" . $lib_file )
{
$lib_file = $libpath . ".libs/" . $lib_file;
}
else
{
$lib_file = $libpath . $lib_file;
}
}
else
{
$lib_file = $library;
}
print STDERR "libfile: ". $lib_file . "\n" if $debug;
$allowed_symbols .= " " . $default_symbols;
sub process_symbols($\@\%\@);
@wildcards = ();
%exacts = ();
@regwildcards = ();
process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
@weak_wildcards = ();
%weak_exacts = ();
@weak_regwildcards = ();
process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
# grep is for stripping not exported symbols, which don't have address (=first column)
$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
# TODO how portable is this nmcheck stuff?
print STDERR "nm command:" . $nm_command . "\n" if $debug;
open( FILEIN, $nm_command ) || die "nm command failed\n";
my $exit_code = 0;
while( $line = <FILEIN> )
{
my $type;
my $symbol;
if( $line =~ /^[^ ]* (.) (.*)$/o )
{
$type = $1;
$symbol = $2;
}
else
{
die "Invalid line: " . $line . "\n";
}
print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
if( $type eq "A" )
{ # these should be system symbols, so ignore them
next;
}
my $orig_symbol = $symbol;
if( $symbol =~ /\(anonymous namespace\)/o )
{ # TODO tell to prefer named namespaces? (shorter symbols)
next;
}
# strip prefixes
# the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
$symbol =~ s/^typeinfo for (.*)$/$1::/o;
$symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
$symbol =~ s/^typeinfo name for (.*)$/$1::/o;
$symbol =~ s/^vtable for (.*)$/$1::/o;
$symbol =~ s/^guard variable for (.*)$/$1::/o;
$symbol =~ s/^reference temporary for (.*)$/$1::/o;
$symbol =~ s/^VTT for (.*)$/$1::/o;
$symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
$symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
# templates seem to have also return types mangled in their name, and nm prints it too
# they have also template arguments in the symbol
# get rid of both of those
while( $symbol =~ /<.*>/o )
{
$symbol =~ s/<[^<>]*>//o; # strip innermost <>
}
if( $symbol !~ /operator\(\)/o )
{
$symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it
}
else
{
$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it
}
$symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc.
if( $symbol =~ /(^|:| )operator /o )
{
$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
}
else
{
$symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type)
}
# print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
my $found = 0;
if( $exacts{ $symbol } )
{
$found = 1;
}
if( ! $found )
{
for my $wild ( @wildcards )
{
if( index( $symbol, $wild ) == 0 )
{
$found = 1;
last;
}
}
}
if( ! $found )
{
for my $wild ( @regwildcards )
{
if( $symbol =~ /^$wild$/ )
{
$found = 1;
last;
}
}
}
if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
{
if( $weak_exacts{ $symbol } )
{
$found = 1;
}
if( ! $found )
{
for my $wild ( @weak_wildcards )
{
if( index( $symbol, $wild ) == 0 )
{
$found = 1;
last;
}
}
}
if( ! $found )
{
for my $wild ( @weak_regwildcards )
{
if( $symbol =~ /^$wild$/ )
{
$found = 1;
last;
}
}
}
}
if( ! $found )
{
print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
$exit_code = 1;
}
}
close( FILEIN );
print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
exit $exit_code;
sub process_symbols($\@\%\@)
{
my $allowed_symbols = $_[ 0 ];
my $wildcards_ref = $_[ 1 ];
my $exacts_ref = $_[ 2 ];
my $regwildcards_ref = $_[ 3 ];
$allowed_symbols =~ s/^ *//o; # strip whitespace
$allowed_symbols =~ s/ *$//o;
if( $allowed_symbols eq "NONE" )
{
$allowed_symbols = "";
}
my @symbols1 = split( ' ', $allowed_symbols );
my $i = 0;
my @symbols2 = ();
while( defined( $symbols1[ $i ] ))
{
my $symbol = $symbols1[ $i ];
if( $symbol =~ /\./ ) # dot in name -> file
{
open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
while( $line = <SYMIN> )
{
$line =~ s/^\s*//o; # strip whitespace
$line =~ s/\s*$//o;
if( $line !~ /^$/o # empty line
&& $line !~ /^\s*#/ ) # comment line starting with #
{
$symbols2[ $#symbols2 + 1 ] = $line;
}
}
close( SYMIN );
}
else
{
$symbols2[ $#symbols2 + 1 ] = $symbol;
}
$i++;
}
$i = 0;
while( defined( $symbols2[ $i ] ))
{
my $symbol = $symbols2[ $i ];
if( $symbol =~ /__/
|| $symbol =~ /^_[A-Z]/ )
{ # ISO C++ 2.10.2
die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
}
elsif( $symbol eq "main"
|| $symbol eq "main*" )
{
die "Symbol main is not allowed!\n";
}
if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it
&& $symbol !~ /operator\*$/o )
{
print STDERR "wildcard:" . $symbol . "\n" if $debug;
$wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
}
elsif( $symbol =~ /\*$/o
&& ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
&& $symbol !~ /^\*/o
&& $symbol !~ /operator\*$/o )
{
print STDERR "regwildcard:" . $symbol . "\n" if $debug;
$symbol =~ s/\*/\.\*/go; # change * to .* (regexp)
$regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
}
else
{
print STDERR "exact:" . $symbol . "\n" if $debug;
$exacts_ref->{ $symbol } = 1;
}
$i++;
}
}
-192
View File
@@ -1,192 +0,0 @@
### -*- autoconf -*-
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
dnl Boston, MA 02110-1301, USA.
AC_DEFUN([KDE_CHECK_MICO],
[
AC_REQUIRE([KDE_CHECK_LIBDL])
AC_REQUIRE([KDE_MISC_TESTS])
AC_MSG_CHECKING(for MICO)
if test -z "$MICODIR"; then
kde_micodir=/usr/local
else
kde_micodir="$MICODIR"
fi
AC_ARG_WITH(micodir,
[ --with-micodir=micodir where mico is installed ],
kde_micodir=$withval,
kde_micodir=$kde_micodir
)
AC_CACHE_VAL(kde_cv_mico_incdir,
[
mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes"
AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir)
])
kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'`
if test ! -r $kde_micodir/include/CORBA.h; then
AC_MSG_ERROR([No CORBA.h found, specify another micodir])
fi
AC_MSG_RESULT($kde_micodir)
MICO_INCLUDES=-I$kde_micodir/include
AC_SUBST(MICO_INCLUDES)
MICO_LDFLAGS=-L$kde_micodir/lib
AC_SUBST(MICO_LDFLAGS)
micodir=$kde_micodir
AC_SUBST(micodir)
AC_MSG_CHECKING([for MICO version])
AC_CACHE_VAL(kde_cv_mico_version,
[
AC_LANG_C
cat >conftest.$ac_ext <<EOF
#include <stdio.h>
#include <mico/version.h>
int main() {
printf("MICO_VERSION=%s\n",MICO_VERSION);
return (0);
}
EOF
ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest'
if AC_TRY_EVAL(ac_compile); then
if eval `./conftest 2>&5`; then
kde_cv_mico_version=$MICO_VERSION
else
AC_MSG_ERROR([your system is not able to execute a small application to
find MICO version! Check $kde_micodir/include/mico/version.h])
fi
else
AC_MSG_ERROR([your system is not able to compile a small application to
find MICO version! Check $kde_micodir/include/mico/version.h])
fi
])
dnl installed MICO version
mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "x$1" = "x"; then
req_version="2.3.0"
else
req_version=$1
fi
dnl required MICO version
req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "$mico_v_maj" -lt "$req_v_maj" || \
( test "$mico_v_maj" -eq "$req_v_maj" && \
test "$mico_v_mid" -lt "$req_v_mid" ) || \
( test "$mico_v_mid" -eq "$req_v_mid" && \
test "$mico_v_min" -lt "$req_v_min" )
then
AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \
at least is required. You should upgrade MICO.])
else
AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)])
fi
LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL"
AC_SUBST(LIBMICO)
if test -z "$IDL"; then
IDL='$(kde_bindir)/cuteidl'
fi
AC_SUBST(IDL)
IDL_DEPENDENCIES='$(kde_includes)/CUTE.h'
AC_SUBST(IDL_DEPENDENCIES)
idldir="\$(includedir)/idl"
AC_SUBST(idldir)
])
AC_DEFUN([KDE_CHECK_MINI_STL],
[
AC_REQUIRE([KDE_CHECK_MICO])
AC_MSG_CHECKING(if we use mico's mini-STL)
AC_CACHE_VAL(kde_cv_have_mini_stl,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
kde_save_cxxflags="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $MICO_INCLUDES"
AC_TRY_COMPILE(
[
#include <mico/config.h>
],
[
#ifdef HAVE_MINI_STL
#error "nothing"
#endif
],
kde_cv_have_mini_stl=no,
kde_cv_have_mini_stl=yes)
CXXFLAGS="$kde_save_cxxflags"
AC_LANG_RESTORE
])
if test "x$kde_cv_have_mini_stl" = "xyes"; then
AC_MSG_RESULT(yes)
$1
else
AC_MSG_RESULT(no)
$2
fi
])
])
AC_DEFUN([KDE_CHECK_ANSI],
[
])
AC_DEFUN([KDE_CHECK_INSURE],
[
AC_ARG_ENABLE(insure, [ --enable-insure use insure++ for debugging [default=no]],
[
if test $enableval = "no"; dnl
then ac_use_insure="no"
else ac_use_insure="yes"
fi
], [ac_use_insure="no"])
AC_MSG_CHECKING(if we will use Insure++ to debug)
AC_MSG_RESULT($ac_use_insure)
if test "$ac_use_insure" = "yes"; dnl
then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "????
fi
])
AC_DEFUN([KDE_CHECK_NEWLIBS],
[
])
-57
View File
@@ -1,57 +0,0 @@
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
dnl also defines GSTUFF_PKG_ERRORS on error
AC_DEFUN([PKG_CHECK_MODULES], [
succeeded=no
if test -z "$PKG_CONFIG"; then
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
fi
if test "$PKG_CONFIG" = "no" ; then
echo "*** The pkg-config script could not be found. Make sure it is"
echo "*** in your path, or set the PKG_CONFIG environment variable"
echo "*** to the full path to pkg-config."
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
else
PKG_CONFIG_MIN_VERSION=0.9.0
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
AC_MSG_CHECKING(for $2)
if $PKG_CONFIG --exists "$2" ; then
AC_MSG_RESULT(yes)
succeeded=yes
AC_MSG_CHECKING($1_CFLAGS)
$1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
AC_MSG_RESULT($$1_CFLAGS)
AC_MSG_CHECKING($1_LIBS)
$1_LIBS=`$PKG_CONFIG --libs "$2"`
AC_MSG_RESULT($$1_LIBS)
else
$1_CFLAGS=""
$1_LIBS=""
## If we have a custom action on failure, don't print errors, but
## do set a variable so people can do so.
$1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
ifelse([$4], ,echo $$1_PKG_ERRORS,)
fi
AC_SUBST($1_CFLAGS)
AC_SUBST($1_LIBS)
else
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
echo "*** See http://www.freedesktop.org/software/pkgconfig"
fi
fi
if test $succeeded = yes; then
ifelse([$3], , :, [$3])
else
ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
fi
])
-223
View File
@@ -1,223 +0,0 @@
#! /bin/sh
# ylwrap - wrapper for lex/yacc invocations.
scriptversion=2005-05-14.22
# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
#
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
case "$1" in
'')
echo "$0: No files given. Try \`$0 --help' for more information." 1>&2
exit 1
;;
--basedir)
basedir=$2
shift 2
;;
-h|--h*)
cat <<\EOF
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
Wrapper for lex/yacc invocations, renaming files as desired.
INPUT is the input file
OUTPUT is one file PROG generates
DESIRED is the file we actually want instead of OUTPUT
PROGRAM is program to run
ARGS are passed to PROG
Any number of OUTPUT,DESIRED pairs may be used.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v|--v*)
echo "ylwrap $scriptversion"
exit $?
;;
esac
# The input.
input="$1"
shift
case "$input" in
[\\/]* | ?:[\\/]*)
# Absolute path; do nothing.
;;
*)
# Relative path. Make it absolute.
input="`pwd`/$input"
;;
esac
pairlist=
while test "$#" -ne 0; do
if test "$1" = "--"; then
shift
break
fi
pairlist="$pairlist $1"
shift
done
# The program to run.
prog="$1"
shift
# Make any relative path in $prog absolute.
case "$prog" in
[\\/]* | ?:[\\/]*) ;;
*[\\/]*) prog="`pwd`/$prog" ;;
esac
# FIXME: add hostname here for parallel makes that run commands on
# other machines. But that might take us over the 14-char limit.
dirname=ylwrap$$
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
mkdir $dirname || exit 1
cd $dirname
case $# in
0) $prog "$input" ;;
*) $prog "$@" "$input" ;;
esac
ret=$?
if test $ret -eq 0; then
set X $pairlist
shift
first=yes
# Since DOS filename conventions don't allow two dots,
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
y_tab_nodot="no"
if test -f y_tab.c || test -f y_tab.h; then
y_tab_nodot="yes"
fi
# The directory holding the input.
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
# Quote $INPUT_DIR so we can use it in a regexp.
# FIXME: really we should care about more than `.' and `\'.
input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
while test "$#" -ne 0; do
from="$1"
# Handle y_tab.c and y_tab.h output by DOS
if test $y_tab_nodot = "yes"; then
if test $from = "y.tab.c"; then
from="y_tab.c"
else
if test $from = "y.tab.h"; then
from="y_tab.h"
fi
fi
fi
if test -f "$from"; then
# If $2 is an absolute path name, then just use that,
# otherwise prepend `../'.
case "$2" in
[\\/]* | ?:[\\/]*) target="$2";;
*) target="../$2";;
esac
# We do not want to overwrite a header file if it hasn't
# changed. This avoid useless recompilations. However the
# parser itself (the first file) should always be updated,
# because it is the destination of the .y.c rule in the
# Makefile. Divert the output of all other files to a temporary
# file so we can compare them to existing versions.
if test $first = no; then
realtarget="$target"
target="tmp-`echo $target | sed s/.*[\\/]//g`"
fi
# Edit out `#line' or `#' directives.
#
# We don't want the resulting debug information to point at
# an absolute srcdir; it is better for it to just mention the
# .y file with no path.
#
# We want to use the real output file name, not yy.lex.c for
# instance.
#
# We want the include guards to be adjusted too.
FROM=`echo "$from" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
TARGET=`echo "$2" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
-e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
# Check whether header files must be updated.
if test $first = no; then
if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
echo "$2" is unchanged
rm -f "$target"
else
echo updating "$2"
mv -f "$target" "$realtarget"
fi
fi
else
# A missing file is only an error for the first file. This
# is a blatant hack to let us support using "yacc -d". If -d
# is not specified, we don't want an error when the header
# file is "missing".
if test $first = yes; then
ret=1
fi
fi
shift
shift
first=no
done
else
ret=$?
fi
# Remove the directory.
cd ..
rm -rf $dirname
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
-105
View File
@@ -1,105 +0,0 @@
# -*-shell-script-*-
[Meta]
RootName: @kmess.sourceforge.net/kmess:$SOFTWAREVERSION
DisplayName: KMess
ShortName: kmess
SoftwareVersion: 1.5pre1
Maintainer: The KMess Developers
Packager: Diederik van der Boor
Summary: MSN Messenger client for KDE
URL: http://kmess.sourceforge.net/
License: GNU General Public License, Version 2
AutopackageTarget: 1.0
[Description]
A MSN Messenger Client for KDE
KMess is a MSN Messenger client for Linux. It enables Linux
users to chat with friends online who are using MSN Messenger
in Windows or Mac OS. The strength of KMess is it's integration
with the KDE desktop environment, focus on MSN Messenger specific
features and an easy-to-use interface.
[BuildPrepare]
# The bogus deps solve our warnings about older distro incompatiblity
export APBUILD_BOGUS_DEPS='art_lgpl art_lgpl_2 dl expat fontconfig freetype GL ICE idn kdefx kdesu kwalletclient m nsl png pthread resolv SM util X11 Xcursor Xft Xi Xinerama Xmu Xrandr Xrender'
# Xrender is suggested by makeinstaller,
# the XScreenSaver stuff can be either in libXss or libXext
export APBUILD_STATIC='Xrender Xext Xss'
prepareBuild
[BuildUnprepare]
unprepareBuild
[Imports]
# tells autopackage to include all files created by "make install"
# make sure the symlink does not get installed. recreate it during Install
find . -name common -type d -o -type l -exec rm -Rf {} \;
echo "*" | import
[Prepare]
# KDE 3.2 is the minimum requirement, KDE 3.1 support has been dropped in 1.5-pre1
require @kde.org/kdelibs 3.2
# flash and cabextract are used for winks.
playWinks="1"
# test for cabextract
outputTest "cabextract"
if locateCommand -r "cabextract" "-v"; then
outputTestPass
else
outputTestFail
playWinks="0"
fi
# test for flash
# paths taken from Konqueror.
outputTest "flash player"
hasFlash="0"
for i in /usr/lib/browser-plugins $HOME/.netscape/plugins /usr/lib64/browser-plugins /usr/local/netscape/plugins /opt/mozilla/plugins /opt/mozilla/lib/plugins /opt/netscape/plugins /opt/netscape/communicator/plugins /usr/lib/netscape/plugins /usr/lib/netscape/plugins-libc5 /usr/lib/netscape/plugins-libc6 /usr/lib/mozilla/plugins /usr/lib64/netscape/plugins /usr/lib64/mozilla/plugins $MOZILLA_HOME/plugins
do
if [ -e "$i/libflashplayer.so" ]
then
hasFlash="1"
fi
done
if [ "$hasFlash" -eq "1" ];
then
outputTestPass
else
outputTestFail
playWinks="0"
fi
# notify user
if [ "$playWinks" -eq "0" ];
then
outputStatus "You need to have cabextract and a flash player installed to play winks"
# don't abort, KMess can operate without these deps.
fi
[Install]
# # force to use the KDE path, workarround for broken distro's
# # which don't support XDG/KDE stuff in /usr or /usr/local
# test "`id -u`" -eq 0 && export PREFIX="`getKdePrefix`" || true
outputStatus "Installing application..."
installExe bin/*
installData share/apps/ share/doc/ share/sounds/
linkFile --silent "`getKdePrefix`/share/doc/HTML/en/common" "$PREFIX/share/doc/HTML/en/kmess/common"
installIcon share/icons/hicolor/ share/icons/locolor/
installDesktop "Internet" share/applications/kde/kmess.desktop
installLocale share/locale/
[Uninstall]
uninstallFromLog
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
QCATOOL_EXEC=$(which qcatool2 2>/dev/null)
if [ ! -x "$QCATOOL_EXEC" ]; then
echo 0
exit
fi
qcatool2 plugins | grep -q qca-ossl && echo 1 || echo 0
+24
View File
@@ -0,0 +1,24 @@
/**
* KMess configuration file
*
* The value for these defines is controlled by CMake at configuration time.
* NOTE: This file needs to be written in C, as it will be included by C source files too.
*/
/* Define the application version */
#define KMESS_VERSION "${KMESS_VERSION}"
/* Define if debug output should be enabled */
#define KMESS_DEBUG ${KMESS_ENABLE_DEBUG_OUTPUT}
/* Define the fallback prefix */
#define KMESS_PREFIX "${CMAKE_INSTALL_PREFIX}"
/* Define if you have the XScreenSaver extension */
#cmakedefine HAVE_XSCREENSAVER ${HAVE_XSCREENSAVER}
/* Define if LikeBack is not needed */
#define KMESS_DISABLE_LIKEBACK ${KMESS_DISABLE_LIKEBACK}
/* Define whether to enable Ink support (using GIFLib) */
#define KMESS_ENABLE_INK ${HAVE_LIBGIF}
+35
View File
@@ -0,0 +1,35 @@
#!/bin/sh
cd `dirname $0`/..
# second sed expression fixes Mac OS X 10.4
appver="`egrep 'SET.*KMESS_VERSION' CMakeLists.txt | sed -re 's/.*"([^"]+)".*/\1/'`"
date="`date +%Y%m%d`"
# Make sure we have the right repository
if [ ! -f kmess.kdevelop ]; then
/bin/echo -n "svn (unknown)"
exit
fi
# Display normal version if subversion is not installed
if [ ! -x `which svnversion 2>/dev/null` ]; then
/bin/echo -n "$appver"
exit
fi
# Display subversion version if this is a working copy
svnver=`LANG=C svnversion`
# see if this is not a repository.
if [ "$svnver" = "exported" ]; then
if [ -z "$KMESS_VER" ]; then
/bin/echo -n "$appver";
else
/bin/echo -n "$KMESS_VER";
fi
exit;
fi
# display subversion version and date
/bin/echo -n "$appver-svn (`svnversion` >= $date)"
+24
View File
@@ -0,0 +1,24 @@
# This file is included here because the standard FindGIF.cmake file
# requires the CHECK_STRUCT_MEMBER macro. It wasn't on my PC, at least, so
# I include a copy of the macro here for giflib to use.
MACRO (CHECK_STRUCT_MEMBER _STRUCT _MEMBER _HEADER _RESULT)
SET(_INCLUDE_FILES)
FOREACH (it ${_HEADER})
SET(_INCLUDE_FILES "${_INCLUDE_FILES}#include <${it}>\n")
ENDFOREACH (it)
SET(_CHECK_STRUCT_MEMBER_SOURCE_CODE "
${_INCLUDE_FILES}
int main()
{
${_STRUCT}* tmp;
tmp->${_MEMBER};
return 0;
}
")
CHECK_CXX_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT})
ENDMACRO (CHECK_STRUCT_MEMBER)
Vendored Executable
+299
View File
@@ -0,0 +1,299 @@
#!/bin/bash
#
# configure - description
# -------------------
# begin : Wed Apr 9 2008
# copyright : (C) 2008 by Diederik van der Boor
# email : "vdboor" --at-- "codingdomain.com"
#
#
# Emulation script of GNU ./configure to make compiling of KDE 4 software more standard.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Note for packagers:
# this script is only written to provide a more user friendly
# interaction between the command line and the cmake invocation.
# If you are familiar with CMake, you may call it directly too.
#
# ------------------------------
#
# Variables
#
KDE4_PREFIX=""
DEFAULT_PREFIX="/usr/local"
# auto-detect KDE Installation on the Mac.
KDE4_CONFIG=""
for i in `which kde4-config` /opt/local/bin/kde4-config
do
if [ -x "$i" ]; then
KDE4_CONFIG="$i"
break
fi
done
# auto-detect default prefix
if [ -n "$KDE4_CONFIG" ]; then
KDE4_PREFIX=`$KDE4_CONFIG --prefix`
DEFAULT_PREFIX="$KDE4_PREFIX"
fi
# To configure
PREFIX=$DEFAULT_PREFIX
BUILD_TYPE="relwithdebinfo"
BUILD_DIR="build"
REAL_BUILD_DIR=""
DEBUG=0
# Globals
cd `dirname $0`
SRC_DIR="$PWD"
KMESS_VER="`./cmake/get-svn-version.sh`"
# ------------------------------
#
# Print the help page
#
function print_help
{
echo "configure script for package: KMess $KMESS_VER
Usage: ./configure [arguments]
This is an emulation script of GNU ./configure to give compiling of KDE 4
software a more familiar usage. Experienced users are free to use cmake
instead. This configure script should provide everything you need though.
Configuration:
-h, --help display this help and exit
Installation directories:
--prefix=PREFIX install files in PREFIX. default: $DEFAULT_PREFIX
Optional Features:
--enable-debug-output enable debugging output. default=no
--build-dir=PATH path to store the build files. default: ./build
--build-type=TYPE define the build configuration to use, values:
release - standard release
relwithdebinfo - release with debug info
minsizerel - minimum size release
debug - debug build
debugfull - full debug build
After running ./configure, you can type 'make' to build this project.
"
# Hint for kde installation
if [ "$KDE4_PREFIX" != "" ]; then
if [ "$KDE4_PREFIX" != "$PREFIX" ]; then
echo " NOTICE:
The installation prefix is set to '$PREFIX'. You may want to set
the prefix to '$KDE4_PREFIX' to install the files in the KDE 4 folder.
"
fi
else
echo " WARNING:
kde4-config was not found. Please verify that
you've installed the KDE 4 development packages!
"
fi
}
# ------------------------------
#
# Run cmake
#
function run_cmake
{
# Check prefix
if [ ! -e "$PREFIX" ]; then
echo "$0: installation directory not found: $PREFIX" >&2
exit 1
fi
# Check build type
case "$BUILD_TYPE" in
debugfull) DEBUG=1 ;;
release|relwithdebinfo|minsizerel|debug) ;;
*)
echo "$0: invalid build type: $BUILD_TYPE" >&2
exit 1
;;
esac
# Make the directory,
# and switch so build messages are ok.
test -e "$BUILD_DIR" || mkdir "$BUILD_DIR" || exit 1
cd "$BUILD_DIR"
REAL_BUILD_DIR=`pwd`
# debug about cmake
echo "configuring KMess $KMESS_VER"
echo "checking build directory"
echo "running cmake from $REAL_BUILD_DIR"
echo "command: cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \ "
echo " -D CMAKE_BUILD_TYPE=$BUILD_TYPE \ "
echo " -D KMESS_DEBUG_OUTPUT=$DEBUG \ "
echo " "$SRC_DIR" "
echo ""
# finally start cmake
cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \
-D CMAKE_BUILD_TYPE=$BUILD_TYPE \
-D KMESS_DEBUG_OUTPUT=$DEBUG \
"$SRC_DIR" \
&& cmake_ok || cmake_error
}
function cmake_ok
{
# collect all settings
local HAS_XSS="no (extension not detected)"
local HAS_DEBUG="no (good!)"
if [ $DEBUG = "1" ]; then
HAS_DEBUG="yes (KMess will be slow!)"
fi
if grep -q '^#define HAVE_XSCREENSAVER 1$' "config-kmess.h"; then
HAS_XSS="yes"
fi
# create a makefile to redirect all calls to the build directory
makefile=$SRC_DIR/Makefile
targets=`grep '^[A-Za-z_\/\-]\+:' Makefile | cut -f 1 -d ':'`
echo "# Generated by ./configure: NO NOT EDIT!
# Build features:
#
# Install prefix: $PREFIX
# Auto-away feature: $HAS_XSS
# Debugging messages: $HAS_DEBUG
# Build type: $BUILD_TYPE
# Build directory: $BUILD_DIR
#
#
# cmake command:
#
# cd \"$REAL_BUILD_DIR\"
# cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \\
# -D CMAKE_BUILD_TYPE=$BUILD_TYPE \\
# -D KMESS_DEBUG_OUTPUT=$DEBUG \\
# \"$SRC_DIR\"
#
" > $makefile
for target in $targets; do
echo "$target:" >> $makefile
echo -en "\t" >> $makefile
echo "@\$(MAKE) --no-print-directory -C '$BUILD_DIR' $target" >> $makefile
echo "" >> $makefile
done
# display a configure report
echo "-- configure completed
Build features:
Install prefix: $PREFIX
Auto-away feature: $HAS_XSS
Debugging messages: $HAS_DEBUG
Build type: $BUILD_TYPE
Enter the following command to continue:
make
"
}
function cmake_error
{
echo "-- cmake failed
Please fix the problems mentioned above, and run ./configure again.
For example, make sure you have the KDE 4 devel packages installed.
"
}
# ------------------------------
#
# Main
#
# parse arguments
if [ -n "$*" ]; then
# check against BSD / Mac OS getopt, which is seriously lacking.
# It does not support additional options, so it will recognize everything
# after --longoptions as the $@ input.
if ! getopt --longoptions --prefix -- "" 2>/dev/null >/dev/null; then
echo "$0: Sorry, can't handle arguments at this platform.
Your getopt version does not support long arguments.
Please run cmake directly, for example:
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr ../
make
make install
" >&2
exit 1
fi
# Parse the arguments
longopts="help,prefix:,build-type:,build-dir:,build-folder:,enable-debug-output"
TEMP=`getopt --name=configure \
--options h \
--longoptions "$longopts" -- "$@"`
case "$?" in
0) ;;
*) exit 1 ;;
esac
# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"
while true ; do
case "$1" in
-h|--help) print_help; exit 0 ;;
--prefix) PREFIX=$2; shift 2 ;;
--enable-debug-output) DEBUG=1; shift ;;
--build-type) BUILD_TYPE="$2"; shift 2 ;;
--build-dir) BUILD_DIR="$2"; shift 2 ;;
--builddir|--build-directory|--build-folder) BUILD_DIR="$2"; shift 2 ;; # be forgiving with small errors.
--) shift ; break ;;
*) echo "$0: internal error at argument '$1'!" ; exit 1 ;;
esac
done
if [ -n "$1" ]; then
echo "$0: invalid arguments: $@"
exit 1
fi
fi
# Start cmake
run_cmake
-38
View File
@@ -1,38 +0,0 @@
if test "x$all_tests" = "xbad"; then
# $all_tests is an internal variable in the configure script
# the configure script may also be terminated with AC_MSG_ERROR
echo ""
echo "Please fix the problems, and run ./configure again."
echo ""
exit 1
else
echo ""
echo ""
echo "Configure report:"
echo ""
echo " Install prefix: $prefix"
echo -n " Auto-away feature: "
if test -z "$LIB_XSCREENSAVER"; then
echo "no (extension not detected)"
else
echo "yes"
fi
echo -n " Debugging messages: "
if test "x$enable_debug_output" = "xyes"; then
echo "yes (KMess will be slow!)"
else
echo "no (good!)"
fi
echo -n " Binary relocatable: "
if test "x$br_cv_binreloc" = "xyes"; then
echo "yes"
else
echo "no (only supported in Linux)"
fi
echo ""
fi
-33
View File
@@ -1,33 +0,0 @@
#MIN_CONFIG(3.1)
# ---- KMess version ----
AM_INIT_AUTOMAKE(kmess,1.5-pre1)
# ---- KDevelop stuff ----
dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
dnl CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
dnl KDE_NEED_FLEX dnl __kdevelop__
dnl AC_PROG_YACC dnl __kdevelop__
# ---- Additional KMess debug option ----
# The syntax is: AC_ARG_ENABLE(flagname, description, if-user-desides, if-user-ignores)
AC_ARG_ENABLE(debug-output,
[ --enable-debug-output enable debugging output. [default=no]],
[ enable_debug_output="$enableval" ],
[ enable_debug_output="no" ] )
# Checking code
if test "x$enable_debug_output" = "xyes" ; then
AC_WARN(Creating debug build. This has serious implications in the performance of KMess)
AC_DEFINE_UNQUOTED(KMESS_DEBUG, 1, [output debug?])
else
AC_DEFINE_UNQUOTED(KMESS_DEBUG, 0, [output debug?])
fi
+10
View File
@@ -0,0 +1,10 @@
ADD_SUBDIRECTORY( pics )
ADD_SUBDIRECTORY( icons )
ADD_SUBDIRECTORY( sounds )
ADD_SUBDIRECTORY( emoticons )
ADD_SUBDIRECTORY( chatstyles )
INSTALL( FILES kmesschatstyles.knsrc DESTINATION ${CONFIG_INSTALL_DIR} )
INSTALL( FILES kmess.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kmess )
INSTALL( FILES kmess.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+17
View File
@@ -0,0 +1,17 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
add_subdirectory( Colourful-Enclosed )
add_subdirectory( Classic )
add_subdirectory( Classic-compact )
add_subdirectory( Dim )
add_subdirectory( Efficient )
add_subdirectory( Fresh )
add_subdirectory( Fresh-dark )
add_subdirectory( Pure )
########### install files ###############
install( FILES examplemessage.xml DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/ )
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Classic-compact.xsl Classic-compact.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Classic-compact/ )
@@ -1,5 +1,5 @@
/*
KMess Default-compact chat style
KMess Classic-compact chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
@@ -55,6 +55,18 @@ div.notification .filename {
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding-bottom: 0.5em;
border-bottom: 1px solid gray;
color: purple;
}
/**
* Remaining markup is done inline in the .xsl file.
@@ -1,6 +1,6 @@
<?xml version='1.0'?>
<!--
KMess Default-compact chat style
KMess Classic-compact chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
@@ -19,7 +19,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
indent="no"
omit-xml-declaration="yes"
@@ -40,8 +42,8 @@
<span dir="{from/contact/displayName/@dir}">
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="from/contact/displayName/@dir='ltr'">float:left; clear:both; padding-right: 0.3em;</xsl:when>
<xsl:otherwise>float:right; clear:both; padding-left: 0.3em;</xsl:otherwise>
<xsl:when test="from/contact/displayName/@dir='ltr'">padding-right: 0.3em;</xsl:when>
<xsl:otherwise>padding-left: 0.3em;</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
@@ -56,6 +58,9 @@
<!-- show time? -->
<xsl:if test="@time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
<xsl:text> </xsl:text>
</xsl:if>
@@ -82,6 +87,16 @@
</div>
</xsl:when>
<!-- presence message (e.g. contact gone offline) -->
<xsl:when test="@type='presence'">
<div dir="{body/@dir}">
<font color="gray">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- notification message (e.g. file received) -->
<xsl:when test="@type='notification'">
<div dir="{body/@dir}">
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Classic.xsl Classic.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Classic/ )
@@ -1,5 +1,5 @@
/*
KMess Default chat style
KMess Classic chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
@@ -55,6 +55,17 @@ div.notification .filename {
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding-bottom: 0.5em;
border-bottom: 1px solid gray;
color: purple;
}
/**
* Remaining markup is done inline in the .xsl file.
@@ -1,6 +1,6 @@
<?xml version='1.0'?>
<!--
KMess Default chat style
KMess Classic chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
@@ -19,7 +19,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
@@ -49,13 +51,16 @@
<!-- show time? -->
<xsl:if test="@time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text> says: </xsl:text>
<xsl:text kmess:translate="true"> says: </xsl:text>
<br/>
</font>
</div>
@@ -81,6 +86,16 @@
</xsl:when>
<!-- presence message (e.g. contact gone offline) -->
<xsl:when test="@type='presence'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
<font color="gray">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- notification message (e.g. file received) -->
<xsl:when test="@type='notification'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
@@ -130,7 +145,7 @@
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text> says: </xsl:text>
<xsl:text kmess:translate="true"> says: </xsl:text>
<br/>
</font>
</div>
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Colourful-Enclosed.xsl Colourful-Enclosed.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Colourful-Enclosed/ )
@@ -141,6 +141,7 @@ dd
*/
div.application,
div.notification,
div.presence,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
@@ -151,6 +152,11 @@ div.application
color: blue;
}
div.presence
{
color: gray;
}
div.notification
{
color: purple;
@@ -195,3 +201,16 @@ img.customEmoticonPlaceholder
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 3em 2em 2em 2em;
padding: 0.5em;
border: 1px solid grey;
color: purple;
text-align: center;
}
@@ -21,7 +21,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
@@ -89,7 +91,12 @@
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
@@ -112,12 +119,12 @@
</xsl:when>
<!--
other messages, like:
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Dim.xsl Dim.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Dim/ )
@@ -129,6 +129,7 @@ dt span.time
*/
div.application,
div.notification,
div.presence,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
@@ -139,6 +140,11 @@ div.application
color: #6172b2;
}
div.presence
{
color: #c4c4c4;
}
div.notification
{
color: #c034c9;
@@ -183,3 +189,14 @@ img.customEmoticonPlaceholder
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin-top: 3em;
margin-bottom: 1em;
color: purple;
}
@@ -21,7 +21,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
@@ -88,7 +90,12 @@
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
@@ -111,12 +118,12 @@
</xsl:when>
<!--
other messages, like:
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Efficient.xsl Efficient.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Efficient/ )
@@ -144,6 +144,7 @@ dl
div.application,
div.notification,
div.presence,
div.system
{
margin-left: 7em;
@@ -210,6 +211,11 @@ div.application
color: blue;
}
div.presence
{
color: gray;
}
div.notification
{
color: purple;
@@ -251,3 +257,17 @@ img.customEmoticonPlaceholder
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
padding: 0;
margin-left: 6em;
margin-top: 3em;
margin-bottom: 1.5em;
font-size: larger;
color: purple;
}
@@ -21,7 +21,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
@@ -97,7 +99,12 @@
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
@@ -111,12 +118,12 @@
</xsl:when>
<!--
other messages, like:
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}">
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Fresh-dark.xsl Fresh-dark.css bg_gravatar.gif bg_gravatar_rtl.gif buddy_icon.png DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Fresh-dark/ )
+302
View File
@@ -0,0 +1,302 @@
/*
'Fresh Dark' style for KMess.
Copyright (C) 2008, Valerio Pilo
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2006, Benjamin Deveze
Design based on 'Fresh' by Benjamin Deveze
http://www.kde-look.org/content/show.php?content=43099
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins.
*/
dl, dt, dd
{
margin: 0;
padding: 0;
}
/*
* make sure position: absolute stays in the message (for time).
*/
.incoming,
.outgoing,
.offlineIncoming
{
position: relative;
}
/*
* general message layout and colors.
*/
.outgoing
{
background-color: #120d00;
border-top: 1px solid #010700;
border-bottom: 1px solid #010700;
}
.avatar
{
background-image: url("bg_gravatar.gif");
background-repeat: no-repeat;
float: left;
margin: 10px;
width: 93px;
height: 70px;
overflow: hidden;
/* instead of padding, use margin on img to align it.
makes the computation of width and height easier */
}
.rtl .avatar
{
float: right;
background-image: url("bg_gravatar_rtl.gif");
}
.avatar img
{
margin-left: 11px;
margin-top: 11px;
height: 48px;
width: 48px;
/* omitting the width auto scales, but it becomes ugly */
}
.rtl .avatar img
{
margin-left: 34px;
}
.incoming,
.outgoing,
.offlineIncoming
{
margin-top: 4px;
margin-bottom: 4px;
/* new messages should appear below the float */
clear: both;
}
.incoming dl,
.outgoing dl,
.offlineIncoming dl
{
/* for alignment of lines under the float */
margin-left: 113px; /* avatar width + margin */
margin-top: 11px;
padding-bottom: 0.7em;
}
div.application,
div.notification,
div.presence,
div.system
{
margin-left: 11px;
margin-top: 0.7em;
margin-bottom: 0.7em; /* no padding, so time also gets margin */
position: relative; /* for time */
}
/*
* name in message title.
*/
dt span.name
{
display: block;
color: #bbccdd;
font-weight: bold;
margin-bottom: 0.3em;
margin-right: 2px;
}
.offlineIncoming dt span.name
{
color: #485770;
}
/*
* time in message title and other messages.
*/
span.time
{
position: absolute;
right: 5px;
bottom: 0;
color: #ccddcc;
font-size: 8pt;
/* some margins to fix most ugly stuff when resizing */
margin-left: 5px;
margin-bottom: 0;
}
.rtl span.time
{
/* reverse for right-to-left */
position: absolute;
left: 5px;
right: auto;
margin-left: 0;
margin-right: 5px;
}
/*
* message body.
* reset spacing and default indent of dd element.
*/
dd
{
margin: 0;
padding: 0;
}
dd div.messageContent
{
/* avoid overlapping the time field */
padding-right: 5em;
}
/*
* grouped messages splitter effect
*/
.messagegroup dd.middle-child,
.messagegroup dd.last-child
{
margin-top: 0.4em;
padding-top: 0.4em;
border-top: 1px solid #000500;
}
.messagegroup dd.last-child
{
padding-bottom: 5px;
}
.messagegroup dd
{
position: relative; /* startpoint for absolute positions */
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application
{
color: #0b0;
}
div.presence
{
color: #bbb;
}
div.notification
{
color: #bb0;
}
div.system
{
color: #b00;
}
span.filename {
color: #0b0;
}
span.failedFilename,
div.notification .filename {
color: #b00;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Set the standard body margins.
* The extra #ChatMessageView prefix is needed to overrule
* the inline rule added by the chat window.
*/
#ChatMessageView body
{
padding: 0;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding: 0.5em;
border: 1px solid #000500;
font-size: larger;
color: #bb0;
}
+234
View File
@@ -0,0 +1,234 @@
<?xml version='1.0'?>
<!--
'Fresh Dark' style for KMess.
Copyright (C) 2008, Valerio Pilo
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2006, Benjamin Deveze
Design based on 'Fresh' by Benjamin Deveze
http://www.kde-look.org/content/show.php?content=43099
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Fresh-dark.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with light color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #333; color: #eee; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<!-- user avatar -->
<div class="avatar">
<div class="avatarSpace">
<xsl:choose>
<xsl:when test="from/contact/displayPicture/@url">
<img src="{from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<!-- show time? -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</dd>
</dl>
<!-- clear all floats -->
<div class="messageFooter" style="clear:both"></div>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<!-- this style also displays the time for other messages -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<!-- user avatar -->
<div class="avatar">
<div class="avatarSpace">
<!-- use the last message, so the icon updates when the buddy changes their icon
with the commonly used "look at my icon now" message -->
<xsl:choose>
<xsl:when test="message[last()]/from/contact/displayPicture/@url">
<img src="{message[last()]/from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</dd>
</xsl:for-each>
</dl>
<!-- clear all floats -->
<div class="messageFooter" style="clear:both"></div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Fresh.xsl Fresh.css bg_gravatar.gif bg_gravatar_rtl.gif buddy_icon.png DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Fresh/ )
@@ -118,6 +118,7 @@ dl, dt, dd
div.application,
div.notification,
div.presence,
div.system
{
margin-left: 11px;
@@ -227,6 +228,11 @@ div.application
color: blue;
}
div.presence
{
color: gray;
}
div.notification
{
color: purple;
@@ -280,3 +286,17 @@ img.customEmoticonPlaceholder
padding: 0;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 3em 2em 2em 2em;
padding: 0.5em;
border: 1px solid #dce6ff;
font-size: larger;
color: purple;
text-align: center;
}
@@ -21,7 +21,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
@@ -86,8 +88,8 @@
<div class="avatar">
<div class="avatarSpace">
<xsl:choose>
<xsl:when test="from/contact/@userPhotoUrl">
<img src="{from/contact/@userPhotoUrl}" height="48" alt="" />
<xsl:when test="from/contact/displayPicture/@url">
<img src="{from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
@@ -110,7 +112,12 @@
<dd dir="{body/@dir}">
<!-- show time? -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<div class="messageContent">
@@ -129,12 +136,12 @@
</xsl:when>
<!--
other messages, like:
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
@@ -169,8 +176,8 @@
<!-- use the last message, so the icon updates when the buddy changes their icon
with the commonly used "look at my icon now" message -->
<xsl:choose>
<xsl:when test="message[last()]/from/contact/@userPhotoUrl">
<img src="{message[last()]/from/contact/@userPhotoUrl}" height="48" alt="" />
<xsl:when test="message[last()]/from/contact/displayPicture/@url">
<img src="{message[last()]/from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

+24
View File
@@ -0,0 +1,24 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
set(kmess_pure_FILES
Pure.css
Pure.xsl
arrow0.png
arrow1.png
clock.png
contact.png
corner-bl.png
corner-br.png
corner-tl.png
corner-tr.png
important.png
myself.png
system.png
)
install( FILES ${kmess_pure_FILES} DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Pure/ )
@@ -253,6 +253,7 @@ dd
*/
div.application,
div.notification,
div.presence,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
@@ -263,6 +264,11 @@ div.application
color: blue;
}
div.presence
{
color: gray;
}
div.notification
{
color: purple;
@@ -319,3 +325,16 @@ img.customEmoticonPlaceholder
padding: 10px;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1.5em 1.5em 1.5em;
padding: 0.5em;
border: 1px solid #e1e1e1;
font-size: larger;
color: purple;
}
@@ -21,7 +21,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
@@ -90,14 +92,19 @@
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
</span>
</span>
</span>
</dt>
@@ -114,12 +121,12 @@
</xsl:when>
<!--
other messages, like:
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='notification' or @type='system'">
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">

Before

Width:  |  Height:  |  Size: 978 B

After

Width:  |  Height:  |  Size: 978 B

Before

Width:  |  Height:  |  Size: 215 B

After

Width:  |  Height:  |  Size: 215 B

Before

Width:  |  Height:  |  Size: 217 B

After

Width:  |  Height:  |  Size: 217 B

Before

Width:  |  Height:  |  Size: 994 B

After

Width:  |  Height:  |  Size: 994 B

Before

Width:  |  Height:  |  Size: 1017 B

After

Width:  |  Height:  |  Size: 1017 B

Before

Width:  |  Height:  |  Size: 203 B

After

Width:  |  Height:  |  Size: 203 B

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 204 B

Before

Width:  |  Height:  |  Size: 183 B

After

Width:  |  Height:  |  Size: 183 B

Before

Width:  |  Height:  |  Size: 183 B

After

Width:  |  Height:  |  Size: 183 B

Before

Width:  |  Height:  |  Size: 937 B

After

Width:  |  Height:  |  Size: 937 B

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -30,8 +30,8 @@
-->
<message type='incoming'><!-- time may be omitted -->
<from>
<contact contactId='alice@kmess.org'
userPhotoUrl=''>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
@@ -54,8 +54,8 @@
-->
<message type='incoming' time='10:30:23'>
<from>
<contact contactId='carol@kmess.org'
userPhotoUrl=''>
<contact contactId='carol@kmess.org'>
<displayPicture url='' />
<displayName text='Carol with longer name' dir='ltr' />
</contact>
</from>
@@ -73,8 +73,8 @@
<message type='incoming' time='10:30:59'>
<from>
<contact contactId='alice@kmess.org'
userPhotoUrl=''>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
@@ -100,8 +100,8 @@
<messagegroup>
<message type='outgoing' time='10:24:30'>
<from>
<contact contactId='bob@kmess.org'
userPhotoUrl=''>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
@@ -118,8 +118,8 @@
</message>
<message type='outgoing' time='10:24:40'>
<from>
<contact contactId='bob@kmess.org'
userPhotoUrl=''>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
@@ -144,8 +144,8 @@
-->
<message type='incoming' time='10:31:30'>
<from>
<contact contactId='rtl@kmess.org'
userPhotoUrl=''>
<contact contactId='rtl@kmess.org'>
<displayPicture url='' />
<displayName text='right to left name' dir='rtl' />
</contact>
</from>
@@ -162,8 +162,8 @@
</message>
<message type='incoming' time='10:31:59'>
<from>
<contact contactId='alice@kmess.org'
userPhotoUrl=''>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='הודעות טקסט' dir='rtl' />
</contact>
</from>
@@ -228,8 +228,8 @@
-->
<message type='outgoing' date='2006-10-08' time='15:14:00'>
<from>
<contact contactId='bob@kmess.org'
userPhotoUrl=''>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
@@ -275,8 +275,8 @@
-->
<message type='offlineIncoming' date='2006-10-08' time='15:26:52'>
<from>
<contact contactId='alice@kmess.org'
userPhotoUrl=''>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
# Run 'xsltproc' for every .xsl file
# It extracts the <xsl:text kmess:translate="true">..</xsl:text> nodes
# and generates output compatible for xgettext.
# The white space is simplified to avoid easily broken translations.
find . -mindepth 2 -name '*.xsl' \
| sort \
| while read xslFile
do
xsltproc --stringparam "filename" "$xslFile" \
--nonet \
--nomkdir \
"$0.xsl" "$xslFile"
done
+66
View File
@@ -0,0 +1,66 @@
<?xml version='1.0'?>
<!--
KMess transformation sheet to extract messages.
Copyright (C) 2006, Diederik van der Boor
Generates output for xgettext.
This program is started with xsltproc
by the 'extract-xsl-messages' shell script.
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="text"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes" />
<!--
parameter with file name
-->
<xsl:param name="filename" select="'kmess/styles/unknown-xsl'" />
<!--
Trick to get \n character
-->
<xsl:variable name="crlf"><xsl:text>
</xsl:text></xsl:variable>
<!--
Process root node, search for <xsl:text> nodes.
-->
<xsl:template match="/xsl:stylesheet">
<xsl:apply-templates select="//xsl:text" />
</xsl:template>
<!--
Process <xsl:text> nodes.
-->
<xsl:template match="xsl:text">
<!-- trip the node text leafs and simplyfy space -->
<xsl:variable name="trimmed" select=" normalize-space( text() ) " />
<!-- ignore <xsl:text> </xsl:text> nodes, output others for xgettext format -->
<xsl:if test=" $trimmed != '' and @kmess:translate = 'true' ">
<!-- line 1 -->
<xsl:text>//i18n: file </xsl:text>
<xsl:value-of select="$filename" />
<xsl:text> line 0</xsl:text>
<xsl:value-of select="$crlf" />
<!-- line 2 -->
<xsl:text>// xgettext: no-c-format</xsl:text>
<xsl:value-of select="$crlf" />
<!-- line 3 -->
<xsl:text>i18n("</xsl:text>
<xsl:value-of select=" $trimmed " />
<xsl:text>");</xsl:text>
<xsl:value-of select="$crlf" />
</xsl:if>
</xsl:template>
</xsl:stylesheet>
+2
View File
@@ -0,0 +1,2 @@
ADD_SUBDIRECTORY( KMess2-new )
+89
View File
@@ -0,0 +1,89 @@
SET( kmess_emoticon_FILES
emoticons.xml
smile.png
airplane.png
angel.png
angry.png
arrogant.png
asl.png
automobile.png
baringteeth.png
bat.png
beer.png
bowl.png
boy.png
brb.png
cake.png
camera.png
cat.png
cigarette.png
clock.png
cocktail.png
computer.png
confused.png
cry.png
cup.png
devil.png
dog.png
dude_hug.png
embarrassed.png
envelope.png
eyeroll.png
film.png
fingerscrossed.png
gameconsole.png
girl_hug.png
girl.png
handcuffs.png
highfive.png
huh.png
island.png
kiss.png
lightbulb.png
lightning.png
love.png
megasmile.png
messenger.png
mobilephone.png
money.png
moon.png
nerd.png
note.png
omg.png
party.png
phone.png
pizza.png
plate.png
present.png
rainbow.png
regular.png
rose.png
sad.png
sarcastic.png
secret.png
shade.png
sheep.png
sick.png
sleepy.png
snail.png
soccer.png
sshh.png
star.png
storm.png
sun.png
teeth.png
thinking.png
thumbs_down.png
thumbs_up.png
tongue.png
turtle.png
ugly.png
umbrella.png
unhappy.png
unlove.png
wilted_rose.png
wink.png
)
INSTALL( FILES ${kmess_emoticon_FILES} DESTINATION ${SHARE_INSTALL_PREFIX}/emoticons/KMess-new )

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Some files were not shown because too many files have changed in this diff Show More