Merge default into mape

scancodes-fix
Armin Burgmeier 2012-02-12 19:41:48 +01:00
commit 81e04899dc
3919 changed files with 247246 additions and 172961 deletions

3
.hgeol 100644
View File

@ -0,0 +1,3 @@
[patterns]
planet/** = LF
** = native

View File

@ -4,17 +4,22 @@ autom4te.cache
*~
*.bak
.deps
deps
*.o
clonk
c4group
./clonk
./netpuncher
./c4group
.dirstamp
*.a
*.c4p
planet/Records.c4f
*.lib
*.dll
stamp-h1
config.h
config.log
config.status
C4Version.h
Makefile
C4Include.h.gch
Makefile.in
@ -27,6 +32,58 @@ autotools/install-sh
autotools/missing
configure
intermediate
build*
CMakeFiles
CMakeCache.txt
planet/CMakeFiles
planet/CMakeCache.txt
CPackConfig.cmake
CPackSourceConfig.cmake
*.rule
# Documentation
*.pyc
docs/online
docs/chm
docs/sdk-de
docs/sdk/content.xml
docs/*.mo
docs/doku.pot
docs/Functions.txt
# Visual studio files
openclonk.opensdf
deps/
planet/Release
planet/RelWithDebInfo
planet/Debug
planet/MinSizeRel
planet/clonk.dir
planet/c4group.dir
planet/ZERO_CHECK.dir
planet/fmod.dll
planet/cmake_install.cmake
planet/clonk.sln
planet/clonk.ilk
build
planet/clonk.app
Release
RelWithDebInfo
MinSizeRel
Debug
clonk.dir
c4group.dir
ZERO_CHECK.dir
fmod.dll
cmake_install.cmake
clonk.sln
clonk.ilk
openclonk.sln
openclonk.ilk
*.vcproj
*.vcxproj
*.vcxproj.filters
# Temporary files created by Microsoft Visual Studio
*.ncb
@ -38,14 +95,37 @@ intermediate
BuildLog.htm
*.user
*.positions
*.idb
*.pdb
*.ilk
# TortoiseHg loves to generate those
*.orig
# XCode temporary files
# XCode temporary files + Xcode not temporary files
.DS_Store
._*
xcode/build
*.xcodeproj
.anjuta*
# Binaries
planet/Clonk.app
*.app
*.exe
# Development files explicitely excluded
planet/nohg*
# Eclipse project file
planet/.project
# Code::Blocks files
clonk.layout
clonk.sdf
clonk.cbp
# MacOSX saved searches
*.savedSearch
planet/OpenClonk.bat
planet/openclonk.sln

File diff suppressed because it is too large Load Diff

20
Credits.txt 100644
View File

@ -0,0 +1,20 @@
<Engine Development>
Armin Burgmeier (Clonk-Karl)
Günther Brammer (Günther)
Sven Eberhardt (Sven2)
Nicolas Hake (Isilkor)
Peter Wortmann (PeterW)
Martin Plicht (Mortimer)
<Coordination, Administration>
Tobias Zwick (Newton)
<Content, Art and Scripting>
Charles Spurrill (Ringwaul)
Maikel de Vries (Maikel)
Timo Stabbert (Mimmo)
Richard Gerum (Randrian)
David Dormagen (Zapper)
<Thanks to Contributors>
Benjamin Herr (Loriel), Julius Michaelis (Caesar), Felix Wagner (Clonkonaut), Manuel Riecke (MrBeast), Benedict Etzel (B_E), Carl-Philip Hänsch (Carli), Alexander Semeniuk (AlteredARMOR), Asmageddon, Florian Graier (Nachtfalter), Merten Ehmig (pluto), Mark Haßelbusch (Marky), Luchs, Peewee, Lauri Niskanen (Ape), Dominik Bayerl (Kanibal), Matthias Rottländer (Matthi), Faby, Checkmaty, TomyLobo, Stan, Gurkenglas, Clonkine, mizipzor, RedWolf Design GmbH and all those who contributed to previous Clonk titles for the passion they put into the game and for agreeing to make Clonk open source.

View File

@ -1,3 +1,6 @@
# Copyright (c) 2005-2011 Günther Brammer
# Copyright (c) 2009 Armin Burgmeier
# Copyright (c) 2010-2011 Nicolas Hake
# Copyright (c) 2005-2009, RedWolf Design GmbH, http://www.clonk.de
# Permission to use, copy, modify, and/or distribute this software for any
@ -14,60 +17,89 @@
ACLOCAL_AMFLAGS = -I autotools --install
bin_PROGRAMS = clonk c4group
bin_PROGRAMS = clonk c4group puncher c4script
EXTRA_PROGRAMS = tstc4netio puncher gunzip4c4group
EXTRA_PROGRAMS = tstc4netio gunzip4c4group
noinst_LIBRARIES = lib.a
# Some defines and warning options
if RECENT_GCC
GCC_FLAGS = -pipe
WARNING_FLAGS = -Wall -Wextra -Wno-invalid-offsetof \
-Wredundant-decls -Wendif-labels -Wpointer-arith \
-Wcast-qual -Wcast-align -Wwrite-strings -Winit-self \
-Wsign-promo -Wunsafe-loop-optimizations \
-Wsign-promo \
-Wno-parentheses -Wno-unused-parameter -Wno-inline \
-Wno-reorder -Wno-float-equal -Wno-switch
WARNING_FLAGS = -Wall -Wextra -Wredundant-decls -Wendif-labels -Wpointer-arith \
-Wcast-qual -Wcast-align -Wwrite-strings -Winit-self -Wsign-promo \
-Wno-reorder -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo
##-Wmissing-format-attribute -Wdisabled-optimization -Wlogical-op
##-Weffc++ -Wold-style-cast -Woverloaded-virtual
##-Weffc++ -Wold-style-cast -Woverloaded-virtual -Wunsafe-loop-optimizations
else
GCC_FLAGS =
WARNING_FLAGS = -Wall
endif
AM_CXXFLAGS = $(PTHREAD_CFLAGS) $(WINDOWS_CFLAGS) $(WARNING_FLAGS) $(GCC_FLAGS)
AM_CXXFLAGS = $(PTHREAD_CFLAGS) $(WINDOWS_CFLAGS) $(WARNING_FLAGS)
AM_CFLAGS = -Wall $(GCC_FLAGS)
AM_CFLAGS = -Wall
AM_CPPFLAGS = \
-I$(builddir) \
-I$(srcdir)/src \
-I$(srcdir)/src/c4group \
-I$(srcdir)/src/network \
-I$(srcdir)/src/lib \
-I$(srcdir)/src/platform \
-I$(srcdir)/src/config \
-I$(srcdir)/src/res \
-I$(srcdir)/src/control \
-I$(srcdir)/src/gui \
-I$(srcdir)/src/editor \
-I$(srcdir)/src/game/landscape \
-I$(srcdir)/src/game/player \
-I$(srcdir)/src/game/script \
-I$(srcdir)/src/game \
-I$(srcdir)/src/game/object \
-I$(srcdir)/src/lib/texture \
-I$(srcdir)/src/script \
-DC4ENGINE \
$(GLEW_CFLAGS) $(GTK_CFLAGS) $(FREETYPE_CFLAGS) $(SDL_CFLAGS)
-I$(builddir) \
-I$(srcdir)/src \
-I$(srcdir)/src/c4group \
-I$(srcdir)/src/network \
-I$(srcdir)/src/lib \
-I$(srcdir)/src/platform \
-I$(srcdir)/src/config \
-I$(srcdir)/src/res \
-I$(srcdir)/src/control \
-I$(srcdir)/src/gui \
-I$(srcdir)/src/editor \
-I$(srcdir)/src/game/landscape \
-I$(srcdir)/src/game/player \
-I$(srcdir)/src/game/script \
-I$(srcdir)/src/game \
-I$(srcdir)/src/game/object \
-I$(srcdir)/src/lib/texture \
-I$(srcdir)/src/script \
-I$(srcdir)/thirdparty \
$(GLEW_CFLAGS) \
$(GTK_CFLAGS) \
$(OPENAL_CFLAGS) \
$(FREETYPE_CFLAGS) \
$(SDL_CFLAGS) \
$(BOOST_CPPFLAGS) \
$(LIBUPNP_CFLAGS)
##BUILT_SOURCES = hgrevision.h
##hgrevision.h: $(srcdir)/.hg/dirstate
## $(srcdir)/tools/get_hg_revision.sh > hgrevision.h
##$(srcdir)/.hg/dirstate:
BUILT_SOURCES = C4Version.h
CLEANFILES =
DISTCLEANFILES = C4Version.h
do_subst = sed -e 's,[@]C4PROJECT[@],'"$$(sed -n 's/SET(C4PROJECT\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4PROJECT_DOMAIN[@],'"$$(sed -n 's/SET(C4PROJECT_DOMAIN\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4PROJECT_TLD[@],'"$$(sed -n 's/SET(C4PROJECT_TLD\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4PROJECT_URL[@],http://www.openclonk.org,g' \
-e 's,[@]C4COPYRIGHT_YEAR[@],'"$$(date '+%Y')"',g' \
-e 's,[@]C4ENGINENAME[@],'"$$(sed -n 's/SET(C4ENGINENAME\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4ENGINENICK[@],'"$$(sed -n 's/SET(C4ENGINENICK\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4ENGINEID[@],org.openclonk." C4ENGINENICK ",g' \
-e 's,[@]C4XVER1[@],'"$$(sed -n 's/SET(C4XVER1\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4XVER2[@],'"$$(sed -n 's/SET(C4XVER2\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4XVER3[@],'"$$(sed -n 's/SET(C4XVER3\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4XVER4[@],'"$$(sed -n 's/SET(C4XVER4\s\+\(.\+\))/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4VERSIONBUILDNAME[@],'"$$(sed -n 's/SET(C4VERSIONBUILDNAME\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g' \
-e 's,[@]C4VERSIONEXTRA[@],'"$$(sed -n 's/SET(C4VERSIONEXTRA\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)"',g'
C4Version.h: $(srcdir)/src/C4Version.h.in $(srcdir)/Version.txt
$(do_subst) < $< > $@
WindowsGamesExplorer.xml: $(srcdir)/src/res/WindowsGamesExplorer.xml.in $(srcdir)/Version.txt
$(do_subst) < $< > $@
src/res/engine.o: WindowsGamesExplorer.xml
#various hacks to get dependency tracking working with a precompiled C4Include
if RECENT_GCC
BUILT_SOURCES = C4Include.h.gch
CLEANFILES = C4Include.h.gch
DISTCLEANFILES = @am__quote@$(DEPDIR)/C4Include.Po@am__quote@
BUILT_SOURCES += C4Include.h.gch
CLEANFILES += C4Include.h.gch
DISTCLEANFILES += @am__quote@$(DEPDIR)/C4Include.Po@am__quote@
# Adapted from the automake compile-command for normal source files.
# Has to be updated after certain changes in this file.
@ -87,91 +119,68 @@ WARNING_FLAGS += -Winvalid-pch
endif
lib_a_SOURCES = \
src/c4group/C4Group.cpp \
src/c4group/C4Group.h \
src/c4group/C4Update.cpp \
src/c4group/C4Update.h \
src/c4group/CStdFile.cpp \
src/c4group/CStdFile.h \
src/config/C4SecurityCertificates.cpp \
src/config/C4SecurityCertificates.h \
src/lib/C4InputValidation.cpp \
src/lib/C4InputValidation.h \
src/lib/C4LogBuf.cpp \
src/lib/C4LogBuf.h \
src/lib/C4Random.cpp \
src/lib/C4Random.h \
src/lib/C4Rect.cpp \
src/lib/C4Rect.h \
src/lib/C4RTF.cpp \
src/lib/C4RTF.H \
src/lib/C4Stat.cpp \
src/lib/C4Stat.h \
src/lib/Fixed.cpp \
src/lib/Fixed.h \
src/lib/PathFinder.cpp \
src/lib/PathFinder.h \
src/lib/SHA1.h \
src/lib/Standard.cpp \
src/lib/Standard.h \
src/lib/StdAdaptors.h \
src/lib/StdBase64.cpp \
src/lib/StdBase64.h \
src/lib/StdBuf.cpp \
src/lib/StdBuf.h \
src/lib/StdColors.h \
src/lib/StdCompiler.cpp \
src/lib/StdCompiler.h \
src/lib/StdMarkup.cpp \
src/lib/StdMarkup.h \
src/lib/C4Markup.cpp \
src/lib/C4Markup.h \
src/lib/StdResStr2.cpp \
src/lib/StdResStr2.h \
src/lib/StdResStr.h \
src/lib/texture/C4Facet.cpp \
src/lib/texture/C4FacetEx.cpp \
src/lib/texture/C4FacetEx.h \
src/lib/texture/C4Facet.h \
src/lib/texture/C4Surface.cpp \
src/lib/texture/C4SurfaceFile.cpp \
src/lib/texture/C4SurfaceFile.h \
src/lib/texture/C4Surface.h \
src/lib/texture/StdPNG.cpp \
src/lib/texture/StdPNG.h
src/network/C4NetIO.cpp \
src/platform/GetTime.cpp \
src/platform/StdFile.cpp \
src/platform/StdFile.h \
src/platform/StdRegistry.cpp \
src/platform/StdRegistry.h \
src/platform/StdScheduler.cpp \
src/platform/StdScheduler.h \
src/zlib/gzio.c \
src/zlib/zutil.h
clonk_SOURCES = \
src/lib/C4Log.cpp \
src/lib/C4Log.h \
src/lib/C4NameList.cpp \
src/lib/C4NameList.h \
src/lib/texture/C4GraphicsResource.cpp \
src/lib/texture/C4GraphicsResource.h \
src/C4Application.cpp \
src/C4Application.h \
src/C4FullScreen.cpp \
src/C4FullScreen.h \
src/C4Game.cpp \
src/C4Game.h \
src/C4Globals.cpp \
src/C4GraphicsSystem.cpp \
src/C4GraphicsSystem.h \
src/c4group/C4LangStringTable.cpp \
src/c4group/C4LangStringTable.h \
src/c4group/C4Components.h \
src/c4group/C4ComponentHost.cpp \
src/c4group/C4ComponentHost.h \
src/c4group/C4Components.h \
src/c4group/C4Extra.cpp \
src/c4group/C4Extra.h \
src/c4group/C4Group.cpp \
src/c4group/C4Group.h \
src/c4group/C4GroupSet.cpp \
src/c4group/C4GroupSet.h \
src/c4group/C4LangStringTable.cpp \
src/c4group/C4LangStringTable.h \
src/c4group/C4Language.cpp \
src/c4group/C4Language.h \
src/c4group/C4Update.cpp \
src/c4group/C4Update.h \
src/c4group/CStdFile.cpp \
src/c4group/CStdFile.h \
src/C4Include.h \
src/C4Prototypes.h \
src/C4Version.h \
src/C4Version.h.in \
src/C4WinMain.cpp \
src/config/C4Config.cpp \
src/config/C4Config.h \
src/config/C4ConfigShareware.cpp \
src/config/C4ConfigShareware.h \
src/config/C4Constants.h \
src/config/C4SecurityCertificates.cpp \
src/config/C4SecurityCertificates.h \
src/config/C4Reloc.cpp \
src/config/C4Reloc.h \
src/control/C4Control.cpp \
src/control/C4Control.h \
src/control/C4GameControl.cpp \
@ -180,6 +189,8 @@ src/control/C4GameParameters.cpp \
src/control/C4GameParameters.h \
src/control/C4GameSave.cpp \
src/control/C4GameSave.h \
src/control/C4PlayerControl.cpp \
src/control/C4PlayerControl.h \
src/control/C4PlayerInfoConflicts.cpp \
src/control/C4PlayerInfo.cpp \
src/control/C4PlayerInfo.h \
@ -190,6 +201,8 @@ src/control/C4RoundResults.h \
src/control/C4Teams.cpp \
src/control/C4Teams.h \
src/editor/C4Console.cpp \
src/editor/C4ConsoleGUICommon.h \
src/editor/C4ConsoleGUI.h \
src/editor/C4Console.h \
src/editor/C4DevmodeDlg.cpp \
src/editor/C4DevmodeDlg.h \
@ -197,14 +210,15 @@ src/editor/C4EditCursor.cpp \
src/editor/C4EditCursor.h \
src/editor/C4ObjectListDlg.cpp \
src/editor/C4ObjectListDlg.h \
src/editor/C4PropertyDlg.cpp \
src/editor/C4PropertyDlg.h \
src/editor/C4ToolsDlg.cpp \
src/editor/C4ToolsDlg.h \
src/game/C4GameVersion.h \
src/game/C4Physics.h \
src/game/landscape/C4Landscape.cpp \
src/game/landscape/C4Landscape.h \
src/game/landscape/C4LandscapeRender.cpp \
src/game/landscape/C4LandscapeRenderClassic.cpp \
src/game/landscape/C4LandscapeRender.h \
src/game/landscape/C4Map.cpp \
src/game/landscape/C4MapCreatorS2.cpp \
src/game/landscape/C4MapCreatorS2.h \
@ -239,6 +253,8 @@ src/game/object/C4Command.h \
src/game/object/C4Def.cpp \
src/game/object/C4DefGraphics.cpp \
src/game/object/C4DefGraphics.h \
src/game/object/C4DefList.cpp \
src/game/object/C4DefList.h \
src/game/object/C4Def.h \
src/game/object/C4GameObjects.cpp \
src/game/object/C4GameObjects.h \
@ -248,6 +264,8 @@ src/game/object/C4IDList.cpp \
src/game/object/C4IDList.h \
src/game/object/C4InfoCore.cpp \
src/game/object/C4InfoCore.h \
src/game/object/C4MeshAnimation.cpp \
src/game/object/C4MeshAnimation.h \
src/game/object/C4Movement.cpp \
src/game/object/C4ObjectCom.cpp \
src/game/object/C4ObjectCom.h \
@ -261,6 +279,9 @@ src/game/object/C4ObjectList.cpp \
src/game/object/C4ObjectList.h \
src/game/object/C4ObjectMenu.cpp \
src/game/object/C4ObjectMenu.h \
src/game/object/C4ObjectScript.cpp \
src/game/object/C4ObjectPtr.cpp \
src/game/object/C4ObjectPtr.h \
src/game/object/C4Sector.cpp \
src/game/object/C4Sector.h \
src/game/object/C4Shape.cpp \
@ -275,7 +296,7 @@ src/game/script/C4Effect.cpp \
src/game/script/C4Effects.h \
src/game/script/C4FindObject.cpp \
src/game/script/C4FindObject.h \
src/game/script/C4Script.cpp \
src/game/script/C4GameScript.cpp \
src/game/script/C4Script.h \
src/game/script/C4TransferZone.cpp \
src/game/script/C4TransferZone.h \
@ -348,6 +369,52 @@ src/gui/C4UpperBoard.h \
src/gui/C4UserMessages.h \
src/gui/C4Viewport.cpp \
src/gui/C4Viewport.h \
src/lib/C4LogBuf.cpp \
src/lib/C4LogBuf.h \
src/lib/C4Log.cpp \
src/lib/C4Log.h \
src/lib/C4NameList.cpp \
src/lib/C4NameList.h \
src/lib/C4Random.cpp \
src/lib/C4Random.h \
src/lib/C4Real.cpp \
src/lib/C4Real.h \
src/lib/C4Rect.cpp \
src/lib/C4Rect.h \
src/lib/C4RTF.cpp \
src/lib/C4RTF.h \
src/lib/C4Stat.cpp \
src/lib/C4Stat.h \
src/lib/PathFinder.cpp \
src/lib/PathFinder.h \
src/lib/StdAdaptors.h \
src/lib/StdBase64.cpp \
src/lib/StdBase64.h \
src/lib/StdColors.h \
src/lib/StdMesh.cpp \
src/lib/StdMesh.h \
src/lib/StdMeshLoaderBinaryChunks.cpp \
src/lib/StdMeshLoaderBinaryChunks.h \
src/lib/StdMeshLoaderBinary.cpp \
src/lib/StdMeshLoaderDataStream.h \
src/lib/StdMeshLoader.h \
src/lib/StdMeshLoaderXml.cpp \
src/lib/StdMeshMaterial.cpp \
src/lib/StdMeshMaterial.h \
src/lib/StdMeshMath.cpp \
src/lib/StdMeshMath.h \
src/lib/StdMeshUpdate.cpp \
src/lib/StdMeshUpdate.h \
src/lib/StdResStr.h \
src/lib/texture/C4Facet.cpp \
src/lib/texture/C4FacetEx.cpp \
src/lib/texture/C4FacetEx.h \
src/lib/texture/C4Facet.h \
src/lib/texture/C4GraphicsResource.cpp \
src/lib/texture/C4GraphicsResource.h \
src/lib/texture/C4SurfaceLoaders.cpp \
src/lib/texture/StdPNG.cpp \
src/lib/texture/StdPNG.h \
src/network/C4Client.cpp \
src/network/C4Client.h \
src/network/C4GameControlNetwork.cpp \
@ -356,7 +423,6 @@ src/network/C4InteractiveThread.cpp \
src/network/C4InteractiveThread.h \
src/network/C4League.cpp \
src/network/C4League.h \
src/network/C4NetIO.cpp \
src/network/C4NetIO.h \
src/network/C4Network2Client.cpp \
src/network/C4Network2Client.h \
@ -379,11 +445,11 @@ src/network/C4Network2ResDlg.cpp \
src/network/C4Network2Res.h \
src/network/C4Network2Stats.cpp \
src/network/C4Network2Stats.h \
src/network/C4Network2UPnP.h \
src/network/C4Packet2.cpp \
src/network/C4PacketBase.h \
src/platform/Bitmap256.cpp \
src/platform/Bitmap256.h \
src/platform/C4FileClasses.h \
src/platform/C4FileMonitor.cpp \
src/platform/C4FileMonitor.h \
src/platform/C4Fonts.cpp \
@ -394,30 +460,26 @@ src/platform/C4MusicFile.cpp \
src/platform/C4MusicFile.h \
src/platform/C4MusicSystem.cpp \
src/platform/C4MusicSystem.h \
src/platform/C4SoundLoaders.cpp \
src/platform/C4SoundLoaders.h \
src/platform/C4SoundSystem.cpp \
src/platform/C4SoundSystem.h \
src/platform/C4Video.cpp \
src/platform/C4Video.h \
src/platform/C4VideoPlayback.cpp \
src/platform/C4VideoPlayback.h \
src/platform/DInputX.cpp \
src/platform/DInputX.h \
src/platform/DSoundX.cpp \
src/platform/DSoundX.h \
src/platform/Midi.cpp \
src/platform/Midi.h \
src/platform/OpenURL.cpp \
src/platform/StdConfig.cpp \
src/platform/StdConfig.h \
src/platform/C4ViewportWindow.cpp \
src/platform/C4ViewportWindow.h \
src/platform/C4windowswrapper.h \
src/platform/PlatformAbstraction.h \
src/platform/C4App.h \
src/platform/C4App.cpp \
src/platform/StdD3D.cpp \
src/platform/StdD3D.h \
src/platform/StdD3DShader.cpp \
src/platform/StdD3DShader.h \
src/platform/StdDDraw2.cpp \
src/platform/StdDDraw2.h \
src/platform/StdFacet.h \
src/platform/StdFile.cpp \
src/platform/StdFile.h \
src/platform/StdFont.cpp \
src/platform/StdFont.h \
src/platform/StdGL.cpp \
@ -425,18 +487,15 @@ src/platform/StdGLCtx.cpp \
src/platform/StdGL.h \
src/platform/StdNoGfx.cpp \
src/platform/StdNoGfx.h \
src/platform/StdRegistry.cpp \
src/platform/StdRegistry.h \
src/platform/StdScheduler.cpp \
src/platform/StdScheduler.h \
src/platform/StdSurface2.cpp \
src/platform/StdSurface2.h \
src/platform/C4Surface.cpp \
src/platform/C4Surface.h \
src/platform/StdSurface8.cpp \
src/platform/StdSurface8.h \
src/platform/StdSync.h \
src/platform/C4AppT.cpp \
src/platform/StdVideo.cpp \
src/platform/StdVideo.h \
src/platform/StdWindow.h \
src/platform/C4Window.h \
src/res/Brush.h \
src/res/Cursor.h \
src/res/Dynamic.h \
@ -452,57 +511,99 @@ src/res/Play.h \
src/res/Rect.h \
src/res/resource.h \
src/res/Static.h \
src/script/C4AList.cpp \
src/script/C4AList.h \
src/script/C4Aul.cpp \
src/script/C4AulDebug.cpp \
src/script/C4AulDebug.h \
src/script/C4AulDefFunc.h \
src/script/C4AulExec.cpp \
src/script/C4AulExec.h \
src/script/C4Aul.h \
src/script/C4AulLink.cpp \
src/script/C4AulParse.cpp \
src/script/C4PropList.cpp \
src/script/C4PropList.h \
src/script/C4Script.cpp \
src/script/C4ScriptHost.cpp \
src/script/C4ScriptHost.h \
src/script/C4StringTable.cpp \
src/script/C4StringTable.h \
src/script/C4ValueArray.cpp \
src/script/C4ValueArray.h \
src/script/C4Value.cpp \
src/script/C4Value.h \
src/script/C4ValueList.cpp \
src/script/C4ValueList.h \
src/script/C4ValueMap.cpp \
src/script/C4ValueMap.h \
src/zlib/gzio.c \
src/zlib/zutil.h
thirdparty/tinyxml/tinystr.cpp \
thirdparty/tinyxml/tinystr.h \
thirdparty/tinyxml/tinyxml.cpp \
thirdparty/tinyxml/tinyxml.h \
thirdparty/tinyxml/tinyxmlerror.cpp \
thirdparty/tinyxml/tinyxmlparser.cpp
if WIN32
clonk_SOURCES += src/platform/C4FileClasses.cpp
clonk_SOURCES += src/res/engine.rc src/res/resource.h
clonk_SOURCES += src/platform/StdWindow.cpp src/platform/StdJoystick.cpp src/platform/StdJoystick.h
else
clonk_SOURCES += \
src/editor/C4ConsoleWin32.cpp \
src/platform/C4CrashHandlerWin32.cpp \
src/res/engine.rc \
src/res/resource.h \
src/platform/StdJoystick.cpp \
src/platform/StdJoystick.h
endif
if MACOSX
clonk_SOURCES += \
src/platform/C4AppMac.mm \
src/platform/C4FileMonitorMac.mm \
src/platform/C4WindowMac.mm \
src/platform/ClonkAppDelegate.h \
src/platform/ClonkAppDelegate.mm \
src/platform/ConsoleWindowController.h \
src/platform/ConsoleWindowController.mm \
src/platform/ClonkWindowController.h \
src/platform/ClonkWindowController.mm \
src/platform/ClonkOpenGLView.h \
src/platform/ClonkOpenGLView.mm \
src/platform/CocoaKeycodeMap.h \
src/editor/C4ConsoleCocoa.mm \
src/platform/ClonkMainMenuActions.h \
src/platform/ClonkMainMenuActions.mm
endif
if SDL_MAIN_LOOP
clonk_SOURCES += src/platform/StdSDLApp.cpp src/platform/StdSDLWindow.cpp
clonk_SOURCES += src/platform/C4AppSDL.cpp src/platform/C4WindowSDL.cpp
else
clonk_SOURCES += src/platform/StdXApp.cpp src/platform/StdXWindow.cpp src/platform/StdXPrivate.h src/platform/StdTApp.cpp
if WIN32
clonk_SOURCES += src/platform/C4WindowWin32.cpp
else
clonk_SOURCES += src/platform/C4AppX.cpp src/platform/C4WindowX.cpp src/platform/C4AppXImpl.h
endif
endif
if DEVELOPER_MODE
clonk_SOURCES += src/platform/StdGtkWindow.cpp src/platform/StdGtkWindow.h
clonk_SOURCES += src/platform/C4WindowGTK.cpp src/platform/C4WindowGTK.h src/editor/C4ConsoleGTK.cpp
endif
if LIBUPNP
clonk_SOURCES += src/network/C4Network2UPnPLinux.cpp
else
if NATUPNP
clonk_SOURCES += src/network/C4Network2UPnPWin32.cpp
else
clonk_SOURCES += src/network/C4Network2UPnPDummy.cpp
endif
endif
clonk_LDADD = \
lib.a \
$(LIBICONV) \
$(GTK_LIBS) \
$(OPENAL_LIBS) \
$(FREETYPE_LIBS) \
$(SDL_LIBS) \
$(PTHREAD_LIBS) \
$(Z_LIBS) \
$(CLONK_LIBS) \
$(OPENSSL_LIBS)
$(LIBUPNP_LIBS)
# build the resources
.rc.o:
$(WINDRES) -I $(srcdir)/src/res -I $(srcdir)/src -i $< -o $@
$(WINDRES) -I $(srcdir)/src/res -I $(builddir) -i $< -o $@
c4group_CPPFLAGS = \
-I$(builddir) \
@ -522,65 +623,41 @@ c4group_CPPFLAGS = \
-I$(srcdir)/src/game \
-I$(srcdir)/src/game/object \
-I$(srcdir)/src/lib/texture \
-I$(srcdir)/src/script \
-DUSE_CONSOLE
-I$(srcdir)/src/script
c4group_SOURCES = \
src/c4group/c4group_ng.cpp \
src/c4group/C4Group.cpp \
src/lib/C4InputValidation.cpp \
src/config/C4SecurityCertificates.cpp \
src/c4group/C4Update.cpp \
src/lib/Standard.cpp \
src/c4group/CStdFile.cpp \
src/lib/StdMarkup.cpp \
src/lib/StdBuf.cpp \
src/lib/StdCompiler.cpp \
src/platform/StdFile.cpp \
src/platform/StdRegistry.cpp \
src/lib/StdResStr2.cpp \
src/platform/StdConfig.cpp \
src/zlib/gzio.c
src/lib/C4SimpleLog.cpp \
src/c4group/c4group_ng.cpp
if WIN32
c4group_SOURCES += src/c4group/Resource.rc
endif
c4group_LDADD = \
lib.a \
$(LIBICONV) \
$(Z_LIBS) \
$(OPENSSL_LIBS) \
$(PTHREAD_LIBS)
## gunzip4c4group
gunzip4c4group_SOURCES = \
src/c4group/gunzip4c4group.cpp \
src/c4group/C4Group.cpp \
src/lib/C4InputValidation.cpp \
src/config/C4SecurityCertificates.cpp \
src/c4group/C4Update.cpp \
src/lib/Standard.cpp \
src/c4group/CStdFile.cpp \
src/lib/StdMarkup.cpp \
src/lib/StdBuf.cpp \
src/lib/StdCompiler.cpp \
src/platform/StdFile.cpp \
src/platform/StdRegistry.cpp \
src/lib/StdResStr2.cpp \
src/platform/StdConfig.cpp \
src/zlib/gzio.c
src/lib/C4SimpleLog.cpp \
src/c4group/gunzip4c4group.cpp
gunzip4c4group_LDADD = \
lib.a \
$(Z_LIBS) \
$(PTHREAD_LIBS)
## puncher
puncher_SOURCES = \
src/netpuncher/main.cpp \
src/network/C4NetIO.cpp
src/lib/C4SimpleLog.cpp \
src/netpuncher/main.cpp
puncher_LDADD = \
lib.a \
$(PTHREAD_LIBS)
if WIN32
@ -590,79 +667,181 @@ endif
## tstc4netio
tstc4netio_SOURCES = \
src/netio/TstC4NetIO.cpp \
src/network/C4NetIO.cpp
src/lib/C4SimpleLog.cpp \
src/netio/TstC4NetIO.cpp
tstc4netio_LDADD = \
$(PTHREAD_LIBS) -lz
lib.a \
$(Z_LIBS) \
$(PTHREAD_LIBS)
if WIN32
tstc4netio_LDADD += -lwinmm -lws2_32
endif
## c4script shell
c4script_SOURCES = \
src/lib/C4SimpleLog.cpp \
src/lib/C4Real.cpp \
src/lib/C4Random.cpp \
src/script/shell.cpp \
src/script/C4Aul.cpp \
src/script/C4AulExec.cpp \
src/script/C4AulLink.cpp \
src/script/C4AulParse.cpp \
src/script/C4StringTable.cpp \
src/script/C4PropList.cpp \
src/script/C4ScriptHost.cpp \
src/script/C4ValueArray.cpp \
src/script/C4Value.cpp \
src/script/C4ValueMap.cpp \
src/game/object/C4Id.cpp \
src/script/C4Script.cpp \
src/c4group/C4GroupSet.cpp \
src/c4group/C4ComponentHost.cpp \
src/c4group/C4LangStringTable.cpp
c4script_LDADD = \
lib.a \
$(Z_LIBS)
if WIN32
c4script_LDADD += -lwinmm
endif
## documentation
dist_doc_DATA = planet/AUTHORS planet/COPYING licenses/LGPL.txt Credits.txt
## game data
c4groups = \
Graphics.ocg \
Material.ocg \
Music.ocg \
Sound.ocg \
System.ocg \
Objects.ocd \
BackToTheRocks.ocf \
Tutorial.ocf
CLEANFILES += $(c4groups)
pkgdata_DATA = $(c4groups)
AM_CXXFLAGS += -DOC_SYSTEM_DATA_DIR=\"${pkgdatadir}\"
%.ocg: $(srcdir)/planet/%.ocg c4group$(EXEEXT)
./c4group$(EXEEXT) $< -t $@ || c4group $< -t $@
%.ocd: $(srcdir)/planet/%.ocd c4group$(EXEEXT)
./c4group$(EXEEXT) $< -t $@ || c4group $< -t $@
%.ocf: $(srcdir)/planet/%.ocf c4group$(EXEEXT)
./c4group$(EXEEXT) $< -t $@ || c4group $< -t $@
## windows setup.exe
if WIN32
tools/install/firewall.dll: $(srcdir)/tools/install/firewall.cpp
mkdir -p tools/install
$(CXX) -shared -o tools/install/firewall.dll $(srcdir)/tools/install/firewall.cpp -lole32 -loleaut32
setup_openclonk.exe: $(srcdir)/tools/install/oc.nsi c4group$(EXEEXT) clonk$(EXEEXT) $(c4groups)
makensis -NOCD -DSRCDIR=$(srcdir) '-DPROGRAMFILES=$$PROGRAMFILES' \
-DPRODUCT_NAME="$$(sed -n 's/SET(C4ENGINENAME\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)$$(sed -n 's/SET(C4VERSIONBUILDNAME\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)" \
-DPRODUCT_COMPANY="$$(sed -n 's/SET(C4PROJECT\s\+"\(.\+\)")/\1/ p' $(srcdir)/Version.txt)" \
$< "-XOutFile $@"
endif
## other stuff
EXTRA_DIST = \
planet \
Version.txt \
CMakeLists.txt \
Makefile.am \
config.h.cmake \
planet/System.ocg/LanguageUS.txt \
planet/System.ocg/LanguageDE.txt \
clonk.anjuta \
licenses \
xcode \
src/netio/NetIO.dsp \
src/netpuncher/Puncher.dsp \
src/res/Brush_Trans.png \
src/res/Cursor_Trans.png \
src/res/cz.ico \
src/res/Dynamic_Trans.png \
src/res/Exact_Trans.png \
src/res/Fill_Trans.png \
src/res/Halt_Trans.png \
src/res/Ift_Trans.png \
src/res/Line_Trans.png \
src/res/Mouse_Trans.png \
src/res/NoIft_Trans.png \
src/res/Picker_Trans.png \
src/res/Play_Trans.png \
src/res/Rect_Trans.png \
src/res/Static_Trans.png \
src/c4group/c4group_cmdl.cpp \
src/c4group/resource.h \
src/c4group/Resource.rc \
src/res/brush1.bmp \
src/res/c4g.ico \
src/res/c4s.ico \
src/res/Cursor2.bmp \
src/res/Game.pal \
src/res/line1.bmp \
src/res/Play2.bmp \
src/res/Brush2.bmp \
src/res/c4i.ico \
src/res/c4u.ico \
src/res/Cursor.bmp \
src/res/Grab.bmp \
src/res/Line.bmp \
src/res/Play.bmp \
src/res/Brush.bmp \
src/res/c4k.ico \
src/res/c4v.ico \
src/res/dynamic1.bmp \
src/res/Halt2.bmp \
src/res/mouse1.bmp \
src/res/rect1.bmp \
src/res/c4b.ico \
src/res/c4l.ico \
src/res/c4x.ico \
src/res/Halt.bmp \
src/res/mouse.bmp \
src/res/Rectangle.bmp \
src/res/c4d.ico \
src/res/c4m.ico \
src/res/Brush.h \
src/res/Brush_Trans.png \
src/res/C4K.icns \
src/res/C4P.icns \
src/res/c4x.xpm \
src/res/Clonk.icns \
src/res/ClonkWindow.xib \
src/res/ConsoleGUIWindow.xib \
src/res/ConsoleWindow.xib \
src/res/Cursor2.bmp \
src/res/Cursor.bmp \
src/res/Cursor.h \
src/res/Cursor_Trans.png \
src/res/dynamic1.bmp \
src/res/Dynamic.h \
src/res/Dynamic_Trans.png \
src/res/Exact.h \
src/res/Exact_Trans.png \
src/res/fill1.bmp \
src/res/ift1.bmp \
src/res/NoIFT.bmp \
src/res/c4f.ico \
src/res/c4p.ico \
src/res/Fill.bmp \
src/res/Fill.h \
src/res/Fill_Trans.png \
src/res/FullscreenWindow.xib \
src/res/Game.pal \
src/res/Grab.bmp \
src/res/Halt2.bmp \
src/res/Halt.bmp \
src/res/Halt.h \
src/res/Halt_Trans.png \
src/res/ift1.bmp \
src/res/IFT.bmp \
src/res/Ift.h \
src/res/Ift_Trans.png \
src/res/Info.plist \
src/res/line1.bmp \
src/res/Line.bmp \
src/res/Line.h \
src/res/Line_Trans.png \
src/res/MainMenu.xib \
src/res/mouse1.bmp \
src/res/mouse.bmp \
src/res/Mouse.h \
src/res/Mouse_Trans.png \
src/res/NoIFT.bmp \
src/res/NoIft.h \
src/res/NoIft_Trans.png \
src/res/ocb.ico \
src/res/ocd.icns \
src/res/ocd.ico \
src/res/ocf.icns \
src/res/ocf.ico \
src/res/ocg.icns \
src/res/ocg.ico \
src/res/oc.ico \
src/res/oci.ico \
src/res/ocl.ico \
src/res/ocm.ico \
src/res/ocp.ico \
src/res/ocs.icns \
src/res/ocs.ico \
src/res/ocu.icns \
src/res/ocu.ico \
src/res/ocv.ico \
src/res/picker1.bmp \
src/res/static1.bmp
src/res/Picker.h \
src/res/Picker_Trans.png \
src/res/Play2.bmp \
src/res/Play.bmp \
src/res/Play.h \
src/res/Play_Trans.png \
src/res/rect1.bmp \
src/res/Rectangle.bmp \
src/res/Rect.h \
src/res/Rect_Trans.png \
src/res/static1.bmp \
src/res/Static.h \
src/res/Static_Trans.png \
src/res/English.lproj/InfoPlist.strings \
src/res/English.lproj/Localizable.strings \
src/res/German.lproj/Localizable.strings \
src/res/SDLMain.nib/objects.nib

View File

@ -1,16 +1,49 @@
Requirements
============
To build on Linux you need the following packages (Debian names given):
To build on DEB-based Linux distributions (Debian, Ubuntu etc.) you need the
following packages:
make gcc g++
automake autoconf
libc6-dev libx11-dev libxxf86vm-dev libxrandr-dev libxpm-dev libglew1.5-dev
libgl1-mesa-dev libpng12-dev libssl-dev libsdl1.2-dev libsdl-mixer1.2-dev
libssl-dev libgtk2.0-dev libjpeg62-dev zlib1g-dev
make gcc g++
cmake OR automake autoconf
libc6-dev libx11-dev libxxf86vm-dev libxrandr-dev libxpm-dev libglew1.5-dev
libgl1-mesa-dev libpng12-dev libsdl1.2-dev libsdl-mixer1.2-dev libgtk2.0-dev
libjpeg62-dev zlib1g-dev libboost-dev
Build
=====
(Most of those packages can be substituted with a newer version if required,
for example libglew1.6-dev instead of libglew1.5-dev.)
To build on RPM-based Linux distributions (Red Hat, Fedora, Mandriva,
SuSE etc.) you need the following packages:
make gcc gcc-c++
cmake OR automake autoconf
libX11-devel libXxf86vm-devel libXrandr-devel libXpm-devel glew-devel
mesa-libGL-devel libpng-devel SDL-devel SDL_mixer1.2-dev gtk2-devel
libjpeg-devel zlib-devel boost-devel
Build using cmake
=================
To build OpenClonk, execute the following command inside of the source tree:
cmake . && make
By default, the binary will be built without debugging support. If you want
to generate a debug build, pass the parameter -DCMAKE_BUILD_TYPE=Debug to
your cmake invocation.
Please note that you do not need to build a Debug binary if you only want to
debug C4Script code.
You can see other build variables with:
cmake . -N -L
Build using autotools
=====================
If you build from version control, you need to run this:
@ -20,8 +53,22 @@ To build from tarball, run this:
./configure && make
If you want a debug build, pass --enable-debug to configure, for the developer mode
--with-gtk. Other options are listed by ./configure --help.
If you want a debug build, pass --enable-debug to configure. Other options are
listed by ./configure --help.
On subsequent build runs, you only have to execute make.
Running
=======
You can run the game from the build directory:
./clonk
See docs/sdk/cmdline.xml for the supported command line options.
Or install it with this:
make install

View File

@ -1,19 +1,34 @@
Requirements
============
OSX 10.4 or higher
OSX 10.6 or higher (might also work with 10.5)
an Intel mac
xcode
brew (https://github.com/mxcl/homebrew) or macports (http://www.macports.org/)
Xcode
Apple X11
CMake (http://www.cmake.org/)
Build
=====
Launch xcode and load the project. Select the desired configuration and build.
-Install dependencies using brew or port (libjpeg, libpng, freetype, glew, libogg, libvorbis, libvorbisfile)
-Launch the CMake GUI application
-Click Browse Source… button, navigate to your openclonk repository folder
-Also Specify location where you want to build
-Click Configure and use default native compilers
-Wait
-<Potentially include additional steps to make CMake find the right libraries>
-If you want 64-bit builds set the CMAKE_OSX_ARCHITECTURES setting to "x86_64"
-For universal builds set it to "x86_64 i386", but then you'll also need universal versions of the dependencies
-Click Configure button again for good measure
-Click Generate
-Launch xcode and load the project. Select the desired configuration and build.
It should be pretty straight forward, hopefully.
NoNetwork
=========
Additional CMake hints
=====================
If you are using the public source package, will be able to build
the "NoNetwork" configurations only.
FREETYPE_LIBRARY should be set to /usr/X11/lib/libfreetype.6.dylib
ZLIB_LIBRARY to /usr/lib/libz.dylib
ZLIB_INCLUDE_DIR to /usr/include

View File

@ -3,50 +3,38 @@ Requirements
You can build on Windows using either:
* vc9 (Microsoft Visual C++ 2008)
you need CMake (http://www.cmake.org/cmake/resources/software.html) to create the "solution"
you might have to set the correct DXSDK include and library directories
* vc10 (Microsoft Visual C++ 2010)
- you need CMake (http://www.cmake.org/cmake/resources/software.html) to
create the "solution"
- you might have to set the correct DXSDK include and library directories
* MinGW and MSYS
plus DXSDK 9 (if you want DirectX support)
- plus DXSDK 9 (if you want DirectX support)
* Some other compilers and IDEs which are supported by CMake might also work
OpenClonk requires some additional libraries. Prebuilt versions of them can be
found on http://openclonk.org.
Building the installer
======================
The installer is created with NSIS. makensis needs to be in the PATH, and
the dlls used by openclonk in the build directory. To create the installer,
build the "setup" target if using CMake, or if using autotools, run:
make setup_openclonk.exe
Get NSIS from http://nsis.sourceforge.net/.
Notes for MinGW
===============
You need gcc, g++, mingw-runtime, w32api, msys, msyscore, autoconf, automake,
and any packages needed by these. The versions listed below are known to work,
though newer versions are probably also good.
and any packages needed by these.
http://sourceforge.net/project/downloading.php?group_id=200665&filename=tdm-mingw-1.905.0-webdl.exe&a=64029035
(from http://sourceforge.net/project/showfiles.php?group_id=200665&package_id=238465)
(see also http://www.tdragon.net/recentgcc/)
- The default options work. Use an installation path without spaces to be on
the save side.
http://sourceforge.net/project/downloading.php?group_id=2435&filename=MSYS-1.0.11-20090120-dll.tar.gz&a=78351117
http://sourceforge.net/project/downloading.php?group_id=2435&filename=msysCORE-1.0.11-20080826.tar.gz&a=60784616
(from http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963)
- extract these into the same directory as installed above, merging the
directory contents
- create a shortcut to msys.bat
http://sourceforge.net/project/downloading.php?group_id=2435&filename=perl-5.6.1-MSYS-1.0.11-1.tar.bz2&a=91743036
http://sourceforge.net/project/downloading.php?group_id=2435&filename=crypt-1.1-1-MSYS-1.0.11-1.tar.bz2&a=95002722
http://sourceforge.net/project/downloading.php?group_id=2435&filename=autoconf2.5-2.61-1-bin.tar.bz2&a=93276645
http://sourceforge.net/project/downloading.php?group_id=2435&filename=automake1.10-1.10-1-bin.tar.bz2&a=66135072
http://sourceforge.net/project/downloading.php?group_id=2435&filename=autoconf-4-1-bin.tar.bz2&a=70428585
http://sourceforge.net/project/downloading.php?group_id=2435&filename=automake-3-1-bin.tar.bz2&a=12881354
(from http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879)
- you need to extract these from the msys shell with tar (other methods won't
work). This assumes that the archives are in C:\Path\To\Downloads\, adjust
the command as necessary:
cd /
for f in /c/Path/To/Downloads/*.bz2; do tar -xjf $f; done && echo done
Get the library package from openclonk.org and unpack it into the same
directory as the other archives.
Get the library package from openclonk.org and unpack it into the mingw
directory.
If you want DirectX support, get a DirectX 9 SDK from Microsoft. Copy the
contents of its include dir to the include dir of your MinGW installation,

87
Version.txt 100644
View File

@ -0,0 +1,87 @@
############################################################################
# Project version information
############################################################################
SET(C4PROJECT "OpenClonk Project")
SET(C4PROJECT_DOMAIN "openclonk")
SET(C4PROJECT_TLD "org")
SET(C4PROJECT_URL "http://${C4PROJECT_DOMAIN}.${C4PROJECT_TLD}")
IF(CMAKE_HOST_UNIX)
EXECUTE_PROCESS(COMMAND "date" "+%Y" OUTPUT_VARIABLE DATE)
ELSEIF(CMAKE_HOST_WIN32)
EXECUTE_PROCESS(COMMAND "cscript.exe" "//nologo" "${CMAKE_CURRENT_SOURCE_DIR}/tools/get_current_year.vbs" OUTPUT_VARIABLE DATE)
ENDIF()
STRING(REGEX REPLACE "(.+)\n" "\\1" YEARFIXED "${DATE}")
SET(C4COPYRIGHT_YEAR ${YEARFIXED})
SET(C4ENGINENAME "OpenClonk")
SET(C4ENGINENICK "openclonk")
SET(C4ENGINECAPTION ${C4ENGINENAME})
SET(C4ENGINEID "${C4PROJECT_TLD}.${C4PROJECT_DOMAIN}.${C4ENGINENICK}")
SET(C4XVER1 5)
SET(C4XVER2 2)
SET(C4XVER3 90)
SET(C4XVER4 20)
# C4VERSIONBUILDNAME should be witty and somewhat frequently changing
# for alpha and beta releases, and meaningful and stable for stable releases.
# Both variables need to start with a space if they aren't empty.
SET(C4VERSIONBUILDNAME " Beyond the Rocks")
SET(C4VERSIONEXTRA " Alpha")
############################################################################
# Get revision from Mercurial
############################################################################
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.hg_archival.txt")
# Archives generated by hg archive
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/.hg_archival.txt" C4REVISION
LIMIT_COUNT 1
REGEX "node: [0-9a-f]+"
)
string(SUBSTRING "${C4REVISION}" 6 12 C4REVISION)
else()
# Working copies
execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND "hg" "id" "--id"
OUTPUT_VARIABLE C4REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
############################################################################
# Build version strings
############################################################################
set(C4ENGINEINFO "${C4ENGINENAME}")
set(C4SHORTVERSION "${C4XVER1}.${C4XVER2}.${C4XVER3}.${C4XVER4}")
set(C4VERSION "${C4SHORTVERSION}")
if(C4XVERBUILD LESS 10)
set(C4VERSION "${C4VERSION} [00${C4XVERBUILD}]")
elseif(C4XVERBUILD LESS 100)
set(C4VERSION "${C4VERSION} [0${C4XVERBUILD}]")
else()
set(C4VERSION "${C4VERSION} [${C4XVERBUILD}]")
endif()
if(NOT ${C4VERSIONEXTRA} STREQUAL "")
set(C4ENGINEINFO "${C4ENGINENAME} ${C4VERSIONEXTRA}")
set(C4VERSION "${C4VERSION} ${C4VERSIONEXTRA}")
endif()
if(WIN32)
set(C4VERSION "${C4VERSION} win")
elseif(APPLE)
set(C4VERSION "${C4VERSION} mac")
elseif(UNIX)
set(C4VERSION "${C4VERSION} unix")
else()
set(C4VERSION "${C4VERSION} strange")
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/C4Version.h.in ${CMAKE_CURRENT_BINARY_DIR}/C4Version.h ESCAPE_QUOTES)
if(WIN32)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/res/WindowsGamesExplorer.xml.in ${CMAKE_CURRENT_BINARY_DIR}/WindowsGamesExplorer.xml ESCAPE_QUOTES)
endif()

View File

@ -1,238 +0,0 @@
dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
dnl
dnl @summary figure out how to build C programs using POSIX threads
dnl
dnl This macro figures out how to build C programs using POSIX threads.
dnl It sets the PTHREAD_LIBS output variable to the threads library and
dnl linker flags, and the PTHREAD_CFLAGS output variable to any special
dnl C compiler flags that are needed. (The user can also force certain
dnl compiler flags/libs to be tested by setting these environment
dnl variables.)
dnl
dnl Also sets PTHREAD_CC to any special C compiler that is needed for
dnl multi-threaded programs (defaults to the value of CC otherwise).
dnl (This is necessary on AIX to use the special cc_r compiler alias.)
dnl
dnl NOTE: You are assumed to not only compile your program with these
dnl flags, but also link it with them as well. e.g. you should link
dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS
dnl $LIBS
dnl
dnl If you are only building threads programs, you may wish to use
dnl these variables in your default LIBS, CFLAGS, and CC:
dnl
dnl LIBS="$PTHREAD_LIBS $LIBS"
dnl CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
dnl CC="$PTHREAD_CC"
dnl
dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute
dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to
dnl that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
dnl
dnl ACTION-IF-FOUND is a list of shell commands to run if a threads
dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands to
dnl run it if it is not found. If ACTION-IF-FOUND is not specified, the
dnl default action will define HAVE_PTHREAD.
dnl
dnl Please let the authors know if this macro fails on any platform, or
dnl if you have any other suggestions or comments. This macro was based
dnl on work by SGJ on autoconf scripts for FFTW (www.fftw.org) (with
dnl help from M. Frigo), as well as ac_pthread and hb_pthread macros
dnl posted by Alejandro Forero Cuervo to the autoconf macro repository.
dnl We are also grateful for the helpful feedback of numerous users.
dnl
dnl @category InstalledPackages
dnl @author Steven G. Johnson <stevenj@alum.mit.edu>
dnl @version 2005-06-15
dnl @license GPLWithACException
AC_DEFUN([ACX_PTHREAD], [
AC_REQUIRE([AC_CANONICAL_HOST])
AC_LANG_SAVE
AC_LANG_C
acx_pthread_ok=no
# We used to check for pthread.h first, but this fails if pthread.h
# requires special compiler flags (e.g. on True64 or Sequent).
# It gets checked for in the link test anyway.
# First of all, check if the user has set any of the PTHREAD_LIBS,
# etcetera environment variables, and if threads linking works using
# them:
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
AC_MSG_RESULT($acx_pthread_ok)
if test x"$acx_pthread_ok" = xno; then
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
fi
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
fi
# We must check for the threads library under a number of different
# names; the ordering is very important because some systems
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
# libraries is broken (non-POSIX).
# Create a list of thread flags to try. Items starting with a "-" are
# C compiler flags, and other items are library names, except for "none"
# which indicates that we try without any flags at all, and "pthread-config"
# which is a program returning the flags for the Pth emulation library.
acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
# The ordering *is* (sometimes) important. Some notes on the
# individual items follow:
# pthreads: AIX (must check this before -lpthread)
# none: in case threads are in libc; should be tried before -Kthread and
# other compiler flags to prevent continual compiler warnings
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
# -pthreads: Solaris/gcc
# -mthreads: Mingw32/gcc, Lynx/gcc
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
# doesn't hurt to check since this sometimes defines pthreads too;
# also defines -D_REENTRANT)
# ... -mt is also the pthreads flag for HP/aCC
# pthread: Linux, etcetera
# --thread-safe: KAI C++
# pthread-config: use pthread-config program (for GNU Pth library)
case "${host_cpu}-${host_os}" in
*solaris*)
# On Solaris (at least, for some versions), libc contains stubbed
# (non-functional) versions of the pthreads routines, so link-based
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
# a function called by this macro, so we could check for that, but
# who knows whether they'll stub that too in a future libc.) So,
# we'll just look for -pthreads and -lpthread first:
acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"
;;
esac
if test x"$acx_pthread_ok" = xno; then
for flag in $acx_pthread_flags; do
case $flag in
none)
AC_MSG_CHECKING([whether pthreads work without any flags])
;;
-*)
AC_MSG_CHECKING([whether pthreads work with $flag])
PTHREAD_CFLAGS="$flag"
;;
pthread-config)
AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
if test x"$acx_pthread_config" = xno; then continue; fi
PTHREAD_CFLAGS="`pthread-config --cflags`"
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
;;
*)
AC_MSG_CHECKING([for the pthreads library -l$flag])
PTHREAD_LIBS="-l$flag"
;;
esac
save_LIBS="$LIBS"
save_CFLAGS="$CFLAGS"
LIBS="$PTHREAD_LIBS $LIBS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# Check for various functions. We must include pthread.h,
# since some functions may be macros. (On the Sequent, we
# need a special flag -Kthread to make this header compile.)
# We check for pthread_join because it is in -lpthread on IRIX
# while pthread_create is in libc. We check for pthread_attr_init
# due to DEC craziness with -lpthreads. We check for
# pthread_cleanup_push because it is one of the few pthread
# functions on Solaris that doesn't have a non-functional libc stub.
# We try pthread_create on general principles.
AC_TRY_LINK([#include <pthread.h>],
[pthread_t th; pthread_join(th, 0);
pthread_attr_init(0); pthread_cleanup_push(0, 0);
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
[acx_pthread_ok=yes])
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
AC_MSG_RESULT($acx_pthread_ok)
if test "x$acx_pthread_ok" = xyes; then
break;
fi
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
done
fi
# Various other checks:
if test "x$acx_pthread_ok" = xyes; then
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
AC_MSG_CHECKING([for joinable pthread attribute])
attr_name=unknown
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
[attr_name=$attr; break])
done
AC_MSG_RESULT($attr_name)
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
[Define to necessary symbol if this constant
uses a non-standard name on your system.])
fi
AC_MSG_CHECKING([if more special flags are required for pthreads])
flag=no
case "${host_cpu}-${host_os}" in
*-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
*solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
esac
AC_MSG_RESULT(${flag})
if test "x$flag" != xno; then
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
fi
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
# More AIX lossage: must compile with cc_r
AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
else
PTHREAD_CC="$CC"
fi
AC_SUBST(PTHREAD_LIBS)
AC_SUBST(PTHREAD_CFLAGS)
AC_SUBST(PTHREAD_CC)
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$acx_pthread_ok" = xyes; then
ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
:
else
acx_pthread_ok=no
$2
fi
AC_LANG_RESTORE
])dnl ACX_PTHREAD

View File

@ -0,0 +1,258 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_boost_base.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
#
# DESCRIPTION
#
# Test for the Boost C++ libraries of a particular version (or newer)
#
# If no path to the installed boost library is given the macro searchs
# under /usr, /usr/local, /opt and /opt/local and evaluates the
# $BOOST_ROOT environment variable. Further documentation is available at
# <http://randspringer.de/boost/index.html>.
#
# This macro calls:
#
# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
#
# And sets:
#
# HAVE_BOOST
#
# LICENSE
#
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
# Copyright (c) 2009 Peter Adolphs
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 20
AC_DEFUN([AX_BOOST_BASE],
[
AC_ARG_WITH([boost],
[AS_HELP_STRING([--with-boost@<:@=ARG@:>@],
[use Boost library from a standard location (ARG=yes),
from the specified location (ARG=<path>),
or disable it (ARG=no)
@<:@ARG=yes@:>@ ])],
[
if test "$withval" = "no"; then
want_boost="no"
elif test "$withval" = "yes"; then
want_boost="yes"
ac_boost_path=""
else
want_boost="yes"
ac_boost_path="$withval"
fi
],
[want_boost="yes"])
AC_ARG_WITH([boost-libdir],
AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
[Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
[
if test -d "$withval"
then
ac_boost_lib_path="$withval"
else
AC_MSG_ERROR(--with-boost-libdir expected directory name)
fi
],
[ac_boost_lib_path=""]
)
if test "x$want_boost" = "xyes"; then
boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
if test "x$boost_lib_version_req_sub_minor" = "x" ; then
boost_lib_version_req_sub_minor="0"
fi
WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
succeeded=no
dnl On 64-bit systems check for system libraries in both lib64 and lib.
dnl The former is specified by FHS, but e.g. Debian does not adhere to
dnl this (as it rises problems for generic multi-arch support).
dnl The last entry in the list is chosen by default when no libraries
dnl are found, e.g. when only header-only libraries are installed!
libsubdirs="lib"
ax_arch=`uname -m`
if test $ax_arch = x86_64 -o $ax_arch = ppc64 -o $ax_arch = s390x -o $ax_arch = sparc64; then
libsubdirs="lib64 lib lib64"
fi
dnl first we check the system location for boost libraries
dnl this location ist chosen if boost libraries are installed with the --layout=system option
dnl or if you install boost with RPM
if test "$ac_boost_path" != ""; then
BOOST_CPPFLAGS="-I$ac_boost_path/include"
for ac_boost_path_tmp in $libsubdirs; do
if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then
BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp"
break
fi
done
elif test "$cross_compiling" != yes; then
for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
for libsubdir in $libsubdirs ; do
if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir"
BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
break;
fi
done
fi
dnl overwrite ld flags if we have required special directory with
dnl --with-boost-libdir parameter
if test "$ac_boost_lib_path" != ""; then
BOOST_LDFLAGS="-L$ac_boost_lib_path"
fi
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AC_REQUIRE([AC_PROG_CXX])
AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@%:@include <boost/version.hpp>
]], [[
#if BOOST_VERSION >= $WANT_BOOST_VERSION
// Everything is okay
#else
# error Boost version is too old
#endif
]])],[
AC_MSG_RESULT(yes)
succeeded=yes
found_system=yes
],[
])
AC_LANG_POP([C++])
dnl if we found no boost with system layout we search for boost libraries
dnl built and installed without the --layout=system option or for a staged(not installed) version
if test "x$succeeded" != "xyes"; then
_version=0
if test "$ac_boost_path" != ""; then
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version`
if test "$V_CHECK" = "1" ; then
_version=$_version_tmp
fi
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
done
fi
else
if test "$cross_compiling" != yes; then
for ac_boost_path in /usr /usr/local /opt /opt/local ; do
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
_version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
V_CHECK=`expr $_version_tmp \> $_version`
if test "$V_CHECK" = "1" ; then
_version=$_version_tmp
best_path=$ac_boost_path
fi
done
fi
done
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
if test "$ac_boost_lib_path" = ""; then
for libsubdir in $libsubdirs ; do
if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
BOOST_LDFLAGS="-L$best_path/$libsubdir"
fi
fi
if test "x$BOOST_ROOT" != "x"; then
for libsubdir in $libsubdirs ; do
if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
done
if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
V_CHECK=`expr $stage_version_shorten \>\= $_version`
if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
BOOST_CPPFLAGS="-I$BOOST_ROOT"
BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
fi
fi
fi
fi
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@%:@include <boost/version.hpp>
]], [[
#if BOOST_VERSION >= $WANT_BOOST_VERSION
// Everything is okay
#else
# error Boost version is too old
#endif
]])],[
AC_MSG_RESULT(yes)
succeeded=yes
found_system=yes
],[
])
AC_LANG_POP([C++])
fi
if test "$succeeded" != "yes" ; then
if test "$_version" = "0" ; then
AC_MSG_NOTICE([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
else
AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
fi
# execute ACTION-IF-NOT-FOUND (if present):
ifelse([$3], , :, [$3])
else
AC_SUBST(BOOST_CPPFLAGS)
AC_SUBST(BOOST_LDFLAGS)
AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
# execute ACTION-IF-FOUND (if present):
ifelse([$2], , :, [$2])
fi
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
fi
])

View File

@ -0,0 +1,72 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
#
# DESCRIPTION
#
# Check whether the given FLAG works with the current language's compiler
# or gives an error. (Warnings, however, are ignored)
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# If EXTRA-FLAGS is defined, it is added to the current language's default
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
# force the compiler to issue an error when a bad flag is given.
#
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
#
# LICENSE
#
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.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 3 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, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 2
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
[AS_VAR_SET(CACHEVAR,[yes])],
[AS_VAR_SET(CACHEVAR,[no])])
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
[m4_default([$2], :)],
[m4_default([$3], :)])
AS_VAR_POPDEF([CACHEVAR])dnl
])dnl AX_CHECK_COMPILE_FLAGS

View File

@ -1,74 +0,0 @@
# ===========================================================================
# http://autoconf-archive.cryp.to/ax_check_compiler_flags.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
#
# DESCRIPTION
#
# Check whether the given compiler FLAGS work with the current language's
# compiler, or whether they give an error. (Warnings, however, are
# ignored.)
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# LICENSE
#
# Copyright (c) 2009 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2009 Matteo Frigo
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
AC_DEFUN([AX_CHECK_COMPILER_FLAGS],
[AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX
AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1])
dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
AS_LITERAL_IF([$1],
[AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]), [
ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$1"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes,
AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no)
_AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])],
[ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$1"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes,
eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no)
_AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])
eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])
AC_MSG_RESULT($ax_check_compiler_flags)
if test "x$ax_check_compiler_flags" = xyes; then
m4_default([$2], :)
else
m4_default([$3], :)
fi
])dnl AX_CHECK_COMPILER_FLAGS

View File

@ -0,0 +1,309 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
#
# DESCRIPTION
#
# This macro figures out how to build C programs using POSIX threads. It
# sets the PTHREAD_LIBS output variable to the threads library and linker
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
# flags that are needed. (The user can also force certain compiler
# flags/libs to be tested by setting these environment variables.)
#
# Also sets PTHREAD_CC to any special C compiler that is needed for
# multi-threaded programs (defaults to the value of CC otherwise). (This
# is necessary on AIX to use the special cc_r compiler alias.)
#
# NOTE: You are assumed to not only compile your program with these flags,
# but also link it with them as well. e.g. you should link with
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
#
# If you are only building threads programs, you may wish to use these
# variables in your default LIBS, CFLAGS, and CC:
#
# LIBS="$PTHREAD_LIBS $LIBS"
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# CC="$PTHREAD_CC"
#
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
#
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
# PTHREAD_CFLAGS.
#
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
# is not found. If ACTION-IF-FOUND is not specified, the default action
# will define HAVE_PTHREAD.
#
# Please let the authors know if this macro fails on any platform, or if
# you have any other suggestions or comments. This macro was based on work
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
# grateful for the helpful feedback of numerous users.
#
# Updated for Autoconf 2.68 by Daniel Richard G.
#
# LICENSE
#
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 17
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
AC_DEFUN([AX_PTHREAD], [
AC_REQUIRE([AC_CANONICAL_HOST])
AC_LANG_PUSH([C])
ax_pthread_ok=no
# We used to check for pthread.h first, but this fails if pthread.h
# requires special compiler flags (e.g. on True64 or Sequent).
# It gets checked for in the link test anyway.
# First of all, check if the user has set any of the PTHREAD_LIBS,
# etcetera environment variables, and if threads linking works using
# them:
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
AC_MSG_RESULT($ax_pthread_ok)
if test x"$ax_pthread_ok" = xno; then
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
fi
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
fi
# We must check for the threads library under a number of different
# names; the ordering is very important because some systems
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
# libraries is broken (non-POSIX).
# Create a list of thread flags to try. Items starting with a "-" are
# C compiler flags, and other items are library names, except for "none"
# which indicates that we try without any flags at all, and "pthread-config"
# which is a program returning the flags for the Pth emulation library.
ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
# The ordering *is* (sometimes) important. Some notes on the
# individual items follow:
# pthreads: AIX (must check this before -lpthread)
# none: in case threads are in libc; should be tried before -Kthread and
# other compiler flags to prevent continual compiler warnings
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
# -pthreads: Solaris/gcc
# -mthreads: Mingw32/gcc, Lynx/gcc
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
# doesn't hurt to check since this sometimes defines pthreads too;
# also defines -D_REENTRANT)
# ... -mt is also the pthreads flag for HP/aCC
# pthread: Linux, etcetera
# --thread-safe: KAI C++
# pthread-config: use pthread-config program (for GNU Pth library)
case "${host_cpu}-${host_os}" in
*solaris*)
# On Solaris (at least, for some versions), libc contains stubbed
# (non-functional) versions of the pthreads routines, so link-based
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
# a function called by this macro, so we could check for that, but
# who knows whether they'll stub that too in a future libc.) So,
# we'll just look for -pthreads and -lpthread first:
ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
;;
*-darwin*)
ax_pthread_flags="-pthread $ax_pthread_flags"
;;
esac
if test x"$ax_pthread_ok" = xno; then
for flag in $ax_pthread_flags; do
case $flag in
none)
AC_MSG_CHECKING([whether pthreads work without any flags])
;;
-*)
AC_MSG_CHECKING([whether pthreads work with $flag])
PTHREAD_CFLAGS="$flag"
;;
pthread-config)
AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
if test x"$ax_pthread_config" = xno; then continue; fi
PTHREAD_CFLAGS="`pthread-config --cflags`"
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
;;
*)
AC_MSG_CHECKING([for the pthreads library -l$flag])
PTHREAD_LIBS="-l$flag"
;;
esac
save_LIBS="$LIBS"
save_CFLAGS="$CFLAGS"
LIBS="$PTHREAD_LIBS $LIBS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# Check for various functions. We must include pthread.h,
# since some functions may be macros. (On the Sequent, we
# need a special flag -Kthread to make this header compile.)
# We check for pthread_join because it is in -lpthread on IRIX
# while pthread_create is in libc. We check for pthread_attr_init
# due to DEC craziness with -lpthreads. We check for
# pthread_cleanup_push because it is one of the few pthread
# functions on Solaris that doesn't have a non-functional libc stub.
# We try pthread_create on general principles.
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
static void routine(void *a) { a = 0; }
static void *start_routine(void *a) { return a; }],
[pthread_t th; pthread_attr_t attr;
pthread_create(&th, 0, start_routine, 0);
pthread_join(th, 0);
pthread_attr_init(&attr);
pthread_cleanup_push(routine, 0);
pthread_cleanup_pop(0) /* ; */])],
[ax_pthread_ok=yes],
[])
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
AC_MSG_RESULT($ax_pthread_ok)
if test "x$ax_pthread_ok" = xyes; then
break;
fi
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
done
fi
# Various other checks:
if test "x$ax_pthread_ok" = xyes; then
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
AC_MSG_CHECKING([for joinable pthread attribute])
attr_name=unknown
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
[int attr = $attr; return attr /* ; */])],
[attr_name=$attr; break],
[])
done
AC_MSG_RESULT($attr_name)
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
[Define to necessary symbol if this constant
uses a non-standard name on your system.])
fi
AC_MSG_CHECKING([if more special flags are required for pthreads])
flag=no
case "${host_cpu}-${host_os}" in
*-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
*-osf* | *-hpux*) flag="-D_REENTRANT";;
*solaris*)
if test "$GCC" = "yes"; then
flag="-D_REENTRANT"
else
flag="-mt -D_REENTRANT"
fi
;;
esac
AC_MSG_RESULT(${flag})
if test "x$flag" != xno; then
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
fi
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
ax_cv_PTHREAD_PRIO_INHERIT, [
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[#include <pthread.h>]], [[int i = PTHREAD_PRIO_INHERIT;]])],
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
[ax_cv_PTHREAD_PRIO_INHERIT=no])
])
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.]))
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
# More AIX lossage: must compile with xlc_r or cc_r
if test x"$GCC" != xyes; then
AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
else
PTHREAD_CC=$CC
fi
else
PTHREAD_CC="$CC"
fi
AC_SUBST(PTHREAD_LIBS)
AC_SUBST(PTHREAD_CFLAGS)
AC_SUBST(PTHREAD_CC)
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$ax_pthread_ok" = xyes; then
ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
:
else
ax_pthread_ok=no
$2
fi
AC_LANG_POP
])dnl AX_PTHREAD

View File

@ -1,5 +1,6 @@
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
#
# serial 1 (pkg-config-0.24)
#
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
#
# This program is free software; you can redistribute it and/or modify
@ -26,7 +27,10 @@
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi
@ -39,7 +43,6 @@ if test -n "$PKG_CONFIG"; then
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
fi[]dnl
])# PKG_PROG_PKG_CONFIG
@ -48,34 +51,31 @@ fi[]dnl
# Check to see whether a particular set of modules exists. Similar
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
#
#
# Similar to PKG_CHECK_MODULES, make sure that the first instance of
# this or PKG_CHECK_MODULES is called, or make sure to call
# PKG_CHECK_EXISTS manually
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
# only at the first occurence in configure.ac, so if the first place
# it's called might be skipped (such as if it is within an "if", you
# have to call PKG_CHECK_EXISTS manually
# --------------------------------------------------------------
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
m4_ifval([$2], [$2], [:])
m4_default([$2], [:])
m4_ifvaln([$3], [else
$3])dnl
fi])
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
# ---------------------------------------------
m4_define([_PKG_CONFIG],
[if test -n "$PKG_CONFIG"; then
if test -n "$$1"; then
pkg_cv_[]$1="$$1"
else
PKG_CHECK_EXISTS([$3],
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
[pkg_failed=yes])
fi
else
pkg_failed=untried
[if test -n "$$1"; then
pkg_cv_[]$1="$$1"
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
[pkg_failed=yes])
else
pkg_failed=untried
fi[]dnl
])# _PKG_CONFIG
@ -117,16 +117,17 @@ and $1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
ifelse([$4], , [AC_MSG_ERROR(dnl
m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
@ -134,24 +135,23 @@ $$1_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
_PKG_TEXT
])],
[AC_MSG_RESULT([no])
$4])
_PKG_TEXT])dnl
])
elif test $pkg_failed = untried; then
ifelse([$4], , [AC_MSG_FAILURE(dnl
AC_MSG_RESULT([no])
m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
_PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
[$4])
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
ifelse([$3], , :, [$3])
$3
fi[]dnl
])# PKG_CHECK_MODULES

View File

@ -1 +0,0 @@
300

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<anjuta>
<plugin name="Automake Project Manager"
<plugin name="GBF Project Manager"
url="http://anjuta.org/plugins/"
mandatory="yes">
<require group="Anjuta Plugin"
@ -14,8 +14,8 @@
url="http://anjuta.org/plugins/"
mandatory="yes">
<require group="Anjuta Plugin"
attribute="Location"
value="anjuta-symbol-browser:SymbolBrowserPlugin"/>
attribute="Interfaces"
value="IAnjutaSymbolManager"/>
</plugin>
<plugin name="Make Build System"
url="http://anjuta.org/plugins/"
@ -32,6 +32,6 @@
mandatory="no">
<require group="Anjuta Plugin"
attribute="Interfaces"
value="IAnjutaDebuggerManager"/>
value="IAnjutaDebugManager"/>
</plugin>
</anjuta>

10
clonk.desktop 100644
View File

@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Name=OpenClonk
Comment=An action-packed game of strategy, tactics, and skill.
Comment[de]=Ein actiongeladenes Taktikspiel.
GenericName=Multiplayer action, tactics and skill game
Icon=clonk
Exec=clonk
Categories=Game;ActionGame;
StartupNotify=true

View File

@ -0,0 +1,33 @@
# - Find DbgHelp
# Find the DbgHelp library
# This module defines
# DBGHELP_INCLUDE_DIR, where to find dbghelp.h, etc.
# DBGHELP_LIBRARIES, the libraries needed to use DbgHelp.
# DBGHELP_FOUND, If false, do not try to use DbgHelp.
#=============================================================================
# OpenClonk, http://www.openclonk.org
#
# Copyright (c) 2011 Nicolas Hake
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
# See isc_license.txt for full license and disclaimer.
#
# "Clonk" is a registered trademark of Matthes Bender.
# See clonk_trademark_license.txt for full license.
#=============================================================================
find_path(DBGHELP_INCLUDE_DIR NAMES dbghelp.h)
set(DBGHELP_NAMES ${DBGHELP_NAMES} dbghelp)
find_library(DBGHELP_LIBRARY NAMES ${DBGHELP_NAMES})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(DBGHELP DEFAULT_MSG DBGHELP_LIBRARY DBGHELP_INCLUDE_DIR)
if(DBGHELP_FOUND)
set(DBGHELP_LIBRARIES ${DBGHELP_LIBRARY})
endif()
mark_as_advanced(DBGHELP_LIBRARY DBGHELP_INCLUDE_DIR)

View File

@ -0,0 +1,46 @@
# - Find FMod
# Find the FMod library
# This module defines
# FMOD_INCLUDE_DIR, where to find fmod.h, etc.
# FMOD_LIBRARIES, the libraries needed to use FMod.
# FMOD_FOUND, If false, do not try to use FMod.
#=============================================================================
# OpenClonk, http://www.openclonk.org
#
# Copyright (c) 2011 Nicolas Hake
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
# See isc_license.txt for full license and disclaimer.
#
# "Clonk" is a registered trademark of Matthes Bender.
# See clonk_trademark_license.txt for full license.
#=============================================================================
find_path(FMOD_INCLUDE_DIR fmod.h)
if(CMAKE_CL_64)
if(MSVC)
set(FMOD_NAMES ${FMOD_NAMES} fmod64vc)
else()
set(FMOD_NAMES ${FMOD_NAMES} fmod64)
endif()
else()
if(MSVC)
set(FMOD_NAMES ${FMOD_NAMES} fmodvc)
else()
set(FMOD_NAMES ${FMOD_NAMES} fmod)
endif()
endif()
find_library(FMOD_LIBRARY NAMES ${FMOD_NAMES})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FMOD DEFAULT_MSG FMOD_LIBRARY FMOD_INCLUDE_DIR)
if(FMOD_FOUND)
set(FMOD_LIBRARIES ${FMOD_LIBRARY})
endif()
mark_as_advanced(FMOD_LIBRARY FMOD_INCLUDE_DIR)

View File

@ -0,0 +1,31 @@
# - Find READLINE
# Find the native READLINE includes and library
#
# READLINE_INCLUDE_DIR - where to find READLINE.h, etc.
# READLINE_LIBRARIES - List of libraries when using READLINE.
# READLINE_FOUND - True if READLINE found.
IF (READLINE_INCLUDE_DIR)
# Already in cache, be silent
SET(READLINE_FIND_QUIETLY TRUE)
ENDIF (READLINE_INCLUDE_DIR)
FIND_PATH(READLINE_INCLUDE_DIR readline.h)
SET(READLINE_NAMES readline libreadline)
FIND_LIBRARY(READLINE_LIBRARY NAMES ${READLINE_NAMES} )
# handle the QUIETLY and REQUIRED arguments and set READLINE_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(READLINE DEFAULT_MSG READLINE_LIBRARY READLINE_INCLUDE_DIR)
IF(READLINE_FOUND)
SET( READLINE_LIBRARIES ${READLINE_LIBRARY} )
ELSE(READLINE_FOUND)
SET( READLINE_LIBRARIES )
ENDIF(READLINE_FOUND)
MARK_AS_ADVANCED( READLINE_LIBRARY READLINE_INCLUDE_DIR )

View File

@ -0,0 +1,39 @@
# - Find libupnp
# Find the libupnp library
# This module defines
# UPNP_INCLUDE_DIR, where to find upnp.h, etc.
# UPNP_LIBRARIES, the libraries needed to use libupnp.
# UPNP_FOUND, If false, do not try to use libupnp.
#=============================================================================
# OpenClonk, http://www.openclonk.org
#
# Copyright (c) 2012 Armin Burgmeier
# Copyright (c) 2012 Nicolas Hake
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
# See isc_license.txt for full license and disclaimer.
#
# "Clonk" is a registered trademark of Matthes Bender.
# See clonk_trademark_license.txt for full license.
#=============================================================================
# TODO: Use pkg-config if available
find_path(UPNP_INCLUDE_DIR NAMES upnp.h PATH_SUFFIXES upnp)
set(UPNP_NAMES ${UPNP_NAMES} upnp)
set(IXML_NAMES ${IXML_NAMES} ixml)
find_library(UPNP_LIBRARY NAMES ${UPNP_NAMES})
find_library(IXML_LIBRARY NAMES ${IXML_NAMES})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(UPNP DEFAULT_MSG UPNP_LIBRARY IXML_LIBRARY UPNP_INCLUDE_DIR)
if(UPNP_FOUND)
set(UPNP_LIBRARIES ${UPNP_LIBRARY} ${IXML_LIBRARY})
set(UPNP_INCLUDE_DIR ${UPNP_INCLUDE_DIR})
endif()
mark_as_advanced(UPNP_LIBRARY IXML_LIBRARY UPNP_INCLUDE_DIR)

View File

@ -0,0 +1,83 @@
#Copied from http://www.mail-archive.com/cmake@cmake.org/msg04394.html which copied it from the rosengarden project
#see also: http://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/Precompiled-Headers.html
MACRO(ADD_PRECOMPILED_HEADER _targetName _input )
# Prepare environment
if(CMAKE_BUILD_TYPE)
SET(_proper_build_type ${CMAKE_BUILD_TYPE})
else()
SET(_proper_build_type Standard)
endif()
GET_FILENAME_COMPONENT(_name ${_input} NAME)
SET(_pchdir "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/pch.custom.dir")
SET(_source "${CMAKE_CURRENT_SOURCE_DIR}/${_input}")
SET(_outdir "${_pchdir}/${_name}.gch")
MAKE_DIRECTORY(${_outdir})
string(REPLACE "/" "_" _inputescaped ${_input})
SET(_output "${_outdir}/${_inputescaped}_${_targetName}_${_proper_build_type}.o")
#FILE(WRITE "${_pchdir}/${_name}" "\#error Precompiled header not used")
# Assemble the compiler command with which future stuff will be built
STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) # Don't worry: CMake won't use any of the R/D/RWDI/MSR vars if the build type is not defined
if(CMAKE_CXX_COMPILER_ARG1) # please, know what you're doing if you rely on this...
STRING(STRIP ${CMAKE_CXX_COMPILER_ARG1} _ccache_tweak)
SET(_ccache_tweak "\"${_ccache_tweak}\"")
endif()
SET(_compiler_FLAGS ${_ccache_tweak} ${CMAKE_CXX_FLAGS} ${${_flags_var_name}})
if(CMAKE_BUILD_TYPE)
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
LIST(APPEND _compiler_FLAGS "-D_DEBUG")
endif()
endif()
GET_TARGET_PROPERTY(_compile_defines ${_targetName} COMPILE_DEFINITIONS)
if(_compile_defines)
FOREACH(item ${_compile_defines})
STRING(REPLACE "\"" "\\\"" item ${item})
LIST(APPEND _compiler_FLAGS "-D${item}")
ENDFOREACH(item)
endif()
GET_TARGET_PROPERTY(_compile_defines ${_targetName} COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE})
if(_compile_defines)
FOREACH(item ${_compile_defines})
STRING(REPLACE "\"" "\\\"" item ${item})
LIST(APPEND _compiler_FLAGS "-D${item}")
ENDFOREACH(item)
endif()
GET_DIRECTORY_PROPERTY(_compile_defines COMPILE_DEFINITIONS)
if(_compile_defines)
FOREACH(item ${_compile_defines})
STRING(REPLACE "\"" "\\\"" item ${item})
LIST(APPEND _compiler_FLAGS "-D${item}")
ENDFOREACH(item)
endif()
GET_DIRECTORY_PROPERTY(_compile_defines COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE})
if(_compile_defines)
FOREACH(item ${_compile_defines})
STRING(REPLACE "\"" "\\\"" item ${item})
LIST(APPEND _compiler_FLAGS "-D${item}")
ENDFOREACH(item)
endif()
GET_DIRECTORY_PROPERTY(_directory_flags INCLUDE_DIRECTORIES)
FOREACH(item ${_directory_flags})
LIST(APPEND _compiler_FLAGS "-I\"${item}\"")
ENDFOREACH(item)
GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS)
STRING(REPLACE "\"" "\\\"" _directory_flags ${_directory_flags}) # Welcome to escape hell. Replace " with \"
LIST(APPEND _compiler_FLAGS ${_directory_flags})
SEPARATE_ARGUMENTS(_compiler_FLAGS)
list(REMOVE_DUPLICATES _compiler_FLAGS)
# Add a target with the pch
ADD_CUSTOM_COMMAND(
OUTPUT ${_output}
COMMAND "${CMAKE_CXX_COMPILER}"
${_compiler_FLAGS} -x c++-header -o ${_output} ${_source}
IMPLICIT_DEPENDS CXX ${_source}
)
ADD_CUSTOM_TARGET(${_targetName}_pch DEPENDS ${_output})
ADD_DEPENDENCIES(${_targetName} ${_targetName}_pch)
INCLUDE_DIRECTORIES(BEFORE ${_pchdir})
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Winvalid-pch" CACHE STRING "C++ compiler flags" FORCE)
ENDMACRO(ADD_PRECOMPILED_HEADER)

View File

@ -31,6 +31,12 @@
/* Define to 1 if you have SDL_mixer. */
#cmakedefine HAVE_LIBSDL_MIXER 1
/* Define to 1 if FMOD is available */
#cmakedefine HAVE_FMOD 1
/* Use OpenAL for playing sounds */
#cmakedefine USE_OPEN_AL 1
/* Define to 1 if you have the <locale.h> header file. */
#cmakedefine HAVE_LOCALE_H 1
@ -79,20 +85,23 @@
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* inotify reachable using syscall */
#cmakedefine HAVE_SYSCALL_INOTIFY 1
/* Define to 1 if you have the <sys/inotify.h> header file. */
#cmakedefine HAVE_SYS_INOTIFY_H 1
/* Define to 1 if you have the <sys/eventfd.h> header file. */
#cmakedefine HAVE_SYS_EVENTFD_H
/* Define to 1 if you have the <sys/file.h> header file. */
#cmakedefine HAVE_SYS_FILE_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#cmakedefine HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/syscall.h> header file. */
#cmakedefine HAVE_SYS_SYSCALL_H 1
/* Define to 1 if you have the <sys/timerfd.h> header file. */
#cmakedefine HAVE_SYS_TIMERFD_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
@ -103,6 +112,8 @@
/* Define to 1 if you have the `vasprintf' function. */
#cmakedefine HAVE_VASPRINTF 1
#cmakedefine HAVE_VFW32
/* Define to 1 if you have the <X11/extensions/xf86vmode.h> header file. */
#cmakedefine HAVE_X11_EXTENSIONS_XF86VMODE_H 1
@ -152,9 +163,6 @@
/* DirectX graphics */
#cmakedefine USE_DIRECTX 1
/* Wether FMOD shall be used */
#cmakedefine USE_FMOD 1
/* OpenGL graphics */
#cmakedefine USE_GL 1
@ -173,6 +181,12 @@
/* Glib */
#cmakedefine WITH_GLIB 1
/* Use GTK+3 for the developer mode */
#cmakedefine WITH_GTK3 1
/* Enable the automatic update system */
#cmakedefine WITH_AUTOMATIC_UPDATE 1
/* Define to 1 if the X Window System is missing or not being used. */
#cmakedefine X_DISPLAY_MISSING 1
@ -182,3 +196,17 @@
/* Define to 1 if rvalue references are supported */
#cmakedefine HAVE_RVALUE_REF 1
/* Define to 1 if you have support for precompiled headers */
#cmakedefine HAVE_PRECOMPILED_HEADERS 1
/* Define to 1 if you have support for nullptr. */
#cmakedefine HAVE_NULLPTR 1
/* Use Apple Cocoa for the UI */
#cmakedefine USE_COCOA 1
/* Define to 1 if your compiler supports static_assert */
#cmakedefine HAVE_STATIC_ASSERT 1
/* Generate minidumps on crash */
#cmakedefine HAVE_DBGHELP 1

View File

@ -3,10 +3,13 @@
/* Activate DebugRecs */
#undef DEBUGREC
/* define if the Boost library is available */
#undef HAVE_BOOST
/* Define to 1 if you have the <direct.h> header file. */
#undef HAVE_DIRECT_H
/* Define to 1 if you have the <execinfo.h> header file. */
/* The backtrace function is declared in execinfo.h and works */
#undef HAVE_EXECINFO_H
/* Define to 1 if you have FreeType2. */
@ -42,12 +45,18 @@
/* Define to 1 if you have the <multimon.h> header file. */
#undef HAVE_MULTIMON_H
/* Define to 1 if you have the <natupnp.h> header file. */
#undef HAVE_NATUPNP_H
/* Define to 1 if you have the <poll.h> header file. */
#undef HAVE_POLL_H
/* Define if you have POSIX threads libraries and header files. */
#undef HAVE_PTHREAD
/* Have PTHREAD_PRIO_INHERIT. */
#undef HAVE_PTHREAD_PRIO_INHERIT
/* Define to 1 if you have the <readline.h> header file. */
#undef HAVE_READLINE_H
@ -84,8 +93,11 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* inotify reachable using syscall */
#undef HAVE_SYSCALL_INOTIFY
/* Define to 1 if you have the <sys/eventfd.h> header file. */
#undef HAVE_SYS_EVENTFD_H
/* Define to 1 if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
/* Define to 1 if you have the <sys/inotify.h> header file. */
#undef HAVE_SYS_INOTIFY_H
@ -96,8 +108,8 @@
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/syscall.h> header file. */
#undef HAVE_SYS_SYSCALL_H
/* Define to 1 if you have the <sys/timerfd.h> header file. */
#undef HAVE_SYS_TIMERFD_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
@ -108,6 +120,9 @@
/* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF
/* */
#undef HAVE_VFW32
/* Define to 1 if you have the <X11/extensions/xf86vmode.h> header file. */
#undef HAVE_X11_EXTENSIONS_XF86VMODE_H
@ -141,6 +156,9 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION
@ -157,7 +175,7 @@
/* DirectX graphics */
#undef USE_DIRECTX
/* Wether FMOD shall be used */
/* Whether FMOD shall be used */
#undef USE_FMOD
/* OpenGL graphics */
@ -166,12 +184,18 @@
/* MP3 music */
#undef USE_MP3
/* OpenAL sound */
#undef USE_OPEN_AL
/* Define to 1 if SDL is used for the main loop */
#undef USE_SDL_MAINLOOP
/* Define to 1 if the X Window System is used */
#undef USE_X11
/* Enable automatic update system */
#undef WITH_AUTOMATIC_UPDATE
/* Developer mode */
#undef WITH_DEVELOPER_MODE

View File

@ -1,21 +1,27 @@
dnl Copyright (c) 2005-2009, RedWolf Design GmbH, http://www.clonk.de
dnl Permission to use, copy, modify, and/or distribute this software for any
dnl purpose with or without fee is hereby granted, provided that the above
dnl copyright notice and this permission notice appear in all copies.
dnl THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
dnl WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
dnl MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
dnl ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(clonk, m4_format([[[%s.%s.%s.%s]]], m4_include(version)))
AC_COPYRIGHT([©2005-2009 Günther Brammer])
# Copyright (c) 2005-2011 Günther Brammer
# Copyright (c) 2005, 2008 Peter Wortmann
# Copyright (c) 2006 Julian Raschke
# Copyright (c) 2010 Armin Burgmeier
# Copyright (c) 2010 Martin Plicht
# Copyright (c) 2005-2009, RedWolf Design GmbH, http://www.clonk.de
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
AC_PREREQ([2.67])
AC_INIT([clonk], [5])
AC_COPYRIGHT([©2005-2011 Günther Brammer])
AC_CONFIG_SRCDIR([/src/C4Game.cpp])
AC_CONFIG_AUX_DIR([autotools])
AC_CONFIG_HEADER([config.h])
@ -24,11 +30,12 @@ AC_CANONICAL_HOST
dnl foreign to tell automake to shut up,
dnl and subdir-objects because it makes the Makefile smaller.
dnl no-define because PACKAGE and VERSION are not used
AM_INIT_AUTOMAKE([foreign nostdinc no-define 1.10])
AM_INIT_AUTOMAKE([foreign tar-ustar nostdinc no-define 1.10])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
AC_PROG_CXX
AC_LANG([C++])
AX_CHECK_COMPILER_FLAGS([-std=gnu++0x], [CXX="${CXX} -std=gnu++0x"])
AX_CHECK_COMPILE_FLAG([-std=gnu++0x], [CXX="${CXX} -std=gnu++0x"], [])
AC_COMPILE_IFELSE([
void f(struct D&&); int main() { return 0; }
], [AC_DEFINE([HAVE_RVALUE_REF], [], [C++ Compiler has rvalue references, a C++0x feature.])], [AX_PROG_CXX_REFTOTEMP])
@ -36,12 +43,13 @@ AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_RANLIB
# The wonders of code stolen from docs.
case $host in
*-*-mingw32* | *-*-cygwin* | *-*-windows*)
win32=true; osx=false;;
*-*-darwin*)
win32=false; osx=true;;
win32=false; osx=true;
m4_ifdef([AC_PROG_OBJCXX], [AC_PROG_OBJCXX], [AC_MSG_ERROR([this configure script was created with an autoconf version older than 2.65 and does not support macosx.])])
;;
*)
win32=false; osx=false;;
esac
@ -50,19 +58,34 @@ esac
AC_CHECK_HEADER([windows.h], [win32=true], [], [[ ]])
AM_CONDITIONAL(WIN32, [test $win32 = true])
AM_CONDITIONAL(MACOSX, [test $osx = true])
# various used headers
dnl the whitespace is there to prevent AC_INCLUDES_DEFAULT
AC_CHECK_HEADERS([stdint.h unistd.h poll.h sys/stat.h sys/types.h locale.h sys/socket.h signal.h langinfo.h execinfo.h sys/inotify.h sys/syscall.h], , , [[ ]])
AC_CHECK_HEADERS([stdint.h unistd.h poll.h sys/file.h sys/stat.h sys/types.h locale.h sys/socket.h signal.h langinfo.h sys/eventfd.h sys/timerfd.h sys/inotify.h], , , [[ ]])
# Mingw does not ship with multimon.h
AC_CHECK_HEADERS([multimon.h io.h direct.h share.h], [], [], [[#include <windows.h>]])
AC_CHECK_HEADERS([multimon.h io.h direct.h share.h natupnp.h], [], [], [[#include <windows.h>]])
# iconv
AX_ICONV
# vasprintf is a GNU extension
AC_CHECK_FUNCS(vasprintf)
# so is execinfo.h - and some systems have the header despite the functions not being in the c library
AC_CHECK_HEADER(execinfo.h)
if test "x$ac_cv_header_execinfo_h" = xyes; then
AC_CHECK_FUNC(backtrace, [], [
AC_CHECK_LIB(execinfo, backtrace, [
CLONK_LIBS="-lexecinfo $CLONK_LIBS"
], [
ac_cv_header_execinfo_h=no
])
])
fi
if test "x$ac_cv_header_execinfo_h" = xyes; then
AC_DEFINE(HAVE_EXECINFO_H, 1, [The backtrace function is declared in execinfo.h and works])
fi
AC_ARG_ENABLE([debug],
[AC_HELP_STRING([--enable-debug], [debugging options [default=no]])],
[AS_HELP_STRING([--enable-debug],[debugging options [default=no]])],
, [enable_debug=no])
if test $enable_debug = yes; then
AC_DEFINE([_DEBUG], 1, [compile with debug options])
@ -71,33 +94,67 @@ else
fi
AC_ARG_ENABLE([debugrec],
[AC_HELP_STRING([--enable-debugrec], [write additional debug control to records [default=no]])],
[AS_HELP_STRING([--enable-debugrec],[write additional debug control to records [default=no]])],
, [enable_debugrec=no])
if test $enable_debugrec = yes; then
AC_DEFINE([DEBUGREC], 1, [Activate DebugRecs])
fi
AC_ARG_ENABLE([console],
[AC_HELP_STRING([--enable-console],[compile as pure console application [default=no]])],
[AS_HELP_STRING([--enable-console],[compile as pure console application [default=no]])],
, [enable_console=no])
AC_ARG_ENABLE([sound],
[AC_HELP_STRING([--enable-sound],[compile with sound support [default=yes]])],
[AS_HELP_STRING([--enable-sound],[compile with sound support [default=yes]])],
, [if test $enable_console = yes; then enable_sound=no; else if test $win32 = true; then enable_sound=no; else enable_sound=yes; fi; fi])
# GTK+
GTK_REQUIRED="glib-2.0 >= 2.4 gtk+-2.0 >= 2.4"
GTK2_REQUIRED="glib-2.0 >= 2.8 gtk+-2.0 >= 2.8"
GTK3_REQUIRED="glib-2.0 >= 2.27.5 gtk+-3.0 >= 2.99.0"
PKG_PROG_PKG_CONFIG
AC_MSG_CHECKING([which gtk+ version to compile against])
AC_ARG_WITH([gtk],
[AC_HELP_STRING([--with-gtk], [Use gtk for the developer mode [default=auto]])],
, [PKG_CHECK_EXISTS([$GTK_REQUIRED], [with_gtk=yes], [with_gtk=no])])
AS_IF([test $with_gtk = yes],[
[AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against [default: auto]])],
[case "$with_gtk" in
2.0|3.0) ;;
no) ;;
*) AC_MSG_ERROR([invalid gtk version specified]) ;;
esac],
[AS_IF([test $enable_console = no],
[PKG_CHECK_EXISTS([$GTK3_REQUIRED],
[with_gtk=3.0],
[PKG_CHECK_EXISTS([$GTK2_REQUIRED],
[with_gtk=2.0],
[with_gtk=no])])],
[with_gtk=no])])
AC_MSG_RESULT([$with_gtk])
AS_IF([test $with_gtk != no],[
case "$with_gtk" in
2.0) GTK_REQUIRED="$GTK2_REQUIRED"
;;
3.0) GTK_REQUIRED="$GTK3_REQUIRED"
;;
esac
PKG_CHECK_MODULES(GTK, [$GTK_REQUIRED])
AC_DEFINE([WITH_GLIB], 1, [Glib])
AC_DEFINE([WITH_DEVELOPER_MODE], 1, [Developer mode])
DEVELOPER_MODE=true
])
AM_CONDITIONAL(DEVELOPER_MODE, [test $with_gtk = yes])
AM_CONDITIONAL(DEVELOPER_MODE, [test $with_gtk != no])
# OpenAL
AC_ARG_WITH([openal],
[AS_HELP_STRING([--with-openal],[compile with openal support [default=no]])],
, [with_openal=no])
if test $with_openal = yes; then
PKG_CHECK_MODULES(OPENAL, [vorbis vorbisfile openal])
AC_DEFINE([USE_OPEN_AL], 1, [OpenAL sound])
if test $enable_sound = no; then
AC_MSG_ERROR([--with-openal cannot be used with --disable-sound.])
fi
fi
# SDL
with_sdl_mixer=no
AC_ARG_WITH([sdl],
AS_HELP_STRING([--with-sdl], [Use SDL @<:@default=yes (no for win32)@:>@]),
, [if test $win32 = true; then with_sdl=no; else if test $enable_console = yes; then with_sdl=no; else with_sdl=yes; fi fi])
@ -109,16 +166,17 @@ if test $with_sdl = yes; then
[AC_MSG_ERROR([libSDL not found.])])
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)
if test $enable_sound = yes; then
if test $enable_sound = yes && test $with_openal = no; then
# Check for SDL_mixer library
AC_CHECK_LIB(SDL_mixer, Mix_OpenAudio,
[AC_DEFINE(HAVE_LIBSDL_MIXER,1,[Define to 1 if you have SDL_mixer.])
SDL_LIBS="-lSDL_mixer $SDL_LIBS"],
SDL_LIBS="-lSDL_mixer $SDL_LIBS"
with_sdl_mixer=yes],
[AC_MSG_ERROR([SDL_mixer not found.])],
[$SDL_LIBS])
fi
AC_ARG_ENABLE(sdlmainloop,
[AC_HELP_STRING([--enable-sdlmainloop],[use SDL instead of X11 or Win32 [default=no]])],
[AS_HELP_STRING([--enable-sdlmainloop],[use SDL instead of X11 or Win32 [default=no]])],
, [if test $osx = true; then enable_sdlmainloop=yes; else enable_sdlmainloop=no; fi ])
else
enable_sdlmainloop=no
@ -131,7 +189,7 @@ AM_CONDITIONAL(SDL_MAIN_LOOP, [test $enable_sdlmainloop = yes])
if test $enable_sound = yes; then
AC_ARG_ENABLE([mp3],
[AC_HELP_STRING([--enable-mp3],[enable mp3 support [default=no]])],
[AS_HELP_STRING([--enable-mp3],[enable mp3 support [default=no]])],
, [enable_mp3=no])
if test $enable_mp3 = yes; then
AC_DEFINE([USE_MP3], 1, [MP3 music])
@ -150,10 +208,14 @@ else
VL_LIB_READLINE
fi
# Check for boost
AX_BOOST_BASE([1.40.0], [], [
AC_MSG_ERROR([Boost not found.])
])
# Check for libjpeg
AC_CHECK_LIB(jpeg, jpeg_read_header, [
CLONK_LIBS="-ljpeg $CLONK_LIBS"
with_internal_libjpeg=no
], [
AC_MSG_ERROR([libjpeg not found.])
])
@ -161,7 +223,6 @@ AC_CHECK_LIB(jpeg, jpeg_read_header, [
# Check for libpng
AC_CHECK_LIB(png, png_read_image, [
CLONK_LIBS="-lpng $CLONK_LIBS"
with_internal_libpng=no
], [
AC_MSG_ERROR([libpng not found.])
], [-lz])
@ -206,11 +267,13 @@ fi
# OpenGL
AC_ARG_WITH([gl],
[AC_HELP_STRING([--with-gl],[compile with opengl support [default=yes]])],
[AS_HELP_STRING([--with-gl],[compile with opengl support [default=yes]])],
, [if test $enable_console = yes; then with_gl=no; else with_gl=yes; fi])
if test $with_gl = yes; then
if test $osx = true; then
CLONK_LIBS="-framework OpenGL $CLONK_LIBS"
AC_CHECK_LIB(GLEW, glewInit, [CLONK_LIBS="-lGLEW $CLONK_LIBS"],
[AC_MSG_ERROR([glew not found.])])
elif test $win32 = true; then
AC_CHECK_LIB(opengl32, main, [CLONK_LIBS="-lopengl32 $CLONK_LIBS"],
[AC_MSG_ERROR([opengl32 not found.])])
@ -232,7 +295,7 @@ fi
# DirectX
AC_ARG_WITH([directx],
[AC_HELP_STRING([--with-directx],[compile with directx support [default=no]])],
[AS_HELP_STRING([--with-directx],[compile with directx support [default=no]])],
, [with_directx="no"])
if test "$with_directx" = yes; then
AC_CHECK_LIB(d3d9, main, [CLONK_LIBS="-ld3d9 $CLONK_LIBS"],
@ -240,33 +303,50 @@ if test "$with_directx" = yes; then
AC_DEFINE([USE_DIRECTX], 1, [DirectX graphics])
fi
# OpenSSL
AC_CHECK_LIB(crypto, BIO_new, [OPENSSL_LIBS="-lcrypto"],
[AC_MSG_ERROR([libcrypto (OpenSSL) not found.])])
# UPnP
AC_ARG_WITH([upnp],
[AS_HELP_STRING([--with-upnp],[compile with upnp support [default=no]])],
, [with_upnp=no])
AS_IF([test $with_upnp = yes], [
AM_CONDITIONAL(NATUPNP, [test "$ac_cv_header_natupnp_h" = yes])
PKG_CHECK_MODULES(LIBUPNP, [libupnp], [have_libupnp=yes], [have_libupnp=no])
], [
AM_CONDITIONAL(NATUPNP, [false])
have_libupnp=no
])
AM_CONDITIONAL(LIBUPNP, [test "$have_libupnp" = yes])
# Automatic Update
AC_ARG_WITH([automatic-update],
[AS_HELP_STRING([--with-automatic-update],[enable support for automatic engine updates [default=yes]])],
, [with_automatic_update="yes"])
if test "$with_automatic_update" = "yes"; then
AC_DEFINE([WITH_AUTOMATIC_UPDATE], 1, [Enable automatic update system])
fi
if test $win32 = false; then
# pthread
ACX_PTHREAD( , [AC_MSG_ERROR([No pthread support.])])
AX_PTHREAD( , [AC_MSG_ERROR([No pthread support.])])
AC_SUBST(PTHREAD_LIBS)
AC_SUBST(PTHREAD_CFLAGS)
# inotify syscall workaround
AC_CHECK_DECL(SYS_inotify_init,
AC_DEFINE([HAVE_SYSCALL_INOTIFY], 1, [inotify reachable using syscall]),,
[#include <sys/syscall.h>])
# FMod is used for windows only
AM_CONDITIONAL(USE_FMOD, false)
else
# Windows
for WIN32LIB in gdi32 comdlg32 winmm ws2_32 vfw32
for WIN32LIB in gdi32 comdlg32 winmm ws2_32
do
AC_CHECK_LIB([$WIN32LIB], main, [CLONK_LIBS="-l$WIN32LIB $CLONK_LIBS"], [AC_MSG_ERROR([$WIN32LIB not found.])])
done
AC_CHECK_LIB([vfw32], main, [
CLONK_LIBS="-lvfw32 $CLONK_LIBS"
AC_DEFINE([HAVE_VFW32], 1, [ ])
], [])
# FMod (Library comes with standard)
if test "$enable_sound" = yes; then
AC_DEFINE([USE_FMOD], 1, [Wether FMOD shall be used])
AC_DEFINE([USE_FMOD], 1, [Whether FMOD shall be used])
fi
AM_CONDITIONAL(USE_FMOD, test "$enable_sound" = yes)
@ -279,7 +359,6 @@ fi
AC_SUBST(CLONK_LIBS)
AC_SUBST(Z_LIBS)
AC_SUBST(OPENSSL_LIBS)
# precompiled headers and -Wextra
AC_MSG_CHECKING([whether we are using a GNU C++ compiler version 4.1 or newer])
@ -301,8 +380,11 @@ echo "Configuration:
DirectX: $with_directx
OpenGL: $with_gl
Sound: $enable_sound
SDL_Mixer: $with_sdl_mixer
OpenAL: $with_openal
GTK+: $with_gtk
X11: $have_x"
X11: $have_x
Nat/LibUPnP: $ac_cv_header_natupnp_h/$have_libupnp"
if test "$enable_sdlmainloop" = yes; then echo " SDL: mainloop";
else echo " SDL: $with_sdl"; fi

View File

@ -1,6 +1,6 @@
# Notable targets:
# all (default): German and English onlinedocs
# online-de: only German onlinedocs, which can be partially updated
# online-en: only English onlinedocs, which can be partially updated
# Enwickler.chm: the German offline doc
# use with make Entwickler.chm HHC = /path/to/hhc
@ -25,7 +25,7 @@ extra-files := $(sort $(wildcard *.css *.php *.js images/*.*))
extra-files-chm := $(sort $(wildcard *.css *.js images/*.*))
# find all *.xml files recursively in sdk/
xmlfiles := $(sort $(shell find sdk -name '.*' -prune -o -name \*.xml -print))
xmlfiles := $(sort $(shell find sdk -name '.*' -prune -o -name 'content.xml' -prune -o -name \*.xml -print))
# Targets:
@ -33,84 +33,84 @@ xmlfiles := $(sort $(shell find sdk -name '.*' -prune -o -name \*.xml -print))
htmlfiles := $(addsuffix .html, $(basename $(xmlfiles)))
# The translated files and directories
sdk-dirs-en := $(subst sdk, sdk-en, $(sdk-dirs))
xmlfiles-en := $(subst sdk, sdk-en, $(xmlfiles))
htmlfiles-en := $(subst sdk, sdk-en, $(htmlfiles))
sdk-de-dirs := $(subst sdk, sdk-de, $(sdk-dirs))
# For clonk.de
online-sdk-files := $(foreach lang, en de, $(addprefix online/$(lang)/, $(htmlfiles) content.html))
# For openclonk.org
online-sdk-files := $(foreach lang, en de, $(addprefix online/$(lang)/, $(htmlfiles) sdk/content.html))
online-dirs := $(foreach lang, en de, $(addprefix online/$(lang)/, $(sdk-dirs) images))
online-extra-files := $(foreach lang, en de, $(addprefix online/$(lang)/, $(extra-files)))
# For Entwickler.chm
chm-dirs := $(foreach lang, en de, $(addprefix chm/$(lang)/, . $(sdk-dirs) images))
.PHONY: all online-de chm install svn-update check clean
.PHONY: all online-en chm install check clean
all: $(online-dirs) $(sdk-dirs-en) $(online-extra-files) $(online-sdk-files)
all: $(online-dirs) $(sdk-de-dirs) $(online-extra-files) $(online-sdk-files)
online-de: $(addprefix online/de/, $(sdk-dirs) images $(htmlfiles) $(extra-files))
online-en: $(addprefix online/en/, $(sdk-dirs) images $(htmlfiles) sdk/content.html $(extra-files))
chm: $(chm-dirs) Entwickler.chm Developer.chm
chm: $(chm-dirs) $(sdk-de-dirs) chm/en/Developer.chm chm/de/Entwickler.chm
install: all
$(MKDIR_P) $(prefix)
$(CP_R) $(PWD)/online/* $(prefix)
svn-update:
svn up
check:
xmllint --noblanks --noout --valid $(xmlfiles)
clean:
rm -f *.mo Entwickler.chm Developer.chm doku.pot
rm -rf online sdk-en chm
rm -rf online sdk-de chm
chm/de/Output.hhp chm/de/Output.hhk chm/en/Output.hhc chm/en/Output.hhp chm/en/Output.hhk: chm/de/Output.hhc
#update timestamp
touch $@
chm/de/Output.hhc: $(xmlfiles) chm/de/. chm/en/. build_chm_files.py experimental.py \
Template.hhc Template.en.hhc Template.hhk Template.en.hhk Template.hhp Template.en.hhp en.mo
@echo generate chm files
@python build_chm_files.py $(xmlfiles)
online/de/content.html: chm/de/Output.hhc build_contents.pl
sdk/content.xml: sdk/content.xml.in $(xmlfiles) build_contents.py experimental.py
@echo generate $@
@perl build_contents.pl $< > $@
online/en/content.html: chm/en/Output.hhc build_contents.pl
@echo generate $@
@perl build_contents.pl $< > $@
@python build_contents.py $(xmlfiles)
$(sdk-dirs-en) $(online-dirs) $(chm-dirs):
chm/en/Output.hhp: $(xmlfiles) chm/en/. build_hhp.py Template.hhp
@echo generate $@
@python build_hhp.py $@ Template.hhp $(xmlfiles)
chm/de/Output.hhp: $(xmlfiles) chm/de/. build_hhp.py Template.de.hhp
@echo generate $@
@python build_hhp.py $@ Template.de.hhp $(xmlfiles)
$(sdk-de-dirs) $(online-dirs) $(chm-dirs):
mkdir -p $@
doku.pot: $(xmlfiles) extra-strings.xml xml2po.py clonk.py
doku.pot: $(xmlfiles) extra-strings.xml sdk/content.xml.in xml2po.py clonk.py
@echo extract strings to $@
@python xml2po.py -e -m clonk -o $@ $(xmlfiles) extra-strings.xml
@python xml2po.py -e -m clonk -o $@ $(xmlfiles) extra-strings.xml sdk/content.xml.in
%.po: doku.pot
@echo update $@
@msgmerge --no-wrap -w 1 -U $@ $<
# @msgmerge --no-wrap -w 1 -U $@ $<
@msgmerge --no-wrap -w 1 -o $@ $@ $<
%.mo: %.po
@echo compile $@
@msgfmt --statistics -o $@ $<
sdk-en/%.xml: sdk/%.xml en.mo xml2po.py clonk.py
sdk-de/%.xml: sdk/%.xml de.mo xml2po.py clonk.py
@echo generate $@
@python xml2po.py -e -m clonk -t en.mo -o $@ $<
@python xml2po.py -e -m clonk -t de.mo -o $@ $<
define run-xslt
@echo generate $@
@xsltproc -o $@ --param webnotes $(webnotes) --param fileext "'.html'" $(XSLTFLAGS) $(stylesheet) $<
@xsltproc -o $@ --param chm $(chm) --param fileext "'.html'" $(XSLTFLAGS) $(stylesheet) $<
endef
online/%: webnotes=1
chm/%: webnotes=0
online/de/sdk/%.html: sdk/%.xml $(stylesheet) ; $(run-xslt)
online/en/sdk/%.html: sdk-en/%.xml $(stylesheet) ; $(run-xslt)
chm/de/sdk/%.html: sdk/%.xml $(stylesheet) ; $(run-xslt)
chm/en/sdk/%.html: sdk-en/%.xml $(stylesheet) ; $(run-xslt)
online/%: chm=0
chm/%: chm=1
online/en/sdk/%.html: sdk/%.xml $(stylesheet) ; $(run-xslt)
online/de/sdk/%.html: sdk-de/%.xml $(stylesheet) ; $(run-xslt)
chm/en/sdk/%.html: sdk/%.xml $(stylesheet) ; $(run-xslt)
chm/de/sdk/%.html: sdk-de/%.xml $(stylesheet) ; $(run-xslt)
chm/en/Output.hhc: stylesheet=hhc.xsl
chm/de/Output.hhc: stylesheet=hhc.xsl
chm/en/Output.hhc: sdk/content.xml hhc.xsl ; $(run-xslt)
chm/de/Output.hhc: sdk-de/content.xml hhc.xsl ; $(run-xslt)
chm/en/Output.hhk: stylesheet=hhk.xsl
chm/de/Output.hhk: stylesheet=hhk.xsl
chm/en/Output.hhk: sdk/content.xml hhk.xsl ; $(run-xslt)
chm/de/Output.hhk: sdk-de/content.xml hhk.xsl ; $(run-xslt)
$(filter online/en/%, $(online-extra-files)): online/en/%: %
$(CP) $< $@
@ -121,8 +121,8 @@ $(addprefix chm/en/, $(extra-files-chm)): chm/en/%: %
$(addprefix chm/de/, $(extra-files-chm)): chm/de/%: %
$(CP) $< $@
Entwickler.chm: chm/de/Output.hhp chm/de/Output.hhk chm/de/Output.hhc $(addprefix chm/de/, $(sdk-dirs) images $(htmlfiles) $(extra-files-chm))
$(HHC) $<
Developer.chm: chm/en/Output.hhp chm/en/Output.hhk chm/en/Output.hhc $(addprefix chm/en/, $(sdk-dirs) images $(htmlfiles) $(extra-files-chm))
$(HHC) $<
chm/en/Developer.chm: chm/en/Output.hhp chm/en/Output.hhk chm/en/Output.hhc $(addprefix chm/en/, $(sdk-dirs) images $(htmlfiles) $(extra-files-chm))
"$(HHC)" $<
chm/de/Entwickler.chm: chm/de/Output.hhp chm/de/Output.hhk chm/de/Output.hhc $(addprefix chm/de/, $(sdk-dirs) images $(htmlfiles) $(extra-files-chm))
"$(HHC)" $<

View File

@ -1,15 +1,18 @@
To build the doku under Windows, you need
How to build the documentation
==============================
This section explains how to build the German and English HTML-documentation from the English XML-source files and the translation file.
Perl, Python, and Cygwin
In Linux, it should be as easy as: Open the console and run make in this directory.
installed with:
In Windows, you ned Python and Cygwin. During the Cygwin installation, select these additional libraries to install:
+ make
+ xsltproc (libxml2 + libxslt + python-libxml2)
+ findutils
+ sed
+ gettext
+ gettext-devel
+ libgcrypt + libgpg-error (for whatever reason)
Also you might have to rename find.exe, so that the cygwin provided one is used - first in Windows\System32\dllback then in Windows\System32 to make sure it isn't used.
make
xsltproc (libxml2 + libxslt + python-libxml2)
findutils
sed
gettext
gettext-devel
libgcrypt + libgpg-error (for whatever reason)
Also you should rename find.exe - first in Windows\System32\dllback then in Windows\System32 to make sure it isn't used.
After the installation, run cygwin, cd to this directory (/cygdrive/c/.../openclonk/docs/) and run make. The process takes about ten minutes to complete.
The online version of the documentation has been generated into the online/ directory.

View File

@ -0,0 +1,39 @@
[OPTIONS]
Compatibility=1.1 or later
Compiled file=Entwickler.chm
Contents file=Output.hhc
Default topic=sdk\index.html
Display compile progress=No
Full-text search=Yes
Index file=Output.hhk
Language=0x407 Deutsch (Standard)
Title=Clonk Entwicklermodus
[FILES]
images\icon_em_brush.gif
images\icon_em_dynamic.gif
images\icon_em_edit.gif
images\icon_em_exact.gif
images\icon_em_eyedrop.gif
images\icon_em_fill.gif
images\icon_em_line.gif
images\icon_em_play.gif
images\icon_em_rect.gif
images\icon_em_sky.gif
images\icon_em_static.gif
images\icon_em_tunnel.gif
images\icon_image.png
images\icon_material.png
images\icon_music.png
images\icon_object_definition.png
images\icon_player.png
images\icon_scenario.png
images\icon_scenario_folder.png
images\icon_sound.png
images\icon_system.png
images\icon_text.png
images\icons_em_play.gif
[INFOTYPES]

View File

@ -1,189 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Notice: some tags and tab positions are hardcoded in DokuCompile/compilefns.exe -->
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="Window Styles" value="0x800025">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Developer Mode">
<!--<param name="Local" value="sdk\index.html">-->
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Introduction">
<param name="Local" value="sdk\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Engine">
<param name="Local" value="sdk\console.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Command line parameters">
<param name="Local" value="sdk\cmdline.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Game Data">
<param name="Local" value="sdk\files.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Object Definitions">
<param name="Local" value="sdk\definition\index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="DefCore">
<param name="Local" value="sdk\definition\defcore.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Category">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="OCF">
<param name="Local" value="sdk\definition\ocf.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Vertices">
<param name="Local" value="sdk\definition\vertices.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="LineConnect">
<param name="Local" value="sdk\definition\lineconnect.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="CNAT - Contact Attatchment">
<param name="Local" value="sdk\definition\cnat.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="ActMap">
<param name="Local" value="sdk\definition\actmap.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Procedures">
<param name="Local" value="sdk\definition\procedures.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script">
<param name="Local" value="sdk\definition\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Particle">
<param name="Local" value="sdk\particle\index.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scenarios">
<param name="Local" value="sdk\scenario\index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scenario">
<param name="Local" value="sdk\scenario\scenario.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Map Generator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script">
<param name="Local" value="sdk\scenario\script.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Materials">
<param name="Local" value="sdk\material\index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Definitions">
<param name="Local" value="sdk\material\c4m.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Languages">
<!--<param name="Local" value="sdk\lang.html">-->
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Localization">
<param name="Local" value="sdk\lang.html">
</OBJECT>
</UL>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script">
<param name="Local" value="sdk\script\index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Functions">
<param name="Local" value="sdk\script\Funcs.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Calling Script Functions">
<param name="Local" value="sdk\script\FuncCall.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="break / continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="for">
<param name="Local" value="sdk\script\for.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Named Variables">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Operators">
<param name="Local" value="sdk\script\operatoren.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Data Types">
<param name="Local" value="sdk\script\Typechecks.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Effects">
<param name="Local" value="sdk\script\Effects.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script players">
<param name="Local" value="sdk\script\ScriptPlayers.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Functions by Category">
</OBJECT>
<!-- Insert Functions here 1-->
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Functions by Version">
</OBJECT>
<!-- Insert Functions here 2-->
</UL>
</UL>
</BODY></HTML>

View File

@ -1,220 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#appendto">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#strict">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="ActMap.txt">
<param name="Name" value="ActMap.txt">
<param name="Local" value="sdk\definition\actmap.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Named Variables">
<param name="Name" value="Named Variables">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="break">
<param name="Name" value="Break / Continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Category">
<param name="Name" value="Objektkategorien">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="CNAT">
<param name="Name" value="CNAT - Contact Attachment">
<param name="Local" value="sdk\definition\cnat.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="continue">
<param name="Name" value="Break / Continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="DefCore.txt">
<param name="Name" value="DefCore.txt">
<param name="Local" value="sdk\definition\defcore.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Directives">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Developer Mode">
<param name="Name" value="Clonk Developer Mode">
<param name="Local" value="sdk\index.html">
<param name="Name" value="The Engine in Developer Mode">
<param name="Local" value="sdk\console.html">
<param name="Name" value="Command line options">
<param name="Local" value="sdk\cmdline.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="for">
<param name="Name" value="The for loop">
<param name="Local" value="sdk\script\for.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="landscape.txt">
<param name="Name" value="Dynamic Map Generator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Materials">
<param name="Name" value="Material Definitions">
<param name="Local" value="sdk\material\index.html">
<param name="Name" value="Material Definitions (C4M)">
<param name="Local" value="sdk\material\c4m.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Map Generator">
<param name="Name" value="Dynamic Map Generator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Map Generator">
<param name="Name" value="Dynamic Map Generator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Object Definitions">
<param name="Name" value="Definitions">
<param name="Local" value="sdk\definition\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Object Categories">
<param name="Name" value="Object Categories">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objekt Scripts">
<param name="Name" value="Objekt Scripts">
<param name="Local" value="sdk\definition\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="OCF">
<param name="Name" value="Object Character Flags">
<param name="Local" value="sdk\definition\ocf.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Operators">
<param name="Name" value="Operators">
<param name="Local" value="sdk\script\operatoren.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Particles">
<param name="Name" value="Particles">
<param name="Local" value="sdk\particle\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Procedures (ActMap)">
<param name="Name" value="Procedures">
<param name="Local" value="sdk\definition\procedures.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="scenario.txt">
<param name="Name" value="Scenario.txt">
<param name="Local" value="sdk\scenario\scenario.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script">
<param name="Name" value="Scenario Scripts">
<param name="Local" value="sdk\scenario\script.html">
<param name="Name" value="Object Scripts">
<param name="Local" value="sdk\definition\script.html">
<param name="Name" value="C4Script Documentation">
<param name="Local" value="sdk\script\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Game Data">
<param name="Name" value="Game Data">
<param name="Local" value="sdk\files.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scenarios">
<param name="Name" value="Scenarios">
<param name="Local" value="sdk\scenario\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scenario Scripts">
<param name="Name" value="Scenario Scripts">
<param name="Local" value="sdk\scenario\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Typechecking">
<param name="Name" value="Data Types">
<param name="Local" value="sdk\script\Typechecks.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Variables">
<param name="Name" value="Named Variables">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Vertices">
<param name="Name" value="Vertices">
<param name="Local" value="sdk\definition\vertices.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Effects">
<param name="Name" value="Effects">
<param name="Local" value="sdk\script\Effects.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script players">
<param name="Name" value="Script players">
<param name="Local" value="sdk\script\ScriptPlayers.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="++"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="--"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="~"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="!"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="+"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="*"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="/"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="%"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<<"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">>"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="=="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="!="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="S="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="ne"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="eq"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="&amp;"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="^"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="|"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="&amp;&amp;"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="||"> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="*="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="/="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="%="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="+="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="="> <PARAM name="Name" value="Operators"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
</UL>
</BODY></HTML>

View File

@ -1,40 +0,0 @@
[OPTIONS]
Compatibility=1.1 or later
Compiled file=Developer.chm
Contents file=Output.hhc
Default topic=sdk\index.html
Display compile progress=No
Full-text search=Yes
Index file=Output.hhk
Language=0x409 Englisch (USA)
Title=Clonk Developer Mode
[FILES]
images\cpem.gif
images\icon_em_brush.gif
images\icon_em_dynamic.gif
images\icon_em_edit.gif
images\icon_em_exact.gif
images\icon_em_eyedrop.gif
images\icon_em_fill.gif
images\icon_em_line.gif
images\icon_em_play.gif
images\icon_em_rect.gif
images\icon_em_sky.gif
images\icon_em_static.gif
images\icon_em_tunnel.gif
images\icon_image.gif
images\icon_material.gif
images\icon_music.gif
images\icon_object_definition.gif
images\icon_player.gif
images\icon_scenario.gif
images\icon_scenario_folder.gif
images\icon_sound.gif
images\icon_system.gif
images\icon_text.gif
images\icons_em_play.gif
[INFOTYPES]

View File

@ -1,189 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Notice: some tags and tab positions are hardcoded in DokuCompile/compilefns.exe -->
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="Window Styles" value="0x800025">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Entwicklermodus">
<!--<param name="Local" value="sdk\index.html">-->
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Einleitung">
<param name="Local" value="sdk\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Engine">
<param name="Local" value="sdk\console.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Kommandozeilenparameter">
<param name="Local" value="sdk\cmdline.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Spieldaten">
<param name="Local" value="sdk\files.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objektdefinitionen">
<param name="Local" value="sdk\definition\index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="DefCore">
<param name="Local" value="sdk\definition\defcore.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Category">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="OCF">
<param name="Local" value="sdk\definition\ocf.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Vertices">
<param name="Local" value="sdk\definition\vertices.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="LineConnect">
<param name="Local" value="sdk\definition\lineconnect.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="CNAT - Contact Attatchment">
<param name="Local" value="sdk\definition\cnat.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="ActMap">
<param name="Local" value="sdk\definition\actmap.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Prozeduren">
<param name="Local" value="sdk\definition\procedures.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scripte">
<param name="Local" value="sdk\definition\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Partikel">
<param name="Local" value="sdk\particle\index.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Szenarien">
<param name="Local" value="sdk\scenario\index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Szenario">
<param name="Local" value="sdk\scenario\scenario.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Kartengenerator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scripte">
<param name="Local" value="sdk\scenario\script.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Materialien">
<param name="Local" value="sdk\material\index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Definition">
<param name="Local" value="sdk\material\c4m.html">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Sprachanpassung">
<!--<param name="Local" value="sdk\lang.html">-->
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Sprachanpassung">
<param name="Local" value="sdk\lang.html">
</OBJECT>
</UL>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script">
<param name="Local" value="sdk\script\index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Funktionen">
<param name="Local" value="sdk\script\Funcs.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Funktionsaufruf">
<param name="Local" value="sdk\script\FuncCall.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="break / continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="for">
<param name="Local" value="sdk\script\for.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Benannte Variablen">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Operatoren">
<param name="Local" value="sdk\script\operatoren.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Datentypen">
<param name="Local" value="sdk\script\Typechecks.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Effekte">
<param name="Local" value="sdk\script\Effects.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scriptspieler">
<param name="Local" value="sdk\script\ScriptPlayers.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Funktionen nach Kategorie">
</OBJECT>
<!-- Insert Functions here 1-->
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Funktionen nach Version">
</OBJECT>
<!-- Insert Functions here 2-->
</UL>
</UL>
</BODY></HTML>

View File

@ -1,220 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#appendto">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="#strict">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="ActMap.txt">
<param name="Name" value="ActMap.txt">
<param name="Local" value="sdk\definition\actmap.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Benannte Variablen">
<param name="Name" value="Benannte Variablen">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="break">
<param name="Name" value="Break / Continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Category">
<param name="Name" value="Objektkategorien">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="CNAT">
<param name="Name" value="CNAT - Contact Attachment">
<param name="Local" value="sdk\definition\cnat.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="continue">
<param name="Name" value="Break / Continue">
<param name="Local" value="sdk\script\BreakContinue.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="DefCore.txt">
<param name="Name" value="DefCore.txt">
<param name="Local" value="sdk\definition\defcore.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Direktiven">
<param name="Name" value="#appendto">
<param name="Local" value="sdk\script\AppendTo.html">
<param name="Name" value="#strict">
<param name="Local" value="sdk\script\Strict.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Entwicklermodus">
<param name="Name" value="Clonk Entwicklermodus">
<param name="Local" value="sdk\index.html">
<param name="Name" value="Die Engine im Entwicklermodus">
<param name="Local" value="sdk\console.html">
<param name="Name" value="Kommandozeilenparameter">
<param name="Local" value="sdk\cmdline.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="for">
<param name="Name" value="Die For-Schleife">
<param name="Local" value="sdk\script\for.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="landscape.txt">
<param name="Name" value="Der dynamische Kartengenerator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Material">
<param name="Name" value="Materialdefinitionen">
<param name="Local" value="sdk\material\index.html">
<param name="Name" value="Materialdefinitionen (C4M)">
<param name="Local" value="sdk\material\c4m.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Landschaftsgenerator">
<param name="Name" value="Der dynamische Kartengenerator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Kartengenerator">
<param name="Name" value="Der dynamische Kartengenerator">
<param name="Local" value="sdk\scenario\MapCreatorS2.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objektdefinitionen">
<param name="Name" value="Objektdefinitionen">
<param name="Local" value="sdk\definition\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objektkategorien">
<param name="Name" value="Objektkategorien">
<param name="Local" value="sdk\definition\category.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Objektscripte">
<param name="Name" value="Objektscripte">
<param name="Local" value="sdk\definition\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="OCF">
<param name="Name" value="Object character flags">
<param name="Local" value="sdk\definition\ocf.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Operatoren">
<param name="Name" value="Operatoren">
<param name="Local" value="sdk\script\operatoren.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Partikel">
<param name="Name" value="Partikel">
<param name="Local" value="sdk\particle\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Procedure (ActMap)">
<param name="Name" value="Prozeduren">
<param name="Local" value="sdk\definition\procedures.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="scenario.txt">
<param name="Name" value="Scenario.txt">
<param name="Local" value="sdk\scenario\scenario.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Script">
<param name="Name" value="Szenarioscripte">
<param name="Local" value="sdk\scenario\script.html">
<param name="Name" value="Objektscripte">
<param name="Local" value="sdk\definition\script.html">
<param name="Name" value="C4Script Dokumentation">
<param name="Local" value="sdk\script\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Spieldaten">
<param name="Name" value="Spieldatenreferenz">
<param name="Local" value="sdk\files.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Szenarien">
<param name="Name" value="Szenarien">
<param name="Local" value="sdk\scenario\index.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Szenarioscripte">
<param name="Name" value="Szenarioscripte">
<param name="Local" value="sdk\scenario\script.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Typpr&uuml;fung">
<param name="Name" value="Datentypen">
<param name="Local" value="sdk\script\Typechecks.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Variablen">
<param name="Name" value="Benannte Variablen">
<param name="Local" value="sdk\script\NamedVar.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Vertices">
<param name="Name" value="Vertices">
<param name="Local" value="sdk\definition\vertices.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Effekte">
<param name="Name" value="Effekte">
<param name="Local" value="sdk\script\Effects.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Scriptspieler">
<param name="Name" value="Scriptspieler">
<param name="Local" value="sdk\script\ScriptPlayers.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="++"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="--"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="~"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="!"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="+"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="*"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="/"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="%"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<<"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">>"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="<="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value=">="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="=="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="!="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="S="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="ne"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="eq"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="&amp;"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="^"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="|"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="&amp;&amp;"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="||"> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="*="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="/="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="%="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="+="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="-="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
<LI> <OBJECT type="text/sitemap"> <PARAM name="Name" value="="> <PARAM name="Name" value="Operatoren"> <PARAM name="Local" value="sdk\script\operatoren.html"> </OBJECT>
</UL>
</BODY></HTML>

View File

@ -1,40 +1,39 @@
[OPTIONS]
Compatibility=1.1 or later
Compiled file=Entwickler.chm
Contents file=Output.hhc
Default topic=sdk\index.html
Display compile progress=No
Full-text search=Yes
Index file=Output.hhk
Language=0x407 Deutsch (Standard)
Title=Clonk Entwicklermodus
[FILES]
images\cpem.gif
images\icon_em_brush.gif
images\icon_em_dynamic.gif
images\icon_em_edit.gif
images\icon_em_exact.gif
images\icon_em_eyedrop.gif
images\icon_em_fill.gif
images\icon_em_line.gif
images\icon_em_play.gif
images\icon_em_rect.gif
images\icon_em_sky.gif
images\icon_em_static.gif
images\icon_em_tunnel.gif
images\icon_image.gif
images\icon_material.gif
images\icon_music.gif
images\icon_object_definition.gif
images\icon_player.gif
images\icon_scenario.gif
images\icon_scenario_folder.gif
images\icon_sound.gif
images\icon_system.gif
images\icon_text.gif
images\icons_em_play.gif
[INFOTYPES]
[OPTIONS]
Compatibility=1.1 or later
Compiled file=Developer.chm
Contents file=Output.hhc
Default topic=sdk\index.html
Display compile progress=No
Full-text search=Yes
Index file=Output.hhk
Language=0x409 Englisch (USA)
Title=Clonk Developer Mode
[FILES]
images\icon_em_brush.gif
images\icon_em_dynamic.gif
images\icon_em_edit.gif
images\icon_em_exact.gif
images\icon_em_eyedrop.gif
images\icon_em_fill.gif
images\icon_em_line.gif
images\icon_em_play.gif
images\icon_em_rect.gif
images\icon_em_sky.gif
images\icon_em_static.gif
images\icon_em_tunnel.gif
images\icon_image.png
images\icon_material.png
images\icon_music.png
images\icon_object_definition.png
images\icon_player.png
images\icon_scenario.png
images\icon_scenario_folder.png
images\icon_sound.png
images\icon_system.png
images\icon_text.png
images\icons_em_play.gif
[INFOTYPES]

View File

@ -1,209 +0,0 @@
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import sys
import xml.sax
import experimental
import gettext
class ClonkEntityResolver(xml.sax.handler.EntityResolver):
def resolveEntity(self, publicId, systemId):
s = 'file:sdk/script/fn/' + systemId
return s
def setrelpath(self, path):
dirlist = path.split('/')
self.relpath = ''
for d in dirlist[1:]:
self.relpath = self.relpath + '../'
class Clonkparser(xml.sax.handler.ContentHandler):
def __init__(self):
self.cats = { }
self.subcats = { }
self.versions = { }
self.extversions = { }
self.files = { }
def setfilename(self, filename):
self.filename = filename
self.htmlfilename = filename[:-3] + 'html'
def _setcurcat(self, curcat):
self.curcat = curcat
if self.curcat not in self.cats:
self.cats[self.curcat] = { }
self.subcats[self.curcat] = { }
def startDocument(self):
self.cur = ""
self.curcat = ""
self.title = ""
self.state = None
def startElement(self, name, attr):
# subcat inside category?
if self.state == 'category' and self.cur != "":
self._setcurcat(self.cur)
self.cur = ""
self.state = name
def characters(self, content):
if self.state in ['category', 'subcat', 'version', 'extversion', 'title']:
self.cur += content
def endElement(self, name):
self.cur = self.cur.strip()
if name == 'category':
if self.cur != "":
self._setcurcat(self.cur)
if self.title == "":
print "WARNING: category before title in " + self.filename
self.cats[self.curcat][self.title] = self.htmlfilename
else:
print "WARNING: possibly broken category in " + self.filename
elif name == 'subcat':
if self.curcat != "" and self.cur != "":
self.cats[self.curcat].pop(self.title, None)
if self.cur not in self.subcats[self.curcat]:
self.subcats[self.curcat][self.cur] = { }
self.subcats[self.curcat][self.cur][self.title] = self.htmlfilename
else:
print "WARNING: possibly broken subcategory in " + self.filename
elif name == 'version':
self.cur = self.cur.upper()
if self.cur != "":
if self.cur not in self.extversions:
self.extversions[self.cur] = { }
if self.cur not in self.versions:
self.versions[self.cur] = { }
self.versions[self.cur][self.title] = self.htmlfilename
elif name == 'extversion':
self.cur = self.cur.upper()
if self.cur != "":
if self.cur not in self.extversions:
self.extversions[self.cur] = { }
if self.cur not in self.versions:
self.versions[self.cur] = { }
self.extversions[self.cur][self.title] = self.htmlfilename
elif name == 'title':
self.title = self.cur
self.files[self.title] = self.htmlfilename
self.cur = ""
self.state = None
def printcontents1(f, _):
f.write('\n <UL>\n')
cats = parser.cats.keys()
cats.sort()
for cat in cats:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(cat) + '">\n' +
' </OBJECT>\n' +
' <UL>\n')
subcats = parser.subcats[cat].keys()
subcats.sort()
for subcat in subcats:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(subcat) + '">\n' +
' </OBJECT>\n' +
' <UL>\n')
titles = parser.subcats[cat][subcat].keys()
titles.sort()
for title in titles:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(title) + '">\n' +
' <param name="Local" value="' +
parser.subcats[cat][subcat][title] + '#' + _(title) + '">\n' +
' </OBJECT>\n')
f.write(' </UL>\n')
titles = parser.cats[cat].keys()
titles.sort()
for title in titles:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(title) + '">\n' +
' <param name="Local" value="' +
parser.cats[cat][title] + '#' + _(title) + '">\n' +
' </OBJECT>\n')
f.write(' </UL>\n')
f.write(' </UL>\n')
def printcontents2(f, _):
f.write(' <UL>\n')
versions = parser.versions.keys()
versions.sort()
for version in versions:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(version) + '">\n' +
' </OBJECT>\n' +
' <UL>\n')
titles = parser.versions[version].keys()
titles.sort()
for title in titles:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(title) + '">\n' +
' <param name="Local" value="' +
parser.versions[version][title] + '#' + _(title) + '">\n' +
' </OBJECT>\n')
titles = parser.extversions[version].keys()
titles.sort()
for title in titles:
f.write(' <LI> <OBJECT type="text/sitemap">\n' +
' <param name="Name" value="' + _(title) + ' (' + _('erweitert') + ')">\n' +
' <param name="Local" value="' +
parser.extversions[version][title] + '#' + _(title) + '">\n' +
' </OBJECT>\n')
f.write(' </UL>\n')
f.write(' </UL>\n')
parser = Clonkparser()
reader = xml.sax.make_parser()
reader.setContentHandler(parser)
reader.setEntityResolver(ClonkEntityResolver())
for filename in sys.argv[1:]:
reader.getEntityResolver().setrelpath(filename)
parser.setfilename(filename)
reader.parse(filename)
if 0:
reader.setContentHandler(experimental.ExperimentParser())
for filename in sys.argv[1:]:
reader.getEntityResolver().setrelpath(filename)
reader.parse(filename)
experimental.Result()
mofile = open("en.mo", "rb")
gt = gettext.GNUTranslations(mofile)
_ = lambda s: s.encode('iso-8859-1')
for f, fin in ((file("chm/de/Output.hhc", "w"), file("Template.hhc", "r")),
(file("chm/en/Output.hhc", "w"), file("Template.en.hhc", "r"))):
for line in fin:
if line.find("<!-- Insert Functions here 1-->") != -1:
printcontents1(f, _)
elif line.find("<!-- Insert Functions here 2-->") != -1:
printcontents2(f, _)
else:
f.write(line)
f.close()
fin.close()
_ = lambda s: gt.ugettext(s).encode('iso-8859-1')
for f, fin in ((file("chm/de/Output.hhp", "w"), file("Template.hhp", "r")),
(file("chm/en/Output.hhp", "w"), file("Template.en.hhp", "r"))):
for line in fin:
if line.find("[INFOTYPES]") != -1:
for filename in sys.argv[1:]:
f.write(filename[:-3].replace("/", "\\") + 'html\r\n')
f.write(line)
f.close()
fin.close()
_ = lambda s: s.encode('iso-8859-1')
for f, fin in ((file("chm/de/Output.hhk", "w"), file("Template.hhk", "r")),
(file("chm/en/Output.hhk", "w"), file("Template.en.hhk", "r"))):
for line in fin:
if line.find("</UL>") != -1:
for title, filename in parser.files.iteritems():
f.write(" <LI> <OBJECT type=\"text/sitemap\">\n" +
" <param name=\"Name\" value=\"" + _(title) + "\">\n" +
" <param name=\"Local\" value=\"" + filename + "#" + _(title) + "\">\n" +
" </OBJECT>\n")
f.write(line)
f.close()
fin.close()
_ = lambda s: gt.ugettext(s).encode('iso-8859-1')

View File

@ -1,212 +0,0 @@
#!/usr/bin/perl -w
use strict;
# A quick and dirty script to turn Microsofts hhc-format to strict html in Clonkstyle
# usage: build_contents.pl infile.hhc > outfile.html
#print header
my $lang = 'de';
$lang = 'en' if $ARGV[0] =~ m!/en/!;
sub printheader {
my $title = shift(@_);
print <<HEADER;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>$title</title>
<link rel=stylesheet type="text/css" href="doku.css">
<style type="text/css">
ul {
list-style:none;
padding:0;
margin:0;
}
ul ul {
padding-left:1em;
}
ul h1, ul h2, ul h3, ul h4, ul h5, ul h6 {
font-size: 100%;
font-weight: bold;
font-style: normal;
margin: 0;
border: none;
padding: 0;
}
ul a {
color: navy;
text-decoration: none;
}
ul a.visited {
color: navy;
text-decoration: none;
}
.collapseimg {
cursor: pointer;
}
.toggleinvisi * .invisi {
display: none;
}
</style>
</head>
<body id='thebody'>
<script type='text/javascript'>
<!--
//# Javascript aus mwForum, www.mwforum.org
function tb(listId) {
var branch = document.getElementById('brn' + listId);
var toggle = document.getElementById('tgl' + listId);
if (!branch || !toggle) return;
if (branch.style.display != 'none' && branch.className!='invisi') {
branch.style.display = 'none';
toggle.src = 'images/bullet_folder.gif';
toggle.title = 'Zweig expandieren';
toggle.alt = '+';
} else {
branch.style.display = '';
toggle.src = 'images/bullet_folder_open.gif';
toggle.title = 'Zweig zusammenklappen';
toggle.alt = '-';
}
branch.className='';
return true;
}
function ta(listId) {
var branch = document.getElementById('brn' + listId);
var divs = document.getElementsByTagName('ul');
var display = '', img = 'bullet_folder_open.gif';
if (branch.style.display != 'none' && branch.className!='invisi') {
display = 'none';
img = 'bullet_folder.gif';
}
for (var i=0; i < divs.length; i++) {
if (divs[i].id.indexOf('brn') == 0) {
divs[i].style.display = display;
divs[i].className='';
}
}
var imgs = document.getElementsByTagName('img');
for (var i=0; i < imgs.length; i++) {
if (imgs[i].id.indexOf('tgl') == 0) imgs[i].src = 'images/' + img;
}
return true;
}
//# Alle als anfaenglich geschlossen markierten Listitems unsichtbar machen
//# Beim Laden sind sie sichtbar, damit die Seite ohne Javascript benutzbar ist
document.getElementById('thebody').className = 'toggleinvisi';
//-->
</script>
HEADER
if ($lang eq 'de') {
print <<HEADER;
<ul class="nav">
<li class="fineprint">Clonk Entwicklermodus Dokumentation</li>
<li><a href="sdk/index.html">Einleitung</a></li>
<li><a href="content.html">Inhalt</a></li>
<li><a href="search.php">Suche</a></li>
<li><a href="sdk/console.html">Engine</a></li>
<li><a href="sdk/cmdline.html">Kommandozeile</a></li>
<li><a href="sdk/files.html">Spieldaten</a></li>
<li><a href="sdk/script/index.html">Script</a></li>
</ul>
<h1>Inhalt</h1>
<div class="text">
<ul>
HEADER
} else {
print <<HEADER;
<ul class="nav"><li class="fineprint">Clonk Developer Mode Documentation</li>
<li><a href="sdk/index.html">Introduction</a></li>
<li><a href="content.html">Contents</a></li>
<li><a href="search.php">Search</a></li>
<li><a href="sdk/console.html">Engine</a></li>
<li><a href="sdk/cmdline.html">Command Line</a></li>
<li><a href="sdk/files.html">Game Data</a></li>
<li><a href="sdk/script/index.html">Script</a></li>
</ul>
<h1>Contents</h1>
<div class="text">
<ul>
HEADER
}
}
# skip strange header
while (<>) { last if (m/\<UL\>/); };
my $name = "";
my $h = 2;
my $ids = 0;
my $tabs;
my $header_was_printed = 0;
while (<>) { # assigns each line in turn to $_
# Assume that html comments appear only as oneliners, multiline comments are a problem for when they are used
next if (/\<\!\-\-/);
# This only works when the title appears before the linktarget
if (m/\<param name="Name" value="([^"]+)"\>/) {
$name=$1;
if (!$header_was_printed) {
printheader($name);
$header_was_printed = 1;
}
}
# Turn the title to a link when there is a target
if (m/\<param name="Local" value="([^"]+)"\>/) {
$name = "<a href=\"$1\">$name</a>";
# Damn windows-backslashes.
$name =~ s,\\,/,g;
}
# indenting
$tabs = "\t" x ($h - 2);
# We have a title?
if ($name) {
# the next list item
if (m/\<LI\>/) {
print "$tabs\t<li><img src='images/bullet_sheet.gif' alt='-'>\n",
"$tabs\t$name</li>\n";
$name="";
}
# the list ends here, no more list items to come
if (m/\<\/UL\>/) {
print "$tabs\t<li><img src='images/bullet_sheet.gif' alt='-'>\n",
"$tabs\t$name</li>\n",
"$tabs</ul>\n",
"$tabs</li>\n";
$name="";
--$h;
}
# a new list which deserves a headline
if (m/\<UL\>/) {
++$ids;
my $x = $h > 2 || "0";
print "$tabs\t<li>\n",
"$tabs\t<h$h><img id='tgl$ids' class='collapseimg' src='images/bullet_folder", $x ? "" : "_open", ".gif'",
" alt='-' onclick='tb($ids)' ondblclick='ta($ids)'>\n",
"$tabs\t$name</h$h>\n",
"$tabs\t<ul id='brn$ids'", $x ? " class='invisi'" : "", ">\n";
$name="";
++$h;
}
} else {
if (m/\<\/UL\>/) {
print "$tabs</ul>\n" if ($h > 1);
print "$tabs</li>\n" if ($h > 2);
--$h;
}
}
}
# some additional text at the bottom, too
print <<FOOTER;
</div>
</body>
</html>
FOOTER

View File

@ -0,0 +1,198 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import xml.sax
import experimental
class ClonkEntityResolver(xml.sax.handler.EntityResolver):
def resolveEntity(self, publicId, systemId):
s = 'file:sdk/script/fn/' + systemId
return s
def setrelpath(self, path):
dirlist = path.split('/')
self.relpath = ''
for d in dirlist[1:]:
self.relpath = self.relpath + '../'
class Clonkparser(xml.sax.handler.ContentHandler):
def __init__(self):
self.cats = { }
self.subcats = { }
self.versions = { }
self.extversions = { }
self.funcs = { }
self.files = { }
def setfilename(self, filename):
self.filename = filename
self.htmlfilename = filename[:-3] + 'html'
def _setcurcat(self, curcat):
self.curcat = curcat
if self.curcat not in self.cats:
self.cats[self.curcat] = { }
self.subcats[self.curcat] = { }
def _addToIndex(self, title, href):
if not title in self.files:
self.files[title] = { self.title: href }
else:
if self.title in self.files[title]:
print "WARNING: duplicate " + title + " in " + href + " and " + self.files[title][self.title]
self.files[title][self.title] = href
def startDocument(self):
self.cur = ""
self.curcat = ""
self.title = ""
self.func = 0
self.state = None
self.id = None
self.idTitle = None
self.idStackdepth = 0
self.Stackdepth = 0
def startElement(self, name, attr):
# subcat inside category?
if self.state == 'category' and self.cur != "":
self._setcurcat(self.cur)
# is func
if name == 'funcs':
self.func = 1
self.cur = unicode("")
self.state = name
self.Stackdepth = self.Stackdepth + 1
if 'id' in attr:
self.id = attr["id"]
self.idTitle = unicode("")
self.idStackdepth = self.Stackdepth
def characters(self, content):
if self.state in ['category', 'subcat', 'version', 'extversion', 'title', 'funcs']:
self.cur += content
if self.id:
self.idTitle += content
def endElement(self, name):
self.cur = self.cur.strip()
if name == 'category':
if self.cur != "":
self._setcurcat(self.cur)
if self.title == "":
print "WARNING: category before title in " + self.filename
self.cats[self.curcat][self.title] = self.htmlfilename
else:
print "WARNING: possibly broken category in " + self.filename
elif name == 'subcat':
if self.curcat != "" and self.cur != "":
self.cats[self.curcat].pop(self.title, None)
if self.cur not in self.subcats[self.curcat]:
self.subcats[self.curcat][self.cur] = { }
self.subcats[self.curcat][self.cur][self.title] = self.htmlfilename
else:
print "WARNING: possibly broken subcategory in " + self.filename
elif name == 'version':
self.cur = self.cur.upper()
if self.cur != "":
if self.cur not in self.extversions:
self.extversions[self.cur] = { }
if self.cur not in self.versions:
self.versions[self.cur] = { }
self.versions[self.cur][self.title] = self.htmlfilename
elif name == 'extversion':
self.cur = self.cur.upper()
if self.cur != "":
if self.cur not in self.extversions:
self.extversions[self.cur] = { }
if self.cur not in self.versions:
self.versions[self.cur] = { }
self.extversions[self.cur][self.title] = self.htmlfilename
elif name == 'funcs':
self.func = 0
elif name == 'title':
self.title = self.cur
if self.func == 1:
self._addToIndex(self.title, self.htmlfilename + '#' + self.title.encode('utf-8'))
self.funcs[self.title] = self.htmlfilename
else:
self._addToIndex(self.title, self.htmlfilename)
self.Stackdepth = self.Stackdepth - 1
if self.id and (self.idStackdepth > self.Stackdepth or name == 'col' or name == 'literal_col'):
title = self.idTitle.strip()
href = self.htmlfilename + '#' + self.id.encode('utf-8')
if title == "":
print "WARNING: id " + self.id.encode('utf-8') + " without text content in " + self.filename
else:
self._addToIndex(title, href)
self.id = None
self.idTitle = None
self.cur = ""
self.state = None
def printfunctions(f, _):
def folder(name):
f.write("<li>" + name + "\n<ul>\n")
def sheet(url, name):
f.write("<li><emlink href='" + url[4:] + "'>" + name + "</emlink></li>\n")
def sheetE(url, name):
f.write("<li><emlink href='" + url[4:] + "'>" + name + "</emlink> (extended)</li>\n")
folder("Functions by Category")
cats = parser.cats.keys()
cats.sort()
for cat in cats:
folder(_(cat))
subcats = parser.subcats[cat].keys()
subcats.sort()
for subcat in subcats:
folder(_(subcat))
titles = parser.subcats[cat][subcat].keys()
titles.sort()
for title in titles:
sheet(parser.subcats[cat][subcat][title] + '#' + _(title), _(title))
f.write('</ul></li>\n')
titles = parser.cats[cat].keys()
titles.sort()
for title in titles:
sheet(parser.cats[cat][title] + '#' + _(title), _(title))
f.write('</ul></li>\n')
f.write('</ul></li>\n')
def printindex(f, _):
def folder(name):
f.write("<li class='index'>" + name + "\n<ul>\n")
def sheet(url, name):
f.write("<li><emlink href='" + url[4:] + "'>" + name.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;') + "</emlink></li>\n")
folder("Index")
titles = parser.files.keys()
titles.sort(key=unicode.lower)
for title in titles:
ctitles = parser.files[title].keys()
ctitles.sort(key=unicode.lower)
if len(ctitles) == 1:
sheet(parser.files[title][ctitles[0]], _(title))
else:
for ctitle in ctitles:
sheet(parser.files[title][ctitle], _(title + " (" + ctitle + ")"))
f.write('</ul></li>\n')
parser = Clonkparser()
reader = xml.sax.make_parser()
reader.setContentHandler(parser)
reader.setEntityResolver(ClonkEntityResolver())
for filename in sys.argv[1:]:
reader.getEntityResolver().setrelpath(filename)
parser.setfilename(filename)
reader.parse(filename)
if 0:
reader.setContentHandler(experimental.ExperimentParser())
for filename in sys.argv[1:]:
reader.getEntityResolver().setrelpath(filename)
reader.parse(filename)
experimental.Result()
_ = lambda s: s.encode('utf-8')
f, fin = (file("sdk/content.xml", "w"), file("sdk/content.xml.in", "r"))
for line in fin:
if line.find("<!-- Insert Functions here -->") != -1:
printfunctions(f, _)
elif line.find("<!-- Insert Index here -->") != -1:
printindex(f, _)
else:
f.write(line)
f.close()
fin.close()

13
docs/build_hhp.py 100644
View File

@ -0,0 +1,13 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
f = file(sys.argv[1], "w")
fin = file(sys.argv[2], "r")
for line in fin:
if line.find("[INFOTYPES]") != -1:
for filename in sys.argv[3:]:
f.write(filename[:-3].replace("/", "\\") + 'html\r\n')
f.write(line)
f.close()
fin.close()

View File

@ -2,8 +2,9 @@
<!ENTITY % text "a | img | emlink | funclink | em | code | strong">
<!ELEMENT funcs (func+, (author, date)+)>
<!ELEMENT funcs ((func | const)+, (author, date)+)>
<!ELEMENT func (title, deprecated?, category, subcat*, version, deprecated?, syntax, desc, remark*, examples?, related?)>
<!ELEMENT const (title, deprecated?, category, subcat*, version, deprecated?, syntax, desc, remark*, examples?, related?)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT category (#PCDATA)>
<!ELEMENT subcat (#PCDATA)>
@ -30,8 +31,9 @@
<!ATTLIST emlink href CDATA #REQUIRED>
<!ELEMENT author (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT doc (title, (h | text | dl | part | code | author | date | img)*)>
<!ELEMENT part (h | text | part | code | dl)*>
<!ELEMENT search EMPTY>
<!ELEMENT doc (title, (h | text | dl | part | code | author | date | img | search)*)>
<!ELEMENT part (h | text | part | code | dl | search)*>
<!ELEMENT br EMPTY>
@ -39,13 +41,16 @@
<!ELEMENT caption (#PCDATA)>
<!ATTLIST caption
id ID #IMPLIED>
<!ELEMENT row (#PCDATA | col)*>
<!ELEMENT row (#PCDATA | col | literal_col)*>
<!ATTLIST row
id ID #IMPLIED>
<!ELEMENT rowh (#PCDATA | col)*>
<!ELEMENT rowh (#PCDATA | col | literal_col)*>
<!ELEMENT col (#PCDATA | %text;)*>
<!ATTLIST col
colspan CDATA #IMPLIED>
<!ELEMENT literal_col (#PCDATA | %text;)*>
<!ATTLIST literal_col
colspan CDATA #IMPLIED>
<!ELEMENT bitmask (#PCDATA)>
<!ELEMENT ul (#PCDATA | li)*>

View File

@ -15,7 +15,7 @@ class clonkXmlMode:
return ['code']
_stuff = ['funclink', 'version', 'extversion', 'rtype', 'author', 'date',
'type', 'code', 'code/i', 'code/b', 'name', 'func/title']
'type', 'code', 'code/i', 'code/b', 'name', 'func/title', 'const/title', 'literal_col']
def _delete_stuff(self, node, msg):
#print "looking at " + str(node.name)
if node and node.children:

View File

@ -1,90 +1,97 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd"/>
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd"/>
<xsl:variable name="procinst" select="processing-instruction('xml-stylesheet')" />
<xsl:param name="relpath" select="substring-after(substring-before($procinst, 'clonk.xsl'),'href=&quot;')" />
<xsl:param name="webnotes" />
<xsl:param name="chm" />
<xsl:param name="fileext" select="'.xml'" />
<xsl:template name="head">
<head>
<link rel="stylesheet" type="text/css">
<xsl:apply-templates mode="head" />
<link rel="stylesheet">
<xsl:attribute name="href"><xsl:value-of select="$relpath" />doku.css</xsl:attribute>
</link>
<title>
<xsl:value-of select="descendant::title" /><xsl:apply-templates select="../deprecated" />
</title>
<xsl:if test="not($chm)">
<link rel="stylesheet" href="http://www.openclonk.org/header/header.css" />
</xsl:if>
<xsl:if test="descendant::table[bitmask]">
<script type="text/javascript">
<script>
<xsl:attribute name="src"><xsl:value-of select="$relpath" />bitmasks.js</xsl:attribute>
</script>
<script type="text/javascript">
var BIT_COUNT = <xsl:value-of select="count(descendant::table[bitmask]/row)" />; // Anzahl der Bits
var PREFIX = "bit"; // Prefix für die numerierten IDs
</script>
</xsl:if>
<xsl:if test="$webnotes">
<xsl:processing-instruction name="php">
$g_page_language = '<xsl:choose><xsl:when test='lang("en")'>english</xsl:when><xsl:otherwise>german</xsl:otherwise></xsl:choose>';
require_once('<xsl:value-of select="$relpath" />../webnotes/core/api.php');
pwn_head();
?</xsl:processing-instruction>
<script type="text/javascript">
function switchLanguage() {
var loc = window.location.href;
if (loc.match(/\/en\//)) loc = loc.replace(/\/en\//, "/de/");
else loc = loc.replace(/\/de\//, "/en/");
window.location = loc;
}
</script>
<script type="text/javascript">
var BIT_COUNT = <xsl:value-of select="count(descendant::table[bitmask]/row)" />; // Anzahl der Bits
var PREFIX = "bit"; // Prefix für die numerierten IDs
</script>
</xsl:if>
</head>
</xsl:template>
<!-- The title content is used for the page title-->
<xsl:template match="title" mode="head">
<title><xsl:value-of select="." /><xsl:apply-templates select="../deprecated" /> -
OpenClonk <xsl:choose>
<xsl:when test='lang("de")'>Referenz</xsl:when>
<xsl:otherwise>Reference</xsl:otherwise>
</xsl:choose>
</title>
</xsl:template>
<xsl:template match="script">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
<xsl:template match="func|const" mode="head">
<xsl:apply-templates mode="head" />
</xsl:template>
<xsl:template match="*" mode="head" />
<xsl:template match="title" />
<xsl:template match="deprecated">
(<xsl:choose><xsl:when test='lang("en")'>deprecated</xsl:when><xsl:otherwise>veraltet</xsl:otherwise></xsl:choose>)
<xsl:template name="header">
<xsl:apply-templates select="document('header.xml')" />
</xsl:template>
<xsl:template match="header|header//*|header//@*">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
<xsl:template match="funcs">
<xsl:template match="deprecated">
(<xsl:choose><xsl:when test='lang("de")'>veraltet</xsl:when><xsl:otherwise>deprecated</xsl:otherwise></xsl:choose>)
</xsl:template>
<xsl:template match="doc|funcs">
<html>
<xsl:call-template name="head" />
<body>
<xsl:call-template name="nav" />
<xsl:for-each select="func">
<xsl:apply-templates select="." />
</xsl:for-each>
<xsl:apply-templates select="author" />
<xsl:if test="$webnotes">
<xsl:processing-instruction name="php">
pwn_body(basename (dirname(__FILE__)) . basename(__FILE__,".html"), $_SERVER['SCRIPT_NAME']);
?</xsl:processing-instruction>
</xsl:if>
<xsl:call-template name="nav" />
<xsl:if test="$chm">
<xsl:attribute name="id">chm</xsl:attribute>
<xsl:apply-templates />
</xsl:if>
<xsl:if test="not($chm)">
<xsl:call-template name="header" />
<div id="iframe"><iframe>
<xsl:attribute name="src"><xsl:value-of select="$relpath" />sdk/content<xsl:value-of select="$fileext" /></xsl:attribute>
</iframe></div>
<div id="content">
<xsl:apply-templates />
</div>
</xsl:if>
</body>
</html>
</xsl:template>
<xsl:template match="doc">
<xsl:template match="toc">
<html>
<xsl:call-template name="head" />
<body>
<xsl:call-template name="nav" />
<div id="toc">
<xsl:apply-templates />
<xsl:if test="$webnotes">
<xsl:processing-instruction name="php">
pwn_body(basename (dirname(__FILE__)) . basename(__FILE__,".html"), $_SERVER['SCRIPT_NAME']);
?</xsl:processing-instruction>
</xsl:if>
<xsl:call-template name="nav" />
</div>
</body>
</html>
</xsl:template>
<xsl:template match="func">
<xsl:template match="func|const">
<h1>
<xsl:attribute name="id"><xsl:value-of select="title" /></xsl:attribute>
<xsl:value-of select="title" /><xsl:apply-templates select="deprecated" />
@ -95,13 +102,16 @@
<xsl:apply-templates select="version" />
</div>
<h2><xsl:choose>
<xsl:when test='lang("en")'>Description</xsl:when>
<xsl:otherwise>Beschreibung</xsl:otherwise>
<xsl:when test='lang("de")'>Beschreibung</xsl:when>
<xsl:otherwise>Description</xsl:otherwise>
</xsl:choose></h2>
<div class="text"><xsl:apply-templates select="desc" /></div>
<xsl:apply-templates select="syntax" />
<xsl:for-each select="syntax"><xsl:for-each select="params">
<h2>Parameter<xsl:if test="count(param)!=1 and lang('en')">s</xsl:if></h2>
<h2><xsl:choose>
<xsl:when test='lang("de")'>Parameter</xsl:when>
<xsl:otherwise>Parameter<xsl:if test="count(param)!=1">s</xsl:if></xsl:otherwise>
</xsl:choose></h2>
<dl><xsl:for-each select="param">
<dt><xsl:value-of select="name" />: </dt>
<dd><div class="text">
@ -113,16 +123,16 @@
<xsl:for-each select="remark">
<xsl:if test="generate-id(.)=generate-id(../remark[1])">
<h2><xsl:choose>
<xsl:when test='lang("en")'>Remark<xsl:if test="count(../remark)!=1">s</xsl:if></xsl:when>
<xsl:otherwise>Anmerkung<xsl:if test="count(../remark)!=1">en</xsl:if></xsl:otherwise>
<xsl:when test='lang("de")'>Anmerkung<xsl:if test="count(../remark)!=1">en</xsl:if></xsl:when>
<xsl:otherwise>Remark<xsl:if test="count(../remark)!=1">s</xsl:if></xsl:otherwise>
</xsl:choose></h2>
</xsl:if>
<div class="text"><xsl:apply-templates /></div>
</xsl:for-each>
<xsl:for-each select="examples">
<h2><xsl:choose>
<xsl:when test='lang("en")'>Example<xsl:if test="count(example)!=1">s</xsl:if></xsl:when>
<xsl:otherwise>Beispiel<xsl:if test="count(example)!=1">e</xsl:if></xsl:otherwise>
<xsl:when test='lang("de")'>Beispiel<xsl:if test="count(example)!=1">e</xsl:if></xsl:when>
<xsl:otherwise>Example<xsl:if test="count(example)!=1">s</xsl:if></xsl:otherwise>
</xsl:choose></h2>
<xsl:apply-templates />
</xsl:for-each>
@ -135,7 +145,7 @@
<span class="type"><xsl:apply-templates select="rtype" /></span>
<xsl:if test="not(contains(rtype[1],'&amp;'))"><xsl:text>&#160;</xsl:text></xsl:if>
<xsl:value-of select="../title" />
(<xsl:apply-templates select="params" />);
<xsl:if test="parent::func">(<xsl:apply-templates select="params" />);</xsl:if>
</div>
</xsl:template>
@ -157,8 +167,8 @@
<xsl:template match="category">
<b><xsl:choose>
<xsl:when test='lang("en")'>Category: </xsl:when>
<xsl:otherwise>Kategorie: </xsl:otherwise>
<xsl:when test='lang("de")'>Kategorie: </xsl:when>
<xsl:otherwise>Category: </xsl:otherwise>
</xsl:choose></b>
<xsl:value-of select="." /><xsl:apply-templates select="../subcat" />
</xsl:template>
@ -169,19 +179,19 @@
<xsl:template match="version">
<b><xsl:choose>
<xsl:when test='lang("en")'>Since engine version: </xsl:when>
<xsl:otherwise>Ab Engineversion: </xsl:otherwise>
<xsl:when test='lang("de")'>Ab Engineversion: </xsl:when>
<xsl:otherwise>Since engine version: </xsl:otherwise>
</xsl:choose></b>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="extversion">
<xsl:choose>
<xsl:when test='lang("en")'>
(extended in <xsl:value-of select="." />)
<xsl:when test='lang("de")'>
(erweitert ab <xsl:value-of select="." />)
</xsl:when>
<xsl:otherwise>
(erweitert ab <xsl:value-of select="." />)
(extended in <xsl:value-of select="." />)
</xsl:otherwise>
</xsl:choose>
</xsl:template>
@ -204,7 +214,7 @@
<xsl:template match="doc/h">
<h1><xsl:apply-templates select="@id|node()" /></h1>
</xsl:template>
<xsl:template match="doc/part/h">
<xsl:template match="doc/part/h|toc/h">
<h2><xsl:apply-templates select="@id|node()" /></h2>
</xsl:template>
<xsl:template match="doc/part/part/h">
@ -214,13 +224,47 @@
<h4><xsl:apply-templates select="@id|node()" /></h4>
</xsl:template>
<!-- copy img, a, em and br literally -->
<xsl:template match="img|a|em|strong|br|code/i|code/b">
<!-- content.xml -->
<xsl:template match="toc//li">
<xsl:copy>
<!-- including every attribute -->
<xsl:for-each select="@*|node()">
<xsl:for-each select="@*">
<xsl:copy />
</xsl:for-each>
<xsl:choose><xsl:when test="ul">
<xsl:if test="ancestor::ul/ancestor::ul/ancestor::ul">
<xsl:attribute name="class">invisi</xsl:attribute>
</xsl:if>
<img class='collapseimg'>
<xsl:attribute name="src">../images/<xsl:choose>
<xsl:when test="ancestor::ul/ancestor::ul/ancestor::ul">bullet_folder.png</xsl:when>
<xsl:otherwise>bullet_folder_open.png</xsl:otherwise>
</xsl:choose></xsl:attribute>
<xsl:attribute name="alt"><xsl:choose>
<xsl:when test="ancestor::ul/ancestor::ul/ancestor::ul">+</xsl:when>
<xsl:otherwise>-</xsl:otherwise>
</xsl:choose></xsl:attribute>
<xsl:attribute name="id">tgl<xsl:number level="any" count="ul"/></xsl:attribute>
<xsl:attribute name="onclick">tb(<xsl:number level="any" count="ul"/>)</xsl:attribute>
<xsl:attribute name="ondblclick">ta(<xsl:number level="any" count="ul"/>)</xsl:attribute>
</img>
</xsl:when><xsl:otherwise>
<img src='../images/bullet_sheet.png' alt='' />
</xsl:otherwise></xsl:choose>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<!-- copy some HTML elements literally -->
<xsl:template match="img|a|em|strong|br|code/i|code/b|ul|li">
<xsl:copy>
<!-- including every attribute -->
<!-- <xsl:for-each select="@*|node()">
<xsl:copy />
</xsl:for-each>-->
<xsl:for-each select="@*">
<xsl:copy />
</xsl:for-each>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
@ -237,8 +281,8 @@
<xsl:template match="related">
<div class="text">
<b><xsl:choose>
<xsl:when test='lang("en")'>See also: </xsl:when>
<xsl:otherwise>Siehe auch: </xsl:otherwise>
<xsl:when test='lang("de")'>Siehe auch: </xsl:when>
<xsl:otherwise>See also: </xsl:otherwise>
</xsl:choose></b>
<xsl:for-each select="*">
<xsl:sort />
@ -267,6 +311,9 @@
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:if test="/toc">
<xsl:attribute name="target">_top</xsl:attribute>
</xsl:if>
<xsl:value-of select="$text" />
</a>
</xsl:template>
@ -276,16 +323,6 @@
</xsl:template>
<xsl:template match="date" />
<xsl:template match="ul">
<ul>
<xsl:apply-templates />
</ul>
</xsl:template>
<xsl:template match="li">
<li><xsl:apply-templates /></li>
</xsl:template>
<xsl:template match="table">
<table>
@ -301,7 +338,7 @@
<xsl:attribute name="onClick">Switch(<xsl:value-of select="position() - 1" />);</xsl:attribute>
</xsl:if>
<xsl:if test="position() mod 2=0"><xsl:attribute name="class">dark</xsl:attribute></xsl:if>
<xsl:for-each select="col">
<xsl:for-each select="col|literal_col">
<td><xsl:apply-templates select="@colspan|node()"/></td>
</xsl:for-each>
</tr>
@ -315,6 +352,14 @@
<caption><xsl:apply-templates select="@id|node()" /></caption>
</xsl:template>
<xsl:template match="search">
<form action="../search.php" method="get">
<input name="search" type="text"></input>
<input type="submit" name="func" value="Search"></input>
<input type="submit" name="fulltext" value="Fulltext"></input>
</form>
</xsl:template>
<xsl:template match="table/bitmask">
<xsl:value-of select="." />:
<input id="input" onKeyUp="Calc();" name="input" type="text">
@ -338,7 +383,7 @@
<xsl:template match="rowh">
<thead><tr>
<xsl:apply-templates select="@id" />
<xsl:for-each select="col">
<xsl:for-each select="col|literal_col">
<th><xsl:apply-templates select="@colspan|node()"/></th>
</xsl:for-each>
</tr></thead>
@ -346,66 +391,6 @@
<xsl:template match="@colspan">
<xsl:attribute name="colspan"><xsl:value-of select="." /></xsl:attribute>
</xsl:template>
<xsl:template name="nav"><xsl:if test="$webnotes">
<ul class="nav">
<li class="fineprint"><xsl:choose>
<xsl:when test='lang("en")'>Clonk Developer Mode Documentation</xsl:when>
<xsl:otherwise>Clonk Entwicklermodus Dokumentation</xsl:otherwise>
</xsl:choose></li>
<li class="switchlang"><xsl:choose>
<xsl:when test='lang("en")'><a href='javascript:switchLanguage()'><img src='/deco/dco_de_sml.gif' alt='German' border='0'/></a></xsl:when>
<xsl:otherwise><a href='javascript:switchLanguage()'><img src='/deco/dco_en_sml.gif' alt='English' border='0'/></a></xsl:otherwise>
</xsl:choose></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'index.html'" />
<xsl:with-param name="text"><xsl:choose>
<xsl:when test='lang("en")'>Introduction</xsl:when>
<xsl:otherwise>Einleitung</xsl:otherwise>
</xsl:choose></xsl:with-param>
</xsl:call-template></li>
<li><a>
<xsl:attribute name="href"><xsl:value-of select="$relpath" />content.html</xsl:attribute>
<xsl:choose>
<xsl:when test='lang("en")'>Contents</xsl:when>
<xsl:otherwise>Inhalt</xsl:otherwise>
</xsl:choose>
</a></li>
<li><a>
<xsl:attribute name="href"><xsl:value-of select="$relpath" />search.php</xsl:attribute>
<xsl:choose>
<xsl:when test='lang("en")'>Search</xsl:when>
<xsl:otherwise>Suche</xsl:otherwise>
</xsl:choose>
</a></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'console.html'" />
<xsl:with-param name="text" select="'Engine'" />
</xsl:call-template></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'cmdline.html'" />
<xsl:with-param name="text"><xsl:choose>
<xsl:when test='lang("en")'>Command Line</xsl:when>
<xsl:otherwise>Kommandozeile</xsl:otherwise>
</xsl:choose></xsl:with-param>
</xsl:call-template></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'files.html'" />
<xsl:with-param name="text"><xsl:choose>
<xsl:when test='lang("en")'>Game Data</xsl:when>
<xsl:otherwise>Spieldaten</xsl:otherwise>
</xsl:choose></xsl:with-param>
</xsl:call-template></li>
<li><xsl:call-template name="link">
<xsl:with-param name="href" select="'script/index.html'" />
<xsl:with-param name="text" select="'Script'" />
</xsl:call-template></li>
<!--<li><a><xsl:attribute name="href">index.xml</xsl:attribute>.</a></li>
<xsl:if test="starts-with($relpath, '../..')">
<li><a><xsl:attribute name="href">../index.xml</xsl:attribute>..</a></li>
</xsl:if>-->
</ul>
</xsl:if></xsl:template>
<!-- some code blocks are made into paragraphs -->
<xsl:template match="example/code|part/code|doc/code|dd/code">
@ -532,7 +517,7 @@
<xsl:template name="color2">
<xsl:param name="s" select="." />
<!-- the list of keywords -->
<xsl:param name="t" select="'#include|#strict|#appendto|public|private|protected|global|static|var|local|const|int|id|object|string|bool|return|goto|if|else|break|continue|while|for|func|true|false|'" />
<xsl:param name="t" select="'#include|#appendto|public|private|protected|global|static|var|local|const|int|proplist|object|array|string|bool|any|return|if|else|break|continue|while|for|func|true|false|nil|'" />
<xsl:param name="w" select="substring-before($t, '|')" />
<!-- text before the keyword -->
<xsl:variable name="l" select="substring-before($s, $w)" />
@ -547,7 +532,7 @@
<xsl:value-of select="$s" />
</xsl:when>
<!-- only highlight when the text was found and is not surrounded by other text -->
<xsl:when test="($l or $r) and (not(contains('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', $cb)) or $cb='') and (not(contains('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', $ca)) or $ca='')">
<xsl:when test="(contains($s, $w)) and (not(contains('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', $cb)) or $cb='') and (not(contains('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', $ca)) or $ca='')">
<!-- look for the next keyword in the preceding text -->
<xsl:call-template name="color2">
<xsl:with-param name="s" select="$l" />

18614
docs/de.po 100644

File diff suppressed because it is too large Load Diff

View File

@ -1,185 +1,246 @@
body {
margin: 0;
font-family: "Dejavu Sans", "BitStream Vera Sans", Verdana, sans-serif;
background-color: white;
color: black;
margin: 0;
font-size: small;
font-family: Verdana, Arial, 'Trebuchet MS';
background-color: white;
color: black;
font-size: small;
line-height: 1.6em;
}
body, table caption, h3, dt, div.fnsyntax {
font-size: 13px;
line-height: 18px;
#iframe {
position: absolute; top: 145px; width: 300px; border: 0; bottom: 0; overflow: auto;
height: auto;
display: block;
}
.text, div.fnsyntax, pre.code, ul, ol {
margin-bottom: 18px;
margin-top: 0;
#iframe > iframe {
border: 0; overflow: auto;
height: 100%;
width: 100%;
display: block;
}
h3, h4, h5, h6, .text, div.fnsyntax, pre.code, dt, ul, ol {
margin-left: 18px;
margin-right: 2%;
#toc {
padding-left: 1em;
}
#toc h2 {
margin-bottom: 10px;
}
#chm {
margin: 1em;
}
#content {
padding: 0 1em;
margin: 0 auto;
position: absolute; top: 145px; left: 300px; right: 0; bottom: 0; overflow: auto;
}
.text, pre.code, ul, ol, dl {
padding-top: 5px;
padding-bottom: 5px;
margin: 0;
}
/* indent the parameters of the function if it's broken into multiple lines*/
div.fnsyntax {
text-indent: -1em;
margin-left: 1em;
}
div.example {
margin-bottom: 36px;
margin-top: 12px;
margin-bottom: 36px;
}
dd {
margin: 0;
margin: 0;
}
img {
margin-right: 6px;
vertical-align: text-bottom;
.text img, dt img {
vertical-align: middle;
margin-right: 6px;
}
img#cpem {
float: left;
margin: 0 6px 6px 18px;
img.cpem {
float: left;
margin: 12px;
}
h1, h2 {
font-weight: bold;
padding: 0 2% 0 18px;
margin-bottom: 18px;
text-indent: 0;
border-bottom: 1px solid #667abe;
/*CR-red: #c91603*/
h1, h2, h3, h4, h5, h6 {
color:#222222;
}
h1 {
font-size: 24px;
line-height: 35px;
margin-top: 18px;
font-size: 2em;
font-weight: normal;
margin-top: 1.32em;
padding: 0;
margin: 0;
padding: .35em .1em .3em 0;
}
h2 {
font-size: 18px;
line-height: 17px;
margin-top: 0;
font-weight: normal;
font-size: 140%;
margin: 0;
padding: 0;
margin-top: 0.6em;
margin-bottom: 0.2em;
padding: .35em .1em 0 0;
border-bottom: 1px solid #eee;
}
h3, dt, table caption {
text-align: left;
font-weight: bold;
margin-bottom: 0;
margin-top: 0;
}
h4 {
font-size: 12px;
font-weight: bold;
line-height: 18px;
h3, table caption, dt {
text-align: left;
font-weight: bold;
font-size:100%;
margin: 0;
margin-top:0.6em;
padding:0;
}
table {
border: 1px solid #667abe;
border-spacing: 0;
border-collapse: collapse;
font-size: 11px;
margin-bottom: 17px;
margin-top: 0;
border: 1px solid #667abe;
border-spacing: 0;
border-collapse: collapse;
font-size: 11px;
margin-bottom: 17px;
margin-top: 0;
}
th, td {
padding: 0 6px;
text-align: left;
vertical-align: top;
margin: 0;
border: 0;
padding: 0 6px;
text-align: left;
vertical-align: top;
margin: 0;
border: 0;
}
th {
font-weight: bold;
font-weight: bold;
}
tr.dark, th {
color: black;
background-color: #f4f4f0;
color: black;
background-color: #f4f4f0;
}
tr.mark, tr.darkmark {
background-color: Highlight;
color: HighlightText;
}
input {
border-width: 2px;
line-height: 18px;
padding-top: 1px;
padding-bottom: 0;
margin: 0;
vertical-align: 2px;
}
div.fnsyntax {
text-indent: -18px;
margin-left: 36px;
background-color: Highlight;
color: HighlightText;
}
code, div.fnsyntax, pre.code {
font-family: "Dejavu Sans Mono", "BitStream Vera Sans Mono", Consolas, "Lucida Console", Monaco, monospace;
font-family: "Dejavu Sans Mono", "BitStream Vera Sans Mono", Consolas, "Lucida Console", Monaco, monospace;
}
pre.code {
display: block;
white-space: -moz-pre-wrap; /* Gecko */
white-space: -pre-wrap; /* Opera 4 - 6 */
white-space: -o-pre-wrap; /* Opera >= 7 */
white-space: pre-wrap; /* CSS2.1 */
word-wrap: break-word; /* IE 5.5+ */
padding: 8px;
border: 1px dashed #667abe;
color: black;
background-color: #f4f4f0;
display: block;
white-space: pre-wrap; /* CSS2.1 */
word-wrap: break-word; /* IE 5.5+ */
padding: 8px;
border: 1px dashed #667abe;
color: black;
background-color: #f4f4f0;
}
span.type, code b, pre.code b {
font-weight: bold;
color: navy;
background-color: transparent;
font-weight: bold;
color: navy;
background-color: transparent;
}
code i.string, pre.code i.string {
font-style: normal;
color: green;
background-color: transparent;
font-style: normal;
color: green;
background-color: transparent;
}
div.author {
text-align: right;
font-style: italic;
margin-right: 36px;
text-align: right;
font-style: italic;
}
ul.contents, ul.contents ul {
list-style: none;
padding: 0;
margin: 0;
}
ul.contents ul {
padding-left: 1.5em;
}
ul.contents li {
font-weight: bold;
padding: 0; margin: 0; position: relative;
}
ul.contents li a {
font-weight: normal;
}
ul.contents img {
vertical-align: middle;
margin-right: 4px;
}
ul.contents a {
color: navy;
text-decoration: none;
}
ul.contents a.visited {
color: navy;
text-decoration: none;
}
ul.contents ul li:first-child::before,
ul.contents ul li:not(:last-child)::after {
position: absolute;
top: 0;
left: -1em;
width: 0.5em;
border-style: none none solid solid;
content: '';
border-width: 0.1em;
border-color: #ccc;
}
ul.contents ul li:first-child::before {
height: 0.8em;
}
ul.contents ul li:not(:last-child)::after {
bottom: -0.8em;
}
.collapseimg {
cursor: pointer;
}
.toggleinvisi li.invisi > ul {
display: none;
}
ul.nav {
border-bottom: 1px solid #667abe;
border-top: 1px solid #667abe;
padding: 5px 18px 5px 18px;
margin: 6px 0 -1px 0;
text-align: center;
font-size: 11px;
line-height: 18px;
background: #333 url(images/cellpic_nav.gif);
text-align: center;
margin-bottom: 18px;
font-size: 11px;
background-repeat: repeat;
line-height: 27px;
padding: 0;
white-space: nowrap;
}
ul.nav li {
margin: 0 9px 0 9px;
display: inline;
display: inline;
}
ul.nav a {
color: #ccc;
padding: 6px 10px;
text-decoration: none;
}
ul.nav li.fineprint {
float: left;
color: #999999;
margin: 0;
ul.nav a:hover, ul.nav a:hover {
background: #333 url(images/stripe-wide.gif) left repeat-x;
}
ul.nav li.switchlang {
float: right;
color: #999999;
margin: 0;
ul.nav li.switchlang img {
margin: 0;
}
ul.nav a, ul.nav a.visited {
color: navy;
text-decoration: none;
}

20340
docs/en.po

File diff suppressed because it is too large Load Diff

View File

@ -10,9 +10,10 @@ import xml.sax
codeparents = {}
allcode = {}
c4scripter = file("Functions.txt", 'w')
c4scripter = None
class ExperimentParser(xml.sax.handler.ContentHandler):
def __init__(self):
global c4scripter
self.statestack = []
self.parameter = ""
self.type = ""
@ -21,6 +22,7 @@ class ExperimentParser(xml.sax.handler.ContentHandler):
self.title = ""
self.cur = ""
self.desc = ""
c4scripter = file("Functions.txt", 'w')
def startElement(self, name, attr):
self.statestack.append(name)
if name == 'params':

View File

@ -2,5 +2,9 @@
<!DOCTYPE doc SYSTEM "../clonk.dtd">
<doc>
<!-- Zum markieren von veralteten Funktionen im Inhaltsverzeichnis -->
<text>erweitert</text>
</doc>
<text>extended</text>
<ul><li>Functions by Category
<ul></ul></li>
<li>Functions by Version
<ul></ul></li></ul>
</doc>

84
docs/header.xml 100644
View File

@ -0,0 +1,84 @@
<!-- this needs to be valid xml for clonk.xsl to work.
Unfortunately, xml documents can only have one root, so there needs to be a dummy element.
header is an appropiate html element, so it's arbitrarily chosen.
clonk.xsl also uses it to match the processing for it. -->
<header>
<!-- header -->
<div id="nav_header">
<!-- logo -->
<div id="nav_logo">
<a href="http://wiki.openclonk.org/"><img src="http://www.openclonk.org/header/logo.png" alt="OpenClonk"/></a>
</div>
</div>
<!-- Navigation Menu -->
<div id="nav_navigation">
<!-- search -->
<div id="nav_search">
<form action="http://www.openclonk.org/header/search.php" id="searchform" method="get"><div>
search <input id="searchInput" name="s" type="text" value="" /> in the
<select name="p">
<option value="blog">blog</option>
<option selected="selected" value="functions">c4script function list</option>
<option value="docs">c4script reference</option>
<option value="functionsDE">c4script function list (DE)</option>
<option value="docsDE">c4script reference (DE)</option>
<option value="bugtrack">bugtracker</option>
<option value="forum">forum</option>
<option value="hg">hg changelog</option>
<option value="hg-resources">hg resources changelog</option>
<option value="wiki">website</option>
</select>
<input type='submit' class="nav_searchButton" id="searchButton" value="Go" title="Search" />
</div></form>
</div>
<div style="float:right">
<ul>
<li>
<a href="http://docs.openclonk.org/en/sdk/" target="_top"><img src="http://forum.openclonk.org/flags/gb.png"/></a>
</li>
<li>
<a href="http://docs.openclonk.org/de/sdk/" target="_top"><img src="http://forum.openclonk.org/flags/de.png"/></a>
</li>
</ul>
</div>
<ul>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://www.openclonk.org/">Home</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://wiki.openclonk.org/w/FAQ">FAQ</a></li>
<li><a href="http://wiki.openclonk.org/w/About">About</a></li>
</ul>
</li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://www.openclonk.org/download/">Download</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://www.openclonk.org/download/">Latest Release</a></li>
<li><a href="http://www.openclonk.org/nightly-builds">Nightly builds</a></li>
</ul>
</li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://forum.openclonk.org/">Forum</a><!--[if lt IE 9]></span><![endif]--></li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://wiki.openclonk.org/w/Development">Development</a><!--[if lt IE 9]></span><![endif]--> <ul>
<li><a href="http://bugs.openclonk.org">Bugtracker</a></li>
<li><a href="http://hg.openclonk.org/openclonk/">Repository</a></li>
<li><a href="http://hg.openclonk.org/openclonk-resources/">Resource Repository</a></li>
</ul>
</li>
<li><a class="current" href="http://wiki.openclonk.org/w/C4Script_Documentation">Documentation</a> <ul>
<li><a href="http://docs.openclonk.org/en/sdk/">C4Script reference</a></li>
</ul>
</li>
<li><!--[if lt IE 9]><span><![endif]--><a href="http://blog.openclonk.org/">Blog</a><!--[if lt IE 9]></span><![endif]--></li>
</ul>
</div>
</header>

55
docs/hhc.xsl 100644
View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="cp1252" doctype-public="-//IETF//DTD HTML//EN" />
<!-- Take care: Apparently microsofts html help compiler doesn't parse the html properly,
and needs at least some of the whitespace added with xsl:text below, and perhaps that there not be any in other places. -->
<xsl:template match="toc">
<HTML>
<HEAD>
</HEAD>
<BODY>
<OBJECT type="text/site properties">
<param name="Window Styles" value="0x800025" />
</OBJECT>
<xsl:apply-templates />
</BODY>
</HTML>
</xsl:template>
<xsl:template match="ul"><xsl:text>
</xsl:text>
<UL>
<xsl:apply-templates />
</UL>
</xsl:template>
<xsl:template match="li[@class='index']">
</xsl:template>
<xsl:template match="li">
<LI><xsl:text> </xsl:text><OBJECT type="text/sitemap"><xsl:text>
</xsl:text>
<param name="Name">
<xsl:attribute name="value"><xsl:for-each select="text()|emlink/text()"><xsl:value-of select="normalize-space(string(.))" /></xsl:for-each></xsl:attribute>
</param><xsl:text>
</xsl:text>
<xsl:if test="emlink/@href"><param name="Local">
<xsl:attribute name="value">sdk\<xsl:value-of select="translate(string(emlink/@href), '/', '\\')" /></xsl:attribute>
</param><xsl:text>
</xsl:text></xsl:if>
</OBJECT>
<xsl:apply-templates />
</LI>
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates select="*" />
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>

44
docs/hhk.xsl 100644
View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="cp1252" doctype-public="-//IETF//DTD HTML//EN" />
<!-- Take care: Apparently microsofts html help compiler doesn't parse the html properly,
and needs at least some of the whitespace added with xsl:text below, and perhaps that there not be any in other places. -->
<xsl:template match="toc">
<HTML>
<HEAD>
</HEAD>
<BODY>
<UL>
<xsl:apply-templates select=".//li[@class='index']/ul/li" />
</UL>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="li">
<LI><xsl:text> </xsl:text><OBJECT type="text/sitemap"><xsl:text>
</xsl:text>
<param name="Name">
<xsl:attribute name="value"><xsl:for-each select="text()|emlink/text()"><xsl:value-of select="normalize-space(string(.))" /></xsl:for-each></xsl:attribute>
</param><xsl:text>
</xsl:text>
<xsl:if test="emlink/@href"><param name="Local">
<xsl:attribute name="value">sdk\<xsl:value-of select="translate(string(emlink/@href), '/', '\\')" /></xsl:attribute>
</param><xsl:text>
</xsl:text></xsl:if>
</OBJECT>
<xsl:apply-templates />
</LI>
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates select="*" />
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,353 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="599.47015"
height="187.92317"
id="svg2"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="animstack2.svg"
inkscape:export-filename="/home/ck/Desktop/animstack.png"
inkscape:export-xdpi="90.079544"
inkscape:export-ydpi="90.079544">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart"
style="overflow:visible">
<path
id="path3867"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible">
<path
id="path3870"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective3602"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3646"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3646-7"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3708"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3772"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3796"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4314"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-1"
style="overflow:visible">
<path
id="path3870-5"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<inkscape:perspective
id="perspective4908"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-6"
style="overflow:visible">
<path
id="path3867-3"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<inkscape:perspective
id="perspective5516"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-1-4"
style="overflow:visible">
<path
id="path3870-5-5"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="232.20208"
inkscape:cy="82.427533"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="725"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(229.06069,-97.879494)">
<g
id="g5536"
transform="matrix(0.48585493,0,0,0.48585493,-117.77042,50.324259)">
<g
transform="translate(30.630173,0)"
id="g3633">
<rect
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect2816"
width="73.888489"
height="73.888489"
x="70.874451"
y="100.37949" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
x="95.299164"
y="151.62061"
id="text3590"><tspan
sodipodi:role="line"
id="tspan3592"
x="95.299164"
y="151.62061">5</tspan></text>
</g>
<g
transform="translate(76.897738,224.28571)"
id="g3684">
<path
sodipodi:type="arc"
style="fill:none;stroke:#000000;stroke-width:6.31386852;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path3622-4"
sodipodi:cx="380.71429"
sodipodi:cy="357.36218"
sodipodi:rx="177.85715"
sodipodi:ry="59.285713"
d="m 558.57144,357.36218 c 0,32.7426 -79.62936,59.28572 -177.85715,59.28572 -98.22779,0 -177.85714,-26.54312 -177.85714,-59.28572 0,-32.74259 79.62935,-59.28571 177.85714,-59.28571 98.22779,0 177.85715,26.54312 177.85715,59.28571 z"
transform="matrix(0.79190751,0,0,0.79190751,-15.776223,-72.064185)" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
x="225.29436"
y="225.84572"
id="text3624-0"><tspan
sodipodi:role="line"
id="tspan3626-1"
x="225.29436"
y="225.84572">Stand</tspan></text>
</g>
<g
transform="translate(-60,88.571429)"
id="g3689">
<path
sodipodi:type="arc"
style="fill:none;stroke:#000000;stroke-width:6.31386852;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path3622-7"
sodipodi:cx="380.71429"
sodipodi:cy="357.36218"
sodipodi:rx="177.85715"
sodipodi:ry="59.285713"
d="m 558.57144,357.36218 c 0,32.7426 -79.62936,59.28572 -177.85715,59.28572 -98.22779,0 -177.85714,-26.54312 -177.85714,-59.28572 0,-32.74259 79.62935,-59.28571 177.85714,-59.28571 98.22779,0 177.85715,26.54312 177.85715,59.28571 z"
transform="matrix(0.79190751,0,0,0.79190751,-327.20479,63.650101)" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
x="-74.190842"
y="361.56"
id="text3624-8"><tspan
sodipodi:role="line"
id="tspan3626-0"
x="-74.190842"
y="361.56">Walk</tspan></text>
</g>
<path
sodipodi:nodetypes="cc"
id="path3762"
d="m 138.44887,237.41432 0,-55.35168"
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow1Mend-1)" />
<path
id="path3786"
d="m 15.256528,318.61275 -74.086113,71.25176"
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:none" />
<path
id="path3786-4"
d="m 261.92136,318.5892 74.1619,70.56979"
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:none" />
<path
transform="matrix(0.79190751,0,0,0.79190751,-163.04164,2.2302486)"
d="m 558.57144,357.36218 c 0,32.7426 -79.62936,59.28572 -177.85715,59.28572 -98.22779,0 -177.85714,-26.54312 -177.85714,-59.28572 0,-32.74259 79.62935,-59.28571 177.85714,-59.28571 98.22779,0 177.85715,26.54312 177.85715,59.28571 z"
sodipodi:ry="59.285713"
sodipodi:rx="177.85715"
sodipodi:cy="357.36218"
sodipodi:cx="380.71429"
id="path3622-9"
style="fill:none;stroke:#484848;stroke-width:6.31386852;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<g
transform="translate(284.28571,-2.1813049)"
id="g3628">
<rect
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect2816-8"
width="73.888489"
height="73.888489"
x="450.19861"
y="102.5608" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
x="460.81473"
y="154.06558"
id="text3590-4"><tspan
sodipodi:role="line"
id="tspan3592-6"
x="460.81473"
y="154.06558">10</tspan></text>
</g>
<g
transform="translate(218.71803,-50.621459)"
id="g3694">
<g
id="g3679"
transform="translate(66.670068,48.487322)">
<path
transform="matrix(0.79190751,0,0,0.79190751,184.54996,4.3643858)"
d="m 558.57144,357.36218 c 0,32.7426 -79.62936,59.28572 -177.85715,59.28572 -98.22779,0 -177.85714,-26.54312 -177.85714,-59.28572 0,-32.74259 79.62935,-59.28571 177.85714,-59.28571 98.22779,0 177.85715,26.54312 177.85715,59.28571 z"
sodipodi:ry="59.285713"
sodipodi:rx="177.85715"
sodipodi:cy="357.36218"
sodipodi:cx="380.71429"
id="path3622"
style="fill:none;stroke:#000000;stroke-width:6.31386852;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<text
id="text3624"
y="302.27429"
x="425.62054"
style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
xml:space="preserve"><tspan
y="302.27429"
x="425.62054"
id="tspan3626"
sodipodi:role="line">Throw</tspan></text>
</g>
</g>
<path
id="path3840"
d="m 176.15585,137.32374 548.08375,0"
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" />
<path
id="path3840-0"
d="m 810.5358,138.07647 187.99944,0"
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" />
<path
sodipodi:nodetypes="cc"
id="path3762-5"
d="m 771.42856,237.41432 0,-55.35168"
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow1Mend-1)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1019 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1020 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

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