To emulate the live preview, there is a neat piece of software called entr[1], from their main page, you can do something like:
ls | entr make
And whenever you save a change, the build is triggered and the preview is updated.The pipeline approach here is interesting, but it seems you'd be on your own for filtering out changes in the build directory, etc. I typically use watchexec [1] for this.
watchexec make
By default, watchexec will filter out changes in files based on `.gitignore`.