Merge default into mape
88
.hgignore
|
@ -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
|
||||
|
|
1078
CMakeLists.txt
|
@ -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.
|
609
Makefile.am
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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()
|
|
@ -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
|
|
@ -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
|
||||
|
||||
])
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
|
@ -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)
|
|
@ -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)
|
|
@ -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 )
|
||||
|
|
@ -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)
|
|
@ -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)
|
|
@ -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
|
||||
|
|
36
config.h.in
|
@ -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
|
||||
|
||||
|
|
188
configure.ac
|
@ -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
|
||||
|
|
|
@ -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)" $<
|
||||
|
||||
|
|
|
@ -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.
|
|
@ -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]
|
||||
|
|
@ -1,189 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<meta name="GENERATOR" content="Microsoft® 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>
|
|
@ -1,220 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<meta name="GENERATOR" content="Microsoft® 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="&"> <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>
|
||||
|
||||
</UL>
|
||||
</BODY></HTML>
|
|
@ -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]
|
||||
|
|
@ -1,189 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<meta name="GENERATOR" content="Microsoft® 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>
|
|
@ -1,220 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<meta name="GENERATOR" content="Microsoft® 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ü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="&"> <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>
|
||||
|
||||
</UL>
|
||||
</BODY></HTML>
|
|
@ -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]
|
||||
|
||||
|
|
|
@ -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')
|
|
@ -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
|
|
@ -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('&', '&').replace('<', '<').replace('>', '>') + "</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()
|
|
@ -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()
|
|
@ -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)*>
|
||||
|
|
|
@ -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:
|
||||
|
|
281
docs/clonk.xsl
|
@ -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="')" />
|
||||
<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],'&'))"><xsl:text> </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" />
|
||||
|
|
293
docs/doku.css
|
@ -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
|
@ -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':
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
Before Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 14 KiB |
|
@ -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 |
Before Width: | Height: | Size: 365 B |
Before Width: | Height: | Size: 730 B |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 149 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 719 B |
Before Width: | Height: | Size: 1019 B |
After Width: | Height: | Size: 769 B |
Before Width: | Height: | Size: 347 B |
After Width: | Height: | Size: 787 B |
After Width: | Height: | Size: 226 B |
Before Width: | Height: | Size: 1020 B |
After Width: | Height: | Size: 724 B |
Before Width: | Height: | Size: 292 B |
After Width: | Height: | Size: 937 B |
Before Width: | Height: | Size: 274 B |
After Width: | Height: | Size: 668 B |
Before Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 799 B |
After Width: | Height: | Size: 889 B |
Before Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 963 B |
Before Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 838 B |
Before Width: | Height: | Size: 572 B |
After Width: | Height: | Size: 668 B |
Before Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 812 B |
Before Width: | Height: | Size: 273 B |
After Width: | Height: | Size: 535 B |