source: mainline/uspace/lib/c/Makefile@ dfeb4e2

Last change on this file since dfeb4e2 was dfeb4e2, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 8 years ago

Integrate ports into the main tree as a submodule.

A stripped down version of hsct.sh is added to tools, and Makefiles
gain new targets that implement part of hsct's prior functionality.

This arrangement improves usability and maintainability of ports,
reduces the likelihood of ports being broken by mainline changes,
and partially solves the issue with build logic being duplicated
in multiple places.

It is newly possible to build individual ports using make ports-NAME,
and all ports using make ports-all. This also installs the outputs to
uspace/dist, so ideally, simple make ports-all && make would create
an image with all ports included. This currently doesn't work only
because some ports fail to build.

  • Property mode set to 100644
File size: 5.9 KB
Line 
1#
2# Copyright (c) 2005 Martin Decky
3# Copyright (c) 2007 Jakub Jermar
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9#
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.
17#
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.
28#
29
30USPACE_PREFIX = ../..
31ROOT_PATH = $(USPACE_PREFIX)/..
32
33CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config
34
35LINKER_SCRIPTS = \
36 $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld \
37 $(LIBC_PREFIX)/arch/$(UARCH)/_link-loader.ld \
38 $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld \
39 $(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld
40
41PRE_DEPEND =
42EXTRA_OUTPUT = $(LINKER_SCRIPTS)
43EXTRA_CLEAN = $(LINKER_SCRIPTS)
44LIBRARY = libc
45SOVERSION = 0.0
46
47EXTRA_CFLAGS = -fno-builtin
48
49-include $(CONFIG_MAKEFILE)
50-include arch/$(UARCH)/Makefile.inc
51
52ARCH_AUTOGENS_H := $(addsuffix .h,$(basename $(ARCH_AUTOGENS_AG)))
53ARCH_AUTOGENS_PROBE_C := $(addsuffix .ag.probe.c,$(basename $(ARCH_AUTOGENS_AG)))
54ARCH_AUTOGENS_PROBE_S := $(addsuffix .ag.probe.s,$(basename $(ARCH_AUTOGENS_AG)))
55
56PRE_DEPEND += $(ARCH_AUTOGENS_H)
57EXTRA_CLEAN += $(ARCH_AUTOGENS_H) $(ARCH_AUTOGENS_PROBE_C) $(ARCH_AUTOGENS_PROBE_S)
58
59GENERIC_SOURCES = \
60 generic/libc.c \
61 generic/ddi.c \
62 generic/as.c \
63 generic/bd.c \
64 generic/bd_srv.c \
65 generic/perm.c \
66 generic/cap.c \
67 generic/clipboard.c \
68 generic/config.c \
69 generic/corecfg.c \
70 generic/devman.c \
71 generic/device/hw_res.c \
72 generic/device/hw_res_parsed.c \
73 generic/device/pio_window.c \
74 generic/device/clock_dev.c \
75 generic/device/led_dev.c \
76 generic/dirent.c \
77 generic/dhcp.c \
78 generic/dnsr.c \
79 generic/dlfcn.c \
80 generic/elf/elf_load.c \
81 generic/elf/elf_mod.c \
82 generic/event.c \
83 generic/errno.c \
84 generic/gsort.c \
85 generic/loc.c \
86 generic/mem.c \
87 generic/str.c \
88 generic/str_error.c \
89 generic/l18n/langs.c \
90 generic/fibril.c \
91 generic/fibril_synch.c \
92 generic/pcb.c \
93 generic/smc.c \
94 generic/smp_memory_barrier.c \
95 generic/thread.c \
96 generic/tls.c \
97 generic/task.c \
98 generic/futex.c \
99 generic/imath.c \
100 generic/inet/addr.c \
101 generic/inet/endpoint.c \
102 generic/inet/host.c \
103 generic/inet/hostname.c \
104 generic/inet/hostport.c \
105 generic/inet/tcp.c \
106 generic/inet/udp.c \
107 generic/inet.c \
108 generic/inetcfg.c \
109 generic/inetping.c \
110 generic/io/asprintf.c \
111 generic/io/input.c \
112 generic/io/io.c \
113 generic/io/chardev.c \
114 generic/io/chardev_srv.c \
115 generic/io/chargrid.c \
116 generic/io/output.c \
117 generic/io/printf.c \
118 generic/io/log.c \
119 generic/io/logctl.c \
120 generic/io/kio.c \
121 generic/io/klog.c \
122 generic/io/serial.c \
123 generic/io/snprintf.c \
124 generic/io/vprintf.c \
125 generic/io/vsnprintf.c \
126 generic/io/printf_core.c \
127 generic/io/con_srv.c \
128 generic/io/console.c \
129 generic/io/table.c \
130 generic/io/visualizer.c \
131 generic/io/window.c \
132 generic/iplink.c \
133 generic/iplink_srv.c \
134 generic/irc.c \
135 generic/irq.c \
136 generic/ieee_double.c \
137 generic/power_of_ten.c \
138 generic/double_to_str.c \
139 generic/malloc.c \
140 generic/sysinfo.c \
141 generic/ipc.c \
142 generic/ns.c \
143 generic/async.c \
144 generic/loader.c \
145 generic/getopt.c \
146 generic/adt/checksum.c \
147 generic/adt/circ_buf.c \
148 generic/adt/list.c \
149 generic/adt/hash_table.c \
150 generic/adt/odict.c \
151 generic/adt/prodcons.c \
152 generic/time.c \
153 generic/stdio.c \
154 generic/stdlib.c \
155 generic/udebug.c \
156 generic/vfs/canonify.c \
157 generic/vfs/inbox.c \
158 generic/vfs/mtab.c \
159 generic/vfs/vfs.c \
160 generic/rcu.c \
161 generic/setjmp.c \
162 generic/stack.c \
163 generic/stacktrace.c \
164 generic/arg_parse.c \
165 generic/stats.c \
166 generic/assert.c \
167 generic/pio_trace.c \
168 generic/qsort.c \
169 generic/uuid.c \
170 generic/vbd.c \
171 generic/vol.c
172
173ifeq ($(CONFIG_RTLD),y)
174 GENERIC_SOURCES += \
175 generic/rtld/rtld.c \
176 generic/rtld/dynamic.c \
177 generic/rtld/module.c \
178 generic/rtld/symbol.c
179endif
180
181SOURCES = \
182 $(GENERIC_SOURCES) \
183 $(ARCH_SOURCES)
184
185TEST_SOURCES = \
186 test/adt/circ_buf.c \
187 test/fibril/timer.c \
188 test/main.c \
189 test/io/table.c \
190 test/odict.c \
191 test/qsort.c \
192 test/sprintf.c \
193 test/str.c
194
195include $(USPACE_PREFIX)/Makefile.common
196
197%.h: %.ag
198 $(AUTOGEN) probe $< >$<.probe.c
199 $(CC_AUTOGEN) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
200 $(AUTOGEN) generate $< <$<.probe.s >$@
201
202$(LIBC_PREFIX)/arch/$(UARCH)/_link.ld: $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld.in
203 $(CC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -E -x c $< | grep -v "^\#" > $@
204
205$(LIBC_PREFIX)/arch/$(UARCH)/_link-loader.ld: $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld.in
206 $(CC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -DLOADER -E -x c $< | grep -v "^\#" > $@
207
208$(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld: $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld.in
209 $(CC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -DSHLIB -E -x c $< | grep -v "^\#" > $@
210
211$(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld: $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld.in
212 $(CC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -DDLEXE -E -x c $< | grep -v "^\#" > $@
Note: See TracBrowser for help on using the repository browser.