source: trunk/libs/newlib/src/newlib/libc/sys/linux/linuxthreads/Makefile.am @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 5.0 KB
Line 
1## Process this file with automake to generate Makefile.in
2
3AUTOMAKE_OPTIONS = cygnus
4
5INCLUDES = -I$(srcdir)/../include -I$(srcdir)/machine/$(machine_dir) -I$(srcdir)/machine/generic  $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) -I$(srcdir)/..
6
7LIBTOOL_VERSION_INFO = 0:0:0
8
9LIB_SOURCES= \
10        attr.c barrier.c condvar.c \
11        events.c getcpuclockid.c getreent.c join.c lockfile.c manager.c \
12        mq_notify.c oldsemaphore.c prio.c ptclock_gettime.c ptclock_settime.c \
13        ptlongjmp.c pt-machine.c reent.c rwlock.c semaphore.c \
14        signals.c spinlock.c sysctl.c \
15        timer_create.c timer_getoverr.c timer_routines.c \
16        timer_delete.c timer_gettime.c timer_settime.c \
17        wrapsyscall.c
18
19LIB_DB_SOURCES = td_init.c td_log.c td_ta_delete.c td_ta_get_nthreads.c      \
20        td_ta_get_ph.c td_ta_map_id2thr.c td_ta_map_lwp2thr.c     \
21        td_ta_new.c td_ta_thr_iter.c td_ta_tsd_iter.c             \
22        td_thr_get_info.c td_thr_getfpregs.c td_thr_getgregs.c    \
23        td_thr_getxregs.c td_thr_getxregsize.c td_thr_setfpregs.c \
24        td_thr_setgregs.c td_thr_setprio.c td_thr_setsigpending.c \
25        td_thr_setxregs.c td_thr_sigsetmask.c td_thr_tsd.c        \
26        td_thr_validate.c td_thr_dbsuspend.c td_thr_dbresume.c    \
27        td_ta_setconcurrency.c td_ta_enable_stats.c               \
28        td_ta_reset_stats.c td_ta_get_stats.c td_ta_event_addr.c  \
29        td_thr_event_enable.c td_thr_set_event.c                  \
30        td_thr_clear_event.c td_thr_event_getmsg.c                \
31        td_ta_set_event.c td_ta_event_getmsg.c                    \
32        td_ta_clear_event.c td_symbol_list.c
33
34# Because of how libtool moves objects around, these files must be built last.
35LIBADD_OBJS = \
36        $(lpfx)mutex.$(oext) $(lpfx)specific.$(oext) \
37        $(lpfx)pthread.$(oext) $(lpfx)cancel.$(oext)
38
39ELIX_3_SOURCES = \
40        ptfork.c
41
42if ELIX_LEVEL_1
43ELIX_SOURCES = reqsyscalls.c
44else
45if ELIX_LEVEL_2
46ELIX_SOURCES = reqsyscalls.c
47else
48ELIX_SOURCES = $(ELIX_3_SOURCES)
49endif
50endif
51
52SUBDIRS = machine .
53
54tooldir = $(tooldir)
55toollibdir = $(top_toollibdir)
56
57libpthread_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO) -release newlib -no-undefined -lgcc -Xcompiler -nostdlib -Xlinker --version-script=$(srcdir)/../shared.ld `cat extra-libtool-objlist`
58libthread_db_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO) -release newlib -no-undefined -lgcc -Xcompiler -nostdlib -Xlinker --version-script=$(srcdir)/../shared.ld
59
60if USE_LIBTOOL
61
62# objects listed later in LIBPTHREAD_OBJLISTS will override those listed earlier
63extra-libtool-objlist: $(MACHINE_OBJLIST)
64        cat $(MACHINE_OBJLIST) | $(AWK) '{ libpthread[$$1] = $$2 }; END { for (x in libpthread) printf ("%s\n", libpthread[x]) }' > $@
65
66toollib_LTLIBRARIES = libpthread.la libthread_db.la
67libpthread_la_SOURCES = $(LIB_SOURCES) $(ELIX_SOURCES)
68libpthread_la_LIBADD = $(LIBADD_OBJS)
69## libpthread_la_DEPENDENCIES = defs.h crti.S
70libpthread_la_DEPENDENCIES = $(LIBADD_OBJS) extra-libtool-objlist
71noinst_DATA=objectlist.awk.in
72LIB_COMPILE = $(LTCOMPILE)
73
74libthread_db_la_SOURCES = $(LIB_DB_SOURCES)
75
76else
77
78toollib_LIBRARIES = libpthread.a libthread_db.a
79libpthread_a_SOURCES = $(LIB_SOURCES) $(ELIX_SOURCES)
80libpthread_a_LIBADD = $(LIBADD_OBJS) $(MACHINE_LIB)
81libpthread_a_CFLAGS = $(AM_CFLAGS)
82## libpthread_a_DEPENDENCIES = defs.h crti.S
83libpthread_a_DEPENDENCIES = $(LIBADD_OBJS) $(MACHINE_LIB)
84LIB_COMPILE = $(COMPILE)
85
86libthread_db_a_SOURCES = $(LIB_DB_SOURCES)
87libthread_db_a_CFLAGS = $(AM_CFLAGS)
88
89endif # USE_LIBTOOL
90
91include $(srcdir)/../../../../Makefile.shared
92
93doc:
94
95install-data-local: install-toollibLIBRARIES
96        -rm -f $(DESTDIR)$(toollibdir)/libthread_db.so.1
97        ln -s `readlink $(DESTDIR)$(toollibdir)/libthread_db.so` \
98          $(DESTDIR)$(toollibdir)/libthread_db.so.1 \
99          || cp $(DESTDIR)$(toollibdir)/libthread_db.so \
100          $(DESTDIR)$(toollibdir)/libthread_db.so.1
101
102AM_CFLAGS = -D_XOPEN_SOURCE=600 -D_GNU_SOURCE=1
103ACLOCAL_AMFLAGS = -I ../../../.. -I ../../../../..
104CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
105
106## PTHREAD_HEADERS=pthread.h semaphore.h
107
108CFLAGS_pt_initfini = -g0 -fPIC -fno-inline-functions
109CFLAGS_noweak=-D__NO_WEAK_PTHREAD_ALIASES
110CFLAGS_cancel=-D__NO_WEAK_PTHREAD_ALIASES -D_RPC_THREAD_SAFE_
111CFLAGS_pthread=-D__NO_WEAK_PTHREAD_ALIASES -DHAVE_Z_NODELETE
112
113pt-initfini.s: $(srcdir)/pt-initfini.c
114        $(CC) -S $(CFLAGS_pt_initfini) -finhibit-size-directive \
115                $(patsubst -f%,-fno-%,$(exceptions)) -o $@
116
117# We only have one kind of startup code files.  Static binaries and
118# shared libraries are build using the PIC version.
119crti.S: pt-initfini.s
120        sed -n -e '1,/@HEADER_ENDS/p' \
121               -e '/@_.*_PROLOG_BEGINS/,/@_.*_PROLOG_ENDS/p' \
122               -e '/@TRAILER_BEGINS/,$$p' $< > $@
123
124defs.h: pt-initfini.s
125        sed -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
126                $(AWK) -f defs.awk > $@
127
128crti.o: crti.S defs.h
129        $(CC) -g0 $(ASFLAGS) -o $@
130
131$(lpfx)mutex.$(oext): $(srcdir)/mutex.c
132        $(LIB_COMPILE) $(CFLAGS_noweak) -c $< -o $@
133
134$(lpfx)specific.$(oext): $(srcdir)/specific.c
135        $(LIB_COMPILE) $(CFLAGS_noweak) -c $< -o $@
136
137$(lpfx)pthread.$(oext): $(srcdir)/pthread.c
138        $(LIB_COMPILE) $(CFLAGS_pthread) -c $< -o $@
139
140$(lpfx)ptfork.$(oext): $(srcdir)/ptfork.c
141        $(LIB_COMPILE) $(CFLAGS_noweak) -c $< -o $@
142
143$(lpfx)cancel.$(oext): $(srcdir)/cancel.c
144        $(LIB_COMPILE) $(CFLAGS_cancel) -c $< -o $@
145
Note: See TracBrowser for help on using the repository browser.