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 CONFIG_MAKEFILE
= $(ROOT_PATH
)/Makefile.config
34 COMMON_HEADER_ARCH
= arch
/$(UARCH
)/include/libarch
/common.h
37 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld \
38 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-loader.
ld \
39 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-shlib.
ld \
40 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-dlexe.
ld
42 PRE_DEPEND
= $(COMMON_HEADER_ARCH
)
43 EXTRA_OUTPUT
= $(LINKER_SCRIPTS
)
44 EXTRA_CLEAN
= $(COMMON_HEADER_ARCH
) $(LINKER_SCRIPTS
)
46 SLIBRARY
= libc.so
.0.0
49 -include $(CONFIG_MAKEFILE
)
50 -include arch
/$(UARCH
)/Makefile.inc
52 ARCH_AUTOGENS_H
:= $(addsuffix .h
,$(basename $(ARCH_AUTOGENS_AG
)))
53 ARCH_AUTOGENS_PROBE_C
:= $(addsuffix .ag.probe.c
,$(basename $(ARCH_AUTOGENS_AG
)))
54 ARCH_AUTOGENS_PROBE_S
:= $(addsuffix .ag.probe.s
,$(basename $(ARCH_AUTOGENS_AG
)))
56 PRE_DEPEND
+= $(ARCH_AUTOGENS_H
)
57 EXTRA_CLEAN
+= $(ARCH_AUTOGENS_H
) $(ARCH_AUTOGENS_PROBE_C
) $(ARCH_AUTOGENS_PROBE_S
)
70 generic
/device
/hw_res.c \
71 generic
/device
/hw_res_parsed.c \
72 generic
/device
/pio_window.c \
73 generic
/device
/clock_dev.c \
74 generic
/device
/led_dev.c \
79 generic
/elf
/elf_load.c \
80 generic
/elf
/elf_mod.c \
87 generic
/l18n
/langs.c \
89 generic
/fibril_synch.c \
92 generic
/smp_memory_barrier.c \
99 generic
/inet
/endpoint.c \
100 generic
/inet
/host.c \
101 generic
/inet
/hostname.c \
102 generic
/inet
/hostport.c \
108 generic
/io
/asprintf.c \
111 generic
/io
/chardev.c \
112 generic
/io
/chardev_srv.c \
113 generic
/io
/chargrid.c \
114 generic
/io
/output.c \
115 generic
/io
/printf.c \
117 generic
/io
/logctl.c \
120 generic
/io
/snprintf.c \
121 generic
/io
/vprintf.c \
122 generic
/io
/vsnprintf.c \
123 generic
/io
/printf_core.c \
124 generic
/io
/con_srv.c \
125 generic
/io
/console.c \
126 generic
/io
/visualizer.c \
127 generic
/io
/window.c \
129 generic
/iplink_srv.c \
132 generic
/ieee_double.c \
133 generic
/power_of_ten.c \
134 generic
/double_to_str.c \
142 generic
/adt
/checksum.c \
144 generic
/adt
/hash_table.c \
145 generic
/adt
/odict.c \
146 generic
/adt
/prodcons.c \
151 generic
/vfs
/canonify.c \
152 generic
/vfs
/inbox.c \
158 generic
/stacktrace.c \
159 generic
/arg_parse.c \
163 generic
/pio_trace.c \
168 ifeq ($(CONFIG_RTLD
),y
)
170 generic
/rtld
/rtld.c \
171 generic
/rtld
/dynamic.c \
172 generic
/rtld
/module.c \
173 generic
/rtld
/symbol.c
186 include $(USPACE_PREFIX
)/Makefile.common
189 $(AUTOGEN
) probe
$< >$<.probe.c
190 $(CC
) $(DEFS
) $(CFLAGS
) -S
-o
$<.probe.s
$<.probe.c
191 $(AUTOGEN
) generate
$< <$<.probe.s
>$@
193 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld: $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld.in
194 $(CC
) $(DEFS
) $(CFLAGS
) -DLIBC_PATH
=$(CURDIR
) -E
-x c
$< | grep
-v
"^\#" > $@
196 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-loader.
ld: $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld.in
197 $(CC
) $(DEFS
) $(CFLAGS
) -DLIBC_PATH
=$(CURDIR
) -DLOADER
-E
-x c
$< | grep
-v
"^\#" > $@
199 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-shlib.
ld: $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld.in
200 $(CC
) $(DEFS
) $(CFLAGS
) -DLIBC_PATH
=$(CURDIR
) -DSHLIB
-E
-x c
$< | grep
-v
"^\#" > $@
202 $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link-dlexe.
ld: $(LIBC_PREFIX
)/arch
/$(UARCH
)/_link.
ld.in
203 $(CC
) $(DEFS
) $(CFLAGS
) -DLIBC_PATH
=$(CURDIR
) -DDLEXE
-E
-x c
$< | grep
-v
"^\#" > $@
205 $(COMMON_HEADER_ARCH
): $(COMMON_HEADER
)
206 ln
-sfn ..
/..
/..
/..
/$< $@