[Geany-Users] Makefile redirction for Make Command

Tim Black tblack at xxxxx
Fri Feb 7 10:02:41 UTC 2014


Lex

Brilliant answer.

When I said pointing to here I meant currently editing file here!!!!

I think I am going to go for the script(s) option that you recommend - it has the advantages that you mentioned and the technique can be applied for other VPATH builds we may need in the future.

Colomban also mentioned this technique that could also be employed but I think I prefer the fixed path technique you mentioned (but see question below).


"However, seeing the examples in your other mail, you could also use a script that runs make in $(PWD)/../../../build1/<common part>, like that:


                #!/bin/sh



                # find subdir of build1 to enter

                pwd="$PWD"

                cd ../..

                sub="./${pwd:${#PWD}}"

                # and enter, and run make in it

                cd "../build1/$sub"

                exec make $@



It has the advantage of not requiring to drop one makefile per source directory, you just use this script everywhere.  A more committed writer could also probably write a script that finds the recursion depth itself by e.g. going up until current directory is APPS, so the script could be run from any subdirectory of APPS, not only in APPS/*/*/"

Just one more question though - Eclipse allows you to specify a target for a build e.g. Debug or Release.

Is there a way to simulate this in Geany?  Can I have a build or build1A target selectable from a menu or something easy to use like that and then pass this as an argument to the build script?

Kind Regards

Tim

From: users-bounces at lists.geany.org [mailto:users-bounces at lists.geany.org] On Behalf Of Lex Trotman
Sent: 22 January 2014 21:16
To: Geany general discussion list
Subject: Re: [Geany-Users] Makefile redirction for Make Command



On 22 January 2014 23:19, Tim Black <tblack at actia.co.uk<mailto:tblack at actia.co.uk>> wrote:
Hi thanks for getting back to me.

Maybe I should have been a little more specific in my requirements:

My folder structure looks like:

/APPS
        /application1
                /src
        /application2
                /src    <- geany pointing to file here !  See note below

Not sure what you mean by "pointing to here", do you mean 1) currently editing a file here, 2) Geany was started with here as pwd, 3) the wd of the make command is explicitly pointed here, or something else?

In each case

1) your command could be a script that is passed %d as an argument and then extracts the tail and prefixes it with /build1.  That is a single script and it doesn't even need to be in the application dir and can be filetype independent and an absolute path.

2) a filetype independent build command runs a script (from the local dir) that knows to run the matching make in /build1/... This needs a script in each application dir.

3) if its explicit, you might as well make it explicit to build1/... dir

You should probably also be looking at projects which can also set build commands and be more specific.

Personally I would use 2) having a hard wired script in each application dir, its simple, its explicit so the next maintainer can understand it, and it doesn't depend on Geany specifically so you can also run the script from the command line as well.  Sure it will take half an hour to set up twenty scripts, but then its done :)

Cheers
Lex

        /application3
                /src

... 20 or so applications ...

/buid1
        /application1
                /src
        /application2
                /src    <- I want geany to execute the Makefile here
        /application3
                /src

... 20 or so applications ...

If I put a makefile (e.g. Makefile.geany) in /APPS/application2/src that points to the makefile in /build1/application2/src then regardless of which directory the file I am editing is the Make command will pick up the Makefile.geany and build application2.  Obviously each Makefile.geany file would need to be customised to execute the correct target.

My question is:

What would I put in the Makefile.geany to run make in ../../build1/application/src or would a shell script (geany.make) be more sensible that simply executed e.g. pushd ../../build1/application/src; make; popd;  Every directory would have the geany.make script so I can simply have to put geany.make in the command settings.

Your comments on the best course of action would be appreciated.

Thanks again

Tim
[...]
Important: This e-mail is intended for the above named only. It may contain private or confidential information, protected by copyright. If this has been received in error, it should be destroyed or the sender notified. It should not be used except by the intended recipient. The views contained in this email are those of the author and not necessarily those of Actia (UK) Ltd.

It is for the recipient to undertake any virus checking and no liability therefore is accepted by the sender.

Actia (UK) Ltd
Registered Office: Unit 81 Mochdre Industrial Estate,
Newtown, Powys. SY16 4LE.
Company Reg. No: 2910867


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geany.org/pipermail/users/attachments/20140207/a167ea08/attachment.html>


More information about the Users mailing list