Skip to content

Commit

Permalink
Merge pull request #1336 from FAIRmat-NFDI/makefile-updates
Browse files Browse the repository at this point in the history
Adds makefile refinements and nyaml as dependency
  • Loading branch information
sanbrock committed Jan 17, 2024
2 parents 5f3b4fe + a58110c commit f22c8f2
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 3 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ __pycache__/
# Build artifacts
build/
makelog.txt
nyaml/

# Unknown
/python/
__github_creds__.txt
__github_creds__.txt
32 changes: 30 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,18 @@

PYTHON = python3
SPHINX = sphinx-build
BUILD_DIR = "build"
BUILD_DIR = build
BASE_CLASS_DIR = base_classes
CONTRIB_DIR = contributed_definitions
APPDEF_DIR = applications
NYAML_SUBDIR = nyaml

.PHONY: help install style autoformat test clean prepare html pdf impatient-guide all local
YBC_NXDL_TARGETS = $(patsubst %.yaml,%.nxdl.xml,$(subst /nyaml/,/, $(wildcard $(BASE_CLASS_DIR)/nyaml/*.yaml)))
YCONTRIB_NXDL_TARGETS = $(patsubst %.yaml,%.nxdl.xml,$(subst /nyaml/,/, $(wildcard $(CONTRIB_DIR)/nyaml/*.yaml)))
YAPPDEF_NXDL_TARGETS = $(patsubst %.yaml,%.nxdl.xml,$(subst /nyaml/,/, $(wildcard $(APPDEF_DIR)/nyaml/*.yaml)))


.PHONY: help install style autoformat test clean prepare html pdf impatient-guide all local nxdl nyaml

help ::
@echo ""
Expand All @@ -25,6 +34,8 @@ help ::
@echo "make impatient-guide Build html & PDF versions of the Guide for the Impatient. Requires prepare first."
@echo "make all Builds complete web site for the manual (in build directory)."
@echo "make local (Developer use) Test, prepare and build the HTML manual."
@echo "make nxdl Build NXDL files from NYAML files in nyaml subdirectories."
@echo "make nyaml Build NYAML files to nyaml subdirectories from NXDL files."
@echo ""
@echo "Note: All builds of the manual will occur in the 'build/' directory."
@echo " For a complete build, run 'make all' in the root directory."
Expand All @@ -49,6 +60,9 @@ test ::

clean ::
$(RM) -rf $(BUILD_DIR)
$(RM) -rf $(BASE_CLASS_DIR)/$(NYAML_SUBDIR)
$(RM) -rf $(APPDEF_DIR)/$(NYAML_SUBDIR)
$(RM) -rf $(CONTRIB_DIR)/$(NYAML_SUBDIR)

prepare ::
$(PYTHON) -m dev_tools manual --prepare --build-root $(BUILD_DIR)
Expand Down Expand Up @@ -83,6 +97,20 @@ all ::
@echo "HTML built: `ls -lAFgh $(BUILD_DIR)/manual/build/html/index.html`"
@echo "PDF built: `ls -lAFgh $(BUILD_DIR)/manual/build/latex/nexus.pdf`"

$(BASE_CLASS_DIR)/%.nxdl.xml : $(BASE_CLASS_DIR)/$(NYAML_SUBDIR)/%.yaml
nyaml2nxdl $< --output-file $@

$(CONTRIB_DIR)/%.nxdl.xml : $(CONTRIB_DIR)/$(NYAML_SUBDIR)/%.yaml
nyaml2nxdl $< --output-file $@

$(APPDEF_DIR)/%.nxdl.xml : $(APPDEF_DIR)/$(NYAML_SUBDIR)/%.yaml
nyaml2nxdl $< --output-file $@

nxdl: $(YBC_NXDL_TARGETS) $(YCONTRIB_NXDL_TARGETS) $(YAPPDEF_NXDL_TARGETS)

nyaml:
$(MAKE) -f nyaml.mk


# NeXus - Neutron and X-ray Common Data Format
#
Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,24 @@ Note: If set this will increase the build time of the documentation by approxima

setenv GH_TOKEN <access token>

### Working with nyaml files

There exists a simplified format of nxdl, which is called nyaml.
There is a [tool](https://github.com/FAIRmat-NFDI/nyaml) (`nyaml2nxdl`) available to convert between nxdl and nyaml.
This tool is already installed when you installed the requirements for this repository and it is conveniently available from the make command.

You can build nyaml files for all nxdl files with invoking

make nyaml

which will created `.yaml` files in a subfolder called `nyaml` in the respective directory.

From this you can do your changes and create nxdl files with

make nxdl

from the yaml files.

## Repository content

These are the components that define the structure of NeXus data files
Expand Down
25 changes: 25 additions & 0 deletions nyaml.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
BASE_CLASS_DIR := base_classes
CONTRIB_DIR := contributed_definitions
APPDEF_DIR := applications
NYAML_SUBDIR := nyaml
NXDL_BC_TARGETS = $(addprefix $(BASE_CLASS_DIR)/nyaml/,$(notdir $(patsubst %.nxdl.xml,%.yaml,$(wildcard $(BASE_CLASS_DIR)/*.nxdl.xml))))
NXDL_APPDEF_TARGETS = $(addprefix $(APPDEF_DIR)/nyaml/,$(notdir $(patsubst %.nxdl.xml,%.yaml,$(wildcard $(APPDEF_DIR)/*.nxdl.xml))))
NXDL_CONTRIB_TARGETS = $(addprefix $(CONTRIB_DIR)/nyaml/,$(notdir $(patsubst %.nxdl.xml,%.yaml,$(wildcard $(CONTRIB_DIR)/*.nxdl.xml))))

.PHONY: all nyaml

$(BASE_CLASS_DIR)/$(NYAML_SUBDIR)/%.yaml : $(BASE_CLASS_DIR)/%.nxdl.xml
@mkdir -p $(@D)
nyaml2nxdl $< --output-file $@

$(CONTRIB_DIR)/$(NYAML_SUBDIR)/%.yaml : $(CONTRIB_DIR)/%.nxdl.xml
@mkdir -p $(@D)
nyaml2nxdl $< --output-file $@

$(APPDEF_DIR)/$(NYAML_SUBDIR)/%.yaml : $(APPDEF_DIR)/%.nxdl.xml
@mkdir -p $(@D)
nyaml2nxdl $< --output-file $@

nyaml: $(NXDL_BC_TARGETS) $(NXDL_APPDEF_TARGETS) $(NXDL_CONTRIB_TARGETS)

all: nyaml
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Prepare for Documentation
lxml
pyyaml
nyaml

# Documentation building
sphinx>=5
Expand Down

0 comments on commit f22c8f2

Please sign in to comment.