summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am266
1 files changed, 266 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..0b9d86d
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,266 @@
+# Makefile.am - Makefile template for libpthread.
+#
+# Copyright (C) 1994, 1995, 1996, 1997, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Hurd.
+#
+# The GNU Hurd is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# The GNU Hurd is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+# For as yet unknown reasons, in presence of libtool usage and target-specific
+# flags (lib*_la_*FLAGS), Automake no longer uses `$<' for accessing the source
+# files, thus losing the ability to use VPATH. Restore the original behavior.
+# TODO: talk to libtool people.
+Makefile: Makefile.stamp
+Makefile.stamp: Makefile.pre
+ sed \
+ < $< > Makefile.new \
+ -e '/^#* $$(LIBTOOL)/s%`test -f.*%$$<%'
+ mv Makefile.new Makefile
+ echo timestamp > $@
+
+if ARCH_I386
+ arch=i386
+endif
+
+if OS_GNU
+ microkernel=mach
+endif
+
+# The source files are scattered over several directories. Add
+# all these directories to the VPATH.
+SYSDEP_PATH = $(srcdir)/sysdeps/$(microkernel)/hurd/$(arch) \
+ $(srcdir)/sysdeps/$(microkernel)/$(arch) \
+ $(srcdir)/sysdeps/$(arch) \
+ $(srcdir)/sysdeps/$(microkernel)/hurd \
+ $(srcdir)/sysdeps/$(microkernel) \
+ $(srcdir)/sysdeps/hurd \
+ $(srcdir)/sysdeps/generic \
+ $(srcdir)/sysdeps/posix \
+ $(srcdir)/pthread \
+ $(srcdir)/include
+
+VPATH += $(SYSDEP_PATH)
+
+if OS_GNU
+libpthread_la_CPPFLAGS = $(CPPFLAGS) \
+ $(addprefix -I, $(SYSDEP_PATH)) \
+ -imacros config.h \
+ -imacros $(srcdir)/include/libc-symbols.h \
+ -imacros $(srcdir)/not-in-libc.h \
+ -D_IO_MTSAFE_IO \
+ -DENABLE_TLS
+libpthread_la_CFLAGS = \
+ -Wall \
+ -std=gnu99
+libpthread_la_LDFLAGS = \
+ -version-info 0:0:0 \
+ -lihash \
+ -lrt
+endif
+
+# Sources.
+
+if OS_GNU
+lib_LTLIBRARIES = libpthread.la
+libpthread_la_SOURCES = $(SRCS)
+endif
+
+SRCS := pt-attr.c pt-attr-destroy.c pt-attr-getdetachstate.c \
+ pt-attr-getguardsize.c pt-attr-getinheritsched.c \
+ pt-attr-getschedparam.c pt-attr-getschedpolicy.c pt-attr-getscope.c \
+ pt-attr-getstack.c pt-attr-getstackaddr.c pt-attr-getstacksize.c \
+ pt-attr-init.c pt-attr-setdetachstate.c pt-attr-setguardsize.c \
+ pt-attr-setinheritsched.c pt-attr-setschedparam.c \
+ pt-attr-setschedpolicy.c pt-attr-setscope.c pt-attr-setstack.c \
+ pt-attr-setstackaddr.c pt-attr-setstacksize.c \
+ \
+ pt-barrier-destroy.c pt-barrier-init.c pt-barrier-wait.c \
+ pt-barrier.c pt-barrierattr-destroy.c pt-barrierattr-init.c \
+ pt-barrierattr-getpshared.c pt-barrierattr-setpshared.c \
+ \
+ pt-destroy-specific.c pt-init-specific.c \
+ pt-key-create.c pt-key-delete.c \
+ pt-getspecific.c pt-setspecific.c \
+ \
+ pt-once.c \
+ \
+ pt-alloc.c \
+ pt-create.c \
+ pt-getattr.c \
+ pt-equal.c \
+ pt-dealloc.c \
+ pt-detach.c \
+ pt-exit.c \
+ pt-initialize.c \
+ pt-join.c \
+ pt-self.c \
+ pt-sigmask.c \
+ pt-spin-inlines.c \
+ pt-cleanup.c \
+ pt-setcancelstate.c \
+ pt-setcanceltype.c \
+ pt-testcancel.c \
+ pt-cancel.c \
+ \
+ pt-mutexattr.c \
+ pt-mutexattr-destroy.c pt-mutexattr-init.c \
+ pt-mutexattr-getprioceiling.c pt-mutexattr-getprotocol.c \
+ pt-mutexattr-getpshared.c pt-mutexattr-gettype.c \
+ pt-mutexattr-setprioceiling.c pt-mutexattr-setprotocol.c \
+ pt-mutexattr-setpshared.c pt-mutexattr-settype.c \
+ \
+ pt-mutex-init.c pt-mutex-destroy.c \
+ pt-mutex-lock.c pt-mutex-trylock.c pt-mutex-timedlock.c \
+ pt-mutex-unlock.c \
+ pt-mutex-transfer-np.c \
+ pt-mutex-getprioceiling.c pt-mutex-setprioceiling.c \
+ \
+ pt-rwlock-attr.c \
+ pt-rwlockattr-init.c pt-rwlockattr-destroy.c \
+ pt-rwlockattr-getpshared.c pt-rwlockattr-setpshared.c \
+ \
+ pt-rwlock-init.c pt-rwlock-destroy.c \
+ pt-rwlock-rdlock.c pt-rwlock-tryrdlock.c \
+ pt-rwlock-trywrlock.c pt-rwlock-wrlock.c \
+ pt-rwlock-timedrdlock.c pt-rwlock-timedwrlock.c \
+ pt-rwlock-unlock.c \
+ \
+ pt-cond.c \
+ pt-condattr-init.c pt-condattr-destroy.c \
+ pt-condattr-getclock.c pt-condattr-getpshared.c \
+ pt-condattr-setclock.c pt-condattr-setpshared.c \
+ \
+ pt-cond-destroy.c pt-cond-init.c \
+ pt-cond-brdcast.c \
+ pt-cond-signal.c \
+ pt-cond-wait.c \
+ pt-cond-timedwait.c \
+ \
+ pt-stack-alloc.c \
+ pt-thread-alloc.c \
+ pt-thread-dealloc.c \
+ pt-thread-start.c \
+ pt-thread-halt.c \
+ pt-startup.c \
+ \
+ pt-getconcurrency.c pt-setconcurrency.c \
+ \
+ pt-block.c \
+ pt-timedblock.c \
+ pt-wakeup.c \
+ pt-docancel.c \
+ pt-sysdep.c \
+ pt-setup.c \
+ pt-machdep.c \
+ pt-spin.c \
+ \
+ pt-sigstate-init.c \
+ pt-sigstate-destroy.c \
+ pt-sigstate.c \
+ \
+ pt-atfork.c \
+ pt-kill.c \
+ pt-getcpuclockid.c \
+ \
+ pt-getschedparam.c pt-setschedparam.c pt-setschedprio.c \
+ pt-yield.c \
+ \
+ sem-close.c sem-destroy.c sem-getvalue.c sem-init.c sem-open.c \
+ sem-post.c sem-timedwait.c sem-trywait.c sem-unlink.c \
+ sem-wait.c
+
+if OS_GNU
+SRCS += cthreads-compat.c \
+ \
+ lockfile.c
+endif
+
+HEADERS_INSTALL := \
+ pthread.h \
+ pthread/pthread.h \
+ pthread/pthreadtypes.h \
+ semaphore.h \
+ \
+ bits/pthread.h \
+ bits/pthread-np.h \
+ bits/pthreadtypes.h \
+ bits/mutex.h \
+ bits/condition.h \
+ bits/condition-attr.h \
+ bits/spin-lock.h \
+ bits/spin-lock-inline.h \
+ bits/cancelation.h \
+ bits/thread-attr.h \
+ bits/barrier-attr.h \
+ bits/barrier.h \
+ bits/thread-specific.h \
+ bits/once.h \
+ bits/mutex-attr.h \
+ bits/rwlock.h \
+ bits/rwlock-attr.h \
+ bits/semaphore.h
+
+if OS_GNU
+.PHONY: install-data-local
+install-data-local: install-data-local-headers \
+ instal-data-local-fix-libpthread_a \
+ instal-data-local-add-libpthread_so_symlink
+
+.PHONY: install-data-local-headers
+install-data-local-headers: Makefile
+ for f in $(HEADERS_INSTALL); do \
+ header_ok=n; \
+ for d in $(SYSDEP_PATH); do \
+ if test -f "$$d/$$f"; then \
+ fdir=$(DESTDIR)$(includedir)/$$(dirname "$$f") && \
+ { test -d $$fdir/ \
+ || $(MKDIR_P) "$$fdir"; } && \
+ $(INSTALL_DATA) \
+ "$$d/$$f" \
+ "$(DESTDIR)$(includedir)/$$f" && \
+ header_ok=y && \
+ break; \
+ fi; \
+ done; \
+ if [ "$$header_ok" != y ]; then \
+ echo '*** The header file `'"$$f"\'' is missing.' && \
+ echo '*** Please report this to <$(PACKAGE_BUGREPORT)>.' && \
+ exit 1; \
+ fi; \
+ done
+
+# TODO: it is not guaranteed that `install-data' will always be done after
+# `install-exec'. And, we're not allowed to make `install-data-local' depend
+# on `install-exec'. TODO: what is the libtool way of doing this?
+.PHONY: instal-data-local-fix-libpthread_a
+instal-data-local-fix-libpthread_a:
+ if test -f $(DESTDIR)$(libdir)/libpthread.a; then \
+ rm -f $(DESTDIR)$(libdir)/libpthread2.a && \
+ mv \
+ $(DESTDIR)$(libdir)/libpthread.a \
+ $(DESTDIR)$(libdir)/libpthread2.a; \
+ fi
+ $(INSTALL_DATA) \
+ $(srcdir)/libpthread.a \
+ $(DESTDIR)$(libdir)/libpthread.a
+
+# TODO: once in a time, when everything has been re-linked...
+.PHONY: instal-data-local-add-libpthread_so_symlink
+instal-data-local-add-libpthread_so_symlink:
+ rm -f $(DESTDIR)$(libdir)/libpthread.so.0.3
+ t=$(shell readlink $(DESTDIR)$(libdir)/libpthread.so) && \
+ $(LN_S) "$$t" $(DESTDIR)$(libdir)/libpthread.so.0.3
+endif