X-Git-Url: https://git.sourcephile.fr/haskell/symantic-parser.git/blobdiff_plain/d9103e6025c7ed58ca3a073e00ecebb1c6acf19b..253df6a7bb2ff2d75ed30ccca658607f55b239f2:/Makefile diff --git a/Makefile b/Makefile index c04066e..e076466 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,11 @@ -override RTS_OPTIONS += -L100 -override TEST_OPTIONS += --color always --size-cutoff 1000000 $(addprefix -p ,$t) -override GHC_PROF_OPTIONS += -fprof-auto -fprof-auto-calls override BENCHMARK_OPTIONS += --output benchmarks/html/$(version).html --match glob $b +override GHCID_OPTIONS += --no-height-limit --reverse-errors +override GHC_PROF_OPTIONS += -eventlog -fprof-auto -fprof-cafs +#-fprof-auto-calls override REPL_OPTIONS += -ignore-dot-ghci +override RTS_OPTIONS += -L100 +override TEST_OPTIONS += --color always --size-cutoff 1000000 $(addprefix -p ,$t) +override CABAL_TEST_FLAGS += -j cabal := $(wildcard *.cabal) package := $(notdir ./$(cabal:.cabal=)) @@ -11,24 +14,24 @@ project := $(patsubst %.cabal,%,$(cabal)) all: build build: - cabal build + cabal build $(CABAL_BUILD_FLAGS) clean c: cabal clean repl: - cabal repl $(project) + cabal repl $(CABAL_REPL_FLAGS) $(project) ghcid: - ghcid -c 'cabal repl $(project) --repl-options "$(REPL_OPTIONS)"' --reverse-errors + ghcid $(GHCID_OPTIONS) --command 'cabal repl -fno-code $(CABAL_REPL_FLAGS) $(project) $(addprefix --repl-options ,$(REPL_OPTIONS))' .PHONY: parsers parsers: - cabal build $(project):parsers + cabal build $(CABAL_BUILD_FLAGS) $(project):parsers parsers/repl: - cabal repl $(project):parsers + cabal repl $(CABAL_REPL_FLAGS) $(project):parsers parsers/ghcid: - ghcid -c 'cabal repl $(project):parsers --repl-options "$(REPL_OPTIONS)"' --reverse-errors + ghcid $(GHCID_OPTIONS) --command 'cabal repl -fno-code $(CABAL_REPL_FLAGS) $(project):parsers $(addprefix --repl-options ,$(REPL_OPTIONS))' parsers/prof-th: - cabal v2-build lib:$(project) --enable-profiling $(GHC_PROF_OPTIONS) --write-ghc-environment-files=always - cabal build $(project):parsers $(CABAL_BUILD_FLAGS) \ - --enable-profiling $(GHC_PROF_OPTIONS) \ + cabal v2-build lib:$(project) --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) --write-ghc-environment-files=always + cabal build $(CABAL_BUILD_FLAGS) $(project):parsers \ + --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) \ --ghc-options "$(addprefix -opti,+RTS $(RTS_OPTIONS))" .PHONY: tests @@ -41,17 +44,17 @@ tests/prof-heap: $(project)-test.eventlog.html $(project)-test.eventlog $(project)-test.prof: cabal test $(CABAL_TEST_FLAGS) \ --test-show-details always --test-options "$(TEST_OPTIONS) +RTS $(RTS_OPTIONS)" \ - --enable-profiling $(GHC_PROF_OPTIONS) || true + --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) || true tests/prof-th: - cabal v2-build lib:$(project) --enable-profiling $(GHC_PROF_OPTIONS) --write-ghc-environment-files=always + cabal v2-build lib:$(project) --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) --write-ghc-environment-files=always cabal test $(CABAL_TEST_FLAGS) \ --test-show-details always --test-options "$(TEST_OPTIONS) +RTS $(RTS_OPTIONS)" \ - --enable-profiling $(GHC_PROF_OPTIONS) \ + --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) \ --ghc-options "$(addprefix -opti,+RTS $(RTS_OPTIONS))" -tests/repl: - cabal repl --enable-tests $(project)-test -tests/ghcid: - ghcid -c 'cabal repl $(project):tests --test-options "$(TEST_OPTIONS)"' --reverse-errors +t/repl tests/repl: + cabal repl $(CABAL_REPL_FLAGS) $(CABAL_TEST_FLAGS) --enable-tests $(project)-test +t/ghcid tests/ghcid: + ghcid $(GHCID_OPTIONS) --command 'cabal repl $(CABAL_REPL_FLAGS) $(CABAL_TEST_FLAGS) $(project):tests' --test ":main $(TEST_OPTIONS)" %/accept: TEST_OPTIONS += --accept %/accept: % @@ -72,7 +75,7 @@ benchmarks/html/$(version).html: mkdir -p benchmarks/html cabal bench $(CABAL_BENCH_FLAGS) --benchmark-options "$(BENCHMARK_OPTIONS)" benchmarks/repl: - cabal repl --enable-benchmarks $(project)-benchmark + cabal repl $(CABAL_REPL_FLAGS) --enable-benchmarks $(project)-benchmark benchmarks/prof-time: $(project)-benchmark.eventlog.json benchmarks/prof-heap: $(project)-benchmark.eventlog.html .PHONY: $(project)-benchmark.eventlog @@ -96,6 +99,7 @@ tag: git tag -f -s -m "$(package) v$(version)" $(package)-$(version) tar: + reuse lint cabal sdist cabal haddock --haddock-for-hackage --enable-doc upload: LANG=C @@ -112,21 +116,6 @@ nix-build: nix-relock: nix flake update --recreate-lock-file nix-repl: - nix -L develop --command cabal repl + nix -L develop --command cabal repl $(CABAL_REPL_FLAGS) nix-shell: nix -L develop - -.PHONY: debug-ppr -debug-ppr: debug-ppr/PprSplice.hs debug-ppr/AutoSplice.hs -debug-ppr/PprSplice.hs.ppr: parsers/Parsers/Brainfuck/SymanticParser/PprSplice.hs.ppr Makefile - mkdir -p $(@D) - sed $< >$@ -e '1s/^/parser = /' -e 's/\x00//g' -debug-ppr/AutoSplice.dump-splices: dist-newstyle/build/x86_64-linux/ghc-9.0.1/symantic-parser-$(version)/l/parsers/build/parsers/parsers/Parsers/Brainfuck/SymanticParser/AutoSplice.dump-splices Makefile - mkdir -p $(@D) - sed $< >$@ -e '1,/^ ======>/d;' -e '4s/^/parser = /' -e 's/\x00//g' -%.hs: %.hs.ppr - ormolu -m stdout >$@ -o -XBangPatterns -o -XUnboxedTuples -o -XMagicHash -o -XTypeApplications -o -XUnboxedTuples <$< - #sed -i $@ -e 'N;s/\n\s*#)/ #)/;P;D' -%.hs: %.dump-splices - ormolu -m stdout >$@ -o -XBangPatterns -o -XUnboxedTuples -o -XMagicHash -o -XTypeApplications -o -XUnboxedTuples <$< - #sed -i $@ -e 'N;s/\n\s*#)/ #)/;P;D'