headers: $(top_builddir)include/bits/uClibc_config.h
subdirs: $(addprefix $(top_builddir),$(subdirs))
-pregen: $(top_builddir)include/bits/sysnum.h headers subdirs
+pregen: $(top_builddir)include/bits/sysnum.h headers subdirs $(pthread_pregen)
$(Q)$(if $(UCLIBC_HAS_LOCALE),$(MAKE) -C extra/locale locale_headers)
$(top_builddir)include/bits/sysnum.h: $(top_srcdir)extra/scripts/gen_bits_syscall_h.sh
-include $(PTHREAD_DIR)/sysdeps/unix/sysv/linux/Makefile.in
-include $(PTHREAD_DIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/Makefile.arch
+pthread_pregen := nptl_headers nptl_arch_headers nptl_linux_headers
+
lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
$(top_builddir)include/bits/semaphore.h \
$(top_builddir)include/bits/pthreadtypes.h \
$(top_builddir)include/bits/libc-lock.h \
- $(top_builddir)include/bits/stdio-lock.h \
- $(PTHREAD_OUT)/pthread-errnos.h
+ $(top_builddir)include/bits/stdio-lock.h
+
+nptl_headers: $(PTHREAD_OUT)/pthread-errnos.h
nptl_headers_clean:
$(do_rm) $(nptl_headers_bootstrap) \
libpthread-nomulti-y += $(PTHREAD_ARCH_OBJ)
-objclean-y += nptl_arch_clean
-headers-y += $(PTHREAD_ARCH_OUT)/tcb-offsets.h
+objclean-y += nptl_arch_objclean
headers_clean-y += nptl_arch_headers_clean
#
$(PTHREAD_ARCH_OUT)/tcb-offsets.s: $(PTHREAD_ARCH_OUT)/tcb-offsets.c
$(compile.c)
-$(PTHREAD_ARCH_OUT)/tcb-offsets.h: $(PTHREAD_ARCH_OUT)/tcb-offsets.s
- $(do_sed) -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$\/#define \1 \2/p" $< > $@
+nptl_arch_headers: $(PTHREAD_ARCH_OUT)/tcb-offsets.s
+ $(do_sed) -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$\/#define \1 \2/p" $< > $(PTHREAD_ARCH_OUT)/tcb-offsets.h
nptl_arch_headers_clean:
- $(do_rm) $(addprefix $(PTHREAD_ARCH_OUT)/tcb-offsets., c s h)
+ $(RM) $(PTHREAD_ARCH_OUT)/tcb-offsets.c \
+ $(PTHREAD_ARCH_OUT)/tcb-offsets.s \
+ $(PTHREAD_ARCH_OUT)/tcb-offsets.h
-nptl_arch_clean:
- $(do_rm) $(addprefix $(PTHREAD_ARCH_OUT)/*., o os oS)
+nptl_arch_objclean:
+ $(RM) $(PTHREAD_ARCH_OUT)/*.{o,os,oS}
CFLAGS-i386 = $(SSP_ALL_CFLAGS)
#CFLAGS:=$(CFLAGS:-O1=-O2)
-PTHREAD_ARCH_DIR := $(top_srcdir)libpthread/nptl/sysdeps/i386
-PTHREAD_ARCH_OUT := $(top_builddir)libpthread/nptl/sysdeps/i386
+PTHREAD_ARCH_DIR := $(top_srcdir)libpthread/nptl/sysdeps/i386/
+PTHREAD_ARCH_OUT := $(top_builddir)libpthread/nptl/sysdeps/i386/
PTHREAD_ARCH_OBJ := $(patsubst %.S,$(PTHREAD_ARCH_OUT)/%.o,$(libpthread_SSRC))
PTHREAD_ARCH_OBJ += $(patsubst %.c,$(PTHREAD_ARCH_OUT)/%.o,$(libpthread_CSRC))
libpthread-nomulti-y += $(PTHREAD_ARCH_OBJ)
objclean-y += nptl_arch_clean
-headers-y += $(PTHREAD_ARCH_OUT)/tcb-offsets.h
headers_clean-y += nptl_arch_headers_clean
#
$(PTHREAD_ARCH_OUT)/tcb-offsets.h: $(PTHREAD_ARCH_OUT)/tcb-offsets.s
@sed -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$\/#define \1 \2/p" $< > $@
+nptl_arch_headers: $(PTHREAD_ARCH_OUT)/tcb-offsets.h
+
nptl_arch_headers_clean:
$(do_rm) $(addprefix $(PTHREAD_ARCH_OUT)/tcb-offsets., c s h)
libc-nomulti-y += $(LIBC_ARCH_OBJ)
-objclean-y += nptl_arch_clean
-headers-y += $(PTHREAD_ARCH_OUT)/tcb-offsets.h
+objclean-y += nptl_arch_objclean
headers_clean-y += nptl_arch_headers_clean
#
CFLAGS-tcb-offsets.c = -S
$(PTHREAD_ARCH_OUT)/tcb-offsets.c: $(PTHREAD_ARCH_DIR)/tcb-offsets.sym
- $(do_awk) $(top_srcdir)extra/scripts/gen-as-const.awk $< > $@
+ awk -f $(top_srcdir)extra/scripts/gen-as-const.awk $< > $@
$(PTHREAD_ARCH_OUT)/tcb-offsets.s: $(PTHREAD_ARCH_OUT)/tcb-offsets.c
$(compile.c)
-$(PTHREAD_ARCH_OUT)/tcb-offsets.h: $(PTHREAD_ARCH_OUT)/tcb-offsets.s
- $(do_sed) -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$\/#define \1 \2/p" $< > $@
+nptl_arch_headers: $(PTHREAD_ARCH_OUT)/tcb-offsets.s
+ $(do_sed) -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$\/#define \1 \2/p" $< > $(PTHREAD_ARCH_OUT)/tcb-offsets.h
nptl_arch_headers_clean:
- $(do_rm) $(addprefix $(PTHREAD_ARCH_OUT)/tcb-offsets., c s h)
+ $(RM) $(PTHREAD_ARCH_OUT)/tcb-offsets.c \
+ $(PTHREAD_ARCH_OUT)/tcb-offsets.s \
+ $(PTHREAD_ARCH_OUT)/tcb-offsets.h
-nptl_arch_clean:
- $(do_rm) $(addprefix $(PTHREAD_ARCH_OUT)/*., o os oS)
+nptl_arch_objclean:
+ $(RM) $(PTHREAD_ARCH_OUT)/*.{o,os,oS}
libpthread-nomulti-y += $(PTHREAD_ARCH_OBJ)
objclean-y += nptl_arch_clean
-headers-y += $(PTHREAD_ARCH_OUT)/tcb-offsets.h
headers_clean-y += nptl_arch_headers_clean
#
$(PTHREAD_ARCH_OUT)/tcb-offsets.h: $(PTHREAD_ARCH_OUT)/tcb-offsets.s
$(do_sed) -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$\/#define \1 \2/p" $< > $@
+nptl_arch_headers: $(PTHREAD_ARCH_OUT)/tcb-offsets.h
+
nptl_arch_headers_clean:
$(do_rm) $(addprefix $(PTHREAD_ARCH_OUT)/tcb-offsets., c s h)
CFLAGS-sparc = $(SSP_ALL_CFLAGS)
#CFLAGS:=$(CFLAGS:-O1=-O2)
-PTHREAD_ARCH_DIR := $(top_srcdir)libpthread/nptl/sysdeps/sparc
-PTHREAD_ARCH_OUT := $(top_builddir)libpthread/nptl/sysdeps/sparc
+PTHREAD_ARCH_DIR := $(top_srcdir)libpthread/nptl/sysdeps/sparc/
+PTHREAD_ARCH_OUT := $(top_builddir)libpthread/nptl/sysdeps/sparc/
PTHREAD_ARCH_OBJ := $(patsubst %.S,$(PTHREAD_ARCH_OUT)/%.o,$(libpthread_SSRC))
PTHREAD_ARCH_OBJ += $(patsubst %.c,$(PTHREAD_ARCH_OUT)/%.o,$(libpthread_CSRC))
libpthread-nomulti-y += $(PTHREAD_ARCH_OBJ)
objclean-y += nptl_arch_clean
-headers-y += $(PTHREAD_ARCH_OUT)/tcb-offsets.h
headers_clean-y += nptl_arch_headers_clean
#
$(PTHREAD_ARCH_OUT)/tcb-offsets.h: $(PTHREAD_ARCH_OUT)/tcb-offsets.s
@sed -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$\/#define \1 \2/p" $< > $@
+nptl_arch_headers: $(PTHREAD_ARCH_OUT)/tcb-offsets.h
+
nptl_arch_headers_clean:
$(do_rm) $(addprefix $(PTHREAD_ARCH_OUT)/tcb-offsets., c s h)
librt-so-y += $(LIBRT_LINUX_OBJ:.o=.oS)
objclean-y += nptl_linux_clean
-headers-y += $(PTHREAD_LINUX_OUT)/lowlevelbarrier.h \
- $(PTHREAD_LINUX_OUT)/lowlevelcond.h \
- $(PTHREAD_LINUX_OUT)/lowlevelrwlock.h \
- $(PTHREAD_LINUX_OUT)/unwindbuf.h
headers_clean-y += nptl_linux_headers_clean
#
$(PTHREAD_LINUX_OUT)/unwindbuf.h: $(PTHREAD_LINUX_OUT)/unwindbuf.s
$(do_sed) -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$\/#define \1 \2/p" $< > $@
+nptl_linux_headers: $(PTHREAD_LINUX_OUT)/lowlevelbarrier.h \
+ $(PTHREAD_LINUX_OUT)/lowlevelcond.h \
+ $(PTHREAD_LINUX_OUT)/lowlevelrwlock.h \
+ $(PTHREAD_LINUX_OUT)/unwindbuf.h
+
HEADERS_BITS_PTHREAD := $(notdir $(wildcard $(PTHREAD_LINUX_DIR)/bits/*.h))
ALL_HEADERS_BITS_PTHREAD := $(addprefix include/bits/,$(HEADERS_BITS_PTHREAD))