author | kergoth <kergoth> | 2003-01-16 18:06:02 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-01-16 18:06:02 (UTC) |
commit | c984baa73724d079076b28788c174ce9fa83fdb5 (patch) (side-by-side diff) | |
tree | af0d37330ebc9f00804d4a47d5d059832d31b44b | |
parent | 3904d85eac20dfd21cf2a3245977f9946865fd92 (diff) | |
download | opie-c984baa73724d079076b28788c174ce9fa83fdb5.zip opie-c984baa73724d079076b28788c174ce9fa83fdb5.tar.gz opie-c984baa73724d079076b28788c174ce9fa83fdb5.tar.bz2 |
Use new buildsystem, more documentation coming shortly. Also silenced dependency generation a bit.
-rw-r--r-- | Makefile | 181 | ||||
-rw-r--r-- | Makefile.test | 113 | ||||
-rw-r--r-- | Makefile.x11 | 132 | ||||
-rw-r--r-- | README | 27 | ||||
-rw-r--r-- | README.NEWBUILD | 26 |
5 files changed, 105 insertions, 374 deletions
@@ -1,136 +1,113 @@ -hehindefault: dynamic +#!/usr/bin/make -f +export OPIEDIR:=$(shell pwd) +export TOPDIR:=$(OPIEDIR) +export QMAKE:=$(OPIEDIR)/qmake/qmake -all: default docs +export QMAKESPECSDIR=$(OPIEDIR)/mkspecs -LIBS=library libopie +noconfig_targets := xconfig menuconfig config oldconfig randconfig \ + defconfig allyesconfig allnoconfig allmodconfig \ + clean-configs +configs += $(TOPDIR)/core/applets/config.in $(TOPDIR)/core/apps/config.in $(TOPDIR)/core/multimedia/config.in $(TOPDIR)/core/pim/config.in $(TOPDIR)/core/pim/today/plugins/config.in $(TOPDIR)/core/settings/config.in $(TOPDIR)/development/config.in $(TOPDIR)/inputmethods/config.in $(TOPDIR)/libopie/ofileselector/config.in $(TOPDIR)/libopie/pim/config.in $(TOPDIR)/libsql/config.in $(TOPDIR)/noncore/applets/config.in $(TOPDIR)/noncore/apps/opie-console/test/config.in $(TOPDIR)/noncore/apps/config.in $(TOPDIR)/noncore/comm/config.in $(TOPDIR)/noncore/decorations/config.in $(TOPDIR)/noncore/games/config.in $(TOPDIR)/noncore/graphics/config.in $(TOPDIR)/noncore/multimedia/config.in $(TOPDIR)/noncore/net/config.in $(TOPDIR)/noncore/net/opietooth/config.in $(TOPDIR)/noncore/settings/config.in $(TOPDIR)/noncore/styles/config.in $(TOPDIR)/noncore/tools/calc2/config.in $(TOPDIR)/noncore/tools/config.in $(TOPDIR)/noncore/unsupported/opiemail/ifaces/config.in $(TOPDIR)/noncore/unsupported/config.in $(TOPDIR)/noncore/todayplugins/config.in -INPUTCOMPONENTS= inputmethods/keyboard inputmethods/pickboard \ - inputmethods/handwriting inputmethods/unikeyboard \ - inputmethods/jumpx inputmethods/kjumpx \ - inputmethods/dvorak inputmethods/multikey \ +# $(TOPDIR)/.config depends on .depends.cfgs, as it depends on $(configs) +# in order to have a full set of config.in files. +# .depends depends on $(TOPDIR)/.config +# everything else depends on .depends, to ensure the dependencies are +# intact. +# +# NOTE: The order in which things happen in this makefile is +# -critical-. Do not rearrange this! -APPLETS= core/applets/batteryapplet \ - core/applets/irdaapplet core/applets/volumeapplet \ - core/applets/clockapplet \ - core/applets/homeapplet core/applets/suspendapplet \ - core/applets/logoutapplet \ - core/applets/screenshotapplet core/applets/clipboardapplet \ - core/applets/cardmon core/applets/obex \ - core/applets/vmemo \ - noncore/applets/wirelessapplet noncore/applets/notesapplet +all : $(TOPDIR)/.config -MAIL= noncore/mail/libmail noncore/mail/bend +$(TOPDIR)/.config : $(TOPDIR)/.depends.cfgs -PLAYER = core/multimedia/opieplayer/libmpeg3 \ - core/multimedia/opieplayer/libmad \ - core/multimedia/opieplayer/wavplugin \ - core/multimedia/opieplayer/modplug +all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(TOPDIR)/.depends.cfgs -COMPONENTS=$(LOCALCOMPONENTS) $(INPUTCOMPONENTS) $(APPLETS) $(MAIL) $(PLAYER) +clean-configs : + @echo "Wiping generated config.in files..." + @-rm -f $(configs) +-include $(TOPDIR)/.depends.cfgs -PIMAPPS = core/pim/addressbook core/pim/datebook \ - core/pim/today core/pim/todo +all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(configs) -TODAYPLUGINS = core/pim/today/plugins/datebook \ - core/pim/today/plugins/addressbook \ - core/pim/today/plugins/todolist \ - core/pim/today/plugins/mail \ - noncore/todayplugins/stockticker/stockticker noncore/todayplugins/stockticker/stocktickerlib \ - noncore/todayplugins/fortune \ - noncore/todayplugins/weather +$(TOPDIR)/.config: $(TOPDIR)/.depends.cfgs $(configs) + $(call descend,scripts/kconfig,conf) + @if [ ! -e $@ ]; then \ + cp $(TOPDIR)/def-configs/opie $@; \ + fi; + @$(MAKE) -C scripts/kconfig conf; + ./scripts/kconfig/conf -s ./config.in +# config rules must have the $(configs) var defined +# at the time that they run. we must ensure that .depends.cfgs +# is built and included by the time we reach this point. -COREAPPS = core/apps/filebrowser core/apps/helpbrowser \ - core/apps/textedit core/apps/embeddedkonsole \ - core/launcher \ - core/opie-login \ - core/apps/oipkg core/apps/qcop +xconfig : + $(call descend,scripts/kconfig,qconf) + LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(TOPDIR)/scripts/kconfig \ + ./scripts/kconfig/qconf ./config.in -COREMULTIMEDIA = core/multimedia/opieplayer +menuconfig : scripts/lxdialog/lxdialog + $(call descend,scripts/kconfig,mconf) + ./scripts/kconfig/mconf ./config.in -CORESETTINGS = core/settings/light-and-power core/settings/security \ - noncore/settings/netsystemtime core/settings/citytime \ - core/settings/launcher core/settings/button +config : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf ./config.in -NONCORESETTINGS =noncore/settings/language noncore/settings/rotation \ - noncore/settings/appearance2 noncore/settings/sound \ - noncore/settings/mediummount \ - noncore/settings/tabmanager \ - noncore/settings/sshkeys noncore/settings/usermanager \ - noncore/settings/backup +oldconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -o ./config.in -NONCORETOOLS = noncore/tools/calculator noncore/tools/clock \ - noncore/tools/remote noncore/tools/opie-sh noncore/apps/advancedfm \ - noncore/tools/formatter +randconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -r ./config.in -NONCORESTYLES = noncore/styles/liquid noncore/styles/theme noncore/styles/metal \ - noncore/styles/flat noncore/styles/fresh +allyesconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -y ./config.in -NONCOREDECOS = noncore/decorations/liquid noncore/decorations/flat \ - noncore/decorations/polished +allnoconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -n ./config.in -GAMES = noncore/games/minesweep noncore/games/solitaire \ - noncore/games/tetrix noncore/games/wordgame \ - noncore/games/parashoot noncore/games/snake \ - noncore/games/mindbreaker \ - noncore/games/go noncore/games/qasteroids \ - noncore/games/fifteen noncore/games/tictac \ - noncore/games/kcheckers noncore/games/kpacman \ - noncore/games/kbill noncore/games/buzzword \ - noncore/games/bounce noncore/games/sfcave +defconfig : + $(call descend,scripts/kconfig,conf) + ./scripts/kconfig/conf -d ./config.in -NONAPPS = noncore/apps/opie-sheet noncore/apps/tableviewer \ - noncore/apps/opie-reader noncore/apps/checkbook noncore/apps/oxygen \ - noncore/apps/sysinfo noncore/net/opieirc noncore/apps/aqpkg \ - noncore/apps/opie-console noncore/apps/opie-write -NONNET = noncore/net/ftplib noncore/net/opieftp \ - noncore/mail +export -NONMULT = noncore/multimedia/showimg noncore/graphics/drawpad \ - noncore/graphics/qpdf noncore/apps/confedit +ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) +export include-config := 1 -NONCOMM = noncore/comm/keypebble +-include $(TOPDIR)/.config +-include $(TOPDIR)/.depends -PLUGINS = freetype +endif -APPS=$(LOCALAPPS) $(PIMAPPS) $(COREAPPS) \ - $(COREMULTIMEDIA) $(CORESETTINGS) \ - $(NONCORESETTINGS) $(NONCORETOOLS) $(NONCORESTYLES) \ - $(NONCOREDECOS) $(NONAPPS) $(NONNET) $(NONMULT) \ - $(NONCOMM) $(GAMES) $(TODAYPLUGINS) $(PLUGINS) +-include $(TOPDIR)/..config.cmd +SUBDIRS = $(subdir-y) +export QMAKESPEC=$(QMAKESPECSDIR)/$(patsubst "%",%,$(CONFIG_SPECFILE)) -NONTMAKEAPPS := core/opiealarm +ifdef CONFIG_OPTIMIZATIONS +export CFLAGS_RELEASE=$(patsubst "%,%,$(CONFIG_OPTIMIZATIONS)) +export CFLAGS_RELEASE:=$(patsubst %",%,$(CFLAGS_RELEASE)) +endif -DOCS = docs/src/opie-policy +all clean lupdate lrelease install ipk: $(SUBDIRS) -dynamic: $(APPS) $(NONTMAKEAPPS) +$(subdir-y) : $(if $(CONFIG_LIBQPE),$(QTDIR)/stamp-headers) \ + $(if $(CONFIG_LIBQPE-X11),$(QTDIR)/stamp-headers-x11) \ + $(TOPDIR)/library/custom.h -docs: $(DOCS) +clean : $(TOPDIR)/.config -$(COMPONENTS): $(LIBS) - -$(NONTMAKEAPPS) $(APPS): $(LIBS) $(COMPONENTS) - -$(LIBS) $(COMPONENTS) $(NONTMAKEAPPS) $(APPS) $(DOCS): - $(MAKE) -C $@ -f Makefile - -showcomponents: - @echo $(LIBS) $(APPS) $(COMPONENTS) - -clean: - for dir in $(NONTMAKEAPPS) $(APPS) $(LIBS) $(COMPONENTS) $(DOCS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - -lupdate: - for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - -lrelease: - for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - - -.PHONY: default dynamic $(NONTMAKEAPPS) $(LIBS) $(APPS) $(COMPONENTS) $(DOCS) showcomponents clean +include $(TOPDIR)/Rules.make diff --git a/Makefile.test b/Makefile.test deleted file mode 100644 index 3fe7867..0000000 --- a/Makefile.test +++ b/dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/make -f -export OPIEDIR:=$(shell pwd) -export TOPDIR:=$(OPIEDIR) -export QMAKE:=$(OPIEDIR)/qmake/qmake - -export QMAKESPECSDIR=$(OPIEDIR)/mkspecs - -noconfig_targets := xconfig menuconfig config oldconfig randconfig \ - defconfig allyesconfig allnoconfig allmodconfig \ - clean-configs clean - -configs += $(TOPDIR)/core/applets/config.in $(TOPDIR)/core/apps/config.in $(TOPDIR)/core/multimedia/config.in $(TOPDIR)/core/pim/config.in $(TOPDIR)/core/pim/today/plugins/config.in $(TOPDIR)/core/settings/config.in $(TOPDIR)/development/config.in $(TOPDIR)/inputmethods/config.in $(TOPDIR)/libopie/ofileselector/config.in $(TOPDIR)/libopie/pim/config.in $(TOPDIR)/libsql/config.in $(TOPDIR)/noncore/applets/config.in $(TOPDIR)/noncore/apps/opie-console/test/config.in $(TOPDIR)/noncore/apps/config.in $(TOPDIR)/noncore/comm/config.in $(TOPDIR)/noncore/decorations/config.in $(TOPDIR)/noncore/games/config.in $(TOPDIR)/noncore/graphics/config.in $(TOPDIR)/noncore/multimedia/config.in $(TOPDIR)/noncore/net/config.in $(TOPDIR)/noncore/net/opietooth/config.in $(TOPDIR)/noncore/settings/config.in $(TOPDIR)/noncore/styles/config.in $(TOPDIR)/noncore/tools/calc2/config.in $(TOPDIR)/noncore/tools/config.in $(TOPDIR)/noncore/unsupported/opiemail/ifaces/config.in $(TOPDIR)/noncore/unsupported/config.in $(TOPDIR)/noncore/todayplugins/config.in - -# $(TOPDIR)/.config depends on .depends.cfgs, as it depends on $(configs) -# in order to have a full set of config.in files. -# .depends depends on $(TOPDIR)/.config -# everything else depends on .depends, to ensure the dependencies are -# intact. -# -# NOTE: The order in which things happen in this makefile is -# -critical-. Do not rearrange this! - -all : $(TOPDIR)/.config - -$(TOPDIR)/.config : $(TOPDIR)/.depends.cfgs - -all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(TOPDIR)/.depends.cfgs - -clean-configs : - @echo "Wiping generated config.in files..." - @-rm -f $(configs) - --include $(TOPDIR)/.depends.cfgs - -all menuconfig xconfig oldconfig config randconfig allyesconfig allnoconfig defconfig : $(configs) - -$(TOPDIR)/.config: $(TOPDIR)/.depends.cfgs $(configs) - $(call descend,scripts/kconfig,conf) - @if [ ! -e $@ ]; then \ - cp $(TOPDIR)/def-configs/opie $@; \ - fi; - @$(MAKE) -C scripts/kconfig conf; - ./scripts/kconfig/conf -s ./config.in - -# config rules must have the $(configs) var defined -# at the time that they run. we must ensure that .depends.cfgs -# is built and included by the time we reach this point. - -xconfig : - $(call descend,scripts/kconfig,qconf) - LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(TOPDIR)/scripts/kconfig \ - ./scripts/kconfig/qconf ./config.in - -menuconfig : scripts/lxdialog/lxdialog - $(call descend,scripts/kconfig,mconf) - ./scripts/kconfig/mconf ./config.in - -config : - $(call descend,scripts/kconfig,conf) - ./scripts/kconfig/conf ./config.in - -oldconfig : - $(call descend,scripts/kconfig,conf) - ./scripts/kconfig/conf -o ./config.in - -randconfig : - $(call descend,scripts/kconfig,conf) - ./scripts/kconfig/conf -r ./config.in - -allyesconfig : - $(call descend,scripts/kconfig,conf) - ./scripts/kconfig/conf -y ./config.in - -allnoconfig : - $(call descend,scripts/kconfig,conf) - ./scripts/kconfig/conf -n ./config.in - -defconfig : - $(call descend,scripts/kconfig,conf) - ./scripts/kconfig/conf -d ./config.in - - -export - -ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) - -export include-config := 1 - --include $(TOPDIR)/.config --include $(TOPDIR)/.depends - -endif - --include $(TOPDIR)/..config.cmd - -SUBDIRS = $(subdir-y) - -export QMAKESPEC=$(QMAKESPECSDIR)/$(patsubst "%",%,$(CONFIG_SPECFILE)) - -ifdef CONFIG_OPTIMIZATIONS -export CFLAGS_RELEASE=$(patsubst "%,%,$(CONFIG_OPTIMIZATIONS)) -export CFLAGS_RELEASE:=$(patsubst %",%,$(CFLAGS_RELEASE)) -endif - -all clean lupdate lrelease install ipk: $(SUBDIRS) - -$(subdir-y) : $(if $(CONFIG_LIBQPE),$(QTDIR)/stamp-headers) \ - $(if $(CONFIG_LIBQPE-X11),$(QTDIR)/stamp-headers-x11) \ - $(TOPDIR)/library/custom.h - -clean : $(TOPDIR)/.config - -include $(TOPDIR)/Rules.make diff --git a/Makefile.x11 b/Makefile.x11 deleted file mode 100644 index 9aa96da..0000000 --- a/Makefile.x11 +++ b/dev/null @@ -1,132 +0,0 @@ -indefault: dynamic - -all: default docs - -LIBS=x11/libqpe-x11 libopie - - -INPUTCOMPONENTS= inputmethods/keyboard inputmethods/pickboard \ - inputmethods/handwriting inputmethods/unikeyboard \ - inputmethods/jumpx inputmethods/kjumpx \ - inputmethods/dvorak inputmethods/multikey \ - -APPLETS= core/applets/batteryapplet core/applets/batteryapplet-ipaq \ - core/applets/irdaapplet core/applets/volumeapplet \ - core/applets/clockapplet core/applets/netmonapplet \ - core/applets/homeapplet core/applets/suspendapplet \ - core/applets/logoutapplet \ - core/applets/screenshotapplet core/applets/clipboardapplet \ - core/applets/cardmon core/applets/obex \ - core/applets/vmemo noncore/net/netsetup/dialup \ - noncore/net/netsetup/lan \ - noncore/applets/wirelessapplet noncore/applets/notesapplet - -MAIL= noncore/mail/libmail noncore/mail/bend - -PLAYER = core/multimedia/opieplayer/libmpeg3 \ - core/multimedia/opieplayer/libmad \ - core/multimedia/opieplayer/wavplugin \ - core/multimedia/opieplayer/modplug - -COMPONENTS=$(LOCALCOMPONENTS) $(INPUTCOMPONENTS) $(APPLETS) $(MAIL) $(PLAYER) - - -PIMAPPS = core/pim/addressbook core/pim/datebook \ - core/pim/today core/pim/todo - -TODAYPLUGINS = core/pim/today/plugins/datebook \ - core/pim/today/plugins/todolist \ - core/pim/today/plugins/mail \ - - -COREAPPS = core/apps/filebrowser core/apps/helpbrowser \ - core/apps/textedit core/apps/embeddedkonsole \ - core/launcher \ - core/opie-login \ - core/apps/oipkg core/apps/qcop - -COREMULTIMEDIA = core/multimedia/opieplayer - -CORESETTINGS = core/settings/light-and-power core/settings/security \ - noncore/settings/netsystemtime core/settings/citytime \ - core/settings/launcher - -NONCORESETTINGS =noncore/settings/language noncore/settings/rotation \ - noncore/settings/appearance2 noncore/settings/sound \ - noncore/settings/mediummount \ - noncore/settings/tabmanager noncore/settings/appskey \ - noncore/settings/wlansetup \ - noncore/settings/sshkeys noncore/settings/usermanager \ - noncore/apps/backup - -NONCORETOOLS = noncore/tools/calculator noncore/tools/clock \ - noncore/tools/remote noncore/tools/opie-sh noncore/apps/advancedfm - -NONCORESTYLES = noncore/styles/liquid noncore/styles/theme noncore/styles/metal \ - noncore/styles/flat noncore/styles/fresh - -NONCOREDECOS = noncore/decorations/liquid noncore/decorations/flat \ - noncore/decorations/polished - -GAMES = noncore/games/minesweep noncore/games/solitaire \ - noncore/games/tetrix noncore/games/wordgame \ - noncore/games/parashoot noncore/games/snake \ - noncore/games/mindbreaker \ - noncore/games/go noncore/games/qasteroids \ - noncore/games/fifteen noncore/games/tictac \ - noncore/games/kcheckers noncore/games/kpacman \ - noncore/games/kbill noncore/games/buzzword \ - noncore/games/bounce - -NONAPPS = noncore/apps/opie-sheet noncore/apps/tableviewer \ - noncore/apps/opie-reader noncore/apps/checkbook noncore/apps/oxygen \ - noncore/apps/sysinfo noncore/net/opieirc noncore/apps/aqpkg \ - -NONNET = noncore/net/netsetup noncore/net/opieftp \ - noncore/mail - -NONMULT = noncore/multimedia/showimg noncore/graphics/drawpad \ - noncore/graphics/qpdf noncore/apps/confedit - - -NONCOMM = noncore/comm/keypebble - -APPS=$(LOCALAPPS) $(PIMAPPS) $(COREAPPS) \ - $(CORESETTINGS) \ - $(NONCORESETTINGS) $(NONCORETOOLS) $(NONCORESTYLES) \ - $(NONCOREDECOS) $(NONAPPS) $(NONNET) $(NONMULT) \ - $(NONCOMM) $(GAMES) $(TODAYPLUGINS) - - - -NONTMAKEAPPS := root/opiealarm - -DOCS = docs/src/opie-policy -single: mpegplayer/libmpeg3 - -dynamic: $(APPS) $(NONTMAKEAPPS) - -docs: $(DOCS) - -$(COMPONENTS): $(LIBS) - -$(NONTMAKEAPPS) $(APPS): $(LIBS) $(COMPONENTS) - -$(LIBS) $(COMPONENTS) $(NONTMAKEAPPS) $(APPS) $(DOCS) single: - $(MAKE) -C $@ -f Makefile - -showcomponents: - @echo $(LIBS) $(APPS) $(COMPONENTS) single - -clean: - $(MAKE) -C single -f Makefile $@ - for dir in $(NONTMAKEAPPS) $(APPS) $(LIBS) $(COMPONENTS) $(DOCS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - -lupdate: - for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - -lrelease: - for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done - - -.PHONY: default dynamic $(NONTMAKEAPPS) $(LIBS) $(APPS) $(COMPONENTS) $(DOCS) single showcomponents clean @@ -1 +1,26 @@ -See http://opie.handhelds.org or docs/ or website/index.html for docs. +How to use the new build system +=============================== + +WARNING: This buildsystem is currently under construction. Therefore + it may create more problems than solutions .. ;) + +But if you have problems with the old one, you may use the new which +is much more advanced: + +First of all set you shell-variables to the correct settings +( as you need for the old build system ) + +Then do the following: + +cd $OPIEDIR +make clean +ln -s Makefile.test GNUmakefile +cp def-configs/opie .config +make menuconfig + +Now you can move through the menu and select or deselect anything.. +Exit and save the configuration and enter "make" to create opie... + +Have fun with it ! + +Ciao, Stefan
\ No newline at end of file diff --git a/README.NEWBUILD b/README.NEWBUILD deleted file mode 100644 index e533725..0000000 --- a/README.NEWBUILD +++ b/dev/null @@ -1,26 +0,0 @@ -How to use the new build system -=============================== - -WARNING: This buildsystem is currently under construction. Therefore - it may create more problems than solutions .. ;) - -But if you have problems with the old one, you may use the new which -is much more advanced: - -First of all set you shell-variables to the correct settings -( as you need for the old build system ) - -Then do the following: - -cd $OPIEDIR -make clean -ln -s Makefile.test GNUmakefile -cp def-configs/opie .config -make menuconfig - -Now you can move through the menu and select or deselect anything.. -Exit and save the configuration and enter "make" to create opie... - -Have fun with it ! - -Ciao, Stefan
\ No newline at end of file |