packages feed

ruler-0.4.0.0: demo/Makefile

## Tools used
SHUFFLE         := shuffle
RULER           := ruler
AGC             := uuagc
GHC             := ghc
GHC_OPTS        := -XTypeSynonymInstances -XFlexibleInstances -XFlexibleContexts

## General settings
BUILD_PREFIX    := build/
RULER_DEMO_EXEC := rulerdemo

## Shuffle settings
SHUFFLE_ORDER   := 1 < 2 < 3
SHUFFLE_FINAL   := 3
SHUFFLE_OPTS    := --markchanges="E - AG"

## File names
AG_MAIN         := RulerDemoMain
SRC_CAG_MAIN    := $(AG_MAIN).cag
DRV_AG_MAIN     := $(BUILD_PREFIX)$(AG_MAIN).ag
DRV_HS_MAIN     := $(BUILD_PREFIX)$(AG_MAIN).hs
RUL_BASE        := rulerDemoRL
SRC_CRL         := $(RUL_BASE).crl2
DRV_RL2         := $(BUILD_PREFIX)$(RUL_BASE).rl2
AG_BASE         := rulerDemoAG
DRV_CAG         := $(BUILD_PREFIX)demo.cag
DRV_AG          := $(BUILD_PREFIX)demo.ag
UTILS           := RulerDemoUtils
SRC_CHS_UTILS   := $(UTILS).chs
DRV_HS_UTILS    := $(BUILD_PREFIX)$(UTILS).hs

## Actual rules
all: $(RULER_DEMO_EXEC)

$(DRV_AG_MAIN): $(SRC_CAG_MAIN)
	@mkdir -p $(@D)
	$(SHUFFLE) --gen-reqm=$(SHUFFLE_FINAL) --ag --variant-order="$(SHUFFLE_ORDER)" --base=Main --preamble=no --lhs2tex=no $< > $@

$(DRV_RL2): $(SRC_CRL)
	@mkdir -p $(@D)
	$(SHUFFLE) --gen-reqm=$(SHUFFLE_FINAL) --plain --variant-order="$(SHUFFLE_ORDER)" --lhs2tex=no $< > $@

$(DRV_CAG): $(DRV_RL2)
	@mkdir -p $(@D)
	$(RULER) $(RULER2_OPTS) --ag --ATTR --DATA --selrule="(3).(*).(*)" --wrapshuffle  --base=$(AG_BASE) $< > $@

$(DRV_AG): $(DRV_CAG)
	@mkdir -p $(@D)
	$(SHUFFLE) --gen-reqm=$(SHUFFLE_FINAL) --plain --variant-order="$(SHUFFLE_ORDER)"  --lhs2tex=no $< > $@

$(DRV_HS_MAIN): $(DRV_AG_MAIN) $(DRV_AG)
	@mkdir -p $(@D)
	$(AGC) -csdfr -P$(BUILD_PREFIX) $<

$(DRV_HS_UTILS): $(SRC_CHS_UTILS)
	@mkdir -p $(@D)
	$(SHUFFLE) --gen-reqm=$(SHUFFLE_FINAL) --hs --variant-order="$(SHUFFLE_ORDER)" --preamble=no --lhs2tex=no $< > $@

$(RULER_DEMO_EXEC): $(DRV_HS_MAIN) $(DRV_HS_UTILS)
	@mkdir -p $(@D)
	$(GHC) --make $(GHC_OPTS) -i$(BUILD_PREFIX) $(DRV_HS_MAIN) -o $@

# Cleaning up
clean:
	@rm -rf $(BUILD_PREFIX)