Modify tabix to use libtool
[tabix.git] / debian / patches / use-libtool
1 Index: tabix/Makefile
2 ===================================================================
3 --- tabix.orig/Makefile 2012-12-21 16:05:38.710131804 -0800
4 +++ tabix/Makefile      2012-12-21 16:08:18.234126173 -0800
5 @@ -1,47 +1,47 @@
6 -CC=                    gcc
7 -CFLAGS=                -g -Wall -O2 -fPIC #-m64 #-arch ppc
8 +CC=            gcc
9 +CFLAGS=                -g -Wall -O2
10  DFLAGS=                -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE -DBGZF_CACHE
11 -LOBJS=         bgzf.o kstring.o knetfile.o index.o bedidx.o
12 -AOBJS=         main.o
13 +LOBJS=         bgzf.lo kstring.lo knetfile.lo index.lo bedidx.lo
14 +AOBJS=         main.lo
15 +BOBJS=         bgzip.lo bgzf.lo
16  PROG=          tabix bgzip
17  INCLUDES=
18  SUBDIRS=       .
19  LIBPATH=
20 -LIBCURSES=     
21 +LIBCURSES=
22 +LIBNAME=       libtabix.la
23 +LIBVERSION=    1
24 +
25 +# catch platform settings
26 +UNAME := $(shell uname)
27 +ifeq ($(UNAME), Darwin)
28 +LIBTOOL :=     glibtool
29 +else
30 +LIBTOOL :=     libtool
31 +endif
32 +LTFLAGS=       --tag=CC
33 +
34 +ifdef SHARED
35 +CFLAGS+=       -shared
36 +else
37 +CFLAGS+=       -static
38 +endif
39 +
40 +.SUFFIXES:.c .o .lo
41 +
42 +.c.lo:
43 +               $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CFLAGS) $(DFLAGS) $(INCLUDES) $<
44 +
45 +all:$(PROG) $(LIBNAME)
46  
47 -.SUFFIXES:.c .o
48 +$(LIBNAME):$(LOBJS)
49 +       $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(CFLAGS) -version-info $(LIBVERSION) -rpath /usr/lib $(LOBJS) -o $@ -lc -lz
50  
51 -.c.o:
52 -               $(CC) -c $(CFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@
53 +tabix:$(AOBJS) $(LIBNAME)
54 +       $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(CFLAGS) -o $@ $(AOBJS) $(LIBNAME) -lm -lz
55  
56 -all-recur lib-recur clean-recur cleanlocal-recur install-recur:
57 -               @target=`echo $@ | sed s/-recur//`; \
58 -               wdir=`pwd`; \
59 -               list='$(SUBDIRS)'; for subdir in $$list; do \
60 -                       cd $$subdir; \
61 -                       $(MAKE) CC="$(CC)" DFLAGS="$(DFLAGS)" CFLAGS="$(CFLAGS)" \
62 -                               INCLUDES="$(INCLUDES)" LIBPATH="$(LIBPATH)" $$target || exit 1; \
63 -                       cd $$wdir; \
64 -               done;
65 -
66 -all:$(PROG)
67 -
68 -lib:libtabix.a
69 -
70 -libtabix.so.1:$(LOBJS)
71 -               $(CC) -shared -Wl,-soname,libtabix.so -o $@ $(LOBJS) -lc -lz
72 -
73 -libtabix.1.dylib:$(LOBJS)
74 -               libtool -dynamic $(LOBJS) -o $@ -lc -lz
75 -
76 -libtabix.a:$(LOBJS)
77 -               $(AR) -csru $@ $(LOBJS)
78 -
79 -tabix:lib $(AOBJS)
80 -               $(CC) $(CFLAGS) -o $@ $(AOBJS) -L. -ltabix -lm $(LIBPATH) -lz
81 -
82 -bgzip:bgzip.o bgzf.o knetfile.o
83 -               $(CC) $(CFLAGS) -o $@ bgzip.o bgzf.o knetfile.o -lz
84 +bgzip:$(BOBJS)
85 +       $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(CFLAGS) -o $@  $(BOBJS) $(LIBNAME) -lz
86  
87  TabixReader.class:TabixReader.java
88                 javac -cp .:sam.jar TabixReader.java
89 @@ -57,7 +57,5 @@
90  tabix.pdf:tabix.tex
91                 pdflatex tabix.tex
92  
93 -cleanlocal:
94 -               rm -fr gmon.out *.o a.out *.dSYM $(PROG) *~ *.a tabix.aux tabix.log tabix.pdf *.class libtabix.*.dylib libtabix.so*
95 -
96 -clean:cleanlocal-recur
97 +clean:
98 +       $(LIBTOOL) --mode=clean rm -fr gmon.out $(LOBJS) $(AOBJS) $(BOBJS) a.out *.dSYM $(PROG) *~ tabix.aux tabix.log tabix.pdf *.class libtabix.la