Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions bin/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
(install
(section bin)
(files
cilly
cilly.native))

(rule
(alias cilly)
(action (copy ../src/main.exe cilly.native)))
31 changes: 31 additions & 0 deletions dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
(rule
(alias configure)
(deps
configure.ac
configure
Makefile.in
config.sub
config.guess
config.h.in
config.mk.in
stamp-h.in
install-sh
lib/perl5/App/Cilly/CilConfig.pm.in
(source_tree src)) ; src/cil.mli doesn't work
(targets
Makefile
config.status
config.h
config.mk
stamp-h
; HACK: workaround for https://github.com/ocaml/dune/issues/3374
src__machdep-ml.c
src__cilversion.ml
lib__perl5__App__Cilly__CilConfig.pm)
(action (progn
(run ./configure)
; HACK: workaround for https://github.com/ocaml/dune/issues/3374
; HACK: use "run cp" instead of "copy" to avoid implicit unsupported subdir deps
(run cp src/machdep-ml.c src__machdep-ml.c)
(run cp src/cilversion.ml src__cilversion.ml)
(run cp lib/perl5/App/Cilly/CilConfig.pm lib__perl5__App__Cilly__CilConfig.pm))))
2 changes: 2 additions & 0 deletions lib/perl5/App/Cilly/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
; HACK: workaround for https://github.com/ocaml/dune/issues/3374
(rule (action (copy ../../../../lib__perl5__App__Cilly__CilConfig.pm CilConfig.pm)))
18 changes: 18 additions & 0 deletions lib/perl5/App/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
(rule
(alias cilly)
(deps (alias ../../../configure) Cilly.pm.in)
(targets Cilly.pm)
(locks ../../../make)
(action (chdir ../../.. (progn
(run mkdir -p _build)
(run make lib/perl5/App/Cilly.pm)))))

(install
(section lib_root)
(files
(Cilly.pm as perl5/App/Cilly.pm)
(Cilly/CilCompiler.pm as perl5/App/Cilly/CilCompiler.pm)
(Cilly/CilConfig.pm as perl5/App/Cilly/CilConfig.pm)
(Cilly/KeptFile.pm as perl5/App/Cilly/KeptFile.pm)
(Cilly/OutputFile.pm as perl5/App/Cilly/OutputFile.pm)
(Cilly/TempFile.pm as perl5/App/Cilly/TempFile.pm)))
44 changes: 19 additions & 25 deletions src/dune
Original file line number Diff line number Diff line change
Expand Up @@ -8,39 +8,33 @@
(modules (:standard \ main))
)

; HACK: workaround for https://github.com/ocaml/dune/issues/3374
(rule (action (copy ../src__machdep-ml.c machdep-ml.c)))
(rule (action (copy ../src__cilversion.ml cilversion.ml)))

(rule
(targets machdep.ml cilversion.ml)
(deps ../configure.ac ../Makefile.in ../install-sh ../config.sub ../config.guess ../config.h.in ../stamp-h.in cil.mli machdep-ml.c.in cilversion.ml.in)
(action (chdir .. (progn (run ./configure) (run make machdep) (run cp _build/machdep.ml src))))
)
(alias machdep)
(deps (alias ../configure) machdep-ml.c)
(targets machdep.ml)
(locks ../make)
(action (chdir .. (progn
(run make machdep)
(run cp _build/machdep.ml src)))))

(rule
(deps (package goblint-cil) ../src/main.exe (source_tree ../lib/perl5/App/Cilly) (source_tree ../test) ../bin/cilly ../configure.ac ../Makefile.in ../install-sh ../config.sub ../config.guess ../lib/perl5/App/Cilly.pm.in ../lib/perl5/Makefile.PL ../config.h.in ../stamp-h.in cil.mli machdep-ml.c.in cilversion.ml.in ../config.mk.in)
(action (chdir .. (progn
(run ./configure)
(run make machdep)
(run make lib/perl5/App/Cilly.pm)
(chdir lib/perl5 (progn
(run perl Makefile.PL)
(run make)
))
(run cp src/main.exe bin/cilly.native)
(bash "mkdir -p share/cil && echo $(cd ../install/default/lib; pwd) > share/cil/ocamlpath")
(run make test)
)))
(alias runtest)
)
(alias cilly)
(deps (package goblint-cil))
(action (chdir .. (bash "mkdir -p share/cil && echo $(cd ../install/default/lib; pwd) > share/cil/ocamlpath")))) ; TODO: what is this?
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea what this is for. If it's redundant, then this entire rule can be removed since all other parts were extracted elsewhere.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this was required for the regression tests to work, not sure if this still is the case...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CilCompiler.pm from cilly seems to optionally read it. So maybe it'll only fail during actual cilly usage?

The tests run fine without that though, but they need the (package goblint-cil) dependency, for cilly to be installed into _build/install/ for testing.


(ocamllex formatlex)
(ocamlyacc formatparse)

(executable
(public_name main)
(modes exe)
(modules main)
(libraries goblint-cil)
(link_flags (-linkall))
)
(name main)
(modules main)
(modes native)
(libraries goblint-cil)
(flags :standard -linkall))

(env
(dev
Expand Down
5 changes: 5 additions & 0 deletions test/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
(rule
(alias runtest)
(deps (alias_rec ../cilly) (source_tree .))
(locks ../make)
(action (chdir .. (run make test))))