summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/Makefile.arch
blob: a2d675294d6f05c4275f485cd1b9f5b9f8884e0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Makefile template to be included by sysdeps/linux/<ARCH>/Makefile.arch
#
# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
#
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#

ifeq ($(TARGET_ARCH),)
$(error TARGET_ARCH is not set, no .config exists in topdir)
endif

ARCH_DIR  := $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
ARCH_OUT  := $(top_builddir)libc/sysdeps/linux/$(TARGET_ARCH)

ARCH_CSRC := $(patsubst %.c,$(ARCH_DIR)/%.c,$(CSRC))
ARCH_COBJ := $(patsubst %.c,$(ARCH_OUT)/%.o,$(CSRC))
ARCH_SSRC := $(patsubst %.S,$(ARCH_DIR)/%.S,$(SSRC))
ARCH_SOBJ := $(patsubst %.S,$(ARCH_OUT)/%.o,$(SSRC))

ARCH_OBJS := $(ARCH_COBJ) $(ARCH_SOBJ)

crt-y          := create
libc-a-y       += $(ARCH_OBJS)
libc-so-y      += $(ARCH_OBJS:.o=.os)
libc-multi-y   += $(ARCH_CSRC)
libc-nomulti-y += $(ARCH_SOBJ)
objclean-y     += arch_objclean

arch_objclean:
	$(RM) $(ARCH_OUT)/*.{o,os} $(CTOR_TARGETS) $(CRTS)

ifneq ($(ARCH_HEADERS),)

ARCH_HEADERS_IN  := $(patsubst %,../libc/sysdeps/linux/$(TARGET_ARCH)/%,$(ARCH_HEADERS))
ARCH_HEADERS_OUT := $(patsubst %,$(top_builddir)include/%,$(ARCH_HEADERS))

headers-y += arch_headers
arch_headers:
	$(SECHO) $(LN) -fs $(ARCH_HEADERS) $(top_builddir)include/
	@for h in $(ARCH_HEADERS_IN) ; do \
		$(LN) -fs $$h $(top_builddir)include/ ; \
	done

headers_clean-y += arch_headers_clean
arch_headers_clean:
	$(RM) $(ARCH_HEADERS_OUT)

endif