Tony wrote:

> On Thu, Aug 29, 2019 at 8:59 PM Bram Moolenaar <b...@moolenaar.net> wrote:
> >
> >
> > Christian wrote:
> >
> > > On Mi, 28 Aug 2019, Bram Moolenaar wrote:
> > >
> > > >
> > > > > Recently you've been proposing (and Bram has accepted) to create a lot
> > > > > of new source files to make the existing source easier to understand.
> > > > > The notion is laudable but it doesn't work well with my shadow
> > > > > directories: every time there is a new .c source (or .h; .pro sources
> > > > > are taken care of automatically by virtue of their being in a special
> > > > > src/proto directory for which a symlink has ben creted once and for
> > > > > all in the shadow directory), I have to manually create a symlink
> > > > > newsourcename.c -> ../newsourcename.c in each shadow directory,
> > > > > otherwise the "make" step ends in error with "No rule to make
> > > > > newsourcename.c. Stop.".
> > > > >
> > > > > Do you think the following rule (added to the src/Makefile which is
> > > > > soft-linked from every shadow directory) could take care of my problem
> > > > > without undesired side-effects?
> > > > >
> > > > > *: ../$@
> > > > >         ln -sv ../$@
> > > > >
> > > > > The idea is to create a link if a needed file exist inthe parent (src)
> > > > > directory but not in the current (shadow) directory. Maybe the target
> > > > > sould be made less general to avoid using this rule out of turn.
> > > >
> > > > What happens with "make foo"?  Doesn't it execute "ln -sv ../foo" then?
> > > > Or say "../foo" does not exist"?  Both are very confusing.
> > > >
> > > > Perhaps we can the "ln" line from "make shadow" and add it with a
> > > > "shadowupdate" target:
> > > >
> > > > shadowupdate:
> > > >     ln -s ../*.[chm] ../*.in ../*.sh ../*.xs ../*.xbm 
> > > > ../gui_gtk_res.xml ../toolcheck ../proto ../libvterm ../vimtutor 
> > > > ../gvimtutor ../install-sh ../Make_all.mak .
> > > >
> > > > Probably reports a lot of error for already existing links.
> > >
> > > using -f should force (re-creation) of the link and should not error.
> >
> > Assuming that the user hasn't replaced the link with something else, I
> > suppose it's not a problem to overwrite the link.  I would prefer to
> > skip the existing files, but I don't see a flag for "ln" for that.
> 
> OK, what about the following, which skips the existing files?
> 
> *.[chm] *.cc *.in *.sh *.xs *.xbm *.xml : ../$@
>         ln -sv ../$@

AFAIK only GNU make accepts wildcards here, it doesn't work everywhere.

> (links to directories are created by "make shadow" and don't need to
> be created again; in the case of future directories we don't know what
> they will be, so if new *subdirectories* are created I'll still have
> to link them manually; but that happened much less often recently than
> new .c sources). This won't recreate an already existing link because
> "make" finds the link's date by following the link (otherwise
> incremental compiles wouldn't work).
> 
> I intentionally set the -v (--verbose) switch to ln, in order to have
> a trace of the link creation (which is not an everyday event) in the
> log, so an alert user can check that it happened the way it should.
> 
> >
> > I can add the shadowupdate rule, but I do wonder how you keep Makefile
> > up-to-date, since that also needs to be changed.
> >
> I keep the src/shadow-*/Makefile up-to-date by replacing (once and for
> all) the *copy* of the src/Makefile created by "make shadow" by a
> *soft link* to ../Makefile. My config arguments are set by means of
> environment variables, not by modifying the Makefile.

OK, that makes sense.

-- 
hundred-and-one symptoms of being an internet addict:
136. You decide to stay in a low-paying job teaching just for the
     free Internet access.

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/201908301200.x7UC06WW015607%40masaka.moolenaar.net.

Raspunde prin e-mail lui