This commit is contained in:
Alois Schlögl 2020-08-12 09:38:14 +02:00 committed by GitHub
commit 6375bdf9d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
112 changed files with 57772 additions and 189 deletions

24
.mozconfig Normal file
View File

@ -0,0 +1,24 @@
#Specify the cross compile
export CROSS_COMPILE=1
#ac_add_options --enable-application=browser
ac_add_options --enable-application=mail
#ac_add_options --enable-application=suite
#ac_add_options --enable-application=calendar
#ac_add_options --enable-application=xulrunner
ac_add_options --target=i686-w64-mingw32
ac_add_options --enable-default-toolkit=cairo-windows
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../mozilla-mingw
ac_add_options --enable-debug
ac_add_options --disable-optimize
ac_add_options --disable-updater
ac_add_options --disable-crashreporter
ac_add_options --disable-maintenance-service
ac_add_options --disable-webrtc
ac_add_options --disable-accessibility # uncomment if you don't have widl installed
# Use parallel build. Adjust number of processes for your setup.
mk_add_options MOZ_MAKE_FLAGS=-j8

View File

@ -12,7 +12,7 @@ MXE_TRIPLETS := i686-w64-mingw32 x86_64-w64-mingw32
MXE_LIB_TYPES := static shared
MXE_TARGET_LIST := $(strip $(foreach TRIPLET,$(MXE_TRIPLETS),\
$(addprefix $(TRIPLET).,$(MXE_LIB_TYPES))))
MXE_TARGETS := i686-w64-mingw32.static
MXE_TARGETS := i686-w64-mingw32.static x86_64-w64-mingw32.static
.DEFAULT_GOAL := all-filtered
DEFAULT_MAX_JOBS := 6
@ -357,6 +357,7 @@ else
echo; \
echo '# This variable controls the targets that will build.'; \
echo '#MXE_TARGETS := $(MXE_TARGET_LIST)'; \
echo 'MXE_TARGETS := $(MXE_TARGETS)'; \
echo; \
echo '# This variable controls which plugins are in use.'; \
echo '# See plugins/README.md for further information.'; \
@ -368,9 +369,9 @@ else
echo; \
echo '# The three lines below makes `make` build these "local'; \
echo '# packages" instead of all packages.'; \
echo '#LOCAL_PKG_LIST := boost curl file flac lzo pthreads vorbis wxwidgets'; \
echo 'LOCAL_PKG_LIST := biosig sigviewer stimfit dcmtk edfbrowser'; \
echo '#.DEFAULT_GOAL := local-pkg-list'; \
echo '#local-pkg-list: $$(LOCAL_PKG_LIST)'; \
echo 'local-pkg-list: $$(LOCAL_PKG_LIST)'; \
} >'$(PWD)/settings.mk')
endif
@ -737,25 +738,25 @@ $(PREFIX)/$(3)/installed/$(1): $(PKG_MAKEFILES) \
$(else),
@$(PRINTF_FMT) '[build]' '$(1)' '$(3)' | $(RTRIM)
@[ -d '$(LOG_DIR)/$(TIMESTAMP)' ] || mkdir -p '$(LOG_DIR)/$(TIMESTAMP)'
@touch '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)'
@ln -sf '$(TIMESTAMP)/$(1)_$(3)' '$(LOG_DIR)/$(1)_$(3)'
@touch '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)'
@ln -sf '$(TIMESTAMP)/$(1)_$(3)' '$(LOG_DIR)/$(1)_$(3)'
@if ! (time $(PRELOAD) WINEPREFIX='$(2)/readonly' \
$(MAKE) -f '$(MAKEFILE)' \
'build-only-$(1)_$(3)' \
WGET=false \
) &> '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)'; then \
echo; \
echo 'Failed to build package $(1) for target $(3)!'; \
echo '------------------------------------------------------------'; \
$(if $(findstring undefined, $(origin MXE_VERBOSE)),\
tail -n 10 '$(LOG_DIR)/$(1)_$(3)' | $(SED) -n '/./p';, \
$(SED) -n '/./p' '$(LOG_DIR)/$(1)_$(3)';) \
echo '------------------------------------------------------------'; \
echo '[log] $(LOG_DIR)/$(1)_$(3)'; \
echo; \
exit 1; \
fi
@$(PRINTF_FMT) '[done]' '$(1)' '$(3)' "`grep -a '^du:.*KiB$$\' '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)' | cut -d ':' -f2 | tail -1`" \
echo; \
echo 'Failed to build package $(1) for target $(3)!'; \
echo '------------------------------------------------------------'; \
$(if $(findstring undefined, $(origin MXE_VERBOSE)),\
tail -n 10 '$(LOG_DIR)/$(1)_$(3)' | $(SED) -n '/./p';, \
$(SED) -n '/./p' '$(LOG_DIR)/$(1)_$(3)';) \
echo '------------------------------------------------------------'; \
echo '[log] $(LOG_DIR)/$(1)_$(3)'; \
echo; \
exit 1; \
fi
@$(PRINTF_FMT) '[done]' '$(1)' '$(3)' "`grep -a '^du:.*KiB$$\' '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)' | cut -d ':' -f2 | tail -1`" \
"`grep -a '^real.*m.*s$$\' '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)' | tr '\t' ' ' | cut -d ' ' -f2 | tail -1`"
)
$(else),
@ -843,9 +844,9 @@ WALK_UPSTREAM = \
$(foreach PKG,$(filter $(1),$(PKGS)),\
$(foreach TARGET,$($(PKG)_TARGETS), \
$(foreach DEP,$(sort $(subst $(BUILD)~,,$(subst $(TARGET)~,,$(PKG_ALL_DEPS)))),\
$(if $(filter-out $(PKGS_VISITED),$(DEP)),\
$(call SET_APPEND,PKGS_VISITED,$(DEP))\
$(call WALK_UPSTREAM,$(DEP))\
$(if $(filter-out $(PKGS_VISITED),$(DEP)),\
$(call SET_APPEND,PKGS_VISITED,$(DEP))\
$(call WALK_UPSTREAM,$(DEP))\
$(DEP))))))
# not really walking downstream - that seems to be quadratic, so take
@ -936,7 +937,7 @@ print-deps-for-build-pkg:
$(info $(strip for-build-pkg $(TARGET)~$(PKG) \
$(subst $(space),-,$($(PKG)_VERSION)-$(OS_SHORT_NAME)) \
$(subst /installed/,~,$(PKG_DEPS) $(PKG_OO_DEPS)))))))
@echo -n
@echo -n
BUILD_PKG_TMP_FILES := *-*.list mxe-*.tar.xz mxe-*.deb* wheezy jessie
@ -1042,10 +1043,10 @@ docs/build-matrix.html: $(foreach 1,$(PKGS),$(PKG_MAKEFILES))
# $(eval $(VIRTUAL_PKGCOUNT += x))
# vs
# $(eval $(VIRTUAL_PKGCOUNT := $(call int_inc,$(VIRTUAL_PKGCOUNT))))
@$(foreach PKG,$(PKGS), \
$(eval $(PKG)_VIRTUAL := $(true)) \
$(eval $(PKG)_BUILD_ONLY := $(true)) \
echo -e '<tr>\n \
@$(foreach PKG,$(PKGS), \
$(eval $(PKG)_VIRTUAL := $(true)) \
$(eval $(PKG)_BUILD_ONLY := $(true)) \
echo -e '<tr>\n \
<th class="row" \
title="$($(PKG)_MESSAGE)"> \
$(PKG) \
@ -1054,15 +1055,15 @@ docs/build-matrix.html: $(foreach 1,$(PKGS),$(PKG_MAKEFILES))
</th>\n \
<td>$(call substr,$($(PKG)_VERSION),1,12) \
$(if $(call gt,$(call strlen,$($(PKG)_VERSION)),12),&hellip;)</td>\n\
$(foreach TARGET,$(MXE_TARGET_LIST), \
$(foreach TARGET,$(MXE_TARGET_LIST), \
$(if $(filter $(VIRTUAL_PKG_TYPES),$($(PKG)_TYPE)), \
$(if $(filter $(TARGET),$($(PKG)_TARGETS)), \
<td class="neutral">&bull;</td>, \
<td></td>), \
$(if $(filter $(TARGET),$($(PKG)_TARGETS)), \
$(if $(value $(call LOOKUP_PKG_RULE,$(PKG),BUILD,$(TARGET))), \
$(eval $(TARGET)_PKGCOUNT += x) \
<td class="supported">&#x2713;</td>, \
$(if $(value $(call LOOKUP_PKG_RULE,$(PKG),BUILD,$(TARGET))), \
$(eval $(TARGET)_PKGCOUNT += x) \
<td class="supported">&#x2713;</td>, \
<td class="unsupported">&#215;</td>),\
<td></td>))\n) \
$(if $(filter $(VIRTUAL_PKG_TYPES),$($(PKG)_TYPE)), \
@ -1072,10 +1073,10 @@ docs/build-matrix.html: $(foreach 1,$(PKGS),$(PKG_MAKEFILES))
<td></td>), \
$(if $(filter $(BUILD),$($(PKG)_TARGETS)), \
$(if $(value $(call LOOKUP_PKG_RULE,$(PKG),BUILD,$(BUILD))), \
<td class="supported">&#x2713;</td>, \
<td class="supported">&#x2713;</td>, \
<td class="unsupported">&#215;</td>), \
<td></td>))\n \
</tr>\n' >> $@ $(newline) \
</tr>\n' >> $@ $(newline) \
$(if $(call seq,$(BUILD),$($(PKG)_TARGETS)), \
$(eval BUILD_ONLY_PKGCOUNT += x)))
@echo '<tr>' >> $@

View File

@ -8,21 +8,13 @@
[![Async Chat (Trial))](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://mxe.zulipchat.com/)
MXE (M cross environment) is a GNU Makefile that compiles a cross
compiler and cross compiles many free libraries such as SDL and
Qt. Thus, it provides a nice cross compiling environment for
various target platforms, which:
* is designed to run on any Unix system
* is easy to adapt and to extend
* builds many free libraries in addition to the cross compiler
* can also build just a subset of the packages, and automatically builds their dependencies
* downloads all needed packages and verifies them by their checksums
* is able to update the version numbers of all packages automatically
* directly uses source packages, thus ensuring the whole build mechanism is transparent
* allows inter-package and intra-package parallel builds whenever possible
* bundles [ccache](https://ccache.samba.org) to speed up repeated builds
* integrates well with autotools, cmake, qmake, and hand-written makefiles.
* has been in continuous development since 2007 and is used by several projects
compiler and cross compiles many free libraries. This repository is derived from
[MXE](https://github.com/mxe/mxe), and extended for compiling the following tools:
- [libiosig/biosig-tools](http://biosig.sourceforge.net/)
- [sigviewer](https://github.com/cbrnr/sigviewer)
- [stimfit](https://github.com/neurodroid/stimfit)-lite (without python)
- [edfbrowswer](https://www.teuniz.net/edfbrowser/)
It compiles also required prerequisites, and many other packages.
## Supported Toolchains
@ -32,7 +24,7 @@ various target platforms, which:
- `x86_64-w64-mingw32`
* Packages:
- static
- shared
- (shared - not tested here, use https://github.com/mxe instead)
* GCC Threading Libraries (`winpthreads` is always available):
- [posix](https://github.com/mxe/mxe/pull/958) [(default)](https://github.com/mxe/mxe/issues/2258)
- win32 (supported by limited amount packages)

View File

@ -4,8 +4,8 @@ PKG := apr-util
$(PKG)_WEBSITE := https://apr.apache.org/
$(PKG)_DESCR := APR-util
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.5.4
$(PKG)_CHECKSUM := 976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19
$(PKG)_VERSION := 1.6.0
$(PKG)_CHECKSUM := 483ef4d59e6ac9a36c7d3fd87ad7b9db7ad8ae29c06b9dd8ff22dda1cc416389
$(PKG)_SUBDIR := apr-util-$($(PKG)_VERSION)
$(PKG)_FILE := apr-util-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://archive.apache.org/dist/apr/$($(PKG)_FILE)

View File

@ -4,8 +4,8 @@ PKG := apr
$(PKG)_WEBSITE := https://apr.apache.org/
$(PKG)_DESCR := APR
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.5.2
$(PKG)_CHECKSUM := 1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb
$(PKG)_VERSION := 1.6.2
$(PKG)_CHECKSUM := 4fc24506c968c5faf57614f5d0aebe0e9d0b90afa47a883e1a1ca94f15f4a42e
$(PKG)_SUBDIR := apr-$($(PKG)_VERSION)
$(PKG)_FILE := apr-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://archive.apache.org/dist/apr/$($(PKG)_FILE)

38
src/arpack.mk Normal file
View File

@ -0,0 +1,38 @@
# This file is part of MXE.
# See index.html for further information.
PKG := arpack
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.5.0
$(PKG)_CHECKSUM := 50f7a3e3aec2e08e732a487919262238f8504c3ef927246ec3495617dde81239
$(PKG)_SUBDIR := $(PKG)-ng-$($(PKG)_VERSION)
$(PKG)_FILE := arpack-ng_$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/opencollab/arpack-ng/archive/$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := lapack blas
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://github.com/opencollab/arpack-ng/releases' | \
$(SED) -n 's,.*href="/opencollab/arpack-ng/archive/\([0-9][^"]*\)\.tar.*,\1,p' | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && '$(1)/bootstrap'
mkdir '$(1)/.build'
cd '$(1)/.build' && '$(1)/configure' \
--host='$(TARGET)' \
--build="`config.guess`" \
--enable-static --disable-shared \
--prefix='$(PREFIX)/$(TARGET)'
$(MAKE) -C '$(1)/.build' -j '$(JOBS)'
$(MAKE) -C '$(1)/.build' install
if [ $(BUILD_SHARED) = yes ]; then \
$(MAKE_SHARED_FROM_STATIC) --ar '$(TARGET)-ar' --ld '$(TARGET)-gfortran' '$(PREFIX)/$(TARGET)/lib/libarpack.a' -llapack -lblas; \
$(INSTALL) -d '$(PREFIX)/$(TARGET)/bin'; \
$(INSTALL) -m755 '$(PREFIX)/$(TARGET)/lib/libarpack.dll.a' '$(PREFIX)/$(TARGET)/lib/libarpack.dll.a'; \
$(INSTALL) -m755 '$(PREFIX)/$(TARGET)/lib/libarpack.dll' '$(PREFIX)/$(TARGET)/bin/libarpack.dll'; \
rm -f '$(PREFIX)/$(TARGET)/lib/libarpack.dll'; \
rm -f '$(PREFIX)/$(TARGET)/lib/libarpack.la'; \
fi
endef

37
src/automoc4.mk Normal file
View File

@ -0,0 +1,37 @@
# This file is part of MXE.
# See index.html for further information.
# Qwt - Qt widgets for technical applications
PKG := automoc4
$(PKG)_VERSION := 0.9.88
$(PKG)_CHECKSUM := 234116f4c05ae21d828594d652b4c4a052ef75727e2d8a4f3a4fb605de9e4c49
#d864c3dda99d8b5f625b9267acfa1d88ff617e3a
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_WEBSITE := http://www.kde.org/
$(PKG)_URL := http://download.kde.org/stable/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc qt
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://download.kde.org/stable/automoc4/' | \
$(SED) -n 's,.*a href="\([0-9.]*\)/".*,\1,p' | \
head -1
endef
define $(PKG)_BUILD
mkdir '$(1)'/build
cd '$(1)'/build && cmake \
-DCMAKE_INSTALL_PREFIX=$(PREFIX)/$(TARGET)/qt/ \
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
..
$(MAKE) -C '$(1)/build' -j $(JOBS) VERBOSE=1
# $(MAKE) -C '$(1)/build' -j $(JOBS) install
endef
$(PKG)_BUILD_i686-pc-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =
$(PKG)_BUILD_x86_64-w64-mingw32 =

View File

@ -3,8 +3,8 @@
PKG := binutils
$(PKG)_WEBSITE := https://www.gnu.org/software/binutils/
$(PKG)_DESCR := GNU Binutils
$(PKG)_VERSION := 2.28
$(PKG)_CHECKSUM := 6297433ee120b11b4b0a1c8f3512d7d73501753142ab9e2daa13c5a3edd32a72
$(PKG)_VERSION := 2.29
$(PKG)_CHECKSUM := 29a29549869039aad75fdf507ac30366da5ad0b974fbff4a8e7148dbf4f40ebf
$(PKG)_SUBDIR := binutils-$($(PKG)_VERSION)
$(PKG)_FILE := binutils-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := https://ftp.gnu.org/gnu/binutils/$($(PKG)_FILE)

130
src/biosig.mk Normal file
View File

@ -0,0 +1,130 @@
# This file is part of MXE.
# See index.html for further information.
PKG := biosig
$(PKG)_WEBSITE := http://biosig.sf.net/
$(PKG)_DESCR := biosig
$(PKG)_VERSION := 2.0.4
$(PKG)_CHECKSUM := 2b2b5d0cdb7a886b7c390d000bb9210b9b6e03f790c6443730dab96496926928
$(PKG)_SUBDIR := biosig-$($(PKG)_VERSION)
$(PKG)_FILE := biosig-$($(PKG)_VERSION).src.tar.gz
$(PKG)_URL := https://sourceforge.net/projects/biosig/files/BioSig%20for%20C_C%2B%2B/src/$($(PKG)_FILE)
$(PKG)_DEPS := cc suitesparse zlib libiberty libiconv libb64 lapack dcmtk tinyxml
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://biosig.sourceforge.io/download.html' | \
$(SED) -n 's_.*>v\([0-9]\.[0-9]\.[0-9]\)<.*_\1_p' | \
head -1
endef
define $(PKG)_BUILD_PRE
cd '$(1)' && autoreconf -fi
cd '$(1)' && ./configure \
ac_cv_func_malloc_0_nonnull=yes \
ac_cv_func_realloc_0_nonnull=yes \
$(MXE_CONFIGURE_OPTS)
# make sure NDEBUG is defined
$(SED) -i '/NDEBUG/ s|#||g' '$(1)'/biosig4c++/Makefile
TARGET='$(TARGET)' $(MAKE) -C '$(1)' clean
TARGET='$(TARGET)' $(MAKE) -C '$(1)' -j '$(JOBS)' lib tools
endef
define $(PKG)_BUILD_POST
$(INSTALL) -m644 '$(1)/biosig4c++/biosig.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/biosig4c++/biosig2.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/biosig4c++/gdftime.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/biosig4c++/biosig-dev.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.def' '$(PREFIX)/$(TARGET)/lib/'
# $(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.dll.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.dll' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m644 '$(1)/biosig4c++/libgdf.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/biosig4c++/libgdf.def' '$(PREFIX)/$(TARGET)/lib/'
# $(INSTALL) -m644 '$(1)/biosig4c++/libgdf.dll.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/biosig4c++/libgdf.dll' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m644 '$(1)/biosig4c++/physicalunits.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/biosig4c++/libphysicalunits.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/biosig4c++/libphysicalunits.def' '$(PREFIX)/$(TARGET)/lib/'
# $(INSTALL) -m644 '$(1)/biosig4c++/libphysicalunits.dll.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/biosig4c++/libphysicalunits.dll' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
$(INSTALL) -m644 '$(1)/biosig4c++/save2gdf.exe' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m644 '$(1)/biosig4c++/biosig_fhir.exe' '$(PREFIX)/$(TARGET)/bin/'
### make release file
rm -f $(PREFIX)/$($(PKG)_SUBDIR).$(TARGET).zip
cd $(PREFIX)/$(TARGET) && zip $(PREFIX)/$($(PKG)_SUBDIR).$(TARGET).zip \
include/biosig.h include/biosig-dev.h include/biosig2.h include/gdftime.h \
lib/libbiosig.a lib/libbiosig.def bin/libbiosig.dll lib/libbiosig.dll.a \
lib/libgdf.a lib/libgdf.def bin/libgdf.dll lib/libgdf.dll.a \
lib/libz.a lib/libcholmod.a lib/liblapack.a lib/libiconv.a lib/libiberty.a \
include/libiberty/*.h include/iconv.h \
include/physicalunits.h \
lib/libphysicalunits.a lib/libphysicalunits.def bin/libphysicalunits.dll lib/libphysicalunits.dll.a
mkdir -p $(PREFIX)/release/$(TARGET)/include/
cd $(PREFIX)/$(TARGET) && cp -r \
include/biosig.h include/biosig-dev.h include/biosig2.h include/gdftime.h \
include/libiberty include/iconv.h \
include/physicalunits.h \
$(PREFIX)/release/$(TARGET)/include/
mkdir -p $(PREFIX)/release/$(TARGET)/lib/
cd $(PREFIX)/$(TARGET) && cp -r \
lib/libbiosig.a lib/libbiosig.def bin/libbiosig.dll \
lib/libgdf.a lib/libgdf.def bin/libgdf.dll \
lib/libz.a lib/libcholmod.a lib/liblapack.a lib/libiconv.a lib/libiberty.a \
lib/libphysicalunits.a lib/libphysicalunits.def bin/libphysicalunits.dll \
$(PREFIX)/release/$(TARGET)/lib/
-cd $(PREFIX)/$(TARGET) && cp -r \
lib/libbiosig.dll.a \
lib/libgdf.dll.a \
lib/libphysicalunits.dll.a \
$(PREFIX)/release/$(TARGET)/lib/
mkdir -p $(PREFIX)/release/$(TARGET)/bin/
-cp $(PREFIX)/$(TARGET)/bin/save2gdf.exe $(PREFIX)/release/$(TARGET)/bin/
mkdir -p $(PREFIX)/release/matlab/
-cp $(1)/biosig4c++/mex/mex* $(PREFIX)/release/matlab/
cd '$(1)/biosig4c++/win32' && zip $(PREFIX)/$($(PKG)_SUBDIR).$(TARGET).zip *.bat README
#exit -1
### these cause problems when compiling stimfit
#rm -rf '$(PREFIX)/$(TARGET)/lib/libphysicalunits.dll.a' \
# '$(PREFIX)/$(TARGET)/lib/libbiosig.dll.a' \
# '$(PREFIX)/$(TARGET)/lib/libgdf.dll.a'
endef
define $(PKG)_BUILD_i686-pc-mingw32
$($(PKG)_BUILD_PRE)
#HOME=/home/as TARGET=$(TARGET) $(MAKE) -C '$(1)' mexw32
$($(PKG)_BUILD_POST)
endef
define $(PKG)_BUILD_i686-w64-mingw32
$($(PKG)_BUILD_PRE)
#TARGET=$(TARGET) $(MAKE) -C '$(1)' mexw32
$($(PKG)_BUILD_POST)
endef
define $(PKG)_BUILD_x86_64-w64-mingw32
$($(PKG)_BUILD_PRE)
#TARGET=$(TARGET) $(MAKE) -C '$(1)' mexw64
$($(PKG)_BUILD_POST)
endef

View File

@ -8,6 +8,12 @@ $(PKG)_CHECKSUM := 75d62738b13d2836cd56647581b6e574d4005a6e077ddefa5d727d445d649
$(PKG)_GH_CONF := erincatto/Box2D/tags, v
$(PKG)_DEPS := cc
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://github.com/erincatto/Box2D/releases' | \
$(SED) -n '/a href/ s_.*releases/tag/v\([0-9.]*\)".*_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
cd '$(BUILD_DIR)' && $(TARGET)-cmake \
-DBOX2D_INSTALL=ON \

View File

@ -88,3 +88,5 @@ define $(PKG)_BUILD
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-cegui.exe' \
`$(TARGET)-pkg-config --cflags --libs CEGUI-0-OPENGL`
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =

View File

@ -4,8 +4,8 @@ PKG := db
$(PKG)_WEBSITE := https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html
$(PKG)_DESCR := Oracle Berkeley DB
$(PKG)_IGNORE :=
$(PKG)_VERSION := 6.1.26
$(PKG)_CHECKSUM := dd1417af5443f326ee3998e40986c3c60e2a7cfb5bfa25177ef7cadb2afb13a6
$(PKG)_VERSION := 6.2.32
$(PKG)_CHECKSUM := a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb
$(PKG)_SUBDIR := db-$($(PKG)_VERSION)
$(PKG)_FILE := db-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://download.oracle.com/berkeley-db/$($(PKG)_FILE)

27
src/dxflib.mk Normal file
View File

@ -0,0 +1,27 @@
# This file is part of MXE.
# See index.html for further information.
PKG := dxflib
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2.5.0.0
$(PKG)_CHECKSUM := 20ad9991eec6b0f7a3cc7c500c044481a32110cdc01b65efa7b20d5ff9caefa9
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)-1.src
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://qcad.org/archives/$(PKG)/$(PKG)-$($(PKG)_VERSION)-1.src.tar.gz
$(PKG)_DEPS := gcc qt5
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://qcad.org/en/dxflib-downloads' | \
$(SED) -n '/a href/ s,.*/archives/dxflib/dxflib-\([0-9.]*\)-src.tar.gz.*,\1,g;' | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && $(PREFIX)/$(TARGET)/qt5/bin/qmake
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
endef

27
src/edfbrowser.mk Normal file
View File

@ -0,0 +1,27 @@
# This file is part of MXE.
# See index.html for further information.
PKG := edfbrowser
$(PKG)_WEBSITE := https://www.teuniz.net/edfbrowser/
$(PKG)_DESCR := EDFbrowser
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.75
$(PKG)_CHECKSUM := 158d147d255ec19d7f206d929170ef099017ba16239f6960c1926feec75c813c
$(PKG)_SUBDIR := edfbrowser_175_source
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz
$(PKG)_URL := https://www.teuniz.net/edfbrowser/$($(PKG)_FILE)
https://gitlab.com/Teuniz/EDFbrowser/releases
$(PKG)_GH_CONF := Teuniz/EDFbrowser/releases v
$(PKG)_QT_DIR := qt5
$(PKG)_DEPS := cc qtbase
define $(PKG)_BUILD
cd '$(1)' && $(PREFIX)/$(TARGET)/$($(PKG)_QT_DIR)/bin/qmake
$(MAKE) -C '$(1)'
$(INSTALL) '$(1)/release/edfbrowser.exe' '$(PREFIX)/$(TARGET)/bin/'
endef

View File

@ -3,8 +3,8 @@
PKG := file
$(PKG)_WEBSITE := https://www.darwinsys.com/file/
$(PKG)_IGNORE :=
$(PKG)_VERSION := 5.24
$(PKG)_CHECKSUM := 802cb3de2e49e88ef97cdcb52cd507a0f25458112752e398445cea102bc750ce
$(PKG)_VERSION := 5.32
$(PKG)_CHECKSUM := 8639dc4d1b21e232285cd483604afc4a6ee810710e00e579dbe9591681722b50
$(PKG)_SUBDIR := file-$($(PKG)_VERSION)
$(PKG)_FILE := file-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://astron.com/pub/file/$($(PKG)_FILE)

28
src/freecad.mk Normal file
View File

@ -0,0 +1,28 @@
# This file is part of MXE.
# See index.html for further information.
PKG := freecad
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.13.1830
$(PKG)_CHECKSUM := 82d58b91a28a4cd5d138666d2ed0f36bf18c0255
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://downloads.sourceforge.net/project/free-cad/FreeCAD%20Source/freecad-0.13.1830.tar.gz
https://github.com/$(PKG)/$(PKG)/archive/$($(PKG)_FILE)
$(PKG)_DEPS := gcc boost eigen freetype python qt
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/projects/free-cad/?source=dlp' | \
$(SED) 's,.*freecad-\([0-9\.]\).tar.gz .*,\1,g;' | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && $(PREFIX)/$(TARGET)/qt5/bin/qmake
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
endef

36
src/gawk.mk Normal file
View File

@ -0,0 +1,36 @@
# This file is part of MXE.
# See index.html for further information.
PKG := gawk
$(PKG)_IGNORE :=
$(PKG)_VERSION := 4.1.4
$(PKG)_CHECKSUM := 53e184e2d0f90def9207860531802456322be091c7b48f23fdc79cda65adc266
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := gawk-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnu.org/gnu/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(WGET) -q -O- "https://ftp.gnu.org/gnu/gawk/?C=M;O=D" | \
$(SED) -n 's,.*a href="gawk-\([0-9.]*\).tar.gz.*,\1,p' | \
head -1
endef
define $(PKG)_BUILD
mkdir '$(1).build'
cd '$(1).build' && '$(1)/configure' \
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
--prefix='$(PREFIX)/$(TARGET)'
$(MAKE) -C '$(1).build' -j '$(JOBS)'
$(INSTALL) '$(1).build'/gawk '$(PREFIX)/$(TARGET)/bin/gawk.exe'
endef
$(PKG)_BUILD_i686-pc-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =
$(PKG)_BUILD_x86_64-w64-mingw32 =

30
src/gcab.mk Normal file
View File

@ -0,0 +1,30 @@
# This file is part of MXE.
# See index.html for further information.
PKG := gcab
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.4
$(PKG)_CHECKSUM := d81dfe35125e611e3a94c0d4def37ebf62b9187c
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/$(PKG)/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
$(PKG)_DEPS := glib zlib
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://git.gnome.org/browse/$(PKG)/refs/tags' | \
$(SED) -n "s,.*tag/?id=\([0-9]\+\.[0-9]*[02468]\.[^']*\).*,\1,p" | \
head -1
endef
define $(PKG)_BUILD
mkdir '$(1)/.build'
cd '$(1)/.build' && '$(1)/configure' \
--prefix='$(PREFIX)/$(TARGET)' \
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
--enable-static
$(MAKE) -C '$(1)/.build' -j '$(JOBS)'
$(MAKE) -C '$(1)/.build' -j 1 install
endef

53
src/gdcm.mk Normal file
View File

@ -0,0 +1,53 @@
# This file is part of MXE.
# See index.html for further information.
PKG := gdcm
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2.8.2
$(PKG)_CHECKSUM := 5462c7859e01e5d5d0fb86a19a6c775484a6c44abd8545ea71180d4c41bf0f89
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)%202.x/GDCM%20$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := expat zlib
$(PKG)_CMAKE_OPTS :=
ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
ifeq ($(MXE_SYSTEM),mingw)
$(PKG)_CMAKE_OPTS := -G "MSYS Makefiles"
endif
endif
define $(PKG)_UPDATE
wget -q -O- 'https://sourceforge.net/projects/gdcm/files/gdcm%202.x/' | \
sed -n 's_.*Download gdcm-\([0-9\.]*\)\.tar\.gz.*_\1_ip'
endef
ifeq ($(MXE_SYSTEM),msvc)
define $(PKG)_BUILD
mkdir '$(1)/../.build'
cd '$(1)/../.build' && cmake \
-G "NMake Makefiles" \
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
-DGDCM_BUILD_SHARED_LIBS:BOOL=TRUE \
-DGDCM_USE_SYSTEM_ZLIB:BOOL=TRUE \
-DGDCM_USE_SYSTEM_EXPAT:BOOL=TRUE \
-DGDCM_BUILD_DOCBOOK_MANPAGES:BOOL=OFF \
../$($(PKG)_SUBDIR)
cd '$(1)/../.build' && \
env -u MAKE -u MAKEFLAGS nmake && \
env -u MAKE -u MAKEFLAGS nmake install
endef
else
define $(PKG)_BUILD
mkdir '$(1)/../.build'
cd '$(1)/../.build' && cmake \
$($(PKG)_CMAKE_OPTS) \
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
-DGDCM_BUILD_SHARED_LIBS:BOOL=TRUE \
-DGDCM_BUILD_DOCBOOK_MANPAGES:BOOL=OFF \
../$($(PKG)_SUBDIR)
make -C $(1)/../.build -j $(JOBS)
make -C $(1)/../.build -j 1 install
endef
endif

View File

@ -155,56 +155,6 @@ Date: Fri, 15 Jun 2012 15:29:06 +0200
Subject: [PATCH 05/10] Link with dnsapi
diff --git a/gio-2.0.pc.in b/gio-2.0.pc.in
index 1111111..2222222 100644
--- a/gio-2.0.pc.in
+++ b/gio-2.0.pc.in
@@ -13,6 +13,6 @@ Description: glib I/O library
Version: @VERSION@
Requires: glib-2.0 gobject-2.0
Requires.private: gmodule-no-export-2.0
-Libs: -L${libdir} -lgio-2.0
+Libs: -L${libdir} -lgio-2.0 -ldnsapi -liphlpapi
Libs.private: @ZLIB_LIBS@ @NETWORK_LIBS@ @SELINUX_LIBS@ @COCOA_LIBS@ @CARBON_LIBS@
Cflags:
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Hans Petter Jansson <hpj@cl.no>
Date: Fri, 15 Jun 2012 15:29:38 +0200
Subject: [PATCH 06/10] Ensure globals are initialized even when DllMain is not
being run
diff --git a/glib/gmain.c b/glib/gmain.c
index 1111111..2222222 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -2657,12 +2657,15 @@ g_get_real_time (void)
#if defined (G_OS_WIN32)
static ULONGLONG (*g_GetTickCount64) (void) = NULL;
static guint32 g_win32_tick_epoch = 0;
+static gboolean g_win32_clock_is_initialized;
void
g_clock_win32_init (void)
{
HMODULE kernel32;
+ g_win32_clock_is_initialized = TRUE;
+
g_GetTickCount64 = NULL;
kernel32 = GetModuleHandle ("KERNEL32.DLL");
if (kernel32 != NULL)
@@ -2721,6 +2724,9 @@ g_get_monotonic_time (void)
* timeBeginPeriod() to increase it as much as they want
*/
+ if (!g_win32_clock_is_initialized)
+ g_clock_win32_init ();
+
if (g_GetTickCount64 != NULL)
{
guint32 ticks_as_32bit;
diff --git a/glib/gthread-win32.c b/glib/gthread-win32.c
index 1111111..2222222 100644
--- a/glib/gthread-win32.c
@ -602,67 +552,6 @@ Date: Mon, 26 Feb 2018 16:09:53 +1100
Subject: [PATCH 09/10] darwin: disable g_cocoa_notification_backend
diff --git a/gio/Makefile.am b/gio/Makefile.am
index 1111111..2222222 100644
--- a/gio/Makefile.am
+++ b/gio/Makefile.am
@@ -279,10 +279,6 @@ unix_sources = \
appinfo_sources += $(unix_appinfo_sources)
-if OS_COCOA
-unix_sources += gcocoanotificationbackend.c
-endif
-
giounixincludedir=$(includedir)/gio-unix-2.0/gio
giounixinclude_HEADERS = \
gdesktopappinfo.h \
diff --git a/gio/giomodule.c b/gio/giomodule.c
index 1111111..2222222 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
@@ -918,9 +918,6 @@ extern GType g_proxy_resolver_portal_get_type (void);
extern GType g_network_monitor_portal_get_type (void);
#endif
-#ifdef HAVE_COCOA
-extern GType g_cocoa_notification_backend_get_type (void);
-#endif
#ifdef G_PLATFORM_WIN32
@@ -1117,9 +1114,6 @@ _g_io_modules_ensure_loaded (void)
g_type_ensure (g_network_monitor_portal_get_type ());
g_type_ensure (g_proxy_resolver_portal_get_type ());
#endif
-#ifdef HAVE_COCOA
- g_type_ensure (g_cocoa_notification_backend_get_type ());
-#endif
#ifdef G_OS_WIN32
g_type_ensure (_g_winhttp_vfs_get_type ());
#endif
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ernestas Kulik <ekulik@redhat.com>
Date: Tue, 29 Jan 2019 09:50:46 +0100
Subject: [PATCH 10/10] gdbus: Avoid printing null strings
This mostly affects the 2.56 branch, but, given that GCC 9 is being
stricter about passing null string pointers to printf-like functions, it
might make sense to proactively fix such calls.
gdbusauth.c: In function '_g_dbus_auth_run_server':
gdbusauth.c:1302:11: error: '%s' directive argument is null
[-Werror=format-overflow=]
1302 | debug_print ("SERVER: WaitingForBegin, read '%s'",
line);
|
gdbusmessage.c: In function g_dbus_message_to_blob:
gdbusmessage.c:2730:30: error: %s directive argument is null [-Werror=format-overflow=]
2730 | tupled_signature_str = g_strdup_printf ("(%s)", signature_str);
|
diff --git a/gio/gdbusauth.c b/gio/gdbusauth.c
index 1111111..2222222 100644
--- a/gio/gdbusauth.c

View File

@ -4,8 +4,8 @@ PKG := glib
$(PKG)_WEBSITE := https://gtk.org/
$(PKG)_DESCR := GLib
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2.50.2
$(PKG)_CHECKSUM := be68737c1f268c05493e503b3b654d2b7f43d7d0b8c5556f7e4651b870acfbf5
$(PKG)_VERSION := 2.54.0
$(PKG)_CHECKSUM := fe22998ff0394ec31e6e5511c379b74011bee61a4421bca7fcab223dfbe0fc6a
$(PKG)_SUBDIR := glib-$($(PKG)_VERSION)
$(PKG)_FILE := glib-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := https://download.gnome.org/sources/glib/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@ -88,7 +88,7 @@ endef
define $(PKG)_BUILD
# other packages expect glib-tools in $(TARGET)/bin
rm -f '$(PREFIX)/$(TARGET)/bin/glib-*'
rm -f '$(PREFIX)/$(TARGET)/bin/glib-*'
ln -sf '$(PREFIX)/$(BUILD)/bin/glib-genmarshal' '$(PREFIX)/$(TARGET)/bin/'
ln -sf '$(PREFIX)/$(BUILD)/bin/glib-compile-schemas' '$(PREFIX)/$(TARGET)/bin/'
ln -sf '$(PREFIX)/$(BUILD)/bin/glib-compile-resources' '$(PREFIX)/$(TARGET)/bin/'

View File

@ -4,7 +4,7 @@ PKG := glibmm
$(PKG)_WEBSITE := https://www.gtkmm.org/
$(PKG)_DESCR := GLibmm
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2.42.0
$(PKG)_VERSION := 2.54.1
$(PKG)_CHECKSUM := 985083d97378d234da27a7243587cc0d186897a4b2d3c1286f794089be1a3397
$(PKG)_SUBDIR := glibmm-$($(PKG)_VERSION)
$(PKG)_FILE := glibmm-$($(PKG)_VERSION).tar.xz

138
src/gnuplot-1-fixes.patch Normal file
View File

@ -0,0 +1,138 @@
--- a/config/mingw/Makefile 2012-11-30 16:52:35.622821917 -0500
+++ b/config/mingw/Makefile 2012-11-30 16:52:23.071255685 -0500
@@ -27,7 +27,7 @@
# Use more modern HTML help instead of no longer supported Windows help system
# Please update the HHWPATH below if necessary.
-HTML_HELP=1
+#HTML_HELP=1
# GIF, PNG, JPEG device drivers
# Requires gd library. There are two possibilities how to configure these
@@ -127,29 +127,29 @@
# -mpentiumpro means optimize for Pentium II and Pro procesors
#CFLAGS +=
-ifdef HTML_HELP
-
-# To compile the .chm file you need the Microsoft HTML Help 1.4 SDK
-# It can be obtained here:
-# http://go.microsoft.com/fwlink/?LinkId=154968
-# We need to explicitly set the correct path here since we also need
-# adjust the include and linrary paths.
-HHWPATH = "$(PROGRAMFILES)/HTML Help Workshop/"
-HHC = $(HHWPATH)hhc
+# ifdef HTML_HELP
-else
+# # To compile the .chm file you need the Microsoft HTML Help 1.4 SDK
+# # It can be obtained here:
+# # http://go.microsoft.com/fwlink/?LinkId=154968
+# # We need to explicitly set the correct path here since we also need
+# # adjust the include and linrary paths.
+# HHWPATH = "$(PROGRAMFILES)/HTML Help Workshop/"
+# HHC = $(HHWPATH)hhc
+
+# else
+
+# # To compile the .hlp file you need hcw either out of Microsoft SDK or MS Help
+# # Workshop. The latter can be obtained from either of
+# # ftp://ftp.microsoft.com/softlib/mslfiles/hcwsetup.exe
+# # http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=34D35502-4DE9-4676-952C-34CC7F64F098
+# # Put the path to hcw here unless it is already in PATH:
+# HCWPATH = "$(PROGRAMFILES)/Help\ Workshop/"
+# HCW = $(HCWPATH)hcw
+# # Switches are for HCW 4.03:
+# HCWFLAG =
-# To compile the .hlp file you need hcw either out of Microsoft SDK or MS Help
-# Workshop. The latter can be obtained from either of
-# ftp://ftp.microsoft.com/softlib/mslfiles/hcwsetup.exe
-# http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=34D35502-4DE9-4676-952C-34CC7F64F098
-# Put the path to hcw here unless it is already in PATH:
-HCWPATH = "$(PROGRAMFILES)/Help\ Workshop/"
-HCW = $(HCWPATH)hcw
-# Switches are for HCW 4.03:
-HCWFLAG =
-
-endif
+# endif
# Choose which windres/rc do you want to use (GNU windres or MS RC):
GNU_RC = 1
@@ -397,7 +397,7 @@
RES2COFF = res2coff -i wgnuplot.res -o wgplt_res.$(O)
endif
-default: $(TARGET) $(MENUFILE) support
+default: $(TARGET) $(MENUFILE) # support
console:
$(MAKE) TARGET=gnuplot.exe gnuplot.exe
@@ -453,7 +453,7 @@
LDFLAGS2 += -L$(HHWPATH)lib
endif
-$(TARGET): $(OBJS) $(WINOBJS) wgplt_res.$(O) texticon.ico grpicon.ico
+$(TARGET): $(OBJS) $(WINOBJS) wgplt_res.$(O) TEXTICON.ico GRPICON.ico
$(LDX) $(LDFLAGS) $(LDFLAGS2) -o $@ $(OBJS) $(WINOBJS) wgplt_res.$(O) $(LDLIBS)\
$(TERMLIBS) $(WX_LIBS) $(PANGOCAIRO_LIBS)
@@ -462,7 +462,7 @@
# rules
-wgplt_res.$(O): $(W)/wgnuplot.rc $(W)/wgnuplib.rc $(W)/wresourc.h texticon.ico grpicon.ico
+wgplt_res.$(O): $(W)/wgnuplot.rc $(W)/wgnuplib.rc $(W)/wresourc.h TEXTICON.ico GRPICON.ico
$(RC) $(RCFLAGS) $< $(RCOUT)
$(RES2COFF)
@@ -521,13 +521,13 @@
$(CC) -c $(CFLAGS) -o $@ $<
# extract icons from wgnuplot.rc
-texticon.ico: grpicon.ico
+TEXTICON.ico: GRPICON.ico
-grpicon.ico: geticon.exe $(W)/wgnuplot.rc
+GRPICON.ico: geticon $(W)/wgnuplot.rc
./geticon $(W)/wgnuplot.rc
-geticon.exe: $(W)/geticon.c
- $(LD) $(LDFLAGS) -o $@ $<
+geticon: $(W)/geticon.c
+ gcc -o $@ $<
ifdef HTML_HELP
# convert gnuplot.doc to windows/wgnuplot.html
@@ -730,7 +730,7 @@
$(RM) config.h wgnuplot.map wgnuplot.res $(W)/gnuplot.rtf
$(RM) *.$(O) *.po *.o *.co
$(RM) doc2*.exe $(W)/wgnuplib.res wgnuplib.map wgnuplot.lib
- $(RM) $(M)bf_test.exe *.ico geticon.exe allterm.h allterm.c
+ $(RM) $(M)bf_test.exe *.ico geticon allterm.h allterm.c
$(RM) *.aux *.log *.dvi *.toc
$(RM) gnuplot.tex gnuplot-figures.tex pdffigures.tex figure_*.pdf
$(RM) titlepag.tex toc_entr.sty VERSION
@@ -829,7 +829,7 @@
installer:
$(MAKE) DESTDIR=./dist install
- cp -p grpicon.ico ./dist/bin/
+ cp -p GRPICON.ico ./dist/bin/
cp -p $(TOP)/win/*.iss ./dist
(cd ./dist; $(ISCC) gnuplot.iss)
mv ./dist/gp*-setup.exe .
--- a/src/win/wgnuplot.rc 2011-05-13 14:32:22.000000000 -0400
+++ b/src/win/wgnuplot.rc 2012-11-30 16:53:59.407926642 -0500
@@ -15,8 +15,8 @@
* rc -30 -k -dMSRC win\wgnuplot.rc wgnuplot.exe
*/
-GRPICON ICON "grpicon.ico"
-TEXTICON ICON "texticon.ico"
+GRPICON ICON "GRPICON.ico"
+TEXTICON ICON "TEXTICON.ico"
#else
/* using Borland BRC.EXE */

32
src/gnuplot.mk Normal file
View File

@ -0,0 +1,32 @@
# This file is part of MXE.
# See index.html for further information.
PKG := gnuplot
$(PKG)_IGNORE :=
$(PKG)_VERSION := 5.2.0
$(PKG)_CHECKSUM := 7dfe6425a1a6b9349b1fb42dae46b2e52833b13e807a78a613024d6a99541e43
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://sourceforge.net/projects/gnuplot/files/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc libiconv
define $(PKG)_UPDATE
$(WGET) -q -O- http://www.gnuplot.info/index.html | \
$(SED) -n 's_.*Release.*announce[_\.]([0-9]\.[0-9].\[0-9]).*gnuplot.*_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
make -C '$(1)/config/mingw' CC='$(TARGET)-gcc' CXX='$(TARGET)-g++' RC='$(TARGET)-windres' -j '$(JOBS)' TARGET=gnuplot.exe gnuplot.exe
make -C '$(1)/config/mingw' CC='$(TARGET)-gcc' CXX='$(TARGET)-g++' RC='$(TARGET)-windres' -j '$(JOBS)' TARGET=wgnuplot.exe wgnuplot.exe
make -C '$(1)/config/mingw' CC='$(TARGET)-gcc' CXX='$(TARGET)-g++' RC='$(TARGET)-windres' -j '$(JOBS)' wgnuplot.mnu
$(INSTALL) -d '$(PREFIX)/$(TARGET)/bin'
$(INSTALL) -m755 '$(1)/config/mingw/gnuplot.exe' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m755 '$(1)/config/mingw/wgnuplot.exe' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m644 '$(1)/src/win/wgnuplot.mnu' '$(PREFIX)/$(TARGET)/bin/'
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =

View File

@ -1,8 +1,7 @@
# This file is part of MXE. See LICENSE.md for licensing information.
# This file is part of MXE.
# See index.html for further information.
PKG := graphicsmagick
$(PKG)_WEBSITE := http://www.graphicsmagick.org/
$(PKG)_DESCR := GraphicsMagick
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.3.33
$(PKG)_CHECKSUM := ae86f749815d3039ac431caf9fc4b65acf32bfd140d1817644d3463b6ba9d51c
@ -42,6 +41,7 @@ define $(PKG)_BUILD
--with-xml \
--with-zlib \
--without-x \
--with-quantum-depth=16 \
ac_cv_prog_xml2_config='$(PREFIX)/$(TARGET)/bin/xml2-config' \
ac_cv_path_xml2_config='$(PREFIX)/$(TARGET)/bin/xml2-config' \
LIBS='-lgomp -fopenmp' \
@ -49,8 +49,7 @@ define $(PKG)_BUILD
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' bin_PROGRAMS=
$(MAKE) -C '$(BUILD_DIR)' -j 1 install bin_PROGRAMS=
'$(TARGET)-g++' \
-W -Wall -Werror -pedantic -std=gnu++0x \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-graphicsmagick.exe' \
`'$(TARGET)-pkg-config' GraphicsMagick++ --cflags --libs` -llzma
if [ "$(ENABLE_DEP_DOCS)" == "no" ]; then \
rm -rf "$(3)$(PREFIX)/$(TARGET)/share/doc/GraphicsMagick"; \
fi
endef

96
src/hdf5-test.c Normal file
View File

@ -0,0 +1,96 @@
/*
* This file is part of MXE.
* See index.html for further information.
*/
#include <stdlib.h>
#include <string.h>
#include <hdf5.h>
#if H5_VERS_MINOR > 6
#include <hdf5_hl.h>
#else
#include <H5TA.h>
#endif
/*
#include <cmath>
*/
#include <sstream>
/*
#include <iostream>
*/
const static unsigned int DATELEN = 128;
const static unsigned int TIMELEN = 128;
const static unsigned int UNITLEN = 16;
int main(int argc, char *argv[])
{
(void)argc;
(void)argv;
typedef struct rt {
int channels;
char date[DATELEN];
char time[TIMELEN];
} rt;
// H5Fis_hdf5("/dev/null");
/*
* Create a new file using H5ACC_TRUNC access,
* default file creation properties, and default file
* access properties.
* Then close the file.
*/
const int NRECORDS = 1;
const int NFIELDS = 3;
char fName[] = "tmp.h5";
/* Calculate the size and the offsets of our struct members in memory */
size_t rt_offset[NFIELDS] = { HOFFSET( rt, channels ),
HOFFSET( rt, date ),
HOFFSET( rt, time )};
rt p_data;
p_data.channels = 1;
strcpy( p_data.date, "1234-Dec-31");
strcpy( p_data.time, "12:34:56");
hid_t file_id = H5Fcreate(fName, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
/* Define field information */
const char *field_names[NFIELDS] = { "channels", "date", "time" };
hid_t field_type[NFIELDS];
/* Initialize the field field_type */
hid_t string_type1 = H5Tcopy( H5T_C_S1 );
hid_t string_type2 = H5Tcopy( H5T_C_S1 );
H5Tset_size( string_type1, strlen(p_data.date));
H5Tset_size( string_type2, strlen(p_data.time));
field_type[0] = H5T_NATIVE_INT;
field_type[1] = string_type1;
field_type[2] = string_type2;
std::ostringstream desc;
desc << "Description of " << fName;
herr_t status = H5TBmake_table( desc.str().c_str(), file_id, "description", (hsize_t)NFIELDS, (hsize_t)NRECORDS, sizeof(rt),
field_names, rt_offset, field_type, 10, NULL, 0, &p_data );
if (status < 0) {
perror("Exception while writing description in stfio::exportHDF5File");
H5Fclose(file_id);
H5close();
exit(-1);
}
H5Fclose(file_id);
return(0);
}

View File

@ -4,8 +4,8 @@ PKG := isl
$(PKG)_WEBSITE := https://isl.gforge.inria.fr/
$(PKG)_DESCR := Integer Set Library
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.15
$(PKG)_CHECKSUM := 8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b
$(PKG)_VERSION := 0.18
$(PKG)_CHECKSUM := 6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := https://isl.gforge.inria.fr/$($(PKG)_FILE)

34
src/itstool.mk Normal file
View File

@ -0,0 +1,34 @@
# This file is part of MXE.
# See index.html for further information.
PKG := itstool
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.2.0
$(PKG)_CHECKSUM := dc6b766c2acec32d3c5d016b0a33e9268d274f63
$(PKG)_SUBDIR := itstool-$($(PKG)_VERSION)
$(PKG)_FILE := itstool-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://files.itstool.org/itstool/$(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_DEPS :=
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://itstool.org/download/' | \
$(SED) -n 's,.*itstool-\([0-9][^"]*\)\.tar.*,\1,p' | \
head -1
endef
ifeq ($(MXE_SYSTEM),msvc)
$(PKG)_PREFIX := $(HOST_PREFIX_NATIVE)
else
$(PKG)_PREFIX := $(HOST_PREFIX)
endif
define $(PKG)_BUILD
cd '$(1)' && ./configure \
--prefix='$(PREFIX)/$(TARGET)' \
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
--enable-static
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef

28
src/libb64.mk Normal file
View File

@ -0,0 +1,28 @@
# This file is part of MXE.
# See index.html for further information.
PKG := libb64
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.2.1
$(PKG)_CHECKSUM := 20106f0ba95cfd9c35a13c71206643e3fb3e46512df3e2efb2fdbf87116314b2
$(PKG)_SUBDIR := libb64-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).zip
$(PKG)_URL := https://sourceforge.net/projects/$(PKG)/files/$(PKG)/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/projects/libb64/files/' | \
$(SED) -n 's_.*libb64-\([0-9]\.[0-9]\.[0-9]\).*zip_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
CC=$(TARGET)-gcc CXX=$(TARGET)-g++ PKG_CONFIG=$(TARGET)-pkg_config AR=$(TARGET)-ar $(MAKE) -C '$(1)/src'
cp -r '$(1)/include/b64' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) '$(1)/src/libb64.a' '$(PREFIX)/$(TARGET)/lib/'
endef

131
src/libbiosig.mk Normal file
View File

@ -0,0 +1,131 @@
# This file is part of MXE.
# See index.html for further information.
PKG := libbiosig
$(PKG)_WEBSITE := http://biosig.sf.net/
$(PKG)_DESCR := libbiosig
$(PKG)_VERSION := 2.0.2
$(PKG)_CHECKSUM := e94e6b4843d17b59eb5f2bb6d8508c63a2ab29ef6a712b8df5e2a6c3e3ed2db8
$(PKG)_SUBDIR := biosig4c++-$($(PKG)_VERSION)
$(PKG)_FILE := biosig4c++-$($(PKG)_VERSION).src.tar.gz
$(PKG)_URL := http://sourceforge.net/projects/biosig/files/BioSig%20for%20C_C%2B%2B/src/$($(PKG)_FILE)
$(PKG)_DEPS := cc suitesparse zlib libiberty libiconv libb64 lapack dcmtk tinyxml
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://biosig.sourceforge.io/download.html' | \
$(GREP) biosig4c | \
$(SED) -n 's_.*>v\([0-9]\.[0-9]\.[0-9]\)<.*_\1_p' | \
$(SORT) -V | \
tail -1
endef
define $(PKG)_BUILD_PRE
echo $(MXE_CONFIGURE_OPTS)
cd '$(1)' && ./configure \
ac_cv_func_malloc_0_nonnull=yes \
ac_cv_func_realloc_0_nonnull=yes \
$(MXE_CONFIGURE_OPTS)
# make sure NDEBUG is defined
$(SED) -i '/NDEBUG/ s|#||g' '$(1)'/Makefile
### disables declaration of sopen from io.h (imported through unistd.h)
$(SED) -i '/ sopen/ s|^/*|//|g' $(PREFIX)/$(TARGET)/include/io.h
TARGET='$(TARGET)' $(MAKE) -C '$(1)' clean
TARGET='$(TARGET)' $(MAKE) -C '$(1)' -j '$(JOBS)' \
libbiosig.a libgdf.a libphysicalunits.a \
libbiosig.dll libgdf.dll libphysicalunits.dll
endef
define $(PKG)_BUILD_POST
$(INSTALL) -m644 '$(1)/biosig.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/biosig2.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/gdftime.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/biosig-dev.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/libbiosig.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libbiosig.def' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libbiosig.dll.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libbiosig.dll' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m644 '$(1)/libgdf.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libgdf.def' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libgdf.dll.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libgdf.dll' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m644 '$(1)/physicalunits.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/libphysicalunits.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libphysicalunits.def' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libphysicalunits.dll.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -m644 '$(1)/libphysicalunits.dll' '$(PREFIX)/$(TARGET)/bin/'
$(INSTALL) -m644 '$(1)/libbiosig.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
### make release file
rm -f $(PREFIX)/$($(PKG)_SUBDIR).$(TARGET).zip
cd $(PREFIX)/$(TARGET) && zip $(PREFIX)/$($(PKG)_SUBDIR).$(TARGET).zip \
include/biosig.h include/biosig-dev.h include/biosig2.h include/gdftime.h \
lib/libbiosig.a lib/libbiosig.def bin/libbiosig.dll lib/libbiosig.dll.a \
lib/libgdf.a lib/libgdf.def bin/libgdf.dll lib/libgdf.dll.a \
lib/libz.a lib/libcholmod.a lib/liblapack.a lib/libiconv.a lib/libiberty.a \
include/libiberty/*.h include/iconv.h \
include/physicalunits.h \
lib/libphysicalunits.a lib/libphysicalunits.def bin/libphysicalunits.dll lib/libphysicalunits.dll.a
mkdir -p $(PREFIX)/release/$(TARGET)/include/
cd $(PREFIX)/$(TARGET) && cp -r \
include/biosig.h include/biosig-dev.h include/biosig2.h include/gdftime.h \
include/libiberty include/iconv.h \
include/physicalunits.h \
$(PREFIX)/release/$(TARGET)/include/
mkdir -p $(PREFIX)/release/$(TARGET)/lib/
cd $(PREFIX)/$(TARGET) && cp -r \
lib/libbiosig.a lib/libbiosig.def bin/libbiosig.dll lib/libbiosig.dll.a \
lib/libgdf.a lib/libgdf.def bin/libgdf.dll lib/libgdf.dll.a \
lib/libz.a lib/libcholmod.a lib/liblapack.a lib/libiconv.a lib/libiberty.a \
lib/libphysicalunits.a lib/libphysicalunits.def bin/libphysicalunits.dll lib/libphysicalunits.dll.a \
$(PREFIX)/release/$(TARGET)/lib/
mkdir -p $(PREFIX)/release/$(TARGET)/bin/
-cp $(PREFIX)/$(TARGET)/bin/save2gdf.exe $(PREFIX)/release/$(TARGET)/bin/
mkdir -p $(PREFIX)/release/matlab/
-cp $(1)/mex/mex* $(PREFIX)/release/matlab/
cd '$(1)/win32' && zip $(PREFIX)/$($(PKG)_SUBDIR).$(TARGET).zip *.bat README
#exit -1
### these cause problems when compiling stimfit
rm -rf '$(PREFIX)/$(TARGET)/lib/libphysicalunits.dll.a' \
'$(PREFIX)/$(TARGET)/lib/libbiosig.dll.a' \
'$(PREFIX)/$(TARGET)/lib/libgdf.dll.a'
endef
define $(PKG)_BUILD_i686-pc-mingw32
$($(PKG)_BUILD_PRE)
#HOME=/home/as TARGET=$(TARGET) $(MAKE) -C '$(1)' mexw32
$($(PKG)_BUILD_POST)
endef
define $(PKG)_BUILD_i686-w64-mingw32
$($(PKG)_BUILD_PRE)
#TARGET=$(TARGET) $(MAKE) -C '$(1)' mexw32
$($(PKG)_BUILD_POST)
endef
define $(PKG)_BUILD_x86_64-w64-mingw32
$($(PKG)_BUILD_PRE)
#TARGET=$(TARGET) $(MAKE) -C '$(1)' mexw64
$($(PKG)_BUILD_POST)
endef

11
src/libemf-1-fix.patch Normal file
View File

@ -0,0 +1,11 @@
--- libEMF-1.0.7/configure.ac 2012-11-07 12:21:39.000000000 +0100
+++ libEMF-1.0.7/configure.ac 2013-04-16 10:35:17.000000000 +0200
@@ -91,7 +91,7 @@
AM_CONDITIONAL(HAVE_THREADS, test $have_threads = yes)
AM_CONDITIONAL(ENABLE_EDITING, test $enable_editing = no)
-AC_CONFIG_FILES([Makefile include/Makefile include/libEMF/Makefile libemf/Makefile \
+AC_CONFIG_FILES([Makefile include/Makefile libemf/Makefile \
src/Makefile doc/Makefile tests/Makefile])
AC_OUTPUT

36
src/libemf.mk Normal file
View File

@ -0,0 +1,36 @@
# This file is part of MXE.
# See index.html for further information.
PKG := libemf
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.0.7
$(PKG)_CHECKSUM := ef61f8d73b6e68785b973cbbe8c449138f40b740
$(PKG)_SUBDIR := libEMF-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).src.tar.gz
$(PKG)_URL := http://sourceforge.net/projects/libemf/files/latest/download
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
wget -q -O- 'http://sourceforge.net/projects/libemf/files/' | \
$(SED) -n 's_.*libEMF-\([0-9]\.[0-9]\.[0-9]\).*tar.gz_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
rm -rf '$(1)/include/libEMF' '$(1)'/include/libEMF/Makefile*
# configure
cd '$(1)' && autoreconf && './configure' \
--host='$(TARGET)' \
--build="`config.guess`" \
--prefix='$(PREFIX)/$(TARGET)' \
--enable-static --disable-shared
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' install
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =

30
src/libgd.mk Normal file
View File

@ -0,0 +1,30 @@
# This file is part of MXE.
# See index.html for further information.
PKG := libgd
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2.1.0
$(PKG)_CHECKSUM := 66c56fc07246b66ba649c83e996fd2085ea2f9e2
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := https://bitbucket.org/libgd/gd-libgd/downloads/$(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_DEPS := fontconfig freetype libpng jpeg pthreads tiff zlib
define $(PKG)_UPDATE
echo 'Warning: Updates are temporarily disabled for package libgd.' >&2;
echo $(gd_VERSION)
endef
define $(PKG)_BUILD
cd '$(1)' && libtoolize && autoreconf -i;
cd '$(1)' && ./configure \
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
--prefix='$(PREFIX)/$(TARGET)' \
PKG_CONFIG_PATH='$(PREFIX)/$(TARGET)/lib/pkgconfig'
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef

View File

@ -4,8 +4,8 @@ PKG := libmikmod
$(PKG)_WEBSITE := http://mikmod.raphnet.net/
$(PKG)_DESCR := libMikMod
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.3.7
$(PKG)_CHECKSUM := 4cf41040a9af99cb960580210ba900c0a519f73ab97b503c780e82428b9bd9a2
$(PKG)_VERSION := 3.3.11.1
$(PKG)_CHECKSUM := ad9d64dfc8f83684876419ea7cd4ff4a41d8bcd8c23ef37ecb3a200a16b46d19
$(PKG)_SUBDIR := libmikmod-$($(PKG)_VERSION)
$(PKG)_FILE := libmikmod-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://$(SOURCEFORGE_MIRROR)/project/mikmod/outdated_versions/libmikmod/$($(PKG)_VERSION)/$($(PKG)_FILE)

32
src/libming.mk Normal file
View File

@ -0,0 +1,32 @@
# This file is part of MXE.
# See index.html for further information.
PKG := libming
$(PKG)_IGNORE :=
$(PKG)_CHECKSUM := e803b3b94a00a361e3415105f26112cf6f7bac81
$(PKG)_SUBDIR := ming-$($(PKG)_VERSION)
$(PKG)_FILE := ming-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/projects/$(PKG)/Releases/($(PKG)_FILE)
$(PKG)_URL_2 := http://sourceforge.net/projects/ming/files/Releases/ming-0.4.4.tar.bz2/download
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.libming.org/Releases' | \
$(SED) -n 's_.ming-\([0-9]\.[0-9]\.[0-9]\).*tar.bz2_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && sh autogen.sh
cd '$(1)' && ./configure \
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
--prefix='$(PREFIX)/$(TARGET)'
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' install
endef

View File

@ -3,16 +3,16 @@
PKG := libsvm
$(PKG)_WEBSITE := https://www.csie.ntu.edu.tw/~cjlin/libsvm
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.22
$(PKG)_CHECKSUM := 6d81c67d3b13073eb5a25aa77188f141b242ec328518fad95367ede253d0a77d
$(PKG)_VERSION := 322
$(PKG)_CHECKSUM := a3469436f795bb3f8b1e65ea761e14e5599ec7ee941c001d771c07b7da318ac6
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://www.csie.ntu.edu.tw/~cjlin/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := cc
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://www.csie.ntu.edu.tw/~cjlin/libsvm/' | \
$(SED) -n 's,.*>v\([0-9][^<]*\)<.*,\1,p' | \
$(WGET) -q -O- 'https://github.com/cjlin1/libsvm/releases' | \
$(SED) -n '/a href/ s_.*releases/tag/v\([0-9.]*\)".*_\1_ip' | \
head -1
endef

32
src/libxdf.mk Normal file
View File

@ -0,0 +1,32 @@
# This file is part of MXE.
# See index.html for further information.
PKG := libxdf
$(PKG)_WEBSITE :=
$(PKG)_DESCR := libxdf
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.99
$(PKG)_CHECKSUM := af66f6c1be5d9342fa33bc2a3b34c5a962db37d10623df57d352a213fe5201d1
$(PKG)_SUBDIR := libxdf-$($(PKG)_VERSION)
$(PKG)_FILE := libxdf-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/xdf-modules/libxdf/archive/v$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := cc
define $(PKG)_UPDATE
# wget -q -O- 'http://biosig.sourceforge.net/download.html' | \
# $(SED) -n 's_.*>libbiosig, version \([0-9]\.[0-9]\.[0-9]\).*tar.gz_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
mkdir '$(1)/native_build'
cd '$(1)/native_build' && $(TARGET)-cmake \
-DCMAKE_BUILD_TYPE="Release" \
-DSHARED_LIBS=$(if $(BUILD_STATIC),OFF,ON) \
'$(1)'
$(MAKE) -C '$(1)/native_build'
$(INSTALL) '$(1)/xdf.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) '$(1)'/native_build/libxdf.$(if $(BUILD_STATIC),"a","dll*") '$(PREFIX)/$(TARGET)/lib/'
endef

31
src/luckybackup.mk Normal file
View File

@ -0,0 +1,31 @@
# This file is part of MXE.
# See index.html for further information.
PKG := luckybackup
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.4.7
$(PKG)_CHECKSUM := 7a436c29a636e359991cd131a5a966e3d4755372
$(PKG)_SUBDIR := luckybackup-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://downloads.sourceforge.net/project/$(PKG)/$($(PKG)_VERSION)/source/$($(PKG)_FILE)
$(PKG)_DEPS := gcc qt
define $(PKG)_UPDATE
# wget -q -O- 'http://luckybackup.sourceforge.net' | \
# $(SED) -n 's_.*current stable version.*>\([0-9]\.[0-9]\.[0-9]\)<.*_\1_ip' \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && \
$(PREFIX)/$(TARGET)/qt/bin/qmake && \
$(MAKE) && \
rm -rf $(PREFIX)/$(TARGET)/bin/manual $(PREFIX)/$(TARGET)/bin/translations && \
mv -f release/luckybackup.exe manual translations $(PREFIX)/$(TARGET)/bin/
cd $(PREFIX)/$(TARGET)/bin && \
rm ../luckybackup.zip && \
zip -r ../luckybackup.zip luckybackup.exe manual translations
endef

26
src/matplotlib.mk Normal file
View File

@ -0,0 +1,26 @@
# This file is part of MXE.
# See index.html for further information.
PKG := matplotlib
$(PKG)_IGNORE :=
$(PKG)_CHECKSUM := 1d0c319b2bc545f1a7002f56768e5730fe573518
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://downloads.sourceforge.net/project/matplotlib/matplotlib/$($(PKG)_SUBDIR)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc python libpng freetype wxpython numpy
define $(PKG)_UPDATE
wget -q -O- 'http://matplotlib.org/downloads.html' | \
$(SED) -n 's_.*">matplotlib.\([0-9].[0-9].[0-9]\).tar.gz</a>.*_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)'
exit -1
endef

28
src/minitube.mk Normal file
View File

@ -0,0 +1,28 @@
# This file is part of MXE.
# See index.html for further information.
# Qwt - Qt widgets for technical applications
PKG := minitube
$(PKG)_CHECKSUM := 6d33a52367f7a82498ba27812bec4e15de005534
$(PKG)_SUBDIR := $(PKG)
$(PKG)_FILE := $(PKG).tar.gz
$(PKG)_WEBSITE := http://flavio.tordini.org/
$(PKG)_URL := http://flavio.tordini.org/files/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc qt phonon-backend-vlc
define $(PKG)_UPDATE
# $(WGET) -q -O- 'http://sourceforge.net/projects/qwt/files/qwt/' | \
# $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
# head -1
echo 1
endef
define $(PKG)_BUILD
cd '$(1)' && $(PREFIX)/bin/$(TARGET)-qmake
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef

10
src/neuron-1-fix.patch Normal file
View File

@ -0,0 +1,10 @@
--- a/src/memacs/buffer.c 2011-11-22 23:00:11.000000000 +0100
+++ b/src/memacs/buffer.c 2013-02-21 21:58:53.000000000 +0100
@@ -30,6 +30,7 @@
* for the display system.
*/
#include <stdio.h>
+#include <windows.h>
#include "estruct.h"
#include "edef.h"

20
src/neuron-3-fix.patch Normal file
View File

@ -0,0 +1,20 @@
--- a/src/ivoc/ivocwin.cpp 2012-07-24 14:59:05.000000000 +0200
+++ b/src/ivoc/ivocwin.cpp 2013-02-26 19:48:35.000000000 +0100
@@ -163,7 +163,7 @@
int ivoc_vector_size(Object*) {return 0;}
#endif
-#ifdef MINGW
+#if 1
IOHandler::IOHandler(){}
IOHandler::~IOHandler(){}
int IOHandler::inputReady(int){return 0;}
@@ -173,7 +173,7 @@
void IOHandler::childStatus(pid_t, int){}
#endif // MINGW
-#ifdef MINGW
+#if 1
extern "C" {
int stdin_event_ready();
}

53
src/neuron.mk Normal file
View File

@ -0,0 +1,53 @@
# This file is part of MXE.
# See index.html for further information.
PKG := neuron
$(PKG)_IGNORE :=
$(PKG)_VERSION := 7.3
$(PKG)_CHECKSUM := d79124f228135775769e661e1d57303476740ef6
$(PKG)_SUBDIR := nrn-7.3
$(PKG)_FILE := nrn-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.neuron.yale.edu/ftp/neuron/versions/v7.3/$($(PKG)_FILE)
$(PKG)_DEPS := gcc readline nrniv pthreads termcap
PATH_TO_HOST_NEURON := $(PREFIX)/share/$($(PKG)_SUBDIR)
define $(PKG)_UPDATE
wget -q -O- 'http://www.neuron.yale.edu/neuron/download/getstd' | \
$(SED) -n 's_.*>[0-9]\./nrn-\([0-9]\.[0-9]\.[0-9]\).*tar.gz">_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
### This is neeeded because nmodl/nocmodl needs to run on host
if [[ ! -d $(PATH_TO_HOST_NEURON) ]] ; then \
echo "Built host neuron and nocmodl in $(PATH_TO_HOST_NEURON)"; \
( cd $$(dirname $(PATH_TO_HOST_NEURON)) && tar xf $(PWD)/pkg/$($(PKG)_FILE) ); \
( cd $(PATH_TO_HOST_NEURON) && \
./configure --with-nmodl-only --without-x && \
$(MAKE) ) ; \
fi
## http://stackoverflow.com/questions/5212454/allegro-question-how-can-i-get-rid-of-the-cmd-window
## Wl,subsystem,windows
cd '$(1)' CXXFLAGS=-mwindows LDFLAGS=subsystem=windows && ./configure \
--prefix='$(PREFIX)/$(TARGET)' \
--build="`config.guess`" \
--host='$(TARGET)' \
--with-iv='$(PREFIX)/$(TARGET)' \
--disable-shared \
--enable-static
### nocmodl of host (not the target one) ###
$(SED) -i 's#^NMODL = ../nmodl/nocmodl#NMODL = $(PATH_TO_HOST_NEURON)/src/nmodl/nocmodl#' '$(1)'/src/nrnoc/Makefile
#$(SED) -i '/^am_ivoc_OBJECTS/ s#\\$$# ivocwin.$$\(OBJEXT\) \\#' '$(1)'/src/ivoc/Makefile
$(SED) -i 's#^\tg++ #\t$$\(CXX\) #g' '$(1)'/src/nrniv/Makefile
$(MAKE) -C '$(1)'
$(MAKE) -C '$(1)' install
endef

22
src/npp.mk Normal file
View File

@ -0,0 +1,22 @@
# This file is part of MXE.
# See index.html for further information.
PKG := npp
$(PKG)_IGNORE :=
$(PKG)_VERSION := 6.2.3
$(PKG)_CHECKSUM := e246ebb89c10b71ed483b866ea90385a661092e6
$(PKG)_SUBDIR := unicode
$(PKG)_FILE := $(PKG).$($(PKG)_VERSION).bin.zip
$(PKG)_URL := http://download.tuxfamily.org/notepadplus/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS :=
define $(PKG)_UPDATE
echo 'Warning: Updates are temporarily disabled for package Notepad++.' >&2;
echo $($(PKG)_VERSION)
endef
define $(PKG)_BUILD
#NOTEPAD_BASE_DIR := "$(PREFIX)/../notepad++/"
mkdir -p '$(PREFIX)/notepad++'
cd '$(1)' && tar cf - . | ( cd '$(PREFIX)/notepad++'; tar xpf - )
endef

35
src/nrniv.mk Normal file
View File

@ -0,0 +1,35 @@
# This file is part of MXE.
# See index.html for further information.
PKG := nrniv
$(PKG)_IGNORE :=
$(PKG)_VERSION := 7.3
$(PKG)_CHECKSUM := d5bea5d6eeb02a30ceb1af1f3d354729b00bc774
$(PKG)_SUBDIR := iv-18
$(PKG)_FILE := iv-18.tar.gz
$(PKG)_URL := http://www.neuron.yale.edu/ftp/neuron/versions/v7.3/$($(PKG)_FILE)
# http://www.neuron.yale.edu/ftp/neuron/versions/v$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
wget -q -O- 'http://www.neuron.yale.edu/neuron/download/getstd' | \
$(SED) -n 's_.*>[0-9]\./iv-\([0-9\.]\)*\.tar.gz">_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
## http://stackoverflow.com/questions/5212454/allegro-question-how-can-i-get-rid-of-the-cmd-window
## Wl,subsystem,windows
cd '$(1)' && ./configure \
--prefix='$(PREFIX)/$(TARGET)' \
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
--enable-static
$(MAKE) -C '$(1)'
$(MAKE) -C '$(1)' install
endef

30
src/numpy.mk Normal file
View File

@ -0,0 +1,30 @@
# This file is part of MXE.
# See index.html for further information.
PKG := numpy
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.6.2
$(PKG)_CHECKSUM := c36c471f44cf914abdf37137d158bf3ffa460141
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://sourceforge.net/projects/numpy/files/NumPy/$($(PKG)_VERSION)/$($(PKG)_FILE)/download
$(PKG)_DEPS := gcc python
PATH_TO_HOST_PYTHON := $(PREFIX)/share/$($(PKG)_SUBDIR)
define $(PKG)_UPDATE
wget -q -O- 'http://sourceforge.net/projects/numpy/files/NumPy/' | \
$(SED) -n 's_.*/numpy.\([0-9].[0-9].[0-9]\).tar.gz.*_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)'
endef

64
src/octave.mk Normal file
View File

@ -0,0 +1,64 @@
# This file is part of MXE.
# See index.html for further information.
PKG := octave
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.6.4
$(PKG)_CHECKSUM := 3cc9366b6dbbd336eaf90fe70ad16e63705d82c4
$(PKG)_SUBDIR := octave-$($(PKG)_VERSION)
$(PKG)_FILE := octave-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := ftp://ftp.gnu.org/gnu/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := arpack blas curl fftw fltk fontconfig freetype gcc glpk gnuplot graphicsmagick hdf5 lapack libgomp ncurses pcre pthreads qhull qrupdate readline suitesparse termcap texinfo zlib
## pstoedit qscintilla qt ### FIXME: these are dependencies for Octave, but do not build yet
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://ftp.gnu.org/gnu/octave/?C=M;O=D' | \
$(SED) -n 's,.*<a href="octave-\([0-9][^"]*\)\.tar\.gz".*,\1,p' | \
head -1
endef
define $(PKG)_BUILD
if [ $(BUILD_SHARED) = yes ]; then \
$(INSTALL) -d '$(PREFIX)/$(TARGET)/bin'; \
$(MAKE_SHARED_FROM_STATIC) --ar '$(TARGET)-ar' --ld '$(TARGET)-gcc' '$(PREFIX)/$(TARGET)/lib/libuuid.a'; \
$(INSTALL) -m755 '$(PREFIX)/$(TARGET)/lib/libuuid.dll.a' '$(PREFIX)/$(TARGET)/lib/libuuid.dll.a'; \
$(INSTALL) -m755 '$(PREFIX)/$(TARGET)/lib/libuuid.dll' '$(PREFIX)/$(TARGET)/bin/libuuid.dll'; \
rm -f '$(PREFIX)/$(TARGET)/lib/libuuid.dll'; \
fi
mkdir '$(1)/.build'
cd '$(1)' && autoreconf --force -W none
### make sure pcre-config of host is used
$(SED) -i 's,pcre-config,$(PREFIX)/$(TARGET)/bin/pcre-config,g' '$(1)/configure'
# configure
cd '$(1)/.build' && '../configure' \
--host='$(TARGET)' \
--build="`config.guess`" \
--prefix='$(PREFIX)/$(TARGET)' \
--enable-static \
--disable-shared \
--enable-openmp \
FLTK_CONFIG="$(PREFIX)/bin/$(TARGET)-fltk-config" \
PKG_CONFIG="$(TARGET)-pkg-config" \
LIBS='-lsuitesparseconfig -lumfpack -lamd' \
BUILD_CC=g++ \
gl_cv_func_gettimeofday_clobber=no
#BUILD_CXX="g++" \
## We want both of these install steps so that we install in the
## location set by the configure --prefix option, and the other
## in a directory tree that will have just Octave files.
$(MAKE_SHARED_FROM_STATIC) --ar '$(TARGET)-ar' --ld '$(TARGET)-g++' -C '$(1)/.build' -j '$(JOBS)' install
$(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(PREFIX)/../octave install
endef
$(PKG)_BUILD_i686-pc-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =
$(PKG)_BUILD_x86_64-w64-mingw32 =

64
src/opencv3.mk Normal file
View File

@ -0,0 +1,64 @@
# This file is part of MXE.
# See index.html for further information.
PKG := opencv3
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.1.0
$(PKG)_CHECKSUM := 1f6990249fdb82804fff40e96fa6d99949023ab0e3277eae4bd459b374e622a4
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := opencv-$($(PKG)_VERSION).zip
$(PKG)_URL := https://github.com/Itseez/opencv/archive/$($(PKG)_VERSION).zip
$(PKG)_DEPS := gcc eigen ffmpeg jasper jpeg lcms1 libpng openexr tiff xz zlib
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/' | \
$(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
head -1
endef
define $(PKG)_BUILD
# build
mkdir '$(1).build'
cd '$(1).build' && cmake \
-DWITH_QT=OFF \
-DWITH_OPENGL=ON \
-DWITH_GSTREAMER=OFF \
-DWITH_GTK=OFF \
-DWITH_VIDEOINPUT=ON \
-DWITH_XINE=OFF \
-DBUILD_SHARED_LIBS=$(if $(BUILD_STATIC),OFF,ON) \
-DBUILD_opencv_apps=OFF \
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_PACKAGE=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_WITH_DEBUG_INFO=OFF \
-DBUILD_FAT_JAVA_LIB=OFF \
-DBUILD_ZLIB=OFF \
-DBUILD_TIFF=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_JPEG=OFF \
-DBUILD_PNG=OFF \
-DBUILD_OPENEXR=OFF \
-DCMAKE_VERBOSE=ON \
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
-DCMAKE_CXX_FLAGS='-D_WIN32_WINNT=0x0500' \
'$(1)'
# install
$(MAKE) -C '$(1).build' -j '$(JOBS)' install VERBOSE=1
# fixup and install pkg-config file
# openexr isn't available on x86_64-w64-mingw32
# opencv builds it's own libIlmImf.a
$(if $(findstring x86_64-w64-mingw32,$(TARGET)),\
$(SED) -i 's/OpenEXR//' '$(1).build/unix-install/opencv.pc')
$(SED) -i 's,share/OpenCV/3rdparty/,,g' '$(1).build/unix-install/opencv.pc'
$(INSTALL) -m755 '$(1).build/unix-install/opencv.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig'
'$(TARGET)-g++' \
-W -Wall -Werror -ansi -pedantic \
'$(1)/samples/c/fback_c.c' -o '$(PREFIX)/$(TARGET)/bin/test-opencv.exe' \
`'$(TARGET)-pkg-config' opencv --cflags --libs`
endef

View File

@ -66,3 +66,5 @@ define $(PKG)_BUILD
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-openexr.exe' \
`'$(TARGET)-pkg-config' OpenEXR --cflags --libs`
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =

196
src/openmpi-1-10.patch Normal file
View File

@ -0,0 +1,196 @@
diff -r 9f0c2f2016d0 -r 0f169b655bd4 ompi/contrib/vt/wrappers/mpic++-vt-wrapper-data.txt
--- a/ompi/contrib/vt/wrappers/mpic++-vt-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/ompi/contrib/vt/wrappers/mpic++-vt-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -13,9 +13,9 @@
compiler=vtcxx
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lmpi_cxx -lmpi -lopen-rte -lopen-pal -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
+libs=-lmpi_cxx -lmpi -lopen-rte -lopen-pal -lm -lgdi32 -Wl,--export-all-symbols
required_file=
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 ompi/contrib/vt/wrappers/mpicc-vt-wrapper-data.txt
--- a/ompi/contrib/vt/wrappers/mpicc-vt-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/ompi/contrib/vt/wrappers/mpicc-vt-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -13,9 +13,9 @@
compiler=vtcc
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lmpi -lopen-rte -lopen-pal -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
+libs=-lmpi -lopen-rte -lopen-pal -lm -lgdi32 -Wl,--export-all-symbols
required_file=
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 ompi/contrib/vt/wrappers/mpif77-vt-wrapper-data.txt
--- a/ompi/contrib/vt/wrappers/mpif77-vt-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/ompi/contrib/vt/wrappers/mpif77-vt-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -13,9 +13,9 @@
compiler=vtf77
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lmpi_f77 -lmpi -lopen-rte -lopen-pal -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
-required_file=
+libs=-lmpi_f77 -lmpi -lopen-rte -lopen-pal -lm -lgdi32 -Wl,--export-all-symbols
+required_file=not supported
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 ompi/contrib/vt/wrappers/mpif90-vt-wrapper-data.txt
--- a/ompi/contrib/vt/wrappers/mpif90-vt-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/ompi/contrib/vt/wrappers/mpif90-vt-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -11,12 +11,12 @@
language=Fortran 90
compiler_flags_env=FCFLAGS
compiler=vtf90
-module_option=-I
+module_option=
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
-required_file=
+libs=-lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal -lm -lgdi32 -Wl,--export-all-symbols
+required_file=not supported
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 ompi/tools/wrappers/mpic++-wrapper-data.txt
--- a/ompi/tools/wrappers/mpic++-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/ompi/tools/wrappers/mpic++-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -11,12 +11,12 @@
language=C++
compiler_env=CXX
compiler_flags_env=CXXFLAGS
-compiler=g++
+compiler=i686-pc-mingw32-g++
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lmpi_cxx -lmpi -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
+libs=-lmpi_cxx -lmpi -lm -lgdi32 -Wl,--export-all-symbols
required_file=
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 ompi/tools/wrappers/mpicc-wrapper-data.txt
--- a/ompi/tools/wrappers/mpicc-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/ompi/tools/wrappers/mpicc-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -11,12 +11,12 @@
language=C
compiler_env=CC
compiler_flags_env=CFLAGS
-compiler=gcc
+compiler=i686-pc-mingw32-gcc
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lmpi -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
+libs=-lmpi -lm -lgdi32 -Wl,--export-all-symbols
required_file=
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 ompi/tools/wrappers/mpif77-wrapper-data.txt
--- a/ompi/tools/wrappers/mpif77-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/ompi/tools/wrappers/mpif77-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -11,12 +11,12 @@
language=Fortran 77
compiler_env=F77
compiler_flags_env=FFLAGS
-compiler=gfortran
+compiler=no
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lmpi_f77 -lmpi -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
-required_file=
+libs=-lmpi_f77 -lmpi -lm -lgdi32 -Wl,--export-all-symbols
+required_file=not supported
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 ompi/tools/wrappers/mpif90-wrapper-data.txt
--- a/ompi/tools/wrappers/mpif90-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/ompi/tools/wrappers/mpif90-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -11,13 +11,13 @@
language=Fortran 90
compiler_env=FC
compiler_flags_env=FCFLAGS
-compiler=gfortran
-module_option=-I
+compiler=no
+module_option=
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lmpi_f90 -lmpi_f77 -lmpi -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
-required_file=
+libs=-lmpi_f90 -lmpi_f77 -lmpi -lm -lgdi32 -Wl,--export-all-symbols
+required_file=not supported
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 opal/win32/win_compat.h
--- a/opal/win32/win_compat.h Thu Mar 07 19:12:09 2013 -0500
+++ b/opal/win32/win_compat.h Thu Mar 07 19:22:38 2013 -0500
@@ -90,7 +90,7 @@
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
typedef unsigned short mode_t;
-typedef long ssize_t;
+//typedef long ssize_t;
typedef DWORD in_port_t;
typedef char* caddr_t;
typedef unsigned int uint;
diff -r 9f0c2f2016d0 -r 0f169b655bd4 orte/tools/wrappers/ortec++-wrapper-data.txt
--- a/orte/tools/wrappers/ortec++-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/orte/tools/wrappers/ortec++-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -11,12 +11,12 @@
language=C++
compiler_env=CXX
compiler_flags_env=CXXFLAGS
-compiler=g++
+compiler=i686-pc-mingw32-g++
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lopen-rte -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
+libs=-lopen-rte -lm -lgdi32 -Wl,--export-all-symbols
required_file=
includedir=${includedir}
libdir=${libdir}
diff -r 9f0c2f2016d0 -r 0f169b655bd4 orte/tools/wrappers/ortecc-wrapper-data.txt
--- a/orte/tools/wrappers/ortecc-wrapper-data.txt Thu Mar 07 19:12:09 2013 -0500
+++ b/orte/tools/wrappers/ortecc-wrapper-data.txt Thu Mar 07 19:22:38 2013 -0500
@@ -11,12 +11,12 @@
language=C
compiler_env=CC
compiler_flags_env=CFLAGS
-compiler=gcc
+compiler=i686-pc-mingw32-gcc
extra_includes=
preprocessor_flags=
-compiler_flags=-pthread
+compiler_flags=
linker_flags=
-libs=-lopen-rte -ldl -lm -lnuma -Wl,--export-dynamic -lrt -lnsl -lutil -lm -ldl
+libs=-lopen-rte -lm -lgdi32 -Wl,--export-all-symbols
required_file=
includedir=${includedir}
libdir=${libdir}

11
src/openmpi-2-fix.patch Normal file
View File

@ -0,0 +1,11 @@
--- a/opal/win32/win_compat.h 2013-03-13 19:13:16.000000000 +0100
+++ b/opal/win32/win_compat.h 2013-03-13 19:23:28.000000000 +0100
@@ -172,7 +172,7 @@
#define MAXPATHLEN _MAX_PATH
#define MAXHOSTNAMELEN _MAX_PATH
-#define PATH_MAX _MAX_PATH
+// #define PATH_MAX _MAX_PATH
#define WTERMSIG(EXIT_CODE) (1)
#define WIFEXITED(EXIT_CODE) (1)
#define WEXITSTATUS(EXIT_CODE) (EXIT_CODE)

13
src/openmpi-3-fix.patch Normal file
View File

@ -0,0 +1,13 @@
--- a/opal/win32/win_compat.h 2013-03-13 19:26:27.000000000 +0100
+++ b/opal/win32/win_compat.h 2013-03-13 19:36:35.000000000 +0100
@@ -317,8 +317,8 @@
#define LOG_DEBUG 7
/* hwloc support is not ready on Windows,
- will remove this lines when it's done. */
-#define OPAL_HAVE_HWLOC 0
+ remove this lines when it's done. */
+// #define OPAL_HAVE_HWLOC 0
/*
* Mask these to Windows equivalents

19
src/openmpi-4-fix.patch Normal file
View File

@ -0,0 +1,19 @@
--- a/opal/include/opal_config_bottom.h 2012-04-03 16:29:45.000000000 +0200
+++ b/opal/include/opal_config_bottom.h 2013-03-13 19:40:00.000000000 +0100
@@ -556,13 +556,13 @@
#define AF_UNSPEC 0
#endif
#if !HAVE_DECL_PF_UNSPEC
-#define PF_UNSPEC 0
+//#define PF_UNSPEC 0
#endif
#if !HAVE_DECL_AF_INET6
-#define AF_INET6 AF_UNSPEC
+//#define AF_INET6 AF_UNSPEC
#endif
#if !HAVE_DECL_PF_INET6
-#define PF_INET6 PF_UNSPEC
+//#define PF_INET6 PF_UNSPEC
#endif
#if defined(__APPLE__) && defined(HAVE_INTTYPES_H)

14
src/openmpi-5-fix.patch Normal file
View File

@ -0,0 +1,14 @@
--- a/opal/util/output.h 2012-04-03 16:29:52.000000000 +0200
+++ b/opal/util/output.h 2013-03-13 23:22:28.000000000 +0100
@@ -72,9 +72,9 @@
* For C++, we should not need the file, anyhow.
* Circumentvent problems in C++ compilers.
*/
-#if defined(HAVE_STDBOOL_H) && !(defined(c_plusplus) || defined(__cplusplus))
+//#if defined(HAVE_STDBOOL_H) && !(defined(c_plusplus) || defined(__cplusplus))
#include <stdbool.h>
-#endif
+//#endif
#include "opal/class/opal_object.h"

38
src/openmpi.mk Normal file
View File

@ -0,0 +1,38 @@
# This file is part of MXE.
# See index.html for further information.
PKG := openmpi
$(PKG)_VERSION := 1.6.5
$(PKG)_CHECKSUM := 93859d515b33dd9a0ee6081db285a2d1dffe21ce
$(PKG)_SUBDIR := openmpi-$($(PKG)_VERSION)
$(PKG)_FILE := openmpi-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://www.open-mpi.org/software/ompi/v1.6/downloads/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.open-mpi.org/software/ompi/' | \
$(SED) -n 's,.*<TITLE>Open MPI: Version \([0-9\.]{1-6}\)</TITLE>.*,\1,p' | \
head -1 | echo
endef
define $(PKG)_BUILD
#$(SED) -i 's,aclocal,aclocal -I $(PREFIX)/$(TARGET)/share/aclocal,' '$(1)/autogen.sh'
#$(SED) -i 's,libtoolize,$(LIBTOOLIZE),' '$(1)/autogen.sh'
#cd '$(1)' && ./autogen.sh
cd '$(1)' && CPPAS=$(TARGET)-gcc ./configure \
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
--prefix='$(PREFIX)/$(TARGET)' \
--disable-mpi-f77 \
--disable-mpi-f90
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
$(PKG)_BUILD_i686-pc-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =
$(PKG)_BUILD_x86_64-w64-mingw32 =

29
src/phonon-backend-vlc.mk Normal file
View File

@ -0,0 +1,29 @@
# This file is part of MXE.
# See index.html for further information.
# Qwt - Qt widgets for technical applications
PKG := phonon-backend-vlc
$(PKG)_VERSION := 0.6.2
$(PKG)_CHECKSUM := 6d33a52367f7a82498ba27812bec4e15de005534
$(PKG)_SUBDIR := $(PKG)
$(PKG)_FILE := $(PKG).tar.gz
$(PKG)_WEBSITE := http://flavio.tordini.org/
$(PKG)_URL := http://flavio.tordini.org/files/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc vlc phonon
define $(PKG)_UPDATE
# $(WGET) -q -O- 'http://sourceforge.net/projects/qwt/files/qwt/' | \
# $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
# head -1
echo 1
endef
define $(PKG)_BUILD
cd '$(1)' && $(PREFIX)/bin/$(TARGET)-qmake
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef

37
src/phonon.mk Normal file
View File

@ -0,0 +1,37 @@
# This file is part of MXE.
# See index.html for further information.
# Qwt - Qt widgets for technical applications
PKG := phonon
$(PKG)_VERSION := 4.6.0
$(PKG)_CHECKSUM := d8dbc188b58c6dd9c6a73d3742a25291e647bb95
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.xz
$(PKG)_WEBSITE := http://www.kde.org/
$(PKG)_URL := http://download.kde.org/stable/phonon/$($(PKG)_VERSION)/src/$($(PKG)_FILE)
$(PKG)_DEPS := gcc glib automoc4
define $(PKG)_UPDATE
# $(WGET) -q -O- 'http://sourceforge.net/projects/qwt/files/qwt/' | \
# $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
# head -1
echo 1
endef
define $(PKG)_BUILD
mkdir '$(1)/build'
cd '$(1)' && cmake ./cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX)/$(TARGET)/qt \
-DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=TRUE \
-DDBUS_INTERFACES_INSTALL_DIR=$(PREFIX)/$(TARGET)/share/dbus-1/interfaces
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef
$(PKG)_BUILD_i686-pc-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =
$(PKG)_BUILD_x86_64-w64-mingw32 =

View File

@ -31,3 +31,6 @@ define $(PKG)_BUILD
LDFLAGS=-no-undefined
AR='$(TARGET)-ar'
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =

View File

@ -25,3 +25,5 @@ define $(PKG)_BUILD
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
endef
$(PKG)_BUILD_x86_64-static-mingw32 =

View File

@ -44,3 +44,6 @@ define $(PKG)_BUILD
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-portmidi.exe' \
-lportmidi -lwinmm
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =

View File

@ -0,0 +1,39 @@
diff -uNr e/othersrc/gsdllinc/wgsver.c f/othersrc/gsdllinc/wgsver.c
--- e/othersrc/gsdllinc/wgsver.c 2010-12-27 10:09:35.000000000 -0500
+++ f/othersrc/gsdllinc/wgsver.c 2013-01-08 22:23:09.775545031 -0500
@@ -39,6 +39,10 @@
#include <stdlib.h>
#include "wgsver.h"
+#ifndef KEY_WOW64_64KEY
+#define KEY_WOW64_64KEY 0x0100
+#endif
+
/* Ghostscript may be known in the Windows Registry by
* the following names.
*/
diff -uNr e/src/cbstream.cpp f/src/cbstream.cpp
--- e/src/cbstream.cpp 2012-08-28 09:52:28.000000000 -0400
+++ f/src/cbstream.cpp 2013-01-08 22:15:04.575971765 -0500
@@ -33,6 +33,8 @@
// this code is only needed under WIN32
// ...and under OS/2
+#include <cstdio>
+
#include "cppcomp.h"
#include "cbstream.h"
diff -uNr e/src/Makefile.am f/src/Makefile.am
--- e/src/Makefile.am 2010-08-22 09:54:28.000000000 -0400
+++ f/src/Makefile.am 2013-01-08 22:28:40.596345408 -0500
@@ -133,7 +133,8 @@
genericints.h \
version.h
-libpstoedit_la_LIBADD = ${CXX_STD_LIB} ${CXX_RUNTIME_LIB} -ldl -lm
+libpstoedit_la_LIBADD = ${CXX_STD_LIB} ${CXX_RUNTIME_LIB} -lm
+libpstoedit_la_CPPFLAGS = -I$(top_srcdir)/othersrc/gsdllinc
libpstoedit_la_LDFLAGS = -no-undefined
pstoedit_SOURCES = cmdmain.cpp

View File

@ -0,0 +1,11 @@
--- pstoedit-3.61/configure.ac 2012-08-28 12:46:41.000000000 +0200
+++ pstoedit-3.61/configure.ac 2013-04-18 22:56:10.000000000 +0200
@@ -235,7 +235,7 @@
else
if test -n "$PKG_CONFIG"; then
AC_MSG_CHECKING(ImageMagick flags through pkg-config)
- PKG_CHECK_MODULES(LIBMAGICK, ImageMagick++,
+ PKG_CHECK_MODULES(LIBMAGICK, ImageMagick,
HAVE_LIBMAGICK=yes
LIBMAGICK_CFLAGS="-DHAVE_MAGIC $LIBMAGICK_CFLAGS"
LIBMAGICK_LDFLAGS="$LIBMAGICK_LIBS" ,

42
src/pstoedit.mk Normal file
View File

@ -0,0 +1,42 @@
# This file is part of MXE.
# See index.html for further information.
PKG := pstoedit
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.61
$(PKG)_CHECKSUM := 426f3746ecb441caa0db401d5880e1ac04a399d5
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://sourceforge.net/projects/pstoedit/files/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)/download
$(PKG)_DEPS := gcc
### libemf libming ###
define $(PKG)_UPDATE
echo 'Warning: Updates are temporarily disabled for package pstoedit.' >&2;
echo $(pstoedit_VERSION)
endef
define $(PKG)_BUILD
#cd '$(1)' && tar xvf '$(1)'/../../pkg/libemf-1.0.7.src.tar.gz
cd '$(1)' && autoreconf
mkdir '$(1)/.build'
cd '$(1)/.build' && '../configure' \
--host='$(TARGET)' \
--build="`config.guess`" \
--prefix='$(PREFIX)/$(TARGET)' \
--enable-static --disable-shared \
--without-emf
#--without-libplot --without-swf --without-magick
#--with-libemf-src=DIR \
#--with-libemf-src=DIR
$(MAKE) -C '$(1)/.build' -j '$(JOBS)' install
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =

View File

@ -0,0 +1,157 @@
diff -urN a-3.3.0/Makefile.pre.in b-3.3.0/Makefile.pre.in
--- a-3.3.0/Makefile.pre.in Sat Sep 29 09:00:41 2012
+++ b-3.3.0/Makefile.pre.in Fri Nov 16 14:22:51 2012
@@ -1113,6 +1113,8 @@
# Substitution happens here, as the completely-expanded BINDIR
# is not available in configure
sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config
+ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
+ sed -e "s,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g" < Misc/python-config.sh >python-config.sh
# Install the include files
INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
@@ -1171,6 +1173,7 @@
$(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
$(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
$(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config
+ $(INSTALL_SCRIPT) python-config.sh $(DESTDIR)$(BINDIR)/python-config.sh
rm python-config
@if [ -s Modules/python.exp -a \
"`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
diff -urN a-3.3.0/Misc/python-config.sh.in b-3.3.0/Misc/python-config.sh.in
--- a-3.3.0/Misc/python-config.sh.in Thu Jan 1 00:00:00 1970
+++ b-3.3.0/Misc/python-config.sh.in Fri Nov 16 14:22:51 2012
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+exit_with_usage ()
+{
+ echo "Usage: $0 --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--help|--abiflags"
+ exit 1
+}
+
+if [ "$1" = "" ] ; then
+ exit_with_usage
+fi
+
+# Returns the actual prefix where this script was installed to.
+installed_prefix ()
+{
+ local RESULT=$(dirname $(cd $(dirname "$1") && pwd -P))
+ if [ $(which readlink) ] ; then
+ RESULT=$(readlink -f "$RESULT")
+ fi
+ echo $RESULT
+}
+
+prefix_build="@prefix@"
+prefix_real=$(installed_prefix "$0")
+
+# Use sed to fix paths from their built to locations to their installed to locations.
+prefix=$(echo "$prefix_build" | sed "s#$prefix_build#$prefix_real#")
+exec_prefix_build="@exec_prefix@"
+exec_prefix=$(echo "$exec_prefix_build" | sed "s#$exec_prefix_build#$prefix_real#")
+includedir=$(echo "@includedir@" | sed "s#$prefix_build#$prefix_real#")
+libdir=$(echo "@libdir@" | sed "s#$prefix_build#$prefix_real#")
+CFLAGS=$(echo "@CFLAGS@" | sed "s#$prefix_build#$prefix_real#")
+VERSION="@VERSION@"
+LIBM="@LIBM@"
+LIBC="@LIBC@"
+SYSLIBS="$LIBM $LIBC"
+ABIFLAGS="@ABIFLAGS@"
+# Protect against lack of substitution.
+if [ "$ABIFLAGS" = "@ABIFLAGS@" ] ; then
+ ABIFLAGS=
+fi
+LIBS="@LIBS@ $SYSLIBS -lpython${VERSION}${ABIFLAGS}"
+BASECFLAGS="@BASECFLAGS@"
+LDLIBRARY="@LDLIBRARY@"
+LINKFORSHARED="@LINKFORSHARED@"
+OPT="@OPT@"
+PY_ENABLE_SHARED="@PY_ENABLE_SHARED@"
+LDVERSION="@LDVERSION@"
+LIBDEST=${prefix}/lib/python${VERSION}
+LIBPL=${LIBDEST}/config-${LDVERSION}
+INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}"
+
+# Scan for --help or unknown argument.
+for ARG in $*
+do
+ case $ARG in
+ --help)
+ exit_with_usage
+ ;;
+ --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--abiflags)
+ ;;
+ *)
+ exit_with_usage
+ ;;
+ esac
+done
+
+for ARG in $*
+do
+ case $ARG in
+ --prefix)
+ echo "$prefix"
+ ;;
+ --exec-prefix)
+ echo "$exec_prefix"
+ ;;
+ --includes)
+ echo "$INCDIR"
+ ;;
+ --cflags)
+ echo "$INCDIR $BASECFLAGS $CFLAGS $OPT"
+ ;;
+ --libs)
+ echo "$LIBS"
+ ;;
+ --ldflags)
+ LIBPLUSED=
+ if [ "$PY_ENABLE_SHARED" = "0" ] ; then
+ LIBPLUSED="-L$LIBPL"
+ fi
+ echo "$LIBPLUSED -L$libdir $LIBS $LINKFORSHARED"
+ ;;
+ --abiflags)
+ echo "$ABIFLAGS"
+ ;;
+esac
+done
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Sat Sep 29 09:00:50 2012
+++ b-3.3.0/configure.ac Fri Nov 16 14:22:51 2012
@@ -894,6 +894,7 @@
# Other platforms follow
if test $enable_shared = "yes"; then
+ PY_ENABLE_SHARED=1
AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
case $ac_sys_system in
CYGWIN*)
@@ -949,6 +950,7 @@
esac
else # shared is disabled
+ PY_ENABLE_SHARED=0
case $ac_sys_system in
CYGWIN*)
BLDLIBRARY='$(LIBRARY)'
@@ -956,6 +958,7 @@
;;
esac
fi
+AC_SUBST(PY_ENABLE_SHARED)
if test "$cross_compiling" = yes; then
RUNSHARED=
@@ -4597,7 +4600,7 @@
fi
# generate output files
-AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
+AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh)
AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
AC_OUTPUT

View File

@ -0,0 +1,38 @@
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Fri Nov 16 13:01:05 2012
+++ b-3.3.0/configure.ac Fri Nov 16 13:03:37 2012
@@ -49,7 +49,7 @@
AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
fi
AC_MSG_RESULT($interp)
- PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=$srcdir"' _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp
+ PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=`pwd`"' _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp
fi
else
PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E'
@@ -334,9 +334,9 @@
then
# avoid using uname for cross builds
if test "$cross_compiling" = yes; then
- # ac_sys_system and ac_sys_release are only used for setting
- # `define_xopen_source' in the case statement below. For the
- # current supported cross builds, this macro is not adjusted.
+ # ac_sys_system and ac_sys_release are used for setting
+ # a lot of different things including 'define_xopen_source'
+ # in the case statement below.
case "$host" in
*-*-linux*)
ac_sys_system=Linux
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Fri Nov 16 13:01:18 2012
+++ b-3.3.0/setup.py Fri Nov 16 13:03:37 2012
@@ -520,6 +520,9 @@
'/lib', '/usr/lib',
]
inc_dirs = self.compiler.include_dirs + ['/usr/include']
+ else:
+ lib_dirs = self.compiler.library_dirs
+ inc_dirs = self.compiler.include_dirs
exts = []
missing = []

View File

@ -0,0 +1,118 @@
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Fri Nov 16 13:10:30 2012
+++ b-3.3.0/configure.ac Fri Nov 16 13:10:49 2012
@@ -334,6 +334,7 @@
then
# avoid using uname for cross builds
if test "$cross_compiling" = yes; then
+ ac_sys_release=
# ac_sys_system and ac_sys_release are used for setting
# a lot of different things including 'define_xopen_source'
# in the case statement below.
@@ -344,12 +345,32 @@
*-*-cygwin*)
ac_sys_system=Cygwin
;;
+ *-*-darwin*)
+ ac_sys_system=Darwin
+ ac_sys_release=$(echo $host | sed -n 's/.*-[^0-9]\+\([0-9]\+\)/\1/p')
+ if test -z "$ac_sys_release"; then
+ # A reasonable default.
+ ac_sys_release=11
+ fi
+ # Use the last released version number for old versions.
+ if test "$ac_sys_release" = "9" ; then
+ ac_sys_release=9.8
+ elif test "$ac_sys_release" = "10" ; then
+ ac_sys_release=10.8
+ elif test "$ac_sys_release" = "11" ; then
+ ac_sys_release=11.4.0
+ elif test "$ac_sys_release" = "12" ; then
+ ac_sys_release=12.0.0
+ else
+ # ..and .0.0 for unknown versions.
+ ac_sys_release=${ac_sys_release}.0.0
+ fi
+ ;;
*)
# for now, limit cross builds to known configurations
MACHDEP="unknown"
AC_MSG_ERROR([cross build not supported for $host])
esac
- ac_sys_release=
else
ac_sys_system=`uname -s`
if test "$ac_sys_system" = "AIX" \
@@ -389,6 +410,9 @@
*-*-cygwin*)
_host_cpu=
;;
+ *-*-darwin*)
+ _host_cpu=
+ ;;
*)
# for now, limit cross builds to known configurations
MACHDEP="unknown"
@@ -1098,6 +1122,26 @@
AC_SUBST(BASECFLAGS)
+if test "x$cross_compiling" = xyes; then
+ function cross_arch
+ {
+ case $host in
+ x86_64*darwin*)
+ echo i386
+ ;;
+ x86_64*)
+ echo x86_64
+ ;;
+ *)
+ echo i386
+ ;;
+ esac
+ }
+ ARCH_PROG=cross_arch
+else
+ ARCH_PROG=/usr/bin/arch
+fi
+
# The -arch flags for universal builds on OSX
UNIVERSAL_ARCH_FLAGS=
AC_SUBST(UNIVERSAL_ARCH_FLAGS)
@@ -1261,7 +1305,7 @@
cur_target='10.5'
fi
else
- if test `/usr/bin/arch` = "i386"; then
+ if test "$($ARCH_PROG)" = "i386"; then
# On Intel macs default to a deployment
# target of 10.4, that's the first OSX
# release with Intel support.
@@ -1762,7 +1806,7 @@
if test "${enable_universalsdk}"; then
:
else
- LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `/usr/bin/arch`"
+ LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only $($ARCH_PROG)"
fi
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
@@ -1787,7 +1831,7 @@
]])],[ac_osx_32bit=yes],[ac_osx_32bit=no],[ac_osx_32bit=yes])
if test "${ac_osx_32bit}" = "yes"; then
- case `/usr/bin/arch` in
+ case $($ARCH_PROG) in
i386)
MACOSX_DEFAULT_ARCH="i386"
;;
@@ -1799,7 +1843,7 @@
;;
esac
else
- case `/usr/bin/arch` in
+ case $($ARCH_PROG) in
i386)
MACOSX_DEFAULT_ARCH="x86_64"
;;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,249 @@
diff -urN a-3.3.0/Modules/_multiprocessing/multiprocessing.c b-3.3.0/Modules/_multiprocessing/multiprocessing.c
--- a-3.3.0/Modules/_multiprocessing/multiprocessing.c Fri Nov 16 23:02:08 2012
+++ b-3.3.0/Modules/_multiprocessing/multiprocessing.c Fri Nov 16 22:55:22 2012
@@ -200,12 +200,6 @@
Py_DECREF(temp); Py_DECREF(value); return NULL; } \
Py_DECREF(value)
-#ifndef MS_WINDOWS
-/* GCC(mingw) 4.4+ require and use posix threads(pthreads-w32)
- * Also system may contain installed pthreads-w32.
- * As multiprocessing is based on windows methods we must
- * comment all those flags
- */
#if defined(HAVE_SEM_OPEN) && !defined(POSIX_SEMAPHORES_NOT_ENABLED)
ADD_FLAG(HAVE_SEM_OPEN);
#endif
@@ -216,10 +210,8 @@
ADD_FLAG(HAVE_BROKEN_SEM_GETVALUE);
#endif
#ifdef HAVE_BROKEN_SEM_UNLINK
-/* FIXME: why use this? Note before was for cygwin and darwin ? */
ADD_FLAG(HAVE_BROKEN_SEM_UNLINK);
#endif
-#endif /*ndef MS_WINDOWS*/
if (PyModule_AddObject(module, "flags", temp) < 0)
return NULL;
diff -urN a-3.3.0/Modules/signalmodule.c b-3.3.0/Modules/signalmodule.c
--- a-3.3.0/Modules/signalmodule.c Fri Nov 16 23:02:08 2012
+++ b-3.3.0/Modules/signalmodule.c Fri Nov 16 22:55:53 2012
@@ -5,17 +5,6 @@
#include "Python.h"
-#ifdef __MINGW32__
-/* GCC 4.4+ (mingw) support posix threads!
- Note: macro __MINGW_GCC is defined for GCC 4.4+ but
- not for GCC 3.4.5 (last stable from 3.x )
- Instead to use __MINGW_GCC we will use more common
- __MINGW32__ to prevent case when in GCC 3.4.5 build
- envirionment is installed posix thread package.
- */
-# undef HAVE_PTHREAD_KILL
-#endif
-
#if defined(__CYGWIN__)
/* Type siginfo_t is different on cygwin. For instance si_band is not
* a member of structure, so until fill_siginfo(siginfo_t *si) is
diff -urN a-3.3.0/Python/ceval.c b-3.3.0/Python/ceval.c
--- a-3.3.0/Python/ceval.c Fri Nov 16 23:02:08 2012
+++ b-3.3.0/Python/ceval.c Fri Nov 16 22:55:24 2012
@@ -11,17 +11,6 @@
#include "Python.h"
-#ifdef __MINGW32__
-/* GCC 4.4+ (mingw) support posix threads!
- Note: macro __MINGW_GCC is defined for GCC 4.4+ but
- not for GCC 3.4.5 (last stable from 3.x )
- Instead to use __MINGW_GCC we will use more common
- __MINGW32__ to prevent case when in GCC 3.4.5 build
- envirionment is installed posix thread package.
- */
-# undef HAVE_PTHREAD_H
-#endif
-
#include "code.h"
#include "frameobject.h"
#include "opcode.h"
diff -urN a-3.3.0/Python/thread.c b-3.3.0/Python/thread.c
--- a-3.3.0/Python/thread.c Fri Nov 16 23:02:08 2012
+++ b-3.3.0/Python/thread.c Fri Nov 16 22:55:24 2012
@@ -7,17 +7,6 @@
#include "Python.h"
-#ifdef __MINGW32__
-/* GCC 4.4+ (mingw) support posix threads!
- Note: macro __MINGW_GCC is defined for GCC 4.4+ but
- not for GCC 3.4.5 (last stable from 3.x )
- Instead to use __MINGW_GCC we will use more common
- __MINGW32__ to prevent case when in GCC 3.4.5 build
- envirionment is installed posix thread package.
- */
-# undef HAVE_PTHREAD_H
-#endif
-
#ifndef _POSIX_THREADS
/* This means pthreads are not implemented in libc headers, hence the macro
not present in unistd.h. But they still can be implemented as an external
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Fri Nov 16 23:02:08 2012
+++ b-3.3.0/configure.ac Fri Nov 16 22:55:53 2012
@@ -1582,19 +1582,6 @@
AC_MSG_RESULT($ac_cv_pthread)
fi
-if test "x$ac_cv_kpthread" = xno && \
- test "x$ac_cv_kthread" = xno && \
- test "x$ac_cv_pthread" = xno && \
- test "x$ac_cv_pthread_is_default" = xno
-then
- AC_MSG_CHECKING(for NT threads)
- AC_CACHE_VAL(ac_cv_ntthread,
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[_beginthread(0, 0, 0);]])],
- ac_cv_ntthread=yes,
- ac_cv_ntthread=no)])
- AC_MSG_RESULT([$ac_cv_ntthread])
-fi
-
# If we have set a CC compiler flag for thread support then
# check if it works for CXX, too.
ac_cv_cxx_thread=no
@@ -1615,9 +1602,6 @@
then
CXX="$CXX -pthread"
ac_cv_cxx_thread=yes
-elif test "x$ac_cv_ntthread" = xyes
-then
- ac_cv_cxx_thread=always
fi
if test $ac_cv_cxx_thread = yes
@@ -1648,13 +1632,6 @@
# checks for header files
AC_HEADER_STDC
-case $host in
- *-*-mingw*)
- # TODO: not yet
- # NOTE: header is defined in Pthreads-w32
- ac_cv_header_sched_h=ignore
- ;;
-esac
ac_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
@@ -2308,20 +2285,11 @@
AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
# only check for sem_init if thread support is requested
-case $host in
- *-*-mingw*)
- dnl windows build don't use pthread and we don't like configure
- dnl to add pthread library if found
- :
- ;;
- *)
if test "$with_threads" = "yes" -o -z "$with_threads"; then
AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
# posix4 on Solaris 2.6
# pthread (first!) on Linux
fi
- ;;
-esac
# check if we need libintl for locale functions
case $host in
@@ -2518,13 +2486,6 @@
AC_DEFINE(WITH_THREAD)
posix_threads=yes
THREADOBJ="Python/thread.o"
-elif test "x$ac_cv_ntthread" = xyes
-then
- AC_DEFINE(WITH_THREAD)
- posix_threads=no
- THREADOBJ="Python/thread.o"
- AC_DEFINE(NT_THREADS, 1,
- [Define to 1 if you want to use native NT threads])
else
if test ! -z "$with_threads" -a -d "$with_threads"
then LDFLAGS="$LDFLAGS -L$with_threads"
@@ -2975,13 +2936,6 @@
fi
# checks for library functions
-case $host in
- *-*-mingw*)
- # TODO: not yet
- # NOTE: function is defined in Pthreads-w32
- ac_cv_func_sched_setscheduler=ignore
- ;;
-esac
AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
clock confstr ctermid execv faccessat fchmod fchmodat fchown fchownat \
fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \
@@ -4053,13 +4007,6 @@
# the kernel module that provides POSIX semaphores
# isn't loaded by default, so an attempt to call
# sem_open results in a 'Signal 12' error.
-if test $ac_cv_func_sem_open = yes; then
-case $host in
- *-*-mingw*)
- # GCC 4.4+ (mingw) support posix threads(!)
- # bug we won't use them on windows platform.
- ac_cv_posix_semaphores_enabled=no;;
-esac
AC_MSG_CHECKING(whether POSIX semaphores are enabled)
AC_CACHE_VAL(ac_cv_posix_semaphores_enabled,
AC_RUN_IFELSE([AC_LANG_SOURCE([[
@@ -4085,9 +4032,6 @@
[ac_cv_posix_semaphores_enabled=yes])
)
AC_MSG_RESULT($ac_cv_posix_semaphores_enabled)
-else
- ac_cv_posix_semaphores_enabled=no
-fi
if test $ac_cv_posix_semaphores_enabled = no
then
AC_DEFINE(POSIX_SEMAPHORES_NOT_ENABLED, 1,
@@ -4096,16 +4040,6 @@
# Multiprocessing check for broken sem_getvalue
AC_MSG_CHECKING(for broken sem_getvalue)
-case $host in
- *-*-mingw*)
- # GCC(mingw) 4.4+ require and use posix threads(pthreads-w32)
- # Also system may contain installed pthreads-w32.
- # NOTE the test case below don't work for pthreads-w32:
- # - SEM_FAILED is not defined;
- # - sem_open is stub;
- # - sem_getvalue work(!).
- ac_cv_broken_sem_getvalue=no;;
-esac
AC_CACHE_VAL(ac_cv_broken_sem_getvalue,
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <unistd.h>
@@ -5023,7 +4957,7 @@
# generate output files
AC_CONFIG_FILES([setup_info])
-AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh)
+AC_CONFIG_FILES([Makefile.pre Modules/Setup.config Misc/python.pc Misc/python-config.sh])
AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
AC_OUTPUT
diff -urN a-3.3.0/pyconfig.h.in b-3.3.0/pyconfig.h.in
--- a-3.3.0/pyconfig.h.in Fri Nov 16 23:02:08 2012
+++ b-3.3.0/pyconfig.h.in Fri Nov 16 22:55:53 2012
@@ -1139,9 +1139,6 @@
/* Define if mvwdelch in curses.h is an expression. */
#undef MVWDELCH_IS_EXPRESSION
-/* Define to 1 if you want to use native NT threads */
-#undef NT_THREADS
-
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

View File

@ -0,0 +1,227 @@
diff -urN a-3.3.0/Python/ceval.c b-3.3.0/Python/ceval.c
--- a-3.3.0/Python/ceval.c Fri Nov 16 16:37:52 2012
+++ b-3.3.0/Python/ceval.c Fri Nov 16 15:41:35 2012
@@ -11,6 +11,17 @@
#include "Python.h"
+#ifdef __MINGW32__
+/* GCC 4.4+ (mingw) support posix threads!
+ Note: macro __MINGW_GCC is defined for GCC 4.4+ but
+ not for GCC 3.4.5 (last stable from 3.x )
+ Instead to use __MINGW_GCC we will use more common
+ __MINGW32__ to prevent case when in GCC 3.4.5 build
+ envirionment is installed posix thread package.
+ */
+# undef HAVE_PTHREAD_H
+#endif
+
#include "code.h"
#include "frameobject.h"
#include "opcode.h"
diff -urN a-3.3.0/Python/thread.c b-3.3.0/Python/thread.c
--- a-3.3.0/Python/thread.c Fri Nov 16 16:37:14 2012
+++ b-3.3.0/Python/thread.c Fri Nov 16 15:41:35 2012
@@ -7,6 +7,17 @@
#include "Python.h"
+#ifdef __MINGW32__
+/* GCC 4.4+ (mingw) support posix threads!
+ Note: macro __MINGW_GCC is defined for GCC 4.4+ but
+ not for GCC 3.4.5 (last stable from 3.x )
+ Instead to use __MINGW_GCC we will use more common
+ __MINGW32__ to prevent case when in GCC 3.4.5 build
+ envirionment is installed posix thread package.
+ */
+# undef HAVE_PTHREAD_H
+#endif
+
#ifndef _POSIX_THREADS
/* This means pthreads are not implemented in libc headers, hence the macro
not present in unistd.h. But they still can be implemented as an external
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Fri Nov 16 16:34:58 2012
+++ b-3.3.0/configure.ac Fri Nov 16 15:41:27 2012
@@ -1582,6 +1582,19 @@
AC_MSG_RESULT($ac_cv_pthread)
fi
+if test "x$ac_cv_kpthread" = xno && \
+ test "x$ac_cv_kthread" = xno && \
+ test "x$ac_cv_pthread" = xno && \
+ test "x$ac_cv_pthread_is_default" = xno
+then
+ AC_MSG_CHECKING(for NT threads)
+ AC_CACHE_VAL(ac_cv_ntthread,
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[_beginthread(0, 0, 0);]])],
+ ac_cv_ntthread=yes,
+ ac_cv_ntthread=no)])
+ AC_MSG_RESULT([$ac_cv_ntthread])
+fi
+
# If we have set a CC compiler flag for thread support then
# check if it works for CXX, too.
ac_cv_cxx_thread=no
@@ -1602,6 +1615,9 @@
then
CXX="$CXX -pthread"
ac_cv_cxx_thread=yes
+elif test "x$ac_cv_ntthread" = xyes
+then
+ ac_cv_cxx_thread=always
fi
if test $ac_cv_cxx_thread = yes
@@ -1632,6 +1648,13 @@
# checks for header files
AC_HEADER_STDC
+case $host in
+ *-*-mingw*)
+ # TODO: not yet
+ # NOTE: header is defined in Pthreads-w32
+ ac_cv_header_sched_h=ignore
+ ;;
+esac
ac_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
@@ -2285,11 +2308,20 @@
AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
# only check for sem_init if thread support is requested
+case $host in
+ *-*-mingw*)
+ dnl windows build don't use pthread and we don't like configure
+ dnl to add pthread library if found
+ :
+ ;;
+ *)
if test "$with_threads" = "yes" -o -z "$with_threads"; then
AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
# posix4 on Solaris 2.6
# pthread (first!) on Linux
fi
+ ;;
+esac
# check if we need libintl for locale functions
case $host in
@@ -2486,6 +2518,13 @@
AC_DEFINE(WITH_THREAD)
posix_threads=yes
THREADOBJ="Python/thread.o"
+elif test "x$ac_cv_ntthread" = xyes
+then
+ AC_DEFINE(WITH_THREAD)
+ posix_threads=no
+ THREADOBJ="Python/thread.o"
+ AC_DEFINE(NT_THREADS, 1,
+ [Define to 1 if you want to use native NT threads])
else
if test ! -z "$with_threads" -a -d "$with_threads"
then LDFLAGS="$LDFLAGS -L$with_threads"
@@ -2936,6 +2975,13 @@
fi
# checks for library functions
+case $host in
+ *-*-mingw*)
+ # TODO: not yet
+ # NOTE: function is defined in Pthreads-w32
+ ac_cv_func_sched_setscheduler=ignore
+ ;;
+esac
AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
clock confstr ctermid execv faccessat fchmod fchmodat fchown fchownat \
fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \
@@ -4007,6 +4053,13 @@
# the kernel module that provides POSIX semaphores
# isn't loaded by default, so an attempt to call
# sem_open results in a 'Signal 12' error.
+if test $ac_cv_func_sem_open = yes; then
+case $host in
+ *-*-mingw*)
+ # GCC 4.4+ (mingw) support posix threads(!)
+ # bug we won't use them on windows platform.
+ ac_cv_posix_semaphores_enabled=no;;
+esac
AC_MSG_CHECKING(whether POSIX semaphores are enabled)
AC_CACHE_VAL(ac_cv_posix_semaphores_enabled,
AC_RUN_IFELSE([AC_LANG_SOURCE([[
@@ -4032,6 +4085,9 @@
[ac_cv_posix_semaphores_enabled=yes])
)
AC_MSG_RESULT($ac_cv_posix_semaphores_enabled)
+else
+ ac_cv_posix_semaphores_enabled=no
+fi
if test $ac_cv_posix_semaphores_enabled = no
then
AC_DEFINE(POSIX_SEMAPHORES_NOT_ENABLED, 1,
@@ -4040,6 +4096,16 @@
# Multiprocessing check for broken sem_getvalue
AC_MSG_CHECKING(for broken sem_getvalue)
+case $host in
+ *-*-mingw*)
+ # GCC(mingw) 4.4+ require and use posix threads(pthreads-w32)
+ # Also system may contain installed pthreads-w32.
+ # NOTE the test case below don't work for pthreads-w32:
+ # - SEM_FAILED is not defined;
+ # - sem_open is stub;
+ # - sem_getvalue work(!).
+ ac_cv_broken_sem_getvalue=no;;
+esac
AC_CACHE_VAL(ac_cv_broken_sem_getvalue,
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <unistd.h>
diff -urN a-3.3.0/Modules/_multiprocessing/multiprocessing.c b-3.3.0/Modules/_multiprocessing/multiprocessing.c
--- a-3.3.0/Modules/_multiprocessing/multiprocessing.c Fri Nov 16 23:42:12 2012
+++ b-3.3.0/Modules/_multiprocessing/multiprocessing.c Fri Nov 16 23:52:12 2012
@@ -200,6 +200,12 @@
Py_DECREF(temp); Py_DECREF(value); return NULL; } \
Py_DECREF(value)
+#ifndef MS_WINDOWS
+/* GCC(mingw) 4.4+ require and use posix threads(pthreads-w32)
+ * Also system may contain installed pthreads-w32.
+ * As multiprocessing is based on windows methods we must
+ * comment all those flags
+ */
#if defined(HAVE_SEM_OPEN) && !defined(POSIX_SEMAPHORES_NOT_ENABLED)
ADD_FLAG(HAVE_SEM_OPEN);
#endif
@@ -210,8 +216,10 @@
ADD_FLAG(HAVE_BROKEN_SEM_GETVALUE);
#endif
#ifdef HAVE_BROKEN_SEM_UNLINK
+/* FIXME: why use this? Note before was for cygwin and darwin ? */
ADD_FLAG(HAVE_BROKEN_SEM_UNLINK);
#endif
+#endif /*ndef MS_WINDOWS*/
if (PyModule_AddObject(module, "flags", temp) < 0)
return NULL;
diff -urN a-3.3.0/Modules/signalmodule.c b-3.3.0/Modules/signalmodule.c
--- a-3.3.0/Modules/signalmodule.c Fri Nov 16 23:42:12 2012
+++ b-3.3.0/Modules/signalmodule.c Fri Nov 16 23:52:12 2012
@@ -5,6 +5,17 @@
#include "Python.h"
+#ifdef __MINGW32__
+/* GCC 4.4+ (mingw) support posix threads!
+ Note: macro __MINGW_GCC is defined for GCC 4.4+ but
+ not for GCC 3.4.5 (last stable from 3.x )
+ Instead to use __MINGW_GCC we will use more common
+ __MINGW32__ to prevent case when in GCC 3.4.5 build
+ envirionment is installed posix thread package.
+ */
+# undef HAVE_PTHREAD_KILL
+#endif
+
#if defined(__CYGWIN__)
/* Type siginfo_t is different on cygwin. For instance si_band is not
* a member of structure, so until fill_siginfo(siginfo_t *si) is

View File

@ -0,0 +1,107 @@
diff -urN a-3.3.0/Python/condvar.h b-3.3.0/Python/condvar.h
--- a-3.3.0/Python/condvar.h Fri Nov 16 15:41:35 2012
+++ b-3.3.0/Python/condvar.h Fri Nov 16 17:11:23 2012
@@ -42,6 +42,12 @@
#include "Python.h"
+#ifdef __MINGW32__
+# if !defined(HAVE_PTHREAD_H) || defined(NT_THREADS)
+# undef _POSIX_THREADS
+# endif
+#endif
+
#ifndef _POSIX_THREADS
/* This means pthreads are not implemented in libc headers, hence the macro
not present in unistd.h. But they still can be implemented as an external
diff -urN a-3.3.0/Python/thread.c b-3.3.0/Python/thread.c
--- a-3.3.0/Python/thread.c Fri Nov 16 15:41:35 2012
+++ b-3.3.0/Python/thread.c Fri Nov 16 17:11:23 2012
@@ -15,7 +15,9 @@
__MINGW32__ to prevent case when in GCC 3.4.5 build
envirionment is installed posix thread package.
*/
-# undef HAVE_PTHREAD_H
+# if !defined(HAVE_PTHREAD_H) || defined(NT_THREADS)
+# undef _POSIX_THREADS
+# endif
#endif
#ifndef _POSIX_THREADS
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Fri Nov 16 15:41:27 2012
+++ b-3.3.0/configure.ac Fri Nov 16 17:11:23 2012
@@ -1468,6 +1468,16 @@
CFLAGS=$save_CFLAGS
fi
+AC_MSG_CHECKING(for NT threads)
+AC_CACHE_VAL(ac_cv_ntthread,
+[AC_LINK_IFELSE([
+ AC_LANG_PROGRAM([], [_beginthread(0, 0, 0);])],
+ac_cv_ntthread=yes,
+ac_cv_ntthread=no)])
+AC_MSG_RESULT([$ac_cv_ntthread])
+
+if test $ac_cv_ntthread = no
+then
# On some compilers, pthreads are available without further options
# (e.g. MacOS X). On some of these systems, the compiler will not
# complain if unaccepted options are passed (e.g. gcc on Mac OS X).
@@ -1582,17 +1592,6 @@
AC_MSG_RESULT($ac_cv_pthread)
fi
-if test "x$ac_cv_kpthread" = xno && \
- test "x$ac_cv_kthread" = xno && \
- test "x$ac_cv_pthread" = xno && \
- test "x$ac_cv_pthread_is_default" = xno
-then
- AC_MSG_CHECKING(for NT threads)
- AC_CACHE_VAL(ac_cv_ntthread,
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[_beginthread(0, 0, 0);]])],
- ac_cv_ntthread=yes,
- ac_cv_ntthread=no)])
- AC_MSG_RESULT([$ac_cv_ntthread])
fi
# If we have set a CC compiler flag for thread support then
@@ -1659,7 +1658,7 @@
CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
fcntl.h grp.h \
-ieeefp.h io.h langinfo.h libintl.h ncurses.h process.h pthread.h \
+ieeefp.h io.h langinfo.h libintl.h ncurses.h process.h \
sched.h shadow.h signal.h stdint.h stropts.h termios.h \
unistd.h utime.h \
poll.h sys/devpoll.h sys/epoll.h sys/poll.h \
@@ -1691,6 +1690,14 @@
])
+# If using nt threads, don't look for pthread.h or thread.h
+if test "x$ac_cv_ntthread" = xno ; then
+AC_HEADER_STDC
+AC_CHECK_HEADERS(pthread.h thread.h)
+AC_HEADER_DIRENT
+AC_HEADER_MAJOR
+fi
+
# On Solaris, term.h requires curses.h
AC_CHECK_HEADERS(term.h,,,[
#ifdef HAVE_CURSES_H
@@ -2316,9 +2323,11 @@
;;
*)
if test "$with_threads" = "yes" -o -z "$with_threads"; then
- AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
- # posix4 on Solaris 2.6
- # pthread (first!) on Linux
+ if test "$ac_cv_ntthread" = "no" -o -z "$ac_cv_ntthread"; then
+ AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
+ # posix4 on Solaris 2.6
+ # pthread (first!) on Linux
+ fi
fi
;;
esac

View File

@ -0,0 +1,248 @@
diff -urN a-3.3.0/Lib/ctypes/test/test_as_parameter.py b-3.3.0/Lib/ctypes/test/test_as_parameter.py
--- a-3.3.0/Lib/ctypes/test/test_as_parameter.py Fri Nov 16 22:55:53 2012
+++ b-3.3.0/Lib/ctypes/test/test_as_parameter.py Fri Nov 16 23:20:49 2012
@@ -1,7 +1,6 @@
import unittest
from ctypes import *
import _ctypes_test
-import sys
dll = CDLL(_ctypes_test.__file__)
@@ -172,10 +171,6 @@
s2h = dll.ret_2h_func(self.wrap(inp))
self.assertEqual((s2h.x, s2h.y), (99*2, 88*3))
- # This is known cdecl incompatibility between GCC
- # and MSVC. It is addressed in GCC issue #36834.
- # Python libffi detect it and complain.
- @unittest.skipIf(sys.platform == "win32" and sys.version.find("GCC") >= 0, 'XFAIL GCC(mingw)')
def test_struct_return_8H(self):
class S8I(Structure):
_fields_ = [("a", c_int),
diff -urN a-3.3.0/Lib/ctypes/test/test_functions.py b-3.3.0/Lib/ctypes/test/test_functions.py
--- a-3.3.0/Lib/ctypes/test/test_functions.py Fri Nov 16 22:55:53 2012
+++ b-3.3.0/Lib/ctypes/test/test_functions.py Fri Nov 16 23:21:17 2012
@@ -359,10 +359,6 @@
s2h = windll.s_ret_2h_func(S2H(99, 88))
self.assertEqual((s2h.x, s2h.y), (99*2, 88*3))
- # This is known cdecl incompatibility between GCC
- # and MSVC. It is addressed in GCC issue #36834.
- # Python libffi detect it and complain.
- @unittest.skipIf(sys.platform == "win32" and sys.version.find("GCC") >= 0, 'XFAIL GCC(mingw)')
def test_struct_return_8H(self):
class S8I(Structure):
_fields_ = [("a", c_int),
diff -urN a-3.3.0/Modules/_ctypes/libffi_msvc/win32.S b-3.3.0/Modules/_ctypes/libffi_msvc/win32.S
--- a-3.3.0/Modules/_ctypes/libffi_msvc/win32.S Fri Nov 16 22:55:53 2012
+++ b-3.3.0/Modules/_ctypes/libffi_msvc/win32.S Thu Jan 1 00:00:00 1970
@@ -1,154 +0,0 @@
-/* -----------------------------------------------------------------------
- win32.S - Copyright (c) 1996, 1998, 2001, 2002 Red Hat, Inc.
- Copyright (c) 2001 John Beniton
- Copyright (c) 2002 Ranjit Mathew
-
-
- X86 Foreign Function Interface
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- ``Software''), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
-#define LIBFFI_ASM
-#include <fficonfig.h>
-#include <ffi.h>
-
-.text
-
-.globl ffi_prep_args
-
- # This assumes we are using gas.
- .balign 16
-.globl _ffi_call_x86
-
-_ffi_call_x86:
- pushl %ebp
- movl %esp,%ebp
-
- #THe: save previous %esi, and store the current stack pointer in %esi
- pushl %esi
- movl %esp,%esi
-
- # Make room for all of the new args.
- movl 16(%ebp),%ecx
- subl %ecx,%esp
-
- movl %esp,%eax
-
- # Place all of the ffi_prep_args in position
- pushl 12(%ebp)
- pushl %eax
- call *8(%ebp)
-
- # Return stack to previous state and call the function
- addl $8,%esp
-
- # FIXME: Align the stack to a 128-bit boundary to avoid
- # potential performance hits.
-
- call *28(%ebp)
-
- # Load ecif->cif->abi
-#masm# mov ecx, [ebp + 12]
- movl 12(%ebp),%ecx
-#masm# mov ecx, [ecx]ecif.cif
- movl (%ecx),%ecx
-#masm# mov ecx, [ecx]ecif.cif.abi
- movl (%ecx),%ecx
-#masm# cmp ecx, FFI_STDCALL
- cmpl $2,%ecx
- je noclean
-
- # STDCALL: Remove the space we pushed for the args
- movl 16(%ebp),%ecx
- addl %ecx,%esp
-
- # CDECL: Caller has already cleaned the stack
-noclean:
- # Check that esp has the same value as before!
- sub %esp,%esi # calculate stack pointer difference
-
- # Load %ecx with the return type code
- movl 20(%ebp),%ecx
-
- # If the return value pointer is NULL, assume no return value.
- cmpl $0,24(%ebp)
- jne retint
-
- # Even if there is no space for the return value, we are
- # obliged to handle floating-point values.
- cmpl $FFI_TYPE_FLOAT,%ecx
- jne noretval
- fstp %st(0)
-
- jmp epilogue
-
-retint:
- cmpl $FFI_TYPE_INT,%ecx
- jne retfloat
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- movl %eax,0(%ecx)
- jmp epilogue
-
-retfloat:
- cmpl $FFI_TYPE_FLOAT,%ecx
- jne retdouble
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- fstps (%ecx)
- jmp epilogue
-
-retdouble:
- cmpl $FFI_TYPE_DOUBLE,%ecx
- jne retlongdouble
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- fstpl (%ecx)
- jmp epilogue
-
-retlongdouble:
- cmpl $FFI_TYPE_LONGDOUBLE,%ecx
- jne retint64
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- fstpt (%ecx)
- jmp epilogue
-
-retint64:
- cmpl $FFI_TYPE_SINT64,%ecx
- jne retstruct
- # Load %ecx with the pointer to storage for the return value
- movl 24(%ebp),%ecx
- movl %eax,0(%ecx)
- movl %edx,4(%ecx)
-
-retstruct:
- # Nothing to do!
-
-noretval:
-epilogue:
- movl %esi,%eax # return the stack pointer detlta in %eax
- popl %esi # restore previous %esi
- movl %ebp,%esp
- popl %ebp
- ret
-
-.ffi_call_x86_end:
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Fri Nov 16 23:10:10 2012
+++ b-3.3.0/setup.py Fri Nov 16 23:26:44 2012
@@ -1903,38 +1903,6 @@
return True
def configure_ctypes(self, ext):
- if host_platform in ['mingw', 'win32']:
- # win32 platform use own sources and includes
- # from Modules/_ctypes/libffi_msvc/
- srcdir = sysconfig.get_config_var('srcdir')
-
- ffi_srcdir = os.path.abspath(os.path.join(srcdir, 'Modules',
- '_ctypes'))
- sources = [os.path.join(ffi_srcdir, p)
- for p in ['malloc_closure.c',
- ]]
- ext.sources.extend(sources)
-
- ffi_srcdir = os.path.abspath(os.path.join(srcdir, 'Modules',
- '_ctypes', 'libffi_msvc'))
- #FIXME: _ctypes/libffi_msvc/win64.asm ?
- sources = [os.path.join(ffi_srcdir, p)
- for p in ['ffi.c',
- 'prep_cif.c',
- 'win32.S',
- ]]
- # NOTE: issue2942 don't resolve problem with assembler code.
- # It seems to me that python refuse to build an extension
- # if exist a source with unknown suffix.
- self.compiler.src_extensions.append('.s')
- self.compiler.src_extensions.append('.S')
- ext.include_dirs.append(ffi_srcdir)
- ext.sources.extend(sources)
- ext.libraries.extend(['ole32', 'oleaut32', 'uuid'])
- #AdditionalOptions="/EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE"
- ext.export_symbols.extend(['DllGetClassObject PRIVATE',
- 'DllCanUnloadNow PRIVATE'])
- return True
if not self.use_system_libffi:
if host_platform == 'darwin':
return self.configure_ctypes_darwin(ext)
@@ -1983,11 +1951,6 @@
fficonfig['ffi_sources'])
ext.include_dirs.extend(include_dirs)
ext.extra_compile_args.extend(extra_compile_args)
- if host_platform in ['mingw', 'win32']:
- ext.libraries.extend(['ole32', 'oleaut32', 'uuid'])
- #AdditionalOptions="/EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE"
- ext.export_symbols.extend(['DllGetClassObject PRIVATE',
- 'DllCanUnloadNow PRIVATE'])
return True
def detect_ctypes(self, inc_dirs, lib_dirs):

View File

@ -0,0 +1,218 @@
diff -urN a-3.3.0/Lib/ctypes/test/test_as_parameter.py b-3.3.0/Lib/ctypes/test/test_as_parameter.py
--- a-3.3.0/Lib/ctypes/test/test_as_parameter.py Fri Nov 16 23:45:23 2012
+++ b-3.3.0/Lib/ctypes/test/test_as_parameter.py Fri Nov 16 23:52:12 2012
@@ -1,6 +1,7 @@
import unittest
from ctypes import *
import _ctypes_test
+import sys
dll = CDLL(_ctypes_test.__file__)
@@ -171,6 +172,10 @@
s2h = dll.ret_2h_func(self.wrap(inp))
self.assertEqual((s2h.x, s2h.y), (99*2, 88*3))
+ # This is known cdecl incompatibility between GCC
+ # and MSVC. It is addressed in GCC issue #36834.
+ # Python libffi detect it and complain.
+ @unittest.skipIf(sys.platform == "win32" and sys.version.find("GCC") >= 0, 'XFAIL GCC(mingw)')
def test_struct_return_8H(self):
class S8I(Structure):
_fields_ = [("a", c_int),
diff -urN a-3.3.0/Lib/ctypes/test/test_functions.py b-3.3.0/Lib/ctypes/test/test_functions.py
--- a-3.3.0/Lib/ctypes/test/test_functions.py Fri Nov 16 23:45:23 2012
+++ b-3.3.0/Lib/ctypes/test/test_functions.py Fri Nov 16 23:52:12 2012
@@ -359,6 +359,10 @@
s2h = windll.s_ret_2h_func(S2H(99, 88))
self.assertEqual((s2h.x, s2h.y), (99*2, 88*3))
+ # This is known cdecl incompatibility between GCC
+ # and MSVC. It is addressed in GCC issue #36834.
+ # Python libffi detect it and complain.
+ @unittest.skipIf(sys.platform == "win32" and sys.version.find("GCC") >= 0, 'XFAIL GCC(mingw)')
def test_struct_return_8H(self):
class S8I(Structure):
_fields_ = [("a", c_int),
diff -urN a-3.3.0/Lib/distutils/sysconfig.py.rej b-3.3.0/Lib/distutils/sysconfig.py.rej
--- a-3.3.0/Lib/distutils/sysconfig.py.rej Thu Jan 1 00:00:00 1970
+++ b-3.3.0/Lib/distutils/sysconfig.py.rej Fri Nov 16 23:52:12 2012
@@ -0,0 +1,17 @@
+***************
+*** 553,559 ****
+ # Normally it is relative to the build directory. However, during
+ # testing, for example, we might be running a non-installed python
+ # from a different directory.
+- if python_build and os.name == "posix":
+ base = project_base
+ if (not os.path.isabs(_config_vars['srcdir']) and
+ base != os.getcwd()):
+--- 575,581 ----
+ # Normally it is relative to the build directory. However, during
+ # testing, for example, we might be running a non-installed python
+ # from a different directory.
++ if python_build and posix_build:
+ base = project_base
+ if (not os.path.isabs(_config_vars['srcdir']) and
+ base != os.getcwd()):
diff -urN a-3.3.0/Makefile.pre.in b-3.3.0/Makefile.pre.in
--- a-3.3.0/Makefile.pre.in Fri Nov 16 23:41:50 2012
+++ b-3.3.0/Makefile.pre.in Fri Nov 16 23:54:02 2012
@@ -474,6 +474,10 @@
$(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars
# Build the shared modules
+# The current py-code in case of cross-compilation (mingw on linux) will create
+# modules with .so suffix and SO environment variable cannot help as
+# the modules are linked with gcc instead *-mingw*-gcc.
+# FIXME: in cross-compilation environment how to select correct compiler/linker ?
sharedmods: $(BUILDPYTHON) $(SYSCONFIGDATA)
case $$MAKEFLAGS in *s*) quiet=-q; esac; \
$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
diff -urN a-3.3.0/Modules/_ctypes/callproc.c b-3.3.0/Modules/_ctypes/callproc.c
--- a-3.3.0/Modules/_ctypes/callproc.c Fri Nov 16 23:41:50 2012
+++ b-3.3.0/Modules/_ctypes/callproc.c Fri Nov 16 23:52:13 2012
@@ -795,8 +795,10 @@
#ifndef DONT_USE_SEH
__try {
#endif
+#ifndef __MINGW32__
delta =
#endif
+#endif
ffi_call(&cif, (void *)pProc, resmem, avalues);
#ifdef MS_WIN32
#ifndef DONT_USE_SEH
@@ -829,6 +831,7 @@
return -1;
}
#endif
+#ifndef __MINGW32__
#ifdef MS_WIN64
if (delta != 0) {
PyErr_Format(PyExc_RuntimeError,
@@ -857,6 +860,7 @@
delta);
return -1;
}
+#endif
#endif
#endif
if ((flags & FUNCFLAG_PYTHONAPI) && PyErr_Occurred())
diff -urN a-3.3.0/Modules/_ctypes/libffi/fficonfig.py.in b-3.3.0/Modules/_ctypes/libffi/fficonfig.py.in
--- a-3.3.0/Modules/_ctypes/libffi/fficonfig.py.in Fri Nov 16 23:41:50 2012
+++ b-3.3.0/Modules/_ctypes/libffi/fficonfig.py.in Fri Nov 16 23:52:13 2012
@@ -1,7 +1,6 @@
ffi_sources = """
src/prep_cif.c
src/closures.c
-src/dlmalloc.c
""".split()
ffi_platforms = {
@@ -23,6 +22,7 @@
'FRV': ['src/frv/eabi.S', 'src/frv/ffi.c'],
'S390': ['src/s390/sysv.S', 'src/s390/ffi.c'],
'X86_64': ['src/x86/ffi64.c', 'src/x86/unix64.S', 'src/x86/ffi.c', 'src/x86/sysv.S'],
+ 'X86_WIN64': ['src/x86/ffi.c', 'src/x86/win64.S'],
'SH': ['src/sh/sysv.S', 'src/sh/ffi.c'],
'SH64': ['src/sh64/sysv.S', 'src/sh64/ffi.c'],
'PA': ['src/pa/linux.S', 'src/pa/ffi.c'],
@@ -30,6 +30,9 @@
'PA_HPUX': ['src/pa/hpux32.S', 'src/pa/ffi.c'],
}
+ffi_target = '@TARGET@'
+if ffi_target not in ['X86_WIN32', 'X86_WIN64']:
+ ffi_sources += 'src/dlmalloc.c'
ffi_sources += ffi_platforms['@TARGET@']
ffi_cflags = '@CFLAGS@'
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Fri Nov 16 23:43:34 2012
+++ b-3.3.0/configure.ac Fri Nov 16 23:52:13 2012
@@ -2395,14 +2395,32 @@
[],
[with_system_ffi="no"])
-if test "$with_system_ffi" = "yes" && test -n "$PKG_CONFIG"; then
- LIBFFI_INCLUDEDIR="`"$PKG_CONFIG" libffi --cflags-only-I 2>/dev/null | sed -e 's/^-I//;s/ *$//'`"
+if test "$with_system_ffi" = "yes"; then
+ LIBFFI_INCLUDEDIR="$LIBFFI_INCLUDEDIR"
+fi
+AC_MSG_RESULT($with_system_ffi)
+
+ac_previous_cppflags=$CPPFLAGS
+CPPFLAGS="-I$LIBFFI_INCLUDEDIR"
+ac_previous_ldflags=$LDFLAGS
+# check for ffi.h
+AC_CHECK_HEADER(ffi.h, [
+ AC_DEFINE(WITH_SYSTEM_LIBFFI, 1,
+ [Define if we have external libffi.])
+ ffi_h="yes"
+],
+ffi_h="no"
+)
+if test "$ffi_h" = "yes"; then
+ LIBFFI_INCLUDEDIR="$LIBFFI_INCLUDEDIR"
else
LIBFFI_INCLUDEDIR=""
fi
+CPPFLAGS=$ac_previous_cppflags
+LDFLAGS=$ac_previous_ldflags
AC_SUBST(LIBFFI_INCLUDEDIR)
-AC_MSG_RESULT($with_system_ffi)
+
# Check for use of the system libmpdec library
AC_MSG_CHECKING(for --with-system-libmpdec)
diff -urN a-3.3.0/pyconfig.h.in b-3.3.0/pyconfig.h.in
--- a-3.3.0/pyconfig.h.in Fri Nov 16 23:42:12 2012
+++ b-3.3.0/pyconfig.h.in Fri Nov 16 23:54:46 2012
@@ -1139,6 +1139,9 @@
/* Define if mvwdelch in curses.h is an expression. */
#undef MVWDELCH_IS_EXPRESSION
+/* Define to 1 if you want to use native NT threads */
+#undef NT_THREADS
+
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
@@ -1314,6 +1317,9 @@
/* Define if you want to compile in Python-specific mallocs */
#undef WITH_PYMALLOC
+
+/* Define if we have external libffi. */
+#undef WITH_SYSTEM_LIBFFI
/* Define if you want to compile in rudimentary thread support */
#undef WITH_THREAD
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Fri Nov 16 23:45:23 2012
+++ b-3.3.0/setup.py Fri Nov 16 23:52:13 2012
@@ -1903,6 +1903,11 @@
return True
def configure_ctypes(self, ext):
+ if host_platform in ['mingw', 'win32']:
+ ext.libraries.extend(['ole32', 'oleaut32', 'uuid'])
+ #AdditionalOptions="/EXPORT:DllGetClassObject,PRIVATE /EXPORT:DllCanUnloadNow,PRIVATE"
+ ext.export_symbols.extend(['DllGetClassObject PRIVATE',
+ 'DllCanUnloadNow PRIVATE'])
if not self.use_system_libffi:
if host_platform == 'darwin':
return self.configure_ctypes_darwin(ext)
@@ -1925,6 +1930,10 @@
config_args = [arg for arg in sysconfig.get_config_var("CONFIG_ARGS").split()
if (('--host=' in arg) or ('--build=' in arg))]
+ if host_platform in ['mingw', 'win32']:
+ table = str.maketrans('\\', '/')
+ ffi_builddir = ffi_builddir.translate(table)
+ ffi_srcdir = ffi_srcdir.translate(table)
# Pass empty CFLAGS because we'll just append the resulting
# CFLAGS to Python's; -g or -O2 is to be avoided.
cmd = "cd %s && env CFLAGS='' '%s/configure' %s" \

View File

@ -0,0 +1,452 @@
diff -urN a-3.3.0/Include/fileutils.h b-3.3.0/Include/fileutils.h
--- a-3.3.0/Include/fileutils.h Sat Sep 29 09:00:25 2012
+++ b-3.3.0/Include/fileutils.h Sat Nov 17 00:16:19 2012
@@ -15,7 +15,7 @@
const wchar_t *text,
size_t *error_pos);
-#if defined(HAVE_STAT) && !defined(MS_WINDOWS)
+#if defined(HAVE_STAT) && (!defined(MS_WINDOWS) || defined(__MINGW32__))
PyAPI_FUNC(int) _Py_wstat(
const wchar_t* path,
struct stat *buf);
diff -urN a-3.3.0/Include/osdefs.h b-3.3.0/Include/osdefs.h
--- a-3.3.0/Include/osdefs.h Sat Nov 17 00:15:48 2012
+++ b-3.3.0/Include/osdefs.h Sat Nov 17 00:16:19 2012
@@ -10,7 +10,7 @@
/* Mod by chrish: QNX has WATCOM, but isn't DOS */
#if !defined(__QNX__)
#if defined(MS_WINDOWS) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__DJGPP__) || defined(PYOS_OS2)
-#if defined(PYOS_OS2) && defined(PYCC_GCC)
+#if (defined(PYOS_OS2) && defined(PYCC_GCC)) || defined(__MINGW32__)
#define MAXPATHLEN 260
#define SEP L'/'
#define ALTSEP L'\\'
@@ -22,6 +22,7 @@
#endif
#endif
#define DELIM L';'
+#define DELIMSTR ";"
#endif
#endif
@@ -42,6 +43,7 @@
/* Search path entry delimiter */
#ifndef DELIM
#define DELIM L':'
+#define DELIMSTR ":"
#endif
#ifdef __cplusplus
diff -urN a-3.3.0/Lib/plat-generic/regen b-3.3.0/Lib/plat-generic/regen
--- a-3.3.0/Lib/plat-generic/regen Sat Sep 29 09:00:31 2012
+++ b-3.3.0/Lib/plat-generic/regen Sat Nov 17 00:16:19 2012
@@ -1,3 +1,9 @@
#! /bin/sh
set -v
-python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+if [ -n "$1" ]; then
+ CCINSTALL=$($1 -print-search-dirs | head -1 | cut -d' ' -f2)
+ REGENHEADER=$CCINSTALL/include/stddef.h
+else
+ REGENHEADER=/usr/include/netinet/in.h
+fi
+python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' $REGENHEADER
diff -urN a-3.3.0/Makefile.pre.in b-3.3.0/Makefile.pre.in
--- a-3.3.0/Makefile.pre.in Sat Nov 17 00:15:49 2012
+++ b-3.3.0/Makefile.pre.in Sat Nov 17 00:16:19 2012
@@ -27,6 +27,7 @@
VERSION= @VERSION@
srcdir= @srcdir@
VPATH= @srcdir@
+MSYSVPATH= @MSYSVPATH@
CC= @CC@
CXX= @CXX@
@@ -89,7 +90,8 @@
# C flags used for building the interpreter object files
PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
-
+# ; on Windows otherwise :
+DELIM= @DELIM@
# Machine-dependent subdirectories
MACHDEP= @MACHDEP@
@@ -625,7 +627,7 @@
-DPREFIX='"$(prefix)"' \
-DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \
- -DVPATH='"$(VPATH)"' \
+ -DVPATH='"$(MSYSVPATH)"' \
-o $@ $(srcdir)/Modules/getpath.c
# default sys.path calculations for windows platforms
@@ -930,6 +932,7 @@
if test -f $(LDLIBRARY); then \
if test -n "$(DLLLIBRARY)" ; then \
$(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
+ mkdir -p $(DESTDIR)$(LIBPL); $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBPL); \
else \
$(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
if test $(LDLIBRARY) != $(INSTSONAME); then \
@@ -1120,7 +1123,7 @@
export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \
export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
export EXE; EXE="$(BUILDEXE)"; \
- cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
+ cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen "$(CC)"
python-config: $(srcdir)/Misc/python-config.in
# Substitution happens here, as the completely-expanded BINDIR
diff -urN a-3.3.0/Modules/Setup.config.in b-3.3.0/Modules/Setup.config.in
--- a-3.3.0/Modules/Setup.config.in Sat Nov 17 00:15:48 2012
+++ b-3.3.0/Modules/Setup.config.in Sat Nov 17 00:16:19 2012
@@ -15,6 +15,8 @@
# On win32 host(mingw build in MSYS environment) show that site.py
# fail to load if some modules are not build-in:
@BUILDIN_WIN32_MODULE@winreg ../PC/winreg.c
+@BUILDIN_WIN32_MODULE@time timemodule.c
+@BUILDIN_WIN32_MODULE@msvcrt ../PC/msvcrtmodule.c
# The rest of the modules previously listed in this file are built
diff -urN a-3.3.0/Modules/Setup.dist b-3.3.0/Modules/Setup.dist
--- a-3.3.0/Modules/Setup.dist Sat Nov 17 00:15:48 2012
+++ b-3.3.0/Modules/Setup.dist Sat Nov 17 00:16:19 2012
@@ -84,14 +84,14 @@
# Empty since this is now just the runtime prefix.
DESTPATH=
-# Site specific path components -- should begin with : if non-empty
+# Site specific path components -- should begin with $(DELIM) if non-empty
SITEPATH=
# Standard path components for test modules
TESTPATH=
# Path components for machine- or system-dependent modules and shared libraries
-MACHDEPPATH=:plat-$(MACHDEP)
+MACHDEPPATH=$(DELIM)plat-$(MACHDEP)
EXTRAMACHDEPPATH=
COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)
diff -urN a-3.3.0/Modules/getpath.c b-3.3.0/Modules/getpath.c
--- a-3.3.0/Modules/getpath.c Sat Sep 29 09:00:45 2012
+++ b-3.3.0/Modules/getpath.c Sat Nov 17 00:16:19 2012
@@ -10,6 +10,10 @@
#include <mach-o/dyld.h>
#endif
+#ifdef MS_WINDOWS
+#include <windows.h>
+#endif
+
/* Search in some common locations for the associated Python libraries.
*
* Two directories must be found, the platform independent directory
@@ -122,7 +126,7 @@
#endif
#ifndef PYTHONPATH
-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
+#define PYTHONPATH PREFIX "/lib/python" VERSION DELIMSTR \
EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
#endif
@@ -130,9 +134,17 @@
#define LANDMARK L"os.py"
#endif
+#ifdef __MINGW32__
+#define wcstok(line, delim, pointer) wcstok(line, delim)
+#endif
+
static wchar_t prefix[MAXPATHLEN+1];
static wchar_t exec_prefix[MAXPATHLEN+1];
static wchar_t progpath[MAXPATHLEN+1];
+#ifdef MS_WINDOWS
+static wchar_t dllpath[MAXPATHLEN+1];
+extern HANDLE PyWin_DLLhModule;
+#endif
static wchar_t *module_search_path = NULL;
static int module_search_path_malloced = 0;
static wchar_t *lib_python = L"lib/python" VERSION;
@@ -143,7 +155,7 @@
size_t i = wcslen(dir);
while (i > 0 && dir[i] != SEP)
--i;
- dir[i] = '\0';
+ dir[i] = 0;
}
static int
@@ -213,7 +225,11 @@
joinpath(wchar_t *buffer, wchar_t *stuff)
{
size_t n, k;
+#ifdef MS_WINDOWS
+ if (stuff[0] == SEP || (stuff[0] != 0 && stuff[1] == L':'))
+#else
if (stuff[0] == SEP)
+#endif
n = 0;
else {
n = wcslen(buffer);
@@ -234,7 +250,11 @@
static void
copy_absolute(wchar_t *path, wchar_t *p, size_t pathlen)
{
+#ifdef MS_WINDOWS
+ if (p[0] == SEP || (p[0] != 0 && p[1] == L':'))
+#else
if (p[0] == SEP)
+#endif
wcscpy(path, p);
else {
if (!_Py_wgetcwd(path, pathlen)) {
@@ -254,7 +274,11 @@
{
wchar_t buffer[MAXPATHLEN+1];
+#ifdef MS_WINDOWS
+ if (path[0] == SEP || (path[0] != 0 && path[1] == L':'))
+#else
if (path[0] == SEP)
+#endif
return;
copy_absolute(buffer, path, MAXPATHLEN+1);
wcscpy(path, buffer);
@@ -451,6 +475,35 @@
return 0;
}
+#ifdef MS_WINDOWS
+/* Calculates dllpath and progpath, replacing \\ with / */
+int GetWindowsModulePaths()
+{
+ int result = 0;
+ wchar_t* seps;
+ result = GetModuleFileNameW(NULL, progpath, MAXPATHLEN);
+ seps = wcschr(progpath, L'\\');
+ while(seps) {
+ *seps = L'/';
+ seps = wcschr(seps, L'\\');
+ }
+ dllpath[0] = 0;
+#ifdef Py_ENABLE_SHARED
+ if (PyWin_DLLhModule) {
+ if((GetModuleFileNameW(PyWin_DLLhModule, dllpath, MAXPATHLEN) > 0)) {
+ result = 1;
+ seps = wcschr(dllpath, L'\\');
+ while(seps) {
+ *seps = L'/';
+ seps = wcschr(seps, L'\\');
+ }
+ }
+ }
+#endif
+ return result;
+}
+#endif /* MS_WINDOWS */
+
static void
calculate_path(void)
{
@@ -527,6 +580,10 @@
}
}
#endif /* __APPLE__ */
+#ifdef MS_WINDOWS
+ else if(GetWindowsModulePaths()) {
+ }
+#endif /* MS_WINDOWS */
else if (path) {
while (1) {
wchar_t *delim = wcschr(path, DELIM);
@@ -556,7 +613,11 @@
progpath[0] = '\0';
if (path_buffer != NULL)
PyMem_Free(path_buffer);
+#ifdef MS_WINDOWS
+ if (progpath[0] != '\0' && progpath[0] != SEP && progpath[1] != L':')
+#else
if (progpath[0] != SEP && progpath[0] != '\0')
+#endif
absolutize(progpath);
wcsncpy(argv0_path, progpath, MAXPATHLEN);
argv0_path[MAXPATHLEN] = '\0';
@@ -873,7 +934,43 @@
}
-#ifdef __cplusplus
+#ifdef MS_WINDOWS
+/* Load python3.dll before loading any extension module that might refer
+ to it. That way, we can be sure that always the python3.dll corresponding
+ to this python DLL is loaded, not a python3.dll that might be on the path
+ by chance.
+ Return whether the DLL was found.
+*/
+static int python3_checked = 0;
+static HANDLE hPython3;
+int
+_Py_CheckPython3()
+{
+ wchar_t py3path[MAXPATHLEN+1];
+ wchar_t *s;
+ if (python3_checked)
+ return hPython3 != NULL;
+ python3_checked = 1;
+
+ /* If there is a python3.dll next to the python3y.dll,
+ assume this is a build tree; use that DLL */
+ wcscpy(py3path, dllpath);
+ s = wcsrchr(py3path, L'\\');
+ if (!s)
+ s = py3path;
+ wcscpy(s, L"\\python3.dll");
+ hPython3 = LoadLibraryExW(py3path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
+ if (hPython3 != NULL)
+ return 1;
+
+ /* Check sys.prefix\DLLs\python3.dll */
+ wcscpy(py3path, Py_GetPrefix());
+ wcscat(py3path, L"\\DLLs\\python3.dll");
+ hPython3 = LoadLibraryExW(py3path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
+ return hPython3 != NULL;
}
#endif
+#ifdef __cplusplus
+}
+#endif
diff -urN a-3.3.0/Modules/posixmodule.c b-3.3.0/Modules/posixmodule.c
--- a-3.3.0/Modules/posixmodule.c Sat Nov 17 00:15:48 2012
+++ b-3.3.0/Modules/posixmodule.c Sat Nov 17 00:16:19 2012
@@ -791,7 +791,7 @@
}
/* A helper used by a number of POSIX-only functions */
-#ifndef MS_WINDOWS
+#if !defined(MS_WINDOWS) || defined(__MINGW32__)
static int
_parse_off_t(PyObject* arg, void* addr)
{
@@ -3430,7 +3430,7 @@
Py_END_ALLOW_THREADS
/* FindNextFile sets error to ERROR_NO_MORE_FILES if
it got to the end of the directory. */
- if (!result && GetLastError() != ERROR_NO_MORE_FILES) {
+ if (!result && GetLastError() != 0 && GetLastError() != ERROR_NO_MORE_FILES) {
Py_DECREF(list);
list = win32_error_unicode("FindNextFileW", wnamebuf);
goto exit;
@@ -3485,7 +3485,7 @@
Py_END_ALLOW_THREADS
/* FindNextFile sets error to ERROR_NO_MORE_FILES if
it got to the end of the directory. */
- if (!result && GetLastError() != ERROR_NO_MORE_FILES) {
+ if (!result && GetLastError() != 0 && GetLastError() != ERROR_NO_MORE_FILES) {
Py_DECREF(list);
list = win32_error("FindNextFile", namebuf);
goto exit;
diff -urN a-3.3.0/Python/fileutils.c b-3.3.0/Python/fileutils.c
--- a-3.3.0/Python/fileutils.c Sat Sep 29 09:00:49 2012
+++ b-3.3.0/Python/fileutils.c Sat Nov 17 00:16:19 2012
@@ -251,7 +251,7 @@
Not sure whether the MS_WINDOWS guards are necessary:
perhaps for cygwin/mingw builds?
*/
-#if defined(HAVE_STAT) && !defined(MS_WINDOWS)
+#if defined(HAVE_STAT) && (!defined(MS_WINDOWS) || defined(__MINGW32__))
/* Get file status. Encode the path to the locale encoding. */
diff -urN a-3.3.0/Python/pythonrun.c b-3.3.0/Python/pythonrun.c
--- a-3.3.0/Python/pythonrun.c Sat Sep 29 09:00:49 2012
+++ b-3.3.0/Python/pythonrun.c Sat Nov 17 00:16:19 2012
@@ -787,6 +787,13 @@
void
Py_SetProgramName(wchar_t *pn)
{
+#ifdef __MINGW32__
+ wchar_t* seps = wcschr(pn, ALTSEP);
+ while(seps) {
+ *seps = SEP;
+ seps = wcschr(seps, ALTSEP);
+ }
+#endif
if (pn && *pn)
progname = pn;
}
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Sat Nov 17 00:15:49 2012
+++ b-3.3.0/configure.ac Sat Nov 17 00:16:19 2012
@@ -576,6 +576,27 @@
fi
AC_MSG_RESULT($MACHDEP)
+# Windows uses ; to separate paths, everything else uses :
+AC_MSG_CHECKING(DELIM)
+DELIM=:
+if test "$MACHDEP" = "win"
+then
+ DELIM=\;
+fi
+AC_MSG_RESULT([$DELIM])
+AC_SUBST(DELIM)
+
+# MSYS make uses a 'virtual' VPATH, but getpath.c uses
+# GetModuleFileNameW (replacing \ with /). This allows the user to
+# define the 'actual 'real' value. Note, it should contain / not \,
+# which is what is returned by "pwd -W".
+AC_ARG_VAR(MSYSVPATH,
+ For MSYS, allows specifying the real VPATH. Use / not \)
+if test -z "$MSYSVPATH"; then
+ MSYSVPATH=$srcdir
+fi
+AC_SUBST(MSYSVPATH)
+
AC_MSG_CHECKING([for init system calls])
AC_SUBST(INITSYS)
case $host in
@@ -4253,6 +4274,28 @@
# check for endianness
AC_C_BIGENDIAN
+# REPARSE_DATA_BUFFER is in winnt.h on mingw32 and (unusably) ddk/ntifs.h on mingw64.
+case $host in
+ *-*-mingw*)
+AC_CACHE_CHECK([if struct REPARSE_DATA_BUFFER is in winnt.h],
+[ac_cv_struct_reparse_data_buffer_in_winnt_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <windows.h>
+ #include <winnt.h>],
+ [REPARSE_DATA_BUFFER rdb],
+ )],
+ [ac_cv_struct_reparse_data_buffer_in_winnt_h=yes],
+ [ac_cv_struct_reparse_data_buffer_in_winnt_h=no]
+ )
+])
+if test "x${ac_cv_struct_reparse_data_buffer_in_winnt_h}" = xyes; then
+ AC_DEFINE([REPARSE_DATA_BUFFER_IN_WINNT], [], [REPARSE_DATA_BUFFER in winnt.h])
+ AC_SUBST(REPARSE_DATA_BUFFER_IN_WINNT)
+fi
+ ;;
+esac
+
# ABI version string for Python extension modules. This appears between the
# periods in shared library file names, e.g. foo.<SOABI>.so. It is calculated
# from the following attributes which affect the ABI of this Python build (in
@@ -4948,7 +4991,8 @@
# FIXME: why windows builds don't use PC/frozen_dllmain.o ?
PYTHON_OBJS_FROZENMAIN=""
# default sys.path calculations for windows platforms
- MODULE_GETPATH=PC/getpathp.o
+ # MODULE_GETPATH=PC/getpathp.o
+ MODULE_GETPATH=Modules/getpath.o
;;
esac

View File

@ -0,0 +1,78 @@
diff -urN a-3.3.0/Lib/distutils/sysconfig.py b-3.3.0/Lib/distutils/sysconfig.py
--- a-3.3.0/Lib/distutils/sysconfig.py Fri Nov 16 17:23:38 2012
+++ b-3.3.0/Lib/distutils/sysconfig.py Fri Nov 16 17:24:11 2012
@@ -140,7 +140,7 @@
else:
prefix = plat_specific and EXEC_PREFIX or PREFIX
- if os.name == "posix":
+ if os.name == "posix" or sys.version.find('GCC') >= 0:
libpython = os.path.join(prefix,
"lib", "python" + get_python_version())
if standard_lib:
diff -urN a-3.3.0/Lib/sysconfig.py b-3.3.0/Lib/sysconfig.py
--- a-3.3.0/Lib/sysconfig.py Fri Nov 16 17:23:39 2012
+++ b-3.3.0/Lib/sysconfig.py Fri Nov 16 17:24:11 2012
@@ -43,13 +43,13 @@
'data': '{base}',
},
'nt': {
- 'stdlib': '{installed_base}/Lib',
- 'platstdlib': '{base}/Lib',
- 'purelib': '{base}/Lib/site-packages',
- 'platlib': '{base}/Lib/site-packages',
- 'include': '{installed_base}/Include',
- 'platinclude': '{installed_base}/Include',
- 'scripts': '{base}/Scripts',
+ 'stdlib': '{installed_base}/lib/python{py_version_short}',
+ 'platstdlib': '{base}/lib/python{py_version_short}',
+ 'purelib': '{base}/lib/python{py_version_short}',
+ 'platlib': '{base}/lib/python{py_version_short}',
+ 'include': '{installed_base}/include/python{py_version_short}',
+ 'platinclude': '{installed_base}/include/python{py_version_short}',
+ 'scripts': '{base}/bin',
'data': '{base}',
},
'os2': {
@@ -72,12 +72,12 @@
'data': '{userbase}',
},
'nt_user': {
- 'stdlib': '{userbase}/Python{py_version_nodot}',
- 'platstdlib': '{userbase}/Python{py_version_nodot}',
- 'purelib': '{userbase}/Python{py_version_nodot}/site-packages',
- 'platlib': '{userbase}/Python{py_version_nodot}/site-packages',
- 'include': '{userbase}/Python{py_version_nodot}/Include',
- 'scripts': '{userbase}/Scripts',
+ 'stdlib': '{userbase}/lib/python{py_version_short}',
+ 'platstdlib': '{userbase}/lib/python{py_version_short}',
+ 'purelib': '{userbase}/lib/python{py_version_short}',
+ 'platlib': '{userbase}/lib/python{py_version_short}',
+ 'include': '{userbase}/include/python{py_version_short}',
+ 'scripts': '{userbase}/bin',
'data': '{userbase}',
},
'posix_user': {
@@ -415,7 +415,7 @@
vars['INCLUDEPY'] = get_path('include')
vars['SO'] = '.pyd'
vars['EXE'] = '.exe'
- vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT
+ vars['VERSION'] = _PY_VERSION_SHORT
vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable))
#
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Fri Nov 16 17:23:36 2012
+++ b-3.3.0/configure.ac Fri Nov 16 17:24:11 2012
@@ -89,8 +89,8 @@
AC_SUBST(VERSION)
case $host in
*-*-mingw*)
- dnl To be compatible with MSVC build.
-VERSION=`echo PYTHON_VERSION | sed -e 's|\.||g'`
+ dnl To be *incompatible* with MSVC build!
+VERSION=PYTHON_VERSION
;;
*)
VERSION=PYTHON_VERSION

View File

@ -0,0 +1,61 @@
diff -urN a-3.3.0/Lib/distutils/cygwinccompiler.py b-3.3.0/Lib/distutils/cygwinccompiler.py
--- a-3.3.0/Lib/distutils/cygwinccompiler.py Fri Nov 16 17:26:57 2012
+++ b-3.3.0/Lib/distutils/cygwinccompiler.py Fri Nov 16 17:27:14 2012
@@ -58,6 +58,7 @@
from distutils import log
from distutils.version import LooseVersion
from distutils.spawn import find_executable
+from subprocess import Popen, PIPE
def get_msvcr():
"""Include the appropriate MSVC runtime library if Python was built
@@ -395,7 +396,7 @@
return (CONFIG_H_UNCERTAIN,
"couldn't read '%s': %s" % (fn, exc.strerror))
-RE_VERSION = re.compile(b'(\d+\.\d+(\.\d+)*)')
+RE_VERSION = re.compile(b'[\D\s]*(\d+\.\d+(\.\d+)*)[\D\s]*$')
def _find_exe_version(cmd):
"""Find the version of an executable by running `cmd` in the shell.
@@ -423,5 +424,14 @@
If not possible it returns None for it.
"""
- commands = ['gcc -dumpversion', 'ld -v', 'dllwrap --version']
+ gcc = os.environ.get('CC') or 'gcc'
+ ld = 'ld'
+ out = Popen(gcc+' --print-prog-name ld', shell=True, stdout=PIPE).stdout
+ try:
+ ld = test=str(out.read(),encoding='utf-8').strip()
+ finally:
+ out.close()
+ dllwrap = os.environ.get('DLLWRAP') or 'dllwrap'
+ # MinGW64 doesn't have i686-w64-mingw32-ld, so instead we ask gcc.
+ commands = [gcc+' -dumpversion', ld+' -v', dllwrap+' --version']
return tuple([_find_exe_version(cmd) for cmd in commands])
diff -urN a-3.3.0/Modules/Setup.config.in b-3.3.0/Modules/Setup.config.in
--- a-3.3.0/Modules/Setup.config.in Fri Nov 16 17:27:00 2012
+++ b-3.3.0/Modules/Setup.config.in Fri Nov 16 17:27:14 2012
@@ -17,6 +17,7 @@
@BUILDIN_WIN32_MODULE@winreg ../PC/winreg.c
@BUILDIN_WIN32_MODULE@time timemodule.c
@BUILDIN_WIN32_MODULE@msvcrt ../PC/msvcrtmodule.c
+@BUILDIN_WIN32_MODULE@_winapi _winapi.c
# The rest of the modules previously listed in this file are built
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Fri Nov 16 17:27:05 2012
+++ b-3.3.0/setup.py Fri Nov 16 17:27:14 2012
@@ -972,7 +972,9 @@
for p in ['_msi.c']],
libraries=['msi','cabinet','rpcrt4']) )
- exts.append( Extension('_winapi', ['_winapi.c']) )
+ # Added to Setup.config.in as now needed earlier since I
+ # use subprocess (which uses Popen) in cygwinccompiler.py
+ # exts.append( Extension('_winapi', ['_winapi.c']) )
# On win32 host(mingw build in MSYS environment) show that site.py
# fail to load if some modules are not build-in:

View File

@ -0,0 +1,24 @@
diff -urN a-3.3.0/Include/pyport.h b-3.3.0/Include/pyport.h
--- a-3.3.0/Include/pyport.h Fri Nov 16 17:28:36 2012
+++ b-3.3.0/Include/pyport.h Fri Nov 16 17:30:39 2012
@@ -206,9 +206,11 @@
/* Smallest negative value of type Py_ssize_t. */
#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1)
+/*
#if SIZEOF_PID_T > SIZEOF_LONG
# error "Python doesn't support sizeof(pid_t) > sizeof(long)"
#endif
+*/
/* PY_FORMAT_SIZE_T is a platform-specific modifier for use in a printf
* format to convert an argument with the width of a size_t or Py_ssize_t.
@@ -241,6 +243,8 @@
# define PY_FORMAT_SIZE_T "l"
# elif defined(MS_WINDOWS)
# define PY_FORMAT_SIZE_T "I"
+# elif defined(__MINGW32__) && defined(__USE_MINGW_ANSI_STDIO)
+# define PY_FORMAT_SIZE_T "z"
# else
# error "This platform's pyconfig.h needs to define PY_FORMAT_SIZE_T"
# endif

View File

@ -0,0 +1,15 @@
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Fri Nov 16 17:33:43 2012
+++ b-3.3.0/setup.py Fri Nov 16 17:33:55 2012
@@ -498,10 +498,10 @@
if not cross_compiling:
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+ self.add_multiarch_paths()
# only change this for cross builds for 3.3, issues on Mageia
if cross_compiling:
self.add_gcc_paths()
- self.add_multiarch_paths()
# Add paths specified in the environment variables LDFLAGS and
# CPPFLAGS for header and library files.

View File

@ -0,0 +1,12 @@
diff -urN a-3.3.0/Lib/compileall.py b-3.3.0/Lib/compileall.py
--- a-3.3.0/Lib/compileall.py Fri Nov 16 17:35:37 2012
+++ b-3.3.0/Lib/compileall.py Fri Nov 16 17:36:36 2012
@@ -47,6 +47,8 @@
if name == '__pycache__':
continue
fullname = os.path.join(dir, name)
+ if sys.platform == "win32" and sys.version.find("GCC") >= 0:
+ fullname = fullname.replace('\\','/')
if ddir is not None:
dfile = os.path.join(ddir, name)
else:

View File

@ -0,0 +1,81 @@
diff -urN a-3.3.0/Lib/distutils/command/install.py b-3.3.0/Lib/distutils/command/install.py
--- a-3.3.0/Lib/distutils/command/install.py Fri Nov 16 17:38:07 2012
+++ b-3.3.0/Lib/distutils/command/install.py Fri Nov 16 18:08:10 2012
@@ -4,6 +4,7 @@
import sys
import os
+import re
from distutils import log
from distutils.core import Command
@@ -15,6 +16,37 @@
from distutils.util import get_platform
from distutils.errors import DistutilsOptionError
+def is_msys_mingw():
+ if sys.platform == "win32" and "MSYSTEM" in os.environ and sys.version.find("GCC") >= 0:
+ if os.environ["MSYSTEM"] == "MINGW32":
+ return 1
+ return 0
+
+def has_msys():
+ _msysdll = "msys-1.0.dll"
+ for _path in os.environ["PATH"].split(os.pathsep):
+ currpath = os.path.join(_path, _msysdll)
+ if os.path.isfile(currpath) and os.access(currpath, os.F_OK):
+ return _path
+ return None
+
+def msys_root():
+ if is_msys_mingw() and has_msys() is not None:
+ arg = has_msys()
+ if arg == None:
+ return None
+ arg = arg.rstrip("\\")
+ if arg.endswith("\\bin"):
+ # drop the \\bin
+ arg = arg[:-4]
+ table = str.maketrans('\\', '/')
+ arg = arg.translate(table)
+ if arg.endswith("/"):
+ arg = arg[:-1]
+ return arg
+ else:
+ return None
+
# this keeps compatibility from 2.3 to 2.5
if sys.version < "2.6":
USER_BASE = None
@@ -336,6 +368,14 @@
self.expand_basedirs()
self.dump_dirs("post-expand_basedirs()")
+
+ # MSYS (probably) will have transformed --root=/ to the
+ # windows path where the msys is installed, so we check if root begins
+ # with msysroot and if it does then we set root to None again!
+ if self.root is not None and is_msys_mingw():
+ msysroot = msys_root()
+ if msysroot != None and self.root.find(msysroot)==0:
+ self.root = self.root.replace(msysroot, "/")
# Now define config vars for the base directories so we can expand
# everything else.
diff -urN a-3.3.0/Lib/distutils/util.py b-3.3.0/Lib/distutils/util.py
--- a-3.3.0/Lib/distutils/util.py Fri Nov 16 17:38:07 2012
+++ b-3.3.0/Lib/distutils/util.py Fri Nov 16 18:08:10 2012
@@ -131,6 +131,13 @@
paths.remove('.')
if not paths:
return os.curdir
+ # On Windows, if paths is ['C:','folder','subfolder'] then
+ # os.path.join(*paths) will return 'C:folder\subfolder' which
+ # is thus relative to the CWD on that drive. So we work around
+ # this by adding a \ to path[0]
+ if (len(paths) > 0 and paths[0].endswith(':') and
+ sys.platform == "win32" and sys.version.find("GCC") >= 0):
+ paths[0] += '\\'
return os.path.join(*paths)
# convert_path ()

View File

@ -0,0 +1,15 @@
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Sat Nov 17 00:18:21 2012
+++ b-3.3.0/setup.py Sat Nov 17 00:18:53 2012
@@ -2232,8 +2232,9 @@
newfilename = filename + fullversion
else:
newfilename = filename + minoronly
- log.info('renaming {} to {}'.format(filename, newfilename))
- os.rename(filename, newfilename)
+ if not os.path.exists(newfilename):
+ log.info('renaming {} to {}'.format(filename, newfilename))
+ os.rename(filename, newfilename)
newoutfiles.append(newfilename)
if filename in updated_files:
newupdated_files.append(newfilename)

View File

@ -0,0 +1,73 @@
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Fri Nov 16 18:11:30 2012
+++ b-3.3.0/setup.py Fri Nov 16 18:13:52 2012
@@ -582,7 +582,7 @@
if host_platform == 'hp-ux11':
lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32']
- if host_platform == 'darwin':
+ if host_platform in ['darwin', 'mingw', 'win32']:
# This should work on any unixy platform ;-)
# If the user has bothered specifying additional -I and -L flags
# in OPT and LDFLAGS we might as well use them here.
@@ -593,6 +593,8 @@
# FIXME: Why LDFLAGS again ?
cflags, ldflags = sysconfig.get_config_vars(
'CFLAGS', 'LDFLAGS')
+ cflags = cflags + ' ' + ('',os.environ.get('CC'))[os.environ.get('CC') != None]
+ ldflags = ldflags + ' ' + ('',os.environ.get('LDSHARED'))[os.environ.get('LDSHARED') != None]
for item in cflags.split():
if item.startswith('-I'):
inc_dirs.append(item[2:])
@@ -1766,14 +1768,19 @@
# The versions with dots are used on Unix, and the versions without
# dots on Windows, for detection by cygwin.
tcllib = tklib = tcl_includes = tk_includes = None
- for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83',
- '8.2', '82', '8.1', '81', '8.0', '80']:
- tklib = self.compiler.find_library_file(lib_dirs,
- 'tk' + version)
- tcllib = self.compiler.find_library_file(lib_dirs,
- 'tcl' + version)
- if tklib and tcllib:
- # Exit the loop when we've found the Tcl/Tk libraries
+ tcltk_suffix = None
+ for suffix in ['', 's']:
+ for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83',
+ '8.2', '82', '8.1', '81', '8.0', '80', '']:
+ tklib = self.compiler.find_library_file(lib_dirs,
+ 'tk' + version + suffix)
+ tcllib = self.compiler.find_library_file(lib_dirs,
+ 'tcl' + version + suffix)
+ if tklib and tcllib:
+ # Exit the loop when we've found the Tcl/Tk libraries
+ tcltk_suffix = suffix
+ break
+ if tcltk_suffix != None:
break
# Now check for the header files
@@ -1843,15 +1850,21 @@
libs.append('BLT')
# Add the Tcl/Tk libraries
- libs.append('tk'+ version)
- libs.append('tcl'+ version)
+ libs.append('tk'+ version + tcltk_suffix)
+ libs.append('tcl'+ version + tcltk_suffix)
+ if host_platform in ['mingw', 'win32']:
+ for winlib in ['ws2_32','gdi32','comctl32','comdlg32','imm32','uuid','oleaut32','ole32']:
+ libs.append( winlib )
if host_platform in ['aix3', 'aix4']:
libs.append('ld')
# Finally, link with the X11 libraries (not appropriate on cygwin, mingw)
+ # ...on those platforms, define STATIC_BUILD if linking to static tcl/tk.
if not host_platform in ['cygwin', 'mingw', 'win32']:
libs.append('X11')
+ elif tcllib.endswith('s.a'):
+ defs.append( ('STATIC_BUILD',1) )
ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
define_macros=[('WITH_APPINIT', 1)] + defs,

View File

@ -0,0 +1,23 @@
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Sat Nov 17 00:21:19 2012
+++ b-3.3.0/configure.ac Sat Nov 17 00:21:54 2012
@@ -1676,7 +1676,9 @@
;;
esac
ac_save_cppflags="$CPPFLAGS"
+if test yes != "$cross_compiling"; then
CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
+fi
AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
fcntl.h grp.h \
ieeefp.h io.h langinfo.h libintl.h ncurses.h process.h \
@@ -4658,7 +4660,9 @@
fi
ac_save_cppflags="$CPPFLAGS"
+if test yes != "$cross_compiling"; then
CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
+fi
# On HP/UX 11.0, mvwdelch is a block with a return statement
AC_MSG_CHECKING(whether mvwdelch is an expression)
AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,

View File

@ -0,0 +1,99 @@
diff -urN a-3.3.0/Include/py_curses.h b-3.3.0/Include/py_curses.h
--- a-3.3.0/Include/py_curses.h Sat Sep 29 09:00:26 2012
+++ b-3.3.0/Include/py_curses.h Sat Nov 17 00:25:00 2012
@@ -14,7 +14,9 @@
/* the following define is necessary for OS X 10.6; without it, the
Apple-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python
can't get at the WINDOW flags field. */
+/* NOTE configure check if ncurses require such definition
#define NCURSES_OPAQUE 0
+*/
#endif /* __APPLE__ */
#ifdef __FreeBSD__
@@ -57,9 +59,12 @@
#ifdef HAVE_NCURSES_H
/* configure was checking <curses.h>, but we will
use <ncurses.h>, which has all these features. */
+/* NOTE configure check for existence of flags
+ * Also flags are visible only if WINDOW structure is not opaque
#ifndef WINDOW_HAS_FLAGS
#define WINDOW_HAS_FLAGS 1
#endif
+*/
#ifndef MVWDELCH_IS_EXPRESSION
#define MVWDELCH_IS_EXPRESSION 1
#endif
diff -urN a-3.3.0/configure.ac b-3.3.0/configure.ac
--- a-3.3.0/configure.ac Sat Nov 17 00:24:30 2012
+++ b-3.3.0/configure.ac Sat Nov 17 00:25:00 2012
@@ -4681,15 +4681,51 @@
fi
AC_MSG_CHECKING(whether WINDOW has _flags)
-AC_CACHE_VAL(ac_cv_window_has_flags,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <curses.h>]], [[
WINDOW *w;
w->_flags = 0;
]])],
[ac_cv_window_has_flags=yes],
-[ac_cv_window_has_flags=no]))
+[ac_cv_window_has_flags=no])
AC_MSG_RESULT($ac_cv_window_has_flags)
+py_curses_window_is_opaque=no
+if test no = $ac_cv_window_has_flags; then
+ AC_MSG_CHECKING([whether WINDOW has _flags in non-opaque structure])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ #define NCURSES_OPAQUE 0
+ #include <curses.h>
+ ]],[[
+ WINDOW *w;
+ w->_flags = 0;
+ ]])],
+ [py_curses_window_is_opaque=yes])
+ AC_MSG_RESULT([$py_curses_window_is_opaque])
+fi
+if test yes = $py_curses_window_is_opaque; then
+ ac_cv_window_has_flags=yes
+ AC_DEFINE([NCURSES_OPAQUE], [0], [Define to 0 if you have WINDOW _flags in non-opaque structure.])
+fi
+
+py_curses_window_is_internal=no
+if test no = $ac_cv_window_has_flags; then
+ AC_MSG_CHECKING([whether WINDOW has _flags as internal structure])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ #define NCURSES_INTERNALS 1
+ #include <curses.h>
+ ]],[[
+ WINDOW *w;
+ w->_flags = 0;
+ ]])],
+ [py_curses_window_is_internal=yes])
+ AC_MSG_RESULT([$py_curses_window_is_internal])
+fi
+if test yes = $py_curses_window_is_internal; then
+ ac_cv_window_has_flags=yes
+ AC_DEFINE([NCURSES_INTERNALS], [1], [Define to 1 if you have WINDOW _flags as internal structure.])
+fi
if test "$ac_cv_window_has_flags" = yes
then
diff -urN a-3.3.0/pyconfig.h.in b-3.3.0/pyconfig.h.in
--- a-3.3.0/pyconfig.h.in Sat Nov 17 00:24:30 2012
+++ b-3.3.0/pyconfig.h.in Sat Nov 17 00:25:00 2012
@@ -1142,6 +1142,12 @@
/* Define to 1 if you want to use native NT threads */
#undef NT_THREADS
+/* Define to 1 if you have WINDOW _flags as internal structure. */
+#undef NCURSES_INTERNALS
+
+/* Define to 0 if you have WINDOW _flags in non-opaque structure. */
+#undef NCURSES_OPAQUE
+
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

View File

@ -0,0 +1,14 @@
diff -urN a-3.3.0/Include/py_curses.h b-3.3.0/Include/py_curses.h
--- a-3.3.0/Include/py_curses.h Fri Nov 16 18:18:25 2012
+++ b-3.3.0/Include/py_curses.h Fri Nov 16 18:18:49 2012
@@ -56,6 +56,10 @@
#endif
#endif
+#if defined(__MINGW32__) && !defined(_ISPAD)
+#define _ISPAD 0x10
+#endif
+
#ifdef HAVE_NCURSES_H
/* configure was checking <curses.h>, but we will
use <ncurses.h>, which has all these features. */

View File

@ -0,0 +1,12 @@
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Sat Nov 17 00:26:05 2012
+++ b-3.3.0/setup.py Sat Nov 17 00:26:52 2012
@@ -1877,7 +1877,7 @@
## # Uncomment these lines if you want to play with xxmodule.c
## ext = Extension('xx', ['xxmodule.c'])
## self.extensions.append(ext)
- if 'd' not in sys.abiflags:
+ if 'd' not in sys.abiflags and not COMPILED_WITH_PYDEBUG:
ext = Extension('xxlimited', ['xxlimited.c'],
define_macros=[('Py_LIMITED_API', 1)])
self.extensions.append(ext)

View File

@ -0,0 +1,33 @@
diff -urN a-3.3.0/Modules/parsermodule.c b-3.3.0/Modules/parsermodule.c
--- a-3.3.0/Modules/parsermodule.c 2012-09-29 09:00:45.000000000 +0100
+++ b-3.3.0/Modules/parsermodule.c 2012-11-17 23:40:40.108791547 +0000
@@ -37,7 +37,7 @@
#undef Yield
#include "ast.h"
-extern grammar _PyParser_Grammar; /* From graminit.c */
+PyAPI_DATA(grammar) _PyParser_Grammar; /* From graminit.c */
#ifdef lint
#include <note.h>
diff -urN a-3.3.0/Parser/metagrammar.c b-3.3.0/Parser/metagrammar.c
--- a-3.3.0/Parser/metagrammar.c 2012-09-29 09:00:48.000000000 +0100
+++ b-3.3.0/Parser/metagrammar.c 2012-11-17 23:40:40.104793597 +0000
@@ -139,7 +139,7 @@
{7, 0},
{8, 0},
};
-static grammar _PyParser_Grammar = {
+static grammar _PyParser_MetaGrammar = {
6,
dfas,
{19, labels},
@@ -149,7 +149,7 @@
grammar *
meta_grammar(void)
{
- return &_PyParser_Grammar;
+ return &_PyParser_MetaGrammar;
}
grammar *

View File

@ -0,0 +1,31 @@
diff -urN a-3.3.0/Makefile.pre.in b-3.3.0/Makefile.pre.in
--- a-3.3.0/Makefile.pre.in 2012-11-17 23:40:08.365070820 +0000
+++ b-3.3.0/Makefile.pre.in 2012-11-17 23:43:34.762212549 +0000
@@ -596,13 +596,13 @@
############################################################################
# Importlib
-Modules/_freeze_importlib: Modules/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
+_freeze_importlib$(EXE): Modules/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
$(LINKCC) $(PY_LDFLAGS) -o $@ Modules/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Modules/_freeze_importlib.c
- $(MAKE) Modules/_freeze_importlib
- ./Modules/_freeze_importlib \
- $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h
+$(srcdir)/Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py $(srcdir)/Modules/_freeze_importlib.c
+ $(MAKE) _freeze_importlib$(EXE)
+ ./_freeze_importlib$(EXE) \
+ $(srcdir)/Lib/importlib/_bootstrap.py $(srcdir)/Python/importlib.h
############################################################################
@@ -1363,7 +1363,7 @@
find build -name 'fficonfig.py' -exec rm -f {} ';' || true
-rm -f Lib/lib2to3/*Grammar*.pickle
-rm -f $(SYSCONFIGDATA)
- -rm -f _testembed$(EXE) Modules/_freeze_importlib
+ -rm -f Modules/_testembed _freeze_importlib$(EXE)
profile-removal:
find . -name '*.gc??' -exec rm -f {} ';'

View File

@ -0,0 +1,21 @@
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Mon Nov 19 13:57:49 2012
+++ b-3.3.0/setup.py Mon Nov 19 13:59:22 2012
@@ -27,6 +27,17 @@
return sys.platform
host_platform = get_platform()
+# On MSYS, os.system needs to be wrapped with sh.exe
+# as otherwise all the io redirection will fail.
+# Arguably, this could happen inside the real os.system
+# rather than this monkey patch.
+if sys.platform == "win32" and "MSYSTEM" in os.environ:
+ os_system = os.system
+ def msys_system(command):
+ command_in_sh = 'sh.exe -c "%s"' % command
+ return os_system(command_in_sh)
+ os.system = msys_system
+
# Were we compiled --with-pydebug or with #define Py_DEBUG?
COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS"))

View File

@ -0,0 +1,68 @@
diff -urN a-3.3.0/setup.py b-3.3.0/setup.py
--- a-3.3.0/setup.py Mon Nov 19 14:30:48 2012
+++ b-3.3.0/setup.py Mon Nov 19 14:44:34 2012
@@ -425,7 +425,7 @@
# Debian/Ubuntu multiarch support.
# https://wiki.ubuntu.com/MultiarchSpec
cc = sysconfig.get_config_var('CC')
- tmpfile = os.path.join(self.build_temp, 'multiarch')
+ tmpfile = os.path.join(self.build_temp, 'multiarch').replace('\\','/')
if not os.path.exists(self.build_temp):
os.makedirs(self.build_temp)
ret = os.system(
@@ -450,7 +450,7 @@
opt = ''
if cross_compiling:
opt = '-t' + sysconfig.get_config_var('HOST_GNU_TYPE')
- tmpfile = os.path.join(self.build_temp, 'multiarch')
+ tmpfile = os.path.join(self.build_temp, 'multiarch').replace('\\','/')
if not os.path.exists(self.build_temp):
os.makedirs(self.build_temp)
ret = os.system(
@@ -469,7 +469,7 @@
def add_gcc_paths(self):
gcc = sysconfig.get_config_var('CC')
- tmpfile = os.path.join(self.build_temp, 'gccpaths')
+ tmpfile = os.path.join(self.build_temp, 'gccpaths').replace('\\','/')
if not os.path.exists(self.build_temp):
os.makedirs(self.build_temp)
ret = os.system('%s -E -v - </dev/null 2>%s 1>/dev/null' % (gcc, tmpfile))
@@ -737,7 +737,7 @@
readline_termcap_library = ""
curses_library = ""
# Cannot use os.popen here in py3k.
- tmpfile = os.path.join(self.build_temp, 'readline_termcap_lib')
+ tmpfile = os.path.join(self.build_temp, 'readline_termcap_lib').replace('\\','/')
if not os.path.exists(self.build_temp):
os.makedirs(self.build_temp)
# Determine if readline is already linked against curses or tinfo.
@@ -905,7 +905,7 @@
opensslv_h = find_file('openssl/opensslv.h', [],
inc_dirs + search_for_ssl_incs_in)
if opensslv_h:
- name = os.path.join(opensslv_h[0], 'openssl/opensslv.h')
+ name = os.path.join(opensslv_h[0], 'openssl/opensslv.h').replace('\\','/')
if host_platform == 'darwin' and is_macosx_sdk_path(name):
name = os.path.join(macosx_sdk_root(), name[1:])
try:
@@ -1731,16 +1731,16 @@
cflags = sysconfig.get_config_vars('CFLAGS')[0]
archs = re.findall('-arch\s+(\w+)', cflags)
- tmpfile = os.path.join(self.build_temp, 'tk.arch')
+ tmpfile = os.path.join(self.build_temp, 'tk.arch').replace('\\','/')
if not os.path.exists(self.build_temp):
os.makedirs(self.build_temp)
# Note: cannot use os.popen or subprocess here, that
# requires extensions that are not available here.
if is_macosx_sdk_path(F):
- os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(os.path.join(sysroot, F[1:]), tmpfile))
+ os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(os.path.join(sysroot, F[1:]).replace('\\','/'), tmpfile))
else:
- os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(F, tmpfile))
+ os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(F.replace('\\','/'), tmpfile))
with open(tmpfile) as fp:
detected_archs = []

View File

@ -0,0 +1,11 @@
--- Python-3.3.0/Include/pyport.h 2013-01-14 14:24:26.000000000 +0100
+++ Python-3.3.0/Include/pyport.h 2013-01-14 14:26:12.000000000 +0100
@@ -243,7 +243,7 @@
# define PY_FORMAT_SIZE_T "l"
# elif defined(MS_WINDOWS)
# define PY_FORMAT_SIZE_T "I"
-# elif defined(__MINGW32__) && defined(__USE_MINGW_ANSI_STDIO)
+# elif defined(__MINGW32__)
# define PY_FORMAT_SIZE_T "z"
# else
# error "This platform's pyconfig.h needs to define PY_FORMAT_SIZE_T"

87
src/python.mk Normal file
View File

@ -0,0 +1,87 @@
# This file is part of MXE.
# See index.html for further information.
PKG := python
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.3.0
$(PKG)_CHECKSUM := 15c113fd6c058712f05d31b4eff149d4d823b8e39ef5e37228dc5dc4f8716df9
$(PKG)_SUBDIR := Python-$($(PKG)_VERSION)
$(PKG)_FILE := Python-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://python.org/ftp/python/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc libiconv zlib
PATH_TO_HOST_PYTHON := $(PREFIX)/share/$($(PKG)_SUBDIR)
define $(PKG)_UPDATE
wget -q -O- 'http://python.org/download/releases/' | \
$(SED) -n 's_.*">Python \(3.3.[0-9]\)</a>.*_\1_ip' | \
head -1
endef
define $(PKG)_BUILD
## Build HOSTPYTHON and Parser/pgen on HOST with unpatched sources
## http://randomsplat.com/id5-cross-compiling-python-for-embedded-linux.html
if ! $(PATH_TO_HOST_PYTHON)/python --version ; then \
echo "Built host python and Parser/pgen in $(PATH_TO_HOST_PYTHON)"; \
( cd $$(dirname $(PATH_TO_HOST_PYTHON)) && tar xf $(PWD)/pkg/$($(PKG)_FILE) ); \
( cd $(PATH_TO_HOST_PYTHON) && \
./configure --disable-ipv6 && \
$(MAKE) python Parser/pgen Modules/_freeze_importlib \
) ; \
fi
## Cross compiling python, see also
## http://bugs.python.org/issue1597850
## http://cawanblog.blogspot.co.at/
echo ac_cv_file__dev_ptmx=no > '$(1)'/config.site
echo ac_cv_file__dev_ptc=no >> '$(1)'/config.site
## use patch set git://github.com/niXman/mingw-builds.git
cd '$(1)' && autoconf
cd '$(1)' && \
MACHDEP=Linux \
cross_compiling=yes \
CONFIG_SITE=config.site \
CC_FOR_BUILD=$(TARGET)-gcc \
PYTHON_FOR_BUILD=$(PREFIX)/$(TARGET)/python.exe \
ac_cv_have_long_long_format=yes \
./configure \
--without-threads \
--with-libs='-lmsvcrt -liconv -lz' \
--host='$(TARGET)' \
--build="`config.guess`" \
--prefix='$(PREFIX)/$(TARGET)/$($(PKG)_SUBDIR)'
## modify Makefile such that HOSTPGEN is used instead of Parser/pgen.exe
$(SED) -i 's#$$(PGEN) $$(GRAMMAR_INPUT)#$$(HOSTPGEN) $$(GRAMMAR_INPUT)#g' '$(1)'/Makefile
## modify Makefile such that HOST_FREEZE_IMPORTLIB is used instead of _freeze_importlib.exe
$(SED) -i 's#./_freeze_importlib$$(EXE)#$$(HOST_FREEZE_IMPORTLIB)#g' '$(1)'/Makefile
PYTHONHOME='$(1)':'$(1)'/Lib/ \
$(MAKE) -C '$(1)' \
HOSTPYTHON=$(PATH_TO_HOST_PYTHON)/python \
HOSTPGEN=$(PATH_TO_HOST_PYTHON)/Parser/pgen \
HOST_FREEZE_IMPORTLIB=$(PATH_TO_HOST_PYTHON)/Modules/_freeze_importlib \
BLDSHARED="$(TARGET)-gcc -shared" \
CROSS_COMPILE=$(TARGET)- \
CROSS_COMPILE_TARGET=yes \
HOSTARCH=$(TARGET) \
BUILDARCH=x86_64-linux-gnu \
python.exe
## runtime test using wine
[[ -z `wine '$(1)'/python.exe --version` ]] || echo "no runtime test - because wine is not available"
## Install target system
rm -rf '$(PREFIX)/$(TARGET)/$($(PKG)_SUBDIR)'
cp -r '$(1)' '$(PREFIX)/$(TARGET)/'
cp -r '$(1)/python.exe' '$(PREFIX)/$(TARGET)/bin/'
ln -sf '$(PREFIX)/$(TARGET)/$($(PKG)_SUBDIR)/Include' '$(PREFIX)/$(TARGET)/include/$($(PKG)_SUBDIR)'
endef

27
src/qcad.mk Normal file
View File

@ -0,0 +1,27 @@
# This file is part of MXE.
# See index.html for further information.
PKG := qcad
$(PKG)_IGNORE :=
$(PKG)_VERSION := 3.4.2.0
$(PKG)_CHECKSUM := 6a4228ba2ead58752d1de564840255014e35a40a
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := v$($(PKG)_VERSION).zip
$(PKG)_URL := https://github.com/$(PKG)/$(PKG)/archive/$($(PKG)_FILE)
$(PKG)_DEPS := gcc qt5
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://qcad.org/en/qcad-downloads-trial' | \
$(SED) 's,.*QCAD version \([0-9\.]\) .*,\1,g;' | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && $(PREFIX)/$(TARGET)/qt5/bin/qmake
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
endef

25
src/qhull.mk Normal file
View File

@ -0,0 +1,25 @@
# This file is part of MXE.
# See index.html for further information.
PKG := qhull
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2015.2
$(PKG)_CHECKSUM := ccba72a9d9c614181b45666f12df1a8fd0b34236099f247b9bc008f6c3ec7872
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).zip
$(PKG)_URL := http://www.qhull.org/download/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
echo 'Warning: Updates are temporarily disabled for package qhull.' >&2;
echo $(qhull_VERSION)
endef
define $(PKG)_BUILD
mkdir '$(1)/.build'
cd '$(1)/.build' && $(TARGET)-cmake $(1)
make -C '$(1)/.build' -j '$(JOBS)'
make -C '$(1)/.build' install
endef

45926
src/qrupdate-1-fixes.patch Normal file

File diff suppressed because it is too large Load Diff

30
src/qrupdate.mk Normal file
View File

@ -0,0 +1,30 @@
# This file is part of MXE.
# See index.html for further information.
PKG := qrupdate
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.1.2
$(PKG)_CHECKSUM := e2a1c711dc8ebc418e21195833814cb2f84b878b90a2774365f0166402308e08
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := qrupdate-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://sourceforge.net/projects/qrupdate/files/$($(PKG)_FILE)
$(PKG)_DEPS := gcc blas lapack
define $(PKG)_UPDATE
echo 'Warning: Updates are temporarily disabled for package qrupdate.' >&2;
echo $(qrupdate_VERSION)
endef
define $(PKG)_BUILD
chmod a+rx '$(1)/configure'
cd '$(1)' && '$(1)/configure' \
--host='$(TARGET)' \
--build="`config.guess`" \
--prefix='$(PREFIX)/$(TARGET)' \
--enable-static \
--disable-shared
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' install
endef

28
src/qscintilla.mk Normal file
View File

@ -0,0 +1,28 @@
# This file is part of MXE.
# See index.html for further information.
PKG := qscintilla
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2.7
$(PKG)_CHECKSUM := 296c03343f5d84f0c06a16eb3fb706e0eb735ea6
$(PKG)_SUBDIR := QScintilla-gpl-$($(PKG)_VERSION)/Qt4Qt5
$(PKG)_FILE := QScintilla-gpl-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.7/$($(PKG)_FILE)
$(PKG)_DEPS := gcc qtbase
define $(PKG)_UPDATE
echo 'Warning: Updates are temporarily disabled for package qscintilla.' >&2;
echo $(qscintilla_VERSION)
endef
define $(PKG)_BUILD
cd '$(1)' && '$(PREFIX)/$(TARGET)/qt/bin/qmake' -makefile -spec '$(PREFIX)/$(TARGET)/qt/mkspecs/win32-g++'
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
$(INSTALL) -m755 '$(PREFIX)/$(TARGET)/lib/qscintilla2.dll' '$(PREFIX)/$(TARGET)/bin/qscintilla2.dll'
endef
$(PKG)_BUILD_i686-pc-mingw32 =
$(PKG)_BUILD_i686-w64-mingw32 =
$(PKG)_BUILD_x86_64-w64-mingw32 =

View File

@ -0,0 +1,18 @@
diff --git a/sigviewer.pro b/sigviewer.pro
index 39a9bb5..e063cd9 100644
--- a/sigviewer.pro
+++ b/sigviewer.pro
@@ -41,11 +41,9 @@ macx {
}
INCLUDEPATH += \
- $$PWD/external/include \
$$PWD/src
LIBS += \
- -L$$PWD/external/lib \
- -lbiosig -lxdf
+ -lbiosig -lxdf -ltinyxml
RESOURCES = $$PWD/src/src.qrc

View File

@ -0,0 +1,41 @@
diff --git a/changelog.txt b/changelog.txt
index 3b52178..3ddfa74 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,6 @@
+Version X.X.X
+(B) Fix crash when exporting events to CSV
+
Version 0.6.4
(+) Re-enable import/export event from/to EVT
diff --git a/src/gui_impl/commands/save_gui_command.cpp b/src/gui_impl/commands/save_gui_command.cpp
index 8c37f8a..87e5aa9 100644
--- a/src/gui_impl/commands/save_gui_command.cpp
+++ b/src/gui_impl/commands/save_gui_command.cpp
@@ -299,14 +299,17 @@ void SaveGuiCommand::exportEventsToCSV ()
for (unsigned int i = 0; i < event_manager_pt->getNumberOfEvents(); i++)
{
- row tmp = {
- event_manager_pt->getEvent(i)->getPosition(),
- event_manager_pt->getEvent(i)->getDuration(),
- event_manager_pt->getEvent(i)->getChannel(),
- event_manager_pt->getEvent(i)->getType(),
- event_manager_pt->getNameOfEvent(i)
- };
- events.append(tmp);
+ auto evt = event_manager_pt->getEvent(i);
+ if (evt != NULL) {
+ row tmp = {
+ evt->getPosition(),
+ evt->getDuration(),
+ evt->getChannel(),
+ evt->getType(),
+ event_manager_pt->getNameOfEvent(i)
+ };
+ events.append(tmp);
+ }
}
std::sort(events.begin(),

28
src/sigviewer.mk Normal file
View File

@ -0,0 +1,28 @@
# This file is part of MXE.
# See index.html for further information.
PKG := sigviewer
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.6.4
$(PKG)_CHECKSUM := e64516b0d5a2ac65b1ef496a6666cdac8919b67eecd8d5eb6b7cbf2493314367
$(PKG)_SUBDIR := sigviewer-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz
$(PKG)_URL := https://github.com/cbrnr/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz
$(PKG)_QT_DIR := qt5
$(PKG)_DEPS := biosig libxdf qtbase
define $(PKG)_UPDATE
wget -q -O- 'http://biosig.sourceforge.net/download.html' | \
$(SED) -n 's_.*>libbiosig, version \([0-9]\.[0-9]\.[0-9]\).*tar.gz_\1_ip'
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && CFLAGS=-fstack-protector CXXFLAGS=-fstack-protector && \
LIBS='-l$(PREFIX)/$(TARGET)/lib/libtinyxml.a -l$(PREFIX)/$(TARGET)/$($(PKG)_QT_DIR)/plugins/platforms/libqwindows.a' \
$(PREFIX)/$(TARGET)/$($(PKG)_QT_DIR)/bin/qmake sigviewer.pro
$(MAKE) -C '$(1)'
$(INSTALL) '$(1)'/bin/release/sigviewer.exe $(PREFIX)/$(TARGET)/bin/$(PKG).exe
endef

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More