aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/rsem-makefile.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/rsem-makefile.patch')
-rw-r--r--gnu/packages/patches/rsem-makefile.patch682
1 files changed, 682 insertions, 0 deletions
diff --git a/gnu/packages/patches/rsem-makefile.patch b/gnu/packages/patches/rsem-makefile.patch
new file mode 100644
index 0000000000..5481dc685f
--- /dev/null
+++ b/gnu/packages/patches/rsem-makefile.patch
@@ -0,0 +1,682 @@
+This patch simplifies the Makefile, making it much easier to build rsem
+without the bundled version of samtools. It has already been submitted
+upstream: https://github.com/bli25wisc/RSEM/pull/11
+
+From 161894e91a16c7e15af57e4fcfe8cb613711c7fa Mon Sep 17 00:00:00 2001
+From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
+Date: Wed, 22 Apr 2015 14:51:07 +0200
+Subject: [PATCH 1/7] remove all headers from Makefile
+
+---
+ Makefile | 95 +++++++++++-----------------------------------------------------
+ 1 file changed, 16 insertions(+), 79 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 54e2603..3a55ed8 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,133 +10,70 @@ all : $(PROGRAMS)
+ sam/libbam.a :
+ cd sam ; ${MAKE} all
+
+-Transcript.h : utils.h
+-
+-Transcripts.h : utils.h my_assert.h Transcript.h
+-
+-rsem-extract-reference-transcripts : utils.h my_assert.h GTFItem.h Transcript.h Transcripts.h extractRef.cpp
++rsem-extract-reference-transcripts : extractRef.cpp
+ $(CC) -Wall -O3 extractRef.cpp -o rsem-extract-reference-transcripts
+
+-rsem-synthesis-reference-transcripts : utils.h my_assert.h Transcript.h Transcripts.h synthesisRef.cpp
++rsem-synthesis-reference-transcripts : synthesisRef.cpp
+ $(CC) -Wall -O3 synthesisRef.cpp -o rsem-synthesis-reference-transcripts
+
+-BowtieRefSeqPolicy.h : RefSeqPolicy.h
+-
+-RefSeq.h : utils.h
+-
+-Refs.h : utils.h RefSeq.h RefSeqPolicy.h PolyARules.h
+-
+-
+ rsem-preref : preRef.o
+ $(CC) preRef.o -o rsem-preref
+
+-preRef.o : utils.h RefSeq.h Refs.h PolyARules.h RefSeqPolicy.h AlignerRefSeqPolicy.h preRef.cpp
++preRef.o : preRef.cpp
+ $(CC) $(COFLAGS) preRef.cpp
+
+-
+-SingleRead.h : Read.h
+-
+-SingleReadQ.h : Read.h
+-
+-PairedEndRead.h : Read.h SingleRead.h
+-
+-PairedEndReadQ.h : Read.h SingleReadQ.h
+-
+-
+-PairedEndHit.h : SingleHit.h
+-
+-HitContainer.h : GroupInfo.h
+-
+-
+-SamParser.h : sam/sam.h sam/bam.h utils.h my_assert.h SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h SingleHit.h PairedEndHit.h Transcripts.h
+-
+-
+ rsem-parse-alignments : parseIt.o sam/libbam.a
+ $(CC) -o rsem-parse-alignments parseIt.o sam/libbam.a -lz -lpthread
+
+-parseIt.o : utils.h GroupInfo.h Read.h SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h SingleHit.h PairedEndHit.h HitContainer.h SamParser.h Transcripts.h sam/sam.h sam/bam.h parseIt.cpp
++parseIt.o : parseIt.cpp
+ $(CC) -Wall -O2 -c -I. parseIt.cpp
+
+-
+-rsem-build-read-index : utils.h buildReadIndex.cpp
++rsem-build-read-index : buildReadIndex.cpp
+ $(CC) -O3 buildReadIndex.cpp -o rsem-build-read-index
+
+-
+-simul.h : boost/random.hpp
+-
+-ReadReader.h : SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h ReadIndex.h
+-
+-SingleModel.h : utils.h my_assert.h Orientation.h LenDist.h RSPD.h Profile.h NoiseProfile.h ModelParams.h RefSeq.h Refs.h SingleRead.h SingleHit.h ReadReader.h simul.h
+-
+-SingleQModel.h : utils.h my_assert.h Orientation.h LenDist.h RSPD.h QualDist.h QProfile.h NoiseQProfile.h ModelParams.h RefSeq.h Refs.h SingleReadQ.h SingleHit.h ReadReader.h simul.h
+-
+-PairedEndModel.h : utils.h my_assert.h Orientation.h LenDist.h RSPD.h Profile.h NoiseProfile.h ModelParams.h RefSeq.h Refs.h SingleRead.h PairedEndRead.h PairedEndHit.h ReadReader.h simul.h
+-
+-PairedEndQModel.h : utils.h my_assert.h Orientation.h LenDist.h RSPD.h QualDist.h QProfile.h NoiseQProfile.h ModelParams.h RefSeq.h Refs.h SingleReadQ.h PairedEndReadQ.h PairedEndHit.h ReadReader.h simul.h
+-
+-HitWrapper.h : HitContainer.h
+-
+-sam_rsem_aux.h : sam/bam.h
+-
+-sam_rsem_cvt.h : sam/bam.h Transcript.h Transcripts.h
+-
+-BamWriter.h : sam/sam.h sam/bam.h sam_rsem_aux.h sam_rsem_cvt.h SingleHit.h PairedEndHit.h HitWrapper.h Transcript.h Transcripts.h
+-
+-sampling.h : boost/random.hpp
+-
+-WriteResults.h : utils.h my_assert.h GroupInfo.h Transcript.h Transcripts.h RefSeq.h Refs.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h
+-
+ rsem-run-em : EM.o sam/libbam.a
+ $(CC) -o rsem-run-em EM.o sam/libbam.a -lz -lpthread
+
+-EM.o : utils.h my_assert.h Read.h SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h SingleHit.h PairedEndHit.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h Refs.h GroupInfo.h HitContainer.h ReadIndex.h ReadReader.h Orientation.h LenDist.h RSPD.h QualDist.h QProfile.h NoiseQProfile.h ModelParams.h RefSeq.h RefSeqPolicy.h PolyARules.h Profile.h NoiseProfile.h Transcript.h Transcripts.h HitWrapper.h BamWriter.h sam/bam.h sam/sam.h simul.h sam_rsem_aux.h sampling.h boost/random.hpp WriteResults.h EM.cpp
++EM.o : EM.cpp
+ $(CC) $(COFLAGS) EM.cpp
+
+-bc_aux.h : sam/bam.h
+-
+-BamConverter.h : utils.h my_assert.h sam/sam.h sam/bam.h sam_rsem_aux.h sam_rsem_cvt.h bc_aux.h Transcript.h Transcripts.h
+-
+-rsem-tbam2gbam : utils.h Transcripts.h Transcript.h bc_aux.h BamConverter.h sam/sam.h sam/bam.h sam/libbam.a sam_rsem_aux.h sam_rsem_cvt.h tbam2gbam.cpp sam/libbam.a
++rsem-tbam2gbam : tbam2gbam.cpp sam/libbam.a
+ $(CC) -O3 -Wall tbam2gbam.cpp sam/libbam.a -lz -lpthread -o $@
+
+-rsem-bam2wig : utils.h my_assert.h wiggle.h wiggle.o sam/libbam.a bam2wig.cpp
++rsem-bam2wig : wiggle.o sam/libbam.a bam2wig.cpp
+ $(CC) -O3 -Wall bam2wig.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
+
+-rsem-bam2readdepth : utils.h my_assert.h wiggle.h wiggle.o sam/libbam.a bam2readdepth.cpp
++rsem-bam2readdepth : wiggle.o sam/libbam.a bam2readdepth.cpp
+ $(CC) -O3 -Wall bam2readdepth.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
+
+-wiggle.o: sam/bam.h sam/sam.h wiggle.cpp wiggle.h
++wiggle.o: wiggle.cpp
+ $(CC) $(COFLAGS) wiggle.cpp
+
+ rsem-simulate-reads : simulation.o
+ $(CC) -o rsem-simulate-reads simulation.o
+
+-simulation.o : utils.h Read.h SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h Refs.h RefSeq.h GroupInfo.h Transcript.h Transcripts.h Orientation.h LenDist.h RSPD.h QualDist.h QProfile.h NoiseQProfile.h Profile.h NoiseProfile.h simul.h boost/random.hpp WriteResults.h simulation.cpp
++simulation.o : simulation.cpp
+ $(CC) $(COFLAGS) simulation.cpp
+
+ rsem-run-gibbs : Gibbs.o
+ $(CC) -o rsem-run-gibbs Gibbs.o -lpthread
+
+-#some header files are omitted
+-Gibbs.o : utils.h my_assert.h boost/random.hpp sampling.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h RefSeq.h RefSeqPolicy.h PolyARules.h Refs.h GroupInfo.h WriteResults.h Gibbs.cpp
++Gibbs.o : Gibbs.cpp
+ $(CC) $(COFLAGS) Gibbs.cpp
+
+-Buffer.h : my_assert.h
+-
+ rsem-calculate-credibility-intervals : calcCI.o
+ $(CC) -o rsem-calculate-credibility-intervals calcCI.o -lpthread
+
+-#some header files are omitted
+-calcCI.o : utils.h my_assert.h boost/random.hpp sampling.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h RefSeq.h RefSeqPolicy.h PolyARules.h Refs.h GroupInfo.h WriteResults.h Buffer.h calcCI.cpp
++calcCI.o : calcCI.cpp
+ $(CC) $(COFLAGS) calcCI.cpp
+
+-rsem-get-unique : sam/bam.h sam/sam.h getUnique.cpp sam/libbam.a
++rsem-get-unique : getUnique.cpp sam/libbam.a
+ $(CC) -O3 -Wall getUnique.cpp sam/libbam.a -lz -lpthread -o $@
+
+-rsem-sam-validator : sam/bam.h sam/sam.h my_assert.h samValidator.cpp sam/libbam.a
++rsem-sam-validator : samValidator.cpp sam/libbam.a
+ $(CC) -O3 -Wall samValidator.cpp sam/libbam.a -lz -lpthread -o $@
+
+-rsem-scan-for-paired-end-reads : sam/bam.h sam/sam.h my_assert.h scanForPairedEndReads.cpp sam/libbam.a
++rsem-scan-for-paired-end-reads : scanForPairedEndReads.cpp sam/libbam.a
+ $(CC) -O3 -Wall scanForPairedEndReads.cpp sam/libbam.a -lz -lpthread -o $@
+
+ ebseq :
+
+From ec136638a727632e20abfaeb65c22c46d15ca8c4 Mon Sep 17 00:00:00 2001
+From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
+Date: Wed, 22 Apr 2015 15:06:41 +0200
+Subject: [PATCH 2/7] include current dir, ./sam and ./boost by default
+
+---
+ Makefile | 48 ++++++++++++++++++++++++------------------------
+ 1 file changed, 24 insertions(+), 24 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 3a55ed8..1dd97ca 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+ CC = g++
+-CFLAGS = -Wall -c -I.
+-COFLAGS = -Wall -O3 -ffast-math -c -I.
++CFLAGS = -Wall -I. -I./sam -I./boost
++COFLAGS = -O3 -ffast-math -c
+ PROGRAMS = rsem-extract-reference-transcripts rsem-synthesis-reference-transcripts rsem-preref rsem-parse-alignments rsem-build-read-index rsem-run-em rsem-tbam2gbam rsem-run-gibbs rsem-calculate-credibility-intervals rsem-simulate-reads rsem-bam2wig rsem-get-unique rsem-bam2readdepth rsem-sam-validator rsem-scan-for-paired-end-reads
+
+ .PHONY : all ebseq clean
+@@ -11,70 +11,70 @@ sam/libbam.a :
+ cd sam ; ${MAKE} all
+
+ rsem-extract-reference-transcripts : extractRef.cpp
+- $(CC) -Wall -O3 extractRef.cpp -o rsem-extract-reference-transcripts
++ $(CC) $(CFLAGS) -O3 extractRef.cpp -o rsem-extract-reference-transcripts
+
+ rsem-synthesis-reference-transcripts : synthesisRef.cpp
+- $(CC) -Wall -O3 synthesisRef.cpp -o rsem-synthesis-reference-transcripts
++ $(CC) $(CFLAGS) -O3 synthesisRef.cpp -o rsem-synthesis-reference-transcripts
+
+ rsem-preref : preRef.o
+- $(CC) preRef.o -o rsem-preref
++ $(CC) $(CFLAGS) preRef.o -o rsem-preref
+
+ preRef.o : preRef.cpp
+- $(CC) $(COFLAGS) preRef.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) preRef.cpp
+
+ rsem-parse-alignments : parseIt.o sam/libbam.a
+- $(CC) -o rsem-parse-alignments parseIt.o sam/libbam.a -lz -lpthread
++ $(CC) $(CFLAGS) -o rsem-parse-alignments parseIt.o sam/libbam.a -lz -lpthread
+
+ parseIt.o : parseIt.cpp
+- $(CC) -Wall -O2 -c -I. parseIt.cpp
++ $(CC) $(CFLAGS) -O2 -c parseIt.cpp
+
+ rsem-build-read-index : buildReadIndex.cpp
+- $(CC) -O3 buildReadIndex.cpp -o rsem-build-read-index
++ $(CC) $(CFLAGS) -O3 buildReadIndex.cpp -o rsem-build-read-index
+
+ rsem-run-em : EM.o sam/libbam.a
+- $(CC) -o rsem-run-em EM.o sam/libbam.a -lz -lpthread
++ $(CC) $(CFLAGS) -o rsem-run-em EM.o sam/libbam.a -lz -lpthread
+
+ EM.o : EM.cpp
+- $(CC) $(COFLAGS) EM.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) EM.cpp
+
+ rsem-tbam2gbam : tbam2gbam.cpp sam/libbam.a
+- $(CC) -O3 -Wall tbam2gbam.cpp sam/libbam.a -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 tbam2gbam.cpp sam/libbam.a -lz -lpthread -o $@
+
+ rsem-bam2wig : wiggle.o sam/libbam.a bam2wig.cpp
+- $(CC) -O3 -Wall bam2wig.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 bam2wig.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
+
+ rsem-bam2readdepth : wiggle.o sam/libbam.a bam2readdepth.cpp
+- $(CC) -O3 -Wall bam2readdepth.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 bam2readdepth.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
+
+ wiggle.o: wiggle.cpp
+- $(CC) $(COFLAGS) wiggle.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) wiggle.cpp
+
+ rsem-simulate-reads : simulation.o
+- $(CC) -o rsem-simulate-reads simulation.o
++ $(CC) $(CFLAGS) -o rsem-simulate-reads simulation.o
+
+ simulation.o : simulation.cpp
+- $(CC) $(COFLAGS) simulation.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) simulation.cpp
+
+ rsem-run-gibbs : Gibbs.o
+- $(CC) -o rsem-run-gibbs Gibbs.o -lpthread
++ $(CC) $(CFLAGS) -o rsem-run-gibbs Gibbs.o -lpthread
+
+ Gibbs.o : Gibbs.cpp
+- $(CC) $(COFLAGS) Gibbs.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) Gibbs.cpp
+
+ rsem-calculate-credibility-intervals : calcCI.o
+- $(CC) -o rsem-calculate-credibility-intervals calcCI.o -lpthread
++ $(CC) $(CFLAGS) -o rsem-calculate-credibility-intervals calcCI.o -lpthread
+
+ calcCI.o : calcCI.cpp
+- $(CC) $(COFLAGS) calcCI.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) calcCI.cpp
+
+ rsem-get-unique : getUnique.cpp sam/libbam.a
+- $(CC) -O3 -Wall getUnique.cpp sam/libbam.a -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 getUnique.cpp sam/libbam.a -lz -lpthread -o $@
+
+ rsem-sam-validator : samValidator.cpp sam/libbam.a
+- $(CC) -O3 -Wall samValidator.cpp sam/libbam.a -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 samValidator.cpp sam/libbam.a -lz -lpthread -o $@
+
+ rsem-scan-for-paired-end-reads : scanForPairedEndReads.cpp sam/libbam.a
+- $(CC) -O3 -Wall scanForPairedEndReads.cpp sam/libbam.a -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 scanForPairedEndReads.cpp sam/libbam.a -lz -lpthread -o $@
+
+ ebseq :
+ cd EBSeq ; ${MAKE} all
+
+From d366614ea50f79fdd93e3c76383ccb6fcdeaa8e0 Mon Sep 17 00:00:00 2001
+From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
+Date: Wed, 22 Apr 2015 15:10:49 +0200
+Subject: [PATCH 3/7] separate object rules from rules for executables
+
+---
+ Makefile | 50 ++++++++++++++++++++++++++------------------------
+ 1 file changed, 26 insertions(+), 24 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1dd97ca..ae4de3b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,6 +10,32 @@ all : $(PROGRAMS)
+ sam/libbam.a :
+ cd sam ; ${MAKE} all
+
++ebseq :
++ cd EBSeq ; ${MAKE} all
++
++
++calcCI.o : calcCI.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) calcCI.cpp
++
++EM.o : EM.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) EM.cpp
++
++Gibbs.o : Gibbs.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) Gibbs.cpp
++
++preRef.o : preRef.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) preRef.cpp
++
++parseIt.o : parseIt.cpp
++ $(CC) $(CFLAGS) -O2 -c parseIt.cpp
++
++simulation.o : simulation.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) simulation.cpp
++
++wiggle.o: wiggle.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) wiggle.cpp
++
++
+ rsem-extract-reference-transcripts : extractRef.cpp
+ $(CC) $(CFLAGS) -O3 extractRef.cpp -o rsem-extract-reference-transcripts
+
+@@ -19,24 +45,15 @@ rsem-synthesis-reference-transcripts : synthesisRef.cpp
+ rsem-preref : preRef.o
+ $(CC) $(CFLAGS) preRef.o -o rsem-preref
+
+-preRef.o : preRef.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) preRef.cpp
+-
+ rsem-parse-alignments : parseIt.o sam/libbam.a
+ $(CC) $(CFLAGS) -o rsem-parse-alignments parseIt.o sam/libbam.a -lz -lpthread
+
+-parseIt.o : parseIt.cpp
+- $(CC) $(CFLAGS) -O2 -c parseIt.cpp
+-
+ rsem-build-read-index : buildReadIndex.cpp
+ $(CC) $(CFLAGS) -O3 buildReadIndex.cpp -o rsem-build-read-index
+
+ rsem-run-em : EM.o sam/libbam.a
+ $(CC) $(CFLAGS) -o rsem-run-em EM.o sam/libbam.a -lz -lpthread
+
+-EM.o : EM.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) EM.cpp
+-
+ rsem-tbam2gbam : tbam2gbam.cpp sam/libbam.a
+ $(CC) $(CFLAGS) -O3 tbam2gbam.cpp sam/libbam.a -lz -lpthread -o $@
+
+@@ -46,27 +63,15 @@ rsem-bam2wig : wiggle.o sam/libbam.a bam2wig.cpp
+ rsem-bam2readdepth : wiggle.o sam/libbam.a bam2readdepth.cpp
+ $(CC) $(CFLAGS) -O3 bam2readdepth.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
+
+-wiggle.o: wiggle.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) wiggle.cpp
+-
+ rsem-simulate-reads : simulation.o
+ $(CC) $(CFLAGS) -o rsem-simulate-reads simulation.o
+
+-simulation.o : simulation.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) simulation.cpp
+-
+ rsem-run-gibbs : Gibbs.o
+ $(CC) $(CFLAGS) -o rsem-run-gibbs Gibbs.o -lpthread
+
+-Gibbs.o : Gibbs.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) Gibbs.cpp
+-
+ rsem-calculate-credibility-intervals : calcCI.o
+ $(CC) $(CFLAGS) -o rsem-calculate-credibility-intervals calcCI.o -lpthread
+
+-calcCI.o : calcCI.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) calcCI.cpp
+-
+ rsem-get-unique : getUnique.cpp sam/libbam.a
+ $(CC) $(CFLAGS) -O3 getUnique.cpp sam/libbam.a -lz -lpthread -o $@
+
+@@ -76,9 +81,6 @@ rsem-sam-validator : samValidator.cpp sam/libbam.a
+ rsem-scan-for-paired-end-reads : scanForPairedEndReads.cpp sam/libbam.a
+ $(CC) $(CFLAGS) -O3 scanForPairedEndReads.cpp sam/libbam.a -lz -lpthread -o $@
+
+-ebseq :
+- cd EBSeq ; ${MAKE} all
+-
+ clean :
+ rm -f *.o *~ $(PROGRAMS)
+ cd sam ; ${MAKE} clean
+
+From 6ba1c33cccdf7c8e7df7a3189e7db204be3b1e8d Mon Sep 17 00:00:00 2001
+From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
+Date: Wed, 22 Apr 2015 15:28:30 +0200
+Subject: [PATCH 4/7] add ./sam to library directories, link with -lbam
+
+---
+ Makefile | 36 ++++++++++++++++++------------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index ae4de3b..a87cc4d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,11 +1,11 @@
+ CC = g++
+-CFLAGS = -Wall -I. -I./sam -I./boost
++CFLAGS = -Wall -I. -I./sam -I./boost -L./sam
+ COFLAGS = -O3 -ffast-math -c
+ PROGRAMS = rsem-extract-reference-transcripts rsem-synthesis-reference-transcripts rsem-preref rsem-parse-alignments rsem-build-read-index rsem-run-em rsem-tbam2gbam rsem-run-gibbs rsem-calculate-credibility-intervals rsem-simulate-reads rsem-bam2wig rsem-get-unique rsem-bam2readdepth rsem-sam-validator rsem-scan-for-paired-end-reads
+
+ .PHONY : all ebseq clean
+
+-all : $(PROGRAMS)
++all : sam/libbam.a $(PROGRAMS)
+
+ sam/libbam.a :
+ cd sam ; ${MAKE} all
+@@ -45,23 +45,23 @@ rsem-synthesis-reference-transcripts : synthesisRef.cpp
+ rsem-preref : preRef.o
+ $(CC) $(CFLAGS) preRef.o -o rsem-preref
+
+-rsem-parse-alignments : parseIt.o sam/libbam.a
+- $(CC) $(CFLAGS) -o rsem-parse-alignments parseIt.o sam/libbam.a -lz -lpthread
++rsem-parse-alignments : parseIt.o
++ $(CC) $(CFLAGS) -o rsem-parse-alignments parseIt.o -lbam -lz -lpthread
+
+ rsem-build-read-index : buildReadIndex.cpp
+ $(CC) $(CFLAGS) -O3 buildReadIndex.cpp -o rsem-build-read-index
+
+-rsem-run-em : EM.o sam/libbam.a
+- $(CC) $(CFLAGS) -o rsem-run-em EM.o sam/libbam.a -lz -lpthread
++rsem-run-em : EM.o
++ $(CC) $(CFLAGS) -o rsem-run-em EM.o -lbam -lz -lpthread
+
+-rsem-tbam2gbam : tbam2gbam.cpp sam/libbam.a
+- $(CC) $(CFLAGS) -O3 tbam2gbam.cpp sam/libbam.a -lz -lpthread -o $@
++rsem-tbam2gbam : tbam2gbam.cpp
++ $(CC) $(CFLAGS) -O3 tbam2gbam.cpp -lbam -lz -lpthread -o $@
+
+-rsem-bam2wig : wiggle.o sam/libbam.a bam2wig.cpp
+- $(CC) $(CFLAGS) -O3 bam2wig.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
++rsem-bam2wig : wiggle.o bam2wig.cpp
++ $(CC) $(CFLAGS) -O3 bam2wig.cpp wiggle.o -lbam -lz -lpthread -o $@
+
+-rsem-bam2readdepth : wiggle.o sam/libbam.a bam2readdepth.cpp
+- $(CC) $(CFLAGS) -O3 bam2readdepth.cpp wiggle.o sam/libbam.a -lz -lpthread -o $@
++rsem-bam2readdepth : wiggle.o bam2readdepth.cpp
++ $(CC) $(CFLAGS) -O3 bam2readdepth.cpp wiggle.o -lbam -lz -lpthread -o $@
+
+ rsem-simulate-reads : simulation.o
+ $(CC) $(CFLAGS) -o rsem-simulate-reads simulation.o
+@@ -72,14 +72,14 @@ rsem-run-gibbs : Gibbs.o
+ rsem-calculate-credibility-intervals : calcCI.o
+ $(CC) $(CFLAGS) -o rsem-calculate-credibility-intervals calcCI.o -lpthread
+
+-rsem-get-unique : getUnique.cpp sam/libbam.a
+- $(CC) $(CFLAGS) -O3 getUnique.cpp sam/libbam.a -lz -lpthread -o $@
++rsem-get-unique : getUnique.cpp
++ $(CC) $(CFLAGS) -O3 getUnique.cpp -lbam -lz -lpthread -o $@
+
+-rsem-sam-validator : samValidator.cpp sam/libbam.a
+- $(CC) $(CFLAGS) -O3 samValidator.cpp sam/libbam.a -lz -lpthread -o $@
++rsem-sam-validator : samValidator.cpp
++ $(CC) $(CFLAGS) -O3 samValidator.cpp -lbam -lz -lpthread -o $@
+
+-rsem-scan-for-paired-end-reads : scanForPairedEndReads.cpp sam/libbam.a
+- $(CC) $(CFLAGS) -O3 scanForPairedEndReads.cpp sam/libbam.a -lz -lpthread -o $@
++rsem-scan-for-paired-end-reads : scanForPairedEndReads.cpp
++ $(CC) $(CFLAGS) -O3 scanForPairedEndReads.cpp -lbam -lz -lpthread -o $@
+
+ clean :
+ rm -f *.o *~ $(PROGRAMS)
+
+From 5402b88c269df79ee245c1c59e15f3c8282a0220 Mon Sep 17 00:00:00 2001
+From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
+Date: Wed, 22 Apr 2015 15:33:02 +0200
+Subject: [PATCH 5/7] do not repeat target name, use $@ instead
+
+---
+ Makefile | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a87cc4d..7ec90a3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -37,22 +37,22 @@ wiggle.o: wiggle.cpp
+
+
+ rsem-extract-reference-transcripts : extractRef.cpp
+- $(CC) $(CFLAGS) -O3 extractRef.cpp -o rsem-extract-reference-transcripts
++ $(CC) $(CFLAGS) -O3 extractRef.cpp -o $@
+
+ rsem-synthesis-reference-transcripts : synthesisRef.cpp
+- $(CC) $(CFLAGS) -O3 synthesisRef.cpp -o rsem-synthesis-reference-transcripts
++ $(CC) $(CFLAGS) -O3 synthesisRef.cpp -o $@
+
+ rsem-preref : preRef.o
+- $(CC) $(CFLAGS) preRef.o -o rsem-preref
++ $(CC) $(CFLAGS) preRef.o -o $@
+
+ rsem-parse-alignments : parseIt.o
+- $(CC) $(CFLAGS) -o rsem-parse-alignments parseIt.o -lbam -lz -lpthread
++ $(CC) $(CFLAGS) -o $@ parseIt.o -lbam -lz -lpthread
+
+ rsem-build-read-index : buildReadIndex.cpp
+- $(CC) $(CFLAGS) -O3 buildReadIndex.cpp -o rsem-build-read-index
++ $(CC) $(CFLAGS) -O3 buildReadIndex.cpp -o $@
+
+ rsem-run-em : EM.o
+- $(CC) $(CFLAGS) -o rsem-run-em EM.o -lbam -lz -lpthread
++ $(CC) $(CFLAGS) -o $@ EM.o -lbam -lz -lpthread
+
+ rsem-tbam2gbam : tbam2gbam.cpp
+ $(CC) $(CFLAGS) -O3 tbam2gbam.cpp -lbam -lz -lpthread -o $@
+@@ -64,13 +64,13 @@ rsem-bam2readdepth : wiggle.o bam2readdepth.cpp
+ $(CC) $(CFLAGS) -O3 bam2readdepth.cpp wiggle.o -lbam -lz -lpthread -o $@
+
+ rsem-simulate-reads : simulation.o
+- $(CC) $(CFLAGS) -o rsem-simulate-reads simulation.o
++ $(CC) $(CFLAGS) -o $@ simulation.o
+
+ rsem-run-gibbs : Gibbs.o
+- $(CC) $(CFLAGS) -o rsem-run-gibbs Gibbs.o -lpthread
++ $(CC) $(CFLAGS) -o $@ Gibbs.o -lpthread
+
+ rsem-calculate-credibility-intervals : calcCI.o
+- $(CC) $(CFLAGS) -o rsem-calculate-credibility-intervals calcCI.o -lpthread
++ $(CC) $(CFLAGS) -o $@ calcCI.o -lpthread
+
+ rsem-get-unique : getUnique.cpp
+ $(CC) $(CFLAGS) -O3 getUnique.cpp -lbam -lz -lpthread -o $@
+
+From f60784bc7aa303cc825bd87dd3f5d7d26c51bded Mon Sep 17 00:00:00 2001
+From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
+Date: Wed, 22 Apr 2015 15:44:53 +0200
+Subject: [PATCH 6/7] use automatic variables to refer to prerequisites
+
+---
+ Makefile | 44 ++++++++++++++++++++++----------------------
+ 1 file changed, 22 insertions(+), 22 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 7ec90a3..6540d81 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,71 +15,71 @@ ebseq :
+
+
+ calcCI.o : calcCI.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) calcCI.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) $<
+
+ EM.o : EM.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) EM.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) $<
+
+ Gibbs.o : Gibbs.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) Gibbs.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) $<
+
+ preRef.o : preRef.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) preRef.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) $<
+
+ parseIt.o : parseIt.cpp
+- $(CC) $(CFLAGS) -O2 -c parseIt.cpp
++ $(CC) $(CFLAGS) -O2 -c $<
+
+ simulation.o : simulation.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) simulation.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) $<
+
+ wiggle.o: wiggle.cpp
+- $(CC) $(CFLAGS) $(COFLAGS) wiggle.cpp
++ $(CC) $(CFLAGS) $(COFLAGS) $<
+
+
+ rsem-extract-reference-transcripts : extractRef.cpp
+- $(CC) $(CFLAGS) -O3 extractRef.cpp -o $@
++ $(CC) $(CFLAGS) -O3 $< -o $@
+
+ rsem-synthesis-reference-transcripts : synthesisRef.cpp
+- $(CC) $(CFLAGS) -O3 synthesisRef.cpp -o $@
++ $(CC) $(CFLAGS) -O3 $< -o $@
+
+ rsem-preref : preRef.o
+- $(CC) $(CFLAGS) preRef.o -o $@
++ $(CC) $(CFLAGS) $< -o $@
+
+ rsem-parse-alignments : parseIt.o
+- $(CC) $(CFLAGS) -o $@ parseIt.o -lbam -lz -lpthread
++ $(CC) $(CFLAGS) -o $@ $< -lbam -lz -lpthread
+
+ rsem-build-read-index : buildReadIndex.cpp
+- $(CC) $(CFLAGS) -O3 buildReadIndex.cpp -o $@
++ $(CC) $(CFLAGS) -O3 $< -o $@
+
+ rsem-run-em : EM.o
+- $(CC) $(CFLAGS) -o $@ EM.o -lbam -lz -lpthread
++ $(CC) $(CFLAGS) -o $@ $< -lbam -lz -lpthread
+
+ rsem-tbam2gbam : tbam2gbam.cpp
+- $(CC) $(CFLAGS) -O3 tbam2gbam.cpp -lbam -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 $< -lbam -lz -lpthread -o $@
+
+ rsem-bam2wig : wiggle.o bam2wig.cpp
+- $(CC) $(CFLAGS) -O3 bam2wig.cpp wiggle.o -lbam -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 $^ -lbam -lz -lpthread -o $@
+
+ rsem-bam2readdepth : wiggle.o bam2readdepth.cpp
+- $(CC) $(CFLAGS) -O3 bam2readdepth.cpp wiggle.o -lbam -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 $^ -lbam -lz -lpthread -o $@
+
+ rsem-simulate-reads : simulation.o
+- $(CC) $(CFLAGS) -o $@ simulation.o
++ $(CC) $(CFLAGS) -o $@ $<
+
+ rsem-run-gibbs : Gibbs.o
+- $(CC) $(CFLAGS) -o $@ Gibbs.o -lpthread
++ $(CC) $(CFLAGS) -o $@ $< -lpthread
+
+ rsem-calculate-credibility-intervals : calcCI.o
+- $(CC) $(CFLAGS) -o $@ calcCI.o -lpthread
++ $(CC) $(CFLAGS) -o $@ $< -lpthread
+
+ rsem-get-unique : getUnique.cpp
+- $(CC) $(CFLAGS) -O3 getUnique.cpp -lbam -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 $< -lbam -lz -lpthread -o $@
+
+ rsem-sam-validator : samValidator.cpp
+- $(CC) $(CFLAGS) -O3 samValidator.cpp -lbam -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 $< -lbam -lz -lpthread -o $@
+
+ rsem-scan-for-paired-end-reads : scanForPairedEndReads.cpp
+- $(CC) $(CFLAGS) -O3 scanForPairedEndReads.cpp -lbam -lz -lpthread -o $@
++ $(CC) $(CFLAGS) -O3 $< -lbam -lz -lpthread -o $@
+
+ clean :
+ rm -f *.o *~ $(PROGRAMS)
+
+From 0cf9721077f67fb4ca15fdc59cbfbf24a944debd Mon Sep 17 00:00:00 2001
+From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
+Date: Wed, 22 Apr 2015 15:49:19 +0200
+Subject: [PATCH 7/7] split long line
+
+---
+ Makefile | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 6540d81..0ab04a5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,22 @@
+ CC = g++
+ CFLAGS = -Wall -I. -I./sam -I./boost -L./sam
+ COFLAGS = -O3 -ffast-math -c
+-PROGRAMS = rsem-extract-reference-transcripts rsem-synthesis-reference-transcripts rsem-preref rsem-parse-alignments rsem-build-read-index rsem-run-em rsem-tbam2gbam rsem-run-gibbs rsem-calculate-credibility-intervals rsem-simulate-reads rsem-bam2wig rsem-get-unique rsem-bam2readdepth rsem-sam-validator rsem-scan-for-paired-end-reads
++PROGRAMS = \
++ rsem-extract-reference-transcripts \
++ rsem-synthesis-reference-transcripts \
++ rsem-preref \
++ rsem-parse-alignments \
++ rsem-build-read-index \
++ rsem-run-em \
++ rsem-tbam2gbam \
++ rsem-run-gibbs \
++ rsem-calculate-credibility-intervals \
++ rsem-simulate-reads \
++ rsem-bam2wig \
++ rsem-get-unique \
++ rsem-bam2readdepth \
++ rsem-sam-validator \
++ rsem-scan-for-paired-end-reads
+
+ .PHONY : all ebseq clean
+