source: mainline/uspace/lib/libc/Makefile.toolchain@ 079f440

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 079f440 was 8786aa5, checked in by Martin Decky <martin@…>, 16 years ago

remove Stanse-specific constructs from makefiles
add generic support for checkers via generating an universal jobfiles (for kernel, boot loader, libraries and tasks)
add Stanse preprocessor which uses this universal jobfiles to run Stanse

  • Property mode set to 100644
File size: 4.1 KB
Line 
1#
2# Copyright (C) 2005 Martin Decky
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8#
9# - Redistributions of source code must retain the above copyright
10# notice, this list of conditions and the following disclaimer.
11# - Redistributions in binary form must reproduce the above copyright
12# notice, this list of conditions and the following disclaimer in the
13# documentation and/or other materials provided with the distribution.
14# - The name of the author may not be used to endorse or promote products
15# derived from this software without specific prior written permission.
16#
17# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27#
28
29GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
30 -fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
31 -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
32 -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
33 -Werror-implicit-function-declaration -pipe -g -D__$(ENDIANESS)__
34
35ICC_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
36 -fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
37 -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
38 -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
39 -Werror-implicit-function-declaration -pipe -g -D__$(ENDIANESS)__
40
41CLANG_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
42 -fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
43 -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
44 -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
45 -Werror-implicit-function-declaration -pipe -g -arch $(CLANG_ARCH) \
46 -D__$(ENDIANESS)__
47
48LFLAGS = -M -N $(SOFTINT_PREFIX)/libsoftint.a
49AFLAGS =
50
51## Cross-toolchain prefix
52#
53
54ifndef CROSS_PREFIX
55 CROSS_PREFIX = /usr/local
56endif
57
58## Setup platform configuration
59#
60
61include $(LIBC_PREFIX)/../../../Makefile.config
62include $(LIBC_PREFIX)/../../../config.defs
63include $(LIBC_PREFIX)/arch/$(UARCH)/Makefile.inc
64
65## Simple detection of the host system
66#
67HOST = $(shell uname)
68
69## On Solaris, some utilities have different names
70#
71ifeq ($(HOST),SunOS)
72 BINUTILS_PREFIX = "g"
73else
74 BINUTILS_PREFIX = ""
75endif
76
77## Toolchain configuration
78#
79
80JOBFILE = $(LIBC_PREFIX)/../../../tools/jobfile.py
81
82ifeq ($(COMPILER),gcc_cross)
83 CC = $(TOOLCHAIN_DIR)/$(TARGET)-gcc
84 GCC = $(CC)
85 AS = $(TOOLCHAIN_DIR)/$(TARGET)-as
86 LD = $(TOOLCHAIN_DIR)/$(TARGET)-ld
87 AR = $(TOOLCHAIN_DIR)/$(TARGET)-ar
88 OBJCOPY = $(TOOLCHAIN_DIR)/$(TARGET)-objcopy
89 OBJDUMP = $(TOOLCHAIN_DIR)/$(TARGET)-objdump
90 CFLAGS = $(GCC_CFLAGS)
91 DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
92endif
93
94ifeq ($(COMPILER),gcc_native)
95 CC = gcc
96 GCC = $(CC)
97 AS = $(BINUTILS_PREFIX)as
98 LD = $(BINUTILS_PREFIX)ld
99 AR = $(BINUTILS_PREFIX)ar
100 OBJCOPY = $(BINUTILS_PREFIX)objcopy
101 OBJDUMP = $(BINUTILS_PREFIX)objdump
102 CFLAGS = $(GCC_CFLAGS)
103 DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
104endif
105
106ifeq ($(COMPILER),icc)
107 CC = icc
108 GCC = gcc
109 AS = as
110 LD = ld
111 AR = ar
112 OBJCOPY = objcopy
113 OBJDUMP = objdump
114 CFLAGS = $(ICC_CFLAGS)
115 DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
116endif
117
118ifeq ($(COMPILER),clang)
119 CC = clang
120 GCC = gcc
121 AS = $(BINUTILS_PREFIX)as
122 LD = $(BINUTILS_PREFIX)ld
123 AR = $(BINUTILS_PREFIX)ar
124 OBJCOPY = $(BINUTILS_PREFIX)objcopy
125 OBJDUMP = $(BINUTILS_PREFIX)objdump
126 CFLAGS = $(CLANG_CFLAGS)
127 DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
128endif
Note: See TracBrowser for help on using the repository browser.