2 # Copyright (c) 2005 Martin Decky
3 # Copyright (c) 2007 Jakub Jermar
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
10 # - Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 # - Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in the
14 # documentation and/or other materials provided with the distribution.
15 # - The name of the author may not be used to endorse or promote products
16 # derived from this software without specific prior written permission.
18 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 ROOT_PATH
= $(USPACE_PREFIX
)/..
33 COMMON_MAKEFILE
= $(ROOT_PATH
)/Makefile.common
34 COMMON_HEADER
= $(ROOT_PATH
)/common.h
35 COMMON_HEADER_ARCH
= arch
/$(UARCH
)/include/libarch
/common.h
37 CONFIG_MAKEFILE
= $(ROOT_PATH
)/Makefile.config
40 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld \
41 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-loader.
ld \
42 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-shlib.
ld \
43 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-dlexe.
ld
45 PRE_DEPEND
= $(COMMON_HEADER_ARCH
)
46 EXTRA_OUTPUT
= $(LINKER_SCRIPTS
)
47 EXTRA_CLEAN
= $(COMMON_HEADER_ARCH
) $(LINKER_SCRIPTS
)
49 SLIBRARY
= libc.so
.0.0
53 -include $(COMMON_MAKEFILE
)
54 -include $(CONFIG_MAKEFILE
)
55 -include arch
/$(UARCH
)/Makefile.inc
68 generic
/device
/hw_res.c \
69 generic
/device
/hw_res_parsed.c \
70 generic
/device
/char_dev.c \
71 generic
/device
/clock_dev.c \
72 generic
/device
/battery_dev.c \
73 generic
/device
/graph_dev.c \
74 generic
/device
/nic.c \
75 generic
/device
/pci.c \
76 generic
/device
/ahci.c \
79 generic
/elf
/elf_load.c \
86 generic
/l18n
/langs.c \
88 generic
/fibril_synch.c \
99 generic
/io
/asprintf.c \
102 generic
/io
/chargrid.c \
103 generic
/io
/output.c \
104 generic
/io
/printf.c \
106 generic
/io
/logctl.c \
108 generic
/io
/snprintf.c \
109 generic
/io
/vprintf.c \
110 generic
/io
/vsnprintf.c \
111 generic
/io
/printf_core.c \
112 generic
/io
/con_srv.c \
113 generic
/io
/console.c \
114 generic
/io
/visualizer.c \
115 generic
/io
/window.c \
117 generic
/iplink_srv.c \
118 generic
/ieee_double.c \
119 generic
/power_of_ten.c \
120 generic
/double_to_str.c \
129 generic
/adt
/hash_table.c \
130 generic
/adt
/dynamic_fifo.c \
131 generic
/adt
/char_map.c \
132 generic
/adt
/prodcons.c \
138 generic
/vfs
/canonify.c \
140 generic
/net
/socket_client.c \
141 generic
/net
/socket_parse.c \
143 generic
/stacktrace.c \
144 generic
/arg_parse.c \
150 ifeq ($(CONFIG_RTLD
),y
)
152 generic
/rtld
/rtld.c \
153 generic
/rtld
/dynamic.c \
154 generic
/rtld
/module.c \
155 generic
/rtld
/symbol.c
162 include $(USPACE_PREFIX
)/Makefile.common
165 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld: $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld.in
166 $(CC
) $(DEFS
) $(CFLAGS
) -DLIBC_PATH
=$(CURDIR
) -E
-x c
$< | grep
-v
"^\#" > $@
168 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-loader.
ld: $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld.in
169 $(CC
) $(DEFS
) $(CFLAGS
) -DLIBC_PATH
=$(CURDIR
) -DLOADER
-E
-x c
$< | grep
-v
"^\#" > $@
171 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-shlib.
ld: $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld.in
172 $(CC
) $(DEFS
) $(CFLAGS
) -DLIBC_PATH
=$(CURDIR
) -DSHLIB
-E
-x c
$< | grep
-v
"^\#" > $@
174 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-dlexe.
ld: $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld.in
175 $(CC
) $(DEFS
) $(CFLAGS
) -DLIBC_PATH
=$(CURDIR
) -DDLEXE
-E
-x c
$< | grep
-v
"^\#" > $@
177 $(COMMON_HEADER_ARCH
): $(COMMON_HEADER
)
178 ln
-sfn ..
/..
/..
/..
/$< $@