1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
# -----------------------------------------------------------------
# Makefile for PLINK
#
# Supported platforms
# Unix / Linux UNIX
# Windows WIN
# Mac MAC
# Solaris SOLARIS
#
# Compilation options
# R plugins WITH_R_PLUGINS
# Web-based version check WITH_WEBCHECK
# Ensure 32-bit binary FORCE_32BIT
# (Ignored) WITH_ZLIB
# Link to LAPACK WITH_LAPACK
# Force dynamic linking FORCE_DYNAMIC
#
# ---------------------------------------------------------------------
# Set this variable to either UNIX, MAC or WIN
SYS = UNIX
# Leave blank after "=" to disable; put "= 1" to enable
WITH_R_PLUGINS = 1
WITH_WEBCHECK = 1
FORCE_32BIT =
WITH_ZLIB = 1
WITH_LAPACK =
FORCE_DYNAMIC =
# Put C++ compiler here; Windows has it's own specific version
CXX_UNIX = g++
CXX_WIN = c:\bin\mingw\bin\mingw32-g++.exe
# Any other compiler flags here ( -Wall, -g, etc)
CXXFLAGS =
# Misc
LIB_LAPACK = /usr/lib/liblapack.so.3
# --------------------------------------------------------------------
# Do not edit below this line
# --------------------------------------------------------------------
CXXFLAGS += -O3 -I.
OUTPUT = plink
# Some system specific flags
ifeq ($(SYS),WIN)
CXXFLAGS += -DWIN -static
CXX = $(CXX_WIN)
ifndef FORCE_DYNAMIC
CXXFLAGS += -static
endif
endif
ifeq ($(SYS),UNIX)
CXXFLAGS += -DUNIX
CXX = $(CXX_UNIX)
ifndef FORCE_DYNAMIC
CXXFLAGS += -static
endif
endif
ifeq ($(SYS),MAC)
CXXFLAGS += -DUNIX -Dfopen64=fopen
CXX = $(CXX_UNIX)
endif
ifeq ($(SYS),SOLARIS)
CXXFLAGS += -fast
CXXFLAGS += -xtarget=ultraT2 # specific Sun hardware (must be specified after the -fast option)
CXXFLAGS += -xdepend=no # required to fix seg fault in iropt
LIB = -lstdc++
LIB += -lgcc
LIB += -lsocket # added for socket support
LIB += -lnsl # added for network services support
CXX = $(CXX_UNIX)
endif
ifdef FORCE_32BIT
CXXFLAGS += -m32
endif
# Flags for web-based version check
ifdef WITH_WEBCHECK
ifeq ($(SYS),WIN)
LIB += -lwsock32
endif
else
CXXFLAGS += -DSKIP
endif
SRC = plink.cpp options.cpp input.cpp binput.cpp tinput.cpp genome.cpp \
helper.cpp stats.cpp filters.cpp locus.cpp multi.cpp crandom.cpp \
cluster.cpp mds.cpp output.cpp informative.cpp assoc.cpp epi.cpp \
prephap.cpp phase.cpp trio.cpp tdt.cpp sharing.cpp genepi.cpp sets.cpp \
perm.cpp mh.cpp genedrop.cpp gxe.cpp merge.cpp hotel.cpp multiple.cpp \
haploCC.cpp haploTDT.cpp poo.cpp webcheck.cpp qfam.cpp linear.cpp \
bmerge.cpp parse.cpp mishap.cpp legacy.cpp homozyg.cpp segment.cpp \
model.cpp logistic.cpp glm.cpp dcdflib.cpp elf.cpp dfam.cpp fisher.cpp \
linput.cpp sockets.cpp lookup.cpp proxy.cpp pdriver.cpp haploQTL.cpp \
haplohelper.cpp haplowindow.cpp genogroup.cpp nonfounderphasing.cpp \
clumpld.cpp genoerr.cpp em.cpp impute.cpp metaem.cpp profile.cpp \
nlist.cpp whap.cpp simul.cpp gvar.cpp cnv.cpp step.cpp greport.cpp \
flip.cpp qualscores.cpp cnvqt.cpp cfamily.cpp setscreen.cpp idhelp.cpp \
tag.cpp hapglm.cpp lookup2.cpp blox.cpp zed.cpp dosage.cpp annot.cpp \
metaanal.cpp
HDR = plink.h options.h helper.h stats.h crandom.h sets.h phase.h \
perm.h model.h linear.h logistic.h dcdflib.h ipmpar.h cdflib.h \
fisher.h sockets.h haplowindow.h genogroup.h clumpld.h nlist.h whap.h \
gvar.h cnv.h cfamily.h idhelp.h zed.h
ifdef WITH_R_PLUGINS
CXXFLAGS += -DWITH_R_PLUGINS
HDR += sisocks.h Rsrv.h Rconnection.h config.h
SRC += r.cpp Rconnection.cpp
ifeq ($(SYS),MAC)
LIB += -ldl
endif
ifeq ($(SYS),UNIX)
LIB += -ldl -lcrypt
endif
endif
ifdef WITH_ZLIB
CXXFLAGS += -DWITH_ZLIB
HDR += zfstream.h
SRC += zfstream.cpp
LIB += -lz
endif
ifdef WITH_LAPACK
CXXFLAGS += -DWITH_LAPACK
HDR += lapackf.h
SRC += lapackf.cpp
LIB += $(LIB_LAPACK)
endif
OBJ = $(SRC:.cpp=.o)
all : $(OUTPUT)
$(OUTPUT) :
$(CXX) $(CXXFLAGS) -o $(OUTPUT) $(OBJ) $(LIB)
$(OBJ) : $(HDR)
.cpp.o :
$(CXX) $(CXXFLAGS) -c $*.cpp
.SUFFIXES : .cpp .c .o $(SUFFIXES)
$(OUTPUT) : $(OBJ)
FORCE:
clean:
rm -f *.o *~
|