Merge branch 'development' into omp-threadsafe

omp-threadsafe
sfilippone 2 years ago
commit 739dc78a75

@ -356,7 +356,7 @@ function psb_cnrm2_vect(x, desc_a, info,global) result(res)
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(cone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(sone - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else
@ -465,7 +465,7 @@ function psb_cnrm2_weight_vect(x,w, desc_a, info,global,aux) result(res)
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(cone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(sone - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else
@ -577,7 +577,7 @@ function psb_cnrm2_weightmask_vect(x,w,idv, desc_a, info,global, aux) result(re
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(cone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(sone - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else

@ -356,7 +356,7 @@ function psb_dnrm2_vect(x, desc_a, info,global) result(res)
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(done - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(done - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else
@ -465,7 +465,7 @@ function psb_dnrm2_weight_vect(x,w, desc_a, info,global,aux) result(res)
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(done - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(done - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else
@ -577,7 +577,7 @@ function psb_dnrm2_weightmask_vect(x,w,idv, desc_a, info,global, aux) result(re
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(done - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(done - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else

@ -356,7 +356,7 @@ function psb_snrm2_vect(x, desc_a, info,global) result(res)
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(sone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(sone - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else
@ -465,7 +465,7 @@ function psb_snrm2_weight_vect(x,w, desc_a, info,global,aux) result(res)
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(sone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(sone - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else
@ -577,7 +577,7 @@ function psb_snrm2_weightmask_vect(x,w,idv, desc_a, info,global, aux) result(re
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(sone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(sone - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else

@ -356,7 +356,7 @@ function psb_znrm2_vect(x, desc_a, info,global) result(res)
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(zone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(done - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else
@ -465,7 +465,7 @@ function psb_znrm2_weight_vect(x,w, desc_a, info,global,aux) result(res)
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(zone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(done - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else
@ -577,7 +577,7 @@ function psb_znrm2_weightmask_vect(x,w,idv, desc_a, info,global, aux) result(re
idx = desc_a%ovrlap_elem(i,1) idx = desc_a%ovrlap_elem(i,1)
ndm = desc_a%ovrlap_elem(i,2) ndm = desc_a%ovrlap_elem(i,2)
dd = dble(ndm-1)/dble(ndm) dd = dble(ndm-1)/dble(ndm)
res = res - sqrt(zone - dd*(abs(x%v%v(idx))/res)**2) res = res * sqrt(done - dd*(abs(x%v%v(idx))/res)**2)
end do end do
end if end if
else else

@ -537,7 +537,6 @@ subroutine psb_c_coo_reinit(a,clear)
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = czero if (clear_) a%val(:) = czero
call a%set_host() call a%set_host()
@ -572,7 +571,7 @@ subroutine psb_c_coo_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)
@ -5280,7 +5279,7 @@ subroutine psb_lc_coo_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)

@ -2606,7 +2606,6 @@ subroutine psb_c_csc_reinit(a,clear)
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = czero if (clear_) a%val(:) = czero
call a%set_upd() call a%set_upd()
@ -2639,8 +2638,8 @@ subroutine psb_c_csc_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
n = a%get_ncols() n = max(1_psb_ipk_,a%get_ncols())
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(n+1,a%icp,info) if (info == psb_success_) call psb_realloc(n+1,a%icp,info)
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)
@ -4479,8 +4478,8 @@ subroutine psb_lc_csc_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
n = a%get_ncols() n = max(1_psb_lpk_,a%get_ncols())
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(n+1,a%icp,info) if (info == psb_success_) call psb_realloc(n+1,a%icp,info)
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)

@ -1005,7 +1005,7 @@ contains
end do end do
else if (.not.unit) then else if (.not.unit) then
do i=n, 1, -1 do i=n, 1, -1
y(i) = y(i)/val(irp(i+1)-1) y(i) = y(i)/conjg(val(irp(i+1)-1))
acc = y(i) acc = y(i)
do j=irp(i), irp(i+1)-2 do j=irp(i), irp(i+1)-2
jc = ja(j) jc = ja(j)
@ -1025,7 +1025,7 @@ contains
end do end do
else if (.not.unit) then else if (.not.unit) then
do i=1, n do i=1, n
y(i) = y(i)/val(irp(i)) y(i) = y(i)/conjg(val(irp(i)))
acc = y(i) acc = y(i)
do j=irp(i)+1, irp(i+1)-1 do j=irp(i)+1, irp(i+1)-1
jc = ja(j) jc = ja(j)
@ -2734,7 +2734,6 @@ subroutine psb_c_csr_reinit(a,clear)
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = czero if (clear_) a%val(:) = czero
call a%set_upd() call a%set_upd()
@ -2766,8 +2765,8 @@ subroutine psb_c_csr_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
m = a%get_nrows() m = max(1_psb_ipk_,a%get_nrows())
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(m+1,a%irp,info) if (info == psb_success_) call psb_realloc(m+1,a%irp,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
@ -4919,8 +4918,8 @@ subroutine psb_lc_csr_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
m = a%get_nrows() m = max(1_psb_lpk_,a%get_nrows())
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(m+1,a%irp,info) if (info == psb_success_) call psb_realloc(m+1,a%irp,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)

@ -537,7 +537,6 @@ subroutine psb_d_coo_reinit(a,clear)
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = dzero if (clear_) a%val(:) = dzero
call a%set_host() call a%set_host()
@ -572,7 +571,7 @@ subroutine psb_d_coo_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)
@ -5280,7 +5279,7 @@ subroutine psb_ld_coo_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)

@ -2606,7 +2606,6 @@ subroutine psb_d_csc_reinit(a,clear)
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = dzero if (clear_) a%val(:) = dzero
call a%set_upd() call a%set_upd()
@ -2639,8 +2638,8 @@ subroutine psb_d_csc_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
n = a%get_ncols() n = max(1_psb_ipk_,a%get_ncols())
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(n+1,a%icp,info) if (info == psb_success_) call psb_realloc(n+1,a%icp,info)
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)
@ -4479,8 +4478,8 @@ subroutine psb_ld_csc_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
n = a%get_ncols() n = max(1_psb_lpk_,a%get_ncols())
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(n+1,a%icp,info) if (info == psb_success_) call psb_realloc(n+1,a%icp,info)
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)

@ -1005,7 +1005,7 @@ contains
end do end do
else if (.not.unit) then else if (.not.unit) then
do i=n, 1, -1 do i=n, 1, -1
y(i) = y(i)/val(irp(i+1)-1) y(i) = y(i)/(val(irp(i+1)-1))
acc = y(i) acc = y(i)
do j=irp(i), irp(i+1)-2 do j=irp(i), irp(i+1)-2
jc = ja(j) jc = ja(j)
@ -1025,7 +1025,7 @@ contains
end do end do
else if (.not.unit) then else if (.not.unit) then
do i=1, n do i=1, n
y(i) = y(i)/val(irp(i)) y(i) = y(i)/(val(irp(i)))
acc = y(i) acc = y(i)
do j=irp(i)+1, irp(i+1)-1 do j=irp(i)+1, irp(i+1)-1
jc = ja(j) jc = ja(j)
@ -2734,7 +2734,6 @@ subroutine psb_d_csr_reinit(a,clear)
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = dzero if (clear_) a%val(:) = dzero
call a%set_upd() call a%set_upd()
@ -2766,8 +2765,8 @@ subroutine psb_d_csr_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
m = a%get_nrows() m = max(1_psb_ipk_,a%get_nrows())
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(m+1,a%irp,info) if (info == psb_success_) call psb_realloc(m+1,a%irp,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
@ -4919,8 +4918,8 @@ subroutine psb_ld_csr_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
m = a%get_nrows() m = max(1_psb_lpk_,a%get_nrows())
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(m+1,a%irp,info) if (info == psb_success_) call psb_realloc(m+1,a%irp,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)

@ -537,7 +537,6 @@ subroutine psb_s_coo_reinit(a,clear)
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = szero if (clear_) a%val(:) = szero
call a%set_host() call a%set_host()
@ -572,7 +571,7 @@ subroutine psb_s_coo_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)
@ -5280,7 +5279,7 @@ subroutine psb_ls_coo_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)

@ -2606,7 +2606,6 @@ subroutine psb_s_csc_reinit(a,clear)
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = szero if (clear_) a%val(:) = szero
call a%set_upd() call a%set_upd()
@ -2639,8 +2638,8 @@ subroutine psb_s_csc_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
n = a%get_ncols() n = max(1_psb_ipk_,a%get_ncols())
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(n+1,a%icp,info) if (info == psb_success_) call psb_realloc(n+1,a%icp,info)
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)
@ -4479,8 +4478,8 @@ subroutine psb_ls_csc_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
n = a%get_ncols() n = max(1_psb_lpk_,a%get_ncols())
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(n+1,a%icp,info) if (info == psb_success_) call psb_realloc(n+1,a%icp,info)
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)

@ -1005,7 +1005,7 @@ contains
end do end do
else if (.not.unit) then else if (.not.unit) then
do i=n, 1, -1 do i=n, 1, -1
y(i) = y(i)/val(irp(i+1)-1) y(i) = y(i)/(val(irp(i+1)-1))
acc = y(i) acc = y(i)
do j=irp(i), irp(i+1)-2 do j=irp(i), irp(i+1)-2
jc = ja(j) jc = ja(j)
@ -1025,7 +1025,7 @@ contains
end do end do
else if (.not.unit) then else if (.not.unit) then
do i=1, n do i=1, n
y(i) = y(i)/val(irp(i)) y(i) = y(i)/(val(irp(i)))
acc = y(i) acc = y(i)
do j=irp(i)+1, irp(i+1)-1 do j=irp(i)+1, irp(i+1)-1
jc = ja(j) jc = ja(j)
@ -2734,7 +2734,6 @@ subroutine psb_s_csr_reinit(a,clear)
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = szero if (clear_) a%val(:) = szero
call a%set_upd() call a%set_upd()
@ -2766,8 +2765,8 @@ subroutine psb_s_csr_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
m = a%get_nrows() m = max(1_psb_ipk_,a%get_nrows())
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(m+1,a%irp,info) if (info == psb_success_) call psb_realloc(m+1,a%irp,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
@ -4919,8 +4918,8 @@ subroutine psb_ls_csr_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
m = a%get_nrows() m = max(1_psb_lpk_,a%get_nrows())
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(m+1,a%irp,info) if (info == psb_success_) call psb_realloc(m+1,a%irp,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)

@ -537,7 +537,6 @@ subroutine psb_z_coo_reinit(a,clear)
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = zzero if (clear_) a%val(:) = zzero
call a%set_host() call a%set_host()
@ -572,7 +571,7 @@ subroutine psb_z_coo_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)
@ -5280,7 +5279,7 @@ subroutine psb_lz_coo_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
if (a%is_dev()) call a%sync() if (a%is_dev()) call a%sync()
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)

@ -2606,7 +2606,6 @@ subroutine psb_z_csc_reinit(a,clear)
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = zzero if (clear_) a%val(:) = zzero
call a%set_upd() call a%set_upd()
@ -2639,8 +2638,8 @@ subroutine psb_z_csc_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
n = a%get_ncols() n = max(1_psb_ipk_,a%get_ncols())
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(n+1,a%icp,info) if (info == psb_success_) call psb_realloc(n+1,a%icp,info)
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)
@ -4479,8 +4478,8 @@ subroutine psb_lz_csc_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
n = a%get_ncols() n = max(1_psb_lpk_,a%get_ncols())
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(n+1,a%icp,info) if (info == psb_success_) call psb_realloc(n+1,a%icp,info)
if (info == psb_success_) call psb_realloc(nz,a%ia,info) if (info == psb_success_) call psb_realloc(nz,a%ia,info)
if (info == psb_success_) call psb_realloc(nz,a%val,info) if (info == psb_success_) call psb_realloc(nz,a%val,info)

@ -1005,7 +1005,7 @@ contains
end do end do
else if (.not.unit) then else if (.not.unit) then
do i=n, 1, -1 do i=n, 1, -1
y(i) = y(i)/val(irp(i+1)-1) y(i) = y(i)/conjg(val(irp(i+1)-1))
acc = y(i) acc = y(i)
do j=irp(i), irp(i+1)-2 do j=irp(i), irp(i+1)-2
jc = ja(j) jc = ja(j)
@ -1025,7 +1025,7 @@ contains
end do end do
else if (.not.unit) then else if (.not.unit) then
do i=1, n do i=1, n
y(i) = y(i)/val(irp(i)) y(i) = y(i)/conjg(val(irp(i)))
acc = y(i) acc = y(i)
do j=irp(i)+1, irp(i+1)-1 do j=irp(i)+1, irp(i+1)-1
jc = ja(j) jc = ja(j)
@ -2734,7 +2734,6 @@ subroutine psb_z_csr_reinit(a,clear)
if (a%is_bld() .or. a%is_upd()) then if (a%is_bld() .or. a%is_upd()) then
! do nothing ! do nothing
return
else if (a%is_asb()) then else if (a%is_asb()) then
if (clear_) a%val(:) = zzero if (clear_) a%val(:) = zzero
call a%set_upd() call a%set_upd()
@ -2766,8 +2765,8 @@ subroutine psb_z_csr_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
m = a%get_nrows() m = max(1_psb_ipk_,a%get_nrows())
nz = a%get_nzeros() nz = max(1_psb_ipk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(m+1,a%irp,info) if (info == psb_success_) call psb_realloc(m+1,a%irp,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)
@ -4919,8 +4918,8 @@ subroutine psb_lz_csr_trim(a)
call psb_erractionsave(err_act) call psb_erractionsave(err_act)
info = psb_success_ info = psb_success_
m = a%get_nrows() m = max(1_psb_lpk_,a%get_nrows())
nz = a%get_nzeros() nz = max(1_psb_lpk_,a%get_nzeros())
if (info == psb_success_) call psb_realloc(m+1,a%irp,info) if (info == psb_success_) call psb_realloc(m+1,a%irp,info)
if (info == psb_success_) call psb_realloc(nz,a%ja,info) if (info == psb_success_) call psb_realloc(nz,a%ja,info)

@ -1256,7 +1256,7 @@ if test $pac_blas_ok = no; then
[AC_LANG([C]) [AC_LANG([C])
AC_CHECK_LIB(cblas, cblas_dgemm, AC_CHECK_LIB(cblas, cblas_dgemm,
[pac_blas_ok=yes [pac_blas_ok=yes
BLAS_LIBS="-lcblas -lf77blas -latlas $BLAS_LIBDIR"], BLAS_LIBS="-lcblas -lf77blas -latlas"],
[], [-lf77blas -latlas])], [], [-lf77blas -latlas])],
[], [-latlas])]) [], [-latlas])])
@ -1269,7 +1269,7 @@ if test $pac_blas_ok = no; then
[AC_LANG([C]) [AC_LANG([C])
AC_CHECK_LIB(satlas, cblas_dgemm, AC_CHECK_LIB(satlas, cblas_dgemm,
[pac_blas_ok=yes [pac_blas_ok=yes
BLAS_LIBS="-lsatlas $BLAS_LIBDIR"], BLAS_LIBS="-lsatlas"],
[], [-lsatlas])], [], [-lsatlas])],
[], [-lsatlas])]) [], [-lsatlas])])
@ -1281,7 +1281,7 @@ if test $pac_blas_ok = no; then
AC_CHECK_LIB(blas, sgemm, AC_CHECK_LIB(blas, sgemm,
[AC_CHECK_LIB(dgemm, dgemm, [AC_CHECK_LIB(dgemm, dgemm,
[AC_CHECK_LIB(sgemm, sgemm, [AC_CHECK_LIB(sgemm, sgemm,
[pac_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas $BLAS_LIBDIR"], [pac_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"],
[], [-lblas])], [], [-lblas])],
[], [-lblas])]) [], [-lblas])])
fi fi
@ -1290,7 +1290,7 @@ fi
# BLAS in OpenBLAS? # BLAS in OpenBLAS?
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_LANG([Fortran]) AC_LANG([Fortran])
AC_CHECK_LIB(openblas, sgemm, [pac_blas_ok=yes;BLAS_LIBS="-lopenblas $BLAS_LIBDIR"]) AC_CHECK_LIB(openblas, sgemm, [pac_blas_ok=yes;BLAS_LIBS="-lopenblas"])
fi fi
# BLAS in Intel MKL library? # BLAS in Intel MKL library?
sgemm="sgemm"; sgemm="sgemm";
@ -1300,12 +1300,12 @@ if test $pac_blas_ok = no; then
# 64 bit # 64 bit
if test $host_cpu = x86_64; then if test $host_cpu = x86_64; then
AC_CHECK_LIB(mkl_gf_lp64, $sgemm, AC_CHECK_LIB(mkl_gf_lp64, $sgemm,
[pac_blas_ok=yes;BLAS_LIBS="-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR"],, [pac_blas_ok=yes;BLAS_LIBS="-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread"],,
[-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread]) [-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread])
# 32 bit # 32 bit
elif test $host_cpu = i686; then elif test $host_cpu = i686; then
AC_CHECK_LIB(mkl_gf, $sgemm, AC_CHECK_LIB(mkl_gf, $sgemm,
[pac_blas_ok=yes;BLAS_LIBS="-lmkl_gf -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR"],, [pac_blas_ok=yes;BLAS_LIBS="-lmkl_gf -lmkl_sequential -lmkl_core -lpthread"],,
[-lmkl_gf -lmkl_sequential -lmkl_core -lpthread]) [-lmkl_gf -lmkl_sequential -lmkl_core -lpthread])
fi fi
# MKL for other compilers (Intel, PGI, ...?) # MKL for other compilers (Intel, PGI, ...?)
@ -1313,37 +1313,37 @@ if test $pac_blas_ok = no; then
# 64-bit # 64-bit
if test $host_cpu = x86_64; then if test $host_cpu = x86_64; then
AC_CHECK_LIB(mkl_intel_lp64, $sgemm, AC_CHECK_LIB(mkl_intel_lp64, $sgemm,
[pac_blas_ok=yes;BLAS_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR"],, [pac_blas_ok=yes;BLAS_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread"],,
[-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread]) [-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread])
# 32-bit # 32-bit
elif test $host_cpu = i686; then elif test $host_cpu = i686; then
AC_CHECK_LIB(mkl_intel, $sgemm, AC_CHECK_LIB(mkl_intel, $sgemm,
[pac_blas_ok=yes;BLAS_LIBS="-lmkl_intel -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR"],, [pac_blas_ok=yes;BLAS_LIBS="-lmkl_intel -lmkl_sequential -lmkl_core -lpthread"],,
[-lmkl_intel -lmkl_sequential -lmkl_core -lpthread]) [-lmkl_intel -lmkl_sequential -lmkl_core -lpthread])
fi fi
fi fi
fi fi
# Old versions of MKL # Old versions of MKL
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_CHECK_LIB(mkl, $sgemm, [pac_blas_ok=yes;BLAS_LIBS="-lmkl -lguide -lpthread $BLAS_LIBDIR"],,[-lguide -lpthread]) AC_CHECK_LIB(mkl, $sgemm, [pac_blas_ok=yes;BLAS_LIBS="-lmkl -lguide -lpthread"],,[-lguide -lpthread])
fi fi
# BLAS in Apple vecLib library? # BLAS in Apple vecLib library?
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS" save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS"
AC_MSG_CHECKING([for $sgemm in -framework vecLib]) AC_MSG_CHECKING([for $sgemm in -framework vecLib])
AC_TRY_LINK_FUNC($sgemm, [pac_blas_ok=yes;BLAS_LIBS="-framework vecLib $BLAS_LIBDIR"]) AC_TRY_LINK_FUNC($sgemm, [pac_blas_ok=yes;BLAS_LIBS="-framework vecLib"])
AC_MSG_RESULT($pac_blas_ok) AC_MSG_RESULT($pac_blas_ok)
LIBS="$save_LIBS" LIBS="$save_LIBS"
fi fi
# BLAS in Alpha CXML library? # BLAS in Alpha CXML library?
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_CHECK_LIB(cxml, sgemm, [pac_blas_ok=yes;BLAS_LIBS="-lcxml $BLAS_LIBDIR"]) AC_CHECK_LIB(cxml, sgemm, [pac_blas_ok=yes;BLAS_LIBS="-lcxml"])
fi fi
# BLAS in Alpha DXML library? (now called CXML, see above) # BLAS in Alpha DXML library? (now called CXML, see above)
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_CHECK_LIB(dxml, sgemm, [pac_blas_ok=yes;BLAS_LIBS="-ldxml $BLAS_LIBDIR"]) AC_CHECK_LIB(dxml, sgemm, [pac_blas_ok=yes;BLAS_LIBS="-ldxml"])
fi fi
@ -1352,7 +1352,7 @@ if test $pac_blas_ok = no; then
if test "x$GCC" != xyes; then # only works with Sun CC if test "x$GCC" != xyes; then # only works with Sun CC
AC_CHECK_LIB(sunmath, acosp, AC_CHECK_LIB(sunmath, acosp,
[AC_CHECK_LIB(sunperf, sgemm, [AC_CHECK_LIB(sunperf, sgemm,
[BLAS_LIBS="-xlic_lib=sunperf -lsunmath $BLAS_LIBDIR" [BLAS_LIBS="-xlic_lib=sunperf -lsunmath"
pac_blas_ok=yes],[],[-lsunmath])]) pac_blas_ok=yes],[],[-lsunmath])])
fi fi
@ -1360,26 +1360,26 @@ fi
# BLAS in SCSL library? (SGI/Cray Scientific Library) # BLAS in SCSL library? (SGI/Cray Scientific Library)
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_CHECK_LIB(scs, sgemm, [pac_blas_ok=yes; BLAS_LIBS="-lscs $BLAS_LIBDIR"]) AC_CHECK_LIB(scs, sgemm, [pac_blas_ok=yes; BLAS_LIBS="-lscs"])
fi fi
# BLAS in SGIMATH library? # BLAS in SGIMATH library?
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_CHECK_LIB(complib.sgimath, $sgemm, AC_CHECK_LIB(complib.sgimath, $sgemm,
[pac_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath $BLAS_LIBDIR"]) [pac_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"])
fi fi
# BLAS in IBM ESSL library? (requires generic BLAS lib, too) # BLAS in IBM ESSL library? (requires generic BLAS lib, too)
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_CHECK_LIB(blas, $sgemm, AC_CHECK_LIB(blas, $sgemm,
[AC_CHECK_LIB(essl, sgemm, [AC_CHECK_LIB(essl, sgemm,
[pac_blas_ok=yes; BLAS_LIBS="-lessl -lblas $BLAS_LIBDIR"], [pac_blas_ok=yes; BLAS_LIBS="-lessl -lblas"],
[], [-lblas $FLIBS])]) [], [-lblas $FLIBS])])
fi fi
# BLAS in generic BLAS library? # BLAS in generic BLAS library?
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_LANG([Fortran]) AC_LANG([Fortran])
AC_CHECK_LIB(blas, sgemm, , [pac_blas_ok=yes;BLAS_LIBS="-lblas $BLAS_LIBDIR"]) AC_CHECK_LIB(blas, sgemm, , [pac_blas_ok=yes;BLAS_LIBS="-lblas"])
fi fi
# BLAS linked to by default? (happens on some supercomputers) # BLAS linked to by default? (happens on some supercomputers)
@ -1391,7 +1391,7 @@ fi
# Generic BLAS library? # Generic BLAS library?
if test $pac_blas_ok = no; then if test $pac_blas_ok = no; then
AC_LANG([Fortran]) AC_LANG([Fortran])
AC_CHECK_LIB(blas, sgemm, [pac_blas_ok=yes; BLAS_LIBS="-lblas $BLAS_LIBDIR"]) AC_CHECK_LIB(blas, sgemm, [pac_blas_ok=yes; BLAS_LIBS="-lblas"])
fi fi
dnl AC_SUBST(BLAS_LIBS) dnl AC_SUBST(BLAS_LIBS)
@ -1400,6 +1400,9 @@ LIBS="$pac_blas_save_LIBS"
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$pac_blas_ok" = xyes; then if test x"$pac_blas_ok" = xyes; then
if test "x$BLAS_LIBDIR" != "x" ; then
BLAS_LIBS="$BLAS_LIBS $BLAS_LIBDIR";
fi
ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1]) ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1])
: :
else else
@ -1812,7 +1815,11 @@ fi
if test "x$pac_amd_header_ok" == "xyes" ; then if test "x$pac_amd_header_ok" == "xyes" ; then
psblas_cv_amd_includes="$AMD_INCLUDES" psblas_cv_amd_includes="$AMD_INCLUDES"
if test "x$AMD_LIBDIR" == "x" ; then
AMD_LIBS="$psblas_cv_amd"
else
AMD_LIBS="$psblas_cv_amd $AMD_LIBDIR" AMD_LIBS="$psblas_cv_amd $AMD_LIBDIR"
fi
LIBS="$AMD_LIBS -lm $LIBS"; LIBS="$AMD_LIBS -lm $LIBS";
AC_MSG_CHECKING([for amd_order in $AMD_LIBS]) AC_MSG_CHECKING([for amd_order in $AMD_LIBS])
AC_TRY_LINK_FUNC(amd_order, AC_TRY_LINK_FUNC(amd_order,
@ -1958,7 +1965,11 @@ fi
if test "x$pac_metis_header_ok" = "xyes" ; then if test "x$pac_metis_header_ok" = "xyes" ; then
psblas_cv_metis_includes="$METIS_INCLUDES" psblas_cv_metis_includes="$METIS_INCLUDES"
if test "x$METIS_LIBDIR" == "x" ; then
METIS_LIBS="$psblas_cv_metis"
else
METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR"
fi
LIBS="$METIS_LIBS -lm $LIBS"; LIBS="$METIS_LIBS -lm $LIBS";
AC_MSG_CHECKING([for METIS_PartGraphKway in $METIS_LIBS]) AC_MSG_CHECKING([for METIS_PartGraphKway in $METIS_LIBS])
AC_TRY_LINK_FUNC(METIS_PartGraphKway, AC_TRY_LINK_FUNC(METIS_PartGraphKway,

57
configure vendored

@ -3407,7 +3407,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
INSTALL="${INSTALL} -p"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where to install" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where to install" >&5
printf %s "checking where to install... " >&6; } printf %s "checking where to install... " >&6; }
case $prefix in case $prefix in
@ -4676,11 +4676,11 @@ if test x$ac_prog_cxx_stdcxx = xno
then : then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
printf %s "checking for $CXX option to enable C++11 features... " >&6; } printf %s "checking for $CXX option to enable C++11 features... " >&6; }
if test ${ac_cv_prog_cxx_11+y} if test ${ac_cv_prog_cxx_cxx11+y}
then : then :
printf %s "(cached) " >&6 printf %s "(cached) " >&6
else $as_nop else $as_nop
ac_cv_prog_cxx_11=no ac_cv_prog_cxx_cxx11=no
ac_save_CXX=$CXX ac_save_CXX=$CXX
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
@ -4722,11 +4722,11 @@ if test x$ac_prog_cxx_stdcxx = xno
then : then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
printf %s "checking for $CXX option to enable C++98 features... " >&6; } printf %s "checking for $CXX option to enable C++98 features... " >&6; }
if test ${ac_cv_prog_cxx_98+y} if test ${ac_cv_prog_cxx_cxx98+y}
then : then :
printf %s "(cached) " >&6 printf %s "(cached) " >&6
else $as_nop else $as_nop
ac_cv_prog_cxx_98=no ac_cv_prog_cxx_cxx98=no
ac_save_CXX=$CXX ac_save_CXX=$CXX
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
@ -8912,7 +8912,7 @@ printf "%s\n" "$ac_cv_lib_cblas_cblas_dgemm" >&6; }
if test "x$ac_cv_lib_cblas_cblas_dgemm" = xyes if test "x$ac_cv_lib_cblas_cblas_dgemm" = xyes
then : then :
pac_blas_ok=yes pac_blas_ok=yes
BLAS_LIBS="-lcblas -lf77blas -latlas $BLAS_LIBDIR" BLAS_LIBS="-lcblas -lf77blas -latlas"
fi fi
fi fi
@ -9041,7 +9041,7 @@ printf "%s\n" "$ac_cv_lib_satlas_cblas_dgemm" >&6; }
if test "x$ac_cv_lib_satlas_cblas_dgemm" = xyes if test "x$ac_cv_lib_satlas_cblas_dgemm" = xyes
then : then :
pac_blas_ok=yes pac_blas_ok=yes
BLAS_LIBS="-lsatlas $BLAS_LIBDIR" BLAS_LIBS="-lsatlas"
fi fi
fi fi
@ -9139,7 +9139,7 @@ fi
printf "%s\n" "$ac_cv_lib_sgemm_sgemm" >&6; } printf "%s\n" "$ac_cv_lib_sgemm_sgemm" >&6; }
if test "x$ac_cv_lib_sgemm_sgemm" = xyes if test "x$ac_cv_lib_sgemm_sgemm" = xyes
then : then :
pac_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas $BLAS_LIBDIR" pac_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"
fi fi
fi fi
@ -9183,7 +9183,7 @@ fi
printf "%s\n" "$ac_cv_lib_openblas_sgemm" >&6; } printf "%s\n" "$ac_cv_lib_openblas_sgemm" >&6; }
if test "x$ac_cv_lib_openblas_sgemm" = xyes if test "x$ac_cv_lib_openblas_sgemm" = xyes
then : then :
pac_blas_ok=yes;BLAS_LIBS="-lopenblas $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-lopenblas"
fi fi
fi fi
@ -9223,7 +9223,7 @@ eval ac_res=\$$as_ac_Lib
printf "%s\n" "$ac_res" >&6; } printf "%s\n" "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes" if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then : then :
pac_blas_ok=yes;BLAS_LIBS="-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread"
fi fi
# 32 bit # 32 bit
@ -9257,7 +9257,7 @@ eval ac_res=\$$as_ac_Lib
printf "%s\n" "$ac_res" >&6; } printf "%s\n" "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes" if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then : then :
pac_blas_ok=yes;BLAS_LIBS="-lmkl_gf -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-lmkl_gf -lmkl_sequential -lmkl_core -lpthread"
fi fi
fi fi
@ -9294,7 +9294,7 @@ eval ac_res=\$$as_ac_Lib
printf "%s\n" "$ac_res" >&6; } printf "%s\n" "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes" if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then : then :
pac_blas_ok=yes;BLAS_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread"
fi fi
# 32-bit # 32-bit
@ -9328,7 +9328,7 @@ eval ac_res=\$$as_ac_Lib
printf "%s\n" "$ac_res" >&6; } printf "%s\n" "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes" if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then : then :
pac_blas_ok=yes;BLAS_LIBS="-lmkl_intel -lmkl_sequential -lmkl_core -lpthread $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-lmkl_intel -lmkl_sequential -lmkl_core -lpthread"
fi fi
fi fi
@ -9365,7 +9365,7 @@ eval ac_res=\$$as_ac_Lib
printf "%s\n" "$ac_res" >&6; } printf "%s\n" "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes" if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then : then :
pac_blas_ok=yes;BLAS_LIBS="-lmkl -lguide -lpthread $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-lmkl -lguide -lpthread"
fi fi
fi fi
@ -9382,7 +9382,7 @@ printf %s "checking for $sgemm in -framework vecLib... " >&6; }
_ACEOF _ACEOF
if ac_fn_fc_try_link "$LINENO" if ac_fn_fc_try_link "$LINENO"
then : then :
pac_blas_ok=yes;BLAS_LIBS="-framework vecLib $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-framework vecLib"
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \ rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext conftest$ac_exeext conftest.$ac_ext
@ -9419,7 +9419,7 @@ fi
printf "%s\n" "$ac_cv_lib_cxml_sgemm" >&6; } printf "%s\n" "$ac_cv_lib_cxml_sgemm" >&6; }
if test "x$ac_cv_lib_cxml_sgemm" = xyes if test "x$ac_cv_lib_cxml_sgemm" = xyes
then : then :
pac_blas_ok=yes;BLAS_LIBS="-lcxml $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-lcxml"
fi fi
fi fi
@ -9453,7 +9453,7 @@ fi
printf "%s\n" "$ac_cv_lib_dxml_sgemm" >&6; } printf "%s\n" "$ac_cv_lib_dxml_sgemm" >&6; }
if test "x$ac_cv_lib_dxml_sgemm" = xyes if test "x$ac_cv_lib_dxml_sgemm" = xyes
then : then :
pac_blas_ok=yes;BLAS_LIBS="-ldxml $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-ldxml"
fi fi
@ -9516,7 +9516,7 @@ fi
printf "%s\n" "$ac_cv_lib_sunperf_sgemm" >&6; } printf "%s\n" "$ac_cv_lib_sunperf_sgemm" >&6; }
if test "x$ac_cv_lib_sunperf_sgemm" = xyes if test "x$ac_cv_lib_sunperf_sgemm" = xyes
then : then :
BLAS_LIBS="-xlic_lib=sunperf -lsunmath $BLAS_LIBDIR" BLAS_LIBS="-xlic_lib=sunperf -lsunmath"
pac_blas_ok=yes pac_blas_ok=yes
fi fi
@ -9555,7 +9555,7 @@ fi
printf "%s\n" "$ac_cv_lib_scs_sgemm" >&6; } printf "%s\n" "$ac_cv_lib_scs_sgemm" >&6; }
if test "x$ac_cv_lib_scs_sgemm" = xyes if test "x$ac_cv_lib_scs_sgemm" = xyes
then : then :
pac_blas_ok=yes; BLAS_LIBS="-lscs $BLAS_LIBDIR" pac_blas_ok=yes; BLAS_LIBS="-lscs"
fi fi
fi fi
@ -9591,7 +9591,7 @@ eval ac_res=\$$as_ac_Lib
printf "%s\n" "$ac_res" >&6; } printf "%s\n" "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes" if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then : then :
pac_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath $BLAS_LIBDIR" pac_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"
fi fi
fi fi
@ -9654,7 +9654,7 @@ fi
printf "%s\n" "$ac_cv_lib_essl_sgemm" >&6; } printf "%s\n" "$ac_cv_lib_essl_sgemm" >&6; }
if test "x$ac_cv_lib_essl_sgemm" = xyes if test "x$ac_cv_lib_essl_sgemm" = xyes
then : then :
pac_blas_ok=yes; BLAS_LIBS="-lessl -lblas $BLAS_LIBDIR" pac_blas_ok=yes; BLAS_LIBS="-lessl -lblas"
fi fi
fi fi
@ -9699,7 +9699,7 @@ then :
LIBS="-lblas $LIBS" LIBS="-lblas $LIBS"
else $as_nop else $as_nop
pac_blas_ok=yes;BLAS_LIBS="-lblas $BLAS_LIBDIR" pac_blas_ok=yes;BLAS_LIBS="-lblas"
fi fi
fi fi
@ -9755,7 +9755,7 @@ fi
printf "%s\n" "$ac_cv_lib_blas_sgemm" >&6; } printf "%s\n" "$ac_cv_lib_blas_sgemm" >&6; }
if test "x$ac_cv_lib_blas_sgemm" = xyes if test "x$ac_cv_lib_blas_sgemm" = xyes
then : then :
pac_blas_ok=yes; BLAS_LIBS="-lblas $BLAS_LIBDIR" pac_blas_ok=yes; BLAS_LIBS="-lblas"
fi fi
fi fi
@ -9765,6 +9765,9 @@ LIBS="$pac_blas_save_LIBS"
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$pac_blas_ok" = xyes; then if test x"$pac_blas_ok" = xyes; then
if test "x$BLAS_LIBDIR" != "x" ; then
BLAS_LIBS="$BLAS_LIBS $BLAS_LIBDIR";
fi
printf "%s\n" "#define HAVE_BLAS 1" >>confdefs.h printf "%s\n" "#define HAVE_BLAS 1" >>confdefs.h
@ -10225,7 +10228,11 @@ fi
if test "x$pac_metis_header_ok" = "xyes" ; then if test "x$pac_metis_header_ok" = "xyes" ; then
psblas_cv_metis_includes="$METIS_INCLUDES" psblas_cv_metis_includes="$METIS_INCLUDES"
if test "x$METIS_LIBDIR" == "x" ; then
METIS_LIBS="$psblas_cv_metis"
else
METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR" METIS_LIBS="$psblas_cv_metis $METIS_LIBDIR"
fi
LIBS="$METIS_LIBS -lm $LIBS"; LIBS="$METIS_LIBS -lm $LIBS";
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphKway in $METIS_LIBS" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphKway in $METIS_LIBS" >&5
printf %s "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; } printf %s "checking for METIS_PartGraphKway in $METIS_LIBS... " >&6; }
@ -10492,7 +10499,11 @@ fi
if test "x$pac_amd_header_ok" == "xyes" ; then if test "x$pac_amd_header_ok" == "xyes" ; then
psblas_cv_amd_includes="$AMD_INCLUDES" psblas_cv_amd_includes="$AMD_INCLUDES"
if test "x$AMD_LIBDIR" == "x" ; then
AMD_LIBS="$psblas_cv_amd"
else
AMD_LIBS="$psblas_cv_amd $AMD_LIBDIR" AMD_LIBS="$psblas_cv_amd $AMD_LIBDIR"
fi
LIBS="$AMD_LIBS -lm $LIBS"; LIBS="$AMD_LIBS -lm $LIBS";
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for amd_order in $AMD_LIBS" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for amd_order in $AMD_LIBS" >&5
printf %s "checking for amd_order in $AMD_LIBS... " >&6; } printf %s "checking for amd_order in $AMD_LIBS... " >&6; }

@ -70,7 +70,7 @@ AC_MSG_NOTICE([
# #
# #
AC_PROG_INSTALL AC_PROG_INSTALL
INSTALL="${INSTALL} -p"
AC_MSG_CHECKING([where to install]) AC_MSG_CHECKING([where to install])
case $prefix in case $prefix in
\/* ) eval "INSTALL_DIR=$prefix";; \/* ) eval "INSTALL_DIR=$prefix";;

@ -1,251 +1,541 @@
#!/bin/sh #!/bin/sh
#
# install - install a program, script, or datafile # install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# #
# Copyright 1991 by the Massachusetts Institute of Technology # Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
# #
# Permission to use, copy, modify, distribute, and sell this software and its #
# documentation for any purpose is hereby granted without fee, provided that # FSF changes to this file are in the public domain.
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
# #
# Calling this script install-sh is preferred over install.sh, to prevent # Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it # 'make' implicit rules from creating a file called install from it
# when there is no Makefile. # when there is no Makefile.
# #
# This script is compatible with the BSD install script, but was written # This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction # from scratch.
# shared with many OS's install programs.
tab=' '
nl='
'
IFS=" $tab$nl"
# set DOITPROG to echo to test this script # Set DOITPROG to "echo" to test this script.
# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-}
doit="${DOITPROG-}" doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
# put in absolute paths if you don't have them in your path; or use env. vars. chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
mvprog="${MVPROG-mv}" posix_mkdir=
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename="" # Desired mode of installed file.
transform_arg="" mode=0755
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do # Create dirs (including intermediate dirs) using mode 755.
# This is like GNU 'install' as of coreutils 8.32 (2020).
mkdir_umask=22
backupsuffix=
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-p pass -p to $cpprog.
-s $stripprog installed files.
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
By default, rm is invoked with -f; when overridden with RMPROG,
it's up to you to specify -f if you want it.
If -S is not specified, no backups are attempted.
Email bug reports to bug-automake@gnu.org.
Automake home page: https://www.gnu.org/software/automake/
"
while test $# -ne 0; do
case $1 in case $1 in
-c) instcmd="$cpprog" -c) ;;
shift
continue;;
-d) dir_arg=true -C) copy_on_change=true;;
shift
continue;;
-m) chmodcmd="$chmodprog $2" -d) dir_arg=true;;
shift
shift -g) chgrpcmd="$chgrpprog $2"
continue;; shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2" -o) chowncmd="$chownprog $2"
shift shift;;
shift
continue;;
-g) chgrpcmd="$chgrpprog $2" -p) cpprog="$cpprog -p";;
shift
shift
continue;;
-s) stripcmd="$stripprog" -s) stripcmd=$stripprog;;
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'` -S) backupsuffix="$2"
shift shift;;
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'` -t)
shift is_target_a_directory=always
continue;; dst_arg=$2
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
shift;;
*) if [ x"$src" = x ] -T) is_target_a_directory=never;;
then
src=$1 --version) echo "$0 $scriptversion"; exit $?;;
else
# this colon is to work around a 386BSD /bin/sh bug --) shift
: break;;
dst=$1
fi -*) echo "$0: invalid option: $1" >&2
shift exit 1;;
continue;;
*) break;;
esac esac
shift
done done
if [ x"$src" = x ] # We allow the use of options -d and -T together, by making -d
then # take the precedence; this is for compatibility with GNU install.
echo "install: no input file specified"
if test -n "$dir_arg"; then
if test -n "$dst_arg"; then
echo "$0: target directory not allowed when installing a directory." >&2
exit 1 exit 1
else fi
true
fi fi
if [ x"$dir_arg" != x ]; then if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
dst=$src # When -d is used, all remaining arguments are directories to create.
src="" # When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
if [ -d $dst ]; then for arg
instcmd=: do
chmodcmd="" if test -n "$dst_arg"; then
else # $@ is not empty: it contains at least $arg.
instcmd=mkdir set fnord "$@" "$dst_arg"
shift # fnord
fi fi
else shift # arg
dst_arg=$arg
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command # Protect names problematic for 'test' and other utilities.
# might cause directories to be created, which would be especially bad case $dst_arg in
# if $src (and thus $dsttmp) contains '*'. -* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
done
fi
if [ -f $src -o -d $src ] if test $# -eq 0; then
then if test -z "$dir_arg"; then
true echo "$0: no input file specified." >&2
else
echo "install: $src does not exist"
exit 1 exit 1
fi fi
# It's OK to call 'install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if [ x"$dst" = x ] if test -z "$dir_arg"; then
then if test $# -gt 1 || test "$is_target_a_directory" = always; then
echo "install: no destination specified" if test ! -d "$dst_arg"; then
echo "$0: $dst_arg: Is not a directory." >&2
exit 1 exit 1
else
true
fi fi
fi
fi
# If destination is a directory, append the input filename; if your system if test -z "$dir_arg"; then
# does not like double slashes in filenames, you may need to add some logic do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
if [ -d $dst ] trap "ret=130; $do_exit" 2
then trap "ret=141; $do_exit" 13
dst="$dst"/`basename $src` trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else else
true u_plus_rw='% 200'
fi fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi fi
## this sed command emulates the dirname command for src
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` do
# Protect names problematic for 'test' and other utilities.
# Make sure that the destination directory exists. case $src in
# this part is taken from Noah Friedman's mkinstalldirs script -* | [=\(\)!]) src=./$src;;
esac
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}" if test -n "$dir_arg"; then
# Some sh's can't handle IFS=/ for some reason. dst=$src
IFS='%' dstdir=$dst
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` test -d "$dstdir"
IFS="${oIFS}" dstdir_status=$?
# Don't chown directories that already exist.
if test $dstdir_status = 0; then
chowncmd=""
fi
else
pathcomp='' # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
while [ $# -ne 0 ] ; do if test -z "$dst_arg"; then
pathcomp="${pathcomp}${1}" echo "$0: no destination specified." >&2
shift exit 1
fi
dst=$dst_arg
if [ ! -d "${pathcomp}" ] ; # If destination is a directory, append the input filename.
then if test -d "$dst"; then
$mkdirprog "${pathcomp}" if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0
else else
true dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
fi fi
pathcomp="${pathcomp}/" case $dstdir in
done */) dstdirslash=$dstdir;;
fi *) dstdirslash=$dstdir/;;
esac
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now. obsolete_mkdir_used=false
if [ x"$transformarg" = x ] if test $dstdir_status != 0; then
then case $posix_mkdir in
dstfile=`basename $dst` '')
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else else
dstfile=`basename $dst $transformbasename | mkdir_mode=
sed $transformarg`$transformbasename
fi fi
# don't allow the sed command to completely eliminate the filename posix_mkdir=false
# The $RANDOM variable is not portable (e.g., dash). Use it
if [ x"$dstfile" = x ] # here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap '
ret=$?
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
exit $ret
' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p'.
if (umask $mkdir_umask &&
$mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then then
dstfile=`basename $dst` if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else else
true # Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi fi
trap '' 0;;
esac
# Make a temp file name in the proper directory. if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
dsttmp=$dstdir/#inst.$$# # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
# Move or copy the file name to the temp name case $dstdir in
/*) prefix='/';;
[-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
$doit $instcmd $src $dsttmp && oIFS=$IFS
IFS=/
set -f
set fnord $dstdir
shift
set +f
IFS=$oIFS
trap "rm -f ${dsttmp}" 0 && prefixes=
# and set any options; do chmod last to preserve setuid bits for d
do
test X"$d" = X && continue
# If any of these fail, we abort the whole thing. If we want to prefix=$prefix$d
# ignore errors from any of these, just make sure not to ignore if test -d "$prefix"; then
# errors from the above "$doit $instcmd $src $dsttmp" command. prefixes=
else
if $posix_mkdir; then
(umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if test -n "$dir_arg"; then
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Now rename the file to the real destination. # Make a couple of temp file names in the proper directory.
dsttmp=${dstdirslash}_inst.$$_
rmtmp=${dstdirslash}_rm.$$_
$doit $rmcmd -f $dstdir/$dstfile && # Trap to clean up those temp files at exit.
$doit $mvcmd $dsttmp $dstdir/$dstfile trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
fi && # Copy the file name to the temp name.
(umask $cp_umask &&
{ test -z "$stripcmd" || {
# Create $dsttmp read-write so that cp doesn't create it read-only,
# which would cause strip to fail.
if test -z "$doit"; then
: >"$dsttmp" # No need to fork-exec 'touch'.
else
$doit touch "$dsttmp"
fi
}
} &&
$doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# If $backupsuffix is set, and the file being installed
# already exists, attempt a backup. Don't worry if it fails,
# e.g., if mv doesn't support -f.
if test -n "$backupsuffix" && test -f "$dst"; then
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
fi
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
exit 0 # Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:

Loading…
Cancel
Save