Added AUX files from lapack-netlib.
authorHank Anderson <hank.p.anderson@gmail.com>
Tue, 10 Feb 2015 20:29:05 +0000 (14:29 -0600)
committerHank Anderson <hank.p.anderson@gmail.com>
Tue, 10 Feb 2015 20:29:05 +0000 (14:29 -0600)
CMakeLists.txt
cmake/fc.cmake
cmake/lapack.cmake [new file with mode: 0644]

index d82ef61..9db677d 100644 (file)
@@ -12,7 +12,7 @@ set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${Open
 enable_language(Fortran)
 enable_language(ASM)
 
-message(WARNING "CMake support is experimental. This will not produce the same Makefiles that OpenBLAS ships with.")
+message(WARNING "CMake support is experimental. This will not produce the same Makefiles that OpenBLAS ships with. Only DOUBLE and x86 support is currently available.")
 
 include("${CMAKE_SOURCE_DIR}/cmake/utils.cmake")
 include("${CMAKE_SOURCE_DIR}/cmake/system.cmake")
@@ -70,23 +70,11 @@ endforeach ()
 # netlib:
 
 # Can't just use lapack-netlib's CMake files, since they are set up to search for BLAS, build and install a binary. We just want to build a couple of lib files out of lapack and lapacke.
-
-# aux files
-set(ALLAUX
-  ${NETLIB_LAPACK_DIR}/SRC/ilaenv.f ${NETLIB_LAPACK_DIR}/SRC/ieeeck.f ${NETLIB_LAPACK_DIR}/SRC/lsamen.f ${NETLIB_LAPACK_DIR}/SRC/xerbla_array.f ${NETLIB_LAPACK_DIR}/SRC/iparmq.f
-  ${NETLIB_LAPACK_DIR}/SRC/ilaprec.f ${NETLIB_LAPACK_DIR}/SRC/ilatrans.f ${NETLIB_LAPACK_DIR}/SRC/ilauplo.f ${NETLIB_LAPACK_DIR}/SRC/iladiag.f ${NETLIB_LAPACK_DIR}/SRC/chla_transtype.f
-  ${NETLIB_LAPACK_DIR}/INSTALL/ilaver.f ${NETLIB_LAPACK_DIR}/INSTALL/slamch.f
-)
-add_library(AUX_OBJ OBJECT ${ALLAUX})
-set_target_properties(${AUX_OBJ} PROPERTIES COMPILE_FLAGS ${LAPACK_FFLAGS})
-list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:AUX_OBJ>")
-
-# N.B. if a source is added or removed you MUST re-run the cmake command manually; make will not do it.
-file(GLOB DLA_SOURCES "${NETLIB_LAPACK_DIR}/SRC/d*.f")
-
-add_library(DLA_OBJ OBJECT ${DLA_SOURCES})
-set_target_properties(${DLA_OBJ} PROPERTIES COMPILE_FLAGS ${LAPACK_FFLAGS})
-list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:DLA_OBJ>")
+# Not using add_subdirectory here because lapack-netlib already has its own CMakeLists.txt. Instead include a cmake script with the sources we want.
+include("${CMAKE_SOURCE_DIR}/cmake/lapack.cmake")
+add_library(LA_OBJ OBJECT ${LA_SOURCES})
+set_target_properties(LA_OBJ PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS}")
+list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:LA_OBJ>")
 
 # add objects to the openblas lib
 add_library(openblas ${TARGET_OBJS})
index a47865b..ba156c2 100644 (file)
@@ -191,3 +191,10 @@ if (${F_COMPILER} STREQUAL "COMPAQ")
   endif ()
 endif ()
 
+# from the root Makefile - this is for lapack-netlib to compile the correct secnd file.
+if (${F_COMPILER} STREQUAL "GFORTRAN")
+  set(TIMER "INT_ETIME")
+else ()
+  set(TIMER "NONE")
+endif ()
+
diff --git a/cmake/lapack.cmake b/cmake/lapack.cmake
new file mode 100644 (file)
index 0000000..14581a9
--- /dev/null
@@ -0,0 +1,100 @@
+# Sources for compiling lapack-netlib. Can't use CMakeLists.txt because lapack-netlib already has its own cmake files.\r
+\r
+set(ALLAUX\r
+  ilaenv.f ieeeck.f lsamen.f xerbla_array.f iparmq.f   \r
+  ilaprec.f ilatrans.f ilauplo.f iladiag.f chla_transtype.f \r
+  ../INSTALL/ilaver.f ../INSTALL/slamch.f\r
+)\r
+\r
+set(DZLAUX\r
+   dbdsdc.f \r
+   dbdsqr.f ddisna.f dlabad.f dlacpy.f dladiv.f dlae2.f  dlaebz.f \r
+   dlaed0.f dlaed1.f dlaed2.f dlaed3.f dlaed4.f dlaed5.f dlaed6.f \r
+   dlaed7.f dlaed8.f dlaed9.f dlaeda.f dlaev2.f dlagtf.f \r
+   dlagts.f dlamrg.f dlanst.f \r
+   dlapy2.f dlapy3.f dlarnv.f \r
+   dlarra.f dlarrb.f dlarrc.f dlarrd.f dlarre.f dlarrf.f dlarrj.f \r
+   dlarrk.f dlarrr.f dlaneg.f \r
+   dlartg.f dlaruv.f dlas2.f  dlascl.f \r
+   dlasd0.f dlasd1.f dlasd2.f dlasd3.f dlasd4.f dlasd5.f dlasd6.f \r
+   dlasd7.f dlasd8.f dlasda.f dlasdq.f dlasdt.f \r
+   dlaset.f dlasq1.f dlasq2.f dlasq3.f dlasq4.f dlasq5.f dlasq6.f \r
+   dlasr.f  dlasrt.f dlassq.f dlasv2.f dpttrf.f dstebz.f dstedc.f \r
+   dsteqr.f dsterf.f dlaisnan.f disnan.f \r
+   dlartgp.f dlartgs.f \r
+   ../INSTALL/dlamch.f ../INSTALL/dsecnd_${TIMER}.f\r
+)\r
+\r
+set(DLASRC\r
+   dgbbrd.f dgbcon.f dgbequ.f dgbrfs.f dgbsv.f  \r
+   dgbsvx.f dgbtf2.f dgbtrf.f dgbtrs.f dgebak.f dgebal.f dgebd2.f \r
+   dgebrd.f dgecon.f dgeequ.f dgees.f  dgeesx.f dgeev.f  dgeevx.f \r
+   dgegs.f  dgegv.f  dgehd2.f dgehrd.f dgelq2.f dgelqf.f \r
+   dgels.f  dgelsd.f dgelss.f dgelsx.f dgelsy.f dgeql2.f dgeqlf.f \r
+   dgeqp3.f dgeqpf.f dgeqr2.f dgeqr2p.f dgeqrf.f dgeqrfp.f dgerfs.f \r
+   dgerq2.f dgerqf.f dgesc2.f dgesdd.f  dgesvd.f dgesvx.f  \r
+   dgetc2.f dgetri.f \r
+   dggbak.f dggbal.f dgges.f  dggesx.f dggev.f  dggevx.f \r
+   dggglm.f dgghrd.f dgglse.f dggqrf.f \r
+   dggrqf.f dggsvd.f dggsvp.f dgtcon.f dgtrfs.f dgtsv.f  \r
+   dgtsvx.f dgttrf.f dgttrs.f dgtts2.f dhgeqz.f \r
+   dhsein.f dhseqr.f dlabrd.f dlacon.f dlacn2.f \r
+   dlaein.f dlaexc.f dlag2.f  dlags2.f dlagtm.f dlagv2.f dlahqr.f \r
+   dlahrd.f dlahr2.f dlaic1.f dlaln2.f dlals0.f dlalsa.f dlalsd.f \r
+   dlangb.f dlange.f dlangt.f dlanhs.f dlansb.f dlansp.f \r
+   dlansy.f dlantb.f dlantp.f dlantr.f dlanv2.f \r
+   dlapll.f dlapmt.f \r
+   dlaqgb.f dlaqge.f dlaqp2.f dlaqps.f dlaqsb.f dlaqsp.f dlaqsy.f \r
+   dlaqr0.f dlaqr1.f dlaqr2.f dlaqr3.f dlaqr4.f dlaqr5.f \r
+   dlaqtr.f dlar1v.f dlar2v.f iladlr.f iladlc.f \r
+   dlarf.f  dlarfb.f dlarfg.f dlarfgp.f dlarft.f dlarfx.f \r
+   dlargv.f dlarrv.f dlartv.f  \r
+   dlarz.f  dlarzb.f dlarzt.f dlasy2.f dlasyf.f dlasyf_rook.f \r
+   dlatbs.f dlatdf.f dlatps.f dlatrd.f dlatrs.f dlatrz.f dlatzm.f \r
+   dopgtr.f dopmtr.f dorg2l.f dorg2r.f \r
+   dorgbr.f dorghr.f dorgl2.f dorglq.f dorgql.f dorgqr.f dorgr2.f \r
+   dorgrq.f dorgtr.f dorm2l.f dorm2r.f \r
+   dormbr.f dormhr.f dorml2.f dormlq.f dormql.f dormqr.f dormr2.f \r
+   dormr3.f dormrq.f dormrz.f dormtr.f dpbcon.f dpbequ.f dpbrfs.f \r
+   dpbstf.f dpbsv.f  dpbsvx.f \r
+   dpbtf2.f dpbtrf.f dpbtrs.f dpocon.f dpoequ.f dporfs.f dposv.f  \r
+   dposvx.f dpotrs.f dpstrf.f dpstf2.f \r
+   dppcon.f dppequ.f \r
+   dpprfs.f dppsv.f  dppsvx.f dpptrf.f dpptri.f dpptrs.f dptcon.f \r
+   dpteqr.f dptrfs.f dptsv.f  dptsvx.f dpttrs.f dptts2.f drscl.f  \r
+   dsbev.f  dsbevd.f dsbevx.f dsbgst.f dsbgv.f  dsbgvd.f dsbgvx.f \r
+   dsbtrd.f  dspcon.f dspev.f  dspevd.f dspevx.f dspgst.f \r
+   dspgv.f  dspgvd.f dspgvx.f dsprfs.f dspsv.f  dspsvx.f dsptrd.f \r
+   dsptrf.f dsptri.f dsptrs.f dstegr.f dstein.f dstev.f  dstevd.f dstevr.f \r
+   dstevx.f \r
+   dsycon.f dsyev.f  dsyevd.f dsyevr.f \r
+   dsyevx.f dsygs2.f dsygst.f dsygv.f  dsygvd.f dsygvx.f dsyrfs.f \r
+   dsysv.f  dsysvx.f \r
+   dsytd2.f dsytf2.f dsytrd.f dsytrf.f dsytri.f dsytri2.f dsytri2x.f \r
+   dsyswapr.f dsytrs.f dsytrs2.f dsyconv.f \r
+   dsytf2_rook.f dsytrf_rook.f dsytrs_rook.f \r
+   dsytri_rook.f dsycon_rook.f dsysv_rook.f \r
+   dtbcon.f dtbrfs.f dtbtrs.f dtgevc.f dtgex2.f dtgexc.f dtgsen.f \r
+   dtgsja.f dtgsna.f dtgsy2.f dtgsyl.f dtpcon.f dtprfs.f dtptri.f \r
+   dtptrs.f \r
+   dtrcon.f dtrevc.f dtrexc.f dtrrfs.f dtrsen.f dtrsna.f dtrsyl.f \r
+   dtrtrs.f dtzrqf.f dtzrzf.f dstemr.f \r
+   dsgesv.f dsposv.f dlag2s.f slag2d.f dlat2s.f \r
+   dlansf.f dpftrf.f dpftri.f dpftrs.f dsfrk.f dtfsm.f dtftri.f dtfttp.f \r
+   dtfttr.f dtpttf.f dtpttr.f dtrttf.f dtrttp.f \r
+   dgejsv.f  dgesvj.f  dgsvj0.f  dgsvj1.f \r
+   dgeequb.f dsyequb.f dpoequb.f dgbequb.f \r
+   dbbcsd.f dlapmr.f dorbdb.f dorbdb1.f dorbdb2.f dorbdb3.f dorbdb4.f \r
+   dorbdb5.f dorbdb6.f dorcsd.f dorcsd2by1.f \r
+   dgeqrt.f dgeqrt2.f dgeqrt3.f dgemqrt.f \r
+   dtpqrt.f dtpqrt2.f dtpmqrt.f dtprfb.f dpotri.f\r
+)\r
+\r
+set(LA_REL_SRC ${ALLAUX} ${DZLAUX} ${DLASRC})\r
+\r
+# add lapack-netlib folder to the sources\r
+set(LA_SOURCES "")\r
+foreach (LA_FILE ${LA_REL_SRC})\r
+  list(APPEND LA_SOURCES "${NETLIB_LAPACK_DIR}/SRC/${LA_FILE}")\r
+endforeach ()\r
+\r