Add static/dynamic library, package support and rearrange source files
authorjulie <julielangou@users.noreply.github.com>
Wed, 7 Jul 2010 16:16:15 +0000 (16:16 +0000)
committerjulie <julielangou@users.noreply.github.com>
Wed, 7 Jul 2010 16:16:15 +0000 (16:16 +0000)
CMakeLists.txt
SRC/CMakeLists.txt
SRC/Makefile

index 3189f26c76f9bfdcb56b8c81991b592513dc4d89..d733b506bc693e22517c3aed7d1a3e8408d938b0 100644 (file)
@@ -5,10 +5,20 @@ if (UNIX)
   set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" )
    endif ()
 endif ()
+
+# --------------------------------------------------
+# Testing
+
 enable_testing()
 include(CTest)
 enable_testing()
+# --------------------------------------------------
+
 set(CMAKE_MODULE_PATH ${LAPACK_SOURCE_DIR} ${CMAKE_MODULE_PATH})
+
+# --------------------------------------------------
+# Check second function
+
 include(CheckTimeFunction)
 set(TIME_FUNC NONE ${TIME_FUNC})
 CHECK_TIME_FUNCTION(NONE TIME_FUNC)
@@ -21,15 +31,48 @@ message(STATUS "--> Will use second_${TIME_FUNC}.f and dsecnd_${TIME_FUNC}.f as
 set(SECOND_SRC  ${LAPACK_SOURCE_DIR}/INSTALL/second_${TIME_FUNC}.f)
 set(DSECOND_SRC  ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
 
+# --------------------------------------------------
+# Subdirectories that need to be processed
+
 add_subdirectory(BLAS)
 add_subdirectory(SRC)
 add_subdirectory(TESTING)
 
+# --------------------------------------------------
+# CPACK Packaging 
+
+SET(CPACK_PACKAGE_NAME "LAPACK")
+SET(CPACK_PACKAGE_VENDOR "University of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd")
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LAPACK- Linear Algebra Package")
 set(LAPACK_VERSION 3.2.2)
 set(CPACK_PACKAGE_VERSION_MAJOR 3)
 set(CPACK_PACKAGE_VERSION_MINOR 2)
 set(CPACK_PACKAGE_VERSION_PATCH 2)
-include(CPack)
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
+SET(CPACK_PACKAGE_INSTALL_DIRECTORY "LAPACK")
+IF(WIN32 AND NOT UNIX)
+  # There is a bug in NSI that does not handle full unix paths properly. Make
+  # sure there is at least one set of four (4) backlasshes.
+  SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\http://icl.cs.utk.edu/lapack-forum")
+  SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.netlib.org/lapack")
+  SET(CPACK_NSIS_CONTACT "lapack@eecs.utk.edu")
+  SET(CPACK_NSIS_MODIFY_PATH ON)
+  SET(CPACK_NSIS_DISPLAY_NAME "LAPACK-${LAPACK_VERSION}")
+  set(CPACK_PACKAGE_RELOCATABLE "true")
+ELSE(WIN32 AND NOT UNIX)
+  SET(CPACK_GENERATOR "TGZ")
+  SET(CPACK_SOURCE_GENERATOR TGZ)
+  SET(CPACK_SOURCE_PACKAGE_FILE_NAME "lapack-${LAPACK_VERSION}" )
+  SET(CPACK_SOURCE_IGNORE_FILES ~$ .svn ${CPACK_SOURCE_IGNORE_FILES} )
+ENDIF(WIN32 AND NOT UNIX)
+INCLUDE(CPack)
+
+
+# --------------------------------------------------
+# By default static library
+OPTION(BUILD_SHARED_LIBS "Build shared libraries" OFF )
+#OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON )
+
 export(TARGETS blas lapack FILE lapack-targets.cmake)
 configure_file(${LAPACK_SOURCE_DIR}/lapack-config-version.cmake.in
   ${LAPACK_BINARY_DIR}/lapack-config-version.cmake @ONLY)
index 290c5d6725d8faff2ef6e718b8adfd26c4347f61..cc2c8748fd82df7ff1d958b9bb5df50d320a6188 100644 (file)
@@ -48,7 +48,8 @@
 
 set(ALLAUX  ilaenv.f ieeeck.f lsamen.f  iparmq.f       
     ilaprec.f ilatrans.f ilauplo.f iladiag.f chla_transtype.f 
-    ../INSTALL/ilaver.f ../INSTALL/lsame.f xerbla.f xerbla_array.f)
+    ../INSTALL/ilaver.f ../INSTALL/lsame.f xerbla.f xerbla_array.f
+    ../INSTALL/slamch.f)
 
 set(ALLXAUX )
 
@@ -67,7 +68,7 @@ set(SCLAUX
    slaset.f slasq1.f slasq2.f slasq3.f slasq4.f slasq5.f slasq6.f 
    slasr.f  slasrt.f slassq.f slasv2.f spttrf.f sstebz.f sstedc.f 
    ssteqr.f ssterf.f slaisnan.f sisnan.f 
-   ../INSTALL/slamch.f ${SECOND_SRC})
+    ${SECOND_SRC})
 
 set(DZLAUX  
    dbdsdc.f 
@@ -140,6 +141,8 @@ set(SLASRC
    sgejsv.f  sgesvj.f  sgsvj0.f  sgsvj1.f 
    sgeequb.f ssyequb.f spoequb.f sgbequb.f)
 
+set(DSLASRC spotrs.f sgetrs.f spotrf.f sgetrf.f) 
+
 set(SXLASRC  sgesvxx.f sgerfsx.f sla_gerfsx_extended.f sla_geamv.f             
    sla_gercond.f sla_rpvgrw.f ssysvxx.f ssyrfsx.f                      
    sla_syrfsx_extended.f sla_syamv.f sla_syrcond.f sla_syrpvgrw.f      
@@ -218,6 +221,8 @@ set(CXLASRC     cgesvxx.f cgerfsx.f cla_gerfsx_extended.f cla_geamv.f
    cla_hercond_c.f cla_hercond_x.f cla_herpvgrw.f 
    cla_lin_berr.f clarscl2.f clascl2.f cla_wwaddw.f)
 
+set(ZCLASRC cpotrs.f cgetrs.f cpotrf.f cgetrf.f) 
+
 set(DLASRC 
    dgbbrd.f dgbcon.f dgbequ.f dgbrfs.f dgbsv.f  
    dgbsvx.f dgbtf2.f dgbtrf.f dgbtrs.f dgebak.f dgebal.f dgebd2.f 
@@ -360,20 +365,19 @@ if( USEXBLAS)
   set(ALLXOBJ ${SXLASRC} ${DXLASRC} ${CXLASRC} ${ZXLASRC} ${ALLXAUX})
 endif()
 
-set(ALLOBJ ${SLASRC} ${DLASRC} ${CLASRC} ${ZLASRC} ${SCLAUX} ${DZLAUX} 
+set(ALLOBJ ${SLASRC} ${DSLASRC} ${DLASRC} ${CLASRC} ${ZCLASRC} ${ZLASRC} ${SCLAUX} ${DZLAUX}   
        ${ALLAUX})
 if(BUILD_SINGLE)
-set(ALLOBJ  ${SLASRC} ${ALLAUX} 
-       ${SCLAUX})
+set(ALLOBJ  ${SLASRC} ${ALLAUX}        ${SCLAUX} ${DSLASRC} )
 endif()
 if(BUILD_DOUBLE)
-  set(ALLOBJ ${DLASRC} ${ALLAUX} ${DZLAUX})
+  set(ALLOBJ ${DLASRC} ${ALLAUX} ${DZLAUX} ${DSLASRC})
 endif()
 if(BUILD_COMPLEX)
-  set(ALLOBJ ${CLASRC} ${ALLAUX} ${SCLAUX})
+  set(ALLOBJ ${CLASRC} ${ALLAUX} ${SCLAUX} ${ZCLASRC} )
 endif()
 if(BUILD_COMPLEX16)
-  set(ALLOBJ  ${ZLASRC} ${ALLAUX} ${DZLAUX})
+  set(ALLOBJ  ${ZLASRC} ${ALLAUX} ${DZLAUX} ${ZCLASRC})
 endif()
 add_library(lapack ${ALLOBJ} ${ALLXOBJ})
 target_link_libraries(lapack blas)
index 011cbd6e7087d903c7745b951e66bde752d72e3d..2cf9323bfd46e31daf3e536c69a76ffa81b6fd61 100644 (file)
@@ -50,7 +50,7 @@ include ../make.inc
 
 ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o   \
     ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \
-    ../INSTALL/ilaver.o ../INSTALL/lsame.o
+    ../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o
 
 ALLXAUX =
 
@@ -69,7 +69,7 @@ SCLAUX = \
    slaset.o slasq1.o slasq2.o slasq3.o slasq4.o slasq5.o slasq6.o \
    slasr.o  slasrt.o slassq.o slasv2.o spttrf.o sstebz.o sstedc.o \
    ssteqr.o ssterf.o slaisnan.o sisnan.o \
-   ../INSTALL/slamch.o ../INSTALL/second_$(TIMER).o
+    ../INSTALL/second_$(TIMER).o
 
 DZLAUX = \
    dbdsdc.o \
@@ -96,8 +96,8 @@ SLASRC = \
    sgels.o  sgelsd.o sgelss.o sgelsx.o sgelsy.o sgeql2.o sgeqlf.o \
    sgeqp3.o sgeqpf.o sgeqr2.o sgeqr2p.o sgeqrf.o sgeqrfp.o sgerfs.o \
    sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesv.o  sgesvd.o sgesvx.o \
-   sgetc2.o sgetf2.o sgetrf.o sgetri.o \
-   sgetrs.o sggbak.o sggbal.o sgges.o  sggesx.o sggev.o  sggevx.o \
+   sgetc2.o sgetf2.o sgetri.o \
+   sggbak.o sggbal.o sgges.o  sggesx.o sggev.o  sggevx.o \
    sggglm.o sgghrd.o sgglse.o sggqrf.o \
    sggrqf.o sggsvd.o sggsvp.o sgtcon.o sgtrfs.o sgtsv.o  \
    sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o \
@@ -121,7 +121,7 @@ SLASRC = \
    sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \
    spbstf.o spbsv.o  spbsvx.o \
    spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o  \
-   sposvx.o spotf2.o spotrf.o spotri.o spotrs.o spstrf.o spstf2.o \
+   sposvx.o spotf2.o spotrf.o spotri.o  spstrf.o spstf2.o \
    sppcon.o sppequ.o \
    spprfs.o sppsv.o  sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o \
    spteqr.o sptrfs.o sptsv.o  sptsvx.o spttrs.o sptts2.o srscl.o  \
@@ -142,6 +142,8 @@ SLASRC = \
    sgejsv.o  sgesvj.o  sgsvj0.o  sgsvj1.o \
    sgeequb.o ssyequb.o spoequb.o sgbequb.o
 
+DSLASRC = spotrs.o sgetrs.o spotrf.o sgetrf.o 
+
 SXLASRC = sgesvxx.o sgerfsx.o sla_gerfsx_extended.o sla_geamv.o                \
    sla_gercond.o sla_rpvgrw.o ssysvxx.o ssyrfsx.o                      \
    sla_syrfsx_extended.o sla_syamv.o sla_syrcond.o sla_syrpvgrw.o      \
@@ -220,6 +222,8 @@ CXLASRC =    cgesvxx.o cgerfsx.o cla_gerfsx_extended.o cla_geamv.o \
    cla_hercond_c.o cla_hercond_x.o cla_herpvgrw.o \
    cla_lin_berr.o clarscl2.o clascl2.o cla_wwaddw.o
 
+ZCLASRC = cpotrs.o cgetrs.o cpotrf.o cgetrf.o 
+
 DLASRC = \
    dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o  \
    dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o \
@@ -363,8 +367,8 @@ ifdef USEXBLAS
 ALLXOBJ=$(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) $(ALLXAUX)
 endif
 
-ALLOBJ=$(SLASRC) $(DLASRC) $(CLASRC) $(ZLASRC) $(SCLAUX) $(DZLAUX)     \
-       $(ALLAUX)
+ALLOBJ=$(SLASRC) $(DLASRC) $(DSLASRC) $(CLASRC) $(ZLASRC) $(ZCLASRC) \
+          $(SCLAUX) $(DZLAUX) $(ALLAUX)
 
 ../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ)
        $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ)
@@ -372,22 +376,22 @@ ALLOBJ=$(SLASRC) $(DLASRC) $(CLASRC) $(ZLASRC) $(SCLAUX) $(DZLAUX)        \
 
 single: $(SLASRC) $(ALLAUX) $(SCLAUX) 
        $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(ALLAUX) \
-       $(SCLAUX)
+       $(SCLAUX) $(DSLASRC)
        $(RANLIB) ../$(LAPACKLIB)
 
 complex: $(CLASRC) $(ALLAUX) $(SCLAUX)
        $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(CLASRC) $(ALLAUX) \
-       $(SCLAUX)
+       $(SCLAUX) $(ZCLASRC)
        $(RANLIB) ../$(LAPACKLIB)
 
 double: $(DLASRC) $(ALLAUX) $(DZLAUX)
        $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(DLASRC) $(ALLAUX) \
-       $(DZLAUX)
+       $(DZLAUX) $(DSLASRC)
        $(RANLIB) ../$(LAPACKLIB)
 
 complex16: $(ZLASRC) $(ALLAUX) $(DZLAUX)
        $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(ZLASRC) $(ALLAUX) \
-       $(DZLAUX)
+       $(DZLAUX) $(ZCLASRC)
        $(RANLIB) ../$(LAPACKLIB)
 
 $(ALLAUX): $(FRC)