Article View: pl.comp.os.linux.programowanie
Article #72608Re: wielokrotne make ze zmianą definicji
From: Marcin Konarski
Date: Fri, 22 Mar 2013 19:14
Date: Fri, 22 Mar 2013 19:14
46 lines
2787 bytes
2787 bytes
On Fri, 22 Mar 2013 01:47:16 +0000 (UTC), Edek Pienkowski <edek.pienkowski@gmail.com> wrote: > Dnia Thu, 21 Mar 2013 22:52:04 +0000, Marcin Konarski wyszeptal: > >> To czego szukasz nazywa się "out of source(s) build". >> Technicznie jest to dość skomplikowane i eleganckie rozwiązanie >> to zestaw makefile'i (najlepiej z configure.ac) na kila tysięcy linii. >> CMake również umożliwia "out of sources build". > > Technicznie to nie jest strudne i nie wymaga tysięcy linii, ale > zapytałbym najpierw na ile znasz make. [amok@vegeta](0/0)~/src/yaal/$ cat _aux/mk/* ./configure.ac ./Makefile.mk.in | wc -l 1255 Faktycznie przesadziłem z estymacją "tylko" 1200 linii. > > Zacząłbym czytanie manuala od elementów w make, które generują > framenty Makefile w samym Makefile (w locie, takie "makra" > powiedzmy. > > Wtedy całą kompilację wrzuca się w takie "makra", pojawiają > się wtedy $$ i inne nieczytelne rzeczy, z góry mówię > że to nie wygląda dobrze, ale potem takie makro > wykonuje się w pętli (for ...) dla parametrów i efekt jest taki, > jakbyś dla każdej kombinacji parametrów miał osobny fragment > Makefile po inteligentym c-c c-v, co za piszącego robi > sam make. Z tego powstaje jeden Makefile, z targetami, > zależnościami itd., oczywiście nie jako plik tylko > podczas budowania. > > Mówię o nieczęsto używanym feature, i debugowanie generowanych > targetów wymaga kilku sztuczek, ale właśnie w takim celu > powstała ta część make. Ten fragment to chyba nie do mnie. GNU make mam w małym palcu, i podtrzymuję swoją opinię, OOSB jest nietrywialny do poprawnego i eleganckiego zaimplementowania. -- Huginn GCS d? s: a C++$() UBLS++++$ P++ L++++$ E--- W+(-) N++ w-- O M- V- PS+ PE++ Y PGP- t--- 5-- X- R !tv b++ DI+++ D+ G e* h r++ y**
Technical Details
Message-ID:
<slrnkkpbc9.v45.amok@ubiquitous.utgard.biz>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<kifrko$ubl$1@node1.news.atman.pl> <slrnkkn3om.387.amok@ubiquitous.utgard.biz> <kigd74$fgp$1@node1.news.atman.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Marcin Konarski <amok@utgard.beez> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: wielokrotne make ze zmianą definicji Date: Fri, 22 Mar 2013 19:14:13 +0000 (UTC) Organization: ATMAN - ATM S.A. Lines: 46 Message-ID: <slrnkkpbc9.v45.amok@ubiquitous.utgard.biz> References: <kifrko$ubl$1@node1.news.atman.pl> <slrnkkn3om.387.amok@ubiquitous.utgard.biz> <kigd74$fgp$1@node1.news.atman.pl> Reply-To: huginn78@o2.pll NNTP-Posting-Host: 178-36-41-73.adsl.inetia.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1363979653 23897 178.36.41.73 (22 Mar 2013 19:14:13 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Fri, 22 Mar 2013 19:14:13 +0000 (UTC) User-Agent: slrn/pre1.0.0-18 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit