mirror of https://github.com/abinit/abinit.git
161 lines
3.5 KiB
Python
Executable File
161 lines
3.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#
|
|
# Copyright (C) 2009-2025 ABINIT Group (Yann Pouillon)
|
|
#
|
|
# This file is part of the ABINIT software package. For license information,
|
|
# please see the COPYING file in the top-level directory of the ABINIT source
|
|
# distribution.
|
|
#
|
|
|
|
from __future__ import print_function, division, absolute_import
|
|
|
|
from time import gmtime,strftime
|
|
|
|
try:
|
|
from commands import getoutput
|
|
except:
|
|
from subprocess import getoutput
|
|
|
|
import os
|
|
import re
|
|
import sys
|
|
|
|
# ---------------------------------------------------------------------------- #
|
|
|
|
#
|
|
# Subroutines
|
|
#
|
|
|
|
# Macro header
|
|
def macro_header(name,stamp):
|
|
|
|
return """# Generated by %s on %s
|
|
|
|
#
|
|
# ABINIT Autotools info dumper for the "configure" script
|
|
#
|
|
|
|
#
|
|
# IMPORTANT NOTE
|
|
#
|
|
# This file has been automatically generated by the %s
|
|
# script. If you try to edit it, your changes will systematically be
|
|
# overwritten.
|
|
#
|
|
""" % (name,stamp,name)
|
|
|
|
|
|
|
|
# Autotools info macro
|
|
def macro_info(m4_version,ac_version,am_version,lt_version):
|
|
|
|
return """
|
|
|
|
|
|
# ABI_INFO_AUTOTOOLS()
|
|
# --------------------
|
|
#
|
|
# Make information about the Autotools available.
|
|
#
|
|
AC_DEFUN([ABI_INFO_AUTOTOOLS],[
|
|
dnl Store version numbers
|
|
abi_m4_version="%6.6d"
|
|
abi_ac_version="%6.6d"
|
|
abi_am_version="%6.6d"
|
|
abi_lt_version="%6.6d"
|
|
|
|
dnl Display version information
|
|
AC_MSG_NOTICE([reporting Autotools information:])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ * M4 : ${abi_m4_version}])
|
|
AC_MSG_NOTICE([ * Autoconf : ${abi_ac_version}])
|
|
AC_MSG_NOTICE([ * Automake : ${abi_am_version}])
|
|
AC_MSG_NOTICE([ * Libtool : ${abi_lt_version}])
|
|
|
|
dnl Substitute variables
|
|
AC_SUBST(abi_m4_version)
|
|
AC_SUBST(abi_ac_version)
|
|
AC_SUBST(abi_am_version)
|
|
AC_SUBST(abi_lt_version)
|
|
]) # ABI_INFO_AUTOTOOLS
|
|
""" % (m4_version,ac_version,am_version,lt_version)
|
|
|
|
|
|
|
|
# Init macro for source and build dirs
|
|
def macro_init_dirs(ac_version):
|
|
|
|
ret = """
|
|
|
|
|
|
# ABI_INIT_DIRS()
|
|
# ---------------
|
|
#
|
|
# Set paths to source and build directories.
|
|
#
|
|
AC_DEFUN([ABI_INIT_DIRS],[
|
|
dnl Set paths (needed by other ABINIT macros)
|
|
_AC_SRCDIRS(["."])
|
|
abinit_srcdir="${ac_abs_top_srcdir}"
|
|
abinit_builddir="${ac_abs_top_builddir}"
|
|
|
|
export abinit_srcdir abinit_builddir
|
|
|
|
AC_SUBST(abinit_srcdir)
|
|
AC_SUBST(abinit_builddir)
|
|
]) # ABI_INIT_DIRS
|
|
"""
|
|
|
|
return ret
|
|
|
|
|
|
|
|
# ---------------------------------------------------------------------------- #
|
|
|
|
#
|
|
# Main program
|
|
#
|
|
|
|
# Initial setup
|
|
my_name = "make-macros-autotools"
|
|
my_output = "config/m4/auto-autotools.m4"
|
|
|
|
# Check if we are in the top of the ABINIT source tree
|
|
if ( not os.path.exists("configure.ac") or
|
|
not os.path.exists("src/98_main/abinit.F90") ):
|
|
print("%s: You must be in the top of an ABINIT source tree." % my_name)
|
|
print("%s: Aborting now." % my_name)
|
|
sys.exit(1)
|
|
|
|
# What time is it?
|
|
now = strftime("%Y/%m/%d %H:%M:%S +0000",gmtime())
|
|
|
|
# Get Autotools versions
|
|
at_file = "./config/local/autotools.sh"
|
|
if ( os.path.exists(at_file) ):
|
|
at_versions = open(at_file, "rt").read()
|
|
exec(at_versions)
|
|
m4_version = int(abi_m4_version)
|
|
ac_version = int(abi_ac_version)
|
|
am_version = int(abi_am_version)
|
|
lt_version = int(abi_lt_version)
|
|
else:
|
|
m4_version = 0
|
|
ac_version = 0
|
|
am_version = 0
|
|
lt_version = 0
|
|
sys.stderr.write(
|
|
"[%s] WARNING: could not get Autotools version information" % \
|
|
(my_name))
|
|
|
|
# Write macros
|
|
m4 = open(my_output,"wt")
|
|
m4.write(macro_header(my_name,now))
|
|
m4.write(macro_info(m4_version,ac_version,am_version,lt_version))
|
|
m4.write(macro_init_dirs(ac_version))
|
|
m4.close()
|
|
|
|
tmp = getoutput("./config/scripts/add-header-typed Autoconf %s" % (my_output))
|
|
if ( tmp != "" ):
|
|
print(tmp)
|