🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #72608

Re: wielokrotne make ze zmianą definicji

#72608
From: Marcin Konarski
Date: Fri, 22 Mar 2013 19:14
46 lines
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-mail
References: <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