Added Cortex to build system, removed makefiles.

This turned out to be more complex then expected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16735 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Marcus Overhagen
2006-03-12 13:51:23 +00:00
parent 641a8290a7
commit 8fc14465b5
22 changed files with 316 additions and 542 deletions
+1
View File
@@ -5,6 +5,7 @@ SubInclude HAIKU_TOP src apps bemail ;
SubInclude HAIKU_TOP src apps cdplayer ;
SubInclude HAIKU_TOP src apps clock ;
SubInclude HAIKU_TOP src apps codycam ;
SubInclude HAIKU_TOP src apps cortex ;
SubInclude HAIKU_TOP src apps deskbar ;
SubInclude HAIKU_TOP src apps diskprobe ;
SubInclude HAIKU_TOP src apps expander ;
+14
View File
@@ -0,0 +1,14 @@
SubDir HAIKU_TOP src apps cortex AddOnHost ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
Application CortexAddOnHost :
AddOnHostApp.cpp
: be media $(TARGET_LIBSTDC++) cortex_support.a
: AddOnHost_Resource.rsrc
;
-68
View File
@@ -1,68 +0,0 @@
NAME= CortexAddOnHost
TYPE= APP
#%{
# @src->@
SRCS= \
AddOnHostApp.cpp \
../support/debug_tools.cpp
RSRCS= AddOnHost_Resource.rsrc
# @<-src@
#%}
LIBS= be media
X86_LIBS= stdc++.r4
PPC_LIBS= mslcpp_4_0
# specify additional paths to directories following the standard
# libXXX.so or libXXX.a naming scheme. You can specify full paths
# or paths relative to the makefile. The paths included may not
# be recursive, so include all of the paths where libraries can
# be found. Directories where source files are found are
# automatically included.
LIBPATHS=
# additional paths to look for system headers
# thes use the form: #include <header>
# source file directories are NOT auto-included here
SYSTEM_INCLUDE_PATHS =
# additional paths to look for local headers
# thes use the form: #include "header"
# source file directories are automatically included
LOCAL_INCLUDE_PATHS = ..
# specify the level of optimization that you desire
# NONE, SOME, FULL
OPTIMIZE= FULL
DEFINES= #DEBUG=1 NDEBUG=0
DEBUGGER = #TRUE
# specify special warning levels
# if unspecified default warnings will be used
# NONE = supress all warnings
# ALL = enable all warnings
WARNINGS = ALL
# specify whether image symbols will be created
# so that stack crawls in the debugger are meaningful
# if TRUE symbols will be created
SYMBOLS =
# if TRUE, all symbols will be removed
STRIP_SYMBOLS = TRUE
# specify additional compiler flags for all files
COMPILER_FLAGS = -DCORTEX_NAMESPACE=cortex
# specify additional linker flags
LINKER_FLAGS =
## include local makefile-engine
include ../makefile-engine
+16
View File
@@ -0,0 +1,16 @@
SubDir HAIKU_TOP src apps cortex DiagramView ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_diagram_view.a :
DiagramBox.cpp
DiagramEndPoint.cpp
DiagramItem.cpp
DiagramItemGroup.cpp
DiagramView.cpp
DiagramWire.cpp
;
+18
View File
@@ -0,0 +1,18 @@
SubDir HAIKU_TOP src apps cortex DormantNodeView ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) InfoView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) Persistence ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) RouteApp ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) TipManager ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_dormant_node_view.a :
DormantNodeListItem.cpp
DormantNodeView.cpp
DormantNodeWindow.cpp
;
+21
View File
@@ -0,0 +1,21 @@
SubDir HAIKU_TOP src apps cortex InfoView ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) NodeManager ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_info_view.a :
AppNodeInfoView.cpp
ConnectionInfoView.cpp
DormantNodeInfoView.cpp
EndPointInfoView.cpp
FileNodeInfoView.cpp
InfoView.cpp
InfoWindow.cpp
InfoWindowManager.cpp
LiveNodeInfoView.cpp
;
+19
View File
@@ -0,0 +1,19 @@
SubDir HAIKU_TOP src apps cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
SubInclude HAIKU_TOP src apps cortex RouteApp ;
SubInclude HAIKU_TOP src apps cortex AddOnHost ;
SubInclude HAIKU_TOP src apps cortex DiagramView ;
SubInclude HAIKU_TOP src apps cortex DormantNodeView ;
SubInclude HAIKU_TOP src apps cortex InfoView ;
SubInclude HAIKU_TOP src apps cortex MediaRoutingView ;
SubInclude HAIKU_TOP src apps cortex NodeManager ;
SubInclude HAIKU_TOP src apps cortex ParameterView ;
SubInclude HAIKU_TOP src apps cortex Persistence ;
SubInclude HAIKU_TOP src apps cortex TipManager ;
SubInclude HAIKU_TOP src apps cortex TransportView ;
SubInclude HAIKU_TOP src apps cortex ValControl ;
SubInclude HAIKU_TOP src apps cortex expat ;
SubInclude HAIKU_TOP src apps cortex support ;
+24
View File
@@ -0,0 +1,24 @@
SubDir HAIKU_TOP src apps cortex MediaRoutingView ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) DiagramView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) DormantNodeView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) InfoView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) NodeManager ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ParameterView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) Persistence ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) RouteApp ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) TipManager ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) TransportView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_media_routing_view.a :
MediaJack.cpp
MediaNodePanel.cpp
MediaRoutingView.cpp
MediaWire.cpp
;
+18
View File
@@ -0,0 +1,18 @@
SubDir HAIKU_TOP src apps cortex NodeManager ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) Persistence ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_node_manager.a :
AddOnHost.cpp
Connection.cpp
NodeManager.cpp
NodeGroup.cpp
NodeRef.cpp
NodeSyncThread.cpp
;
+15
View File
@@ -0,0 +1,15 @@
SubDir HAIKU_TOP src apps cortex ParameterView ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) NodeManager ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_parameter_view.a :
ParameterWindowManager.cpp
ParameterWindow.cpp
ParameterContainerView.cpp
;
+19
View File
@@ -0,0 +1,19 @@
SubDir HAIKU_TOP src apps cortex Persistence ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) expat xmlparse ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_persistence.a :
ExportContext.cpp
ImportContext.cpp
Importer.cpp
StringContent.cpp
XML.cpp
;
SubInclude HAIKU_TOP src apps cortex Persistence Wrappers ;
@@ -0,0 +1,13 @@
SubDir HAIKU_TOP src apps cortex Persistence Wrappers ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_persistence_wrappers.a :
MediaFormatIO.cpp
MessageIO.cpp
;
+46
View File
@@ -0,0 +1,46 @@
SubDir HAIKU_TOP src apps cortex RouteApp ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) DiagramView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) DormantNodeView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) NodeManager ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) MediaRoutingView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) Persistence ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) Persistence Wrappers ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) TipManager ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) TransportView ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
Application Cortex :
ConnectionIO.cpp
DormantNodeIO.cpp
LiveNodeIO.cpp
NodeSetIOContext.cpp
RouteApp.cpp
RouteAppNodeManager.cpp
RouteWindow.cpp
route_app_io.cpp
StatusView.cpp
:
cortex_dormant_node_view.a
cortex_info_view.a
cortex_media_routing_view.a
cortex_node_manager.a
cortex_parameter_view.a
cortex_persistence.a
cortex_persistence_wrappers.a
cortex_tip_manager.a
cortex_transport_view.a
cortex_val_control.a
cortex_diagram_view.a
cortex_expat_xmlparse.a
cortex_expat_xmltok.a
cortex_support.a
be media tracker translation
$(TARGET_LIBSTDC++)
: ../Resource.rsrc
;
+15
View File
@@ -0,0 +1,15 @@
SubDir HAIKU_TOP src apps cortex TipManager ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_tip_manager.a :
TipManager.cpp
TipManagerImpl.cpp
TipWindow.cpp
TipView.cpp
;
+17
View File
@@ -0,0 +1,17 @@
SubDir HAIKU_TOP src apps cortex TransportView ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) NodeManager ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) Persistence ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) RouteApp ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ValControl ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_transport_view.a :
TransportView.cpp
TransportWindow.cpp
;
+16
View File
@@ -0,0 +1,16 @@
SubDir HAIKU_TOP src apps cortex ValControl ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) support ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_val_control.a :
ValControl.cpp
ValControlSegment.cpp
ValControlDigitSegment.cpp
ValCtrlLayoutEntry.cpp
NumericValControl.cpp
;
+4
View File
@@ -0,0 +1,4 @@
SubDir HAIKU_TOP src apps cortex expat ;
SubInclude HAIKU_TOP src apps cortex expat xmlparse ;
SubInclude HAIKU_TOP src apps cortex expat xmltok ;
+10
View File
@@ -0,0 +1,10 @@
SubDir HAIKU_TOP src apps cortex expat xmlparse ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) xmltok ] ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_expat_xmlparse.a :
hashtable.c
xmlparse.c
;
+10
View File
@@ -0,0 +1,10 @@
SubDir HAIKU_TOP src apps cortex expat xmltok ;
# SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_expat_xmltok.a :
xmltok.c
xmlrole.c
;
-117
View File
@@ -1,117 +0,0 @@
NAME= Cortex
TYPE= APP
#%{
# @src->@
SRCS= \
RouteApp/ConnectionIO.cpp \
RouteApp/DormantNodeIO.cpp \
RouteApp/LiveNodeIO.cpp \
RouteApp/NodeSetIOContext.cpp \
RouteApp/RouteApp.cpp \
RouteApp/RouteAppNodeManager.cpp \
RouteApp/RouteWindow.cpp \
RouteApp/route_app_io.cpp \
RouteApp/StatusView.cpp \
DiagramView/DiagramBox.cpp \
DiagramView/DiagramEndPoint.cpp \
DiagramView/DiagramItem.cpp \
DiagramView/DiagramItemGroup.cpp \
DiagramView/DiagramView.cpp \
DiagramView/DiagramWire.cpp \
DormantNodeView/DormantNodeListItem.cpp \
DormantNodeView/DormantNodeView.cpp \
DormantNodeView/DormantNodeWindow.cpp \
expat/xmlparse/xmlparse.c \
expat/xmlparse/hashtable.c \
expat/xmltok/xmltok.c \
expat/xmltok/xmlrole.c \
InfoView/AppNodeInfoView.cpp \
InfoView/ConnectionInfoView.cpp \
InfoView/DormantNodeInfoView.cpp \
InfoView/EndPointInfoView.cpp \
InfoView/FileNodeInfoView.cpp \
InfoView/InfoView.cpp \
InfoView/InfoWindow.cpp \
InfoView/InfoWindowManager.cpp \
InfoView/LiveNodeInfoView.cpp \
MediaRoutingView/MediaJack.cpp \
MediaRoutingView/MediaNodePanel.cpp \
MediaRoutingView/MediaRoutingView.cpp \
MediaRoutingView/MediaWire.cpp \
NodeManager/AddOnHost.cpp \
NodeManager/Connection.cpp \
NodeManager/NodeManager.cpp \
NodeManager/NodeGroup.cpp \
NodeManager/NodeRef.cpp \
NodeManager/NodeSyncThread.cpp \
ParameterView/ParameterWindowManager.cpp \
ParameterView/ParameterWindow.cpp \
ParameterView/ParameterContainerView.cpp \
Persistence/ExportContext.cpp \
Persistence/ImportContext.cpp \
Persistence/Importer.cpp \
Persistence/StringContent.cpp \
Persistence/XML.cpp \
Persistence/Wrappers/MediaFormatIO.cpp \
Persistence/Wrappers/MessageIO.cpp \
TipManager/TipManager.cpp \
TipManager/TipManagerImpl.cpp \
TipManager/TipWindow.cpp \
TipManager/TipView.cpp \
TransportView/TransportView.cpp \
TransportView/TransportWindow.cpp \
ValControl/ValControl.cpp \
ValControl/ValControlSegment.cpp \
ValControl/ValControlDigitSegment.cpp \
ValControl/ValCtrlLayoutEntry.cpp \
ValControl/NumericValControl.cpp \
support/debug_tools.cpp \
support/MediaIcon.cpp \
support/MediaString.cpp \
support/MouseTrackingHelpers.cpp \
support/MultiInvoker.cpp \
support/ObservableHandler.cpp \
support/ObservableLooper.cpp \
support/observe.cpp \
support/SoundUtils.cpp \
support/TextControlFloater.cpp
RSRCS= Resource.rsrc
# @<-src@
#%}
LIBS= be media tracker translation
X86_LIBS= stdc++.r4
PPC_LIBS= mslcpp_4_0
LOCAL_INCLUDE_PATHS = .
# specify the level of optimization that you desire
# NONE, SOME, FULL
OPTIMIZE= FULL
DEFINES= #DEBUG=1 NDEBUG=0
DEBUGGER = #TRUE
# NONE = supress all warnings
# ALL = enable all warnings
WARNINGS = ALL
# specify whether image symbols will be created
# so that stack crawls in the debugger are meaningful
# if TRUE symbols will be created
SYMBOLS =
# if TRUE, all symbols will be removed
STRIP_SYMBOLS = TRUE
COMPILER_FLAGS = -DCORTEX_NAMESPACE=cortex
LINKER_FLAGS =
## include modified makefile-engine
include makefile-engine
-357
View File
@@ -1,357 +0,0 @@
## BeOS Generic Makefile Engine v2.1.1
## Does all the hard work for the Generic Makefile
## which simply defines the project parameters
## Supports Generic Makefile v2.0, 2.01, 2.1
##
## MODIFICATIONS FOR CORTEX
## [em] 02apr00
##
## 1) Added 'strip' phase.
## 2) Added platform-specific library settings
# determine whether running on x86 or ppc
MACHINE=$(shell uname -m)
ifeq ($(MACHINE), BePC)
CPU = x86
else
CPU = ppc
endif
# set the directory where object files and binaries will be created
OBJ_DIR := obj.$(CPU)
# create some default settings
ifeq ($(NAME), )
NAME = NameThisApp
endif
ifeq ($(TYPE), )
TYPE = APP
endif
# specify that the binary should be created in the object directory
TARGET := "$(OBJ_DIR)/$(NAME)"
# specify the mimeset tool
MIMESET := mimeset
# specify the tools for adding and removing resources
XRES = xres
# platform specific settings
# x86 Settings
ifeq ($(CPU), x86)
# specify the binary-strip tool
STRIP = strip
# set the compiler and compiler flags
CC = gcc
# SETTING: set the CFLAGS for each binary type
ifeq ($(TYPE), DRIVER)
CFLAGS += -D_KERNEL_MODE=1 -no-fpic
else
CFLAGS +=
endif
# SETTING: set the proper optimization level
ifeq ($(OPTIMIZE), FULL)
OPTIMIZER = -O3
else
ifeq ($(OPTIMIZE), SOME)
OPTIMIZER = -O1
else
ifeq ($(OPTIMIZE), NONE)
OPTIMIZER = -O0
else
# OPTIMIZE not set so set to full
OPTIMIZER = -O3
endif
endif
endif
# SETTING: set proper debugger flags
ifeq ($(DEBUGGER), TRUE)
DEBUG += -g
OPTIMIZER = -O0
endif
CFLAGS += $(OPTIMIZER) $(DEBUG)
# SETTING: set warning level
ifeq ($(WARNINGS), ALL)
CFLAGS += -Wall -Wno-multichar -Wno-ctor-dtor-privacy
else
ifeq ($(WARNINGS), NONE)
CFLAGS += -w
endif
endif
# set the linker and linker flags
LD = gcc
LDFLAGS += $(DEBUG)
# SETTING: set linker flags for each binary type
ifeq ($(TYPE), APP)
LDFLAGS += -Xlinker -soname=_APP_
else
ifeq ($(TYPE), SHARED)
LDFLAGS += -nostart -Xlinker -soname=$(NAME)
else
ifeq ($(TYPE), DRIVER)
LDFLAGS += -nostdlib /boot/develop/lib/x86/_KERNEL_
endif
endif
endif
else
# ppc Settings
ifeq ($(CPU), ppc)
# set the compiler and compiler flags
CC = mwcc
CFLAGS +=
# SETTING: set the proper optimization level
ifeq ($(OPTIMIZE), FULL)
OPTIMIZER = -O7
else
ifeq ($(OPTIMIZE), SOME)
OPTIMIZER = -O3
else
ifeq ($(OPTIMIZE), NONE)
OPTIMIZER = -O0
else
# OPTIMIZE not set so set to full
OPTIMIZER = -O7
endif
endif
endif
#set the proper debugger settings
ifeq ($(DEBUGGER), TRUE)
DEBUG += -g
endif
CFLAGS += $(OPTIMIZER) $(DEBUG)
# SETTING: set warning level
ifeq ($(WARNINGS), ALL)
CFLAGS += -w on -requireprotos
else
ifeq ($(WARNINGS), NONE)
CFLAGS += -w off
endif
endif
# clear the standard environment variable
# now there are no standard libraries to link against
BELIBFILES=
# set the linker and linker flags
LD = mwldppc
# SETTING: set linker flags for each binary type
ifeq ($(TYPE), APP)
LDFLAGS +=
else
ifeq ($(TYPE), SHARED)
LDFLAGS += -xms
endif
endif
ifeq ($(TYPE), DRIVER)
LDFLAGS += -nodefaults \
-export all \
-G \
/boot/develop/lib/ppc/glue-noinit.a \
/boot/develop/lib/ppc/_KERNEL_
else
LDFLAGS += -export pragma \
-init _init_routine_ \
-term _term_routine_ \
-lroot \
/boot/develop/lib/ppc/glue-noinit.a \
/boot/develop/lib/ppc/init_term_dyn.o \
/boot/develop/lib/ppc/start_dyn.o
endif
# SETTING: output symbols in an xMAP file
ifeq ($(SYMBOLS), TRUE)
LDFLAGS += -map $(TARGET).xMAP
endif
# SETTING: output debugging info to a .SYM file
ifeq ($(DEBUGGER), TRUE)
LDFLAGS += -g -osym $(TARGET).SYM
endif
endif
endif
# psuedo-function for converting a list of source files in SRCS variable
# to a corresponding list of object files in $(OBJ_DIR)/xxx.o
# The "function" strips off the src file suffix (.ccp or .c or whatever)
# and then strips of the directory name, leaving just the root file name.
# It then appends the .o suffix and prepends the $(OBJ_DIR)/ path
define SRCS_LIST_TO_OBJS
$(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(foreach file, $(SRCS), \
$(basename $(notdir $(file))))))
endef
OBJS = $(SRCS_LIST_TO_OBJS)
# create a unique list of paths to our sourcefiles
SRC_PATHS += $(sort $(foreach file, $(SRCS), $(dir $(file))))
# add source paths to VPATH if not already present
VPATH :=
VPATH += $(addprefix :, $(subst ,:, $(filter-out $($(subst, :, ,$(VPATH))), $(SRC_PATHS))))
# SETTING: build the local and system include paths
ifeq ($(CPU), x86)
LOC_INCLUDES = $(foreach path, $(SRC_PATHS) $(LOCAL_INCLUDE_PATHS), $(addprefix -I, $(path)))
SYS_INCLUDES += -I-
SYS_INCLUDES += $(foreach path, $(SYSTEM_INCLUDE_PATHS), $(addprefix -I, $(path)))
else
ifeq ($(CPU), ppc)
LOC_INCLUDES = $(foreach path, $(SRC_PATHS) $(LOCAL_INCLUDE_PATHS), $(addprefix -I, $(path)))
SYS_INCLUDES += -i-
SYS_INCLUDES += $(foreach path, $(SYSTEM_INCLUDE_PATHS), $(addprefix -i , $(path)))
endif
endif
INCLUDES = $(LOC_INCLUDES) $(SYS_INCLUDES)
# SETTING: add the -L prefix to all library paths to search
LINK_PATHS = $(foreach path, $(SRC_PATHS) $(LIBPATHS), \
$(addprefix -L, $(path)))
# SETTING: specify the additional libraries to link against
# if the libraries have a .so or .a prefix, or if they are _APP_ or _KERNEL_
# simply add them to the list
LINK_LIBS += $(filter %.so %.a _APP_ _KERNEL_, $(LIBS))
# if the libraries do not have suffixes and are not _APP_ or _KERNEL_
# prepend -l to each name: be becomes -lbe
LINK_LIBS += $(foreach lib, $(filter-out %.so %.a _APP_ _KERNEL_, $(LIBS)), $(addprefix -l, $(lib)))
# SETTING: add platform-specific libraries
ifeq ($(CPU), x86)
LINK_LIBS += $(foreach lib, $(filter-out %.so %.a _APP_ _KERNEL_, $(X86_LIBS)), $(addprefix -l, $(lib)))
else
ifeq ($(CPU), ppc)
LINK_LIBS += $(foreach lib, $(filter-out %.so %.a _APP_ _KERNEL_, $(PPC_LIBS)), $(addprefix -l, $(lib)))
endif
endif
# add to the linker flags
LDFLAGS += $(LINK_PATHS) $(LINK_LIBS)
# SETTING: add the defines to the compiler flags
CFLAGS += $(foreach define, $(DEFINES), $(addprefix -D, $(define)))
# SETTING: add the additional compiler flags
CFLAGS += $(COMPILER_FLAGS)
# SETTING: add the additional linker flags
LDFLAGS += $(LINKER_FLAGS)
# SETTING: use the archive tools if building a static library
# otherwise use the linker
ifeq ($(TYPE), STATIC)
BUILD_LINE = ar -cru "$(TARGET)" $(OBJS)
else
BUILD_LINE = $(LD) -o $@ $(OBJS) $(LDFLAGS)
endif
# create the resource instruction
ifeq ($(RSRCS), )
DO_RSRCS :=
else
DO_RSRCS := $(XRES) -o "$(TARGET)" $(RSRCS)
endif
# [em 02apr00] create strip command
ifeq ($(STRIP),)
DO_STRIP :=
else
ifeq ($(STRIP_SYMBOLS), TRUE)
DO_STRIP := $(STRIP) $(TARGET)
else
DO_STRIP :=
endif
endif
# define the actual work to be done
default: $(TARGET)
$(TARGET): $(OBJ_DIR) $(OBJS) $(RSRCS)
$(BUILD_LINE)
$(DO_STRIP)
$(DO_RSRCS)
$(MIMESET) -f $@
# rule to create the object file directory if needed
$(OBJ_DIR)::
@[ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR) > /dev/null 2>&1
$(OBJ_DIR)/%.o : %.c
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
$(OBJ_DIR)/%.o : %.cpp
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
$(OBJ_DIR)/%.o : %.cp
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
$(OBJ_DIR)/%.o : %.cc
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
$(OBJ_DIR)/%.o : %.C
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
$(OBJ_DIR)/%.o : %.CC
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
$(OBJ_DIR)/%.o : %.CPP
$(CC) -c $< $(INCLUDES) $(CFLAGS) -o $@
# rules to handle lex/flex and yacc/bison files
$(OBJ_DIR)/%.o: %.l
flex $<
$(CC) -c $(INCLUDES) $(CFLAGS) lex.yy.c -o $@
$(OBJ_DIR)/%.o: %.y
bison -d -y $<
$(CC) -c $(INCLUDES) $(CFLAGS) y.tab.c -o $@
# empty rule. Things that depend on this rule will always get triggered
FORCE:
# The generic clean command. Delete everything in the object folder.
clean :: FORCE
-rm -rf $(OBJ_DIR)/*
# remove just the application from the object folder
rmapp ::
-rm -f "$(TARGET)"
# dependency generation
ifeq ($(CPU), ppc)
DEPFLAG = -make
SEDSCRIPT = sed -e'/\/boot\/develop\/headers\/.*\\/d' -e's%^.*/boot/develop/headers/.*% %g' -e's%^.*/\([^/]*\.o\)%$$(OBJ_DIR)/\1%' -e"s%`pwd`/%%g"
else
DEPFLAG = -MM
SEDSCRIPT = sed -e's%^\(.*\.o\)%$$(OBJ_DIR)/\1%'
endif
depend :: FORCE
$(CC) $(INCLUDES) $(CFLAGS) $(DEPFLAG) $(SRCS) | $(SEDSCRIPT) > .dependencies
cleandepend :: FORCE
-rm -f .dependencies
-include .dependencies
+20
View File
@@ -0,0 +1,20 @@
SubDir HAIKU_TOP src apps cortex support ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ;
SubDirCcFlags -DCORTEX_NAMESPACE=cortex ;
SetSubDirSupportedPlatformsBeOSCompatible ;
StaticLibrary cortex_support.a :
debug_tools.cpp
MediaIcon.cpp
MediaString.cpp
MouseTrackingHelpers.cpp
MultiInvoker.cpp
ObservableHandler.cpp
ObservableLooper.cpp
observe.cpp
SoundUtils.cpp
TextControlFloater.cpp
;