# HG changeset patch # User Markus Mützel # Date 1619110635 -7200 # Node ID 399c7b225e13be81c1de558ad4eb5ecd32af10a1 # Parent 52da5d311d13047d20e989906cb64d08aa77a70f libbiosig: Update build rule (patch #10058) * src/libbiosig.mk: Overhaul build rule. * src/libbiosig-1-mingw-install.patch: Add patch for Makefile to allow installation for mingw targets. * dist-files.mk: Add new file to build system diff -r 52da5d311d13 -r 399c7b225e13 dist-files.mk --- a/dist-files.mk Thu Apr 22 18:47:16 2021 +0200 +++ b/dist-files.mk Thu Apr 22 18:57:15 2021 +0200 @@ -225,6 +225,7 @@ libass-test.c \ libass.mk \ libb64.mk \ + libbiosig-1-mingw-install.patch \ libbiosig.mk \ libcdio.mk \ libcroco.mk \ diff -r 52da5d311d13 -r 399c7b225e13 src/libbiosig-1-mingw-install.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/libbiosig-1-mingw-install.patch Thu Apr 22 18:57:15 2021 +0200 @@ -0,0 +1,48 @@ +diff --git "a/biosig4c++/Makefile.in" "b/biosig4c++/Makefile.in" +index c05e4d1..5da0565 100644 +--- "a/biosig4c++/Makefile.in" ++++ "b/biosig4c++/Makefile.in" +@@ -139,6 +139,7 @@ endif + SONAMEVERSION ?= 3 + + ### TODO: DLEXT does not work correctly on MXE/MINGW ++DLDIR = $(libdir) + ifneq (,$(findstring Darwin, $(shell uname))) + ## Homebrew: + ## brew install gawk +@@ -183,11 +184,17 @@ else ifneq (,$(findstring MINGW, $(shell uname))) + LDLIBS += -liconv -lws2_32 + LDFLAGS += -Wl,-subsystem,windows + LDFLAGS += -L$(prefix)/lib/ ++ DLDIR = $(bindir) + + else + TAR = tar + LD = $(CXX) +- FULLDLEXT = .so.${SONAMEVERSION} ++ ifneq (,$(findstring mingw,$(TARGET))) ++ FULLDLEXT = ${SONAMEVERSION}.dll ++ DLDIR = $(bindir) ++ else ++ FULLDLEXT = .so.${SONAMEVERSION} ++ endif + SONAME_PREFIX = -Wl,-soname= + endif + +@@ -937,12 +944,11 @@ install_libbiosig.a: libbiosig.a libphysicalunits.a libbiosig.pc + install libphysicalunits.a $(DESTDIR)$(libdir) + install libbiosig.pc $(DESTDIR)$(libdir)/pkgconfig/ + +-install_libbiosig.$(DLEXT): libbiosig$(FULLDLEXT) libbiosig.$(DLEXT) +- install -d $(DESTDIR)$(libdir)/pkgconfig/ +- install libbiosig$(FULLDLEXT) $(DESTDIR)$(libdir) +- (cd $(DESTDIR)$(libdir) && ln -sf libbiosig$(FULLDLEXT) libbiosig${SONAMEVERSION}.$(DLEXT)) ++install_libbiosig.$(DLEXT): libbiosig.$(DLEXT) ++ install -d $(DESTDIR)$(DLDIR)/pkgconfig/ ++ install libbiosig.$(DLEXT) $(DESTDIR)$(DLDIR) + ifneq (Darwin,$(shell uname)) +- cd $(DESTDIR)$(libdir) && ln -sf libbiosig$(FULLDLEXT) libbiosig.$(DLEXT) ++ cd $(DESTDIR)$(DLDIR) && ln -sf libbiosig.$(DLEXT) libbiosig$(FULLDLEXT) + endif + -ldconfig + diff -r 52da5d311d13 -r 399c7b225e13 src/libbiosig.mk --- a/src/libbiosig.mk Thu Apr 22 18:47:16 2021 +0200 +++ b/src/libbiosig.mk Thu Apr 22 18:57:15 2021 +0200 @@ -17,52 +17,44 @@ head -1 endef +ifeq ($(MXE_WINDOWS_BUILD),yes) + $(PKG)_MAKE_FLAGS := TARGET=$(TARGET) CROSS=$(TARGET) + $(PKG)_AUTOCONF_CROSS_FLAGS := \ + ac_cv_func_malloc_0_nonnull=yes \ + ac_cv_func_realloc_0_nonnull=yes +else + $(PKG)_MAKE_FLAGS := LDLIBS='-liconv -lm -ltinyxml' +endif + define $(PKG)_BUILD - cd '$(1)' && ./configure \ - ac_cv_func_malloc_0_nonnull=yes \ - ac_cv_func_realloc_0_nonnull=yes \ - --prefix=$(HOST_PREFIX) \ - $(HOST_AND_BUILD_CONFIGURE_OPTIONS) - - # make sure NDEBUG is defined - $(SED) -i '/NDEBUG/ s|#||g' '$(1)'/biosig4c++/Makefile - - TARGET=$(TARGET) CROSS=$(TARGET) $(MAKE) -C '$(1)' lib tools - - # build mexbiosig package (does not install package) - # TARGET='$(TARGET)' $(MAKE) -C '$(1)'/biosig4c++ mexbiosig - - # install library files - $(INSTALL) -m644 '$(1)/biosig4c++/biosig.h' '$(HOST_INCDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/biosig2.h' '$(HOST_INCDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/gdftime.h' '$(HOST_INCDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/biosig-dev.h' '$(HOST_INCDIR)/' + cd '$(1)' && ./configure \ + $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \ + $($(PKG)_AUTOCONF_CROSS_FLAGS) \ + --prefix=$(HOST_PREFIX) \ + CC='$(MXE_CC)' \ + CXX='$(MXE_CXX)' \ + RANLIB='$(MXE_RANLIB)' \ + AR='$(MXE_AR)' \ + ARFLAGS=rcs \ + LIBTOOL=$(LIBTOOL) \ + PKG_CONFIG='$(MXE_PKG_CONFIG)' \ + PKG_CONFIG_PATH='$(HOST_LIBDIR)/pkgconfig' - $(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.a' '$(HOST_LIBDIR)/' - #$(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.def' '$(HOST_LIBDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.dll.a' '$(HOST_LIBDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.dll' '$(HOST_BINDIR)/' + # make sure NDEBUG is defined + $(SED) -i '/NDEBUG/ s|#||g' '$(1)'/biosig4c++/Makefile - $(INSTALL) -m644 '$(1)/biosig4c++/libgdf.a' '$(HOST_LIBDIR)/' - #$(INSTALL) -m644 '$(1)/biosig4c++/libgdf.def' '$(HOST_LIBDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/libgdf.dll.a' '$(HOST_LIBDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/libgdf.dll' '$(HOST_BINDIR)/' - + $($(PKG)_MAKE_FLAGS) $(MAKE) -C '$(1)' lib tools + $($(PKG)_MAKE_FLAGS) $(MAKE) -C '$(1)/biosig4c++' install DESTDIR='$(3)' - $(INSTALL) -m644 '$(1)/biosig4c++/physicalunits.h' '$(HOST_INCDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/libphysicalunits.a' '$(HOST_LIBDIR)/' - #$(INSTALL) -m644 '$(1)/biosig4c++/libphysicalunits.def' '$(HOST_LIBDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/libphysicalunits.dll.a' '$(HOST_LIBDIR)/' - $(INSTALL) -m644 '$(1)/biosig4c++/libphysicalunits.dll' '$(HOST_BINDIR)/' - - if [ "$(MXE_WINDOWS_BUILD)" == "yes" ]; then \ - $(SED) -i '/^Libs:/ s/$$/ -liconv -lws2_32/' $(1)/biosig4c++/libbiosig.pc; \ - fi - $(INSTALL) -m644 '$(1)/biosig4c++/libbiosig.pc' '$(HOST_LIBDIR)/pkgconfig/' - - # install biosig4matlab - # $(INSTALL) -d $(HOST_PREFIX)/share/biosig/matlab - # cp -r '$(1)'/biosig4matlab/* $(HOST_PREFIX)/share/biosig/matlab/ + # FIXME: These files aren't installed by the Makefile rule. + # Do we really need them? + if [ "x$(MXE_SYSTEM)" == "xmingw" ]; then \ + $(INSTALL) '$(1)/biosig4c++/libbiosig.dll.a' '$(3)$(HOST_LIBDIR)'; \ + $(INSTALL) '$(1)/biosig4c++/libgdf.dll' '$(3)$(HOST_BINDIR)'; \ + $(INSTALL) '$(1)/biosig4c++/libgdf.dll.a' '$(3)$(HOST_LIBDIR)'; \ + $(INSTALL) '$(1)/biosig4c++/libphysicalunits.dll' '$(3)$(HOST_BINDIR)'; \ + $(INSTALL) '$(1)/biosig4c++/libphysicalunits.dll.a' '$(3)$(HOST_LIBDIR)'; \ + fi endef