summaryrefslogtreecommitdiff
path: root/libdde_linux26/mk/binary.inc
diff options
context:
space:
mode:
Diffstat (limited to 'libdde_linux26/mk/binary.inc')
-rw-r--r--libdde_linux26/mk/binary.inc731
1 files changed, 0 insertions, 731 deletions
diff --git a/libdde_linux26/mk/binary.inc b/libdde_linux26/mk/binary.inc
deleted file mode 100644
index e35547f3..00000000
--- a/libdde_linux26/mk/binary.inc
+++ /dev/null
@@ -1,731 +0,0 @@
-# -*- 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 ?= $(OBJ_BASE)/include/$(ARCH) \
- $(OBJ_BASE)/include \
-# $(addprefix $(OBJ_BASE)/include/$(ARCH)/,$(L4API)) \
-# $(addprefix $(OBJ_BASE)/include/,$(L4API)) \
-# $(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 -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))
-# defined in mk/Makeconf and this file.
-CPPFLAGS+= $(DEFINES)
-CPPFLAGS+= $(BID_CPPFLAGS_SYSCALLS)
-CPPFLAGS+= $(addprefix -I, $(PRIVATE_INCDIR) $(PRIVATE_INCDIR_$(OSYSTEM)) $(PRIVATE_INCDIR_$@) $(PRIVATE_INCDIR_$@_$(OSYSTEM)))
-CPPFLAGS+= -I.
-#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)
-