BRIANWEB_ROOT = $(if $(wildcard ../hsutils),..,$(if $(wildcard $(HOME)/.brianweb_root),$(shell cat ~/.brianweb_root),$(error "Please set BRIANWEB_ROOT or create ~/.brianweb_root"))) LAMBDAVM = $(BRIANWEB_ROOT)/lambdavm SED_E = $(shell sed -E p /dev/null && echo "sed -E" || echo "sed -r") .PRECIOUS: build/hcr/%.hcr all = build/package.conf $(classes) package = base version = 1.0 hcrs = $(patsubst src/%.lhs,build/hcr/%.hcr,$(filter src/%.lhs,$(sources))) \ $(patsubst src/%.hs,build/hcr/%.hcr,$(filter src/%.hs,$(sources))) classes = $(hcrs:build/hcr/%.hcr=build/class/%.class) boots = $(shell find src -name '*.lhs-boot' -o -name '*.hs-boot') hiboots = $(boots:src/%.lhs-boot=build/hi/%.hi-boot) build/hcr/%.hcr: build/o/%.o @mkdir -p `dirname $@` [ -e src/$*.hcr ] && mv src/$*.hcr $@ || [ -e $@ ] && touch $@ build/class/%.class: build/hcr/%.hcr build/hcr/GHC/Err.hcr @mkdir -p `dirname $@` $(LAMBDAVM)/build/bin/Brianweb/LambdaVM/Tools/LambdaVM $< include $(BRIANWEB_ROOT)/hsutils/GNUmakefile.common GHCFLAGS := $(filter-out -Werror,$(GHCFLAGS)) -fglasgow-exts -fext-core -fno-code -hide-all-packages # Don't mess with this code. It very delicately handles circular deps .depend2: .depend $(SED_E) -n 's/^build\/o\/(.*)\.o : build\/hi\/(.*)\.hi?$$/build\/hcr\/\1.hcr: build\/hcr\/\2.hcr/p;' < $< > $@ $(SED_E) -n 's/^build\/o\/(.*)\.o : build\/hi\/(.*)\.hi-boot$$/build\/class\/\1.class: build\/hcr\/\2.hcr/p;' < $< >> $@ include .depend2