aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/Makefile.am
blob: 7a22c02693f9d1cc1827f3c6facca6c78f249c20 (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
## Process this file with automake to generate Makefile.in

AUTOMAKE_OPTIONS = cygnus

if HAVE_POSIX_DIR
POSIX_SUBDIR = posix
endif

if HAVE_SIGNAL_DIR
SIGNAL_SUBDIR = signal
endif

if HAVE_SYSCALL_DIR
SYSCALLS_SUBDIR = syscalls
endif

if HAVE_UNIX_DIR
UNIX_SUBDIR = unix
endif

# The order of SUBDIRS is important for the integrated documentation.
# Do not change the order without considering the doc impact.
SUBDIRS = argz stdlib ctype search stdio string $(SIGNAL_SUBDIR) time locale sys reent \
	$(extra_dir) errno misc machine $(UNIX_SUBDIR) $(POSIX_SUBDIR) $(SYSCALLS_SUBDIR) .

noinst_DATA = $(CRT0)

if USE_LIBTOOL
noinst_LTLIBRARIES = libc.la
SUBLIBS = \
	argz/libargz.$(aext) \
	stdlib/libstdlib.$(aext) \
	ctype/libctype.$(aext) \
	search/libsearch.$(aext) \
	stdio/libstdio.$(aext) \
	string/libstring.$(aext) \
	$(LIBC_SIGNAL_LIB) \
	time/libtime.$(aext) \
	locale/liblocale.$(aext) \
	$(LIBC_SYS_LIB) \
	reent/libreent.$(aext) \
	$(LIBC_EXTRA_LIB) \
	errno/liberrno.$(aext) \
	misc/libmisc.$(aext) \
	$(LIBC_MACHINE_LIB) \
	$(LIBC_UNIX_LIB) \
	$(LIBC_POSIX_LIB) \
	$(LIBC_SYSCALL_LIB)
else
noinst_LIBRARIES = libc.a
SUBLIBS = \
	argz/lib.$(aext) \
	stdlib/lib.$(aext) \
	ctype/lib.$(aext) \
	search/lib.$(aext) \
	stdio/lib.$(aext) \
	string/lib.$(aext) \
	$(LIBC_SIGNAL_LIB) \
	time/lib.$(aext) \
	locale/lib.$(aext) \
	$(LIBC_SYS_LIB) \
	reent/lib.$(aext) \
	$(LIBC_EXTRA_LIB) \
	errno/lib.$(aext) \
	misc/lib.$(aext) \
	$(LIBC_MACHINE_LIB) \
	$(LIBC_UNIX_LIB) \
	$(LIBC_POSIX_LIB) \
	$(LIBC_SYSCALL_LIB)
endif

libc_la_LDFLAGS = -Xcompiler -nostdlib

if USE_LIBTOOL
libc_la_SOURCES =
libc_la_LIBADD = $(SUBLIBS)
else
libc.a: $(SUBLIBS)
	rm -f $@
	rm -rf tmp
	mkdir tmp
	cd tmp; \
	 for i in $(SUBLIBS); do \
	   $(AR) x ../$$i; \
	 done; \
	$(AR) $(AR_FLAGS) ../$@ *.o
	$(RANLIB) $@
	rm -rf tmp
endif # USE_LIBTOOL

$(SUBLIBS): ; @true

crt0.o: sys/crt0.o
	rm -f $@
	ln sys/crt0.o $@ >/dev/null 2>/dev/null || cp sys/crt0.o $@

sys/crt0.o: ; @true

info_TEXINFOS = libc.texinfo

# This is a list of the stmp-def files in each subdirectory which
# builds .def files.  We don't list subdirectories which don't build
# .def files; if the list of subdirectories changes, we must change
# this as well.
SUBDEFS = \
	stdlib/stmp-def \
	ctype/stmp-def \
	stdio/stmp-def \
	string/stmp-def \
	$(LIBC_SIGNAL_DEF) \
	time/stmp-def \
	locale/stmp-def \
	reent/stmp-def \
	$(LIBC_EXTRA_DEF) \
	misc/stmp-def

libc.info: sigset.texi targetdep.tex $(SUBDEFS)

stmp-sigset: config.status
	if test -n "$(LIBC_SIGNAL_LIB)"; then \
	  echo "@set SIGNALS" >tmp.texi; \
	else \
	  echo "@clear SIGNALS" >tmp.texi; \
	fi
	$(SHELL) $(newlib_basedir)/../move-if-change tmp.texi sigset.texi
	touch $@

sigset.texi: stmp-sigset ; @true

stmp-targetdep: force
	rm -f tmp.texi
	targetdoc=`pwd`/tmp.texi; \
	for d in $(SUBDIRS); do \
	  if test "$$d" != "."; then \
	    (cd $$d && $(MAKE) TARGETDOC=$${targetdoc} doc) || exit 1; \
	  fi; \
	done
	cat $(srcdir)/sys.tex >>tmp.texi
	$(SHELL) $(newlib_basedir)/../move-if-change tmp.texi targetdep.tex
	touch $@

targetdep.tex: stmp-targetdep ; @true

$(SUBDEFS): stmp-targetdep ; @true

.PHONY: force
force:

CLEANFILES = $(CRT0) \
	sigset.texi stmp-sigset tmp.texi targetdep.tex stmp-targetdep

ACLOCAL_AMFLAGS = -I ..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host