OSDN Git Service

a001a44f1556039111da8719662a08c487affe68
[uclinux-h8/uClibc.git] / libc / sysdeps / linux / Makefile.commonarch
1 # Makefile template to be included by sysdeps/linux/<ARCH>/Makefile.arch
2 #
3 # Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
4 #
5 # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
6 #
7
8 ARCH_DIR  := $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
9 ARCH_OUT  := $(top_builddir)libc/sysdeps/linux/$(TARGET_ARCH)
10
11 ARCH_CSRC := $(addprefix $(ARCH_DIR)/,$(CSRC-y))
12 ARCH_COBJ := $(addprefix $(ARCH_OUT)/,$(CSRC-y:.c=.o))
13 ARCH_SSRC = $(addprefix $(ARCH_DIR)/,$(SSRC-y))
14 ARCH_SOBJ = $(patsubst %.s,%.o,$(patsubst %.S,%.o,$(addprefix $(ARCH_OUT)/,$(SSRC-y))))
15
16 ARCH_OBJS-y = $(ARCH_COBJ) $(ARCH_SOBJ)
17
18 crt-y          := FORCE
19 libc-y         += $(ARCH_OBJS-y)
20 libc-nomulti-y += $(ARCH_SOBJ)
21 objclean-y     += CLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
22
23 CFLAGS-crti.S+=$(PICFLAG)
24 CFLAGS-crtn.S+=$(PICFLAG)
25
26 CLEAN_$(subst $(top_builddir),,$(ARCH_OUT)):
27         $(do_rm) $(addprefix $(ARCH_OUT)/*., o os oS) $(CTOR_TARGETS) $(CRTS)
28
29 ifneq ($(ARCH_HEADERS),)
30
31 ARCH_HEADERS_OUT := $(patsubst %,$(top_builddir)include/%,$(ARCH_HEADERS))
32
33 $(ARCH_HEADERS_OUT):
34         $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) $@
35
36 headers-y += $(ARCH_HEADERS_OUT)
37 headers_clean-y += HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
38 HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)):
39         $(do_rm) $(ARCH_HEADERS_OUT)
40 endif
41
42 CFLAGS-ucontext_i.c = -S
43
44 $(ARCH_OUT)/ucontext_i.c: $(ARCH_DIR)/ucontext_i.sym
45         $(do_awk) $(top_srcdir)extra/scripts/gen-as-const.awk $< > $@
46
47 $(ARCH_OUT)/ucontext_i.s: $(ARCH_OUT)/ucontext_i.c
48         $(compile.c)
49
50 $(ARCH_OUT)/ucontext_i.h: $(ARCH_OUT)/ucontext_i.s
51         $(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
52
53 pregen-headers-$(UCLIBC_HAS_CONTEXT_FUNCS) += $(ARCH_OUT)/ucontext_i.h
54
55 headers_clean-$(UCLIBC_HAS_CONTEXT_FUNCS) += \
56         HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i)
57
58 HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i):
59         $(do_rm) $(addprefix $(ARCH_OUT)/ucontext_i., c h s)