#------------------------------------------------------ # Maximum likelihood estimation # of migration rate and effectice population size # using importance sampling of correlated genealogies # a Metropolis-Hastings Monte Carlo algorithm # n-population version # # In case you want to change something # edit Makefile.in and run configure again AND # notify me, so that I can change the configure script. # # this makefile was produced with configure: # Makefile.in -> configure -> Makefile # # $Id: Makefile.in 756 2007-06-27 02:45:26Z beerli $ #------------------------------------------------------ # Peter Beerli 2002-2003, Seattle # Peter Beerli 2004-2007 Tallahassee # beerli@scs.fsu.edu #----------------------------------------------------- .SUFFIXES: .SUFFIXES: .o .c .cpp .h ####################################################### MIGRATEVERSION = 2.3 MIGRATESUBVERSION = ####################################################### prefix = exec_prefix = ${prefix} INSTALLDIR = ${exec_prefix}/bin #/usr/local/bin MANPAGEDIR = ${prefix}/man/man1 #/usr/local/man/man1 # Source of manpage migrate.1 ----------------------- # not up to date MANPAGE = migrate.1 #---------------------------------------------------- # programs specified through configure CC = cc INSTALL = /usr/bin/install -c -o root -g wheel TAR = tar MPICC = mpicc #---------------------------------------------------- # compile flags # outcommented ones are for specific systems or then # use different modules in the program # current default is using Mersenne-Twister as random number generator CPUTYPE = i386 OSTYPE = gnu # use Mersenne twister random number generator CFLAGS_MT = -DMERSENNE_TWISTER -DMEXP=19937 MT_FILES = SFMT.c # to optimize Mersenne-Twister random number generator use ./configure --enable-sse2 on INTEL # machines or ./configure --enable-altivec on PowerPC architectures, this will then set the option # correctly HARDWARECFLAGS = COMMONFLAGS = -DHIGHBITS -DHAVE_CONFIG_H -DHAVE_MALLOCWRAP $(CFLAGS_MT) $(HARDWARECFLAGS) # # combine the common flags with the version number and subversion number COMMONVFLAGS = $(COMMONFLAGS) -DMIGRATESUBVERSION=\"\\\"$(MIGRATESUBVERSION)\\\"\" CFLAGS = $(COMMONVFLAGS) -DMIGRATEVERSION=\"\\\"$(MIGRATEVERSION)\\\"\" # IBM xlc compiler # CC = xlc # CFLAGS_XLC = -O3 -Q -qunroll -qalloca -qhot -qipa -qthreaded # CFLAGS = $(CFLAGS_XLC) -D$(CPU) $(COMMONVFLAGS) -DMIGRATEVERSION=\"\\\"$(MIGRATEVERSION)\\\"\" # INTEL icc compiler # CC = icc # CFLAGS = -fast $(COMMONVFLAGS) -DMIGRATEVERSION=\"\\\"$(MIGRATEVERSION)\\\"\" # # flags that are used when multi-threading THREADCFLAGS = -D_REENTRANT -DPTHREADS # not used currently should replace the fixed random number generator above with configure #RANDOMCFLAG = @RANDOMFLAG@ # need to compile the haru pdf library PRETTYCFLAGS = -DNOJPEG -DNOZLIB -DNOPNG -Iharu -DPRETTY # # DEBUG FLAGS --- you should not need to use those # if you have not gcc and want to debug, you need to know # how to change the cflags yourself: -Wall is not known to all compilers # on SGI or IBM AIX machines remove the -Wall tag DEBUGCFLAGS = -g -Wall -DDEBUG $(COMMONFLAGS) -DMIGRATEVERSION=\"\\\"debug $(MIGRATEVERSION)\\\"\" CHECKERCFLAGS = -g -Wall $(COMMONFLAGS) -DMIGRATEVERSION=\"\\\"checker $(MIGRATEVERSION)\"\\\" DMALLOCCFLAGS = -g -DDMALLOC_FUNC_CHECK -Wall -DHIGHBITS -DHAVE_CONFIG_H -DMIGRATEVERSION=\"\\\"$(MIGRATEVERSION)\"\\\" EFENCEFLAGS = -g -Wall -DHIGHBITS -DHAVE_CONFIG_H -DMIGRATEVERSION=\"\\\"efence $(MIGRATEVERSION)\"\\\" MEMDEBUGFLAGS = -g -Wall -DHIGHBITS -DHAVE_CONFIG_H -DMEMEDEBUG # # Library flags LIBS = -lm LDFLAGS = PDFLIB = -Lharu -lharu -lz -lstdc++ OTHERLIBS = -pthread DMALLOCLIBS = -lm -ldmalloc EFENCELIBS = -lm -lefence MEMDEBUGLIBS = -lm -lmemdb WINLIBS = -luser32 -Wl,--subsystem,console #---------------------------------------------------- # NAME = migrate-n DMALLOCNAME = mig.dmalloc EFENCENAME = mig.efence MEMDEBUGNAME = mig.memdebug WINNAME = migrate.exe CFILES = aic.c altivec.c bayes.c broyden.c combroyden2.c data.c gammalike.c fst.c \ heating.c inthp.c joint-chains.c laguerre.c lrt.c main.c migrate_mpi.c\ mcmc1.c mcmc2.c menu.c migevents.c options.c profile.c random.c reporter.c \ spline.c tools.c tree.c sequence.c sighandler.c slice.c sort.c uep.c world.c pretty.c skyline.c watterson.c CPLUSFILES = pretty-win32.cpp HFILES = aic.h altivec.h bayes.h broyden.h combroyden.h data.h definitions.h \ fst.h gammalike.h heating.h integrate.h \ joint-chains.h laguerre.h lrt.h\ mcmc.h mcmc2.h menu.h migration.h migevents.h migrate_mpi.h options.h \ profile.h random.h sequence.h sighandler.h slice.h sort.h \ tools.h tree.h world.h spline.h reporter.h uep.h pretty.h skyline.h watterson.h SOURCEFILES = $(CFILES) ALLSOURCES = $(CFILES) $(HFILES) $(CPLUSFILES) CONFIGUREEXEC = configure configure.in config.guess\ config.sub config.status install-sh ADDITIONALFILES = Makefile.in conf.h.in conf.h INSTALL $(MANPAGE) $(CONFIGUREEXEC) jamfile DOCUMENTATION = README HISTORY HOWTO-PARALLEL migrate.html EXAMPLEDIR = example GRAPHICSDIR = graphics TESTSUITE = testsuite CONTRIBDIR = contribution HARUDIR = haru MTDIR = SFMT-src-1.2 OFILES = $(CFILES:.c=.o) $(CPLUSFILES:.cpp=.o) $(MT_FILES:.c=.o) INSTALL_DEPENDS = $(INSTALLDIR) all PRODUCT_DEPENDS = $(OFILES) .c.o: $(CC) $(CFLAGS) -c $*.c .cpp.o: $(CC) $(CFLAGS) -c $*.cpp #-o $*.o # # # intro:: @echo "-----------------------------------------------------" @echo "Migrate $(MIGRATEVERSION)" @echo "please **read** the documentation" @echo "this Makefile will produce an executable: migrate-n" @echo "I am interested in getting email about any problems." @echo "Please send all compile warning or error messages" @echo " beerli@csit.fsu.edu [Peter Beerli]" @echo "----------------------------------------------------" $(MAKE) all all:: $(MAKE) $(NAME) "CFLAGS = $(CFLAGS)" "LIBS = $(LIBS)";\ strip $(NAME) debug:: $(MAKE) $(NAME) "CFLAGS = $(DEBUGCFLAGS)" pretty:: haru $(MAKE) $(NAME) "CFLAGS = $(CFLAGS) $(PRETTYCFLAGS)" "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = $(LDFLAGS) -fexceptions" thread-pretty:: haru $(MAKE) $(NAME) "CFLAGS = $(CFLAGS) $(PRETTYCFLAGS) $(THREADCFLAGS)" "LIBS = $(OTHERLIBS) $(PDFLIB) $(LIBS)" "LDFLAGS = $(LDFLAGS) -fexceptions" pretty-debug:: haru $(MAKE) $(NAME) "CFLAGS = $(DEBUGCFLAGS) $(PRETTYCFLAGS)" "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS =$(LDFLAGS) -fexceptions" dox: cat migrate.dox.in | sed 's/MIGRATEVERSION/$(MIGRATEVERSION)/g' | sed 's/MIGRATESUBVERSION/$(MIGRATESUBVERSION)/g' > migrate.dox doxygen migrate.dox thread:: $(MAKE) $(NAME) "CFLAGS = $(CFLAGS) $(THREADCFLAGS)" "LIBS = $(OTHERLIBS) $(LIBS)";\ strip $(NAME) mpis-debug:: $(MAKE) $(NAME) "CC=$(MPICC)" "CFLAGS = $(DEBUGCFLAGS) -DHAVE_DEBUGMPI -DMPI -DSLOWNET -DNEWREPLICANT -DMPIREPLICANT" "LIBS = $(LIBS)" mpis:: $(MAKE) $(NAME) "CC=$(MPICC)" "CFLAGS = $(CFLAGS) -DMPI -DSLOWNET -DNEWREPLICANT -DMPIREPLICANT" "LIBS = $(LIBS)" mpis-thread:: $(MAKE) $(NAME) "CC=$(MPICC)" "CFLAGS = $(CFLAGS) $(THREADCFLAGS) -DMPI -DSLOWNET -DNEWREPLICANT -DMPIREPLICANT" "LIBS = $(OTHERLIBS) $(LIBS)" mpis-thread-pretty:: haru $(MAKE) $(NAME) "CC=$(MPICC)" "CFLAGS = $(CFLAGS) $(PRETTYCFLAGS) $(THREADCFLAGS) -DMPI -DSLOWNET -DNEWREPLICANT -DMPIREPLICANT" "LIBS = $(OTHERLIBS) $(PDFLIB) $(LIBS)" mpis-pretty:: haru $(MAKE) $(NAME) "CC=$(MPICC)" "CFLAGS = $(CFLAGS) $(PRETTYCFLAGS) -DMPI -DSLOWNET -DNEWREPLICANT -DMPIREPLICANT" "LIBS = $(PDFLIB) $(LIBS)" mpis-pretty-debug:: haru $(MAKE) $(NAME) "CC=$(MPICC)" "CFLAGS = $(DEBUGCFLAGS) $(PRETTYCFLAGS) -DMPI -DSLOWNET -DNEWREPLICANT -DMPIREPLICANT" "LIBS = $(PDFLIB) $(LIBS)" mpis-thread-pretty-debug:: haru $(MAKE) $(NAME) "CC=$(MPICC)" "CFLAGS = $(DEBUGCFLAGS) $(PRETTYCFLAGS) $(THREADCFLAGS) -DMPI -DSLOWNET -DNEWREPLICANT -DMPIREPLICANT" "LIBS = $(OTHERLIBS) $(PDFLIB) $(LIBS)" # experimental development longsum:: @echo "!!!!!!!!!!!!!! DO NOT USE THIS, DOES NOT WORK CORRECTLY YET !!!!!!" # $(MAKE) $(NAME) "CFLAGS = $(DEBUGCFLAGS) -DLONGSUM" quasi-cud:: haru $(MAKE) $(NAME) "CFLAGS = $(DEBUGCFLAGS) $(PRETTYCFLAGS) -DQUASIRANDOM -DCUD" "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = -fexceptions" quasi-korobov:: haru $(MAKE) $(NAME) "CFLAGS = $(DEBUGCFLAGS) $(PRETTYCFLAGS) -DQUASIRANDOM -DKOROBOV" "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = -fexceptions" quasi-halton:: haru $(MAKE) $(NAME) "CFLAGS = $(DEBUGCFLAGS) $(PRETTYCFLAGS) -DQUASIRANDOM -DHALTON" "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = -fexceptions" quasi-weyl:: haru $(MAKE) $(NAME) "CFLAGS = $(DEBUGCFLAGS) $(PRETTYCFLAGS) -DQUASIRANDOM -DWEYL " "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = -fexceptions" quasir-cud:: haru $(MAKE) $(NAME) "CFLAGS = $(CFLAGS) $(PRETTYCFLAGS) -DQUASIRANDOM -DCUD" "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = -fexceptions" quasir-korobov:: haru $(MAKE) $(NAME) "CFLAGS = $(CFLAGS) $(PRETTYCFLAGS) -DQUASIRANDOM -DKOROBOV" "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = -fexceptions" quasir-halton:: haru $(MAKE) $(NAME) "CFLAGS = $(CFLAGS) $(PRETTYCFLAGS) -DQUASIRANDOM -DHALTON" "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = -fexceptions" quasir-weyl:: haru $(MAKE) $(NAME) "CFLAGS = $(CFLAGS) $(PRETTYCFLAGS) -DQUASIRANDOM -DWEYL " "LIBS = $(PDFLIB) $(LIBS)" "LDFLAGS = -fexceptions" altivec:: @echo "!!!!!!!!!!!!!! DO NOT USE THIS, DOES NOT WORK CORRECTLY YET !!!!!!" # $(MAKE) $(NAME) "CFLAGS = -faltivec -DALTIVEC $(CFLAGS) $(THREADCFLAGS)" "LIBS = $(OTHERLIBS) $(LIBS)"; # strip $(NAME) ; win:: build-mig windows efence:: $(MAKE) $(EFENCENAME) "CFLAGS = $(EFENCEFLAGS)" memdebug:: $(MAKE) $(MEMDEBUGNAME) "CFLAGS = $(MEMDEBUGFLAGS)" checker:: $(MAKE) $(NAME) "CC=checkergcc" "CFLAGS = $(CHECKERCFLAGS)" dmalloc:: $(MAKE) $(DMALLOCNAME) "CFLAGS = $(DMALLOCCFLAGS)" install:: $(INSTALL_DEPENDS) $(INSTALL) $(IFLAGS) $(NAME) $(INSTALLDIR) $(INSTALL) $(IFLAGS) $(MANPAGE) $(MANPAGEDIR) clean:: make haru-clean -/bin/rm -rf $(GARBAGE) *.o gmon.out distclean:: make haru-clean /bin/rm -rf $(GARBAGE) *.o conf.h gmon.out config.cache \ config.status Makefile $(NAME) *~ *.log migrate-n \ mig.efence mig.dmalloc; zip:: @echo ' $(TAR) and gzip to ../migrate-$(MIGRATEVERSION).zip.tar.gz' -/bin/rm -i ../migrate-$(MIGRATEVERSION).zip.tar.gz $(TAR) cf - $(ALLSOURCES) $(ADDITIONALFILES) $(GRAPHICSDIR) \ $(EXAMPLEDIR) $(CONTRIBDIR) $(DOCUMENTATION) | \ gzip > ../migrate-$(MIGRATEVERSION).zip.tar.gz fix:: -/bin/chmod +x $(CONFIGUREEXEC) haru:: (cd ./haru ; $(MAKE) -f makefile.osx "CC=$(CC)" "CPP=$(CC)") haru-clean:: (cd ./haru ; $(MAKE) -f makefile.osx clean) distrib:: $(MAKE) srcdistrib; $(MAKE) bindistrib; srcdistrib:: @echo ' Creating Distribution version $(MIGRATEVERSION)' @make haru-clean -/bin/chmod +x $(CONFIGUREEXEC) -/bin/rm -i ../migrate-$(MIGRATEVERSION).tar.gz -/bin/rm -rf /tmp/migrate-tmp -/bin/mkdir -p /tmp/migrate-tmp/migrate-$(MIGRATEVERSION)/src/$(TESTSUITE) -$(TAR) --exclude .svn -cf - $(ALLSOURCES) $(ADDITIONALFILES) $(MTDIR) $(HARUDIR) copy_mt_to_src | \ (cd /tmp/migrate-tmp/migrate-$(MIGRATEVERSION)/src ; $(TAR) xf -) -$(TAR) --exclude .svn -cf - $(GRAPHICSDIR) $(EXAMPLEDIR) $(CONTRIBDIR) $(DOCUMENTATION) | \ (cd /tmp/migrate-tmp/migrate-$(MIGRATEVERSION) ; $(TAR) xf -) -$(TAR) --exclude .svn -cf - $(TESTSUITE)/infile* $(TESTSUITE)/parmfile* $(TESTSUITE)/runtest | \ (cd /tmp/migrate-tmp/migrate-$(MIGRATEVERSION)/src/$(TESTSUITE) ; $(TAR) xf -) -(cd /tmp/migrate-tmp ; $(TAR) cf - migrate-$(MIGRATEVERSION) | \ gzip) > ../migrate-$(MIGRATEVERSION).src.tar.gz winzip:: @echo ' Creating Windows Distribution version $(MIGRATEVERSION)' -/bin/rm -rf /tmp/migrate-tmp -/bin/mkdir -p /tmp/migrate-tmp/migrate-$(MIGRATEVERSION) -$(TAR) --exclude .svn -cf - $(WINNAME) $(GRAPHICSDIR) $(EXAMPLEDIR) $(CONTRIBDIR) $(DOCUMENTATION) | \ (cd /tmp/migrate-tmp/migrate-$(MIGRATEVERSION) ; $(TAR) xf -) -(cd /tmp/migrate-tmp ; zip -r migrate-$(MIGRATEVERSION).windows.zip migrate-$(MIGRATEVERSION)) -cp /tmp/migrate-tmp/migrate-$(MIGRATEVERSION).windows.zip .. bindistrib:: $(NAME) @make bin-local-distrib "OSTYPE=$(OSTYPE)" "CPUTYPE=$(CPUTYPE)"; #@make bin-local-distrib "OSTYPE=`uname -s | tr " " "-" `" "CPUTYPE=`uname -m | tr " " "-" `"; bin-local-distrib: @echo ' Creating binary $(OSTYPE)-$(CPUTYPE)-distribution version $(MIGRATEVERSION)' -/bin/chmod +x $(CONFIGUREEXEC) -/bin/rm -i ../migrate-$(MIGRATEVERSION).$(OSTYPE)-$(CPUTYPE).tar.gz -/bin/rm -rf /tmp/migrate-tmp -/bin/mkdir -p /tmp/migrate-tmp/migrate-$(MIGRATEVERSION)/src -$(TAR) cf - $(ALLSOURCES) $(ADDITIONALFILES) $(HARUDIR) | \ (cd /tmp/migrate-tmp/migrate-$(MIGRATEVERSION)/src ; $(TAR) xf -) -$(TAR) cf - $(NAME) $(GRAPHICSDIR) $(EXAMPLEDIR) $(CONTRIBDIR) $(DOCUMENTATION) | \ (cd /tmp/migrate-tmp/migrate-$(MIGRATEVERSION) ; $(TAR) xf -) -(cd /tmp/migrate-tmp ; $(TAR) cf - migrate-$(MIGRATEVERSION) | \ gzip) > ../migrate-$(MIGRATEVERSION).$(OSTYPE)-$(CPUTYPE).tar.gz help:: @echo 'Makefile targets, the one with the [*] are suggested targets:' @echo ' make (creates the basic executable)' @echo ' make pretty (creates the basic executable with added PDF support) [*]' @echo ' make thread (allows parallel processing of heated chains on SMP)' @echo ' make thread-pretty (SMP + PDF support: USE THIS ON DUAL_CORE machines)[*]' # @echo ' make mpi (fastnet - assumes you use LAM/MPI, and talk to me)' # @echo ' make mpi-thread (fastnet - assumes you use LAM/MPI and pthreads, and talk to me)' @echo ' make mpis-pretty (slownet - assumes you use an MPI library [LAM, openmpi, or mpich2])' # @echo ' make mpis-thread (slownet - assumes you use MPI-lib and pthreads)' # @echo ' make mpis-thread-pretty (like above but with PDF Bayes printing)' @echo ' make clean (removes all *.o files but not the Makefile)' # @echo ' make distclean (removes all created files)' @echo ' make install (installs the executables and man page)' @echo ' make pretty-debug (there are more options like this, but check out the Makefile)' #---------------------------------------------------------- # $(OFILE_DIR) $(INSTALLDIR): mkdir -p $@; SRCROOT: @if [ -n "${$@}" ]; then exit 0; \ else echo Must define $@; exit 1; fi $(NAME): $(PRODUCT_DEPENDS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OFILES) $(LIBS) ; $(WINNAME): $(PRODUCT_DEPENDS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OFILES) $(OTHERLIBS) $(WINLIBS) ; $(EFENCENAME): $(PRODUCT_DEPENDS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OFILES) $(EFENCELIBS) $(LIBS) ; $(MEMDEBUGNAME): $(PRODUCT_DEPENDS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OFILES) $(MEMDEBUGLIBS) $(LIBS) ; $(DMALLOCNAME): $(PRODUCT_DEPENDS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OFILES) $(DMALLOCLIBS) $(LIBS) ; #---------------------------------------------------------------- # test section # # # test: pretty mkdir test; cd test; \ cp ../example/parmfile* . ;\ cp ../example/infile.msat . ;\ ../migrate-n parmfile.testml ;\ ../migrate-n parmfile.testbayes ;\ srctest: mkdir test; make srcdistrib; #@ mv ../migrate-$(MIGRATEVERSION).src.tar.gz test/ ; cd test; \ tar xzvf migrate-$(MIGRATEVERSION).src.tar.gz ;\ cd migrate-$(MIGRATEVERSION)/src ;\ configure ;\ make pretty;\ cd ../.. ;\ cp ../example/parmfile* . ;\ cp ../example/infile.msat . ;\ migrate-$(MIGRATEVERSION)/src/migrate-n parmfile.testml ;\ migrate-$(MIGRATEVERSION)/src/migrate-n parmfile.testbayes ;\ cd migrate-$(MIGRATEVERSION)/src ;\ make clean ;\ make mpis-thread-pretty ;\ cd ../.. ;\ lamboot ;\ mpirun -np 5 migrate-n parmfile.testml ;\ mpirun -np 5 migrate-n parmfile.testbayes ; # # # # #----------------------------------------------------------------