[med-svn] [Git][med-team/kalign][master] 17 commits: Change d/rules layout

Nilesh Patra (@nilesh) gitlab at salsa.debian.org
Sat Nov 5 22:35:35 GMT 2022



Nilesh Patra pushed to branch master at Debian Med / kalign


Commits:
5a5ed04d by Nilesh Patra at 2022-11-05T20:10:37+00:00
Change d/rules layout

- - - - -
599efea9 by Nilesh Patra at 2022-11-05T20:12:02+00:00
OK, easy. Just disable building shared lib, that thing should move into a new lib package anyway, and should not be here

- - - - -
677ee48b by Nilesh Patra at 2022-11-05T20:49:05+00:00
Set proper cflags/cxxflags for other simd

- - - - -
174f36be by Nilesh Patra at 2022-11-05T20:49:05+00:00
Drop simde patch: no longer needed

- - - - -
c45d8819 by Nilesh Patra at 2022-11-05T21:06:33+00:00
Add d/clean for cleaning obj-*

- - - - -
c9864978 by Nilesh Patra at 2022-11-05T21:11:02+00:00
Update dispatcher script to supported simd levels

- - - - -
fe2c7312 by Nilesh Patra at 2022-11-05T21:11:18+00:00
Install all relevant bin properly

- - - - -
f7fa12dc by Nilesh Patra at 2022-11-05T21:16:16+00:00
Simplify rules a bit

- - - - -
e13885f5 by Nilesh Patra at 2022-11-05T21:28:35+00:00
d/rules: Test binary on every simd level

- - - - -
2f3f909c by Nilesh Patra at 2022-11-05T21:32:07+00:00
Remove copyright notices/mentions of autoconf stuff which has veen removed

- - - - -
c283e03c by Nilesh Patra at 2022-11-05T21:33:42+00:00
Remove author notice from manpage

- - - - -
ff2fdf8c by Nilesh Patra at 2022-11-06T03:13:52+05:30
Mention myself in the copyright

- - - - -
887ed695 by Nilesh Patra at 2022-11-06T03:25:53+05:30
d/salsa-ci.yml: Disable reprotest

- - - - -
6bd07297 by Nilesh Patra at 2022-11-06T03:43:08+05:30
d/rules: Remove static lib and .cmake files which should not be present with this bin package

- - - - -
58f554d1 by Nilesh Patra at 2022-11-05T22:20:41+00:00
d/rules: Install simd-dispatcher script for amd64

- - - - -
f9d7869c by Nilesh Patra at 2022-11-05T22:29:50+00:00
Minor fix, now lets get it moving

- - - - -
5536fa38 by Nilesh Patra at 2022-11-05T22:29:51+00:00
Upload to unstable

- - - - -


11 changed files:

- debian/bin/simd-dispatch
- debian/changelog
- + debian/clean
- debian/copyright
- debian/kalign.1
- debian/kalignfmt.1
- + debian/patches/pass-proper-flags.patch
- debian/patches/series
- − debian/patches/simde
- debian/rules
- debian/salsa-ci.yml


Changes:

=====================================
debian/bin/simd-dispatch
=====================================
@@ -14,7 +14,7 @@ function test_and_run () {
 	fi
 }
 
-for SIMD in avx2 avx sse4.1 ssse3 sse3 sse2 sse mmx ; do test_and_run ${SIMD} "$@" ; done
+for SIMD in avx2 avx sse4.1 ; do test_and_run ${SIMD} "$@" ; done
 
 # fallback to plain option
 $BASE-plain "$@"


=====================================
debian/changelog
=====================================
@@ -1,10 +1,54 @@
-kalign (1:3.3.4-1) UNRELEASED; urgency=medium
+kalign (1:3.3.4-1) unstable; urgency=medium
 
+  [ Andreas Tille ]
+  * Team Upload.
   * Fix watch file
   * New upstream version
   * Standards-Version: 4.6.1 (routine-update)
 
- -- Andreas Tille <tille at debian.org>  Fri, 04 Nov 2022 22:41:33 +0100
+  [ Nilesh Patra ]
+  * d/control:
+    + Add B-D on cmake
+    + Remove B-D on libsimde-dev, also remove Built-Using field.
+  * debian/patches:
+    + Drop keep-debugging: debug flags are being passed now w/ cmake
+    + Drop debian/patches/no-native-build: no native build anymore
+    + Drop simde patch: no longer needed, upstream has added
+      conditions for inclusions on higher SIMD levels
+      of intel-specific header files
+    + Add pass-proper-flags.patch: Set proper cflags/cxxflags for other simd
+      levels than avx2, otherwise cflags are set to baseline for other supported
+      simd levels.
+  * d/rules:
+    + Update rules layout from scratch as buildsystem changed
+      from autotools -> cmake
+    + Remove timescorealn as this is no longer provided/installed, change
+      that with kalignfmt
+    + Disable building shared lib, which is set to ON by default w/ this
+      release.
+      The SOLIBS should move into a new lib package anyway, and should not be
+      here in the binary package
+    + Install all relevant simd level binaries properly
+    + Test binary for every simd level
+    + Remove static lib and .cmake files which should not be present
+      with this bin package
+    + Install simd-dispatcher script for amd64
+  * d/t/run-unit-test:
+    + Kalign no longer allows un-aligned seq to be re-formatted,
+      hence removing test 7
+  * Manpage changes:
+    + Add manpage for kalignfmt and update old manpage for kalign
+    + Remove manpage for timescorealn
+  * Update installing examples at right location
+    + dev/ dir has been pruned, change that to tests/data
+  * Add d/clean for cleaning obj-*
+  * Update dispatcher script to supported simd levels
+  * Remove copyright notices/mentions of autoconf stuff which has been removed
+  * Remove author notice from manpage
+  * Mention myself in the copyright
+  * Disable reprotest in salsa CI
+
+ -- Nilesh Patra <nilesh at debian.org>  Sat, 05 Nov 2022 22:20:20 +0000
 
 kalign (1:3.3.2-1) unstable; urgency=medium
 


=====================================
debian/clean
=====================================
@@ -0,0 +1 @@
+obj-*/


=====================================
debian/copyright
=====================================
@@ -7,70 +7,11 @@ Files: *
 Copyright: © 2006,2019,2020 Timo Lassmann <timolassmann at gmail.com>
 License: GPL-3+
 
-
-Files: m4/ax_check_compile_flag.m4
-Copyright: Copyright (c) 2008 Guido U. Draheim <guidod at gmx.de>
-           Copyright (c) 2011 Maarten Bosmans <mkbosmans at gmail.com>
-License: Permissive-m4
-
-Files: m4/ax_ext.m4
-Copyright: Copyright (c) 2007 Christophe Tournayre <turn3r at users.sourceforge.net>
-           Copyright (c) 2013,2015 Michael Petch <mpetch at capp-sysware.com>
-           Copyright (c) 2017 Rafael de Lucena Valle <rafaeldelucena at gmail.com>
-License: Permissive-m4
-
-License: Permissive-m4
- Copying and distribution of this file, with or without modification, are
- permitted in any medium without royalty provided the copyright notice
- and this notice are preserved.  This file is offered as-is, without any
- warranty.
-
-
-Files: m4/ax_gcc_x86_avx_xgetbv.m4
-Copyright: Copyright (c) 2013 Michael Petch <mpetch at capp-sysware.com>
-License: GPL-3+ with Autoconf exception
-
-Files: m4/ax_gcc_x86_cpuid.m4
-Copyright: Copyright (c) 2008 Steven G. Johnson <stevenj at alum.mit.edu>
-           Copyright (c) 2008 Matteo Frigo
-           Copyright (c) 2015 Michael Petch <mpetch at capp-sysware.com>
-License: GPL-3+ with Autoconf exception
-
-Files: m4/ax_openmp.m4
-Copyright: Copyright (c) 2008 Steven G. Johnson <stevenj at alum.mit.edu>
-License: GPL-3+ with Autoconf exception
-
-License: GPL-3+ with Autoconf exception
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation, either version 3 of the License, or (at your
- option) any later version.
- .
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- Public License for more details.
- .
- You should have received a copy of the GNU General Public License along
- with this program. If not, see <https://www.gnu.org/licenses/>.
- .
- As a special exception, the respective Autoconf Macro's copyright owner
- gives unlimited permission to copy, distribute and modify the configure
- scripts that are the output of Autoconf when processing the Macro. You
- need not follow the terms of the GNU General Public License when using
- or distributing such scripts, even though portions of the text of the
- Macro appear in them. The GNU General Public License (GPL) does govern
- all other use of the material that constitutes the Autoconf Macro.
- .
- This special exception to the GPL applies to versions of the Autoconf
- Macro released by the Autoconf Archive. When you make and distribute a
- modified version of the Autoconf Macro, you may extend this special
- exception to the GPL to apply to your modified version as well.
-
 Files: debian/*
 Copyright: © 2006-2011 Charles Plessy <plessy at debian.org>
            © 2008 David Paleino <d.paleino at gmail.com>
            © 2008-2012 Andreas Tille <tille at debian.org>
+           © 2020-2022 Nilesh Patra <nilesh at debian.org>
 License: GPL-3+
 
 License: GPL-3+


=====================================
debian/kalign.1
=====================================
@@ -54,4 +54,3 @@ Lassmann, Timo.
 "Kalign 3: multiple sequence alignment of large data sets."
 Bioinformatics (2019)
 https://doi.org/10.1093/bioinformatics/btz795
-.SH AUTHOR\n This manpage was written by Nilesh Patra for the Debian distribution and\n can be used for any other usage of the program.


=====================================
debian/kalignfmt.1
=====================================
@@ -48,4 +48,3 @@ Lassmann, Timo.
 "Kalign 3: multiple sequence alignment of large data sets."
 Bioinformatics (2019)
 https://doi.org/10.1093/bioinformatics/btz795
-.SH AUTHOR\n This manpage was written by Nilesh Patra for the Debian distribution and\n can be used for any other usage of the program.


=====================================
debian/patches/pass-proper-flags.patch
=====================================
@@ -0,0 +1,62 @@
+Description: At the moment flags are only being set for avx2/non-avx2, expand that to other simd
+Author: Nilesh Patra <nilesh at debian.org>
+Last-Update: 2022-11-05
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -87,10 +87,6 @@
+       HAVE_SSE)
+   endif()
+ 
+-  if (HAVE_SSE)        
+-    message(STATUS "SSE4.1 is enabled - target CPU must support it")
+-  endif()
+-  
+   if (ENABLE_AVX)
+ 
+     #
+@@ -119,10 +115,6 @@
+             }"
+         HAVE_AVX)
+     endif()
+-
+-    if (HAVE_AVX)
+-      message(STATUS "AVX is enabled - target CPU must support it")
+-    endif()
+   endif()
+   
+   if (ENABLE_AVX2)
+@@ -154,20 +146,24 @@
+         HAVE_AVX2)
+     endif()
+ 
+-    if (HAVE_AVX2)
+-      message(STATUS "AVX2 is enabled - target CPU must support it")
+-    endif()
+   endif()
+ endif()
+ 
+ if (HAVE_AVX2)
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2 -DHAVE_AVX2")
+-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2 -DHAVE_AVX2")
+-else(HAVE_AVX2)
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOHAVE_AVX2")
+-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNOHAVE_AVX2")
+-endif(HAVE_AVX2)
+-
++      message(STATUS "AVX2 is enabled - target CPU must support it")
++      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2 -DHAVE_AVX2")
++      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2 -DHAVE_AVX2")
++elseif(HAVE_AVX)
++      message(STATUS "AVX is enabled - target CPU must support it")
++      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx -DHAVE_AVX")
++      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx -DHAVE_AVX")
++elseif(HAVE_SSE)
++      message(STATUS "SSE4.1 is enabled - target CPU must support it")
++      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1 -DHAVE_SSE4.1")
++      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1 -DHAVE_SSE4.1")
++else()
++      message(STATUS "No SIMD level seems supported, building for baseline")
++endif()
+ 
+ 
+ add_subdirectory(lib)


=====================================
debian/patches/series
=====================================
@@ -1 +1 @@
-#simde
+pass-proper-flags.patch


=====================================
debian/patches/simde deleted
=====================================
@@ -1,276 +0,0 @@
-Author: Michael R. Crusoe <michael.crusoe at gmail.com>
-Description: leverage the SIMD Everywhere library
-Forwarded: https://github.com/TimoLassmann/kalign/pull/20
---- a/src/alignment.c
-+++ b/src/alignment.c
-@@ -20,7 +20,8 @@
- 
- */
- 
--#include <xmmintrin.h>
-+#define SIMDE_ENABLE_NATIVE_ALIASES
-+#include <simde/x86/sse.h>
- #include "alignment.h"
- 
- 
---- a/src/bisectingKmeans.c
-+++ b/src/bisectingKmeans.c
-@@ -24,13 +24,16 @@
- #include <omp.h>
- #endif
- 
--#ifdef HAVE_AVX2
--#include <xmmintrin.h>
--#include <mm_malloc.h>
-+#define SIMDE_ENABLE_NATIVE_ALIASES
-+#include <simde/x86/sse.h>
-+#if !defined(_SSE_NATIVE)
-+  #include <stdlib.h>
-+  #define _mm_malloc(size, align) aligned_alloc(align, size)
-+  #define _mm_free free
-+#else
-+  #include <mm_malloc.h>
- #endif
- 
--
--
- #include "tlrng.h"
- #include "msa.h"
- 
-@@ -506,13 +509,8 @@ int split(float** dm,int* samples, int n
-                         score = 0.0f;
-                         for(i = 0; i < num_samples;i++){
-                                 s = samples[i];
--#ifdef HAVE_AVX2
-                                 edist_256(dm[s], cl, num_anchors, &dl);
-                                 edist_256(dm[s], cr, num_anchors, &dr);
--#else
--                                edist_serial(dm[s], cl, num_anchors, &dl);
--                                edist_serial(dm[s], cr, num_anchors, &dr);
--#endif
-                                 score += MACRO_MIN(dl,dr);
- 
-                                 if(dr < dl){
---- a/src/bpm.c
-+++ b/src/bpm.c
-@@ -25,10 +25,8 @@
- 
- #include "tlrng.h"
- 
--
--
--#ifdef HAVE_AVX2
--#include <immintrin.h>
-+#define SIMDE_ENABLE_NATIVE_ALIASES
-+#include <simde/x86/avx2.h>
- 
- __m256i BROADCAST_MASK[16];
- 
-@@ -37,7 +35,6 @@ __m256i bitShiftRight256ymm (__m256i *da
- 
- /* taken from Alexander Yee: http://www.numberworld.org/y-cruncher/internals/addition.html#ks_add */
-  __m256i add256(uint32_t carry, __m256i A, __m256i B);
--#endif
- 
- /* Below are test functions  */
- #ifdef BPM_UTEST
-@@ -51,11 +48,9 @@ uint8_t dyn_256(const uint8_t* t,const u
- uint8_t dyn_256_print(const uint8_t* t,const uint8_t* p,int n,int m);
- int  mutate_seq(uint8_t* s, int len,int k,int L, struct rng_state* rng);
- 
--#ifdef HAVE_AVX2
- /* For debugging */
- void print_256(__m256i X);
- void print_256_all(__m256i X);
--#endif
- 
- /* The actual test.  */
- int bpm_test(void);
-@@ -64,9 +59,7 @@ int main(void)
- {
- 
-         /* Important set_broadcast_mask has to be called before using bpm_256!!! */
--#ifdef HAVE_AVX2
-         set_broadcast_mask();
--#endif
-         RUN(bpm_test());
-         return EXIT_SUCCESS;
- ERROR:
-@@ -149,11 +142,7 @@ int bpm_test(void)
-                 for (j =0 ; j < test_iter; j++){
-                         RUN(mutate_seq(b,len,i,alphabet->L,rng));
-                         dyn_score = dyn_256(a,b,len,len);
--#ifdef HAVE_AVX2
-                         bpm_score = bpm_256(a,b,len,len);
--#else
--                        bpm_score = dyn_score;
--#endif
-                         if( abs( dyn_score - bpm_score) != 0){
-                                 fprintf(stdout,"Scores differ: %d (dyn) %d (bpm) (%d out of %d)\n", dyn_score,bpm_score, calc_errors , total_calc);
-                                 calc_errors++;
-@@ -200,13 +189,9 @@ int bpm_test(void)
-         for(i = 0; i < 100;i+=10){
-                 RUN(mutate_seq(b,len,i,alphabet->L,rng));
- 
--#ifdef HAVE_AVX2
-                 for(j = 0; j < timing_iter;j++){
-                         bpm_score = bpm_256(a,b,len,len);
-                 }
--#else
--                bpm_score = dyn_score;
--#endif
- 
- 
-                 //ASSERT(dyn_score == bpm_score, "Scores differ: %d %d.",dyn_score, bpm_score);
-@@ -373,7 +358,6 @@ ERROR:
- 
- }
- 
--#ifdef HAVE_AVX2
- void print_256(__m256i X)
- {
-         alignas(32) uint64_t debug[4];
-@@ -394,7 +378,6 @@ void print_256_all(__m256i X)
- }
- 
- #endif
--#endif
- 
- 
- 
-@@ -462,7 +445,6 @@ uint8_t bpm(const uint8_t* t,const uint8
- }
- 
- 
--#ifdef HAVE_AVX2
- uint8_t bpm_256(const uint8_t* t,const uint8_t* p,int n,int m)
- {
-         __m256i VP,VN,D0,HN,HP,X,NOTONE;
-@@ -658,4 +640,3 @@ __m256i bitShiftRight256ymm (__m256i *da
-         carryOut   = _mm256_xor_si256 (innerCarry, rotate);                        //FIXME: not sure if this is correct!!!
-         return carryOut;
- }
--#endif
---- a/src/euclidean_dist.c
-+++ b/src/euclidean_dist.c
-@@ -22,23 +22,24 @@
- 
- #include "euclidean_dist.h"
- #include "tlrng.h"
--#ifdef HAVE_AVX2
--#include <xmmintrin.h>
--#include <immintrin.h>
--#include <mm_malloc.h>
-+#define SIMDE_ENABLE_NATIVE_ALIASES
-+#include <simde/x86/avx.h>
-+#if !defined(_SSE_NATIVE)
-+  #include <stdlib.h>
-+  #define _mm_malloc(size, align) aligned_alloc(align, size)
-+  #define _mm_free free
-+#else
-+  #include <mm_malloc.h>
- #endif
- 
- 
--
- #include "float.h"
- 
- #include "esl_stopwatch.h"
- /* These functions were taken from:  */
- /* https://stackoverflow.com/questions/6996764/fastest-way-to-do-horizontal-float-vector-sum-on-x86 */
--#ifdef HAVE_AVX2
- float hsum256_ps_avx(__m256 v);
- float hsum_ps_sse3(__m128 v);
--#endif
- 
- #ifdef ITEST_EDIST
- int main(void)
-@@ -74,7 +75,6 @@ int main(void)
-                 }
-         }
-         LOG_MSG("Check for correctness.");
--#ifdef HAVE_AVX2
-         for(i = 0; i < 100;i++){
-                 for(j = 0; j <= i;j++){
-                         edist_serial(mat[i], mat[j], num_element, &d1);
-@@ -85,7 +85,6 @@ int main(void)
-                         }
-                 }
-         }
--#endif
-         DECLARE_TIMER(t);
- 
-         LOG_MSG("Timing serial");
-@@ -101,7 +100,6 @@ int main(void)
-         GET_TIMING(t);
-         //LOG_MSG("%f\tsec.",GET_TIMING(t));
- 
--#ifdef HAVE_AVX2
-         LOG_MSG("Timing AVX");
-         START_TIMER(t);
-         for(c = 0; c < max_iter; c++){
-@@ -117,7 +115,6 @@ int main(void)
-         GET_TIMING(t);
-         //LOG_MSG("%f\tsec.",GET_TIMING(t));
- 
--#endif
-         for(i = 0; i < 100;i++){
- #ifdef HAVE_AVX2
-                 _mm_free(mat[i]);
-@@ -169,7 +166,6 @@ int edist_serial_d(const double* a,const
-         return OK;
- }
- 
--#ifdef HAVE_AVX2
- 
- int edist_256(const float* a,const float* b, const int len, float* ret)
- {
-@@ -218,4 +214,3 @@ float hsum_ps_sse3(__m128 v)
-         return        _mm_cvtss_f32(sums);
- }
- 
--#endif
---- a/src/misc.c
-+++ b/src/misc.c
-@@ -23,9 +23,8 @@
- #include "tldevel.h"
- #include "tlrng.h"
- 
--#ifdef HAVE_AVX2
--#include <immintrin.h>
--#endif
-+#define SIMDE_ENABLE_NATIVE_ALIASES
-+#include <simde/x86/avx.h>
- 
- #include "misc.h"
- #include  <stdalign.h>
---- a/src/sequence_distance.c
-+++ b/src/sequence_distance.c
-@@ -22,9 +22,14 @@
- */
- 
- #include "tldevel.h"
--#ifdef HAVE_AVX2
--#include <xmmintrin.h>
--#include <mm_malloc.h>
-+#define SIMDE_ENABLE_NATIVE_ALIASES
-+#include <simde/x86/sse.h>
-+#if !defined(_SSE_NATIVE)
-+  #include <stdlib.h>
-+  #define _mm_malloc(size, align) aligned_alloc(align, size)
-+  #define _mm_free free
-+#else
-+  #include <mm_malloc.h>
- #endif
- 
- 
-@@ -66,9 +71,7 @@ float** d_estimation(struct msa* msa, in
-         int len_b;
- 
-         int i,j;
--#if HAVE_AVX2
-         set_broadcast_mask();
--#endif
- 
-         if(pair){
- 


=====================================
debian/rules
=====================================
@@ -3,8 +3,6 @@
 # Build rules for the Debian package kalign
 
 include /usr/share/dpkg/default.mk
-export DEB_CFLAGS_MAINT_APPEND += -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3
-export DEB_CXXFLAGS_MAINT_APPEND += -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 OBJ_DIR=obj-$(DEB_HOST_GNU_TYPE)
 prefix=$(CURDIR)/debian/$(DEB_SOURCE)/usr
@@ -16,33 +14,52 @@ libexecdir=$(prefix)/lib/$(DEB_SOURCE)
 AMD64_SIMD_LEVELS=avx2 avx sse4.1 ssse3 sse3
 i386_SIMD_LEVELS=sse2 sse
 
-override_dh_auto_build:
-ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386))
-	mkdir -p $(prefix)
-	mkdir -p $(libexecdir)
-	$(foreach SIMD,$(AMD64_SIMD_LEVELS), make clean ; dh_auto_configure -- CFLAGS="$(CFLAGS) -m$(SIMD)" && dh_auto_build && cp $(OBJ_DIR)/src/kalign $(OBJ_DIR)/src/kalign-$(SIMD) && cp $(OBJ_DIR)/src/kalignfmt $(OBJ_DIR)/src/kalignfmt-$(SIMD) && ) true
-	$(MAKE) clean ; dh_auto_configure && dh_auto_build && \
-		cp $(OBJ_DIR)/src/kalign $(OBJ_DIR)/src/kalign-plain && \
-		cp $(OBJ_DIR)/src/kalignfmt $(OBJ_DIR)/src/kalignfmt-plain
-ifeq (i386,$(DEB_HOST_ARCH))
-	$(foreach SIMD,$(i386_SIMD_LEVELS), make clean ; dh_auto_configure -- CFLAGS="$(CFLAGS) -m$(SIMD)" && dh_auto_build && cp $(OBJ_DIR)/src/kalign $(OBJ_DIR)/src/kalign-$(SIMD) && cp $(OBJ_DIR)/src/kalignfmt $(OBJ_DIR)/src/kalignfmt-$(SIMD) && ) true
+override_dh_auto_configure:
+	dh_auto_configure -- -DBUILD_SHARED_LIBS=OFF -DINSTALL_PREFIX=/usr -DENABLE_SSE=OFF -DENABLE_AVX=OFF -DENABLE_AVX2=OFF
+ifeq (amd64,$(DEB_HOST_ARCH))
+	dh_auto_configure --builddirectory obj-sse4.1 -- -DBUILD_SHARED_LIBS=OFF -DINSTALL_PREFIX=/usr -DENABLE_SSE=ON -DENABLE_AVX=OFF -DENABLE_AVX2=OFF
+	dh_auto_configure --builddirectory obj-avx -- -DBUILD_SHARED_LIBS=OFF -DINSTALL_PREFIX=/usr -DENABLE_SSE=ON -DENABLE_AVX=ON -DENABLE_AVX2=OFF
+	dh_auto_configure --builddirectory obj-avx2 -- -DBUILD_SHARED_LIBS=OFF -DINSTALL_PREFIX=/usr -DENABLE_SSE=ON -DENABLE_AVX=ON -DENABLE_AVX2=ON
 endif
-else
+
+override_dh_auto_build:
 	dh_auto_build
+ifeq (amd64,$(DEB_HOST_ARCH))
+	dh_auto_build --builddirectory obj-sse4.1
+	dh_auto_build --builddirectory obj-avx
+	dh_auto_build --builddirectory obj-avx2
+endif
+
+override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+	dh_auto_test
+ifeq (amd64,$(DEB_HOST_ARCH))
+	set -e ; for SIMD in avx2 avx sse4.1 ; do \
+		if lscpu | grep -q $${SIMD} ; then \
+			cd "obj-$${SIMD}/" && \
+			ctest --verbose ; \
+			cd .. ; \
+		fi ; \
+	done
+endif
 endif
 
 override_dh_install:
-ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386))
-	find debian/$(DEB_SOURCE)/usr/bin -type f -name kalign -delete
-	dh_install debian/bin/simd-dispatch /usr/lib/$(DEB_SOURCE)/
-	dh_install $(OBJ_DIR)/src/kalign-* usr/lib/$(DEB_SOURCE)/
-	dh_install $(OBJ_DIR)/src/kalignfmt-* usr/lib/$(DEB_SOURCE)/
-	mkdir -p $(prefix)/bin
-	cd $(prefix)/bin \
-	        && $(foreach PROG,kalign kalignfmt,ln -s ../lib/$(DEB_SOURCE)/simd-dispatch $(PROG) &&) true
-else
 	dh_install
+	rm -rf debian/$(DEB_SOURCE)/usr/lib/$(DEB_HOST_MULTIARCH)/
+ifeq (amd64,$(DEB_HOST_ARCH))
+	mkdir -p debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/bin
+	cp obj-avx2/src/kalign debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/kalign-avx2
+	cp obj-avx/src/kalign debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/kalign-avx
+	cp obj-sse4.1/src/kalign debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/kalign-sse4.1
+	cp obj-avx2/src/kalignfmt debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/kalignfmt-avx2
+	cp obj-avx/src/kalignfmt debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/kalignfmt-avx
+	cp obj-sse4.1/src/kalignfmt debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/kalignfmt-sse4.1
+	cp obj-$(DEB_HOST_MULTIARCH)/src/kalignfmt debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/kalignfmt-plain
+	mv debian/$(DEB_SOURCE)/usr/bin/kalign debian/$(DEB_SOURCE)/usr/lib/$(DEB_SOURCE)/kalign-plain
+	dh_install -pkalign debian/bin/simd-dispatch /usr/lib/$(DEB_SOURCE)/bin
+	cd $(CURDIR)/debian/$(DEB_SOURCE)/usr/bin && \
+		ln -s ../lib/$(DEB_SOURCE)/bin/simd-dispatch kalign
+	cd $(CURDIR)/debian/$(DEB_SOURCE)/usr/bin && \
+		ln -s ../lib/$(DEB_SOURCE)/bin/simd-dispatch kalignfmt
 endif
-
-override_dh_gencontrol:
-	dh_gencontrol -- -Vsimde:Built-Using="$(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W "libsimde-dev")"


=====================================
debian/salsa-ci.yml
=====================================
@@ -2,3 +2,6 @@
 include:
   - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
   - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+variables:
+  SALSA_CI_DISABLE_REPROTEST: 1



View it on GitLab: https://salsa.debian.org/med-team/kalign/-/compare/02285fb67fbf3719d94e1897dc4f6c6ed9f90bac...5536fa38ddfc6f18f6f30438477b87174c460b0f

-- 
View it on GitLab: https://salsa.debian.org/med-team/kalign/-/compare/02285fb67fbf3719d94e1897dc4f6c6ed9f90bac...5536fa38ddfc6f18f6f30438477b87174c460b0f
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20221105/ce6390f1/attachment-0001.htm>


More information about the debian-med-commit mailing list