summaryrefslogtreecommitdiffstats
path: root/libc/Jamfile
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:13 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:13 -0800
commit1767f908af327fa388b1c66883760ad851267013 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /libc/Jamfile
parenta799b53f10e5a6fd51fef4436cfb7ec99836a516 (diff)
downloadbionic-1767f908af327fa388b1c66883760ad851267013.zip
bionic-1767f908af327fa388b1c66883760ad851267013.tar.gz
bionic-1767f908af327fa388b1c66883760ad851267013.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'libc/Jamfile')
-rw-r--r--libc/Jamfile441
1 files changed, 0 insertions, 441 deletions
diff --git a/libc/Jamfile b/libc/Jamfile
deleted file mode 100644
index a65be5d..0000000
--- a/libc/Jamfile
+++ /dev/null
@@ -1,441 +0,0 @@
-# This file is used to build the Bionic library with the Jam build
-# tool. For info, see www.perforce.com/jam/jam.html
-#
-
-BIONIC_TOP ?= $(DOT) ;
-
-DEBUG = 1 ;
-
-# pattern used for automatic heade inclusion detection
-HDRPATTERN = "^[ ]*#[ ]*include[ ]*[<\"]([^\">]*)[\">].*$" ;
-
-
-# debugging support, simply define the DEBUG variable to activate verbose output
-rule Debug
-{
- if $(DEBUG) {
- Echo $(1) ;
- }
-}
-
-# return all elements from $(1) that are not in $(2)
-rule Filter list : filter
-{
- local result = ;
- local item ;
- for item in $(list) {
- if ! $(item) in $(filter) {
- result += $(item) ;
- }
- }
- return $(result) ;
-}
-
-
-# reverse a list of elements
-rule Reverse list
-{
- local result = ;
- local item ;
-
- for item in $(list) {
- result = $(item) $(result) ;
- }
- return $(result) ;
-}
-
-
-# decompose a path into a list of elements
-rule PathDecompose dir
-{
- local result ;
-
- while $(dir:D)
- {
- if ! $(dir:BS) { # for rooted paths like "/foo"
- break ;
- }
- result = $(dir:BS) $(result) ;
- dir = $(dir:D) ;
- }
- result = $(dir) $(result) ;
- return $(result) ;
-}
-
-
-# simply a file path, i.e. get rid of . or .. when possible
-rule _PathSimplify dir
-{
- local result = ;
- local dir2 d ;
-
- dir = [ PathDecompose $(dir) ] ;
-
- # get rid of any single dot
- dir2 = ;
- for d in $(dir) {
- if $(d) = "." {
- continue ;
- }
- dir2 += $(d) ;
- }
-
- # get rid of .. when possible
- for d in $(dir2) {
- if $(d) = ".." && $(result) {
- result = $(result[2-]) ;
- }
- else
- result = $(d) $(result) ;
- }
-
- # now invert the result
- result = [ Reverse $(result) ] ;
- if ! $(result) {
- result = "." ;
- }
- return $(result:J="/") ;
-}
-
-
-rule PathSimplify dirs
-{
- local result ;
- local d ;
- for d in $(dirs) {
- result += [ _PathSimplify $(d) ] ;
- }
- return $(result) ;
-}
-
-
-# retrieve list of subdirectories
-rule ListSubDirs paths
-{
- local result = ;
- local entry ;
- for entry in [ Glob $(paths) : * ] {
- if ! $(entry:S) {
- result += $(entry) ;
- }
- }
- return [ PathSimplify $(result) ] ;
-}
-
-
-# retrieve list of sources in a given directory
-rule ListSources path
-{
- return [ Glob $(path) : *.S *.c ] ;
-}
-
-
-# find the prebuilt directory
-#
-if ! $(TOP) {
- Echo "Please define TOP as the root of your device build tree" ;
- Exit ;
-}
-
-Debug "OS is" $(OS) ;
-Debug "CPU is" $(CPU) ;
-
-if $(OS) = LINUX
-{
- PREBUILT = $(TOP)/prebuilt/Linux ;
-}
-else if $(OS) = MACOSX
-{
- switch $(CPU) {
- case i386 : PREBUILT = $(TOP)/prebuilt/darwin-x86 ; break ;
- case ppc : PREBUILT = $(TOP)/prebuilt/darwin-ppc ; break ;
- case * : Echo "unsupported CPU" "$(CPU) !!" ;
- Echo "Please contact digit@google.com for help" ;
- Exit ;
- }
-}
-else
-{
- Echo "Unsupported operating system" $(OS) ;
- Echo "Please contact digit@google.com for help" ;
- Exit ;
-}
-
-Debug "TOP is" $(TOP) ;
-Debug "PREBUILT is" $(PREBUILT) ;
-
-
-# check architectures and setup toolchain variables
-#
-SUPPORTED_ARCHS = x86 arm ;
-
-ARCH ?= $(SUPPORTED_ARCHS) ;
-
-if ! $(ARCH) in $(SUPPORTED_ARCHS) {
- Echo "The variable ARCH contains an unsupported value, use one or more of these instead" ;
- Echo "separated by spaces:" $(SUPPORTED_ARCHS) ;
- Exit ;
-}
-
-x86_TOOLSET_PREFIX ?= "" ;
-arm_TOOLSET_PREFIX ?= $(TOP)/prebuilt/Linux/toolchain-4.1.1/bin/arm-elf- ;
-
-for arch in $(ARCH) {
- CC_$(arch) = $($(arch)_TOOLSET_PREFIX)gcc ;
- C++_$(arch) = $($(arch)_TOOLSET_PREFIX)g++ ;
- AR_$(arch) = $($(arch)_TOOLSET_PREFIX)ar ;
-}
-
-
-# the list of arch-independent source subdirectories
-BIONIC_SRC_SUBDIRS = string ;
-BIONIC_x86_SUBDIRS = ;
-BIONIC_arm_SUBDIRS = ;
-
-CFLAGS = -O0 -g -W ;
-
-
-
-# find sources in a given list of subdirectories
-rule FindSources dirs
-{
- local dir ;
-
- for dir in $(dirs)
- {
- local LOCAL_SRC NO_LOCAL_SRC ;
-
- if [ Glob $(dir) : rules.jam ] {
- include $(dir)/rules.jam ;
- if $(LOCAL_SRC) {
- _sources = $(LOCAL_SRC) ;
- }
- else {
- _sources = [ Glob $(dir) : *.S *.c ] ;
- _sources = $(_sources:BS) ;
- }
- if $(NO_LOCAL_SRC) {
- _sources = [ Filter $(_sources) : $(NO_LOCAL_SRC) ] ;
- }
- sources += $(dir)/$(_sources) ;
- }
- else
- sources += [ ListSources $(dir) ] ;
- }
-}
-
-# Compile a given object file from a source
-rule Compile object : source
-{
- Depends $(object) : $(source) ;
- Depends bionic : $(object) ;
- Clean clean : $(object) ;
-
- MakeLocate $(object) : $(OUT) ;
-
-
- CC on $(object) = $(CC_$(arch)) ;
- CFLAGS on $(object) = $(CFLAGS) ;
- INCLUDES on $(object) = $(INCLUDES) ;
- DEFINES on $(object) = $(DEFINES) ;
-
- HDRRULE on $(>) = HdrRule ;
- HDRSCAN on $(>) = $(HDRPATTERN) ;
- HDRSEARCH on $(>) = $(INCLUDES) ;
- HDRGRIST on $(>) = $(HDRGRIST) ;
-}
-
-
-actions Compile
-{
- $(CC) -c -o $(1) $(CFLAGS) -I$(INCLUDES) -D$(DEFINES) $(2)
-}
-
-
-rule RmTemps
-{
- Temporary $(2) ;
-}
-
-actions quietly updated piecemeal together RmTemps
-{
- rm -f $(2)
-}
-
-actions Archive
-{
- $(AR) ru $(1) $(2)
-}
-
-rule Library library : objects
-{
- local obj ;
-
- if ! $(library:S) {
- library = $(library:S=.a) ;
- }
- library = $(library:G=<$(arch)>) ;
-
- Depends all : $(library) ;
-
- if ! $(library:D) {
- MakeLocate $(library) $(library)($(objects:BS)) : $(OUT) ;
- }
-
- Depends $(library) : $(library)($(objects:BS)) ;
- for obj in $(objects) {
- Depends $(library)($(obj:BS)) : $(obj) ;
- }
-
- Clean clean : $(library) ;
-
- AR on $(library) = $(AR_$(arch)) ;
- Archive $(library) : $(objects) ;
-
- RmTemps $(library) : $(objects) ;
-}
-
-
-rule ProcessDir
-{
- local CFLAGS = $(CFLAGS) ;
- local DEFINES = $(DEFINES) ;
- local INCLUDES = $(INCLUDES) ;
- local local_rules = [ Glob $(1) : rules.jam ] ;
- local source sources ;
-
- if $(local_rules) {
- local LOCAL_CFLAGS LOCAL_DEFINES LOCAL_INCLUDES LOCAL_SRC NO_LOCAL_SRC ;
-
- include $(local_rules) ;
- CFLAGS += $(LOCAL_CFLAGS) ;
- DEFINES += $(LOCAL_DEFINES) ;
- INCLUDES += $(LOCAL_INCLUDES) ;
-
- if $(LOCAL_SRC) {
- sources = $(LOCAL_SRC) ;
- }
- else {
- sources = [ Glob $(1) : *.S *.c ] ;
- sources = $(sources:BS) ;
- }
-
- if $(NO_LOCAL_SRC) {
- sources = [ Filter $(sources) : $(NO_LOCAL_SRC) ] ;
- }
-
- sources = $(1)/$(sources) ;
- }
- else
- sources = [ Glob $(1) : *.S *.c ] ;
-
- for source in $(sources) {
- local name = $(source:B) ;
-
- if $(source:S) = ".S" {
- # record the list of assembler sources
- ASSEMBLER_SOURCES += $(name) ;
- }
- else if $(source:S) = ".c" && $(name) in $(ASSEMBLER_SOURCES) {
- # skip C source file if corresponding assembler exists
- continue ;
- }
-
- objname = <$(arch)>$(name).o ;
-
- Compile $(objname) : $(source) ;
- ALL_OBJECTS += $(objname) ;
- }
-}
-
-rule ProcessDirs
-{
- local dir ;
- for dir in $(1) {
- ProcessDir $(dir) ;
- }
-}
-
-INCLUDES_x86 = /usr/src/linux/include ;
-
-INCLUDES_arm = ../kernel_headers
- include/arch/arm
- include/bits32
- ;
-
-INCLUDES = include stdio string stdlib .
- ../msun/include
- ;
-
-DEFINES = ANDROID_CHANGES
- USE_LOCKS
- REALLOC_ZERO_BYTES_FREES
- _LIBC=1
- SOFTFLOAT
- FLOATING_POINT
- NEED_PSELECT=1
- ANDROID
- ;
-
-CFLAGS_x86 = ;
-
-
-for arch in $(ARCH)
-{
- local ARCH_DIR = $(BIONIC_TOP)/arch-$(arch) ;
- local INCLUDES = $(INCLUDES_$(arch)) $(ARCH_DIR)/include $(INCLUDES) ;
- local DEFINES = $(DEFINES_$(arch)) $(DEFINES) ARCH=$(arch) ;
- local CFLAGS = $(CFLAGS) $(CFLAGS_$(arch)) ;
- local OUT = out/$(arch) ;
- local ASSEMBLER_SOURCES ALL_OBJECTS ;
-
- ProcessDirs [ ListSubDirs $(ARCH_DIR) ] ;
- ProcessDirs stdlib stdio unistd string tzcode inet ;
- ProcessDirs [ ListSubDirs netbsd ] ;
- ProcessDirs bionic ;
-
- Library bionic : $(ALL_OBJECTS) ;
-}
-
-BIONIC_SEARCH = $(BIONIC_TOP)/include ;
-
-
-
-# /HdrRule source : headers ;
-#
-# Arranges the proper dependencies when the file _source_ includes the files
-# _headers_ through the #include C preprocessor directive
-#
-# this rule is not intendend to be called explicitely. It is called
-# automatically during header scanning on sources handled by the @Object
-# rule (e.g. sources in @Main or @Library rules)
-#
-rule HdrRule
-{
- # HdrRule source : headers ;
-
- # N.B. This rule is called during binding, potentially after
- # the fate of many targets has been determined, and must be
- # used with caution: don't add dependencies to unrelated
- # targets, and don't set variables on $(<).
-
- # Tell Jam that anything depending on $(<) also depends on $(>),
- # set SEARCH so Jam can find the headers, but then say we don't
- # care if we can't actually find the headers (they may have been
- # within ifdefs),
-
- local s = $(>:G=$(HDRGRIST:E)) ;
-
- Includes $(<) : $(s) ;
- SEARCH on $(s) = $(HDRSEARCH) ;
- NoCare $(s) ;
-
- # Propagate on $(<) to $(>)
-
- HDRSEARCH on $(s) = $(HDRSEARCH) ;
- HDRSCAN on $(s) = $(HDRSCAN) ;
- HDRRULE on $(s) = $(HDRRULE) ;
- HDRGRIST on $(s) = $(HDRGRIST) ;
-}
-
-