Blame htl/Makefile

Packit 6c4009
#
Packit 6c4009
#   Copyright (C) 1994-2018 Free Software Foundation, Inc.
Packit 6c4009
#
Packit 6c4009
#   The GNU C Library is free software; you can redistribute it and/or
Packit 6c4009
#   modify it under the terms of the GNU Lesser General Public
Packit 6c4009
#   License as published by the Free Software Foundation; either
Packit 6c4009
#   version 2.1 of the License, or (at your option) any later version.
Packit 6c4009
Packit 6c4009
#   The GNU C Library is distributed in the hope that it will be useful,
Packit 6c4009
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 6c4009
#   Lesser General Public License for more details.
Packit 6c4009
Packit 6c4009
#   You should have received a copy of the GNU Lesser General Public
Packit 6c4009
#   License along with the GNU C Library; if not, see
Packit 6c4009
#   <http://www.gnu.org/licenses/>.
Packit 6c4009
Packit 6c4009
subdir := htl
Packit 6c4009
Packit 6c4009
srcdir = .
Packit 6c4009
Packit 6c4009
MICROKERNEL := mach
Packit 6c4009
SYSDEPS := lockfile
Packit 6c4009
Packit 6c4009
LCLHDRS :=
Packit 6c4009
Packit 6c4009
libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate	    \
Packit 6c4009
	pt-attr-getguardsize pt-attr-getinheritsched			    \
Packit 6c4009
	pt-attr-getschedparam pt-attr-getschedpolicy pt-attr-getscope	    \
Packit 6c4009
	pt-attr-getstack pt-attr-getstackaddr pt-attr-getstacksize	    \
Packit 6c4009
	pt-attr-init pt-attr-setdetachstate pt-attr-setguardsize	    \
Packit 6c4009
	pt-attr-setinheritsched pt-attr-setschedparam			    \
Packit 6c4009
	pt-attr-setschedpolicy pt-attr-setscope pt-attr-setstack	    \
Packit 6c4009
	pt-attr-setstackaddr pt-attr-setstacksize			    \
Packit 6c4009
									    \
Packit 6c4009
	pt-barrier-destroy pt-barrier-init pt-barrier-wait		    \
Packit 6c4009
	pt-barrier pt-barrierattr-destroy pt-barrierattr-init		    \
Packit 6c4009
	pt-barrierattr-getpshared pt-barrierattr-setpshared		    \
Packit 6c4009
									    \
Packit 6c4009
	pt-destroy-specific pt-init-specific				    \
Packit 6c4009
	pt-key-create pt-key-delete					    \
Packit 6c4009
	pt-getspecific pt-setspecific					    \
Packit 6c4009
									    \
Packit 6c4009
	pt-once								    \
Packit 6c4009
									    \
Packit 6c4009
	pt-alloc							    \
Packit 6c4009
	pt-create							    \
Packit 6c4009
	pt-getattr							    \
Packit 6c4009
	pt-equal							    \
Packit 6c4009
	pt-dealloc							    \
Packit 6c4009
	pt-detach							    \
Packit 6c4009
	pt-exit								    \
Packit 6c4009
	pt-initialize							    \
Packit 6c4009
	pt-join								    \
Packit 6c4009
	pt-self								    \
Packit 6c4009
	pt-sigmask							    \
Packit 6c4009
	pt-spin-inlines							    \
Packit 6c4009
	pt-cleanup							    \
Packit 6c4009
	pt-setcancelstate						    \
Packit 6c4009
	pt-setcanceltype						    \
Packit 6c4009
	pt-testcancel							    \
Packit 6c4009
	pt-cancel							    \
Packit 6c4009
									    \
Packit 6c4009
	pt-mutexattr							    \
Packit 6c4009
	pt-mutexattr-destroy pt-mutexattr-init				    \
Packit 6c4009
	pt-mutexattr-getprioceiling pt-mutexattr-getprotocol		    \
Packit 6c4009
	pt-mutexattr-getpshared pt-mutexattr-gettype			    \
Packit 6c4009
	pt-mutexattr-setprioceiling pt-mutexattr-setprotocol		    \
Packit 6c4009
	pt-mutexattr-setpshared pt-mutexattr-settype			    \
Packit 6c4009
	pt-mutexattr-getrobust pt-mutexattr-setrobust			    \
Packit 6c4009
									    \
Packit 6c4009
	pt-mutex-init pt-mutex-destroy					    \
Packit 6c4009
	pt-mutex-lock pt-mutex-trylock pt-mutex-timedlock		    \
Packit 6c4009
	pt-mutex-unlock							    \
Packit 6c4009
	pt-mutex-transfer-np						    \
Packit 6c4009
	pt-mutex-getprioceiling pt-mutex-setprioceiling			    \
Packit 6c4009
	pt-mutex-consistent 						    \
Packit 6c4009
									    \
Packit 6c4009
	pt-rwlock-attr							    \
Packit 6c4009
	pt-rwlockattr-init pt-rwlockattr-destroy			    \
Packit 6c4009
	pt-rwlockattr-getpshared pt-rwlockattr-setpshared		    \
Packit 6c4009
									    \
Packit 6c4009
	pt-rwlock-init pt-rwlock-destroy				    \
Packit 6c4009
	pt-rwlock-rdlock pt-rwlock-tryrdlock				    \
Packit 6c4009
	pt-rwlock-trywrlock pt-rwlock-wrlock				    \
Packit 6c4009
	pt-rwlock-timedrdlock pt-rwlock-timedwrlock			    \
Packit 6c4009
	pt-rwlock-unlock						    \
Packit 6c4009
									    \
Packit 6c4009
	pt-cond								    \
Packit 6c4009
	pt-condattr-init pt-condattr-destroy				    \
Packit 6c4009
	pt-condattr-getclock pt-condattr-getpshared			    \
Packit 6c4009
	pt-condattr-setclock pt-condattr-setpshared			    \
Packit 6c4009
									    \
Packit 6c4009
	pt-cond-destroy pt-cond-init					    \
Packit 6c4009
	pt-cond-brdcast							    \
Packit 6c4009
	pt-cond-signal							    \
Packit 6c4009
	pt-cond-wait							    \
Packit 6c4009
	pt-cond-timedwait						    \
Packit 6c4009
	pt-hurd-cond-wait						    \
Packit 6c4009
	pt-hurd-cond-timedwait						    \
Packit 6c4009
									    \
Packit 6c4009
	pt-stack-alloc							    \
Packit 6c4009
	pt-thread-alloc							    \
Packit 6c4009
	pt-thread-start							    \
Packit 6c4009
	pt-thread-terminate						    \
Packit 6c4009
	pt-startup							    \
Packit 6c4009
									    \
Packit 6c4009
	pt-getconcurrency pt-setconcurrency				    \
Packit 6c4009
									    \
Packit 6c4009
	pt-block							    \
Packit 6c4009
	pt-timedblock							    \
Packit 6c4009
	pt-wakeup							    \
Packit 6c4009
	pt-docancel							    \
Packit 6c4009
	pt-sysdep							    \
Packit 6c4009
	pt-setup							    \
Packit 6c4009
	pt-machdep							    \
Packit 6c4009
	pt-spin								    \
Packit 6c4009
									    \
Packit 6c4009
	pt-sigstate-init						    \
Packit 6c4009
	pt-sigstate-destroy						    \
Packit 6c4009
	pt-sigstate							    \
Packit 6c4009
									    \
Packit 6c4009
	pt-atfork							    \
Packit 6c4009
	old_pt-atfork							    \
Packit 6c4009
	pt-kill								    \
Packit 6c4009
	pt-getcpuclockid						    \
Packit 6c4009
									    \
Packit 6c4009
	pt-getschedparam pt-setschedparam pt-setschedprio		    \
Packit 6c4009
	pt-yield							    \
Packit 6c4009
									    \
Packit 6c4009
	sem-close sem-destroy sem-getvalue sem-init sem-open		    \
Packit 6c4009
	sem-post sem-timedwait sem-trywait sem-unlink			    \
Packit 6c4009
	sem-wait							    \
Packit 6c4009
									    \
Packit 6c4009
	shm-directory							    \
Packit 6c4009
									    \
Packit 6c4009
	cthreads-compat							    \
Packit 6c4009
	$(SYSDEPS)
Packit 6c4009
Packit 6c4009
libpthread-static-only-routines = pt-atfork
Packit 6c4009
Packit 6c4009
headers :=				\
Packit 6c4009
              pthread.h				\
Packit 6c4009
	      semaphore.h			\
Packit 6c4009
						\
Packit 6c4009
              bits/pthread.h			\
Packit 6c4009
              bits/pthread-np.h			\
Packit 6c4009
              bits/pthreadtypes.h		\
Packit 6c4009
              bits/pthreadtypes-arch.h		\
Packit 6c4009
              bits/thread-shared-types.h	\
Packit 6c4009
              bits/types/struct___pthread_mutex.h	\
Packit 6c4009
              bits/types/struct___pthread_cond.h	\
Packit 6c4009
              bits/types/struct___pthread_condattr.h	\
Packit 6c4009
              bits/types/__pthread_spinlock_t.h	\
Packit 6c4009
              bits/spin-lock-inline.h		\
Packit 6c4009
              bits/cancelation.h		\
Packit 6c4009
              bits/types/struct___pthread_attr.h	\
Packit 6c4009
              bits/types/struct___pthread_barrierattr.h	\
Packit 6c4009
              bits/types/struct___pthread_barrier.h	\
Packit 6c4009
              bits/types/__pthread_key.h		\
Packit 6c4009
              bits/types/struct___pthread_once.h	\
Packit 6c4009
              bits/types/struct___pthread_mutexattr.h	\
Packit 6c4009
              bits/types/struct___pthread_rwlock.h	\
Packit 6c4009
              bits/types/struct___pthread_rwlockattr.h	\
Packit 6c4009
	      bits/semaphore.h
Packit 6c4009
Packit 6c4009
distribute :=
Packit 6c4009
Packit 6c4009
routines := forward libc_pthread_init alloca_cutoff
Packit 6c4009
shared-only-routines = forward
Packit 6c4009
Packit 6c4009
extra-libs := libpthread
Packit 6c4009
extra-libs-others := $(extra-libs)
Packit 6c4009
install-lib := libpthread.so
Packit 6c4009
Packit 6c4009
include ../Makeconfig
Packit 6c4009
Packit 6c4009
CFLAGS-lockfile.c = -D_IO_MTSAFE_IO
Packit 6c4009
Packit 6c4009
all: # Make this the default target; it will be defined in Rules.
Packit 6c4009
Packit 6c4009
subdir_install: $(inst_libdir)/libpthread2.a
Packit 6c4009
Packit 6c4009
# XXX: If $(inst_libdir)/libpthread2.a is installed and
Packit 6c4009
# $(inst_libdir)/libpthread is not, we can have some issues.
Packit 6c4009
.PHONY: $(inst_libdir)/libpthread.a $(inst_libdir)/libpthread_pic.a
Packit 6c4009
Packit 6c4009
# XXX: These rules are a hack.  But it is better than messing with
Packit 6c4009
# ../Makeconf at the moment.  Note that the linker scripts
Packit 6c4009
# $(srcdir)/libpthread.a and $(srcdir)/libpthread_pic.a get overwritten
Packit 6c4009
# when building in $(srcdir) and not a seperate build directory.
Packit 6c4009
$(inst_libdir)/libpthread2.a: $(inst_libdir)/libpthread.a
Packit 6c4009
	mv $< $@
Packit 6c4009
	$(INSTALL_DATA) $(srcdir)/libpthread.a $<
Packit 6c4009
Packit 6c4009
$(inst_libdir)/libpthread2_pic.a: $(inst_libdir)/libpthread_pic.a
Packit 6c4009
	mv $< $@
Packit 6c4009
	$(INSTALL_DATA) $(srcdir)/libpthread_pic.a $<
Packit 6c4009
Packit 6c4009
libc-link.so = $(common-objpfx)libc.so
Packit 6c4009
Packit 6c4009
extra-B-pthread.so = -B$(common-objpfx)htl/
Packit 6c4009
Packit 6c4009
include ../Rules
Packit 6c4009
Packit 6c4009
ifeq (yes,$(build-shared))
Packit 6c4009
# What we install as libpthread.so for programs to link against is in fact a
Packit 6c4009
# link script.  It contains references for the various libraries we need.
Packit 6c4009
# The libpthread.so object is not complete since some functions are only
Packit 6c4009
# defined in libpthread_nonshared.a.
Packit 6c4009
# We need to use absolute paths since otherwise local copies (if they exist)
Packit 6c4009
# of the files are taken by the linker.
Packit 6c4009
install: $(inst_libdir)/libpthread.so
Packit 6c4009
Packit 6c4009
$(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \
Packit 6c4009
			      $(objpfx)libpthread.so$(libpthread.so-version) \
Packit 6c4009
			      $(inst_libdir)/$(patsubst %,$(libtype.oS),\
Packit 6c4009
							$(libprefix)pthread) \
Packit 6c4009
			      $(+force)
Packit 6c4009
	(echo '/* GNU ld script';\
Packit 6c4009
	 echo '   Use the shared library, but some functions are only in';\
Packit 6c4009
	 echo '   the static library, so try that secondarily.  */';\
Packit 6c4009
	 cat $<; \
Packit 6c4009
	 echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \
Packit 6c4009
	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\
Packit 6c4009
	      ')' \
Packit 6c4009
	) > $@.new
Packit 6c4009
	mv -f $@.new $@
Packit 6c4009
Packit 6c4009
$(addprefix $(objpfx), \
Packit 6c4009
  $(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \
Packit 6c4009
    $(tests-nolibpthread), \
Packit 6c4009
    $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
Packit 6c4009
				       $(objpfx)libpthread_nonshared.a
Packit 6c4009
endif
Packit 6c4009
Packit 6c4009
generated += libpthread_nonshared.a