From: Michael R. Crusoe <michael.crusoe@gmail.com>
Subject: Pass CPPFLAGS
--- libvcflib.orig/Makefile
+++ libvcflib/Makefile
@@ -125,7 +125,7 @@
 # Use the one we ship in tabixpp unless told otherwise by the environment
 HTS_LIB ?= $(VCF_LIB_LOCAL)/tabixpp/htslib/libhts.a
 HTS_INCLUDES ?= -I$(VCF_LIB_LOCAL)/tabixpp/htslib
-HTS_LDFLAGS ?= -L$(VCF_LIB_LOCAL)/tabixpp/htslib -lhts -lbz2 -lm -lz -llzma
+HTS_LDFLAGS ?= -L$(VCF_LIB_LOCAL)/tabixpp/htslib -lhts -lbz2 -lm -lz -llzma $(LDFLAGS)
 
 
 INCLUDES = $(HTS_INCLUDES) -I$(INC_DIR) 
@@ -138,7 +138,7 @@
 
 GIT_VERSION ?= $(shell git describe --abbrev=4 --dirty --always)
 
-CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x
+CXXFLAGS += -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x
 #CXXFLAGS = -O2
 #CXXFLAGS = -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual
 
@@ -152,28 +152,28 @@
 	$(MAKE) CXXFLAGS="$(CXXFLAGS) -pg" all
 
 $(OBJECTS): $(SOURCES) $(HEADERS) multichoose pre $(FILEVERCMP)
-	$(CXX) -c $(CFLAGS) -fPIC -o $@ src/$(*F).cpp $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) && $(CP) src/*.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
+	$(CXX) $(CPPFLAGS) -c $(CFLAGS) -fPIC -o $@ src/$(*F).cpp $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) $(LDLIBS) && $(CP) src/*.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
 
 multichoose: pre
-	cd multichoose && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
+	cd multichoose && LDFLAGS="$(HTS_LDFLAGS)" $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
 
 intervaltree: pre
-	cd intervaltree && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
+	cd intervaltree && LDFLAGS="$(HTS_LDFLAGS)" $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
 
 $(TABIX): pre
 	echo "No need to create separately packaged tabixpp"
 
 $(FILEVERCMP): pre
-	cd filevercmp && make && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(INC_DIR)/
+	cd filevercmp && LDFLAGS="$(HTS_LDFLAGS)" $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(INC_DIR)/
 
 $(SHORTBINS): pre
 	$(MAKE) $(BIN_DIR)/$@
 
 $(BINS): $(BIN_SOURCES) libvcflib.so $(OBJECTS) $(FILEVERCMP) pre intervaltree
-	$(CXX) src/$(notdir $@).cpp -o $@ $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) -DVERSION=\"$(GIT_VERSION)\"
+	$(CXX) $(CPPFLAGS) src/$(notdir $@).cpp -o $@ $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) -DVERSION=\"$(GIT_VERSION)\" $(LDLIBS)
 
 libvcflib.so: $(OBJECTS) $(FILEVERCMP) pre
-	$(CC) -shared  -Wl,-soname -Wl,libvcflib.so.1 -o libvcflib.so.1 $(OBJECTS) $(FILEVERCMP)
+	$(CC) $(HTS_LDFLAGS) -shared  -Wl,-soname -Wl,libvcflib.so.1 -o libvcflib.so.1 $(OBJECTS) $(FILEVERCMP) $(LDLIBS)
 	ln -s libvcflib.so.1 libvcflib.so
 	$(CP) -a libvcflib.so* $(LIB_DIR)
 
@@ -199,10 +199,10 @@
 	$(RM) -r $(LIB_DIR)
 	$(RM) -r $(INC_DIR)
 	$(RM) -r $(OBJ_DIR)
-	$(MAKE) clean -C multichoose
-	$(MAKE) clean -C libVCFH
-	$(MAKE) clean -C test
-	$(MAKE) clean -C filevercmp
-	$(MAKE) clean -C intervaltree
+	+$(MAKE) clean -C multichoose
+	+$(MAKE) clean -C libVCFH
+	+$(MAKE) clean -C test
+	+$(MAKE) clean -C filevercmp
+	+$(MAKE) clean -C intervaltree
 	
 .PHONY: clean all test pre
--- libvcflib.orig/filevercmp/Makefile
+++ libvcflib/filevercmp/Makefile
@@ -7,7 +7,7 @@
 .PHONY: all clean
 
 filevercmp.o: filevercmp.c main.c filevercmp.h
-	gcc -c filevercmp.c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c filevercmp.c
 
 filevercmp: filevercmp.o
-	gcc -o filevercmp main.c filevercmp.o
+	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o filevercmp main.c filevercmp.o
--- libvcflib.orig/intervaltree/Makefile
+++ libvcflib/intervaltree/Makefile
@@ -8,7 +8,7 @@
 # FreeBSD ports, MacPorts, pkgsrc, etc.)
 
 CXX ?=		c++
-CXXFLAGS ?=	-Wall
+CXXFLAGS +=	-Wall
 DESTDIR ?=	stage
 PREFIX ?=	/usr/local
 MKDIR ?=	mkdir
@@ -20,7 +20,7 @@
 all: ${BIN}
 
 ${BIN}: interval_tree_test.cpp IntervalTree.h
-	${CXX} ${CXXFLAGS} interval_tree_test.cpp -std=c++0x -o ${BIN}
+	${CXX} $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(LDLIBS) interval_tree_test.cpp -std=c++0x -o ${BIN}
 
 install: all
 	${MKDIR} -p ${DESTDIR}${PREFIX}/bin
--- libvcflib.orig/multichoose/Makefile
+++ libvcflib/multichoose/Makefile
@@ -5,16 +5,16 @@
 all: multichoose multipermute
 
 #multichoose_recursive: multichoose_recursive.cpp
-#	${CXX} multichoose_recursive.cpp -o multichoose_recursive
+#	${CXX} $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) multichoose_recursive.cpp -o multichoose_recursive
 
 multichoose: multichoose.cpp multichoose.h
-	${CXX} multichoose.cpp -o multichoose
+	${CXX} $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) multichoose.cpp -o multichoose
 
 multipermute: multipermute.cpp multipermute.h
-	${CXX} multipermute.cpp -o multipermute
+	${CXX} $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) multipermute.cpp -o multipermute
 
 cmultichoose: multichoose.c
-	${CC} multichoose.c -o cmultichoose
+	${CC} $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) multichoose.c -o cmultichoose
 
 clean:
 	rm -f cmultichoose
