Skip to content

Commit 535b047

Browse files
committed
update configure
1 parent d34ecb4 commit 535b047

File tree

5 files changed

+86
-36
lines changed

5 files changed

+86
-36
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ README.html
2121
## docs
2222
inst/doc
2323
/src/Makevars
24+
/src/Makevars.win

configure

+26-18
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,41 @@
11
#!/bin/sh
22

3-
# Exit on any error
43
set -e
54

5+
CC=`"${R_HOME}/bin/R" CMD config CC`
6+
AR=`"${R_HOME}/bin/R" CMD config AR`
7+
RANLIB=`"${R_HOME}/bin/R" CMD config RANLIB`
8+
R_CPPFLAGS=`"${R_HOME}/bin/R" CMD config CPPFLAGS`
9+
R_CFLAGS=`"${R_HOME}/bin/R" CMD config CFLAGS`
10+
R_CPICFLAGS=`"${R_HOME}/bin/R" CMD config CPICFLAGS`
11+
12+
# -fPIC is ensential for shared lib
13+
CFLAGS="${R_CFLAGS} ${R_CPICFLAGS} -fPIC -D_FILE_OFFSET_BITS=64"
14+
# remove assert by defining NDEBUG
15+
CPPFLAGS="${R_CPPFLAGS} -D NDEBUG"
16+
617
HTSLIB_DIR="htslib-1.21"
718

819
echo "Configuring HTSlib in $HTSLIB_DIR"
920
cd src/$HTSLIB_DIR
1021
## copy file instead of symbolic linking
1122
cp htscodecs_bundled.mk htscodecs.mk
12-
./configure CFLAGS="-g -O2 -fPIC -D_FILE_OFFSET_BITS=64 -DNDEBUG"
23+
./configure \
24+
--disable-shared \
25+
--enable-static \
26+
CFLAGS="${CFLAGS}" \
27+
CPPFLAGS="${CPPFLAGS}"
28+
29+
EXTRA_LIBS="-lz -lm -lbz2 -llzma -lcurl"
1330

14-
hasdeflate="no"
1531
if grep -wq "#define HAVE_LIBDEFLATE 1" config.h;then
16-
hasdeflate="yes"
32+
EXTRA_LIBS="${EXTRA_LIBS} -ldeflate"
1733
fi
1834

19-
make libhts.a
20-
21-
CPPFLAGS=`"${R_HOME}/bin/R" CMD config CPPFLAGS`
22-
CPPFLAGS="${CPPFLAGS} -DNDEBUG"
23-
2435
echo "Create Makevar file"
25-
cd ../../
26-
SRC_MAKEVAR="src/Makevars"
27-
echo "PKG_CPPFLAGS=-I${HTSLIB_DIR} -I../inst/include -DNDEBUG" >$SRC_MAKEVAR
28-
29-
if [ $hasdeflate = "no" ]; then
30-
echo "PKG_LIBS=${HTSLIB_DIR}/libhts.a -lz -lm -lbz2 -llzma -lcurl" >>$SRC_MAKEVAR
31-
else
32-
echo "PKG_LIBS=${HTSLIB_DIR}/libhts.a -ldeflate -lz -lm -lbz2 -llzma -lcurl" >>$SRC_MAKEVAR
33-
fi
36+
cd ..
37+
sed \
38+
-e "s|@EXTRA_CPPFLAGS@|${CPPFLAGS}|g" \
39+
-e "s|@EXTRA_LIBS@|${EXTRA_LIBS}|g" \
40+
Makevars.in > Makevars
41+

configure.win

+35-13
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,43 @@
11
#!/bin/sh
22

3-
HTSLIB_DIR="src/htslib-1.21"
4-
echo "Configuring HTSlib in $HTSLIB_DIR"
5-
cd $HTSLIB_DIR
6-
## fix symbolic linking error
7-
cp htscodecs_bundled.mk htscodecs.mk
8-
# CPPFLAGS="-DNDEBUG" CFLAGS="-g -O2 -fPIC -D_FILE_OFFSET_BITS=64"
9-
./configure --without-libdeflate
3+
set -e
104

115
CC=`"${R_HOME}/bin/R" CMD config CC`
126
AR=`"${R_HOME}/bin/R" CMD config AR`
137
RANLIB=`"${R_HOME}/bin/R" CMD config RANLIB`
14-
CPPFLAGS=`"${R_HOME}/bin/R" CMD config CPPFLAGS`
15-
CPPFLAGS="${CPPFLAGS} -DNDEBUG"
16-
CFLAGS=`"${R_HOME}/bin/R" CMD config CFLAGS`
17-
CPICFLAGS=`"${R_HOME}/bin/R" CMD config CPICFLAGS`
18-
CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXXFLAGS`
8+
R_CPPFLAGS=`"${R_HOME}/bin/R" CMD config CPPFLAGS`
9+
R_CFLAGS=`"${R_HOME}/bin/R" CMD config CFLAGS`
10+
R_CPICFLAGS=`"${R_HOME}/bin/R" CMD config CPICFLAGS`
11+
12+
# -fPIC is ensential for shared lib
13+
CFLAGS="${R_CFLAGS} ${R_CPICFLAGS} -fPIC -D_FILE_OFFSET_BITS=64"
14+
# remove assert by defining NDEBUG
15+
CPPFLAGS="${R_CPPFLAGS} -D NDEBUG"
16+
17+
HTSLIB_DIR="htslib-1.21"
18+
19+
echo "Configuring HTSlib in $HTSLIB_DIR"
20+
cd src/$HTSLIB_DIR
21+
## copy file instead of symbolic linking
22+
cp htscodecs_bundled.mk htscodecs.mk
23+
# ./configure --without-libdeflate
24+
./configure \
25+
--disable-shared \
26+
--enable-static \
27+
CFLAGS="${CFLAGS}" \
28+
CPPFLAGS="${CPPFLAGS}"
29+
30+
EXTRA_LIBS="-lz"
31+
32+
if grep -wq "#define HAVE_LIBDEFLATE 1" config.h;then
33+
EXTRA_LIBS="${EXTRA_LIBS} -ldeflate"
34+
fi
35+
36+
echo "Create Makevar file"
37+
cd ..
38+
sed \
39+
-e "s|@EXTRA_CPPFLAGS@|${CPPFLAGS}|g" \
40+
-e "s|@EXTRA_LIBS@|${EXTRA_LIBS}|g" \
41+
Makevars.in > Makevars
1942

20-
make libhts.a CC="${CC}" CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS} ${CPICFLAGS}" AR="${AR}" RANLIB="${RANLIB}"
2143

src/Makevars.in

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
HTSLIB_DIR='./htslib-1.21'
2+
PKG_CPPFLAGS=-I$(HTSLIB_DIR) -I../inst/include @EXTRA_CPPFLAGS@
3+
PKG_LIBS=-L$(HTSLIB_DIR) -lhts @EXTRA_LIBS@
4+
5+
all: $(SHLIB)
6+
7+
$(SHLIB): $(HTSLIB_DIR)/libhts.a
8+
9+
$(HTSLIB_DIR)/libhts.a:
10+
(cd $(HTSLIB_DIR) && $(MAKE) libhts.a CC=$(CC) CPPFLAGS=$(CPPFLAGS) CFLAGS=$(CFLAGS) $(CPICFLAGS) AR=$(AR) RANLIB=$(RANLIB))
11+
12+
clean:
13+
(cd $(HTSLIB_DIR) && $(MAKE) clean)
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
HTSLIB_DIR='htslib-1.21'
2-
PKG_CPPFLAGS = -I${HTSLIB_DIR} -I../inst/include -DNDEBUG
3-
PKG_LIBS=-L${HTSLIB_DIR} -lhts
1+
HTSLIB_DIR='./htslib-1.21'
2+
PKG_CPPFLAGS=-I$(HTSLIB_DIR) -I../inst/include @EXTRA_CPPFLAGS@
3+
PKG_LIBS=-L$(HTSLIB_DIR) -lhts @EXTRA_LIBS@
44

55
ifeq (,$(shell pkg-config --version 2>/dev/null))
66
LIBPSL = $(or $(and $(wildcard $(R_TOOLS_SOFT)/lib/libpsl.a),-lpsl),)
77
LIBBROTLI = $(or $(and $(wildcard $(R_TOOLS_SOFT)/lib/libbrotlidec.a),-lbrotlidec -lbrotlicommon),)
8-
PKG_LIBS += ${HTSLIB_DIR}/libhts.a -lm -lbz2 -llzma -lcurl $(LIBPSL) $(LIBBROTLI) -lbcrypt -lidn2 -lunistring -liconv -lssl -lcrypto -lcrypt32 -lwsock32 -lwldap32 -lssh2 -lgcrypt -lgpg-error -lws2_32 -lzstd -lregex -lz
8+
PKG_LIBS += ${HTSLIB_DIR}/libhts.a -lm -lbz2 -llzma -lcurl $(LIBPSL) $(LIBBROTLI) -lbcrypt -lidn2 -lunistring -liconv -lssl -lcrypto -lcrypt32 -lwsock32 -lwldap32 -lssh2 -lgcrypt -lgpg-error -lws2_32 -lzstd -lregex
99
else
1010
PKG_LIBS += -llzma -lbz2 -lregex $(shell pkg-config --libs libcurl)
1111
PKG_CPPFLAGS += $(shell pkg-config --cflags libcurl)
@@ -15,5 +15,11 @@ endif
1515

1616
all: $(SHLIB)
1717

18-
$(SHLIB): htslib-1.21/libhts.a
18+
$(SHLIB): $(HTSLIB_DIR)/libhts.a
19+
20+
$(HTSLIB_DIR)/libhts.a:
21+
(cd $(HTSLIB_DIR) && $(MAKE) libhts.a CC=$(CC) CPPFLAGS=$(CPPFLAGS) CFLAGS=$(CFLAGS) $(CPICFLAGS) AR=$(AR) RANLIB=$(RANLIB))
22+
23+
clean:
24+
(cd $(HTSLIB_DIR) && $(MAKE) clean)
1925

0 commit comments

Comments
 (0)