🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #1274

Re: Makefile

#1274
From: Lopez
Date: Sat, 07 Jul 2007 18:08
56 lines
3596 bytes
Remek napisał(a):
> Użytkownik "Wiktor S" napisał:
> 
> 
> Dzięki za wszystkie wyjaśnienia. Sporo mi pomogły. Dużym problemem po
> zetknięciu się z make.exe i Makefile było to, że komendy wykonywane są "od
> tyłu", odwrotnie niż w .bat. Wracając do tematu:

To nie jest tak, make przed wykonaniem celu sprawdza czy zaleznosci
sa aktualne, jezeli nie sa one aktualne, to sa one najpierw wykonywane.
Kasujac pliki .obj powodujesz, ze wszelkie zaleznosci staja sie
nieaktualne.

>> wywal tego swojego bata, po to piszesz makefile, żeby nie mieć żadnych
> .bat
> 
> Tego nie rozumiem. Tzn. jak? Jeśli uruchomię z katalogu make. exe, nie usuwa
> pliku .obj. Musiał bym go uruchomić drugi raz z linii poleceń z parametrem
> make clean. Nie łatwiej z .bat?

Ale po co mialbys kasowac pliki .obj? zasada dzialania make jest taka
ze jezeli zmodyfikujesz tylko jeden plik w projekcie, to tylko ten
jeden bedzie kompilowany. Make bedzie tego pilnowal, ale musisz
mu pozostawic pliki .obj.
Cel "clean" robi sie po to aby, posprzatac zrodla przed redystrybucja,
lub calkowita przebudowa projektu.


> ---------------------
> ..............
> clean:
>         del $(NAME).obj
> ----------------------
> 
> I wszystko działa pięknie. Tworzony jest .res, .exe, .obj i następnie .obj
> jest usuwany, tak jak zamierzałem.

tu powinienes kasowac tez exe, res i inne smieci robocze.

W malych projektach nie ma to takiego znaczenia, ale przy wiekszych
(kilkadziesiat/set modulow) nie bedziesz przebudowywal calego projektu,
tylko dlatego, ze wprowadziles jedna mala zmiane tylko w jednym z nich.

Zasada pracy z make jest prosta. Jak juz masz utworzony plik Makefile
to po kazdej zmianie w zrodlach piszesz "make" i masz przekompilowany
projekt i gotowy do uruchomienia, jak sie uprzesz to sobie dodasz
regule, ktora Ci nawet uruchomi program. Gdy cos dziala nie tak,
to wprowadzasz ponownie zmiany w zrodlach i piszesz "make",
i znowu masz gotowy program, zauwaz ze, w tym czasie kompilowany
bedzie ten plik, w ktorym wprowadzales zmiany.
Gdy juz skonczysz i chcesz komus wyslac zrodla, to piszesz
"make clean" i masz posprzatane.

-- 
Pozdrawiam
Lopez
Technical Details
Message-ID: <f6okrl$ioa$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <f6dnog$3n8$1@inews.gazeta.pl> <f6e6fl$bg2$1@inews.gazeta.pl> <f6gvc5$i4f$1@inews.gazeta.pl> <f6h0jm$ob2$1@inews.gazeta.pl> <f6h4et$c16$1@inews.gazeta.pl> <f6j567$mlq$1@news.onet.pl> <f6j8lo$cab$1@inews.gazeta.pl> <f6jcrh$2vv$1@inews.gazeta.pl> <f6k8re$g7f$1@inews.gazeta.pl> <f6kv1j$ppq$1@inews.gazeta.pl> <f6l2cu$cbt$1@inews.gazeta.pl> <f6l35m$epd$1@inews.gazeta.pl> <f6l4b7$lda$1@inews.gazeta.pl> <f6l6gh$q7l$1@news.onet.pl> <f6m6an$pfp$1@inews.gazeta.pl> <f6m6ui$r3r$1@inews.gazeta.pl> <f6ma78$c23$1@inews.gazeta.pl> <f6mfei$op7$1@news.onet.pl> <f6mkne$jac$1@inews.gazeta.pl> <f6nfvo$gcl$1@news.onet.pl> <f6oh9b$53b$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Lopez <rtlopezREMOVE@gazeta.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: Makefile
Date: Sat, 07 Jul 2007 20:08:49 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 56
Message-ID: <f6okrl$ioa$1@inews.gazeta.pl>
References: <f6dnog$3n8$1@inews.gazeta.pl> <f6e6fl$bg2$1@inews.gazeta.pl> <f6gvc5$i4f$1@inews.gazeta.pl> <f6h0jm$ob2$1@inews.gazeta.pl> <f6h4et$c16$1@inews.gazeta.pl> <f6j567$mlq$1@news.onet.pl> <f6j8lo$cab$1@inews.gazeta.pl> <f6jcrh$2vv$1@inews.gazeta.pl> <f6k8re$g7f$1@inews.gazeta.pl> <f6kv1j$ppq$1@inews.gazeta.pl> <f6l2cu$cbt$1@inews.gazeta.pl> <f6l35m$epd$1@inews.gazeta.pl> <f6l4b7$lda$1@inews.gazeta.pl> <f6l6gh$q7l$1@news.onet.pl> <f6m6an$pfp$1@inews.gazeta.pl> <f6m6ui$r3r$1@inews.gazeta.pl> <f6ma78$c23$1@inews.gazeta.pl> <f6mfei$op7$1@news.onet.pl> <f6mkne$jac$1@inews.gazeta.pl> <f6nfvo$gcl$1@news.onet.pl> <f6oh9b$53b$1@inews.gazeta.pl>
NNTP-Posting-Host: host-ip225-229.korbank.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1183831733 19210 81.219.225.229 (7 Jul 2007 18:08:53 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Sat, 7 Jul 2007 18:08:53 +0000 (UTC)
X-User: rtlopez
In-Reply-To: <f6oh9b$53b$1@inews.gazeta.pl>
User-Agent: IceDove 1.5.0.10 (X11/20070329)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit