summaryrefslogtreecommitdiff
path: root/libdde-linux26/mk/Makeconf
diff options
context:
space:
mode:
Diffstat (limited to 'libdde-linux26/mk/Makeconf')
-rw-r--r--libdde-linux26/mk/Makeconf515
1 files changed, 515 insertions, 0 deletions
diff --git a/libdde-linux26/mk/Makeconf b/libdde-linux26/mk/Makeconf
new file mode 100644
index 00000000..fa6474ae
--- /dev/null
+++ b/libdde-linux26/mk/Makeconf
@@ -0,0 +1,515 @@
+# -*- 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
+
+SYSTEMS = x86-l4v2
+ARCH = x86
+
+# 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 ?= $(PKGDIR)/build
+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