diff options
Diffstat (limited to 'libdde_linux26/mk/Makeconf')
| -rw-r--r-- | libdde_linux26/mk/Makeconf | 515 |
1 files changed, 0 insertions, 515 deletions
diff --git a/libdde_linux26/mk/Makeconf b/libdde_linux26/mk/Makeconf deleted file mode 100644 index fa6474ae..00000000 --- a/libdde_linux26/mk/Makeconf +++ /dev/null @@ -1,515 +0,0 @@ -# -*- 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 |
