From: Keith M. <kei...@nt...> - 2011-02-24 21:55:08
|
On 24/02/11 20:36, Alessandro Antonello wrote: > I have a project with the following structure: > > root/ > +-> Makefile > +-> source/ > +-> bin/ > > ... I don't know how to build a Makefile that looks for the source > files in the *source* directory and write the binary files in the > *bin* directory. > > I couldn't find some example in the Internet. Someone could point me > to a reference link or something, please? You want to use the VPATH feature of GNU make -- google the online manual for the details. Basically, you construct your makefile as if all your files, source and generated objects are in the same directory. You make your root/bin the current working directory, and add the VPATH in ../Makefile to the *relative* reference to the sources: VPATH = ../source and invoke make as: make -f ../Makefile For further inspiration, you could look at any of my project sources, (e.g. mingw-get). They all use a VPATH build technique, with a hand crafted Makefile.in template for the Makefile; the autoconf generated configure script uses this to construct Makefile itself in the build directory (equivalent to your root/bin), with the VPATH definition automatically fixed up to point to the sources. (This offers the advantage of allowing relocation of the build directory relative to the source, so you can support, say, configuration for debug and release builds in parallel, each in their own directory, but sharing a common source). -- Regards, Keith. |