2
2
# This is the makefile to create a library for LAPACK.
3
3
# The files are organized as follows:
4
4
5
+ # ALLMOD -- Part of ALLAUX
5
6
# ALLAUX -- Auxiliary routines called from all precisions
6
7
# SCLAUX -- Auxiliary routines called from single precision
7
8
# DZLAUX -- Auxiliary routines called from double precision
35
36
#
36
37
#######################################################################
37
38
39
+ set (ALLMOD la_xisnan.F90 la_constants.f90 )
40
+
38
41
set (ALLAUX ilaenv.f ilaenv2stage.f ieeeck.f lsamen.f iparmq.f iparam2stage.F
39
- ilaprec.f ilatrans.f ilauplo.f iladiag.f chla_transtype.f la_xisnan.F90
42
+ ilaprec.f ilatrans.f ilauplo.f iladiag.f chla_transtype.f
40
43
../INSTALL/ilaver.f ../INSTALL/lsame.f xerbla.f xerbla_array.f
41
44
../INSTALL/slamch.f )
42
45
43
46
set (SCLAUX
44
- la_constants.f90
45
47
sbdsvdx.f sbdsdc.f
46
48
sbdsqr.f sdisna.f slabad.f slacpy.f sladiv.f slae2.f slaebz.f
47
49
slaed0.f slaed1.f slaed2.f slaed3.f slaed4.f slaed5.f slaed6.f
@@ -60,7 +62,6 @@ set(SCLAUX
60
62
${SECOND_SRC} )
61
63
62
64
set (DZLAUX
63
- la_constants.f90
64
65
dbdsdc.f dbdsvdx.f
65
66
dbdsqr.f ddisna.f
66
67
disnan.f
@@ -516,7 +517,17 @@ if(BUILD_COMPLEX16)
516
517
endif ()
517
518
list (REMOVE_DUPLICATES SOURCES )
518
519
520
+ # Use special target for MOD files to guarantee they are built before
521
+ # any other files that depend on them
522
+ add_library (mod_files OBJECT ${ALLMOD} )
523
+ set_target_properties (
524
+ mod_files PROPERTIES
525
+ POSITION_INDEPENDENT_CODE ON
526
+ Fortran_PREPROCESS ON
527
+ )
528
+
519
529
add_library (${LAPACKLIB} _obj OBJECT ${SOURCES} )
530
+ target_link_libraries (${LAPACKLIB} _obj mod_files )
520
531
set_target_properties (
521
532
${LAPACKLIB} _obj PROPERTIES
522
533
POSITION_INDEPENDENT_CODE ON
@@ -530,6 +541,7 @@ if(BUILD_INDEX64_EXT_API)
530
541
list (REMOVE_ITEM SOURCES_64 ${SECOND_SRC} )
531
542
list (REMOVE_ITEM SOURCES_64 ${DSECOND_SRC} )
532
543
add_library (${LAPACKLIB} _64_obj OBJECT ${SOURCES_64} )
544
+ target_link_libraries (${LAPACKLIB} _64_obj mod_files )
533
545
target_compile_options (${LAPACKLIB} _64_obj PRIVATE ${FOPT_ILP64} -DLAPACK_64 )
534
546
set_target_properties (
535
547
${LAPACKLIB} _64_obj PROPERTIES
@@ -539,6 +551,7 @@ if(BUILD_INDEX64_EXT_API)
539
551
endif ()
540
552
541
553
add_library (${LAPACKLIB}
554
+ $< TARGET_OBJECTS:mod_files>
542
555
$< TARGET_OBJECTS:${LAPACKLIB} _obj>
543
556
$< $< BOOL:${BUILD_INDEX64_EXT_API} > : $< TARGET_OBJECTS:${LAPACKLIB} _64_obj> > )
544
557
set_target_properties (
0 commit comments