1PKGDIR ?= ../../.. 2L4DIR ?= $(PKGDIR)/../../.. 3 4TARGET = libpthread.a libpthread.so 5 6PC_FILENAME = libpthread 7# this will proper work with pkg-config >= 0.28, for older versions 8# pkg-config's reordering will not harm but std::thread will not work 9PC_LIBS_libpthread := --whole-archive -lpthread --no-whole-archive 10 11CONTRIBDIR = $(PKGDIR)/../uclibc/lib/contrib/uclibc 12LDSODIR = $(CONTRIBDIR)/ldso/ldso 13 14DIR_amd64 := x86_64 15DIR_x86 := i386 16DIR_arm := arm 17DIR_arm64 := arm64 18DIR_mips := mips 19DIR_ppc32 := powerpc 20DIR_sparc := sparc 21 22SRC_CC = manager.cc l4.cc 23SRC_C += spinlock.c mutex.c condvar.c rwlock.c errno.c specific.c \ 24 semaphore.c attr.c barrier.c join.c pthread.c \ 25 cancel.c ptcleanup.c errno-loc.c signals.c \ 26 sysdeps/$(DIR_$(ARCH))/pspinlock.c 27SRC_C_libpthread.a += libc_pthread_init.c 28SRC_S = tramp-$(ARCH).S 29SO_INIT = so_init-$(ARCH) 30WARNINGS = $(WARNINGS_MEDIUM) 31 32vpath %.c $(SRC_DIR)/sysdeps/generic 33 34 35INCDIR-x86 = $(SRC_DIR)/sysdeps/i386/i686 $(SRC_DIR)/sysdeps/i386 \ 36 $(CONTRIBDIR)/libc \ 37 $(LDSODIR)/$(DIR_$(ARCH)) 38INCDIR-amd64 = $(SRC_DIR)/sysdeps/$(DIR_$(ARCH)) 39INCDIR-arm = $(SRC_DIR)/sysdeps/arm 40INCDIR-arm64 = $(SRC_DIR)/sysdeps/arm64 41INCDIR-mips = $(SRC_DIR)/sysdeps/mips 42INCDIR-ppc32 = $(SRC_DIR)/sysdeps/powerpc \ 43 $(CONTRIBDIR)/libpthread/linuxthreads/sysdeps/powerpc 44INCDIR-sparc = $(SRC_DIR)/sysdeps/sparc \ 45 $(CONTRIBDIR)/libpthread/linuxthreads/sysdeps/sparc 46 47PRIVATE_INCDIR = $(SRC_DIR) $(INCDIR-$(ARCH)) $(CONTRIBDIR)/ldso/include 48 49DEFINES := -DL4_THREAD_SAFE -D__USE_XOPEN2K -D_POSIX_C_SOURCE=200112L \ 50 -D_GNU_SOURCE=1 -D__NO_WEAK_PTHREAD_ALIASES=1 \ 51 -D_LIBC=1 -DIS_IN_libpthread=1 -DNOT_IN_libc=1 52 53DEFINES_x86-l4f := -DUSE___THREAD=1 54DEFINES_amd64-l4f := -DUSE___THREAD=1 55DEFINES_arm-l4f := -DUSE___THREAD=1 56DEFINES_arm64-l4f := -DUSE___THREAD=1 57DEFINES_mips-l4f := -DUSE___THREAD=1 58DEFINES_ppc32-l4f := -DUSE___THREAD=1 59DEFINES_sparc-l4f := -DUSE___THREAD=1 60 61CFLAGS += -include $(CONTRIBDIR)/include/libc-symbols.h 62CXXFLAGS += -include $(CONTRIBDIR)/include/libc-symbols.h 63CXXFLAGS += -fno-exceptions 64 65include $(L4DIR)/mk/lib.mk 66CRT0 = $(CRTI_so) $(SO_INIT).s.o $(CRTBEGIN_so) $(CRT1_so) 67 68PICFLAGS += -DSHARED 69 70libpthread.so: $(SO_INIT).s.o 71