guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Starting a GNU Guile awesome list


From: Zelphir Kaltstahl
Subject: Re: Starting a GNU Guile awesome list
Date: Sat, 10 Oct 2020 14:31:49 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

Hello Dmitry!

I know this is kind of a late reply. I hope you do not mind me
unearthing this. : )

On 7/16/20 10:47 AM, Dmitry Alexandrov wrote:
> "Dr. Arne Babenhauserheide" <arne_bab@web.de> wrote:
>>>> In the case you will stick with Org, there at least should be a runnable 
>>>> build recipe (i. e. a Makefile).
>> I’d like to cut this discussion short:
>>
>> https://notabug.org/ZelphirKaltstahl/awesome-guile/pulls/1/files
>>      all: readme.md readme.texi readme.html
>>      .INTERMEDIATE: .exported
>>      readme.md readme.texi readme.html: .exported
>>      .exported: readme.org
>>              HOME=$$(dirname $$(realpath "$<")) emacs -Q --batch "$<" --exec 
>> "(require 'ox-md)" -f org-md-export-to-markdown -f org-html-export-to-html 
>> -f org-texinfo-export-to-texinfo -f kill-emacs
> Alternatively, without reliance on implicit behaviour (setting HOME in order 
> to get an expected filename??):
>
>       #!/usr/bin/make -f
>       
>       SHELL := emacs
>       .SHELLFLAGS := --quick --batch --eval
>       
>       orgs := $(wildcard *.org)
>       objs := $(orgs:.org=.md) $(orgs:.org=.texi)
>       
>       .PHONY: all
>       all: $(objs)
>       
>       .ONESHELL:
>       %.md %.texi: %.org
>               (with-temp-buffer
>                 (require 'ox-md)
>                 (require 'ox-texinfo)
>                 (when (insert-file-contents "$<")
>                   (org-mode)
>                   (org-export-to-file 'md "$*.md")
>                   (org-export-to-file 'texinfo "$*.texi")))

I'm not that proficient at GNU Make yet. I would like to add a way to
cleanup created md and texi files, so that, when I run `make` again, it
creates all files anew.

So I thought I could simply add a `make clean` as follows:

~~~~
.PHONY: clean
clean:
        /bin/rm --verbose *.html *.md *.texi || true;
~~~~

But then I would hardcode the location of `rm` and also it does not work:

~~~~
/bin/rm --verbose *.html *.md *.texi || true;
Symbol’s value as variable is void: /bin/rm
make: *** [Makefile:17: clean] Error 255
~~~~

I think this is, because we have `#!/usr/bin/make -f` at the top, so it
does not know what `/bin/rm/` is. How would you write the makefile to
either add a `make clean` step, or alternatively modify it so that
running `make` will always create the other formats anew?

Regards,
Zelphir



reply via email to

[Prev in Thread] Current Thread [Next in Thread]