| www.delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mail set sender to geda-user-bounces using -f |
| X-Recipient: | geda-user AT delorie DOT com |
| X-Original-DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; |
| d=gmail.com; s=20161025; | |
| h=from:date:to:subject:message-id:mail-followup-to:references | |
| :mime-version:content-disposition:in-reply-to; | |
| bh=PeE8FWpKo43/CQGr1xpUwiVjpUtsqlmk6YASa0OOr98=; | |
| b=SmUcuqskEod7CsrhNKSeTBMwhd5odei+iRYGfokVRrD8uMhRgbGYN6WrEQPtlsx5d4 | |
| 6lsFeHlLOa/nSioqgFsB097adfQeE2NpAVf3Sz1sWBbgxeun+LPoM/J5xpN/UCIDKL44 | |
| rTQjADyb6K7WlZPD74sNzk+cwcweVcswF7EBwjCu4XpZ+94ahA0N4NezT666JfvSrr6h | |
| ZmM3K24YSR3Fg9mmaMrirMnQ3+0Sd4o08bUWX4JlFnl5CIROtdnEHIemWoRp5GwWf3aT | |
| wrr9scaNi3+zfMUDqEI1RLOJINPaMzKy2h2LmlOXUs4VUd6tSw/z9h3a+/Ykk0gogzEH | |
| kPkw== | |
| X-Google-DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; |
| d=1e100.net; s=20161025; | |
| h=x-gm-message-state:from:date:to:subject:message-id:mail-followup-to | |
| :references:mime-version:content-disposition:in-reply-to; | |
| bh=PeE8FWpKo43/CQGr1xpUwiVjpUtsqlmk6YASa0OOr98=; | |
| b=sQGNOLN1PlNCT5ncVplkFTtzAB3kk3dprUzeAUZSoVa3utN4mG7TknaUqDxkaFxZiY | |
| MlUBFqWkIZTpfmM9eKl0K3+VGXkm8wxCZWR5L5bXYyCZGncPRuW0DtDHjKKOkv2YkoVF | |
| 9GHnv7xeGFJzrO9UEEZJuCuAgxOKFXf2KDqHdwzHB75/L7AcXuj4fgBVy5a6uPTC2BnV | |
| o+R+I11rsFUloG+BSDxLQCcxiaWxP5TbP8sxaW8pZrr8uokTZes2T/ygu3zKoZDUVu2D | |
| tIme8s6VDa+CXeCdMPtfx1cUtM+RktEI59XjcerLe1DKE2zIiQqs2/CyImjqypTxxHLf | |
| KQLg== | |
| X-Gm-Message-State: | AOAM532yAJcE+SxVEiOyd26YQ/YRksXED2i0B4IRfn4jdQETlHXtB+G9 |
| NVUtdrXL9daEC/5F9Gbs8KsIHxEjFVQ= | |
| X-Google-Smtp-Source: | ABdhPJz7gBSlRY9qG5/R7YKrNK7IRFFN8D4YSs1sciMHtaq8CsG3YCzHIZ0dWTzxMnLsrJ0Ybnyizw== |
| X-Received: | by 2002:ac2:5972:: with SMTP id h18mr3140715lfp.206.1618908137477; |
| Tue, 20 Apr 2021 01:42:17 -0700 (PDT) | |
| From: | "Vladimir Zhbanov (vzhbanov AT gmail DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com> |
| X-Google-Original-From: | Vladimir Zhbanov <vzh AT lepton> |
| Date: | Tue, 20 Apr 2021 11:42:15 +0300 |
| To: | geda-user AT delorie DOT com |
| Subject: | Re: [geda-user] system wide config |
| Message-ID: | <YH6T5zzhba9AqGX9@lepton> |
| Mail-Followup-To: | geda-user AT delorie DOT com |
| References: | <20210417120805 DOT 37DAA824EAA0 AT turkos DOT aspodata DOT se> |
| <YHrjzpKEMOvXREuY AT lepton> | |
| <20210417144426 DOT E4238824EAA0 AT turkos DOT aspodata DOT se> | |
| <YH4IPPe+k4MZJJkm AT lepton> | |
| <20210420004032 DOT 30A6980770A6 AT turkos DOT aspodata DOT se> | |
| MIME-Version: | 1.0 |
| In-Reply-To: | <20210420004032.30A6980770A6@turkos.aspodata.se> |
| Reply-To: | geda-user AT delorie DOT com |
| Errors-To: | nobody AT delorie DOT com |
| X-Mailing-List: | geda-user AT delorie DOT com |
| X-Unsubscribes-To: | listserv AT delorie DOT com |
Karl,
On Tue, Apr 20, 2021 at 02:40:32AM +0200, karl AT aspodata DOT se [via geda-user AT delorie DOT com] wrote:
> Vladimir:
> ...
> > You could do 'ln -s ../sym' in each of the subdirs and then
> > the commands in gafrc for sub-pages were superfluous.
>
> Guess this is coming more and more offtopic, but one thing i did
> for makefiles, is having just one link in each dir (where it matters)
> and in the Makefile have:
>
> INC := $(shell readlink -f Makefile | sed -e 's/\/Makefile//' )
> TOP := $(shell dirname $(INC))
> BIN := $(TOP)/bin/
>
> then I can include/run something from common places like
>
> include $(INC)/Make_post.mk
>
> %.small.sym: %.sym
> $(BIN)scale_sym.pl 0.5 $< > $@
>
> I guess something similar is possible in guile also.
Many different approaches can be used in Guile to achieve what you
want: using environment variables, system calls, pipes, writing
to/from files, etc.
E.g., I'll mimic getting of 'INC' above:
(use-modules (ice-9 popen)) ; for pipes
(use-modules (ice-9 rdelim)) ; for delimited reading
(let* ((port (open-input-pipe "readlink -f Makefile"))
(str (read-line port))) ; from (ice-9 rdelim)
(close-pipe port)
(dirname str))
=> "/some/absolute/dirname"
It's easy to get other variables then.
You could also use 'system' or 'system*' calls to run any scripts
like scale_sym.pl above.
Probably using of some predefined environment variable would be
even easier in your case since Lepton expands them in library
commands such as "component-library". 'setenv', 'putenv', 'getenv'
are available in Guile as well.
Vladimir
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |