https://github.com/AlexanderDilthey/MHC-PRG
Raw File
Tip revision: e59943adb8855532573a6c276651efad1e18a6b1 authored by Alexander Dilthey on 18 December 2018, 10:20:48 UTC
Update HLA-PRG.md
Tip revision: e59943a
makefile
# LIBRARY SETTINGS - SET AS NECESSARY
# 
# The library settings typically require some tinkering - for reasons beyond me, sometimes one has to include
# the shared object files (.so), and sometimes the .a files (particularly for bamtools).
# Also, curiously, sometimes bamtools requires the explicit inclusion of libz (either as 
# file or just via -lz)
# The following values work for me (see below for an alternative):
#

INCS = -I/data/projects/phillippy/software/bamtools/include -I/data/projects/phillippy/software/bamtools/src
LIBS = -L/data/projects/phillippy/software/boost_1_60_0/lib -L/data/projects/phillippy/software/bamtools/lib -lboost_random -lboost_system -lboost_filesystem -lboost_serialization -lbamtools

# an alternative line (courtesy Peter Humburg, not working for me but for him) is
# LIBS = /home/dilthey/PnP/libs/boost_1_52_0/lib/lib/libboost_random.so /home/dilthey/PnP/libs/boost_1_52_0/lib/lib/libboost_filesystem.so /home/dilthey/PnP/libs/boost_1_52_0/lib/lib/libboost_system.so /home/dilthey/bamtools/bamtools/lib/libbamtools.so /home/dilthey/bamtools/bamtools/lib/libbamtools-utils.a -lz

MKDIR_P = mkdir -p

.PHONY: directories
	
# END LIBRARY SETTINGS

#
# object and binary dirs
#

DIR_OBJ = ../obj
DIR_BIN = ../bin

CXX    = g++
COPTS  = -ggdb -O2 -fopenmp -std=gnu++0x -fstack-protector-all
CFLAGS = 
COMPILE = $(CXX) $(INCS) $(CFLAGS) $(COPTS)

VPATH = Data:Graph:NextGen:hash:hash/deBruijn:hash/sequence:GraphAligner:GraphAlignerUnique:readFilter
        
OBJS = \
        $(DIR_OBJ)/GenotypePanel.o \
        $(DIR_OBJ)/HaplotypePanel.o \
        $(DIR_OBJ)/Edge.o \
        $(DIR_OBJ)/Graph.o \
        $(DIR_OBJ)/LargeGraph.o \
        $(DIR_OBJ)/MultiGraph.o \
        $(DIR_OBJ)/HMM.o \
        $(DIR_OBJ)/MultiHMM.o \
        $(DIR_OBJ)/AlphaHMM.o \
        $(DIR_OBJ)/AlphaHMMlegacy.o \
        $(DIR_OBJ)/Node.o \
        $(DIR_OBJ)/NextGen.o \
        $(DIR_OBJ)/HLAtypes.o \
        $(DIR_OBJ)/simulationSuite.o \
        $(DIR_OBJ)/readSimulator.o \
        $(DIR_OBJ)/Validation.o \
        $(DIR_OBJ)/LocusCodeAllocation.o \
        $(DIR_OBJ)/LargeLocusCodeAllocation.o \
        $(DIR_OBJ)/Utilities.o \
        $(DIR_OBJ)/DeBruijnGraph.o \
        $(DIR_OBJ)/DeBruijnElement.o \
        $(DIR_OBJ)/basic.o \
        $(DIR_OBJ)/binarykMer.o \
        $(DIR_OBJ)/Hsh.o \
        $(DIR_OBJ)/GraphAligner.o \
        $(DIR_OBJ)/GraphAlignernonAffine.o \
        $(DIR_OBJ)/GraphAlignerAffine.o \
        $(DIR_OBJ)/GraphAlignerendsFree.o \
        $(DIR_OBJ)/GraphAlignerUnique.o \
        $(DIR_OBJ)/coveredIntervals.o \
        $(DIR_OBJ)/GraphAndEdgeIndex.o \
        $(DIR_OBJ)/UniqueAlignerTests.o \
        $(DIR_OBJ)/readFilter.o \
        $(DIR_OBJ)/filterLongOverlappingReads.o \
        $(DIR_OBJ)/GraphAndIndex.o \
        $(DIR_OBJ)/AlignerTests.o \
        $(DIR_OBJ)/VirtualNW.o \
        $(DIR_OBJ)/VirtualNWUnique.o
        
#
# list executable file names
#
EXECS = MHC-PRG

OUT_DIR = ../obj ../bin

directories: ${OUT_DIR}


#
# compile and link
#
default:
	@echo
	@echo " to build:"
	@echo "    make all"
	@echo
	@echo " to clean:"
	@echo "    make clean"
	@echo "    make realclean"
	@echo

all: directories $(EXECS)

$(EXECS): $(OBJS)
	$(foreach EX, $(EXECS), $(COMPILE) $(EX).cpp -c -o $(DIR_OBJ)/$(EX).o;)
	$(foreach EX, $(EXECS), $(COMPILE) $(OBJS) $(DIR_OBJ)/$(EX).o -o $(DIR_BIN)/$(EX) $(LIBS);)

$(DIR_OBJ)/%.o: %.cpp %.h
	$(COMPILE) $< -c -o $@


#
# odds and ends
#
clean:
	/bin/rm $(DIR_OBJ)/*

realclean: clean
	/bin/rm $(DIR_BIN)/*

${OUT_DIR}:
	${MKDIR_P} ${OUT_DIR}

back to top