diff src/libbiosig.mk @ 5748:399c7b225e13

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
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 22 Apr 2021 18:57:15 +0200
parents 4e99aee38edb
children 3960e6022e88
line wrap: on
line diff
--- 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