summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZheng Da <zhengda1936@gmail.com>2009-12-21 03:00:41 +0100
committerZheng Da <zhengda1936@gmail.com>2009-12-21 03:00:41 +0100
commit7ccfc1fdb1c0030e6e2105d50d76122b8f10c687 (patch)
treed84241c6a534d9f3881c7ede383a5a424b7f7e59
parent1f30702285010c0921c4d8266096c49e6f3bd533 (diff)
check in mk.
-rw-r--r--libdde_linux26/mk/Makeconf512
-rw-r--r--libdde_linux26/mk/WhatIsThis2
-rw-r--r--libdde_linux26/mk/binary.inc729
-rw-r--r--libdde_linux26/mk/config.help379
-rw-r--r--libdde_linux26/mk/config.in214
-rw-r--r--libdde_linux26/mk/config.inc137
-rw-r--r--libdde_linux26/mk/defconfig/config.l4check.amd6482
-rw-r--r--libdde_linux26/mk/defconfig/config.l4check.arm-int-l4v289
-rw-r--r--libdde_linux26/mk/defconfig/config.l4check.x86-586-l4v283
-rw-r--r--libdde_linux26/mk/defconfig/config.x8683
-rw-r--r--libdde_linux26/mk/doc.mk301
-rw-r--r--libdde_linux26/mk/export_defs.inc35
-rw-r--r--libdde_linux26/mk/idl.mk206
-rw-r--r--libdde_linux26/mk/include.mk88
-rw-r--r--libdde_linux26/mk/install.inc66
-rw-r--r--libdde_linux26/mk/lib.mk113
-rw-r--r--libdde_linux26/mk/makehelpers.inc15
-rw-r--r--libdde_linux26/mk/modes.inc575
-rw-r--r--libdde_linux26/mk/prog.mk160
-rwxr-xr-xlibdde_linux26/mk/ptest444
-rwxr-xr-xlibdde_linux26/mk/redo_defconfigs21
-rwxr-xr-xlibdde_linux26/mk/rel2abs.sh72
-rw-r--r--libdde_linux26/mk/runux.mk194
-rw-r--r--libdde_linux26/mk/subdir.mk72
-rw-r--r--libdde_linux26/mk/tmpl/MAINTAINER1
-rw-r--r--libdde_linux26/mk/tmpl/Makefile9
-rw-r--r--libdde_linux26/mk/tmpl/examples/Makefile10
-rw-r--r--libdde_linux26/mk/tmpl/idl/Makefile13
-rw-r--r--libdde_linux26/mk/tmpl/include/Makefile9
-rwxr-xr-xlibdde_linux26/mk/tmpl/inst8
-rw-r--r--libdde_linux26/mk/tmpl/lib/Makefile9
-rw-r--r--libdde_linux26/mk/tmpl/lib/src/Makefile14
-rw-r--r--libdde_linux26/mk/tmpl/ptest/Makefile6
-rw-r--r--libdde_linux26/mk/tmpl/ptest/run/Makefile10
-rw-r--r--libdde_linux26/mk/tmpl/server/Makefile9
-rw-r--r--libdde_linux26/mk/tmpl/server/src/Makefile18
-rw-r--r--libdde_linux26/mk/tmpl/server/src/main.c5
37 files changed, 4793 insertions, 0 deletions
diff --git a/libdde_linux26/mk/Makeconf b/libdde_linux26/mk/Makeconf
new file mode 100644
index 00000000..1c927e45
--- /dev/null
+++ b/libdde_linux26/mk/Makeconf
@@ -0,0 +1,512 @@
+# -*- Makefile -*-
+# vim:set ft=make:
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Make configuration file
+#
+# $Id: Makeconf 418 2008-11-12 03:50:31Z l4check $
+#
+# $Author: l4check $
+#
+# This file is included by all Makefile-templates. This file defines macros
+# for div commands, sets general DROPS-Makefile variables, ensures the
+# dependencies from the various Makeconf.locals, defines the messages for
+# div actions, and permits the dependency-creation on clean-rules.
+#
+# The macros BUILD_MULTIPLE_ARCHITECTURES and BUILD_ONE_ARCHITECTURE are
+# defined here.
+#
+# BUILD_MULTIPLE_ARCHITECTURES is set if ARCHS is set to multiple
+# architectures in the Makefile. If ARCHS is not set, the default value
+# l4_i386 will be assumed, not defining BUILD_MULTIPLE_ARCHITECTURES.
+# In the muli-arch case, binary.inc triggers build the files into subdirs,
+# dir-name is the architecture. Then, make is called recursively with ARCH
+# set to one architecture.
+#
+# BUILD_ONE_ARCHITECTURE is set if ARCH contains one architecture, and we
+# actually build files (in subdirs for multi-arch case, in the same dir in
+# the single-arch case).
+
+ifeq ($(origin _L4DIR_MK_MAKECONF),undefined)
+_L4DIR_MK_MAKECONF=y
+
+# the default target is all
+all::
+
+# make .general.d dependent on the role-file
+$(if $(ROLE),$(OBJ_DIR)/.general.d: $(L4DIR)/mk/$(ROLE))
+
+SYSTEM_TARGET = $(SYSTEM_TARGET_$(ARCH))
+SYSTEM_TARGET_arm = arm-linux-
+
+CARCHFLAGS_amd64 = -mno-red-zone
+ASFLAGS_amd64 = -m64
+
+LD_EMULATION_amd64= elf_x86_64
+LD_EMULATION_arm = armelf
+LD_EMULATION_x86 = elf_i386
+LD_EMULATION = $(LD_EMULATION_$(ARCH))
+
+OFORMAT_amd64 = elf64-x86-64
+OFORMAT_arm = default
+OFORMAT_x86 = elf32-i386
+OFORMAT = $(OFORMAT_$(ARCH))
+
+# This is quite bad: There is no other chance to disable the page-alignedment
+# of the linker. The linker aligns the first section at 0x100000 for AMD64!
+# We don't want this. Be careful for interactions with objcopy -S!
+LDNMAGIC ?= -n
+LDFLAGS_amd64 += $(LDNMAGIC)
+
+CARCHFLAGS_x86_586 = -march=i586
+CARCHFLAGS_x86_pentium = -march=i586
+CARCHFLAGS_x86_pentiummmx = -march=pentium-mmx
+CARCHFLAGS_x86_pentiumpro = -march=pentiumpro
+CARCHFLAGS_x86_686 = -march=i686
+CARCHFLAGS_x86_pentium2 = -march=pentium2
+CARCHFLAGS_x86_pentium3 = -march=pentium3
+CARCHFLAGS_x86_pentiumm = -march=pentium-m
+CARCHFLAGS_x86_pentium4 = -march=pentium4
+CARCHFLAGS_x86_prescott = -march=prescott
+CARCHFLAGS_x86_nocona = -march=nocona
+CARCHFLAGS_x86_K6 = -march=k6
+CARCHFLAGS_x86_K7 = -march=athlon
+CARCHFLAGS_x86_athlon4 = -march=athlon-4
+CARCHFLAGS_x86_K8 = -march=k8
+CARCHFLAGS_x86_opteron = -march=opteron
+
+IDL_SYSTEMS = x86-l4v2
+
+AR = $(SYSTEM_TARGET)ar
+AS = $(SYSTEM_TARGET)as
+AWKP = gawk --posix
+CVS = cvs -q
+SVN = svn
+CP = cp
+DICE_SRCDIR ?= $(L4DIR)/../dice
+DICE_OBJDIR ?= $(DICE_SRCDIR)
+DICE = $(firstword $(wildcard $(DICE_OBJDIR)/src/dice \
+ $(DROPS_STDDIR)/tool/bin/dice \
+ $(shell which dice 2>/dev/null) ) \
+ did_not_find_dice___please_install_dice )
+DICE_CPP_NAME = cpp0
+
+DICE_INCDIR ?= $(DICE_SRCDIR)/include
+
+ECHO = echo
+
+GENOFFSETS = $(L4DIR)/tool/bin/genoffsets.pl
+GOSH = $(firstword $(wildcard $(L4DIR)/../tools/gosh/gosh \
+ $(DROPS_STDDIR)/tool/bin/gosh \
+ $(shell which gosh 2>/dev/null) ) \
+ did_not_find_gosh___please_install_gosh )
+HOST_CC = gcc
+HOST_CXX = g++
+INDENT = indent -sob
+INSTALL = install
+# the following two variables should be overwritten in Makeconf.bid.local
+LD = $(SYSTEM_TARGET)ld
+LATEX = latex
+PDFLATEX = pdflatex
+GREP = grep
+LN = ln
+MKDIR = mkdir -p
+MKFLAGS +=$(MKFLAGS_$@)
+NM = $(SYSTEM_TARGET)nm
+OBJCOPY = $(SYSTEM_TARGET)objcopy
+PWDCMD = sh -c pwd
+RANLIB = $(SYSTEM_TARGET)ranlib
+RM = rm -f
+SCRUB = $(RM) $(wildcard *.old) $(wildcard *~) $(wildcard *.bak) \
+ $(wildcard \#*\#)
+SED = sed
+SHELL = /bin/bash
+SIZE = $(SYSTEM_TARGET)size
+STRIP = $(SYSTEM_TARGET)strip
+TR = tr
+GEN_DOPECODE = $(L4DIR)/tool/gen_dopecode/gen_dopecode
+ABS2REL = $(L4DIR)/tool/bin/abs2rel.sh
+# it's optional to be able to set it as environment variable
+FIASCOUX ?= $(L4DIR)/../kernel/fiasco/build-ux/fiasco
+DISASM_CMD ?= $(SYSTEM_TARGET)objdump -ld $(1) | less
+
+# functions that are handy
+absfilename_target_dir_needs_to_exist = $(foreach w,$(1),$(addsuffix /$(notdir $(w)),$(shell cd $(dir $(w)) 2>/dev/null&&$(PWDCMD))))
+absfilename = $(shell $(L4DIR)/mk/rel2abs.sh $(1))
+findfile = $(firstword $(wildcard $(addsuffix /$(1),$(2))) $(1)_NOT_FOUND)
+
+# include this one early to be able to set OBJ_BASE
+-include $(L4DIR)/Makeconf.local
+
+ifeq ($(filter $(IGNORE_OBJDIR_TARGETS),$(MAKECMDGOALS)),)
+# output directory
+ifeq ($(O)$(OBJ_BASE),)
+$(error need to give builddir with O=.../builddir)
+else
+ifneq ($(O),)
+ifeq ($(origin OBJ_BASE),undefined)
+OBJ_BASE := $(call absfilename, $(O))
+export OBJ_BASE
+endif
+endif
+endif
+endif
+
+ifeq ($(origin L4DIR_ABS),undefined)
+L4DIR_ABS := $(call absfilename,$(L4DIR))
+endif
+ifeq ($(origin PKGDIR_ABS),undefined)
+PKGDIR_ABS := $(call absfilename,$(PKGDIR))
+endif
+ifeq ($(origin SRC_DIR),undefined)
+SRC_DIR := $(shell pwd)
+endif
+ifeq ($(origin SRC_BASE_ABS),undefined)
+SRC_BASE ?= $(L4DIR)
+SRC_BASE_ABS := $(call absfilename,$(SRC_BASE))
+export SRC_BASE_ABS
+endif
+ifeq ($(origin OBJ_DIR),undefined)
+OBJ_DIR := $(subst $(SRC_BASE_ABS),$(OBJ_BASE),$(SRC_DIR))
+endif
+ifeq ($(origin PKGDIR_OBJ),undefined)
+PKGDIR_OBJ := $(call absfilename,$(OBJ_DIR)/$(PKGDIR))
+endif
+
+# if PKGDIR is not in L4DIR, we have an external package, so make up some
+# build-dir for it
+ifneq ($(patsubst $(L4DIR_ABS)/%,,$(PKGDIR_ABS)),)
+ifneq ($(filter-out $(OBJ_BASE)/ext-pkg%,$(PKGDIR_OBJ)),)
+PKGDIR_OBJ := $(OBJ_BASE)/ext-pkg$(PKGDIR_OBJ)
+OBJ_DIR := $(OBJ_BASE)/ext-pkg$(OBJ_DIR)
+endif
+endif
+
+# sanity check the object dir
+ifneq ($(SRC_BASE_ABS),$(OBJ_BASE))
+ifeq ($(SRC_DIR),$(OBJ_DIR))
+$(warning Sorry, your object or source path became garbled.)
+$(warning OBJ_BASE: $(OBJ_BASE))
+$(warning SRC_BASE_ABS: $(SRC_BASE_ABS))
+$(warning SRC_DIR: $(SRC_DIR))
+$(warning OBJ_DIR: $(OBJ_DIR))
+$(warning PKGDIR: $(PKGDIR))
+$(warning L4DIR_ABS: $(L4DIR_ABS))
+$(warning PKGDIR_ABS: $(PKGDIR_ABS))
+$(warning PKGDIR_OBJ: $(PKGDIR_OBJ))
+$(error Please investigate.)
+endif
+endif
+
+
+OBJ_DIR_EXPORT = $(OBJ_DIR)
+export OBJ_DIR_EXPORT
+
+VPATH_SRC_BASE ?= $(SRC_DIR)
+
+# Makeconf.local handling
+# dont use -include here, as we have special build conditions in $(L4DIR)/
+ifeq ($(origin BID_ROOT_CONF),undefined)
+BID_ROOT_CONF := $(call absfilename, $(OBJ_BASE))/Makeconf.bid.local
+endif
+ifeq ($(filter $(IGNORE_OBJDIR_TARGETS),$(MAKECMDGOALS)),)
+ifeq ($(wildcard $(BID_ROOT_CONF)),)
+ifeq ($(BID_IGN_ROOT_CONF),)
+$(error No configuration file found in build directory "$(OBJ_BASE)". Please run "make O=/path/to/objdir config" in "$(L4DIR_ABS)" or specify a valid build directory)
+endif
+else
+include $(BID_ROOT_CONF)
+endif
+endif
+
+-include $(L4DIR)/Makeconf.$(CONFIG_LABEL)
+
+-include $(OBJ_BASE)/Makeconf.local
+ifneq ($(PKGDIR),)
+-include $(PKGDIR)/Makeconf.local
+endif
+# if it is not already set, we use this in the local dir
+MAKECONFLOCAL ?= Makeconf.local
+-include $(MAKECONFLOCAL)
+
+DROPS_STDDIR ?= /home/drops
+ifeq ($(STATICFILE),)
+STATICFILE = $(OBJ_BASE)/pkg/STATIC $(L4DIR)/pkg/STATIC
+endif
+
+# a nasty workaround for make-3.79/make-3.80. The former needs an additional
+# $$ for $-quotation when calling a function.
+BID_IDENT = $(1)
+ifeq ($(call BID_IDENT,$$),)
+BID_DOLLARQUOTE = $$
+endif
+BID_COMMA = ,
+
+ifneq ($(PL),)
+PL_j := -j $(PL)
+export PL
+endif
+
+include $(L4DIR)/mk/config.inc
+
+ifeq ($(HAVE_LDSO),y)
+# MAKEDEP-call:
+# arg1 - compiler binary name
+# arg2 - [opt] compiler target. Will be written as target within the
+# dependency file
+# arg3 - [opt] name of the dependency file. If unset, .<arg2>.d will be used.
+# arg4 - [opt] alternative binary name
+ifeq ($(origin BID_LIBGENDEP), undefined)
+BID_LIBGENDEP := $(firstword $(wildcard $(call absfilename, \
+ $(OBJ_BASE)/tool/gendep/libgendep.so \
+ $(DROPS_STDDIR)/tool/lib/libgendep.so )))
+endif
+
+ifeq ($(HOST_SYSTEM),linux)
+ LD_PRELOAD = LD_PRELOAD
+endif
+ifeq ($(HOST_SYSTEM),darwin)
+ LD_PRELOAD = DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES
+endif
+MAKEDEP=$(LD_PRELOAD)=$(BID_LIBGENDEP) GENDEP_TARGET=$(if $(2),$(2),$@) \
+ GENDEP_BINARY=$(1) $(if $(3),GENDEP_DEPFILE=$(3)) \
+ $(if $(4),GENDEP_BINARY_ALT1=$(4))
+endif
+
+# macros used here and in packages
+checkcc = $(shell if $(CC) $(1) -o /dev/null -c -x c \
+ /dev/null > /dev/null 2>&1; then echo "$(1)"; fi)
+checkcxx = $(shell if $(CXX) $(1) -o /dev/null -c -x c++ \
+ /dev/null > /dev/null 2>&1; then echo "$(1)"; fi)
+
+# the gcc specific variables: version, base dir, include dir, gcc lib
+# note: determining these variables is slow, and the values should
+# be set in Makeconf.bid.local. However, this is the place were
+# they are determined on a 'make config' in $(L4DIR)
+GCCVERSION_f = $(shell $(CC) -dumpversion | sed -e 's/\(.*\)\..*/\1/')
+GCCMAJORVERSION_f=$(shell $(CC) -dumpversion | sed -e 's/\([^.]*\).*/\1/')
+GCCMINORVERSION_f=$(shell $(CC) -dumpversion | sed -e 's/[^.]*\.\([^.]*\).*/\1/')
+GCCSUBVERSION_f = $(shell $(CC) -dumpversion | sed -e 's/.*\.\(.*\)/\1/')
+GCCDIR_f = $(shell LC_ALL=C $(CC) -print-search-dirs|sed -ne 's+^install: \(.*[^/][^/]*\)/+\1+p' )
+GCCLIB_f = $(shell $(CC) -print-libgcc-file-name)
+GCCLIB_EH_f = $(filter /%,$(shell $(CC) -print-file-name=libgcc_eh.a))
+GCCINCDIR_f = $(addprefix $(call GCCDIR_f),/include /include-fixed)
+GCCNOSTACKPROTOPT_f= $(call checkcc,-fno-stack-protector)
+
+GCCINCDIR = $(GCCDIR)/include $(GCCDIR)/include-fixed
+I_GCCINCDIR = $(addprefix -I,$(GCCINCDIR))
+
+ifneq ($(PKGDIR),)
+ ifeq ($(origin PKGNAME),undefined)
+ PKGNAME := $(notdir $(shell cd $(PKGDIR);pwd))
+ endif
+endif
+
+ifeq ($(V),1)
+ VERBOSE =
+endif
+ifeq ($(V),0)
+ VERBOSE = @
+endif
+
+# indicate if we are using dietlibc or uClibc
+ifeq ($(USE_DIETLIBC),y)
+# dietlibc explicitly set for all architectures
+ DEFINES += -DUSE_DIETLIBC=y
+ USE_DIETLIBC = y
+ LIBC_TYPE = diet
+ $(warning The use of dietlibc is deprecated, please switch to uclibc.)
+ $(warning Dietlibc will soon be removed from the tree.)
+else
+ # uClibc explicitly set for all architectures
+ DEFINES += -DUSE_UCLIBC=y
+ USE_UCLIBC = y
+ LIBC_TYPE = uc
+endif
+
+ifeq ($(RELEASE_MODE),y)
+DEFINES += -DL4BID_RELEASE_MODE
+endif
+
+ifeq ($(USE_TASKLIB),y)
+DEFINES += -DUSE_TASKLIB=y
+endif
+
+ifeq ($(ARCH),arm)
+ifeq ($(RAM_BASE),)
+$(error RAM_BASE not given, needed for ARM architecture builds.)
+endif
+else #arch != arm
+ RAM_BASE = 0x0
+endif
+
+DEFINES += -DRAM_BASE=$(RAM_BASE)
+
+
+ifneq ($(filter linux l4linux host,$(MODE)),)
+HOST_LINK := 1
+endif
+
+#
+# SUBDIR handling, not within the OBJ-*/ dirs
+#
+ifeq ($(SYSTEM),)
+ifneq ($(SUBDIRS),)
+.PHONY: $(SUBDIRS)
+$(SUBDIRS):
+ $(VERBOSE)PWD=$(PWD)/$@ $(MAKE) -C $@ all
+
+# we know that SUBDIRS isn't empty, hence we can avoid the dir-test
+scrub clean cleanall::
+ $(VERBOSE)set -e; $(foreach i,$(SUBDIRS), \
+ PWD=$(PWD)/$(i) $(MAKE) -C $(i) $@ $(MKFLAGS) $(MKFLAGS_$(i));)
+
+install:: $(SUBDIRS)
+ $(VERBOSE)set -e; $(foreach i,$(SUBDIRS), \
+ PWD=$(PWD)/$(i) $(MAKE) -C $(i) $@ $(MKFLAGS) $(MKFLAGS_$(i));)
+
+endif
+
+all:: $(OBJ_DIR)/Makefile
+
+$(OBJ_DIR)/Makefile: $(L4DIR)/mk/Makeconf
+ $(VERBOSE)install -d $(dir $@)
+ $(VERBOSE)echo '# automatically created -- modifications will be lost' > $@
+ $(VERBOSE)echo 'SRC := $(SRC_DIR)' >> $@
+ $(VERBOSE)echo 'OBJ := $(OBJ_BASE)' >> $@
+ $(VERBOSE)echo '.PHONY: x $$(MAKECMDGOALS)' >> $@
+ $(VERBOSE)echo 'x:' >> $@
+ $(VERBOSE)echo ' PWD=$$(SRC) $$(MAKE) -C $$(SRC) O=$$(OBJ)' >> $@
+ $(VERBOSE)echo '$$(MAKECMDGOALS):' >> $@
+ $(VERBOSE)echo ' PWD=$$(SRC) $$(MAKE) -C $$(SRC) O=$$(OBJ) $$@'>> $@
+
+else
+# we are within an OBJ-*/ dir, create dummy target
+$(SUBDIRS):
+endif
+
+#
+# Dependency section
+#
+#
+
+# the general dependencies: All generated files depend on ".general.d".
+# ".general.d" itself depends on the mk-Makeconf, the optional
+# Makeconf.local, the Makeconf.bid.local, the packet-Makeconf.local and the
+# Makeconf.local. This ensures a rebuilt if any of the configuration-
+# or make-files changes.
+#
+# We have this nasty if-readable-magic to allow the files to disappear
+# or to appear. Depending on if the according makeconf exists now, the
+# if-readable magic .general.d is used on existance or non-existence.
+
+BID_DEPEND_GENERAL_D_COND = \
+ if [ -r $(1) ] ; then echo -e '$@: $(1)\n$(1):\n' >>$@ ; \
+ else echo '$$(if $$(wildcard $(1)), $@: FORCE)' >>$@; fi
+
+ifeq ($(SYSTEM),)
+GENERAL_D_LOC := $(OBJ_DIR)/.general.d
+else
+GENERAL_D_LOC := .general.d
+endif
+
+$(GENERAL_D_LOC): $(L4DIR)/mk/Makeconf
+ @$(BUILD_MESSAGE)
+ @install -d $(dir $@)
+ $(DEPEND_VERBOSE)echo '$@: $(SRC_DIR)/Makefile ' > $@
+ $(DEPEND_VERBOSE)$(call BID_DEPEND_GENERAL_D_COND,\
+ $(OBJ_BASE)/Makeconf.bid.local)
+ $(DEPEND_VERBOSE)$(call BID_DEPEND_GENERAL_D_COND,\
+ $(OBJ_BASE)/Makeconf.local)
+ $(DEPEND_VERBOSE)$(call BID_DEPEND_GENERAL_D_COND,\
+ $(L4DIR)/Makeconf.local)
+ $(DEPEND_VERBOSE)$(call BID_DEPEND_GENERAL_D_COND,\
+ $(L4DIR)/Makeconf.$(CONFIG_LABEL))
+ $(if $(PKGDIR),$(DEPEND_VERBOSE)$(call BID_DEPEND_GENERAL_D_COND,\
+ $(PKGDIR)/Makeconf.local))
+ $(DEPEND_VERBOSE)$(call BID_DEPEND_GENERAL_D_COND,\
+ $(MAKECONFLOCAL))
+
+DEPS += $(GENERAL_D_LOC)
+
+ifneq ($(DEPENDS_PKGS),)
+DEPENDS_PKGS_MISSING := $(strip $(foreach i,$(DEPENDS_PKGS), \
+ $(if $(wildcard $(L4DIR)/pkg/$(i)),,$(i))))
+
+ifneq ($(DEPENDS_PKGS_MISSING),)
+# clear TARGET to prevent building anything
+TARGET =
+all::
+ @echo -e "\033[32mPackage dependencies missing: \033[1m$(DEPENDS_PKGS_MISSING)\033[22m, skipping.\033[0m"
+endif
+endif
+
+#
+# Messages
+#
+
+# set SHOWMESSAGES=true or 'y' to print textual action descriptions
+SHOWMESSAGES ?= true
+
+# coloring on color-capable terminals
+# enabled by setting BID_COLORED_PHASES to y
+ifeq ($(BID_COLORED_PHASES),y)
+ifeq ($(COLOR_TERMINAL),y)
+ EMPHSTART = '\033[34m'
+ EMPHSTOP = '\033[0m'
+else
+ EMPHSTART =
+ EMPHSTOP =
+endif
+endif
+
+
+ifneq (,$(filter y true, $(SHOWMESSAGES)))
+AR_MESSAGE?= echo -e " ==> Archiving into $@"
+BUILD_MESSAGE?= echo -e " ... Building $@"
+BUILT_MESSAGE?= echo -e $(EMPHSTART)' ==> "$@" built'$(EMPHSTOP)
+COMP_MESSAGE?= echo -e " ... Compiling $@"
+COMP_P_MESSAGE?=echo -e " ... Compiling PIC $@"
+COMP_PR_MESSAGE?=echo -e " ... Compiling PROFILE $@"
+GEN_MESSAGE?= echo -e " ... Generating $@"
+LINK_MESSAGE?= echo -e " ==> Linking $@"
+LINK_SHARED_MESSAGE?= echo -e " ==> Linking to shared $@"
+LINK_PARTIAL_MESSAGE?= echo -e " ==> Partial linking to $@"
+DEP_MESSAGE?= echo -e " ... Building dependencies for $<"
+CLEAN_MESSAGE?= echo -e " ... Removing created files"
+CLEANALL_MESSAGE?=echo -e " ... Removing all created files"
+INSTALL_LINK_MESSAGE?=echo -e " ==> Updating symlinks"
+INSTALL_DOC_MESSAGE?=echo -e " ==> Installing $(<) documentation"
+INSTALL_DOC_LOCAL_MESSAGE?= echo -e " ==> Installing $(<) documentation locally"
+INSTALL_MESSAGE?=echo -e " ==> Installing $^"
+INSTALL_LOCAL_MESSAGE?=echo -e " ==> Installing $(<) to local build-tree"
+UPDATE_HTML_MESSAGE?=echo -e " ! You should remake your doc directory in $(1)"
+endif
+
+
+# allows an include $(DEPSVAR) at the end of the makefile
+# but prevents rebuilding them on a scrub, clean, cleanall and help
+ifneq ($(filter scrub clean cleanall help,$(MAKECMDGOALS)),)
+DEPSVAR =
+else
+DEPSVAR = $(DEPS)
+endif
+
+#
+# Some rules
+#
+
+# addfileheader-rule: allows "make addfileheader main.c server.c"-like
+# commands and automatically inserts the path within the package
+# options may be passed with $(ADDFILEHEADER_OPTIONS)
+ADDFILEHEADER_PREFIX = $(patsubst $(call absfilename,$(PKGDIR)/)%,\
+ $(PKGNAME)/%,$(call absfilename,./))
+ADDFILEHEADER_FILES = $(filter-out addfileheader,$(MAKECMDGOALS))
+addfileheader:
+ addfileheader $(ADDFILEHEADER_OPTIONS) -p $(ADDFILEHEADER_PREFIX) $(ADDFILEHEADER_FILES)
+
+
+.PHONY: FORCE
+
+endif # _L4DIR_MK_MAKECONF undefined
diff --git a/libdde_linux26/mk/WhatIsThis b/libdde_linux26/mk/WhatIsThis
new file mode 100644
index 00000000..e64452d8
--- /dev/null
+++ b/libdde_linux26/mk/WhatIsThis
@@ -0,0 +1,2 @@
+# DROPS Building Makros
+filelist="*.mk *.inc config.*"
diff --git a/libdde_linux26/mk/binary.inc b/libdde_linux26/mk/binary.inc
new file mode 100644
index 00000000..14da70a9
--- /dev/null
+++ b/libdde_linux26/mk/binary.inc
@@ -0,0 +1,729 @@
+# -*- Makefile -*-
+# vim:set ft=make:
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Include for compiling templates (prog.mk, lib.mk)
+#
+# $Id: binary.inc 364 2008-05-29 02:51:17Z l4check $
+#
+# $Author: l4check $
+
+# Makefile-Include for binary and lib directories
+# Definitions for building the Makefile.inc, building dependencies,
+# compiler configuration.
+#
+# If SYSTEM is defined and we do not clean, we generate Makefile.inc. This file
+# holds the dependencies of the targets. Is also contains the definitions of
+# variables holding the objects of the related targets. In a multiple
+# architecture makefile, Makefile.inc will be built in arch-specific subdirs,
+# like the other components built.
+#
+# Most compiler- and linker-flag variables are defined in such a way that
+# using them in the rule will expand all the target- and
+# architecture-specific definitions.
+#
+# The relink-rule is defined in this file.
+#
+# The dependencies for compiling files are defined here, the dep-files are
+# generated with names .(source-file).d for .c, .cc and .S-files.
+#
+# Clean-rules are defined here.
+#
+
+$(GENERAL_D_LOC): $(L4DIR)/mk/binary.inc
+
+# our default Makefile-name in the OBJ-Subdirs
+BID_OBJ_Makefile ?= Makefile
+
+ifeq ($(SYSTEM),) # if we have no system yet, build the subdirs
+#################################################################
+#
+# we have NO system defined in $(SYSTEM), we are in the src/ dir
+#
+#################################################################
+
+# our default system
+SYSTEMS ?= x86-l4v2
+
+# intersection with BUILD_SYSTEMS
+
+# filter the systems from the local SYSTEMS variable ($2), that match
+# the build-architecture.
+# args: $(1) - build architecture (one from BUILD_SYSTEMS)
+# $(2) - SYSTEMS
+# 1. check, if both systems are the same (optionally reduced by the CPU)
+# 2. check, if at least the arch matches (and optionally the cpu)
+FILTER_SYSTEM = $(shell echo $(2)|$(AWKP) '\
+ BEGIN{m=s="$(1)";sub("_[^-]*","",m)}\
+ {for(i=1;i<=NF;i++){\
+ if(m==$$i||s==$$i){print s}else\
+ if(index(m,$$i)==1||index(s,$$i)==1)\
+ {t=s;sub("-.*","",t);print t}}}')
+
+# print that system of the SYSTEMS variable that actually matched with
+# $(BUILD_SYSTEMS) to the given system
+# args: $(1) - build architecture (SYSTEM)
+# $(2) - SYSTEMS
+# + do nearly the same as in FILTER_SYSTEM, but additionally check if
+# the resulting system matches $(1). If so, print the according pattern from
+# SYSTEMS and exit
+BID_ORIG_SYSTEM = $(shell echo $(2)|$(AWKP) '\
+ BEGIN{m=s="$(1)";sub("_[^-]*","",m)}\
+ {for(i=1;i<=NF;i++){\
+ if(m==$$i||s==$$i){if(s=="$(1)"){print $$i;exit}};\
+ if(index(m,$$i)==1||index(s,$$i)==1)\
+ {t=s;sub("-.*","",t);\
+ if(t=="$(1)"){print $$i;exit}}}}')
+
+ifeq ($(ROLE),idl.mk)
+TARGET_SYSTEMS := $(sort $(foreach sys,$(sort \
+ $(shell echo $(BUILD_SYSTEMS)|$(SED) -e 's/_[^- ]*\(-\{0,1\}\)/\1/g')), \
+ $(call FILTER_SYSTEM,$(sys),$(SYSTEMS))))
+else
+TARGET_SYSTEMS := $(sort $(foreach sys,$(BUILD_SYSTEMS),\
+ $(call FILTER_SYSTEM,$(sys),$(SYSTEMS))))
+endif
+
+DIR_FROM_SUB = $(firstword $(addprefix ../,$(patsubst /%,,$(1))) $(1))
+SYSTEM_TO_ARCH = $(shell echo $(1)|$(SED) -e 's/[_-].*//')
+SYSTEM_TO_CPU = $(shell echo $(1)|$(SED) -ne 's/[^-_]*_\([^-]*\).*/\1/p')
+SYSTEM_TO_L4API = $(shell echo $(1)|$(SED) -ne 's/.*-\(.*\)/\1/p')
+
+$(foreach sys,$(TARGET_SYSTEMS),$(OBJ_DIR)/OBJ-$(sys)/$(BID_OBJ_Makefile)):$(OBJ_DIR)/OBJ-%/$(BID_OBJ_Makefile):$(OBJ_DIR)/.general.d
+ @install -d $(dir $@)
+ @echo 'L4DIR=$(L4DIR_ABS)'>$@
+ @echo 'OBJ_BASE=$(OBJ_BASE)'>>$@
+ @echo 'OBJ_DIR=$(OBJ_DIR)'>>$@
+ @echo 'SRC_DIR=$(SRC_DIR)'>>$@
+ @echo 'PKGDIR=$(PKGDIR_ABS)'>>$@
+ @echo 'PKGDIR_ABS=$(PKGDIR_ABS)'>>$@
+ @echo 'PKGDIR_OBJ=$(PKGDIR_OBJ)'>>$@
+ @echo 'MAKECONFLOCAL=$(SRC_DIR)/Makeconf.local'>>$@
+ @echo 'OSYSTEM=$(call BID_ORIG_SYSTEM,$*,$(SYSTEMS))'>>$@
+ @echo 'SYSTEM=$*'>>$@
+ @echo 'ARCH=$(call SYSTEM_TO_ARCH,$*)'>>$@
+ @echo 'CPU=$(call SYSTEM_TO_CPU,$*)'>>$@
+ @echo 'L4API=$(call SYSTEM_TO_L4API,$*)'>>$@
+ @echo 'vpath %.c $(VPATH_SRC_BASE)'>>$@
+ @echo 'vpath %.cc $(VPATH_SRC_BASE)'>>$@
+ @echo 'vpath %.cpp $(VPATH_SRC_BASE)'>>$@
+ @echo 'vpath %.S $(VPATH_SRC_BASE)'>>$@
+ @echo 'vpath %.y $(VPATH_SRC_BASE)'>>$@
+ @echo 'vpath %.l $(VPATH_SRC_BASE)'>>$@
+ @echo 'vpath %.ld $(VPATH_SRC_BASE)'>>$@
+ @echo 'vpath %.dpe $(VPATH_SRC_BASE)'>>$@
+ @echo '.general.d: $(SRC_DIR)/$(if $(wildcard Make.rules),Make.rules,Makefile)'>>$@
+ @echo 'include $(SRC_DIR)/$(if $(wildcard Make.rules),Make.rules,Makefile)'>>$@
+ @echo 'include $$(L4DIR)/mk/$(ROLE)'>>$@
+
+install relink scrub:: $(foreach arch,$(TARGET_SYSTEMS),\
+ $(OBJ_DIR)/OBJ-$(arch)/$(BID_OBJ_Makefile))
+ $(if $(TARGET_SYSTEMS), $(VERBOSE)set -e ; \
+ for d in $(TARGET_SYSTEMS) ; do \
+ PWD=$OBJ-$$d $(MAKE) -C $(OBJ_DIR)/OBJ-$$d -f $(BID_OBJ_Makefile) \
+ $@ ; done )
+
+.PHONY: pre-obj
+pre-obj::
+
+all:: $(foreach arch,$(TARGET_SYSTEMS), $(OBJ_DIR)/OBJ-$(arch))
+.PHONY: $(foreach arch,$(TARGET_SYSTEMS), $(OBJ_DIR)/OBJ-$(arch))
+$(foreach arch,$(TARGET_SYSTEMS), $(OBJ_DIR)/OBJ-$(arch)):%:%/$(BID_OBJ_Makefile) pre-obj
+ $(VERBOSE)PWD=$@ $(MAKE) $(PL_j) -C $@ -f $(BID_OBJ_Makefile)
+
+clean disasm::
+ $(if $(wildcard $(OBJ_DIR)/OBJ-*), $(VERBOSE)set -e ; \
+ for d in $(wildcard $(OBJ_DIR)/OBJ-*) ; do \
+ PWD=$$d $(MAKE) -C $$d -f $(BID_OBJ_Makefile) $@; \
+ done, @true)
+
+cleanall::
+ $(VERBOSE)$(RM) -r $(wildcard $(OBJ_DIR))
+
+.PHONY: $(TARGET_SYSTEMS)
+
+else
+###############################################################
+#
+# we have a system defined in $(SYSTEM), we are in an OBJ- dir
+#
+###############################################################
+
+all:: $(TARGET)
+
+disasm: $(TARGET)
+ $(call DISASM_CMD,$<)
+
+L4INCDIR ?= $(addprefix $(OBJ_BASE)/include/$(ARCH)/,$(L4API)) \
+ $(addprefix $(OBJ_BASE)/include/,$(L4API)) \
+ $(OBJ_BASE)/include/$(ARCH) \
+ $(OBJ_BASE)/include \
+ $(DICE_INCDIR) \
+ $(addprefix $(DROPS_STDDIR)/include/$(ARCH)/,$(L4API)) \
+ $(addprefix $(DROPS_STDDIR)/include/,$(L4API)) \
+ $(DROPS_STDDIR)/include/$(ARCH) \
+ $(DROPS_STDDIR)/include
+L4LIBDIR ?= $(addprefix $(OBJ_BASE)/lib/$(ARCH)_$(CPU)/,$(L4API)) \
+ $(OBJ_BASE)/lib/$(ARCH)_$(CPU) \
+ $(OBJ_BASE)/lib \
+ $(addprefix $(DROPS_STDDIR)/lib/$(ARCH)_$(CPU)/,$(L4API)) \
+ $(DROPS_STDDIR)/lib/$(ARCH)_$(CPU) \
+ $(DROPS_STDDIR)/lib
+
+L4LINUX22_DIR ?= $(L4DIR)/../linux22
+
+#
+# Variables Section
+#
+# There is a hierarchy on defining variables depending on the targets they
+# refer to: Most standard-Make Variables are supported. This includes
+# LDFLAGS - options for ld, defined in prog.mk and lib.mk
+# CPPFLAGS - options for the c preprocessor, included in CFLAGS
+# CFLAGS - options for the c compiler
+# CXXFLAGS - options for the c++ compiler
+# ASFLAGS - options for the assembler
+#
+# Addtitionally, the following varibales are supported:
+# SRC_C, SRC_CC, SRC_S - .c, .cc, .S source files
+# CRT0, CRTN - startup and finish code
+# LIBS - additional libs to link (with -l), including paths (-L)
+# IDL - interface definition files
+# TARGET - targets to ge built
+#
+# These variables will be used for all operations with the corresponding
+# file types. More specific description is possible by using variables with
+# added specifications. These specifications include a referred element and
+# the architecture, both optional but in this order, separated by
+# underscores. The referred element for CPPFLAGS, CFLAGS, CXXFLAGS and
+# ASFLAGS is the source file. For the other variables, it is one of the
+# target files. The TARGET variable can only be postfixed by an
+# architecture.
+# The specific variables will be used for the target and the referred element
+# given in the name, additionally to the more general ones.
+#
+# Example for a valid specifications:
+# SRC_C_libxverbose.a = verbose.c - ar's verbose.o into libxverbose.a, but
+# not in other libs in the TARGET var.
+
+include $(L4DIR)/mk/modes.inc
+
+# select the variable specified in $(1) from the current architecture and
+# mode. Fall back to "all" architecture if no specific version exists.
+BID_mode_var= $(if $($(1)_$(ARCH)_$(MODE)),$($(1)_$(ARCH)_$(MODE)),$($(1)_all_$(MODE)))
+
+BID_SUPPORTED ?= $(call BID_mode_var,BID_SUPPORTED)
+ifneq ($(BID_SUPPORTED),y)
+$(error Mode "$(MODE)" is not supported for CPU architecture "$(ARCH)")
+endif
+
+LIBCINCDIR ?= $(call BID_mode_var,LIBCINCDIR)
+LIBCLIBDIR ?= $(call BID_mode_var,LIBCLIBDIR)
+LIBCLIBS ?= $(call BID_mode_var,LIBCLIBS)
+L4LIBS ?= $(call BID_mode_var,L4LIBS)
+CRT0 ?= $(call BID_mode_var,CRT0)
+CRTP ?= $(if $(filter $(CRT0_DEFAULT),$(CRT0)),$(CRTP_DEFAULT),$(CRT0))
+CRTN ?= $(call BID_mode_var,CRTN)
+LDSCRIPT ?= $(call BID_mode_var,LDSCRIPT)
+
+# we do not need to put our FLAG-definitions into a special file if we can
+# use the target to parameterize it and if it needs not to appear in the deps
+#CRT0 = $(word 1, $(CRT0_$@_$(OSYSTEM)) $(CRT0_$@) $(CRT0_$(OSYSTEM)))
+#CRTN = $(word 1, $(CRTN_$@_$(OSYSTEM)) $(CRTN_$@) $(CRTN_$(OSYSTEM)))
+LIBS += $(strip $(LIBS_$(OSYSTEM)) $(LIBS_$@) $(LIBS_$@_$(OSYSTEM)))
+
+
+LDFLAGS += $(strip $(LDFLAGS_$(OSYSTEM)) $(LDFLAGS_$(ARCH)) $(LDFLAGS_$@) $(LDFLAGS_$@_$(OSYSTEM)))
+
+# May 2007: force somewhat old hash-style as some(!, independant of the
+# actual version) ld now use an other format, no uclibc upstream fix
+# available yet, until available, we need:
+ifeq ($(LD_HAS_HASH_STYLE_OPTION),y)
+ifneq ($(HOST_LINK),1)
+LDFLAGS += --hash-style=sysv
+endif
+endif
+
+OPTS ?= -g -O2 -fno-strict-aliasing
+WARNINGS?= -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(WARNINGS_$@)
+
+ifeq ($(MODE),host)
+# never cross compile in host mode
+SYSTEM_TARGET =
+CC = $(HOST_CC)
+CXX = $(HOST_CXX)
+else
+# no architecture specific flags in host mode
+OPTS += $(CARCHFLAGS_$(ARCH)) $(CARCHFLAGS_$(ARCH)_$(CPU))
+endif
+
+# no link address if build a lib or we're compiling a host program and using
+# the host linker scripts
+ifeq ($(ROLE),lib.mk)
+NO_DEFAULT_RELOC := y
+endif
+ifneq ($(HOST_LINK),)
+NO_DEFAULT_RELOC := y
+endif
+
+default_reloc_base = $(firstword $(DEFAULT_RELOC_$(1)) \
+ $(DEFAULT_RELOC_$(ARCH)) \
+ $(DEFAULT_RELOC) \
+ $(if $(NO_DEFAULT_RELOC),,0x01000000))
+default_reloc = $(if $(call default_reloc_base,$(1)),\
+ $(shell printf "0x%x" $$(($(RAM_BASE) + $(call default_reloc_base,$(1))))),)
+
+$(CLIENTIDL:.idl=-client.o): CFLAGS += -ffunction-sections
+CFLAGS += $(BID_CFLAGS_GSTAB) $(BID_CFLAGS_OMIT_FP)
+CFLAGS += $(CFLAGS_$(OSYSTEM)) $(CFLAGS_$(<F)) $(CFLAGS_$(<F)_$(OSYSTEM))
+CFLAGS += $(CFLAGS_$(L4API))
+CFLAGS += $(OPTS) $(WARNINGS)
+CFLAGS += -fno-common
+ifneq ($(MODE),host)
+CFLAGS += $(GCCNOSTACKPROTOPT)
+endif
+DEFINES += $(DEFINES_$(OSYSTEM)) $(DEFINES_$(<F)) $(DEFINES_$(<F)_$(OSYSTEM))
+DEFINES += -DSYSTEM_$(subst -,_,$(SYSTEM)) -DARCH_$(ARCH) -DCPUTYPE_$(CPU) -DL4API_$(L4API)
+ifdef DEBUG
+ifeq (,$(filter 0 n N, $(DEBUG)))
+DEFINES += -DDEBUG
+endif
+endif
+
+CPPFLAGS+= $(CPPFLAGS_$(OSYSTEM)) $(CPPFLAGS_$(<F)) $(CPPFLAGS_$(<F)_$(OSYSTEM))
+CPPFLAGS+= $(DEFINES)
+CPPFLAGS+= $(BID_CPPFLAGS_SYSCALLS)
+CPPFLAGS+= $(addprefix -I, $(PRIVATE_INCDIR) $(PRIVATE_INCDIR_$(OSYSTEM)) $(PRIVATE_INCDIR_$@) $(PRIVATE_INCDIR_$@_$(OSYSTEM)))
+CPPFLAGS+= $(if $(CLIENTIDL)$(SERVERIDL)$(addprefix CLIENTIDL_,$(TARGET))$(addprefix SERVERIDL_,$(TARGET)),$(addprefix -I, $(IDL_PATH)))
+ifneq ($(MODE),host)
+CPPFLAGS+= $(addprefix -I, $(L4INCDIR))
+endif
+CPPFLAGS+= $(LIBCINCDIR)
+
+CXXFLAGS+= $(BID_CFLAGS_GSTAB) $(BID_CFLAGS_OMIT_FP)
+CXXFLAGS+= $(CXXFLAGS_$(OSYSTEM))
+CXXFLAGS+= $(CXXFLAGS_$(@:.o=.cc)) $(CXXFLAGS_$(@:.o=.cc)_$(OSYSTEM))
+CXXFLAGS+= $(CXXFLAGS_$(@:.o=.cpp)) $(CXXFLAGS_$(@:.o=.cpp)_$(OSYSTEM))
+CXXFLAGS+= $(OPTS) $(filter-out -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes,$(WARNINGS))
+CXXFLAGS+= -fno-common
+ifneq ($(MODE),host)
+CXXFLAGS+= $(GCCNOSTACKPROTOPT)
+endif
+
+PICFLAGS = -fPIC -U__PIC__ -D__PIC__=1
+
+ASFLAGS+= $(ASFLAGS_$(ARCH)) $(ASFLAGS_$(@:.o=.S)) $(ASFLAGS_$(@:.o=.S)_$(OSYSTEM))
+OBJS += $(strip $(OBJS_$(OSYSTEM)) $(OBJS_$@) $(OBJS_$@_$(OSYSTEM)))
+ALLOBJS = $(OBJS) $(foreach target,$(TARGET) $(TARGET_$(OSYSTEM)),\
+ $(OBJS_$(target)) $(OBJS_$(target)_$(OSYSTEM)))
+ALLDPI = $(sort $(foreach obj,$(ALLOBJS),$(patsubst %.dpe,%.dpi,\
+ $(DPE_$(obj:.o=.c)))))
+
+# implementation of $(CLIENTIDL) and $(SERVERIDL)
+IDL_TYPE ?= dice
+IDL_PKGDIR ?= $(PKGDIR_OBJ)
+IDL_PATH ?= $(addsuffix /idl/OBJ-$(ARCH)-$(L4API),$(IDL_PKGDIR))
+ifneq ($(IDL_TYPE), dice)
+ifneq ($(IDL_TYPE), corba)
+$(error IDL_TYPE "$(IDL_TYPE)" not supported.)
+endif
+endif
+
+# A function to deliver the source files generated from IDL-files and
+# that should be linked to a given target. Used by "targetobjs" to write
+# the target-objects and in the "Makefile.inc:"-rule to write the IDL_SRC_C-
+# variables
+# arg: 1 - target
+IDL_SRC_Cfn = $(CLIENTIDL:.idl=-client.c) $(SERVERIDL:.idl=-server.c) \
+ $(foreach inter, $(OSYSTEM) $(1) $(1)_$(OSYSTEM), \
+ $(CLIENTIDL_$(inter):.idl=-client.c) \
+ $(SERVERIDL_$(inter):.idl=-server.c))
+IDL_SRC_CCfn = $(CLIENTIDL:.idl=-client.cc) $(SERVERIDL:.idl=-server.cc) \
+ $(foreach inter, $(OSYSTEM) $(1) $(1)_$(OSYSTEM), \
+ $(CLIENTIDL_$(inter):.idl=-client.cc) \
+ $(SERVERIDL_$(inter):.idl=-server.cc))
+
+# *all* CLIENTIDLs/SERVERIDLs
+# needed for the test if we should include the IDL-Path into vpath
+IDL_ALLCLIENTIDL = $(CLIENTIDL) $(CLIENTIDL_$(OSYSTEM)) \
+ $(foreach target,$(TARGET) $(TARGET_$(OSYSTEM)), \
+ $(CLIENTIDL_$(target)) $(CLIENTIDL_$(target)_$(OSYSTEM)))
+IDL_ALLSERVERIDL = $(SERVERIDL) $(SERVERIDL_$(OSYSTEM)) \
+ $(foreach target,$(TARGET) $(TARGET_$(OSYSTEM)), \
+ $(SERVERIDL_$(target)) $(SERVERIDL_$(target)_$(OSYSTEM)))
+
+ifneq ($(IDL_ALLCLIENTIDL),)
+vpath %-client.c $(IDL_PATH)
+vpath %-client.cc $(IDL_PATH)
+endif
+ifneq ($(IDL_ALLSERVERIDL),)
+vpath %-server.c $(IDL_PATH)
+vpath %-server.cc $(IDL_PATH)
+endif
+
+
+# a helper function to generate the object-files for a given target
+# arg: 1 - target
+# 2 - infix between the basename and the .o
+targetobjs = $(SRC_C:.c=$(2).o) $(SRC_S:.S=$(2).o) \
+ $(patsubst %.cc,%$(2).o,$(patsubst %.cpp,%.cc,$(SRC_CC))) \
+ $(foreach inter, $(OSYSTEM) $(1) $(1)_$(OSYSTEM), \
+ $(SRC_C_$(inter):.c=$(2).o) \
+ $(SRC_S_$(inter):.S=$(2).o) \
+ $(patsubst %.cc,%$(2).o,$(SRC_CC_$(inter):.cpp=.cc)) \
+ $($(SRC_CC_$(inter):.cpp=.cc):%.cc=$(2).o)) \
+ $(patsubst %.c,%$(2).o,$(call IDL_SRC_Cfn,$(1)))
+
+# The directories our object files will go into. These dirs will be created
+# on generation of Makefile.inc in the OBJ- dirs.
+OBJDIRS = $(strip $(sort $(filter-out ./,$(dir \
+ $(foreach t,$(TARGET_STANDARD), \
+ $(call targetobjs,$(t),)) \
+ $(foreach t,$(TARGET_PIC) $(TARGET_SHARED), \
+ $(call targetobjs,$(t),.s)) \
+ $(foreach t,$(PROFILE), \
+ $(call targetobjs,$(t),.pr)) \
+ $(foreach t,$(TARGET_PROFILE_PIC) $(TARGET_PROFILE_SHARED),\
+ $(call targetobjs,$(t),.pr.s))))))
+
+# The include file for the Makefile. This file contains definitions and
+# dependencies which are dynamically generated. Unfortunately, make does
+# not support variable declarations using the foreach function. Same
+# for rules.
+$(BID_OBJ_Makefile).inc: .general.d
+ @$(BUILD_MESSAGE)
+ @$(ECHO) "# automatically generated, do not edit!" >$@_
+ # write helper variables containing the IDL-C-Sources
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET), \
+ \nIDL_SRC_C_$(target)=$(call IDL_SRC_Cfn,$(target))))'>>$@_
+ # and add them to SRC_C
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET), \
+ \nSRC_C_$(target) += $$(IDL_SRC_C_$(target))))'>>$@_
+ # but set the variables empty for the current rule
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET), \
+ \n$(BID_OBJ_Makefile).inc: IDL_SRC_C_$(target)=))'>>$@_
+ # write helper variables containing the IDL-C++-Sources
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET), \
+ \nIDL_SRC_CC_$(target)=$(call IDL_SRC_CCfn,$(target))))'>>$@_
+ # and add them to SRC_CC
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET), \
+ \nSRC_CC_$(target) += $$(IDL_SRC_CC_$(target))))'>>$@_
+ # but set the variables empty for the current rule
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET), \
+ \n$(BID_OBJ_Makefile).inc: IDL_SRC_CC_$(target)=))'>>$@_
+ # write the object declaration variables
+ # TARGET_{STANDARD, PIC, SHARED} contain the appropriate targets
+ # TARGET_PROFILE_{STANDARD, PIC, SHARED} as well
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET_STANDARD), \
+ \nOBJS_$(target) += $(call targetobjs,$(target),)))' >>$@_
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET_PIC) \
+ $(TARGET_SHARED), \
+ \nOBJS_$(target) += $(call targetobjs,$(target),.s)))' >>$@_
+ @$(ECHO) -en '$(strip $(foreach target,$(TARGET_PROFILE), \
+ \nOBJS_$(target) += $(call targetobjs,$(target),.pr)))' >>$@_
+ @$(ECHO) -e '$(strip $(foreach target,$(TARGET_PROFILE_PIC) \
+ $(TARGET_PROFILE_SHARED), \
+ \nOBJS_$(target) += $(call targetobjs,$(target),.pr.s)))' >>$@_
+ #
+ # write the dpe-dependencies
+ @$(ECHO) -e '$(foreach obj,$(sort \
+ $(foreach t,$(TARGET_STANDARD),$(call targetobjs,$t)) \
+ $(foreach t,$(TARGET_PIC) $(TARGET_SHARED), \
+ $(call targetobjs,$t,.s)) \
+ $(foreach t,$(TARGET_PROFILE),$(call targetobjs,$t,.pr)) \
+ $(foreach t,$(TARGET_PROFILE_PIC) $(TARGET_PROFILE_SHARED),\
+ $(call targetobjs,$t,.pr.s))),$(strip \
+ $(addprefix \n$(obj): ,$(patsubst %.dpe,%.dpi, \
+ $(DPE_$(obj:.o=.c)) $(DPE_$(obj:.o=.cc)) \
+ $(DPE_$(obj:.s.o=.c)) $(DPE_$(obj:.s.o=.cc)) \
+ $(DPE_$(obj:.pr.o=.c)) $(DPE_$(obj:.pr.o=.cc)) \
+ $(DPE_$(obj:.pr.s.o=.c)) $(DPE_$(obj:.pr.s.o=.cc)) \
+ ))))' >>$@_
+ #
+ # create the object-dirs
+ @$(if $(OBJDIRS), $(VERBOSE)set -e; for d in $(OBJDIRS); do \
+ [ -d "$$d" ] || $(MKDIR) $$d; done )
+
+ #
+ # write the object-dependencies for the targets
+ @$(ECHO) -e '$(foreach target,$(TARGET),$(strip\
+ \n$(target): $$(OBJS_$(target)) ))' >> $@_
+ # make the target dependent on '.general.d'
+ @$(ECHO) -e '$(foreach target,$(TARGET),$(strip \
+ \n$$(OBJS_$(target)): .general.d))' \
+ >> $@_
+ # Using LDSO does not need a RELOC address, so omit the following in
+ # this case
+ifneq ($(MODE),loader)
+ # in case of a binary, write the link address
+ # the dependency to the static file: If DEFAULT_RELOC is set,
+ # all targets are made dependent on the STATIC file
+ # (defined in Makeconf).
+ # If DEFAULT_RELOC_xxx is set, xxx is made dependent on the
+ # STATIC file.
+ifneq ($(strip $(foreach target,$(TARGET), $(call default_reloc,$(target)))),)
+ifneq ($(filter l4linux host,$(MODE)),)
+ $(error DEFAULT_RELOC must not be set if MODE is l4linux or host)
+endif
+ # the relocatable binaries depend on Makefile.inc
+ @$(ECHO) -e '\n$(strip \
+ $(foreach target, $(TARGET), \
+ $(if $(call default_reloc,$(target)),$(target))) \
+ : $@)' >>$@_
+ifneq ($(wildcard $(STATICFILE)),)
+ # Makefile.inc depends on STATIC
+ @$(ECHO) -e '\n$@: $(firstword $(wildcard $(STATICFILE)))' >>$@_
+ # we find out the relocation address here.
+ @$(ECHO) -e '$(foreach target, $(TARGET),$(strip \
+ \nLDFLAGS_$(target)+= -Ttext=$(firstword \
+ $(shell $(AWKP) -v prog=$(target) \
+ "/^[^\#]/{if(\$$2==prog){print $$1; exit}}" \
+ < $(firstword $(wildcard $(STATICFILE)))) \
+ $(call default_reloc,$(target)))))' \
+ >>$@_
+ # and the dummy-rule to rebuild myself if STATIC disappears
+ @$(ECHO) -e '\n$(firstword $(wildcard $(STATICFILE))): ' >>$@_
+else
+ # STATIC does not exist. rebuild myself if STATIC appears
+ @$(ECHO) -e '\n$$(if $$(wildcard $(STATICFILE)), $@: FORCE)' \
+ >>$@_
+ # we find out the relocation address here.
+ @$(ECHO) -e '$(foreach target, $(TARGET),$(strip \
+ \nLDFLAGS_$(target)+= -Ttext=$(firstword \
+ $(call default_reloc,$(target)))))' \
+ >>$@_
+endif # STATIC file
+endif
+endif # MODE != loader
+ @mv $@_ $@
+
+ifeq ($(filter scrub help,$(MAKECMDGOALS)),)
+-include $(BID_OBJ_Makefile).inc
+endif
+
+#
+# Rules Section
+#
+
+# the default target "all" ensures building of the targets. When multiple
+# architectures are used, the targets are build in subdirs.
+
+# the relink-rule: make the TARGETs phony. Specification of build-targets
+# in MAKECMDGOALS is not allowed. Possibility: TARGET=
+#
+ifneq ($(filter relink,$(MAKECMDGOALS)),)
+.PHONY: $(TARGET)
+relink: all
+endif
+
+
+
+###
+#
+# Compilation rules with dependency-generation
+#
+# If we have ld.so, we use it to create our dependencies (see MAKEDEP
+# definition). Otherwise, we fall back to whatever we need. For
+# compilation with gcc, this is using "-MD" and postprocessing the
+# generated files.
+
+ifeq ($(HAVE_LDSO),)
+LIBDEPS = $(foreach file, \
+ $(patsubst -l%,lib%.a,$(filter-out -L%,$(LDFLAGS))) \
+ $(patsubst -l%,lib%.so,$(filter-out -L%,$(LDFLAGS))),\
+ $(word 1, $(foreach dir, \
+ $(patsubst -L%,%,\
+ $(filter -L%,$(LDFLAGS) $(L4ALL_LIBDIR))),\
+ $(wildcard $(dir)/$(file)))))
+
+DEPEND_EXTEND_CMD = $(AWKP) ' \
+/^[^:]*: ..*/{ \
+ while(sub("\\\\$$","")){ \
+ getline nextline ; \
+ $$0=$$0 " " nextline \
+ } \
+ split($$0,field,": "); \
+ sub("^$(*F).o","$*.s $*.i $@",field[1]); \
+ nr=split(field[2],deps) ; \
+ for(i=1;i<=nr;){ \
+ printf("ifeq ($$(shell test y \\\n"); \
+ for(j=0; j<100 && i+j<=nr; j++){ \
+ printf("-a -r %s \\\n", deps[i+j]); \
+ } \
+ printf("&& echo y),)"); \
+ printf("\n%s: FORCE\nelse\n%s: $(BID_OBJ_Makefile) \\\n", \
+ field[1],field[1]); \
+ for(j=0; j<100 && i+j<=nr; j++){ \
+ printf("%s \\\n",deps[i+j]); \
+ } \
+ printf("\nendif\n"); \
+ i+=j; \
+ } \
+}'
+DEPEND_EXTEND_FUNC = ( $(DEPEND_EXTEND_CMD) < $(1) > $(2).new && rm -f $(1) && mv $(2).new $(2) ) || ( rm -f $(1) $(2).new $(2) ; $(DEPEND_IGNORE_ERRORS) )
+DEPEND_FLAG = -MD
+
+.PHONY: FORCE
+endif # HAVE_LDSO empty
+
+%.o: %.cc
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CXX_NAME)) $(CXX) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CXXFLAGS) $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.s.o: %.cc
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CXX_NAME)) $(CXX) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.pr.o: %.cc
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CXX_NAME)) $(CXX) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CXXFLAGS) -DPROFILE -pg $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.pr.s.o: %.cc
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CXX_NAME)) $(CXX) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -DPROFILE -pg $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.o: %.cpp
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CXX_NAME)) $(CXX) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CXXFLAGS) $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.s.o: %.cpp
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CXX_NAME)) $(CXX) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.pr.o: %.cpp
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CXX_NAME)) $(CXX) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CXXFLAGS) -DPROFILE -pg $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.pr.s.o: %.cpp
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CXX_NAME)) $(CXX) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -DPROFILE -pg $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.o: %.c
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CPP_NAME)) $(CC) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CFLAGS) $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.s.o: %.c
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CPP_NAME)) $(CC) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CFLAGS) $(PICFLAGS) $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.pr.o: %.c
+ @$(COMP_PR_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CPP_NAME)) $(CC) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CFLAGS) -DPROFILE -pg $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.pr.s.o: %.c
+ @$(COMP_PR_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CPP_NAME)) $(CC) -c $(DEPEND_FLAG) $(CPPFLAGS) $(CFLAGS) $(PICFLAGS) -DPROFILE -pg $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.o: %.S
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CPP_NAME)) $(CC) -c $(DEPEND_FLAG) $(CPPFLAGS) $(ASFLAGS) $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.s.o: %.S
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CPP_NAME)) $(CC) -c $(DEPEND_FLAG) $(CPPFLAGS) $(ASFLAGS) $(PICFLAGS) $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.pr.o: %.S
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CPP_NAME)) $(CC) -c $(DEPEND_FLAG) $(CPPFLAGS) $(ASFLAGS) -DPROFILE -pg $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.pr.s.o: %.S
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_CPP_NAME)) $(CC) -c $(DEPEND_FLAG) $(CPPFLAGS) $(ASFLAGS) $(PICFLAGS) -DPROFILE -pg $(call absfilename,$<) -o $@
+ $(DEPEND_VERBOSE)$(call DEPEND_EXTEND_FUNC, $(*F).d, $(dir $@).$(notdir $@).d)
+
+%.c: %.y
+ @$(GEN_MESSAGE)
+ $(VERBOSE)$(YACC) $(YFLAGS) $(call absfilename,$<)
+ $(VERBOSE)mv -f y.tab.c $@
+ $(VERBOSE)if [ -f y.tab.h ]; then mv -f y.tab.h $(@:.c=.h); fi
+
+%.c: %.l
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(LEX) -o$@ $(call absfilename,$<)
+
+%.i: %.c
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CC) -E -H -dD $(CPPFLAGS) $(CFLAGS) $(call absfilename,$<) -o $@
+ $(VERBOSE)$(INDENT) -o $@ $@
+
+%.s.i: %.c
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CC) -E -H -dD $(CPPFLAGS) $(CFLAGS) $(PICFLAGS) $(call absfilename,$<) -o $@
+ $(VERBOSE)$(INDENT) -o $@ $@
+
+%.i: %.cc
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CXX) -E -H -dD $(CPPFLAGS) $(CXXFLAGS) $(call absfilename,$<) -o $@
+ $(VERBOSE)$(INDENT) -sob -o $@ $@
+
+%.s.i: %.cc
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CXX) -E -H -dD $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) $(call absfilename,$<) -o $@
+ $(VERBOSE)$(INDENT) -sob -o $@ $@
+
+%.i: %.cpp
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CXX) -E -H -dD $(CPPFLAGS) $(CXXFLAGS) $(call absfilename,$<) -o $@
+ $(VERBOSE)$(INDENT) -sob -o $@ $@
+
+%.i: %.S
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CC) -E -H -dD $(CPPFLAGS) $(ASFLAGS) $(call absfilename,$<) -o $@
+ $(VERBOSE)$(INDENT) -sob -o $@ $@
+
+%.S: %.c
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CC) -S $(CFLAGS) $(CPPFLAGS) $(call absfilename,$<) -o $@
+
+%.S: %.cc
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CXX) -S $(CXXFLAGS) $(CPPFLAGS) $(call absfilename,$<) -o $@
+
+%.S: %.cpp
+ @$(COMP_MESSAGE)
+ $(VERBOSE)$(CXX) -S $(CXXFLAGS) $(CPPFLAGS) $(call absfilename,$<) -o $@
+
+%.dpi: %.dpe
+ @$(GEN_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,perl) $(GEN_DOPECODE) $< >$@
+
+DEPS += $(foreach file,$(ALLOBJS), $(dir $(file)).$(notdir $(file)).d)
+DEPS += $(foreach file,$(ALLDPI), $(dir $(file)).$(notdir $(file)).d)
+
+# Common clean Rules
+
+clean cleanall::
+ $(VERBOSE)$(RM) $(strip $(filter-out $(KEEP_ON_CLEAN),\
+ $(wildcard *.dpi) $(wildcard *.o) $(ALLOBJS) $(DEL_ON_CLEAN)))
+
+# clean: delete all temporary editor files, objects, binaries
+# and most generated files
+cleanall::
+ $(VERBOSE)$(RM) $(TARGET) $(wildcard .*.d) $(wildcard $(BID_OBJ_Makefile).inc)
+
+.PHONY: scrub clean cleanall disasm
+
+endif # $(SYSTEM) is defined
+
+# General rules
+
+# scrub: delete temporary editor files and stuff like this
+# can be extended by lokals
+scrub cleanall::
+ $(VERBOSE)$(SCRUB)
+
diff --git a/libdde_linux26/mk/config.help b/libdde_linux26/mk/config.help
new file mode 100644
index 00000000..9e0a8728
--- /dev/null
+++ b/libdde_linux26/mk/config.help
@@ -0,0 +1,379 @@
+CPU architecture
+BUILD_ARCH_x86
+ Specify for which processor architecture you want to build. You may
+ select between x86 (PC), arm, and amd64.
+
+
+CPU-Types for architecture
+CPU
+ Specify for which CPU types you want to build code.
+ Specify at least one CPU type.
+
+ Supported CPUs for x86 architecture are: 586, 686, K6, K7.
+ Supported CPUs for arm architecture are: sa, int.
+
+ You can build for multiple CPU types, the code will be stored in
+ different directories.
+
+
+Build code using API
+BUILD_ABI_l4v2
+ Specify the version of the Kernel Programming Interface. You may
+ select between L4.Fiasco (previously V2) or Linux.
+
+
+Build for arm architecture
+BUILD_SYSTEMS_arm_s
+ If you want to build code for the arm architecture, say Y here.
+
+ You can build for multiple architectures, the code will be stored in
+ different directories.
+
+ Most users will say N here.
+
+CPU-Types for arm architecture
+CPU_arm
+ Specify for which arm architecture CPU types you want to build code.
+ Specify at least one CPU type. Supported CPUs are: sa.
+
+ You can build for multiple CPU types, the code will be stored in
+ different directories.
+
+Build for amd64 architecture
+BUILD_SYSTEMS_amd64_s
+ If you want to build code for the amd64 architecture, say Y here.
+
+ You can build for multiple architectures, the code will be stored in
+ different directories.
+
+ Most users will say N here.
+
+CPU-Types for amd64 architecture
+CPU_amd64
+ Specify for which amd64 architecture CPU types you want to build code.
+ Specify at least one CPU type.
+
+ You can build for multiple CPU types, the code will be stored in
+ different directories.
+
+Build for ppc32 architecture
+BUILD_SYSTEMS_ppc32_s
+ If you want to build code for the ppc32 architecture, say Y here.
+
+ You can build for multiple architectures, the code will be stored in
+ different directories.
+
+ Most users will say N here.
+
+CPU-Types for ppc32 architecture
+CPU_ppc32
+ Specify for which ppc32 architecture CPU types you want to build code.
+ Specify at least one CPU type.
+
+ You can build for multiple CPU types, the code will be stored in
+ different directories.
+
+
+
+
+Build shared libloaders.s.so
+BUILD_LOADER
+ The "loader" package allows to build a shared library containing
+ common libraries of L4Env. To build this shared library, the other
+ L4Env libraries must be build in PIC mode, additionally to the
+ normal, i.e. non-PIC, mode.
+
+ If you want to use the loader, say Y here.
+
+
+Base directory of the DROPS install tree
+DROPS_STDDIR
+ This is the directory where the includes, libraries and binaries
+ are looked for. On 'make install', files are installed here.
+
+ For users at TUD with access to os:/home/drops, this is /home/drops.
+ For others, this is usually $(HOME)/src/drops or similar.
+
+
+Final location of the DROPS install tree
+DROPS_INSTDIR
+ In case you are installing into a temporary DROPS_STDDIR subdirectory,
+ which will be moved later, set DROPS_INSTDIR to this final
+ destination.
+
+ You will normally use the default setting "$(DROPS_STDDIR)".
+ DROPS_INSTDIR is merely used by the daily consitency-check of DROPS.
+
+
+DDE-2.4 include path
+DDE_INCDIR
+ This is a space-separated list of paths where the DDE-Linux includes
+ can be found.
+
+ Upon compilation, the DDE-Linux package installs its header files
+ like any other DROPS package into subdirs of $(L4DIR)/include or
+ $(DROPS_STDDIR)/include, respectively. This variable lists these
+ subdirectories.
+
+ Normally, you do not have to change this value.
+
+DDE-2.6 include path
+DDE26_INCDIR
+ This is a space-separated list of paths where the includes of the
+ Linux-2.6 version of the DDE-Linux package (dde_linux26) can be
+ found.
+
+ Upon compilation, the DDE-Linux 2.6 package installs its header
+ files like any other DROPS package into subdirs of $(L4DIR)/include
+ or $(DROPS_STDDIR)/include, respectively. This variable lists these
+ subdirectories.
+
+ Normally, you do not have to change this value.
+
+
+SDL include path
+SDL_INCDIR
+ This is a space-separated list of paths where the SDL includes can
+ be found.
+
+ Upon compilation, the SDL package installs its header files
+ like any other DROPS package into subdirs of $(L4DIR)/include or
+ $(DROPS_STDDIR)/include, respectively. This variable lists these
+ subdirectories.
+
+ Normally, you do not have to change this value.
+
+
+Verbose dependency building
+DEPEND_VERBOSE_SWITCH
+ If enabled, the commands for dependency-generation will be shown. If
+ disabled, DEPEND_VERBOSE is set to '@' to prevent this.
+
+ Most users will say N here.
+
+
+Verbose compilation and building
+VERBOSE_SWITCH
+ If enabled, the commands issued for compilation will be shown. If
+ disabled, VERBOSE is set to '@' to prevent this.
+
+
+Short messages for compilation
+SHOWMESSAGES
+ If enabled, a short textual description for every compilation step
+ is printed.
+
+ Most users will say Y here.
+
+
+Colored build-steps
+BID_COLORED_PHASES
+ If enabled, significant messages will be printed in color, depending
+ on your $TERM setting.
+
+
+Use special C-Compilers
+BIDc_USE_SPECIAL_CC
+ If you want to specify specific versions of C and C++ compilers instead
+ of using the default ones, enable this option. Defaults are
+ "$(SYSTEM_TARGET)gcc" and "$(SYSTEM_TARGET)g++".
+
+ Most users will say N here.
+
+Specific C-Compiler
+HOSTCC
+ The C compiler to use to generate code for the host system (the one
+ you are using currently).
+
+Specific C++-Compiler
+HOSTCXX
+ The C++ compiler to use to generate code for the host system (the one
+ you are using currently).
+
+Specific C-Compiler
+CC_x86
+ The C compiler to build x86 code.
+
+Specific C++-Compiler
+CXX_x86
+ The C++ compiler to build x86 code.
+
+Specific C-Compiler
+CC_arm
+ The C compiler to build arm code.
+
+Specific C++-Compiler
+CXX_arm
+ The C++ compiler to build arm code.
+
+
+YACC-name
+YACC
+ If you would like to use alternative yacc or lex tools, set those names
+ here. Defaults are 'byacc' and 'flex'. You can also specify cmdline
+ arguments using this option.
+
+LEX-name
+LEX
+ If you would like to use alternative yacc or lex tools, set those names
+ here. Defaults are 'byacc' and 'flex'. You can also specify cmdline
+ arguments using this option.
+
+CTAGS-name
+CTAGS
+ If you would like to use alternative ctags tool, set its name here.
+ You may want to at least also specify a recursive option for your ctags
+ tool.
+
+ETAGS-name
+ETAGS
+ If you would like to use alternative etags tool, set its name here.
+ You may want to at least also specify a recursive option for your etags
+ tool.
+
+System has ld.so
+HAVE_LDSO
+ If your system provides the dynamic linker ld.so, and this is used
+ by your compilers, you should enable this switch. This allows to
+ use faster, more flexible and more accurate methods for dependency
+ building.
+
+ Most Linux-users will say Y here.
+
+
+Automatically determine C preprocessor names
+INT_CPP_NAME_SWITCH
+ If you use C-compilers BID does not know so far, there is a chance you
+ have to help BID about the names of the C and C++ preprocessors. E.g.,
+ gcc tends to change its preprocessor names from subversion to
+ subversion, and the dependency tool used by BID wants to know about
+ these names. However, if dependencies are generated well, BID already
+ selected the corrects names for you.
+
+ Most users will say Y here.
+
+
+Internal C preprocessor name
+INT_CPP_x86_NAME
+ The command name of the preprocessor your x86 C compiler uses.
+ Note: It is not necessarily the preprocessor as you would invoke it
+ from the command line. gcc uses its own internal names.
+
+ For gcc versions prior to gcc 2.95.4 it is 'cpp'.
+ gcc verssion 2.95.4 uses 'cpp0'. gcc version 3.2 uses 'cc1'.
+
+
+Internal C++ preprocessor name
+INT_CXX_x86_NAME
+ The command name of the preprocessor your x86 C++ compiler uses.
+ Note: It is not necessarily the preprocessor as you would invoke it
+ from the command line. g++ uses its own internal names.
+
+ For g++ versions prior to gcc 2.95.4 it is 'cpp'.
+ gcc verssion 2.95.4 uses 'cpp0'. gcc version 3.2 uses 'cc1plus'.
+
+
+Internal C preprocessor name
+INT_CPP_arm_NAME
+ The command name of the preprocessor your arm C compiler uses.
+ Note: It is not necessarily the preprocessor as you would invoke it
+ from the command line. gcc uses its own internal names.
+
+ For gcc versions prior to gcc 2.95.4 it is 'cpp'.
+ gcc verssion 2.95.4 uses 'cpp0'. gcc version 3.2 uses 'cc1'.
+
+
+Internal C++ preprocessor name
+INT_CXX_arm_NAME
+ The command name of the preprocessor your arm C++ compiler uses.
+ Note: It is not necessarily the preprocessor as you would invoke it
+ from the command line. g++ uses its own internal names.
+
+ For g++ versions prior to gcc 2.95.4 it is 'cpp'.
+ gcc verssion 2.95.4 uses 'cpp0'. gcc version 3.2 uses 'cc1plus'.
+
+
+Automatically determine LD names
+INT_LD_NAME_SWITCH
+ If you use C/C++ compilers BID does not know so far, there is a
+ chance you have to help BID about the names of the linker binaries.
+ E.g., linker binaries change on cross-compiler environments. The
+ dependency tool used by BID wants to know about these names.
+ However, if dependencies are generated well, BID already selected the
+ corrects names for you.
+
+ Most users will say Y here.
+
+Internal linker name
+INT_LD_x86_NAME
+ The command name of the linker your x86 C/C++ compiler uses.
+
+Internal linker name
+INT_LD_arm_NAME
+ The command name of the linker your arm C/C++ compiler uses.
+
+Strip binaries on install
+BID_STRIP_PROGS
+ If enabled, binaries will be stripped on installation into
+ $(L4DIR)/bin or $(DROPS_STDDIR)/bin. If you want to load them with
+ all their symbols (eg to show the symbols with the Fiasco kernel
+ debugger), say 'N' here.
+
+ If unsure, say 'Y'.
+
+Generate gstabs-compatible debug Infos with gcc-3+
+BID_GSTAB_SW
+ If enabled, gcc will be passed the '-gstabs+' cmdline option. gcc will
+ generate debug information in the stabs format, including GNU
+ specific extensions.
+
+ Enable this option to show the line information in the fiasco kernel
+ debugger. Disable BID_STRIP_PROGS then.
+
+ You can safely say 'Y' here.
+
+GCC: Omit Frame-pointers
+BID_GCC_OMIT_FP
+
+ If enabled, gcc will be passed the '-fomit-frame-pointer' cmdline
+ option, adding an additional register to the register set for the
+ generated code. Programs will be faster, but backtraces cannot be
+ done, seriously hindering debugging.
+
+ If unsure, say 'N'.
+
+Generate Map-files for binaries
+BID_GENERATE_MAPFILE
+
+ Enabling this option will generate map-files together with the binaries.
+ You do not need mapfiles for DROPS to work properly, but you might
+ become handy for debugging purposes. See ld(1) for details on mapfiles.
+
+ If unsure, say 'N'.
+
+Build system using dietlibc
+USE_DIETLIBC
+ Uses the dietlibc as the main libc (deprecated).
+
+Build system using uClibc
+USE_UCLIBC
+ Uses the uClibc as the main libc.
+
+Enable Release flag
+RELEASE_FLAG
+ This option enables the RELEASE flag possible omitting
+ debugging/development code.
+
+Build documentation
+BID_BUILD_DOC
+ Build documentation.
+
+Build only in l4 directory
+BID_BUILD_L4DIR_ONLY
+ Only build in l4 directory, no kernel, no dice.
+
+Name for the configuration
+CONFIG_LABEL
+ Name for the configuration. The build system will also try to include
+ a file Makeconf.<label> from the build directory root and the l4 directory
+ root.
diff --git a/libdde_linux26/mk/config.in b/libdde_linux26/mk/config.in
new file mode 100644
index 00000000..ebf52232
--- /dev/null
+++ b/libdde_linux26/mk/config.in
@@ -0,0 +1,214 @@
+# -*- Shell-script -*-
+# vim:se ft=sh:
+
+mainmenu_name "DROPS Configuration"
+
+mainmenu_option next_comment
+comment 'Target Architecture'
+
+choice 'Target Architecture' \
+ "x86 BUILD_ARCH_x86 \
+ arm BUILD_ARCH_arm \
+ amd64 BUILD_ARCH_amd64" x86
+
+if [ "$BUILD_ARCH_x86" = "y" ] ; then
+ define_string BUILD_ARCH "x86"
+ string " CPU type" CPU '586'
+fi
+
+if [ "$BUILD_ARCH_arm" = "y" ] ; then
+ define_string BUILD_ARCH "arm"
+fi
+
+if [ "$BUILD_ARCH_amd64" = "y" ] ; then
+ define_string BUILD_ARCH "amd64"
+ string " CPU type" CPU 'k8'
+fi
+
+
+choice ' ABI' \
+ "L4.Fiasco BUILD_ABI_l4v2 \
+ Linux BUILD_ABI_linux" L4.Fiasco
+
+if [ "$BUILD_ABI_l4v2" = "y" ] ; then
+ define_string BUILD_ABI "l4v2"
+fi
+if [ "$BUILD_ABI_linux" = "y" ] ; then
+ define_string BUILD_ABI "linux"
+fi
+
+if [ "$BUILD_ARCH_arm" = "y" ] ; then
+
+ choice 'ARM Platform' \
+ "integrator PLATFORM_ARM_integrator \
+ rv PLATFORM_ARM_rv \
+ custom PLATFORM_ARM_custom" integrator
+
+ if [ "$PLATFORM_ARM_integrator" = "y" ] ; then
+ define_string CPU 'int'
+ define_string ARM_PLATFORM_TYPE 'integrator'
+ string "RAM base" RAM_BASE 0x0
+ int "RAM size in MB" RAM_SIZE_MB 256
+ fi
+ if [ "$PLATFORM_ARM_rv" = "y" ] ; then
+ define_string CPU 'rv'
+ define_string ARM_PLATFORM_TYPE 'rv'
+ string "RAM base" RAM_BASE 0x0
+ int "RAM size in MB" RAM_SIZE_MB 256
+ fi
+
+ if [ "$PLATFORM_ARM_custom" = "y" ] ; then
+ string " CPU type" CPU 'int'
+ string " Platform name" ARM_PLATFORM_TYPE 'integrator'
+ string "RAM base" RAM_BASE 0x0
+ int "RAM size in MB" RAM_SIZE_MB 256
+ fi
+
+
+fi
+
+endmenu
+
+
+mainmenu_option next_comment
+comment 'Paths and Directories'
+string 'DROPS_STDDIR' DROPS_STDDIR '/path/to/drops'
+string 'DROPS_INSTDIR' DROPS_INSTDIR '$(DROPS_STDDIR)'
+endmenu
+
+mainmenu_option next_comment
+comment 'Verboseness and Messages'
+bool 'Verbose dependency building' DEPEND_VERBOSE_SWITCH
+if [ "$DEPEND_VERBOSE_SWITCH" = "n" ] ; then
+ define_string DEPEND_VERBOSE @
+fi
+bool 'Verbose compilation and building' VERBOSE_SWITCH
+if [ "$VERBOSE_SWITCH" = "n" ] ; then
+ define_string VERBOSE @
+fi
+bool 'Short messages for compilation' SHOWMESSAGES
+if [ "$SHOWMESSAGES" = "y" ] ; then
+ bool 'Colored build-steps' BID_COLORED_PHASES
+fi
+endmenu
+
+mainmenu_option next_comment
+comment 'Compilers and Tools'
+bool 'Use special C-Compilers' BIDc_USE_SPECIAL_CC
+if [ "$BIDc_USE_SPECIAL_CC" = "y" ] ; then
+ string 'HOST_CC' HOST_CC 'gcc'
+ string 'HOST_CXX' HOST_CXX 'g++'
+ if [ "$BUILD_ARCH" = "x86" ] ; then
+ string 'CC' CC '$(SYSTEM_TARGET_x86)gcc -m32'
+ string 'CXX' CXX '$(SYSTEM_TARGET_x86)g++ -m32'
+ fi
+ if [ "$BUILD_ARCH" = "arm" ] ; then
+ string 'CC' CC '$(SYSTEM_TARGET_arm)gcc'
+ string 'CXX' CXX '$(SYSTEM_TARGET_arm)g++'
+ fi
+ if [ "$BUILD_ARCH" = "amd64" ] ; then
+ string 'CC' CC '$(SYSTEM_TARGET_amd64)gcc -m64'
+ string 'CXX' CXX '$(SYSTEM_TARGET_amd64)g++ -m64'
+ fi
+else
+ define_string HOST_CC 'gcc'
+ define_string HOST_CXX 'g++'
+ if [ "$BUILD_ARCH" = "x86" ] ; then
+ define_string CC '$(SYSTEM_TARGET_x86)gcc -m32'
+ define_string CXX '$(SYSTEM_TARGET_x86)g++ -m32'
+ fi
+ if [ "$BUILD_ARCH" = "arm" ] ; then
+ define_string CC '$(SYSTEM_TARGET_arm)gcc'
+ define_string CXX '$(SYSTEM_TARGET_arm)g++'
+ fi
+ if [ "$BUILD_ARCH" = "amd64" ] ; then
+ define_string CC '$(SYSTEM_TARGET_amd64)gcc -m64'
+ define_string CXX '$(SYSTEM_TARGET_amd64)g++ -m64'
+ fi
+fi
+comment "Tools"
+string 'YACC' YACC byacc
+string 'LEX' LEX flex
+string 'CTAGS' CTAGS ctags
+string 'ETAGS' ETAGS etags
+
+comment "Options"
+bool 'System has ld.so (highly recommended if so)' HAVE_LDSO
+if [ "$HAVE_LDSO" = "y" ] ; then
+ bool 'Automatically determine internal gcc preprocessor names' INT_CPP_NAME_SWITCH
+ if [ "$INT_CPP_NAME_SWITCH" = "n" ] ; then
+ if [ "$BUILD_ARCH" = "x86" ] ; then
+ string 'Internal name of x86 gcc preprocessor' INT_CPP_NAME "cpp0"
+ string 'Internal name of x86 g++ preprocessor' INT_CXX_NAME "cpp0"
+ fi
+ if [ "$BUILD_ARCH" = "arm" ] ; then
+ string 'Internal name of arm gcc preprocessor' INT_CPP_NAME "cpp0"
+ string 'Internal name of arm g++ preprocessor' INT_CXX_NAME "cpp0"
+ fi
+ if [ "$BUILD_ARCH" = "amd64" ] ; then
+ string 'Internal name of amd64 gcc preprocessor' INT_CPP_NAME "cpp0"
+ string 'Internal name of amd64 g++ preprocessor' INT_CXX_NAME "cpp0"
+ fi
+ fi
+ bool 'Automatically determine internal ld names' INT_LD_NAME_SWITCH
+ if [ "$INT_LD_NAME_SWITCH" = "n" ] ; then
+ if [ "$BUILD_ARCH" = "x86" ] ; then
+ string 'Internal name of x86 gcc/g++ linker' INT_LD_NAME "ld"
+ fi
+ if [ "$BUILD_ARCH" = "arm" ] ; then
+ string 'Internal name of arm gcc/g++ linker' INT_LD_NAME "ld"
+ fi
+ if [ "$BUILD_ARCH" = "amd64" ] ; then
+ string 'Internal name of amd64 gcc/g++ linker' INT_LD_amd64_NAME "ld"
+ fi
+ fi
+fi
+bool 'Strip binaries on install' BID_STRIP_PROGS
+bool 'Generate stabs-compatible debug Infos with gcc-3+' BID_GSTAB_SW
+if [ "$BID_GSTAB_SW" = "y" ] ; then
+ define_string BID_CFLAGS_GSTAB "-gstabs+"
+fi
+bool 'GCC: Omit Frame-pointers' BID_GCC_OMIT_FP
+if [ "$BID_GCC_OMIT_FP" = "y" ] ; then
+ define_string BID_CFLAGS_OMIT_FP "-fomit-frame-pointer"
+fi
+bool 'Generate Map-files for binaries' BID_GENERATE_MAPFILE
+bool 'Build doc directories' BID_BUILD_DOC
+
+endmenu
+
+mainmenu_option next_comment
+ comment 'Advanced'
+
+ define_bool USE_UCLIBC "y"
+ define_bool USE_DIETLIBC "n"
+
+ define_bool BUILD_LOADER "y"
+ define_string BUILD_LOADER_PICS 'libl4util.a libl4util_root.a libsigma0.a libnames.a libloaderif.a libcon.a libl4rm.a libbootmod.a libcon.a libconstream-server.a libdm_generic.a libdm_mem.a libgeneric_ts.a liblogserver.a liblogserver_capsule.a libsemaphore.a libthread.a libslab.a libgeneric_fprov.a libl4env_err.a libl4env.a libroot.a libc_be_l4env_start_stop.a libc_be_minimal_log_io.a libc_be_simple_mem.a libc_be_mmap.a libc_be_mmap_util.a libuclibc_support.a libuclibm_support.a librtc.a libl4env-l4lx.a'
+
+ bool 'Use system-call entry code in the KIP (absolute)' L4_CALL_SYSCALLS
+ if [ "$L4_CALL_SYSCALLS" = "y" ] ; then
+ define_bool L4_ABS_SYSCALLS "y"
+ define_string BID_CPPFLAGS_SYSCALLS "-DCONFIG_L4_CALL_SYSCALLS -DCONFIG_L4_ABS_SYSCALLS"
+ fi
+
+ bool 'Use hierarchical task system (EXPERIMENTAL)' USE_TASKLIB
+ bool 'Enable RELEASE flag' RELEASE_MODE
+ bool 'Do not build anything outside l4 directory' BID_BUILD_L4DIR_ONLY
+
+ string 'Configuration label' CONFIG_LABEL
+
+ mainmenu_option next_comment
+ comment 'Paths'
+
+ define_string LINUX24_INCDIR '$(OBJ_BASE)/include/linux-24 $(DROPS_STDDIR)/include/linux-24'
+ define_string LINUX26_INCDIR '$(OBJ_BASE)/include/$(ARCH)/l4/linux-26-headers $(DROPS_STDDIR)/include/$(ARCH)/l4/linux-26-headers $(OBJ_BASE)/include/l4/linux-26-headers $(DROPS_STDDIR)/include/l4/linux-26-headers'
+
+ string 'DDE-2.4 include path (DDE_INCDIR)' DDE_INCDIR '$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux'
+ string 'DDE-2.6 include path (DDE26_INCDIR)' DDE26_INCDIR '$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux26 $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux26 $(OBJ_BASE)/include/l4/dde_linux26 $(DROPS_STDDIR)/include/l4/dde_linux26'
+ string 'SDL include path (SDL_INCDIR)' SDL_INCDIR '$(OBJ_BASE)/include/l4/sdl $(DROPS_STDDIR)/include/l4/sdl'
+ if [ "$BUILD_SYSTEMS_x86_l4secv2emu" = "y" ] ; then
+ string 'Fiasco build directory (FIASCO_DIR)' FIASCO_DIR '$(L4DIR)/kernel/fiasco/build_test/'
+ fi
+ endmenu
+endmenu
diff --git a/libdde_linux26/mk/config.inc b/libdde_linux26/mk/config.inc
new file mode 100644
index 00000000..841ef9b7
--- /dev/null
+++ b/libdde_linux26/mk/config.inc
@@ -0,0 +1,137 @@
+# -*- Makefile -*-
+# vim:set ft=make:
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Include for compiling templates (prog.mk, lib.mk)
+#
+
+# Makefile-Include for binary, lib, subdir and other directories.
+# Definitions and rules for the DROPS configuration tool.
+
+# Supported targets:
+#
+# config:: - run the menu-driven configuration tool
+# txtconfig:: - run the configuration tool
+# oldconfig:: - (re)create the configuration header based on a prior
+# configuration or default values
+#
+#
+# Required Parameters:
+#
+# PKGDIR
+#
+#
+# Optional Parameters:
+#
+# DROPSCONF - if nonempty, the configuration tool is run for
+# target config::. If empty, the configuration tool
+# is not run.
+# DROPSCONF_TITLE - the main title in the configuration tool.
+# DROPSCONF_DEFCONFIG - default config file
+# DROPSCONF_CONFIG_IN - configuration defintion file
+# DROPSCONF_CONFIG - config file
+# DROPSCONF_CONFIG_H - generated config header file
+# DROPSCONF_MACRO - macro to indicate inclusion of config header file
+# DROPSCONF_HELPFILE - options help file
+# DROPSCONF_TOOL - the menudriven configuration tool
+# DROPSCONF_TOOL_TXT - the configuration tool
+# DROPSCONF_TOOL_OLD - helper for recreating the config header file
+
+DROPSCONF ?=
+DROPSCONF_TITLE ?= DROPS Configuration Tool
+DROPSCONF_DEFCONFIG ?= defconfig
+DROPSCONF_CONFIG_IN ?= config.in
+DROPSCONF_CONFIG ?= $(OBJ_DIR)/.config
+DROPSCONF_CONFIG_H ?= $(OBJ_DIR)/config.h
+DROPSCONF_CONFIG_MK ?= $(OBJ_DIR)/Makeconf.bid.local
+DROPSCONF_DONTINC_MK ?=
+DROPSCONF_MACRO ?= CONFIG_H_INCLUDED
+DROPSCONF_HELPFILE ?= config.help
+DROPSCONF_LXDIALOG ?= $(OBJ_BASE)/tool/config/lxdialog/lxdialog
+DROPSCONF_TOOL ?= $(firstword $(wildcard \
+ $(L4DIR)/tool/config/Menuconfig \
+ $(DROPS_STDDIR)/tool/bin/Menuconfig) \
+ did_not_find_BID_Menuconfig)
+DROPSCONF_TOOL_TXT ?= $(firstword $(wildcard \
+ $(L4DIR)/tool/config/Configure \
+ $(DROPS_STDDIR)/tool/bin/Configure) \
+ did_not_find_BID_Configure)
+DROPSCONF_TOOL_OLD ?= $(firstword $(wildcard \
+ $(L4DIR)/tool/config/Configure \
+ $(DROPS_STDDIR)/tool/bin/Configure) \
+ did_not_find_BID_Configure) -d
+DROPSCONF_VARDEFS = $(foreach v,TITLE DEFCONFIG CONFIG_IN CONFIG CONFIG_H \
+ MACRO HELPFILE UNDEF LXDIALOG,DROPSCONF_$v='$(DROPSCONF_$v)')
+
+ifneq ($(DROPSCONF),)
+.o: $(DROPSCONF_CONFIG_H)
+
+$(DROPSCONF_CONFIG_H): $(DROPSCONF_CONFIG)
+
+$(DROPSCONF_CONFIG_H) $(DROPSCONF_CONFIG): $(DROPSCONF_CONFIG_IN)
+ @$(GEN_MESSAGE)
+ $(VERBOSE)install -d $(dir $(DROPSCONF_CONFIG))
+ $(VERBOSE)install -d $(dir $(DROPSCONF_CONFIG_H))
+ $(VERBOSE)if tty >/dev/null; then \
+ $(DROPSCONF_VARDEFS) $(DROPSCONF_TOOL_OLD); \
+ else \
+ true | $(DROPSCONF_VARDEFS) $(DROPSCONF_TOOL_OLD) \
+ $(if $(VERBOSE),>/dev/null,) || \
+ ( echo -e "\nError: Unattended mode -- Some defaults for config options are missing." ; \
+ false ) \
+ fi
+
+$(DROPSCONF_CONFIG_MK): $(DROPSCONF_CONFIG)
+ $(VERBOSE)sed -e "s/\(^[^= ]*=\)'\([^']*\)'/\1\2/" \
+ <$(DROPSCONF_CONFIG) >$@
+ $(VERBOSE)$(MAKE) DROPSCONF_CONFIG_MK_POST_HOOK
+
+DROPSCONF_CONFIG_MK_POST_HOOK::
+
+config:: $(DROPSCONF_LXDIALOG)
+ $(VERBOSE)install -d $(dir $(DROPSCONF_CONFIG_H))
+ $(VERBOSE)$(DROPSCONF_VARDEFS) $(DROPSCONF_TOOL)
+ $(VERBOSE)test ! -r $(DROPSCONF_CONFIG) -o \
+ ! $(DROPSCONF_CONFIG) -nt $(DROPSCONF_CONFIG_MK) || \
+ $(MAKE) $(DROPSCONF_CONFIG_MK)
+
+txtconfig::
+ $(VERBOSE)install -d $(dir $(DROPSCONF_CONFIG_H))
+ $(VERBOSE)$(DROPSCONF_VARDEFS) $(DROPSCONF_TOOL_TXT)
+ @$(MAKE) $(DROPSCONF_CONFIG_MK)
+
+oldconfig::
+ $(VERBOSE)install -d $(dir $(DROPSCONF_CONFIG_H))
+ $(VERBOSE)$(DROPSCONF_VARDEFS) $(DROPSCONF_TOOL_OLD)
+ @$(MAKE) $(DROPSCONF_CONFIG_MK)
+
+$(DROPSCONF_LXDIALOG):
+ $(VERBOSE)install -d $(@D)
+ $(VERBOSE)PWD=$(call absfilename,$(L4DIR)/tool/config) $(MAKE) -C $(L4DIR)/tool/config
+
+clean::
+
+cleanall::
+ $(VERBOSE)$(RM) $(DROPSCONF_CONFIG) $(DROPSCONF_CONFIG_H) \
+ $(DROPSCONF_CONFIG_MK) .menuconfig.log \
+ $(DROPSCONF_CONFIG).old
+help::
+ @echo " config - run the menu-driven configuration tool"
+ @echo " txtconfig - run the configuration tool"
+ @echo " oldconfig - (re)create the configuration header based on a prior"
+ @echo " configuration or default values"
+
+# special switch not to include DROPSCONF_CONFIG_MK
+ifeq ($(DROPSCONF_DONTINC_MK),)
+# do not prebuild the config file on "make config"
+ifeq ($(filter config oldconfig txtconfig help scrub clean cleanall $(DROPSCONF_CONFIG_MK),$(MAKECMDGOALS)),)
+-include $(DROPSCONF_CONFIG_MK)
+endif
+endif
+
+# end of DROPSCONF defined
+else
+config txtconfig oldconfig::
+endif
+
+.PHONY: config oldconfig txtconfig
diff --git a/libdde_linux26/mk/defconfig/config.l4check.amd64 b/libdde_linux26/mk/defconfig/config.l4check.amd64
new file mode 100644
index 00000000..7213f8d2
--- /dev/null
+++ b/libdde_linux26/mk/defconfig/config.l4check.amd64
@@ -0,0 +1,82 @@
+#
+# Automatically generated by configuration tool: don't edit
+#
+
+#
+# Target Architecture
+#
+BUILD_ARCH_x86=n
+BUILD_ARCH_arm=n
+BUILD_ARCH_amd64=y
+BUILD_ARCH='amd64'
+CPU='k8'
+BUILD_ABI_l4v2=y
+BUILD_ABI_linux=n
+BUILD_ABI='l4v2'
+
+#
+# Paths and Directories
+#
+DROPS_INSTDIR='$(DROPS_STDDIR)'
+
+#
+# Verboseness and Messages
+#
+DEPEND_VERBOSE_SWITCH=n
+DEPEND_VERBOSE='@'
+VERBOSE_SWITCH=y
+SHOWMESSAGES=y
+BID_COLORED_PHASES=y
+
+#
+# Compilers and Tools
+#
+BIDc_USE_SPECIAL_CC=n
+HOST_CC='gcc'
+HOST_CXX='g++'
+CC='$(SYSTEM_TARGET_amd64)gcc -m64'
+CXX='$(SYSTEM_TARGET_amd64)g++ -m64'
+
+#
+# Tools
+#
+YACC='byacc'
+LEX='flex'
+CTAGS='ctags'
+ETAGS='etags'
+
+#
+# Options
+#
+HAVE_LDSO=y
+INT_CPP_NAME_SWITCH=y
+INT_LD_NAME_SWITCH=y
+BID_STRIP_PROGS=n
+BID_GSTAB_SW=n
+BID_GCC_OMIT_FP=n
+BID_GENERATE_MAPFILE=n
+BID_BUILD_DOC=n
+
+#
+# Advanced
+#
+USE_UCLIBC=y
+USE_DIETLIBC=n
+BUILD_LOADER=y
+BUILD_LOADER_PICS='libl4util.a libl4util_root.a libsigma0.a libnames.a libloaderif.a libcon.a libl4rm.a libbootmod.a libcon.a libconstream-server.a libdm_generic.a libdm_mem.a libgeneric_ts.a liblogserver.a liblogserver_capsule.a libsemaphore.a libthread.a libslab.a libgeneric_fprov.a libl4env_err.a libl4env.a libroot.a libc_be_l4env_start_stop.a libc_be_minimal_log_io.a libc_be_simple_mem.a libc_be_mmap.a libc_be_mmap_util.a libuclibc_support.a librtc.a libl4env-l4lx.a'
+L4_CALL_SYSCALLS=y
+L4_ABS_SYSCALLS=y
+BID_CPPFLAGS_SYSCALLS='-DCONFIG_L4_CALL_SYSCALLS -DCONFIG_L4_ABS_SYSCALLS'
+USE_TASKLIB=n
+RELEASE_MODE=n
+BID_BUILD_L4DIR_ONLY=n
+CONFIG_LABEL='__none__'
+
+#
+# Paths
+#
+LINUX24_INCDIR='$(OBJ_BASE)/include/linux-24 $(DROPS_STDDIR)/include/linux-24'
+LINUX26_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/linux-26-headers $(DROPS_STDDIR)/include/$(ARCH)/l4/linux-26-headers $(OBJ_BASE)/include/l4/linux-26-headers $(DROPS_STDDIR)/include/l4/linux-26-headers'
+DDE_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux'
+DDE26_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux26 $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux26 $(OBJ_BASE)/include/l4/dde_linux26 $(DROPS_STDDIR)/include/l4/dde_linux26'
+SDL_INCDIR='$(OBJ_BASE)/include/l4/sdl $(DROPS_STDDIR)/include/l4/sdl'
diff --git a/libdde_linux26/mk/defconfig/config.l4check.arm-int-l4v2 b/libdde_linux26/mk/defconfig/config.l4check.arm-int-l4v2
new file mode 100644
index 00000000..c6aba286
--- /dev/null
+++ b/libdde_linux26/mk/defconfig/config.l4check.arm-int-l4v2
@@ -0,0 +1,89 @@
+#
+# Automatically generated by configuration tool: don't edit
+#
+
+#
+# Target Architecture
+#
+BUILD_ARCH_x86=n
+BUILD_ARCH_arm=y
+BUILD_ARCH_amd64=n
+BUILD_ARCH='arm'
+BUILD_ABI_l4v2=y
+BUILD_ABI_linux=n
+BUILD_ABI='l4v2'
+PLATFORM_ARM_integrator=y
+PLATFORM_ARM_rv=n
+PLATFORM_ARM_custom=n
+CPU='int'
+ARM_PLATFORM_TYPE='integrator'
+RAM_BASE='0x0'
+RAM_SIZE_MB=256
+
+#
+# Paths and Directories
+#
+DROPS_INSTDIR='$(DROPS_STDDIR)'
+
+#
+# Verboseness and Messages
+#
+DEPEND_VERBOSE_SWITCH=n
+DEPEND_VERBOSE='@'
+VERBOSE_SWITCH=y
+SHOWMESSAGES=y
+BID_COLORED_PHASES=y
+
+#
+# Compilers and Tools
+#
+BIDc_USE_SPECIAL_CC=n
+HOST_CC='gcc'
+HOST_CXX='g++'
+CC='$(SYSTEM_TARGET_arm)gcc'
+CXX='$(SYSTEM_TARGET_arm)g++'
+
+#
+# Tools
+#
+YACC='byacc'
+LEX='flex'
+CTAGS='ctags'
+ETAGS='etags'
+
+#
+# Options
+#
+HAVE_LDSO=y
+INT_CPP_NAME_SWITCH=y
+INT_LD_NAME_SWITCH=y
+BID_STRIP_PROGS=n
+BID_GSTAB_SW=y
+BID_CFLAGS_GSTAB='-gstabs+'
+BID_GCC_OMIT_FP=n
+BID_GENERATE_MAPFILE=n
+BID_BUILD_DOC=n
+
+#
+# Advanced
+#
+USE_UCLIBC=y
+USE_DIETLIBC=n
+BUILD_LOADER=y
+BUILD_LOADER_PICS='libl4util.a libl4util_root.a libsigma0.a libnames.a libloaderif.a libcon.a libl4rm.a libbootmod.a libcon.a libconstream-server.a libdm_generic.a libdm_mem.a libgeneric_ts.a liblogserver.a liblogserver_capsule.a libsemaphore.a libthread.a libslab.a libgeneric_fprov.a libl4env_err.a libl4env.a libroot.a libc_be_l4env_start_stop.a libc_be_minimal_log_io.a libc_be_simple_mem.a libc_be_mmap.a libc_be_mmap_util.a libuclibc_support.a librtc.a libl4env-l4lx.a'
+L4_CALL_SYSCALLS=y
+L4_ABS_SYSCALLS=y
+BID_CPPFLAGS_SYSCALLS='-DCONFIG_L4_CALL_SYSCALLS -DCONFIG_L4_ABS_SYSCALLS'
+USE_TASKLIB=n
+RELEASE_MODE=n
+BID_BUILD_L4DIR_ONLY=n
+CONFIG_LABEL='__none__'
+
+#
+# Paths
+#
+LINUX24_INCDIR='$(OBJ_BASE)/include/linux-24 $(DROPS_STDDIR)/include/linux-24'
+LINUX26_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/linux-26-headers $(DROPS_STDDIR)/include/$(ARCH)/l4/linux-26-headers $(OBJ_BASE)/include/l4/linux-26-headers $(DROPS_STDDIR)/include/l4/linux-26-headers'
+DDE_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux'
+DDE26_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux26 $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux26 $(OBJ_BASE)/include/l4/dde_linux26 $(DROPS_STDDIR)/include/l4/dde_linux26'
+SDL_INCDIR='$(OBJ_BASE)/include/l4/sdl $(DROPS_STDDIR)/include/l4/sdl'
diff --git a/libdde_linux26/mk/defconfig/config.l4check.x86-586-l4v2 b/libdde_linux26/mk/defconfig/config.l4check.x86-586-l4v2
new file mode 100644
index 00000000..a9196fc3
--- /dev/null
+++ b/libdde_linux26/mk/defconfig/config.l4check.x86-586-l4v2
@@ -0,0 +1,83 @@
+#
+# Automatically generated by configuration tool: don't edit
+#
+
+#
+# Target Architecture
+#
+BUILD_ARCH_x86=y
+BUILD_ARCH_arm=n
+BUILD_ARCH_amd64=n
+BUILD_ARCH='x86'
+CPU='586'
+BUILD_ABI_l4v2=y
+BUILD_ABI_linux=n
+BUILD_ABI='l4v2'
+
+#
+# Paths and Directories
+#
+DROPS_INSTDIR='$(DROPS_STDDIR)'
+
+#
+# Verboseness and Messages
+#
+DEPEND_VERBOSE_SWITCH=n
+DEPEND_VERBOSE='@'
+VERBOSE_SWITCH=y
+SHOWMESSAGES=y
+BID_COLORED_PHASES=y
+
+#
+# Compilers and Tools
+#
+BIDc_USE_SPECIAL_CC=n
+HOST_CC='gcc'
+HOST_CXX='g++'
+CC='$(SYSTEM_TARGET_x86)gcc -m32'
+CXX='$(SYSTEM_TARGET_x86)g++ -m32'
+
+#
+# Tools
+#
+YACC='byacc'
+LEX='flex'
+CTAGS='ctags'
+ETAGS='etags'
+
+#
+# Options
+#
+HAVE_LDSO=y
+INT_CPP_NAME_SWITCH=y
+INT_LD_NAME_SWITCH=y
+BID_STRIP_PROGS=n
+BID_GSTAB_SW=y
+BID_CFLAGS_GSTAB='-gstabs+'
+BID_GCC_OMIT_FP=n
+BID_GENERATE_MAPFILE=n
+BID_BUILD_DOC=y
+
+#
+# Advanced
+#
+USE_UCLIBC=y
+USE_DIETLIBC=n
+BUILD_LOADER=y
+BUILD_LOADER_PICS='libl4util.a libl4util_root.a libsigma0.a libnames.a libloaderif.a libcon.a libl4rm.a libbootmod.a libcon.a libconstream-server.a libdm_generic.a libdm_mem.a libgeneric_ts.a liblogserver.a liblogserver_capsule.a libsemaphore.a libthread.a libslab.a libgeneric_fprov.a libl4env_err.a libl4env.a libroot.a libc_be_l4env_start_stop.a libc_be_minimal_log_io.a libc_be_simple_mem.a libc_be_mmap.a libc_be_mmap_util.a libuclibc_support.a librtc.a libl4env-l4lx.a'
+L4_CALL_SYSCALLS=y
+L4_ABS_SYSCALLS=y
+BID_CPPFLAGS_SYSCALLS='-DCONFIG_L4_CALL_SYSCALLS -DCONFIG_L4_ABS_SYSCALLS'
+USE_TASKLIB=n
+RELEASE_MODE=n
+BID_BUILD_L4DIR_ONLY=n
+CONFIG_LABEL='__none__'
+
+#
+# Paths
+#
+LINUX24_INCDIR='$(OBJ_BASE)/include/linux-24 $(DROPS_STDDIR)/include/linux-24'
+LINUX26_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/linux-26-headers $(DROPS_STDDIR)/include/$(ARCH)/l4/linux-26-headers $(OBJ_BASE)/include/l4/linux-26-headers $(DROPS_STDDIR)/include/l4/linux-26-headers'
+DDE_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux'
+DDE26_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux26 $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux26 $(OBJ_BASE)/include/l4/dde_linux26 $(DROPS_STDDIR)/include/l4/dde_linux26'
+SDL_INCDIR='$(OBJ_BASE)/include/l4/sdl $(DROPS_STDDIR)/include/l4/sdl'
diff --git a/libdde_linux26/mk/defconfig/config.x86 b/libdde_linux26/mk/defconfig/config.x86
new file mode 100644
index 00000000..a9196fc3
--- /dev/null
+++ b/libdde_linux26/mk/defconfig/config.x86
@@ -0,0 +1,83 @@
+#
+# Automatically generated by configuration tool: don't edit
+#
+
+#
+# Target Architecture
+#
+BUILD_ARCH_x86=y
+BUILD_ARCH_arm=n
+BUILD_ARCH_amd64=n
+BUILD_ARCH='x86'
+CPU='586'
+BUILD_ABI_l4v2=y
+BUILD_ABI_linux=n
+BUILD_ABI='l4v2'
+
+#
+# Paths and Directories
+#
+DROPS_INSTDIR='$(DROPS_STDDIR)'
+
+#
+# Verboseness and Messages
+#
+DEPEND_VERBOSE_SWITCH=n
+DEPEND_VERBOSE='@'
+VERBOSE_SWITCH=y
+SHOWMESSAGES=y
+BID_COLORED_PHASES=y
+
+#
+# Compilers and Tools
+#
+BIDc_USE_SPECIAL_CC=n
+HOST_CC='gcc'
+HOST_CXX='g++'
+CC='$(SYSTEM_TARGET_x86)gcc -m32'
+CXX='$(SYSTEM_TARGET_x86)g++ -m32'
+
+#
+# Tools
+#
+YACC='byacc'
+LEX='flex'
+CTAGS='ctags'
+ETAGS='etags'
+
+#
+# Options
+#
+HAVE_LDSO=y
+INT_CPP_NAME_SWITCH=y
+INT_LD_NAME_SWITCH=y
+BID_STRIP_PROGS=n
+BID_GSTAB_SW=y
+BID_CFLAGS_GSTAB='-gstabs+'
+BID_GCC_OMIT_FP=n
+BID_GENERATE_MAPFILE=n
+BID_BUILD_DOC=y
+
+#
+# Advanced
+#
+USE_UCLIBC=y
+USE_DIETLIBC=n
+BUILD_LOADER=y
+BUILD_LOADER_PICS='libl4util.a libl4util_root.a libsigma0.a libnames.a libloaderif.a libcon.a libl4rm.a libbootmod.a libcon.a libconstream-server.a libdm_generic.a libdm_mem.a libgeneric_ts.a liblogserver.a liblogserver_capsule.a libsemaphore.a libthread.a libslab.a libgeneric_fprov.a libl4env_err.a libl4env.a libroot.a libc_be_l4env_start_stop.a libc_be_minimal_log_io.a libc_be_simple_mem.a libc_be_mmap.a libc_be_mmap_util.a libuclibc_support.a librtc.a libl4env-l4lx.a'
+L4_CALL_SYSCALLS=y
+L4_ABS_SYSCALLS=y
+BID_CPPFLAGS_SYSCALLS='-DCONFIG_L4_CALL_SYSCALLS -DCONFIG_L4_ABS_SYSCALLS'
+USE_TASKLIB=n
+RELEASE_MODE=n
+BID_BUILD_L4DIR_ONLY=n
+CONFIG_LABEL='__none__'
+
+#
+# Paths
+#
+LINUX24_INCDIR='$(OBJ_BASE)/include/linux-24 $(DROPS_STDDIR)/include/linux-24'
+LINUX26_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/linux-26-headers $(DROPS_STDDIR)/include/$(ARCH)/l4/linux-26-headers $(OBJ_BASE)/include/l4/linux-26-headers $(DROPS_STDDIR)/include/l4/linux-26-headers'
+DDE_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux'
+DDE26_INCDIR='$(OBJ_BASE)/include/$(ARCH)/l4/dde_linux26 $(DROPS_STDDIR)/include/$(ARCH)/l4/dde_linux26 $(OBJ_BASE)/include/l4/dde_linux26 $(DROPS_STDDIR)/include/l4/dde_linux26'
+SDL_INCDIR='$(OBJ_BASE)/include/l4/sdl $(DROPS_STDDIR)/include/l4/sdl'
diff --git a/libdde_linux26/mk/doc.mk b/libdde_linux26/mk/doc.mk
new file mode 100644
index 00000000..2e102e3a
--- /dev/null
+++ b/libdde_linux26/mk/doc.mk
@@ -0,0 +1,301 @@
+# -*- Makefile -*-
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Template for doc directories
+#
+# install.inc is used, see there for further documentation
+
+ifeq ($(origin _L4DIR_MK_DOC_MK),undefined)
+_L4DIR_MK_DOC_MK=y
+
+ROLE = doc.mk
+
+include $(L4DIR)/mk/Makeconf
+$(GENERAL_D_LO): $(L4DIR)/mk/doc.mk
+
+ifeq ($(IN_OBJ_DIR),)
+##################################################################
+#
+# Empty IN_OBJ_DIR means we are in the source directory and have
+# to first generate a Makefile in the build-dir.
+#
+##################################################################
+
+all install clean cleanall help:: $(OBJ_DIR)/Makefile.build
+ $(VERBOSE)PWD=$(OBJ_DIR) $(MAKE) -C $(OBJ_DIR) O=$(OBJ_BASE) -f Makefile.build $@
+
+
+$(OBJ_DIR)/Makefile.build: $(SRC_DIR)/Makefile
+ $(VERBOSE)install -d $(dir $@)
+ $(VERBOSE)echo 'IN_OBJ_DIR=1' > $@
+ $(VERBOSE)echo 'L4DIR=$(L4DIR_ABS)' >> $@
+ $(VERBOSE)echo 'SRC_DIR=$(SRC_DIR)' >> $@
+ $(VERBOSE)echo 'OBJ_BASE=$(OBJ_BASE)' >> $@
+ $(VERBOSE)echo 'PKGDIR_ABS=$(PKGDIR_ABS)' >> $@
+ $(VERBOSE)echo 'vpath %.fig $(SRC_DIR)' >> $@
+ $(VERBOSE)echo 'vpath %.tex $(SRC_DIR)' >> $@
+ $(VERBOSE)echo 'include $(SRC_DIR)/Makefile' >> $@
+
+else
+###################################################################
+#
+# We are in the build directory and can process the documentation
+#
+###################################################################
+
+# default is to install all targets
+INSTALL_TARGET_MASK ?= %
+
+ifneq ($(TARGET),)
+# if no SRC_DOX is given, but TARGET, extract it from TARGET
+ifeq ($(origin SRC_DOX),undefined)
+SRC_DOX := $(filter $(addsuffix .cfg, $(TARGET)),$(wildcard *.cfg))
+ifneq ($(SRC_DOX),)
+$(error SRC_DOX is undefined, but TARGET is defined. This is invalid since 04/23/2003)
+endif
+endif
+# the same for SRC_TEX
+ifeq ($(origin SRC_TEX),undefined)
+SRC_TEX := $(filter $(TARGET:.ps=.tex),$(wildcard *.tex)) \
+ $(filter $(TARGET:.pdf=.tex),$(wildcard *.tex))
+ $(filter $(TARGET:.dvi=.tex),$(wildcard *.tex))
+ifneq ($(SRC_TEX),)
+$(error SRC_TEX is undefined, but TARGET is defined. This is invalid since 04/23/2003)
+endif
+endif
+endif
+
+TARGET_DOX = $(SRC_DOX:.cfg=) $(SRC_DOX_REF:.cfg=) \
+ $(SRC_DOX_GUIDE:.cfg=) $(SRC_DOX_INT:.cfg=)
+INSTALL_TARGET_DOX ?= $(filter $(INSTALL_TARGET_MASK), $(TARGET_DOX))
+TARGET_TEX ?= $(SRC_TEX:.tex=.ps) $(SRC_TEX:.tex=.pdf)
+DEPS += $(foreach x,$(SRC_TEX:.tex=.dvi),$(dir $x).$(notdir $x).d)
+
+# if no TARGET is given, generate it from all types of targets
+TARGET ?= $(TARGET_DOX) $(TARGET_TEX)
+DEPS += $(foreach file,$(TARGET),$(dir $(file)).$(notdir $(file)).d)
+
+all:: $(TARGET)
+$(TARGET): $(OBJ_DIR)/.general.d
+
+####################################################################
+#
+# Doxygen specific
+#
+####################################################################
+DOXY_FLAGS += $(DOXY_FLAGS_$@)
+
+OUTPUTDIR = $(shell perl -n -e '/^\s*OUTPUT_DIRECTORY\s*=\s*(\S+)/ && print "$$1\n"' $(1))
+
+# we refer to %/html sometimes. However, make fails on a rule of the form
+# "% %/html:%.cfg", thus the workaround (others than static-pattern-rules
+# won't work)
+$(addprefix $(OBJ_DIR)/,$(addsuffix /html,$(TARGET_DOX))):$(OBJ_DIR)/%/html:$(OBJ_DIR)/%
+
+# We can give an internal rule for doxygen, as the directory specified
+# in the config-file should be the name of the config file with the
+# .cfg removed.
+$(OBJ_DIR)/% $(OBJ_DIR)/%/html:$(SRC_DIR)/%.cfg
+ #generate the flags-file
+ $(VERBOSE)$(MKDIR) $@
+ $(VERBOSE)$(ECHO) '@INCLUDE=$(notdir $<);$(DOXY_FLAGS);OUTPUT_DIRECTORY=$(OBJ_DIR)/$(call OUTPUTDIR,$<)' | $(TR) \; \\n >$@.flags
+ $(VERBOSE)cd $(SRC_DIR) && $(call MAKEDEP,doxygen) OBJ_DIR=$(OBJ_DIR) doxygen $@.flags
+ $(VERBOSE)( [ -r $@/latex/Makefile ] && \
+ echo | PWD=$@/latex $(MAKE) -C $@/latex ) || true
+ $(VERBOSE)if [ -d $@ ] ; then touch $@ ; fi
+
+# Installation rules follow
+#
+# define LOCAL_INSTALLDIR prior to including install.inc, where the install-
+# rules are defined. Same for INSTALLDIR.
+INSTALLDIR_HTML ?= $(DROPS_STDDIR)/doc/html
+INSTALLFILE_HTML ?= $(CP) -pR $(1) $(2)
+INSTALLDIR_HTML_LOCAL ?= $(OBJ_BASE)/doc/html
+INSTALLFILE_HTML_LOCAL ?= for f in $(wildcard $(call absfilename,$(1))); do $(LN) -sf $$f $(2); done
+
+INSTALLDIR = $(INSTALLDIR_HTML)
+INSTALLFILE = $(INSTALLFILE_HTML)
+INSTALLDIR_LOCAL = $(INSTALLDIR_HTML_LOCAL)
+INSTALLFILE_LOCAL = $(INSTALLFILE_HTML_LOCAL)
+
+all:: $(TARGET) \
+ $(addprefix $(INSTALLDIR_LOCAL)/, $(addsuffix .title, $(INSTALL_TARGET_DOX)))
+
+$(OBJ_DIR)/$(SRC_DOX_REF:.cfg=.title): BID_DOC_DOXTYPE=ref
+$(OBJ_DIR)/$(SRC_DOX_GUIDE:.cfg=.title): BID_DOC_DOXTYPE=guide
+$(OBJ_DIR)/$(SRC_DOX_INT:.cfg=.title): BID_DOC_DOXTYPE=int
+
+# first line: type
+# second line: title that will appear at the generated index page
+$(OBJ_DIR)/%.title:$(SRC_DIR)/%.cfg $(OBJ_DIR)/.general.d
+ $(VERBOSE)$(ECHO) $(BID_DOC_DOXTYPE)>$@
+ $(VERBOSE)MAKEFLAGS= $(MAKE) -s -f $(L4DIR)/mk/makehelpers.inc -f $< \
+ BID_print VAR=PROJECT_NAME >>$@
+
+# Install the title file locally
+# The installed title file depends on the installed doku for message reasons
+$(foreach f,$(INSTALL_TARGET_DOX),$(INSTALLDIR_LOCAL)/$(f).title):$(INSTALLDIR_LOCAL)/%.title:$(OBJ_DIR)/%.title $(INSTALLDIR_LOCAL)/%
+ $(VERBOSE)$(call INSTALLFILE_LOCAL,$<,$@)
+ @$(call UPDATE_HTML_MESSAGE,$(INSTALLDIR_LOCAL))
+
+# Install the docu locally, the title file will depend on
+$(foreach f,$(INSTALL_TARGET_DOX),$(INSTALLDIR_LOCAL)/$(f)):$(INSTALLDIR_LOCAL)/%:$(OBJ_DIR)/% $(OBJ_DIR)/%/html
+ @$(INSTALL_DOC_LOCAL_MESSAGE)
+ $(VERBOSE)$(INSTALL) -d $@
+ $(VERBOSE)$(call INSTALLFILE_LOCAL,$</html/*,$@)
+
+# Install the title file globally
+# The installed title file depends on the installed doku for message reasons
+$(foreach f,$(INSTALL_TARGET_DOX),$(INSTALLDIR)/$(f).title):$(INSTALLDIR)/%.title:$(OBJ_DIR)/%.title $(INSTALLDIR)/%
+ $(VERBOSE)$(call INSTALLFILE,$<,$@)
+ @$(call UPDATE_HTML_MESSAGE,$(INSTALLDIR))
+
+# Install the docu globally, the title file will depend on
+$(foreach f,$(INSTALL_TARGET_DOX),$(INSTALLDIR)/$(f)):$(INSTALLDIR)/%:$(OBJ_DIR)/% $(OBJ_DIR)/%/html
+ @$(INSTALL_DOC_MESSAGE)
+ $(if $(INSTALLFILE),$(VERBOSE)$(INSTALL) -d $@)
+ $(VERBOSE)$(call INSTALLFILE,$</html/*,$@)
+
+install:: $(addprefix $(INSTALLDIR)/,$(addsuffix .title,$(INSTALL_TARGET_DOX)))
+.PHONY: $(addprefix $(INSTALLDIR)/,$(INSTALL_TARGET_DOX) \
+ $(addsuffix .title,$(INSTALL_TARGET_DOX)))
+
+
+#################################################################
+#
+# Latex specific
+#
+#################################################################
+
+FIG2EPS_PROG ?= fig2dev -L eps
+FIG2PDF_PROG ?= fig2dev -L pdf
+FIG2PNG_PROG ?= fig2dev -L png
+
+$(SRC_TEX:.tex=.dvi) $(TARGET): $(SRC_FIG:.fig=.pdf) $(SRC_FIG:.fig=.png) $(SRC_FIG:.fig=.eps)
+
+%.eps: %.fig $(OBJ_DIR)/.general.d
+ @$(GEN_MESSAGE)
+ $(VERBOSE)$(FIG2EPS_PROG) $< $@
+
+%.pdf: %.fig $(OBJ_DIR)/.general.d
+ @$(GEN_MESSAGE)
+ $(VERBOSE)$(FIG2PDF_PROG) $< $@
+
+%.png: %.fig $(OBJ_DIR)/.general.d
+ @$(GEN_MESSAGE)
+ $(VERBOSE)$(FIG2PNG_PROG) $< $@
+
+%.ps: %.dvi $(OBJ_DIR)/.general.d
+ @$(GEN_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,dvips) dvips -o $@ $<
+ $(VERBOSE)$(VIEWERREFRESH_PS)
+
+%.pdf: %.tex $(OBJ_DIR)/.general.d
+ @$(GEN_MESSAGE)
+ $(VERBOSE)$(PDFLATEX) $< || \
+ (($(GREP) 'TeX capacity exceeded' $*.log && \
+ echo -e "\n\033[31mIncrease pool_size to 200000 in" \
+ "/etc/texmf/texmf.cnf!\033[m\n" && false) || false)
+ $(VERBOSE)$(GREP) '\citation' $*.aux && \
+ bibtex $* || true
+ $(VERBOSE)(export size=1; touch $@; \
+ until [ $$size -eq `ls -o $@ | awk '{print $$4}'` ]; do\
+ export size=`ls -o $@ | awk '{print $$4}'` ;\
+ $(PDFLATEX) $< ;\
+ done)
+# one more time, just to be sure ...
+ $(VERBOSE)$(PDFLATEX) $<
+
+%.dvi: %.tex $(OBJ_DIR)/.general.d
+ @$(GEN_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(LATEX)) $(LATEX) $<
+ $(VERBOSE)if grep -q '\indexentry' $*.idx; then makeindex $*; fi
+ $(VERBOSE)if grep -q '\citation' $*.aux; then bibtex $*; fi
+ # Do we really need to call latex unconditionally again? Isn't it
+ # sufficient to check the logfile for the "rerun" text?
+ $(VERBOSE)$(LATEX) $<
+ $(VERBOSE)latex_count=5 ; \
+ while egrep -s 'Rerun (LaTeX|to get cross-references right)' $*.log &&\
+ [ $$latex_count -gt 0 ] ; do \
+ $(LATEX) $< \
+ let latex_count=$$latex_count-1 ;\
+ done
+ $(VERBOSE)$(VIEWERREFRESH_DVI)
+
+SHOWTEX ?= $(firstword $(SRC_TEX))
+SHOWDVI ?= $(SHOWTEX:.tex=.dvi)
+SHOWPS ?= $(SHOWTEX:.tex=.ps)
+SHOWPDF ?= $(SHOWTEX:.tex=.pdf)
+
+VIEWER_DVI ?= xdvi
+VIEWER_PS ?= gv
+VIEWER_PDF ?= xpdf
+VIEWERREFRESH_DVI ?= killall -USR1 xdvi xdvi.bin xdvi.real || true
+VIEWERREFRESH_PS ?= killall -HUP $(VIEWER_PS) || true
+
+dvi: $(SHOWDVI)
+show showdvi: dvi
+ $(VERBOSE)$(VIEWER_DVI) $(SHOWDVI) &
+
+ps: $(SHOWPS)
+showps: ps
+ $(VERBOSE)$(VIEWER_PS) $(SHOWPS) &
+
+pdf: $(SHOWPDF)
+showpdf: pdf
+ $(VERBOSE)$(VIEWER_PDF) $(SHOWPDF) &
+
+clean::
+ $(VERBOSE)$(RM) $(addprefix $(OBJ_DIR)/, \
+ $(addsuffix .title,$(TARGET_DOX)))
+ $(VERBOSE)$(RM) $(addprefix $(OBJ_DIR)/, \
+ $(addsuffix .flags,$(TARGET_DOX)))
+ $(VERBOSE)$(RM) $(wildcard $(addprefix $(OBJ_DIR)/, $(foreach ext, \
+ aux bbl blg dvi idx ilg ind log lod ltf toc out, \
+ $(SRC_TEX:.tex=.$(ext))) texput.log ))
+
+cleanall:: clean
+ $(VERBOSE)$(RM) -r $(wildcard $(addprefix $(OBJ_DIR)/, \
+ $(TARGET)) $(wildcard .*.d))
+ $(VERBOSE)$(RM) $(wildcard $(addprefix $(OBJ_DIR)/, \
+ $(SRC_TEX:.tex=.ps) $(SRC_TEX:.tex=.pdf)))
+ $(VERBOSE)$(RM) $(wildcard $(addprefix $(OBJ_DIR)/, \
+ $(SRC_FIG:.fig=.eps) $(SRC_FIG:.fig=.pdf) $(SRC_FIG:.fig=.png)))
+ $(VERBOSE)$(RM) $(wildcard $(addprefix $(OBJ_DIR)/, \
+ Makefile Makefile.build))
+
+.PHONY: all clean cleanall config help install oldconfig txtconfig
+.PHONY: ps pdf dvi showps showpdf showdvi show
+
+help::
+ @echo "Specify a target:"
+ @echo "all - generate documentation and install locally"
+ifneq (,$(INSTALL_TARGET_DOX))
+ @echo "install - generate documentation and install globally"
+endif
+ @echo "dvi - compile the primary TeX file into dvi"
+ @echo "showdvi - invoke the dvi viewer on the primary TeX file"
+ @echo "ps - compile the primary TeX file into ps"
+ @echo "showps - invoke the ps viewer on the primary TeX file"
+ @echo "pdf - compile the primary TeX file into pdf"
+ @echo "showpdf - invoke the pdf viewer on the primary TeX file"
+ @echo "clean - delete generated intermediate files"
+ @echo "cleanall - delete all generated files"
+ @echo "help - this help"
+ @echo
+ifneq (,$(SRC_TEX))
+ @echo "Primary TeX file: $(SHOWTEX)"
+ @echo "Other documentation to be built: $(filter-out $(SHOWPDF) $(SHOWPS) $(SHOWDVI),$(TARGET))"
+else
+ifneq (,$(TARGET_DOX))
+ @echo "Primary Doxygen file: $(addsuffix .cfg, $(TARGET_DOX))"
+endif
+ @echo "Documentation to be built: $(TARGET)"
+endif
+
+-include $(DEPSVAR)
+
+endif # IN_OBJ_DIR
+
+endif # _L4DIR_MK_DOC_MK undefined
diff --git a/libdde_linux26/mk/export_defs.inc b/libdde_linux26/mk/export_defs.inc
new file mode 100644
index 00000000..8fde1316
--- /dev/null
+++ b/libdde_linux26/mk/export_defs.inc
@@ -0,0 +1,35 @@
+# Makefile snippet to generate l4defs.inc file
+# vim:set ft=make:
+#
+
+PKGDIR = .
+SYSTEMS = $(BUILD_ARCH)-$(BUILD_ABI)
+MODE = l4env
+
+OBJ_DIR = $(SRC_DIR)/build
+
+ifneq ($(SYSTEM),)
+
+# take crt0.o from the install directory
+L4_CRT0 = $(patsubst $(L4_BUILDDIR)%, $(DROPS_STDDIR)/%, $(CRT0))
+# use the DICE directory in the install directory
+L4_DICEDIR = $(patsubst $(L4DIR)/%, $(DROPS_STDDIR)/%, $(DICE_INCDIR))
+# let LDFLAGS and CFLAGS only contain directories within the install path
+L4_LDFLAGS = $(filter-out -L$(L4_BUILDDIR)%, $(patsubst -T$(L4_BUILDDIR)%, -T$(DROPS_STDDIR)/%, $(LDFLAGS)))
+L4_CPPFLAGS = $(filter-out -I$(L4_BUILDDIR)%, $(patsubst -I$(DICE_INCDIR), -I$(L4_DICEDIR), $(CPPFLAGS)))
+
+# the target file
+L4DEF_FILE ?= l4defs.inc
+
+all::
+ @echo -e $(EMPHSTART)"Creating $(L4DEF_FILE)"$(EMPHSTOP)
+ @echo "# Definitions for L4 BID" > $(L4DEF_FILE)
+ @echo "# --- Automatically created on install, do not modify ---" >> $(L4DEF_FILE)
+ @echo "L4_CRT0 = $(L4_CRT0)" >> $(L4DEF_FILE)
+ @echo "L4_LDFLAGS = $(L4_LDFLAGS)" >> $(L4DEF_FILE)
+ @echo "L4_CPPFLAGS = $(L4_CPPFLAGS)" >> $(L4DEF_FILE)
+else
+all::
+endif
+
+include $(L4DIR)/mk/prog.mk
diff --git a/libdde_linux26/mk/idl.mk b/libdde_linux26/mk/idl.mk
new file mode 100644
index 00000000..1301dc5b
--- /dev/null
+++ b/libdde_linux26/mk/idl.mk
@@ -0,0 +1,206 @@
+# -*- Makefile -*-
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Template for idl directories
+#
+# $Id: idl.mk 240 2007-11-27 03:55:44Z l4check $
+#
+# $Author: l4check $
+#
+# install.inc is used, see there for further documentation
+# - from install.inc, we use the feature to install files
+# to the local install directory on 'all' target.
+# Therefore, we set INSTALLDIR_LOCAL and INSTALLFILE_LOCAL.
+# Note that we changed INSTALLDIR_IDL_LOCAL AND INSTALLDIR_IDL
+# binary.inc is used, see there for further documentation
+
+ifeq ($(origin _L4DIR_MK_IDL_MK),undefined)
+_L4DIR_MK_IDL_MK=y
+
+ROLE = idl.mk
+
+DICE_REQ := --require="3.2.0"
+
+# define LOCAL_INSTALLDIR prior to including install.inc, where the install-
+# rules are defined. Same for INSTALLDIR.
+INSTALLDIR_IDL ?= $(DROPS_STDDIR)/include/$(ARCH)/$(L4API)/$(INSTALL_INC_PREFIX)
+INSTALLDIR_IDL_LOCAL ?= $(OBJ_BASE)/include/$(ARCH)/$(L4API)/$(INSTALL_INC_PREFIX)
+INSTALLFILE_IDL ?= $(INSTALL) -m 644 $(1) $(2)
+INSTALLFILE_IDL_LOCAL ?= $(LN) -sf $(call absfilename,$(1)) $(2)
+
+INSTALLFILE = $(INSTALLFILE_IDL)
+INSTALLDIR = $(INSTALLDIR_IDL)
+INSTALLFILE_LOCAL = $(INSTALLFILE_IDL_LOCAL)
+INSTALLDIR_LOCAL = $(INSTALLDIR_IDL_LOCAL)
+
+INSTALL_INC_PREFIX ?= l4/$(PKGNAME)
+
+# our default MODE is 'l4env'
+MODE ?= l4env
+
+IDL_EXPORT_STUB ?= %
+IDL_EXPORT_IDL ?= %
+
+include $(L4DIR)/mk/Makeconf
+include $(L4DIR)/mk/binary.inc
+$(GENERAL_D_LOC): $(L4DIR)/mk/idl.mk
+
+ifneq ($(SYSTEM),) # if we have a system, really build
+#######################################################
+#
+# SYSTEM valid, we are in an OBJ-<xxx> system subdir
+#
+#######################################################
+
+IDL_EXPORT_STUB ?= %
+IDL_TYPE ?= dice
+
+# C++ specific rules
+IDL_C = c
+IDL_H = h
+IDL_CPP = $(CC)
+ifneq (,$(findstring BmCPP,$(IDL_FLAGS)))
+IDL_C = cc
+IDL_H = hh
+IDL_CPP = $(CXX)
+else
+ifneq (,$(findstring Bmcpp,$(IDL_FLAGS)))
+IDL_C = cc
+IDL_H = hh
+IDL_CPP = $(CXX)
+endif
+endif
+
+IDL_DEP = $(addprefix .,$(addsuffix .d,$(notdir $(IDL))))
+IDL_SKELETON_C = $(IDL:.idl=-server.$(IDL_C))
+IDL_SKELETON_H = $(IDL_SKELETON_C:.$(IDL_C)=.$(IDL_H))
+IDL_STUB_C = $(IDL:.idl=-client.$(IDL_C))
+IDL_STUB_H = $(IDL_STUB_C:.$(IDL_C)=.$(IDL_H))
+IDL_OPCODE_H = $(IDL:.idl=-sys.$(IDL_H))
+
+IDL_FILES = $(IDL_SKELETON_C) $(IDL_SKELETON_H) $(IDL_STUB_C) $(IDL_STUB_H) \
+ $(IDL_OPCODE_H)
+
+# Makro that expands to the list of generated files
+# arg1 - name of the idl file. Path and extension will be stripped
+IDL_FILES_EXPAND = $(addprefix $(notdir $(basename $(1))),-server.$(IDL_C) -server.$(IDL_H) -client.$(IDL_C) -client.$(IDL_H) -sys.$(IDL_H))
+
+INSTALL_TARGET = $(patsubst %.idl,%-sys.$(IDL_H), \
+ $(filter $(IDL_EXPORT_SKELETON) $(IDL_EXPORT_STUB),$(IDL)))\
+ $(patsubst %.idl,%-server.$(IDL_H), \
+ $(filter $(IDL_EXPORT_SKELETON),$(IDL))) \
+ $(patsubst %.idl,%-client.$(IDL_H), \
+ $(filter $(IDL_EXPORT_STUB), $(IDL)))
+
+all:: $(IDL_FILES)
+.DELETE_ON_ERROR:
+
+# the dependencies for the generated files
+DEPS += $(IDL_DEP)
+
+ifneq (,$(filter-out corba dice, $(IDL_TYPE)))
+$(error IDL_TYPE is neither <dice> nor <corba>)
+endif
+
+# the IDL file is found one directory up
+vpath %.idl $(SRC_DIR)
+
+# DICE mode
+IDL_FLAGS += $(addprefix -P,$(CPPFLAGS))
+IDL_FLAGS += $(IDL_FLAGS_$(<F))
+
+ifeq ($(L4API),l4v2)
+IDL_FLAGS += -Bifiasco
+endif
+
+ifeq ($(L4API),l4v4)
+IDL_FLAGS += -Biv4
+endif
+
+ifeq ($(L4API),l4x2)
+IDL_FLAGS += -Bix2
+endif
+
+ifeq ($(L4API),linux)
+IDL_FLAGS += -Bisock
+endif
+
+ifeq ($(L4API),l4secv2emu)
+IDL_FLAGS += -fforce-c-bindings -P-DL4API_l4v2
+endif
+
+ifeq ($(ARCH),x86)
+IDL_FLAGS += -Bpia32
+endif
+
+ifeq ($(ARCH),arm)
+IDL_FLAGS += -Bparm
+endif
+
+ifeq ($(ARCH),amd64)
+IDL_FLAGS += -Bpamd64
+endif
+
+ifeq ($(IDL_TYPE),corba)
+IDL_FLAGS += --x=corba
+endif
+
+# We don't use gendep for generating the dependencies because gendep can only
+# catch open() calls from _one_ applications. Here two applications, dice and
+# the preprocessor perform open.
+%-server.$(IDL_C) %-server.$(IDL_H) %-client.$(IDL_C) %-client.$(IDL_H) %-sys.$(IDL_H): %.idl .general.d
+ @$(GEN_MESSAGE)
+ $(VERBOSE)CC="$(IDL_CPP)" $(DICE) $(DICE_REQ) $(IDL_FLAGS) -MD $<
+ $(VERBOSE)mv $*.d .$(<F).d
+ $(DEPEND_VERBOSE)$(ECHO) "$(call IDL_FILES_EXPAND,$<): $(DICE) $<" >>.$(<F).d
+ $(DEPEND_VERBOSE)$(ECHO) "$(DICE) $<:" >>.$(<F).d
+
+
+clean cleanall::
+ $(VERBOSE)$(RM) $(wildcard $(addprefix $(INSTALLDIR_LOCAL)/, $(IDL_FILES)))
+ $(VERBOSE)$(RM) $(wildcard $(IDL_FILES))
+
+# include install.inc to define install rules
+include $(L4DIR)/mk/install.inc
+
+else
+#####################################################
+#
+# No SYSTEM defined, we are in the idl directory
+#
+#####################################################
+
+# we install the IDL-files specified in IDL_EXPORT_IDL
+INSTALL_TARGET = $(filter $(IDL_EXPORT_IDL), $(IDL))
+
+# include install.inc to define install rules
+include $(L4DIR)/mk/install.inc
+
+# install idl-files before going down to subdirs
+$(foreach arch,$(TARGET_SYSTEMS), $(OBJ_DIR)/OBJ-$(arch)): $(addprefix $(INSTALLDIR_LOCAL)/,$(INSTALL_TARGET))
+
+endif # architecture is defined, really build
+#####################################################
+#
+# Common part
+#
+#####################################################
+
+-include $(DEPSVAR)
+.PHONY: all clean cleanall config help install oldconfig txtconfig
+
+help::
+ @echo " all - generate .c and .h from idl files and install locally"
+ifneq ($(SYSTEM),)
+ @echo " to $(INSTALLDIR_LOCAL)"
+endif
+ @echo " scrub - delete backup and temporary files"
+ @echo " clean - delete generated source files"
+ @echo " cleanall - delete all generated, backup and temporary files"
+ @echo " help - this help"
+ @echo
+ @echo " idls are: $(IDL)"
+
+
+endif # _L4DIR_MK_IDL_MK undefined
diff --git a/libdde_linux26/mk/include.mk b/libdde_linux26/mk/include.mk
new file mode 100644
index 00000000..4725374b
--- /dev/null
+++ b/libdde_linux26/mk/include.mk
@@ -0,0 +1,88 @@
+# -*- Makefile -*-
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Template for include directories
+#
+# $Id: include.mk 240 2007-11-27 03:55:44Z l4check $
+#
+# $Author: l4check $
+
+#
+# supported targets:
+#
+# all - the default, link the includes into the
+# local include dir
+# install - install the includes into the global
+# include dir
+# config - do nothing, may be overwritten
+# relink - reinstall locally
+
+
+INSTALLDIR_INC ?= $(DROPS_STDDIR)/include
+INSTALLDIR_INC_LOCAL ?= $(OBJ_BASE)/include
+
+INSTALLDIR = $(INSTALLDIR_INC)
+INSTALLDIR_LOCAL = $(INSTALLDIR_INC_LOCAL)
+
+ifeq ($(origin TARGET),undefined)
+# use POSIX -print here
+TARGET_CMD = (cd $(INCSRC_DIR); find . -name '*.[ih]' -print)
+else
+TARGET_CMD = echo $(TARGET)
+endif
+INSTALL_INC_PREFIX ?= l4/$(PKGNAME)
+INCSRC_DIR ?= $(SRC_DIR)
+
+include $(L4DIR)/mk/Makeconf
+$(GENERAL_D_LOC): $(L4DIR)/mk/include.mk
+-include $(DEPSVAR)
+
+do_link = if (readlink($$dst) ne $$src) { \
+ if ($$notify eq 1) { \
+ $$notify=0; $(if $(VERBOSE),print " ... Updating symlinks\n";,)\
+ } \
+ system("ln","-sf$(if $(VERBOSE),,v)",$$src,$$dst) && exit 1; \
+ }
+do_inst = system("install","-$(if $(VERBOSE),,v)m","644",$$src,$$dst) && exit 1;
+installscript = perl -e ' \
+ chomp($$srcdir="$(INCSRC_DIR)"); \
+ $$notify=1; \
+ while(<>) { \
+ split; while(@_) { \
+ $$_=shift @_; s|^\./||; $$src=$$_; \
+ if(s|^ARCH-([^/]*)/L4API-([^/]*)/([^ ]*)$$|\1/\2/$(INSTALL_INC_PREFIX)/\3| ||\
+ s|^ARCH-([^/]*)/([^ ]*)$$|\1/$(INSTALL_INC_PREFIX)/\2| || \
+ s|^L4API-([^/]*)/([^ ]*)$$|\1/$(INSTALL_INC_PREFIX)/\2| || \
+ s|^([^ ]*)$$|$(INSTALL_INC_PREFIX)/\1|) { \
+ $$src="$$srcdir/$$src" if $$src !~ /^\//; \
+ $$dstdir=$$dst="$(if $(1),$(INSTALLDIR_LOCAL),$(INSTALLDIR))/$$_";\
+ $$dstdir=~s|/[^/]*$$||; \
+ -d $$dstdir || system("install","-$(if $(VERBOSE),,v)d",$$dstdir) && exit 1; \
+ $(if $(1),$(do_link),$(do_inst)) \
+ } \
+ } \
+ }'
+
+headers::
+
+all:: headers
+ @$(TARGET_CMD) | $(call installscript,1)
+
+install::
+ @$(INSTALL_LINK_MESSAGE)
+ @$(TARGET_CMD) | $(call installscript);
+
+cleanall::
+ $(VERBOSE)$(RM) .general.d
+
+help::
+ @echo " all - install files to $(INSTALLDIR_LOCAL)"
+ @echo " install - install files to $(INSTALLDIR)"
+ @echo " scrub - delete backup and temporary files"
+ @echo " clean - same as scrub"
+ @echo " cleanall - same as scrub"
+ @echo " help - this help"
+
+scrub clean cleanall::
+ $(VERBOSE)$(SCRUB)
diff --git a/libdde_linux26/mk/install.inc b/libdde_linux26/mk/install.inc
new file mode 100644
index 00000000..3cdbecf3
--- /dev/null
+++ b/libdde_linux26/mk/install.inc
@@ -0,0 +1,66 @@
+# -*- Makefile -*-
+# vim:set ft=make:
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Include for install-rules
+#
+# $Id: install.inc 11 2007-02-26 19:08:41Z l4check $
+#
+# $Author: l4check $
+#
+# This file is useful only when actually building files, thus if
+# BUILD_ONE_ARCHITECTURE (see Makeconf) is defined.
+# INSTALL_TARGET and INSTALL_TARGET_$(ARCH) contain the targets to be
+# installed. If they are both empty, and NOTARGETSTOINSTALL is not set,
+# they are set to TARGET and TARGET_$(ARCH).
+#
+# INSTALLDIR and INSTALLDIR_LOCAL is the dir the files will be installed
+# in and must be set prior to including this file. INSTALLDIR is used by the
+# target "install" and "INSTALLDIR_LOCAL" by the target "all".
+#
+# The target "all" is made depending on the installed files in
+# INSTALLDIR_LOCAL. "install" on the files in INSTALLDIR. An other
+# difference is that "all" results in using the variable
+# $(INSTALLFILE_LOCAL) to install the files and "install" in using
+# $(INSTALLFILE). This allows the difference between linking and actually
+# copying (with stripping for bins).
+
+ifndef INSTALL_TARGET_$(OSYSTEM)
+ifndef NOTARGETSTOINSTALL
+INSTALL_TARGET?=$(TARGET)
+endif
+endif
+INSTALL_TARGET += $(INSTALL_TARGET_$(OSYSTEM))
+
+all:: $(addprefix $(INSTALLDIR_LOCAL)/,$(INSTALL_TARGET))
+install:: $(addprefix $(INSTALLDIR)/,$(INSTALL_TARGET))
+
+# with prog.mk, we copy
+ifeq ($(ROLE),prog.mk)
+$(foreach f,$(INSTALL_TARGET),$(INSTALLDIR_LOCAL)/$(f)):$(INSTALLDIR_LOCAL)/%:%
+ @$(INSTALL_LOCAL_MESSAGE)
+ $(if $(INSTALLFILE_LOCAL),$(VERBOSE)$(INSTALL) -d $(dir $@))
+ $(VERBOSE)$(call INSTALLFILE_LOCAL,$<,$@)
+else
+# with others, we symlink
+# we check for each locally installed lib if the symlink is correct
+.PHONY: $(addprefix $(INSTALLDIR_LOCAL)/,$(INSTALL_TARGET))
+$(foreach f,$(INSTALL_TARGET),$(INSTALLDIR_LOCAL)/$(f)):$(INSTALLDIR_LOCAL)/%:%
+ @$(if $(INSTALLFILE_LOCAL),if [ ! $< -ef $@ ] ; then \
+ $(if $(INSTALL_LOCAL_MESSAGE),$(INSTALL_LOCAL_MESSAGE);) \
+ $(INSTALL) -d $(dir $@); \
+ $(call INSTALLFILE_LOCAL,$<,$@); \
+ fi)
+endif
+
+$(foreach f,$(INSTALL_TARGET),$(INSTALLDIR)/$(f)):$(INSTALLDIR)/%:%
+ @$(INSTALL_MESSAGE)
+ $(if $(INSTALLFILE),$(VERBOSE)$(INSTALL) -d $(dir $@))
+ $(VERBOSE)$(call INSTALLFILE,$<,$@)
+
+# unconditionally install on "make install"
+.PHONY: $(addprefix $(INSTALLDIR)/,$(INSTALL_TARGET))
+
+.general.d: $(L4DIR)/mk/install.inc
+
diff --git a/libdde_linux26/mk/lib.mk b/libdde_linux26/mk/lib.mk
new file mode 100644
index 00000000..3ae24dbe
--- /dev/null
+++ b/libdde_linux26/mk/lib.mk
@@ -0,0 +1,113 @@
+# -*- Makefile -*-
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Template for library directories
+#
+# $Id: lib.mk 240 2007-11-27 03:55:44Z l4check $
+#
+# $Author: l4check $
+#
+# install.inc is used, see there for further documentation
+# binary.inc is used, see there for further documentation
+
+
+ifeq ($(origin _L4DIR_MK_LIB_MK),undefined)
+_L4DIR_MK_LIB_MK=y
+
+ROLE = lib.mk
+
+# define INSTALLDIRs prior to including install.inc, where the install-
+# rules are defined. Same for INSTALLDIR.
+INSTALLDIR_LIB ?= $(DROPS_STDDIR)/lib/$(subst -,/,$(SYSTEM))
+INSTALLDIR_LIB_LOCAL ?= $(OBJ_BASE)/lib/$(subst -,/,$(SYSTEM))
+INSTALLFILE_LIB ?= $(INSTALL) -m 644 $(1) $(2)
+INSTALLFILE_LIB_LOCAL ?= $(LN) -sf $(call absfilename,$(1)) $(2)
+
+INSTALLFILE = $(INSTALLFILE_LIB)
+INSTALLDIR = $(INSTALLDIR_LIB)
+INSTALLFILE_LOCAL = $(INSTALLFILE_LIB_LOCAL)
+INSTALLDIR_LOCAL = $(INSTALLDIR_LIB_LOCAL)
+
+# our mode
+MODE ?= l4env
+
+# include all Makeconf.locals, define common rules/variables
+include $(L4DIR)/mk/Makeconf
+include $(L4DIR)/mk/binary.inc
+$(GENERAL_D_LOC): $(L4DIR)/mk/lib.mk
+
+ifneq ($(SYSTEM),) # if we a system, really build
+
+TARGET_LIB := $(TARGET) $(TARGET_$(OSYSTEM))
+TARGET_SHARED := $(filter %.s.so,$(TARGET_LIB))
+TARGET_STANDARD := $(filter-out %.s.so,$(TARGET_LIB))
+TARGET_PROFILE := $(patsubst %.a,%.pr.a,\
+ $(filter $(BUILD_PROFILE),$(TARGET_STANDARD)))
+TARGET_PROFILE_SHARED := $(filter %.s.so,$(TARGET_PROFILE))
+TARGET_PIC := $(patsubst %.a,%.p.a,\
+ $(filter $(BUILD_PIC),$(TARGET_STANDARD)))
+TARGET_PROFILE_PIC := $(patsubst %.a,%.p.a,\
+ $(filter $(BUILD_PIC),$(TARGET_PROFILE)))
+TARGET += $(TARGET_$(OSYSTEM)) $(TARGET_PIC)
+TARGET += $(TARGET_PROFILE) $(TARGET_PROFILE_SHARED) $(TARGET_PROFILE_PIC)
+
+# define some variables different for lib.mk and prog.mk
+LDFLAGS += $(addprefix -L, $(PRIVATE_LIBDIR) $(PRIVATE_LIBDIR_$(OSYSTEM)) $(PRIVATE_LIBDIR_$@) $(PRIVATE_LIBDIR_$@_$(OSYSTEM)))
+LDFLAGS += $(addprefix -L, $(L4LIBDIR)) $(LIBCLIBDIR)
+LDFLAGS += $(LIBS) $(LDFLAGS_$@) $(LDNOSTDLIB)
+
+LDSCRIPT = $(call findfile,main_rel.ld,$(L4LIBDIR))
+
+# install.inc eventually defines rules for every target
+include $(L4DIR)/mk/install.inc
+
+DEPS += $(foreach file,$(TARGET), $(dir $(file)).$(notdir $(file)).d)
+
+$(filter-out %.s.so %.o.a %.o.pr.a, $(TARGET)):%.a: $(OBJS)
+ @$(AR_MESSAGE)
+ $(VERBOSE)$(RM) $@
+ $(VERBOSE)$(AR) crs $@ $(OBJS)
+ @$(BUILT_MESSAGE)
+
+# shared lib
+$(filter %.s.so, $(TARGET)):%.s.so: $(OBJS) $(CRTP) $(LIBDEPS)
+ @$(LINK_SHARED_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(LD)) $(LD) -m $(LD_EMULATION) \
+ -o $@ -shared $(addprefix -T,$(LDSCRIPT)) $(CRTP) $(OBJS) $(LDFLAGS)
+ @$(BUILT_MESSAGE)
+
+# build an object file (which looks like a lib to a later link-call), which
+# is either later included as a whole or not at all (important for static
+# constructors)
+$(filter %.o.a %.o.pr.a, $(TARGET)):%.a: $(OBJS) $(LIBDEPS)
+ @$(LINK_PARTIAL_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(LD)) $(LD) -m $(LD_EMULATION) \
+ -o $@ -r $(OBJS) $(LDFLAGS)
+ @$(BUILT_MESSAGE)
+
+endif # architecture is defined, really build
+
+.PHONY: all clean cleanall config help install oldconfig txtconfig
+-include $(DEPSVAR)
+help::
+ @echo " all - compile and install the libraries locally"
+ifneq ($(SYSTEM),)
+ @echo " to $(INSTALLDIR_LOCAL)"
+endif
+ @echo " install - compile and install the libraries globally"
+ifneq ($(SYSTEM),)
+ @echo " to $(INSTALLDIR)"
+endif
+ @echo " scrub - delete backup and temporary files"
+ @echo " clean - delete generated object files"
+ @echo " cleanall - delete all generated, backup and temporary files"
+ @echo " help - this help"
+ @echo
+ifneq ($(SYSTEM),)
+ @echo " libraries are: $(TARGET)"
+else
+ @echo " build for architectures: $(TARGET_SYSTEMS)"
+endif
+
+endif # _L4DIR_MK_LIB_MK undefined
diff --git a/libdde_linux26/mk/makehelpers.inc b/libdde_linux26/mk/makehelpers.inc
new file mode 100644
index 00000000..60030cf3
--- /dev/null
+++ b/libdde_linux26/mk/makehelpers.inc
@@ -0,0 +1,15 @@
+# -*- Makefile -*-
+# vim:set ft=make:
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-include to extract variables from Makefile-compatible files
+#
+# We use this file to browse doxygen files in the doc.mk rules.
+
+BID_print:
+ @echo $($(VAR))
+BID_printm:
+ @$(foreach v, $(VARS), echo '$(v)=$($(v))';)
+
+.PHONY: BID_print BID_printm
diff --git a/libdde_linux26/mk/modes.inc b/libdde_linux26/mk/modes.inc
new file mode 100644
index 00000000..d39d07f6
--- /dev/null
+++ b/libdde_linux26/mk/modes.inc
@@ -0,0 +1,575 @@
+# -*- Makefile -*-
+# vim:et:ts=8:ft=make:
+#
+# Makefile-Include for defining modes
+
+# Default memory backend when linking against uClibc. The -u
+# switch is necessary since mmap_anon is referenced using a weak symbol.
+MALLOC_BACKEND ?= -u mmap_anon -lc_be_simple_mem
+
+MMAP_BACKEND ?= -lc_be_sigma0_mem
+
+# Default is uClibc without reentrant functions. If, for example
+# two independant threads of the same application call malloc at the same
+# time, WANT_THREADSAFE _must_ be defined.
+ifneq ("$(WANT_THREADSAFE)","")
+UCLIBC_IMPLEMENTATION := -luc_c_r
+else
+UCLIBC_IMPLEMENTATION := -luc_c
+endif
+
+ROOTLIB = -lroot
+ROOTPLIB = -lroot.p
+
+CRT0_DEFAULT = $(call findfile,crt0.o,$(L4LIBDIR))
+CRTP_DEFAULT = $(call findfile,crt0.s.o,$(L4LIBDIR))
+LDS_DEFAULT = $(call findfile,main_stat.ld,$(L4LIBDIR))
+
+ifeq ($(MODE),loader)
+LDS_LOADER = $(call findfile,main_dyn.ld,$(L4LIBDIR))
+else
+LDS_LOADER = $(LDS_DEFAULT)
+endif
+
+LIBC_INCLUDE = -nostdinc \
+ -I$(OBJ_BASE)/include/$(ARCH)/uclibc \
+ -I$(OBJ_BASE)/include/uclibc \
+ -I$(OBJ_BASE)/include/uclibc++ \
+ -I$(DROPS_STDDIR)/include/$(ARCH)/uclibc \
+ -I$(DROPS_STDDIR)/include/uclibc \
+ -I$(DROPS_STDDIR)/include/uclibc++ \
+ $(I_GCCINCDIR)
+LIBC_LIB = -luc_c
+
+#############################################################################
+#
+# X86 (IA32)
+#
+
+#
+# x86_tiny - minimal environment (only l4util, no log, no names)
+#
+BID_SUPPORTED_x86_tiny = y
+LIBCINCDIR_x86_tiny = $(LIBC_INCLUDE)
+LIBCLIBDIR_x86_tiny =
+LIBCLIBS_x86_tiny = -nostdlib $(GCCLDNOSTDLIB) \
+ -luc_c \
+ -luc_be_minimal_io \
+ -luc_be_l4_start_stop \
+ $(MMAP_BACKEND) \
+ -luc_c -luclibc_support -ll4util -lsigma0 \
+ -luc_c $(GCCLIB) -luc_c -ll4sys
+L4LIBS_x86_tiny = -static -lmain -ll4util -ll4sys
+CRT0_x86_tiny = $(CRT0_DEFAULT)
+CRTN_x86_tiny =
+LDSCRIPT_x86_tiny = $(LDS_DEFAULT)
+
+
+#
+# x86_sigma0 - minimal environment (util, names, log)
+#
+BID_SUPPORTED_x86_sigma0 = y
+LIBCINCDIR_x86_sigma0 = $(LIBC_INCLUDE)
+LIBCLIBDIR_x86_sigma0 =
+LIBCLIBS_x86_sigma0 = -nostdlib $(GCCLDNOSTDLIB) \
+ -luc_c \
+ -luc_be_minimal_io \
+ -luc_be_l4_start_stop \
+ $(MMAP_BACKEND) \
+ -luc_c -luclibc_support \
+ -llogserver -lnames -lsigma0 \
+ -ll4util_root -ll4util $(ROOTLIB) \
+ -luc_c $(GCCLIB) -luc_c -ll4sys
+L4LIBS_x86_sigma0 = -static -lmain -lnames \
+ -llogserver -ll4util_root -ll4util -ll4sys
+CRT0_x86_sigma0 = $(CRT0_DEFAULT)
+CRTN_x86_sigma0 =
+LDSCRIPT_x86_sigma0 = $(LDS_DEFAULT)
+
+#
+# all_libc - compiles C libs
+#
+BID_SUPPORTED_all_libc = y
+LIBCINCDIR_all_libc = $(LIBC_INCLUDE)
+LIBCLIBDIR_all_libc =
+LIBCLIBS_all_libc = -nostdlib $(GCCLDNOSTDLIB) $(LIBC_LIB) \
+ $(LIBCBACKEND_LIB) $(GCCLIB) $(LIBC_LIB)
+L4LIBS_all_libc =
+CRT0_all_libc = $(CRT0_DEFAULT)
+CRTN_all_libc =
+LDSCRIPT_all_libc = $(LDS_DEFAULT)
+
+
+#
+# all_linux - compilation without anything, but unlike host mode still
+# (potentially) cross compiled
+#
+BID_SUPPORTED_all_linux = y
+LIBCINCDIR_all_linux =
+LIBCLIBDIR_all_linux =
+LIBCLIBS_all_linux =
+L4LIBS_all_linux =
+CRT0_all_linux =
+CRTN_all_linux =
+LDSCRIPT_all_linux =
+
+
+#
+# all_host - compilation for the host system
+#
+BID_SUPPORTED_all_host = y
+LIBCINCDIR_all_host =
+LIBCLIBDIR_all_host =
+LIBCLIBS_all_host =
+L4LIBS_all_host =
+CRT0_all_host =
+CRTN_all_host =
+LDSCRIPT_all_host =
+
+#
+# x86_l4linux - L4Env functions for L4Linux programs
+#
+BID_SUPPORTED_x86_l4linux = y
+LIBCINCDIR_x86_l4linux = $(I_GCCINCDIR)
+LIBCLIBDIR_x86_l4linux = -L$(DROPS_STDDIR)/lib
+LIBCLIBS_x86_l4linux = -ldm_generic -ldm_mem -lnames \
+ $(ROOTLIB) -lloaderif -ll4env \
+ -ll4env_err -lslab \
+ -llogserver_capsule -ll4util -ll4sys-l4x
+CRT0_x86_l4linux =
+CRTN_x86_l4linux =
+LDSCRIPT_x86_l4linux =
+
+
+#
+# x86_l4linux_kern - build L4Linux kernel modules
+#
+BID_SUPPORTED_x86_l4linux_kern = y
+LIBCINCDIR_x86_l4linux_kern = -nostdinc -I$(L4LINUX22_DIR)/include \
+ -D__KERNEL__ -DLINUX_ON_L4 $(I_GCCINCDIR)
+LIBCLIBDIR_x86_l4linux_kern =
+LIBCLIBS_x86_l4linux_kern =
+CRT0_x86_l4linux_kern =
+CRTN_x86_l4linux_kern =
+LDSCRIPT_x86_l4linux_kern =
+
+
+#
+# x86_l4env -- l4env, the default
+#
+BID_SUPPORTED_x86_l4env = y
+LIBCINCDIR_x86_l4env = $(LIBC_INCLUDE)
+LIBCLIBDIR_x86_l4env =
+L4LIBS_x86_l4env = -static -lgeneric_ts -ll4env \
+ -ll4rm -ldm_generic -ldm_mem -lthread \
+ -lsemaphore -llogserver_capsule \
+ -lnames -ll4util_root -ll4util -lsigma0 \
+ $(ROOTLIB) -ll4env -ll4env_err -ll4rm \
+ -ldm_generic -ldm_mem -lthread -lslab \
+ -ll4sys
+LIBCLIBS_x86_l4env = -nostdlib $(GCCLDNOSTDLIB) \
+ $(UCLIBC_IMPLEMENTATION) \
+ -luclibc_support \
+ $(MALLOC_BACKEND) \
+ -lc_be_mmap \
+ -lc_be_mmap_util \
+ -lc_be_l4env_start_stop \
+ -lc_be_minimal_log_io \
+ -luc_be_simple_sleep \
+ -ll4env -llogserver_capsule -ll4rm \
+ -ldm_generic -ldm_mem -lthread \
+ -lgeneric_ts $(UCLIBC_IMPLEMENTATION) \
+ $(GCCLIB) $(UCLIBC_IMPLEMENTATION) \
+ -ll4sys
+CRT0_x86_l4env = $(CRT0_DEFAULT)
+CRTN_x86_l4env =
+LDSCRIPT_x86_l4env = $(LDS_DEFAULT)
+
+#
+# x86_l4env_minimal - uClibc with just write(1, ...) as io backend
+#
+BID_SUPPORTED_x86_l4env_minimal = y
+LIBCINCDIR_x86_l4env_minimal = $(LIBC_INCLUDE)
+LIBCLIBDIR_x86_l4env_minimal =
+LIBCLIBS_x86_l4env_minimal = -nostdlib $(GCCLDNOSTDLIB) \
+ $(MALLOC_BACKEND) \
+ $(UCLIBC_IMPLEMENTATION) \
+ -lc_be_l4env_start_stop -lgeneric_ts \
+ -lc_be_minimal_log_io -lc_be_mmap_util \
+ $(MALLOC_BACKEND) -lc_be_mmap \
+ -lc_be_mmap_util \
+ -ll4rm -ldm_mem -ldm_generic -lthread \
+ -lsemaphore -ll4env -ll4env_err -lslab \
+ -llogserver_capsule -ll4rm -lthread \
+ -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(UCLIBC_IMPLEMENTATION) $(GCCLIB) \
+ $(UCLIBC_IMPLEMENTATION) \
+ -lc_be_l4env_start_stop -luclibc_support \
+ -ll4sys
+L4LIBS_x86_l4env_minimal = -static -ll4rm -ldm_mem \
+ -ldm_generic -lthread -lsemaphore -ll4env \
+ -ll4env_err -lslab -llogserver_capsule \
+ -ll4rm -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(ROOTLIB) -ll4sys
+CRT0_x86_l4env_minimal = $(CRT0_DEFAULT)
+CRTN_x86_l4env_minimal =
+LDSCRIPT_x86_l4env_minimal = $(LDS_DEFAULT)
+
+#
+# x86_l4env_base - uclibc with backends:
+# basic_io, io, basic_mmap, mmap_util, syslog, simple_sleep, time,
+# file_table
+#
+BID_SUPPORTED_x86_l4env_base = y
+LIBCINCDIR_x86_l4env_base = $(LIBC_INCLUDE)
+LIBCLIBDIR_x86_l4env_base =
+LIBCLIBS_x86_l4env_base = -nostdlib $(GCCLDNOSTDLIB) \
+ -u printf -lc_be_io.o $(MALLOC_BACKEND) \
+ -lc_be_time -lrtc -ll4rm -ldm_mem \
+ -ldm_generic -lthread -lsemaphore -ll4env \
+ -ll4env_err -lslab -llogserver_capsule \
+ -ll4rm -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(UCLIBC_IMPLEMENTATION) \
+ $(GCCLIB) \
+ $(MALLOC_BACKEND) -ll4rm -ldm_mem \
+ -ldm_generic -lc_be_time -lc_be_mmap \
+ -lc_be_mmap_util -lc_be_l4env_start_stop \
+ -lgeneric_ts \
+ -lc_be_syslog -lc_be_file-table \
+ -luc_be_simple_sleep -ll4vfs_common_io \
+ -ll4vfs_basic_io -ll4vfs_connection \
+ -ll4vfs_basic_name_server \
+ -ll4vfs_name_server \
+ -ll4vfs_name_space_provider \
+ -ll4vfs_extendable -ll4sys \
+ $(UCLIBC_IMPLEMENTATION)
+L4LIBS_x86_l4env_base = -static -ll4rm -ldm_mem -ldm_generic \
+ -lthread -lsemaphore -ll4env -ll4env_err \
+ -lslab -llogserver_capsule -ll4rm \
+ -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(ROOTLIB) -ll4sys
+CRT0_x86_l4env_base = $(CRT0_DEFAULT)
+CRTN_x86_l4env_base =
+LDSCRIPT_x86_l4env_base = $(LDS_DEFAULT)
+
+#
+# x86_loader - applications to be loaded by the L4Env loader.
+# Will be merged with l4env_base and become the default mode.
+#
+BID_SUPPORTED_x86_loader = y
+LIBCINCDIR_x86_loader = $(LIBC_INCLUDE)
+LIBCLIBDIR_x86_loader =
+LIBCLIBS_x86_loader = -nostdlib $(GCCLDNOSTDLIB) \
+ -luc_c $(GCCLIB) -luc_c
+L4LIBS_x86_loader = -lloader.s -ll4sys
+CRT0_x86_loader = $(CRT0_DEFAULT)
+CRTN_x86_loader =
+LDSCRIPT_x86_loader = $(LDS_LOADER)
+
+
+#############################################################################
+#
+# ARM
+#
+
+#
+# arm_tiny
+#
+BID_SUPPORTED_arm_tiny = y
+LIBCINCDIR_arm_tiny = $(LIBC_INCLUDE)
+LIBCLIBDIR_arm_tiny =
+LIBCLIBS_arm_tiny = -nostdlib $(GCCLDNOSTDLIB) \
+ -lmain -luc_c -luclibc_support \
+ -luc_be_l4_start_stop \
+ -luc_be_minimal_io \
+ $(MMAP_BACKEND) -ll4util \
+ -lsigma0 $(GCCLIB) -luc_c
+L4LIBS_arm_tiny = -static -lmain -ll4util -ll4sys
+CRT0_arm_tiny = $(CRT0_DEFAULT)
+CRTN_arm_tiny =
+LDSCRIPT_arm_tiny = $(LDS_DEFAULT)
+
+#
+# sigma0
+#
+BID_SUPPORTED_arm_sigma0 = y
+LIBCINCDIR_arm_sigma0 = $(LIBC_INCLUDE)
+LIBCLIBDIR_arm_sigma0 =
+LIBCLIBS_arm_sigma0 = -nostdlib $(GCCLDNOSTDLIB) \
+ -lmain \
+ -luc_c \
+ -luclibc_support \
+ -luc_be_l4_start_stop \
+ -luc_be_minimal_io \
+ $(MMAP_BACKEND) \
+ -lsigma0 $(GCCLIB) -luc_c
+L4LIBS_arm_sigma0 = -static -lmain -llogserver -lnames \
+ -ll4util_root -ll4util $(ROOTLIB) -ll4sys
+CRT0_arm_sigma0 = $(CRT0_DEFAULT)
+CRTN_arm_sigma0 =
+LDSCRIPT_arm_sigma0 = $(LDS_DEFAULT)
+
+#
+# arm_l4env_minimal
+#
+BID_SUPPORTED_arm_l4env_minimal = y
+LIBCINCDIR_arm_l4env_minimal = $(LIBC_INCLUDE)
+LIBCLIBDIR_arm_l4env_minimal =
+LIBCLIBS_arm_l4env_minimal = -nostdlib $(GCCLDNOSTDLIB) \
+ $(MALLOC_BACKEND) \
+ $(UCLIBC_IMPLEMENTATION) \
+ -lc_be_l4env_start_stop -lgeneric_ts \
+ -lc_be_minimal_log_io -lc_be_mmap_util \
+ $(MALLOC_BACKEND) -lc_be_mmap \
+ -lc_be_mmap_util \
+ -ll4rm -ldm_mem -ldm_generic -lthread \
+ -lsemaphore -ll4env -ll4env_err -lslab \
+ -llogserver_capsule -ll4rm -lthread \
+ -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(UCLIBC_IMPLEMENTATION) $(GCCLIB) \
+ $(UCLIBC_IMPLEMENTATION) \
+ -lc_be_l4env_start_stop -luclibc_support \
+ -ll4sys
+L4LIBS_arm_l4env_minimal = -static -ll4rm -ldm_mem \
+ -ldm_generic -lthread -lsemaphore -ll4env \
+ -ll4env_err -lslab -llogserver_capsule \
+ -ll4rm -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(ROOTLIB) -ll4sys
+CRT0_arm_l4env_minimal = $(CRT0_DEFAULT)
+CRTN_arm_l4env_minimal =
+LDSCRIPT_arm_l4env_minimal = $(LDS_DEFAULT)
+
+#
+# arm_l4env -- default mode
+#
+BID_SUPPORTED_arm_l4env = y
+LIBCINCDIR_arm_l4env = $(LIBC_INCLUDE)
+LIBCLIBDIR_arm_l4env =
+L4LIBS_arm_l4env = -static -lgeneric_ts -ll4env \
+ -ll4rm -ldm_generic -ldm_mem -lthread \
+ -lsemaphore -llogserver_capsule -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(ROOTLIB) -ll4env -ll4env_err \
+ -ll4rm -ldm_generic -ldm_mem -lthread \
+ -lslab -ll4sys
+LIBCLIBS_arm_l4env = -nostdlib $(GCCLDNOSTDLIB) \
+ -luc_c -luclibc_support \
+ $(MALLOC_BACKEND) \
+ -lc_be_mmap -lc_be_mmap_util \
+ -luc_be_l4_start_stop \
+ -lc_be_minimal_log_io \
+ -ll4env -llogserver_capsule -ll4rm \
+ -ldm_generic -ldm_mem -lthread \
+ -luc_c $(GCCLIB) -luc_c
+CRT0_arm_l4env = $(CRT0_DEFAULT)
+CRTN_arm_l4env =
+LDSCRIPT_arm_l4env = $(LDS_DEFAULT)
+
+BID_SUPPORTED_arm_l4env_base = y
+LIBCINCDIR_arm_l4env_base = $(LIBC_INCLUDE)
+LIBCLIBDIR_arm_l4env_base =
+LIBCLIBS_arm_l4env_base = -nostdlib $(GCCLDNOSTDLIB) \
+ -u printf -lc_be_io.o $(MALLOC_BACKEND) \
+ -lc_be_time -lrtc -ll4rm -ldm_mem \
+ -ldm_generic -lthread -lsemaphore -ll4env \
+ -ll4env_err -lslab -llogserver_capsule \
+ -ll4rm -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(UCLIBC_IMPLEMENTATION) \
+ $(GCCLIB) \
+ $(MALLOC_BACKEND) -ll4rm -ldm_mem \
+ -ldm_generic -lc_be_time -lc_be_mmap \
+ -lc_be_mmap_util -lc_be_l4env_start_stop \
+ -lgeneric_ts \
+ -lc_be_syslog -lc_be_file-table \
+ -luc_be_simple_sleep -ll4vfs_common_io \
+ -ll4vfs_basic_io -ll4vfs_connection \
+ -ll4vfs_basic_name_server \
+ -ll4vfs_name_server \
+ -ll4vfs_name_space_provider \
+ -ll4vfs_extendable -ll4sys \
+ $(UCLIBC_IMPLEMENTATION)
+L4LIBS_arm_l4env_base = -static -ll4rm -ldm_mem -ldm_generic \
+ -lthread -lsemaphore -ll4env -ll4env_err \
+ -lslab -llogserver_capsule -ll4rm \
+ -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(ROOTLIB) -ll4sys
+CRT0_arm_l4env_base = $(CRT0_DEFAULT)
+CRTN_arm_l4env_base =
+LDSCRIPT_arm_l4env_base = $(LDS_DEFAULT)
+
+#
+# arm_loader - applications to be loaded by the L4Env loader.
+#
+BID_SUPPORTED_arm_loader = y
+LIBCINCDIR_arm_loader = $(LIBC_INCLUDE)
+LIBCLIBDIR_arm_loader =
+LIBCLIBS_arm_loader = -nostdlib $(GCCLDNOSTDLIB) \
+ -luc_c $(GCCLIB) -luc_c
+L4LIBS_arm_loader = -lloader.s -ll4sys
+CRT0_arm_loader = $(CRT0_DEFAULT)
+CRTN_arm_loader =
+LDSCRIPT_arm_loader = $(LDS_LOADER)
+
+#
+# arm_l4linux - L4Env functions for L4Linux programs
+#
+BID_SUPPORTED_arm_l4linux = y
+LIBCINCDIR_arm_l4linux = $(I_GCCINCDIR)
+LIBCLIBDIR_arm_l4linux = -L$(DROPS_STDDIR)/lib
+LIBCLIBS_arm_l4linux = -ldm_generic -ldm_mem -lnames \
+ $(ROOTLIB) -lloaderif -ll4env \
+ -ll4env_err -lslab \
+ -llogserver_capsule -ll4util -ll4sys-l4x
+CRT0_arm_l4linux =
+CRTN_arm_l4linux =
+LDSCRIPT_arm_l4linux =
+
+
+#############################################################################
+#
+# AMD64
+#
+
+#
+# amd64_tiny (without names and logserver)
+#
+BID_SUPPORTED_amd64_tiny = y
+LIBCINCDIR_amd64_tiny = $(LIBC_INCLUDE)
+LIBCLIBDIR_amd64_tiny =
+LIBCLIBS_amd64_tiny = -nostdlib $(GCCLDNOSTDLIB) \
+ -luc_c \
+ -luc_be_minimal_io \
+ -luc_be_l4_start_stop \
+ $(MMAP_BACKEND) \
+ -luc_c -luclibc_support -ll4util -lsigma0 \
+ -luc_c $(GCCLIB) -luc_c -ll4sys
+L4LIBS_amd64_tiny = -static -lmain -ll4util -ll4sys
+CRT0_amd64_tiny = $(CRT0_DEFAULT)
+CRTN_amd64_tiny =
+LDSCRIPT_amd64_tiny = $(LDS_DEFAULT)
+
+#
+# amd64_sigma0 - sigma0 mode
+#
+BID_SUPPORTED_amd64_sigma0 = y
+LIBCINCDIR_amd64_sigma0 = $(LIBC_INCLUDE)
+LIBCLIBDIR_amd64_sigma0 =
+LIBCLIBS_amd64_sigma0 = -nostdlib $(GCCLDNOSTDLIB) \
+ -luc_c \
+ -luc_be_minimal_io \
+ -luc_be_l4_start_stop \
+ $(MMAP_BACKEND) \
+ -luc_c -luclibc_support \
+ -llogserver -lnames -lsigma0 \
+ -ll4util_root -ll4util $(ROOTLIB) \
+ -luc_c $(GCCLIB) -luc_c -ll4sys
+L4LIBS_amd64_sigma0 = -static -lmain -lnames \
+ -llogserver -ll4util_root -ll4util -ll4sys
+CRT0_amd64_sigma0 = $(CRT0_DEFAULT)
+CRTN_amd64_sigma0 =
+LDSCRIPT_amd64_sigma0 = $(LDS_DEFAULT)
+
+#
+# amd64_l4env - l4env, the default
+#
+BID_SUPPORTED_amd64_l4env = y
+LIBCINCDIR_amd64_l4env = $(LIBC_INCLUDE)
+LIBCLIBDIR_amd64_l4env =
+L4LIBS_amd64_l4env = -static -lgeneric_ts -ll4env \
+ -ll4rm -ldm_generic -ldm_mem -lthread \
+ -lsemaphore -llogserver_capsule \
+ -lnames -ll4util_root -ll4util $(ROOTLIB) \
+ -ll4env -ll4env_err -ll4rm -ldm_generic \
+ -ldm_mem -lthread -lslab -ll4sys
+LIBCLIBS_amd64_l4env = -nostdlib $(GCCLDNOSTDLIB) \
+ $(UCLIBC_IMPLEMENTATION) \
+ -luclibc_support \
+ $(MALLOC_BACKEND) \
+ -lc_be_mmap \
+ -lc_be_mmap_util \
+ -lc_be_l4env_start_stop \
+ -lc_be_minimal_log_io \
+ -luc_be_simple_sleep \
+ -ll4env -llogserver_capsule -ll4rm \
+ -ldm_generic -ldm_mem -lthread \
+ -lgeneric_ts -lsigma0 \
+ $(UCLIBC_IMPLEMENTATION) \
+ $(GCCLIB) $(UCLIBC_IMPLEMENTATION) \
+ -ll4sys
+CRT0_amd64_l4env = $(CRT0_DEFAULT)
+CRTN_amd64_l4env =
+LDSCRIPT_amd64_l4env = $(LDS_DEFAULT)
+
+BID_SUPPORTED_amd64_l4env_base = y
+LIBCINCDIR_amd64_l4env_base = $(LIBC_INCLUDE)
+LIBCLIBDIR_amd64_l4env_base =
+LIBCLIBS_amd64_l4env_base = -nostdlib $(GCCLDNOSTDLIB) \
+ -u printf -lc_be_io.o $(MALLOC_BACKEND) \
+ -lc_be_time -lrtc -ll4rm -ldm_mem \
+ -ldm_generic -lthread -lsemaphore -ll4env \
+ -ll4env_err -lslab -llogserver_capsule \
+ -ll4rm -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(UCLIBC_IMPLEMENTATION) \
+ $(GCCLIB) \
+ $(MALLOC_BACKEND) -ll4rm -ldm_mem \
+ -ldm_generic -lc_be_time -lc_be_mmap \
+ -lc_be_mmap_util -lc_be_l4env_start_stop \
+ -lgeneric_ts \
+ -lc_be_syslog -lc_be_file-table \
+ -luc_be_simple_sleep -ll4vfs_common_io \
+ -ll4vfs_basic_io -ll4vfs_connection \
+ -ll4vfs_basic_name_server \
+ -ll4vfs_name_server \
+ -ll4vfs_name_space_provider \
+ -ll4vfs_extendable -ll4sys \
+ $(UCLIBC_IMPLEMENTATION)
+L4LIBS_amd64_l4env_base = -static -ll4rm -ldm_mem -ldm_generic \
+ -lthread -lsemaphore -ll4env -ll4env_err \
+ -lslab -llogserver_capsule -ll4rm \
+ -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(ROOTLIB) -ll4sys
+CRT0_amd64_l4env_base = $(CRT0_DEFAULT)
+CRTN_amd64_l4env_base =
+LDSCRIPT_amd64_l4env_base = $(LDS_DEFAULT)
+
+#
+# amd64_l4env_minimal - libc with just write(1, ...) as io backend
+#
+BID_SUPPORTED_amd64_l4env_minimal = y
+LIBCINCDIR_amd64_l4env_minimal = $(LIBC_INCLUDE)
+LIBCLIBDIR_amd64_l4env_minimal =
+LIBCLIBS_amd64_l4env_minimal = -nostdlib $(GCCLDNOSTDLIB) \
+ $(MALLOC_BACKEND) \
+ $(UCLIBC_IMPLEMENTATION) \
+ -lc_be_l4env_start_stop -lgeneric_ts \
+ -lc_be_minimal_log_io -lc_be_mmap_util \
+ $(MALLOC_BACKEND) -lc_be_mmap \
+ -lc_be_mmap_util \
+ -ll4rm -ldm_mem -ldm_generic -lthread \
+ -lsemaphore -ll4env -ll4env_err -lslab \
+ -llogserver_capsule -ll4rm -lthread \
+ -ldm_generic -lnames \
+ -ll4util_root -ll4util -lsigma0 \
+ $(UCLIBC_IMPLEMENTATION) $(GCCLIB) \
+ $(UCLIBC_IMPLEMENTATION) \
+ -lc_be_l4env_start_stop -ll4sys
+L4LIBS_amd64_l4env_minimal = -static -ll4rm -ldm_mem \
+ -ldm_generic -lthread -lsemaphore -ll4env \
+ -ll4env_err -lslab -llogserver_capsule \
+ -ll4rm -lthread -ldm_generic -lnames \
+ -ll4util_root -ll4util $(ROOTLIB) -ll4sys
+CRT0_amd64_l4env_minimal = $(CRT0_DEFAULT)
+CRTN_amd64_l4env_minimal =
+LDSCRIPT_amd64_l4env_minimal = $(LDS_DEFAULT)
+
+.general.d: $(L4DIR_ABS)/mk/modes.inc
diff --git a/libdde_linux26/mk/prog.mk b/libdde_linux26/mk/prog.mk
new file mode 100644
index 00000000..6ffca2f6
--- /dev/null
+++ b/libdde_linux26/mk/prog.mk
@@ -0,0 +1,160 @@
+# -*- Makefile -*-
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Template for binary directories
+#
+# $Id: prog.mk 397 2008-08-22 02:50:28Z l4check $
+#
+# $Author: l4check $
+#
+# Makeconf is used, see there for further documentation
+# install.inc is used, see there for further documentation
+# binary.inc is used, see there for further documentation
+
+ifeq ($(origin _L4DIR_MK_PROG_MK),undefined)
+_L4DIR_MK_PROG_MK=y
+
+ROLE = prog.mk
+
+include $(L4DIR)/mk/Makeconf
+$(GENERAL_D_LOC): $(L4DIR)/mk/prog.mk
+
+# define INSTALLDIRs prior to including install.inc, where the install-
+# rules are defined.
+ifeq ($(MODE),host)
+INSTALLDIR_BIN ?= $(DROPS_STDDIR)/bin/host
+INSTALLDIR_BIN_LOCAL ?= $(OBJ_BASE)/bin/host
+else
+INSTALLDIR_BIN ?= $(DROPS_STDDIR)/bin/$(subst -,/,$(SYSTEM))
+INSTALLDIR_BIN_LOCAL ?= $(OBJ_BASE)/bin/$(subst -,/,$(SYSTEM))
+endif
+ifeq ($(BID_STRIP_PROGS),y)
+INSTALLFILE_BIN ?= $(STRIP) --strip-unneeded $(1) -o $(2) && \
+ chmod 755 $(2)
+INSTALLFILE_BIN_LOCAL ?= $(STRIP) --strip-unneeded $(1) -o $(2) && \
+ chmod 755 $(2)
+else
+INSTALLFILE_BIN ?= $(INSTALL) -m 755 $(1) $(2)
+INSTALLFILE_BIN_LOCAL ?= $(INSTALL) -m 755 $(1) $(2)
+endif
+
+INSTALLFILE = $(INSTALLFILE_BIN)
+INSTALLDIR = $(INSTALLDIR_BIN)
+INSTALLFILE_LOCAL = $(INSTALLFILE_BIN_LOCAL)
+INSTALLDIR_LOCAL = $(INSTALLDIR_BIN_LOCAL)
+
+# our mode
+MODE ?= l4env
+
+# include all Makeconf.locals, define common rules/variables
+include $(L4DIR)/mk/binary.inc
+
+ifneq ($(SYSTEM),) # if we have a system, really build
+
+TARGET_STANDARD := $(TARGET) $(TARGET_$(OSYSTEM))
+TARGET_PROFILE := $(addsuffix .pr,$(filter $(BUILD_PROFILE),$(TARGET)))
+TARGET += $(TARGET_$(OSYSTEM)) $(TARGET_PROFILE)
+
+# define some variables different for lib.mk and prog.mk
+ifeq ($(MODE),loader)
+LDFLAGS += --dynamic-linker libld-l4.s.so
+endif
+ifeq ($(BID_GENERATE_MAPFILE),y)
+LDFLAGS += -Map $(strip $@).map
+endif
+LDFLAGS += $(addprefix -L, $(PRIVATE_LIBDIR) $(PRIVATE_LIBDIR_$(OSYSTEM)) $(PRIVATE_LIBDIR_$@) $(PRIVATE_LIBDIR_$@_$(OSYSTEM)))
+LDFLAGS += $(addprefix -L, $(L4LIBDIR)) $(LIBCLIBDIR)
+LDFLAGS += $(addprefix -T, $(LDSCRIPT)) $(LIBS) $(L4LIBS) $(LIBCLIBS) $(LDFLAGS_$@)
+# Not all host linkers understand this option
+ifneq ($(HOST_LINK),1)
+LDFLAGS += --warn-common
+endif
+
+ifeq ($(notdir $(LDSCRIPT)),main_stat.ld)
+# ld denies -gc-section when linking against shared libraries
+ifeq ($(findstring FOO,$(patsubst -l%.s,FOO,$(LIBS) $(L4LIBS) $(LIBCLIBS))),)
+LDFLAGS += -gc-sections
+endif
+endif
+
+include $(L4DIR)/mk/install.inc
+
+#VPATHEX = $(foreach obj, $(OBJS), $(firstword $(foreach dir, \
+# . $(VPATH),$(wildcard $(dir)/$(obj)))))
+
+# target-rule:
+
+# Make looks for obj-files using VPATH only when looking for dependencies
+# and applying implicit rules. Though make adapts its automatic variables,
+# we cannot use them: The dependencies contain files which have not to be
+# linked to the binary. Therefore the foreach searches the obj-files like
+# make does, using the VPATH variable.
+# Use a surrounding strip call to avoid ugly linebreaks in the commands
+# output.
+
+# Dependencies: When we have ld.so, we use MAKEDEP to build our
+# library dependencies. If not, we fall back to LIBDEPS, an
+# approximation of the correct dependencies for the binary. Note, that
+# MAKEDEP will be empty if we dont have ld.so, LIBDEPS will be empty
+# if we have ld.so.
+
+ifeq ($(HAVE_LDSO),)
+LIBDEPS = $(foreach file, \
+ $(patsubst -l%,lib%.a,$(filter-out -L%,$(LDFLAGS))) \
+ $(patsubst -l%,lib%.so,$(filter-out -L%,$(LDFLAGS))),\
+ $(word 1, $(foreach dir, \
+ $(patsubst -L%,%,\
+ $(filter -L%,$(LDFLAGS) $(L4ALL_LIBDIR))),\
+ $(wildcard $(dir)/$(file)))))
+endif
+
+DEPS += $(foreach file,$(TARGET), $(dir $(file)).$(notdir $(file)).d)
+
+LINK_PROGRAM-C-host-1 := $(CC)
+LINK_PROGRAM-CXX-host-1 := $(CXX)
+
+LINK_PROGRAM := $(LINK_PROGRAM-C-host-$(HOST_LINK))
+ifneq ($(SRC_CC),)
+LINK_PROGRAM := $(LINK_PROGRAM-CXX-host-$(HOST_LINK))
+endif
+
+ifeq ($(LINK_PROGRAM),)
+LINK_PROGRAM := $(LD) -m $(LD_EMULATION)
+endif
+
+$(TARGET): $(OBJS) $(LIBDEPS) $(CRT0) $(CRTN)
+ @$(LINK_MESSAGE)
+ $(VERBOSE)$(call MAKEDEP,$(INT_LD_NAME),,,ld) $(LINK_PROGRAM) -o $@ $(CRT0) $(OBJS) $(LDFLAGS) $(CRTN)
+ @$(BUILT_MESSAGE)
+
+endif # architecture is defined, really build
+
+-include $(DEPSVAR)
+.PHONY: all clean cleanall config help install oldconfig txtconfig
+help::
+ @echo " all - compile and install the binaries"
+ifneq ($(SYSTEM),)
+ @echo " to $(INSTALLDIR_LOCAL)"
+endif
+ @echo " install - compile and install the binaries"
+ifneq ($(SYSTEM),)
+ @echo " to $(INSTALLDIR)"
+endif
+ @echo " relink - relink and install the binaries"
+ifneq ($(SYSTEM),)
+ @echo " to $(INSTALLDIR_LOCAL)"
+endif
+ @echo " disasm - disassemble first target"
+ @echo " scrub - delete backup and temporary files"
+ @echo " clean - delete generated object files"
+ @echo " cleanall - delete all generated, backup and temporary files"
+ @echo " help - this help"
+ @echo
+ifneq ($(SYSTEM),)
+ @echo " binaries are: $(TARGET)"
+else
+ @echo " build for architectures: $(TARGET_SYSTEMS)"
+endif
+
+endif # _L4DIR_MK_PROG_MK undefined
diff --git a/libdde_linux26/mk/ptest b/libdde_linux26/mk/ptest
new file mode 100755
index 00000000..e85d53b6
--- /dev/null
+++ b/libdde_linux26/mk/ptest
@@ -0,0 +1,444 @@
+#! /usr/bin/perl -W
+#
+# Run package tests using Fiasco-UX
+#
+#
+# Adam Lackorzynski <adam@os.inf.tu-dresden.de>
+# Ronald Aigner <ra3@os.inf.tu-dresden.de>
+#
+# This script is derived from the autocheck script which can be found in
+# kernel/fiasco/tools. It has been slightly modified to suit the demands of
+# the package tests.
+#
+
+# make it pass for now
+#exit 0;
+
+use strict;
+use Getopt::Long;
+
+my $FIASCOUX;
+my $FIASCOUX_PARAM;
+my $L4DIR;
+my $OBJ_BASE;
+my $OBJDIR = 'OBJ-x86_586-l4v2';
+my $EXPECTED_OUT = 'expected.txt';
+my $TMP_OUT = 'tmp_out.txt';
+my $PKGNAME;
+my $COMPARE_CMD = 'diff -u $EXPECTED_OUT $TMP_OUT';
+
+my $ALARM_TIMEOUT = 60; # in seconds
+
+my %templs = (
+ roottask => '%s/pkg/roottask/server/src/%s/roottask',
+ sigma0 => '%s/pkg/sigma0/server/src/%s/sigma0',
+);
+
+my $Verbose = 0;
+my $Quiet = 0;
+my $Generate = 0;
+my $Memory = 32;
+my $Plainrun = 0;
+my $No_fb = 0;
+my $Use_Symbols = 0;
+my $Use_Lines = 0;
+
+my %progs;
+my %results;
+my %output;
+my @Baseservers;
+my $Client;
+my $Server;
+my $Fiasco_Dir;
+
+# filehandle for fiasco output
+my $Input;
+my $Output;
+
+my $Exit_code = 0;
+my $pid = 0;
+
+my $FILTER_LEVEL_FIASCO = 0;
+my $FILTER_LEVEL_ROOTTASK = 1;
+my $FILTER_LEVEL_USER = 2;
+my $Filter_state = $FILTER_LEVEL_FIASCO;
+my $Filter_level = $FILTER_LEVEL_USER;
+
+sub usage() {
+ print <<EOU;
+$0 [options] -c <client> -s <server>
+
+ --l4dir, -l path Path to an L4 directory
+ --fiascoux, -f file Path to the Fiasco-UX binary
+ --fiascoux_param, -p params Parameters for Fiasco-UX
+ --memory, -m megabyte Number of Megabytes used by Fiasco. (default: 32)
+ --objdir, -O objdir Object dir, currently: $OBJDIR
+ --verbose, -v Be verbose (e.g. show output of L4 apps)
+ --quiet, -q Tell nothing, just set the exit code
+ --generate Generate the output file instead of comparing to it
+ --server, -s file The server to be tested
+ --client, -c file The file to run as test-application
+ --base, -b file Additional base servers required by the application
+ Can be a comma seperated list. (Only specify the
+ binary names!) (default: log, names, dm_phys)
+ --timeout, -t timeout Time in seconds to wait before shooting down a
+ runaway fiasco. (default: 60)
+ --expectfail Expect failure. Return 0 on failure, 1 on success.
+
+ Environment variables:
+ L4DIR Path to an L4 directory
+ OBJ_BASE Path to build directory
+ FIASCOUX Path to the Fiasco-UX binary
+ EXPECTED_OUT Filename of the file containing the expected output
+ TMP_OUT Filename of the tempfile containing Fiasco's output
+ COMPARE_CMD Command to compare output and expected output
+
+ Notes:
+ Environment variables override options!
+EOU
+}
+
+##
+# Check if L4DIR looks like an L4 directory
+sub check_for_l4dir() {
+ unless (-d "$L4DIR/pkg/l4sys/include" ||
+ -d "$L4DIR/../kernel/fiasco/src/kern/ux") {
+ die "$L4DIR doesn't look like an L4 directory!";
+ }
+}
+
+##
+# Just check if the supplied binary in $FIASCOUX is really
+# a Fiasco UX version. Native versions will just segfault.
+sub check_for_fiasco_ux() {
+
+ unless ((-x $FIASCOUX && -f $FIASCOUX) ||
+ (-l $FIASCOUX && -x readlink $FIASCOUX && -f readlink $FIASCOUX)) {
+ die "$FIASCOUX: Does not exist or isn't an executable file";
+ }
+
+ system("$FIASCOUX -h >/dev/null 2>&1");
+ die "$FIASCOUX doesn't seem to be a UX version." if $?;
+
+ $FIASCOUX =~ /(.*)\/([^\/]*)$/;
+ $Fiasco_Dir = $1;
+}
+
+# check for user app in binary path of L4
+sub check_user_app($)
+{
+ my $app_with_args = shift;
+
+ # extract arch and api from OBJ-dir
+ $OBJDIR =~ /OBJ-([^-]*)-(.*)/;
+ my $arch = $1;
+ my $api = $2;
+
+ my @check = split(/\s+/, $app_with_args);
+ my $app = shift @check;
+
+ my $p = sprintf "%s/bin/%s/%s/%s", $OBJ_BASE, $arch, $api, $app;
+ die "There's no $p!" unless -f $p;
+
+ return $p.'\\ '.join('\\ ', @check) if @check;
+ $p;
+}
+
+##
+# Check for userland (roottask, sigma0, ...)
+sub check_for_userland() {
+ foreach my $t (keys %templs) {
+ my $p = sprintf $templs{$t}, $OBJ_BASE, $OBJDIR;
+ die "There's no $p!" unless -f $p;
+ $progs{$t} = $p;
+ }
+
+ # check for base-servers
+ my @servers = @Baseservers;
+ @Baseservers = {};
+ if (scalar(@servers) eq 0) {
+ @servers = ( "log", "names", "dm_phys" );
+ }
+
+ # iterate over servers and test if they exist in the bin dir
+ foreach my $s (@servers) {
+ push @Baseservers, check_user_app($s);
+ }
+
+ # test client and server
+ push @Baseservers, check_user_app($Client) if defined($Client);
+ push @Baseservers, check_user_app($Server);
+}
+
+##
+# Does the comparison of the output
+sub run_diff {
+ print STDERR "Running compare command \"$COMPARE_CMD\".\n" if $Verbose;
+ open(TMP, "$COMPARE_CMD |") or die "Cannot run diff: $!";
+ my @diff = <TMP>;
+ close TMP;
+
+ # reset console in interactive mode
+ system "if tty -s; then stty echo icrnl icanon; fi";
+
+ # check if there are differences between expected and generated output
+ if (@diff == 0) {
+ print STDERR "Output of test in $PKGNAME ok.\n";
+ return $Exit_code;
+ }
+
+ print STDERR "Test in $PKGNAME generated unexpected output:\n";
+ @diff = splice @diff, 1000 if @diff > 1000;
+ print STDERR @diff, "\n";
+ return 1 - $Exit_code;
+}
+
+##
+# Called if second alarm signal received
+#
+# Now all the output of Fiasco-UX should be through and we can savely kill
+# Fiasco-UX. We then check the generated output and terminate ourselves.
+sub got_sig_alarm_second {
+ print STDERR "Timeout for flushing Fiasco-UX output\n" if $Verbose;
+ print STDERR "Sending SIGKILL to $pid and diff output\n" if $Verbose;
+
+ kill KILL => $pid;
+ alarm 0;
+
+ # some sanity checks
+ if ( $Filter_state < $FILTER_LEVEL_USER ) {
+ print $Output "\n";
+ print $Output "User tasks did not start. Maybe overlapping modules?\n";
+ print $Output "Run \"" . fiascoux_cmdline() . "\" manually to check.\n";
+ }
+ close $Output;
+
+ # in generate mode, simply return
+ if ($Generate) {
+ system "stty echo";
+ exit 0;
+ }
+
+ exit run_diff();
+}
+
+##
+# Called if first alarm signal received
+#
+# To flush Fiasco Output we send it a SIGINT (^C). Then we set up a second
+# timeout and return, so the filter can process the output which we forced to
+# be flushed.
+sub got_sig_alarm_first {
+ print STDERR "Timeout for Fiasco-UX hit!\n" if $Verbose;
+ print STDERR "Sending SIGINT to $pid\n" if $Verbose;
+
+ kill INT => $pid;
+ $SIG{ALRM} = \&got_sig_alarm_second;
+ alarm 2; # time to flush output
+
+ # return to keep on filtering the output of Fiasco
+}
+
+##
+# Runs the timer and kills fiasco if runaway
+#
+# - sets the signal handler
+# - initializes the timeout
+sub set_alarm {
+ $SIG{ALRM} = \&got_sig_alarm_first;
+ alarm $ALARM_TIMEOUT;
+ print STDERR "Set alarm to $ALARM_TIMEOUT seconds\n" if $Verbose;
+}
+
+##
+# Build the fiasco command line
+#
+# Adds the binaries with the appropriate parameters.
+sub fiascoux_cmdline() {
+ (my $p = $FIASCOUX) =~ s/\/[^\/]+$//;
+ my $cmdline = "$FIASCOUX";
+ $cmdline .= " $FIASCOUX_PARAM" if defined $FIASCOUX_PARAM;
+ $cmdline .= " -symbols $Fiasco_Dir/Symbols" if $Use_Symbols;
+ $cmdline .= " -lines $Fiasco_Dir/Lines" if $Use_Lines;
+ $cmdline .= " -m $Memory";
+ $cmdline .= " -R $progs{roottask}"; # -quiet";
+ $cmdline .= "\"" if $Use_Symbols || $Use_Lines;
+ $cmdline .= " -symbols" if $Use_Symbols;
+ $cmdline .= " -lines" if $Use_Lines;
+ $cmdline .= "\"" if $Use_Symbols || $Use_Lines;
+ $cmdline .= " -S $progs{sigma0}"; # --quiet";
+ # when we change this to not cd into Fiasco dir, then
+ # prepend $p to $irq0
+ $cmdline .= " -I ".$p."/irq0";
+ if ($No_fb eq 1) {
+ $cmdline .= " -F /bin/true";
+ } else {
+ $cmdline .= " -F ".$p."/con_ux";
+ }
+ # add -l to base-servers, which already contains client and server
+ for my $s (@Baseservers) {
+ if (ref($s) ne "HASH") { # just checking for Hashes that smuggled in
+ $cmdline .= " -l ".$s;
+ }
+ }
+ $cmdline;
+}
+
+##
+# filters the output of fiasco
+#
+# We want to see everything once roottask are finished loading.
+# Therefore, we need some state machine to skip everything before and while
+# roottask is running.
+sub filter_fiasco_out
+{
+ $_ = shift;
+
+ # filter escape sequences
+ s/[[:cntrl:]]\[(\d;)?\d{0,2}m//g;
+ s/ //g;
+ s/[[:cntrl:]]\[K//g;
+ s/[[:cntrl:]]\[\d+;\d+[Hfr]//g;
+
+ # check if we have to change state
+ if (/^Roottask: Loading \d+ modules\./ &&
+ $Filter_state eq $FILTER_LEVEL_FIASCO) {
+ $Filter_state = $FILTER_LEVEL_ROOTTASK;
+ print STDERR "Changed state to Roottask-Output\n" if $Verbose;
+ }
+ if ( /^$/ && $Filter_state eq $FILTER_LEVEL_ROOTTASK) {
+ $Filter_state = $FILTER_LEVEL_USER;
+ print STDERR "Changed state to Userland-Output\n" if $Verbose;
+ }
+
+ # skip everything before and from roottask
+ return undef if $Filter_state < $Filter_level;
+
+ # if we are not supposed to filter anything, then return the line
+ return $_ if $Filter_level eq $FILTER_LEVEL_FIASCO;
+
+ # filter empty lines
+ return undef if /^$/;
+
+ # filter JDB warning and prompt
+ return undef if /^Terminal probably too small, should be at least/;
+ return undef if /^\([a-f0-9]\.\d\d\) jdb:/;
+ return undef if /^--.*ESP:.*EIP:.*/;
+
+ # filter memory dump
+ return undef if /^([a-f0-9]){8}:/;
+
+ $_;
+}
+
+##
+# call_test
+sub run_fiasco {
+ my $cmdline = fiascoux_cmdline();
+ print "Calling: $cmdline\n" if $Verbose;
+
+ $pid = open($Input, "$cmdline|");
+ die "Can't start Fiasco: $!" unless defined $pid;
+ print "Run Fiasco-UX in $pid\n" if $Verbose;
+
+ # if in generate mode, we redirect output to EXPECTED_OUT
+ # otherwise we redirect stdout to the TMP_OUT file
+ my $filename = $Generate ? $EXPECTED_OUT : $TMP_OUT;
+ open($Output, ">$filename") || die "Cannot open output file $filename";
+ my $oldfh = select($Output); $| = 1; select($oldfh);
+ print STDERR "Opened $filename, now setting timer\n" if $Verbose;
+
+ # the parent sets up the timer (it will eventually call the run_diff sub)
+ set_alarm();
+
+ my $o;
+ while (<$Input>) {
+ # we have to strip some lines
+ $o = filter_fiasco_out($_);
+ next unless defined $o;
+ print $Output $o;
+ }
+ print STDERR "Fiasco terminated.\n" if $Verbose;
+ close $Input;
+ close $Output;
+ # when we drop out of this loop fiasco terminated
+ alarm 0;
+
+ # in generate mode, simply return
+ exit 0 if $Generate;
+
+ exit run_diff();
+}
+
+##
+# Plain run of Fiasco UX
+#
+# Not timer, no filter, simply run UX
+sub run_plain_fiasco {
+ my $cmdline = fiascoux_cmdline();
+ print "Running UX: \"$cmdline\"\n";
+ exec($cmdline) or die "Can't start Fiasco: $!";
+ exit 1;
+}
+
+
+# -------------------------------------------------------------
+
+unless (GetOptions("help|h", sub { usage(); exit(0); },
+ "l4dir|l=s", \$L4DIR,
+ "builddir=s", \$OBJ_BASE,
+ "fiascoux|f=s", \$FIASCOUX,
+ "fiascoux_param|p=s", \$FIASCOUX_PARAM,
+ "memory|m=s", \$Memory,
+ "objdir|O=s", \$OBJDIR,
+ "verbose|v!", \$Verbose,
+ "quiet|q!", \$Quiet,
+ "generate!", \$Generate,
+ "expectfail!", \$Exit_code,
+ "client|c=s", \$Client,
+ "server|s=s", \$Server,
+ "base|b=s", \@Baseservers,
+ "timeout|t=s", \$ALARM_TIMEOUT,
+ "plainrun!", \$Plainrun,
+ "filterlevel=i", \$Filter_level,
+ "nofb!", \$No_fb,
+ "symbols!", \$Use_Symbols,
+ "lines!", \$Use_Lines,
+ )) {
+ usage();
+ exit(1);
+}
+
+@Baseservers = split(/,/,join(',',@Baseservers));
+
+$L4DIR = $ENV{L4DIR} || die "Need an L4DIR set!" unless $L4DIR;
+$OBJ_BASE = $ENV{OBJ_BASE} || die "Need an builddir (OBJ_BASE) set!" unless $OBJ_BASE;
+$FIASCOUX = $ENV{FIASCOUX} || die "Need a Fiasco-UX path!" unless $FIASCOUX;
+if ($ENV{EXPECTED_OUT}) { $EXPECTED_OUT = $ENV{EXPECTED_OUT}; }
+die "Need filename of expected output!" unless $EXPECTED_OUT;
+if ($ENV{TMP_OUT}) { $TMP_OUT = $ENV{TMP_OUT}; }
+die "No valid temporary file set!" unless $TMP_OUT;
+$PKGNAME = $ENV{PKGNAME} || $Server
+ || die "No package-name set!" unless $PKGNAME;
+if ($ENV{COMPARE_CMD}) { $COMPARE_CMD = $ENV{COMPARE_CMD}; }
+die "No compare command set!" unless $COMPARE_CMD;
+
+check_for_l4dir();
+check_for_fiasco_ux();
+check_for_userland();
+
+##
+# The package test script:
+# This script forks off Fiasco and sets up a timeout. When the timeout
+# strikes, it sends a SIGINT to Fiasco to force a flush of the output buffer.
+# Then it sends a SIGKILL to terminate Fiasco.
+print "Main called by $$.\n" if $Verbose;
+
+# if plainrun, start run_plain_fiasco (it never returns)
+run_plain_fiasco() if $Plainrun;
+
+# this function forks off fiasco
+run_fiasco();
+
+# when we reach this point, something terribly went wrong
+die "Oops, error in script!\n";
diff --git a/libdde_linux26/mk/redo_defconfigs b/libdde_linux26/mk/redo_defconfigs
new file mode 100755
index 00000000..e26644ad
--- /dev/null
+++ b/libdde_linux26/mk/redo_defconfigs
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+set -x
+
+TMPDIR=$(mktemp -d)
+
+exithandler()
+{
+ rm -r $TMPDIR
+}
+
+trap exithandler EXIT
+
+cd ..
+
+for i in mk/defconfig/config.*; do
+ DROPSCONF_DEFCONFIG=$i make O=$TMPDIR oldconfig
+ diff -u $i $TMPDIR/.Makeconf.bid
+ grep -v '^DROPS_STDDIR=' $TMPDIR/.Makeconf.bid > $i
+ rm $TMPDIR/{.Makeconf.bid,.Makeconf.bid.converted,Makeconf.bid.local,Makeconf.bid.local.indep}
+done
diff --git a/libdde_linux26/mk/rel2abs.sh b/libdde_linux26/mk/rel2abs.sh
new file mode 100755
index 00000000..33dd8a5b
--- /dev/null
+++ b/libdde_linux26/mk/rel2abs.sh
@@ -0,0 +1,72 @@
+#! /bin/bash
+#
+# Convert relative path to absolute one
+#
+# Adam Lackorzynski <adam@os.inf.tu-dresden.de>
+#
+
+help()
+{
+ echo PWD=\$PWD $0 relpath1 [relpath2 [..]]
+ exit $1
+}
+
+convertpath()
+{
+ relpath=$1
+ basepath=$PWD
+ # sanity checks
+ [ -z "$relpath" -o -z "$basepath" ] && help 1
+ [ "${basepath#/}" = "${basepath}" ] && help 1
+ [ "${basepath/\/..\//}" = "${basepath}" ] || help 1
+ [ "${basepath/\/.\//}" = "${basepath}" ] || help 1
+ [ "${basepath/%\/../}" = "${basepath}" ] || help 1
+ [ "${basepath/%\/./}" = "${basepath}" ] || help 1
+
+
+ # remove slashes at the end
+ while [ "${relpath%/}" != "${relpath}" ];
+ do relpath="${relpath%/}"; done
+
+ # remove double/multi slashes
+ while [ "${relpath/\/\///}" != "${relpath}" ];
+ do relpath=${relpath/\/\///}; done
+
+ # is relpath relative?
+ if [ "${relpath#/}" != "${relpath}" ]; then
+ basepath=''
+ relpath=${relpath#/}
+ fi
+
+ relpath="$relpath/"
+
+ while [ -n "$relpath" ];
+ do
+ elem=${relpath%%/*}
+ relpath=${relpath#*/}
+
+ case $elem in
+ .) # skip
+ ;;
+ ..)
+ basepath=${basepath%/*}
+ ;;
+ *)
+ basepath=$basepath/$elem
+ ;;
+ esac
+
+ done
+
+ [ -z "$basepath" ] && basepath=/$basepath
+
+ echo $basepath
+}
+
+while [ -n "$1" ];
+do
+ convertpath $1
+ shift
+done
+
+exit 0
diff --git a/libdde_linux26/mk/runux.mk b/libdde_linux26/mk/runux.mk
new file mode 100644
index 00000000..c19a30ac
--- /dev/null
+++ b/libdde_linux26/mk/runux.mk
@@ -0,0 +1,194 @@
+# -*- Makefile -*-
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Template to run tests with Fiasco-UX
+#
+# install.inc is used, see there for further documentation
+
+ifeq ($(origin _L4DIR_MK_RUNUX_MK),undefined)
+_L4DIR_MK_RUNUX_MK=y
+
+ROLE = runux.mk
+.general.d: $(L4DIR)/mk/runux.mk
+
+# set a mode, so binary.inc is satisfied
+MODE ?= l4env
+
+# include all Makeconf.locals, define common rules/variables
+include $(L4DIR)/mk/Makeconf
+include $(L4DIR)/mk/binary.inc
+
+# if we have a system set, build
+ifneq ($(SYSTEM),)
+
+##
+# !WARNING!
+#
+# This is a preliminary test to allow l4check to run Fiasco-UX tests for
+# multiple SYSTEMS. This currently only works for x86.
+ifneq ($(ARCH),x86)
+$(error "$(ROLE) currently does not support $(ARCH).")
+endif
+
+# now check if the current API has a FIASCOUX variable set and if so use it
+# XXX could be overloaded by $(OSYSTEM) == $(ARCH)-$(L4API) or $(SYSTEM)
+ifneq ($(FIASCOUX_$(L4API)),)
+FIASCOUX = $(FIASCOUX_$(L4API))
+else
+$(warning "Using generic(?) Fiasco UX "$(FIASCOUX)" to test $(L4API).")
+endif
+
+# the testapplication
+# test if variables are set
+ifeq ($(TEST_SERVER),)
+DO_TARGET := no_ptest
+else
+DO_TARGET := ptest
+endif
+# TEST_CLIENT might be empty. Testing server stand-alone
+ifneq ($(TEST_CLIENT),)
+TEST_CLIENT_PARAM = $(addprefix -c ,$(TEST_CLIENT))
+endif
+ifneq ($(BASE_SERVERS),)
+$(warning $(BASE_SERVERS))
+BASESERVERS = $(foreach server, $(BASE_SERVERS), -b $(server) $(BASE_SERVERS_PARAM_$(server)))
+endif
+
+# expected output and what to do on mismatch
+EXPECTED_OUT ?= expected.txt
+TIMEOUT ?= 10
+DEBUG_PERL ?= 0
+TMP_OUT ?= tmp_out.txt
+
+# specify files to delete when doing 'make clean'
+DEL_ON_CLEAN = $(TMP_OUT) core
+
+ifneq ($(DEBUG_PERL),0)
+DEBUG_PERL_ = -v
+else
+DEBUG_PERL_ =
+endif
+
+ifneq ($(MEMORY),)
+MEMORY_ = -m $(MEMORY)
+endif
+
+ifneq ($(FIASCOUX_PARAM),)
+FIASCOUX_PARAM_ = -p $(FIASCOUX_PARAM)
+endif
+
+# allow failure of test
+#
+# If EXPECT_FAIL is set, the test if the output matches must fail, otherwise
+# ptest will return an error.
+ifeq ($(EXPECT_FAIL),1)
+EXPECT_FAIL_ = --expectfail
+else
+EXPECT_FAIL_ =
+endif
+
+# do keep ALL output
+#
+# if FILTER_KEEP_ALL is set, the Fiasco UX output is only filtered for escape
+# sequences. All other output is printed into temporary file
+ifeq ($(FILTER_KEEP_ALL),1)
+FILTER_KEEP_ = --filterlevel=0
+else
+FILTER_KEEP_ =
+endif
+
+# no framebuffer device
+#
+# If NO_FBUF_DEV is set, Fiasco UX will not open an X window to display
+# graphical output. This is useful for testing graphical applications.
+ifeq ($(NO_FBUF_DEV),1)
+NO_FBUF_DEV_ = --nofb
+else
+NO_FBUF_DEV_ =
+endif
+
+# enable symbols and lines per default
+USE_SYMBOLS ?= y
+USE_LINES ?= y
+
+ifeq ($(USE_SYMBOLS),y)
+USE_SYMBOLS_ = --symbols
+else
+USE_SYMBOLS_ =
+endif
+ifeq ($(USE_LINES),y)
+USE_LINES_ = --lines
+else
+USE_LINES_ =
+endif
+
+all:: $(DO_TARGET)
+
+# install.inc eventually defines rules for every target
+include $(L4DIR)/mk/install.inc
+
+no_ptest:
+ @echo "No test defined, skipping"
+
+ptest:: $(EXPECTED_OUT) $(BID_OBJ_Makefile).inc
+ $(VERBOSE)echo "Running Fiasco UX to test $(TEST_SERVER)"
+ $(VERBOSE)EXPECTED_OUT=$(EXPECTED_OUT) PKGNAME=$(PKGNAME) \
+ L4DIR=$(L4DIR) OBJ_BASE=$(OBJ_BASE) TMP_OUT=$(TMP_OUT) \
+ COMPARE_CMD=$(COMPARE_CMD) \
+ $(L4DIR)/mk/ptest -s $(TEST_SERVER) $(TEST_CLIENT_PARAM) \
+ -f $(FIASCOUX) $(FIASCOUX_PARAM_) -t $(TIMEOUT) \
+ -O OBJ-$(SYSTEM) \
+ $(BASESERVERS) $(DEBUG_PERL_) $(MEMORY_) $(EXPECT_FAIL_) \
+ $(FILTER_KEEP_) $(NO_FBUF_DEV_) $(USE_SYMBOLS_) $(USE_LINES_)
+
+genexp:: $(EXPECTED_OUT) $(BID_OBJ_Makefile).inc
+
+$(EXPECTED_OUT):
+ $(VERBOSE)echo "Running Fiasco UX to generate expected output"
+ $(VERBOSE)EXPECTED_OUT=$(EXPECTED_OUT) PKGNAME=$(PKGNAME) \
+ L4DIR=$(L4DIR) OBJ_BASE=$(OBJ_BASE) TMP_OUT=$(TMP_OUT) \
+ COMPARE=$(COMPARE_CMD) \
+ $(L4DIR)/mk/ptest -s $(TEST_SERVER) $(TEST_CLIENT_PARAM) \
+ -f $(FIASCOUX) $(FIASCOUX_PARAM_) -t $(TIMEOUT) \
+ -O OBJ-$(SYSTEM) \
+ $(BASESERVERS) $(DEBUG_PERL_) $(MEMORY_) $(EXPECT_FAIL_) \
+ $(FILTER_KEEP_) $(NO_FBUF_DEV_) $(USE_SYMBOLS_) $(USE_LINES_) \
+ --generate
+ $(VERBOSE)touch .expect-autogenerated
+
+plainrun:: $(BID_OBJ_Makefile).inc
+ $(VERBOSE)echo "Starting Fiasco UX"
+ $(VERBOSE)EXPECTED_OUT=$(EXPECTED_OUT) PKGNAME=$(PKGNAME) \
+ L4DIR=$(L4DIR) OBJ_BASE=$(OBJ_BASE) TMP_OUT=$(TMP_OUT) \
+ COMPARE_CMD=$(COMPARE_CMD) \
+ $(L4DIR)/mk/ptest -s $(TEST_SERVER) $(TEST_CLIENT_PARAM) \
+ -f $(FIASCOUX) $(FIASCOUX_PARAM_) -t $(TIMEOUT) \
+ -O OBJ-$(SYSTEM) \
+ $(BASESERVERS) $(DEBUG_PERL_) $(MEMORY_) $(FILTER_KEEP_) \
+ $(NO_FBUF_DEV_) $(USE_SYMBOLS_) $(USE_LINES_) --plainrun
+
+endif # system defined
+
+ptest genexp plainrun:: $(foreach arch,$(TARGET_SYSTEMS),\
+ $(OBJ_DIR)/OBJ-$(arch)/$(BID_OBJ_Makefile))
+ $(if $(TARGET_SYSTEMS), $(VERBOSE)set -e ; \
+ for d in $(TARGET_SYSTEMS) ; do \
+ PWD=$(OBJ_DIR)/OBJ-$$d $(MAKE) -C $(OBJ_DIR)/OBJ-$$d -f $(BID_OBJ_Makefile) \
+ $@ ; done )
+
+.PHONY: all ptest genexp plainrun clean cleanall help no_ptest
+-include $(DEPSVAR)
+
+help::
+ @echo "Specify a target:"
+ @echo "all - run test"
+ @echo "test - run test"
+ @echo "genexp - generate file with expected output"
+ @echo "plainrun - just run binaries (no filter, no comparison)"
+ @echo "clean - delete generated intermediate files"
+ @echo "cleanall - delete all generated files (include genexp target)"
+ @echo "help - this help"
+ @echo
+
+endif # _L4DIR_MK_RUNUX_MK undefined
diff --git a/libdde_linux26/mk/subdir.mk b/libdde_linux26/mk/subdir.mk
new file mode 100644
index 00000000..0f31b2d1
--- /dev/null
+++ b/libdde_linux26/mk/subdir.mk
@@ -0,0 +1,72 @@
+# -*- Makefile -*-
+#
+# DROPS (Dresden Realtime OPerating System) Component
+#
+# Makefile-Template for directories containing only subdirs
+#
+# 05/2002 Jork Loeser <jork.loeser@inf.tu-dresden.de>
+
+include $(L4DIR)/mk/Makeconf
+
+ifeq ($(PKGDIR),.)
+TARGET ?= $(patsubst %/Makefile,%,$(wildcard $(addsuffix /Makefile, \
+ idl include src lib server examples doc)))
+$(if $(wildcard include/Makefile), idl lib server examples: include)
+$(if $(wildcard idl/Makefile), lib server examples: idl)
+$(if $(wildcard lib/Makefile), server examples: lib)
+else
+TARGET ?= $(patsubst %/Makefile,%,$(wildcard $(addsuffix /Makefile, \
+ idl src lib server examples doc)))
+endif
+SUBDIR_TARGET := $(if $(filter doc,$(MAKECMDGOALS)),$(TARGET), \
+ $(filter-out doc,$(TARGET)))
+
+all:: $(SUBDIR_TARGET) $(SUBDIRS)
+install::
+
+clean cleanall scrub::
+ $(VERBOSE)set -e; $(foreach d,$(TARGET), test -f $d/broken || \
+ if [ -f $d/Makefile ] ; then PWD=$(PWD)/$d $(MAKE) -C $d $@ $(MKFLAGS) $(MKFLAGS_$(d)); fi; )
+
+install oldconfig txtconfig relink::
+ $(VERBOSE)set -e; $(foreach d,$(TARGET), test -f $d/broken -o -f $d/obsolete || \
+ if [ -f $d/Makefile ] ; then PWD=$(PWD)/$d $(MAKE) -C $d $@ $(MKFLAGS) $(MKFLAGS_$(d)); fi; )
+
+# first the subdir-targets (this is were "all" will be build, e.g. in lib
+# or server.
+$(filter-out ptest,$(SUBDIR_TARGET)):
+ $(VERBOSE)test -f $@/broken -o -f $@/obsolete || \
+ if [ -f $@/Makefile ] ; then PWD=$(PWD)/$@ $(MAKE) -C $@ $(MKFLAGS) ; fi
+# Second, the rules for going down into sub-pkgs with "lib" and "server"
+# targets. Going down into sub-pkgs.
+ $(if $(SUBDIRS),$(if $(filter $@,idl include lib server examples doc),\
+ $(VERBOSE)set -e; for s in $(SUBDIRS); do \
+ PWD=$(PWD)/$$s $(MAKE) -C $$s $@ $(MKFLAGS); done ))
+
+idl include lib server examples doc:
+
+# the test target is something special:
+TEST_DEPENDS ?= server
+
+# check if the test directory exists, check if its broken or obsolete
+# to be able to specify additional dependencies, we make it a :: target
+ptest:: $(TEST_DEPENDS)
+ $(VERBOSE)test -f $@/broken -o -f $@/obsolete || \
+ if [ -f $@/Makefile ] ; then PWD=$(PWD)/$@ $(MAKE) -C $@ $(MKFLAGS) ; fi
+
+install-symlinks:
+ $(warning target install-symlinks is obsolete. Use 'include' instead (warning only))
+ $(VERBOSE)$(MAKE) include
+
+help::
+ @echo " all - build subdirs: $(SUBDIR_TARGET)"
+ $(if $(filter doc,$(TARGET)), \
+ @echo " doc - build documentation")
+ @echo " scrub - call scrub recursively"
+ @echo " clean - call clean recursively"
+ @echo " cleanall - call cleanall recursively"
+ @echo " install - build subdirs, install recursively then"
+ @echo " oldconfig - call oldconfig recursively"
+ @echo " txtconfig - call txtconfig recursively"
+
+.PHONY: $(TARGET) all clean cleanall help install oldconfig txtconfig
diff --git a/libdde_linux26/mk/tmpl/MAINTAINER b/libdde_linux26/mk/tmpl/MAINTAINER
new file mode 100644
index 00000000..85eb7179
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/MAINTAINER
@@ -0,0 +1 @@
+mailaddr <enter your mail address here>
diff --git a/libdde_linux26/mk/tmpl/Makefile b/libdde_linux26/mk/tmpl/Makefile
new file mode 100644
index 00000000..eb46c32a
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/Makefile
@@ -0,0 +1,9 @@
+PKGDIR ?= .
+L4DIR ?= $(PKGDIR)/../..
+
+# the default is to build the listed directories, provided that they
+# contain a Makefile. If you need to change this, uncomment the following
+# line and adapt it.
+# TARGET = idl include src lib server examples doc
+
+include $(L4DIR)/mk/subdir.mk
diff --git a/libdde_linux26/mk/tmpl/examples/Makefile b/libdde_linux26/mk/tmpl/examples/Makefile
new file mode 100644
index 00000000..065f6d87
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/examples/Makefile
@@ -0,0 +1,10 @@
+PKGDIR ?= ..
+L4DIR ?= $(PKGDIR)/../..
+
+# create examples demonstrating the use of you package in subdirectories
+# and list those subdirs in the TARGET variable.
+TARGET =
+
+include $(L4DIR)/mk/subdir.mk
+
+
diff --git a/libdde_linux26/mk/tmpl/idl/Makefile b/libdde_linux26/mk/tmpl/idl/Makefile
new file mode 100644
index 00000000..902a1714
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/idl/Makefile
@@ -0,0 +1,13 @@
+#
+# makefile for package IDL directory
+#
+
+PKGDIR ?= ..
+L4DIR ?= $(PKGDIR)/../..
+
+# create an idl file an assign its name to IDL
+IDL =
+# the default idl type is DCE/dice. Uncomment the next line to change this.
+# IDL_TYPE= <your choice>
+
+include $(L4DIR)/mk/idl.mk
diff --git a/libdde_linux26/mk/tmpl/include/Makefile b/libdde_linux26/mk/tmpl/include/Makefile
new file mode 100644
index 00000000..8d31023f
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/include/Makefile
@@ -0,0 +1,9 @@
+PKGDIR ?= ..
+L4DIR ?= $(PKGDIR)/../..
+
+# All haeder files found in this directory tree will be automatically
+# installed in a way that they can be included with
+# #include <l4/pkgname/yourfile.h> later.
+# No need to list them in this Makefile.
+
+include $(L4DIR)/mk/include.mk
diff --git a/libdde_linux26/mk/tmpl/inst b/libdde_linux26/mk/tmpl/inst
new file mode 100755
index 00000000..5e553544
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/inst
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# install default directory hierarchy and default Makefiles
+#
+# Call this script from a newly created package directory.
+
+set -e
+tar c -C "${0%/*}" -f- --exclude=.svn --exclude=inst . | tar xvf -
diff --git a/libdde_linux26/mk/tmpl/lib/Makefile b/libdde_linux26/mk/tmpl/lib/Makefile
new file mode 100644
index 00000000..67d58733
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/lib/Makefile
@@ -0,0 +1,9 @@
+PKGDIR ?= ..
+L4DIR ?= $(PKGDIR)/../..
+
+# the default is to build the listed directories, provided that they
+# contain a Makefile. If you need to change this, uncomment the following
+# line and adapt it.
+# TARGET = idl src lib server examples doc
+
+include $(L4DIR)/mk/subdir.mk
diff --git a/libdde_linux26/mk/tmpl/lib/src/Makefile b/libdde_linux26/mk/tmpl/lib/src/Makefile
new file mode 100644
index 00000000..dfa73716
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/lib/src/Makefile
@@ -0,0 +1,14 @@
+PKGDIR?= ../..
+L4DIR ?= $(PKGDIR)/../..
+
+# the name of your library
+TARGET = lib$(PKGNAME).a
+
+# list your .c files here
+SRC_C =
+
+# if your library implements the client side of an idl defined in an
+# idl-file of your package, list the idl file name(s) here (no path needed)
+CLIENTIDL =
+
+include $(L4DIR)/mk/lib.mk
diff --git a/libdde_linux26/mk/tmpl/ptest/Makefile b/libdde_linux26/mk/tmpl/ptest/Makefile
new file mode 100644
index 00000000..2fc7ed3b
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/ptest/Makefile
@@ -0,0 +1,6 @@
+PKGDIR ?= ..
+L4DIR ?= $(PKGDIR)/../..
+
+TARGET = run
+
+include $(L4DIR)/mk/subdir.mk
diff --git a/libdde_linux26/mk/tmpl/ptest/run/Makefile b/libdde_linux26/mk/tmpl/ptest/run/Makefile
new file mode 100644
index 00000000..321601f0
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/ptest/run/Makefile
@@ -0,0 +1,10 @@
+PKGDIR ?= ../..
+L4DIR ?= $(PKGDIR)/../..
+
+# insert the binary name of the server to test
+TEST_SERVER =
+
+# insert the binary name of the application testing the server
+TEST_CLIENT =
+
+include $(L4DIR)/mk/runux.mk
diff --git a/libdde_linux26/mk/tmpl/server/Makefile b/libdde_linux26/mk/tmpl/server/Makefile
new file mode 100644
index 00000000..67d58733
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/server/Makefile
@@ -0,0 +1,9 @@
+PKGDIR ?= ..
+L4DIR ?= $(PKGDIR)/../..
+
+# the default is to build the listed directories, provided that they
+# contain a Makefile. If you need to change this, uncomment the following
+# line and adapt it.
+# TARGET = idl src lib server examples doc
+
+include $(L4DIR)/mk/subdir.mk
diff --git a/libdde_linux26/mk/tmpl/server/src/Makefile b/libdde_linux26/mk/tmpl/server/src/Makefile
new file mode 100644
index 00000000..8b0c2471
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/server/src/Makefile
@@ -0,0 +1,18 @@
+PKGDIR ?= ../..
+L4DIR ?= $(PKGDIR)/../..
+
+TARGET = $(PKGNAME)
+# the default relocation address. This may be superseded by a STATIC file.
+DEFAULT_RELOC = 0x01800000
+
+# list your .c files here
+SRC_C = main.c
+
+# if your server implements the server side of an idl defined in an idl-file
+# of your package, list the idl file name(s) here (no path needed)
+SERVERIDL =
+
+# list additional library paths and libraries here
+LIBS =
+
+include $(L4DIR)/mk/prog.mk
diff --git a/libdde_linux26/mk/tmpl/server/src/main.c b/libdde_linux26/mk/tmpl/server/src/main.c
new file mode 100644
index 00000000..65eddcf8
--- /dev/null
+++ b/libdde_linux26/mk/tmpl/server/src/main.c
@@ -0,0 +1,5 @@
+
+int main(int argc, char **argv)
+{
+ return 0;
+}