10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-26 23:22:18 +02:00
quantum_package/src/Makefile.common
2015-05-15 16:30:43 +02:00

68 lines
2.1 KiB
Makefile

.PHONY: default
.SECONDARY: symlink ezfio_interface
default: all .gitignore
# Include the user's config
include $(QPACKAGE_ROOT)/src/Makefile.config
# Create the NEEDED_CHILDREN_MODULES variable, needed for IRPF90
NEEDED_CHILDREN_MODULES=$(shell module_handler.py print_genealogy)
# Define the Makefile common variables
EZFIO_DIR=$(QPACKAGE_ROOT)/EZFIO
EZFIO=$(EZFIO_DIR)/lib/libezfio_irp.a
INCLUDE_DIRS=$(NEEDED_CHILDREN_MODULES) include
clean_links:
rm -f $(INCLUDE_DIRS) $$(basename $$PWD)
LIB+=$(EZFIO) $(MKL)
IRPF90+=$(patsubst %, -I %, $(INCLUDE_DIRS)) $(IRPF90_FLAGS)
# Update Makefile.depend
Makefile.depend: $(wildcard */Makefile)
${QPACKAGE_ROOT}/scripts/module/module_handler.py save_makefile_depend
# Check and update dependencies
include Makefile.depend
# Create symlink
symlink: $(wildcard $(QPACKAGE_ROOT)/src/*/NEEDED_CHILDREN_MODULES)
${QPACKAGE_ROOT}/scripts/module/module_handler.py create_symlink
# Define the EZFIO rules
$(EZFIO): $(wildcard $(QPACKAGE_ROOT)/src/*/*.ezfio_config) $(wildcard $(QPACKAGE_ROOT)/src/*/EZFIO.cfg)
$(QPACKAGE_ROOT)/scripts/ezfio_interface/prepare_ezfio.sh
cd $(EZFIO_DIR);\
export FC="$(FC)" ; export FCFLAGS="$(FCFLAGS)" ; export IRPF90="$(IRPF90)" ;\
$(MAKE) ;\
$(MAKE) Python
# Update EZFIO interface (create the irp.f90 and the ocaml)
ezfio_interface: symlink $(wildcard $(QPACKAGE_ROOT)/src/*/EZFIO.cfg)
${QPACKAGE_ROOT}/scripts/ezfio_interface/ei_handler.py --irpf90 --ocaml --recursif
irpf90.make: $(filter-out IRPF90_temp/%, $(wildcard */*.irp.f)) $(wildcard *.irp.f) $(wildcard .inc.f) Makefile.depend Makefile $(EZFIO) $(wildcard *.py) symlink ezfio_interface
$(IRPF90)
include irpf90.make
# Need NEEDED_CHILDREN_MODULES and IRPMAN
README.rst: NEEDED_CHILDREN_MODULES irpf90.make
${QPACKAGE_ROOT}/scripts/module/update_README.py
tree_dependancy.png: NEEDED_CHILDREN_MODULES
${QPACKAGE_ROOT}/scripts/module/module_handler.py create_png
#Need all the executable
.gitignore: irpf90.make
${QPACKAGE_ROOT}/scripts/module/create_gitignore.sh
#
#
# # Frequent typos
# clena: clean
# veryclena: roger
# vercylean: roger