~martin-decky/helenos/rcu

« back to all changes in this revision

Viewing changes to uspace/lib/libc/Makefile

  • Committer: Martin Decky
  • Date: 2009-08-04 11:19:19 UTC
  • Revision ID: martin@uranus.dsrg.hide.ms.mff.cuni.cz-20090804111919-evyclddlr3v5lhmp
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
29
## Common compiler flags
 
30
#
 
31
 
 
32
LIBC_PREFIX = $(shell pwd)
 
33
SOFTINT_PREFIX = ../softint
 
34
 
 
35
 
 
36
## Setup toolchain
 
37
#
 
38
 
 
39
include $(LIBC_PREFIX)/Makefile.toolchain
 
40
 
 
41
 
 
42
## Sources
 
43
#
 
44
 
 
45
GENERIC_SOURCES = \
 
46
        generic/libc.c \
 
47
        generic/ddi.c \
 
48
        generic/as.c \
 
49
        generic/cap.c \
 
50
        generic/devmap.c \
 
51
        generic/event.c \
 
52
        generic/errno.c \
 
53
        generic/mem.c \
 
54
        generic/string.c \
 
55
        generic/fibril.c \
 
56
        generic/fibril_sync.c \
 
57
        generic/pcb.c \
 
58
        generic/smc.c \
 
59
        generic/thread.c \
 
60
        generic/tls.c \
 
61
        generic/task.c \
 
62
        generic/futex.c \
 
63
        generic/io/asprintf.c \
 
64
        generic/io/io.c \
 
65
        generic/io/printf.c \
 
66
        generic/io/klog.c \
 
67
        generic/io/snprintf.c \
 
68
        generic/io/vprintf.c \
 
69
        generic/io/vsnprintf.c \
 
70
        generic/io/printf_core.c \
 
71
        generic/io/console.c \
 
72
        generic/malloc.c \
 
73
        generic/sysinfo.c \
 
74
        generic/ipc.c \
 
75
        generic/async.c \
 
76
        generic/loader.c \
 
77
        generic/getopt.c \
 
78
        generic/adt/list.o \
 
79
        generic/adt/hash_table.o \
 
80
        generic/time.c \
 
81
        generic/err.c \
 
82
        generic/stdlib.c \
 
83
        generic/mman.c \
 
84
        generic/udebug.c \
 
85
        generic/vfs/vfs.c \
 
86
        generic/vfs/canonify.c
 
87
 
 
88
ARCH_SOURCES += \
 
89
        arch/$(UARCH)/src/entry.s \
 
90
        arch/$(UARCH)/src/thread_entry.s
 
91
 
 
92
GENERIC_OBJECTS := $(addsuffix .o,$(basename $(GENERIC_SOURCES)))
 
93
ARCH_OBJECTS := $(addsuffix .o,$(basename $(ARCH_SOURCES)))
 
94
OBJECTS := $(GENERIC_OBJECTS) $(ARCH_OBJECTS)
 
95
 
 
96
.PHONY: all clean depend kerninc
 
97
 
 
98
all: kerninc libc.a arch/$(UARCH)/_link.ld
 
99
 
 
100
kerninc:
 
101
        ln -sfn ../../../../kernel/generic/include include/kernel
 
102
        ln -sfn kernel/arch include/arch
 
103
        ln -sfn ../arch/$(UARCH)/include include/libarch
 
104
 
 
105
-include Makefile.depend
 
106
 
 
107
clean:
 
108
        -rm -f include/kernel include/arch include/libarch libc.a arch/$(UARCH)/_link.ld Makefile.depend
 
109
        find generic/ arch/$(UARCH)/ -name '*.o' -follow -exec rm \{\} \;
 
110
 
 
111
depend: kerninc
 
112
        -makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(ARCH_SOURCES) $(GENERIC_SOURCES) > Makefile.depend 2> /dev/null
 
113
 
 
114
libc.a: depend $(ARCH_OBJECTS) $(GENERIC_OBJECTS)
 
115
        $(AR) rc libc.a $(LIBS) $(ARCH_OBJECTS) $(GENERIC_OBJECTS)
 
116
 
 
117
arch/$(UARCH)/_link.ld: arch/$(UARCH)/_link.ld.in
 
118
        $(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@
 
119
 
 
120
%.o: %.S
 
121
        $(CC) $(DEFS) $(AFLAGS) $(CFLAGS) -D__ASM__ -c $< -o $@
 
122
 
 
123
%.o: %.s
 
124
        $(AS) $(AFLAGS) $< -o $@
 
125
 
 
126
%.o: %.c
 
127
        $(CC) $(DEFS) $(CFLAGS) -c $< -o $@