1# POSIX threads 2 3ifndef HAVE_WIN32 4PKGS_FOUND += pthreads 5endif 6 7PTHREADS_W32_VERSION := 2-9-1 8PTHREADS_W32_URL := ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-$(PTHREADS_W32_VERSION)-release.tar.gz 9 10$(TARBALLS)/pthreads-w32-$(PTHREADS_W32_VERSION)-release.tar.gz: 11 $(call download_pkg,$(PTHREADS_W32_URL),pthreads) 12 13.sum-pthreads: pthreads-w32-$(PTHREADS_W32_VERSION)-release.tar.gz 14 15ifdef HAVE_WIN32 16pthreads: pthreads-w32-$(PTHREADS_W32_VERSION)-release.tar.gz .sum-pthreads 17 $(UNPACK) 18 sed -e 's/^CROSS.*=/CROSS ?=/' -i.orig $(UNPACK_DIR)/GNUmakefile 19ifdef HAVE_WINSTORE 20 $(APPLY) $(SRC)/pthreads/winrt.patch 21endif 22 $(APPLY) $(SRC)/pthreads/implib.patch 23 $(APPLY) $(SRC)/pthreads/remove-inline.patch 24 $(APPLY) $(SRC)/pthreads/x86-inline-asm.patch 25 $(APPLY) $(SRC)/pthreads/arm64.patch 26 $(APPLY) $(SRC)/pthreads/pthreads-fix-mode_t.patch 27 $(APPLY) $(SRC)/pthreads/pthread-fix-inline.patch 28 $(APPLY) $(SRC)/pthreads/pthreads-fix-old-mingw.patch 29 $(MOVE) 30 31PTHREADS_W32_CONF := LFLAGS="$(LDFLAGS)" PTW32_FLAGS="$(CFLAGS)" 32ifdef HAVE_CROSS_COMPILE 33PTHREADS_W32_CONF += CROSS="$(HOST)-" 34endif 35 36.pthreads: pthreads 37 cd $< && $(HOSTVARS) $(PTHREADS_W32_CONF) $(MAKE) MAKEFLAGS=-j1 GC-static 38 mkdir -p -- "$(PREFIX)/include" 39 cd $< && cp -v pthread.h sched.h semaphore.h "$(PREFIX)/include/" 40 sed -e 's/#if HAVE_CONFIG_H/#if 0 \&\& HAVE_CONFIG_H/' -i \ 41 "$(PREFIX)/include/pthread.h" 42 mkdir -p -- "$(PREFIX)/lib" 43 cp -v $</*.a "$(PREFIX)/lib/" 44 cp -f "$(PREFIX)/lib/libpthreadGC2.a" "$(PREFIX)/lib/libpthread.a" 45 touch $@ 46endif 47