Skip to content

Commit

Permalink
Makefile algined with NIAC PR 1336
Browse files Browse the repository at this point in the history
  • Loading branch information
domna committed Jan 4, 2024
1 parent 8d2fc5b commit 50e9d1d
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 17 deletions.
21 changes: 12 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@

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

YBC_NXDL = $(patsubst %.yaml,%.nxdl.xml,$(subst /nyaml/,/, $(wildcard $(BASE_CLASS_DIR)/nyaml/*.yaml)))
YCONTRIB_NXDL = $(patsubst %.yaml,%.nxdl.xml,$(subst /nyaml/,/, $(wildcard $(CONTRIB_DIR)/nyaml/*.yaml)))
YAPPDEF_NXDL = $(patsubst %.yaml,%.nxdl.xml,$(subst /nyaml/,/, $(wildcard $(APPDEF_DIR)/nyaml/*.yaml)))
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
Expand All @@ -28,12 +28,15 @@ help ::
@echo "make autoformat Format all files to the coding style conventions."
@echo "make test Run NXDL syntax and documentation tests."
@echo "make clean Remove all build files."
@echo "make clean-nyaml Remove all nyaml files."
@echo "make prepare (Re)create all build files."
@echo "make html Build HTML version of manual. Requires prepare first."
@echo "make pdf Build PDF version of manual. Requires prepare first."
@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 Down Expand Up @@ -106,7 +109,7 @@ $(CONTRIB_DIR)/%.nxdl.xml : $(CONTRIB_DIR)/$(NYAML_SUBDIR)/%.yaml
$(APPDEF_DIR)/%.nxdl.xml : $(APPDEF_DIR)/$(NYAML_SUBDIR)/%.yaml
nyaml2nxdl $< --output-file $@

nxdl: $(YBC_NXDL) $(YCONTRIB_NXDL) $(YAPPDEF_NXDL)
nxdl: $(YBC_NXDL_TARGETS) $(YCONTRIB_NXDL_TARGETS) $(YAPPDEF_NXDL_TARGETS)

nyaml:
$(MAKE) -f nyaml.mk
Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,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
19 changes: 11 additions & 8 deletions nyaml.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,24 @@ BASE_CLASS_DIR := base_classes
CONTRIB_DIR := contributed_definitions
APPDEF_DIR := applications
NYAML_SUBDIR := nyaml
NXDL_BC = $(addprefix $(BASE_CLASS_DIR)/nyaml/,$(notdir $(patsubst %.nxdl.xml,%.yaml,$(wildcard $(BASE_CLASS_DIR)/*.nxdl.xml))))
NXDL_APPDEF = $(addprefix $(APPDEF_DIR)/nyaml/,$(notdir $(patsubst %.nxdl.xml,%.yaml,$(wildcard $(APPDEF_DIR)/*.nxdl.xml))))
NXDL_CONTRIB = $(addprefix $(CONTRIB_DIR)/nyaml/,$(notdir $(patsubst %.nxdl.xml,%.yaml,$(wildcard $(CONTRIB_DIR)/*.nxdl.xml))))
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
nyaml2nxdl $< --output-file $@
@mkdir -p $(@D)
nyaml2nxdl $< --output-file $@

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

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

nyaml: $(NXDL_BC) $(NXDL_APPDEF) $(NXDL_CONTRIB)
nyaml: $(NXDL_BC_TARGETS) $(NXDL_APPDEF_TARGETS) $(NXDL_CONTRIB_TARGETS)

all: nyaml
all: nyaml

0 comments on commit 50e9d1d

Please sign in to comment.