Nowe posty

Autor Wątek: make clean - make distclean - ?  (Przeczytany 5016 razy)

TomBoy

  • Gość
make clean - make distclean - ?
« dnia: 2007-02-18, 16:17:25 »
witam

Czym się różnią w funkcjonowaniu obie komendy ?

make clean od make distclean    ?

xavery

  • Gość
make clean - make distclean - ?
« Odpowiedź #1 dnia: 2007-02-18, 18:51:50 »
> Czym się różnią w funkcjonowaniu obie komendy ?
 >
 > make clean od make distclean    ?

To zależy od ich definicji w pliku makefile:)
Zwyczajowo jednak make clean czyści pozostałości po kompilacji a make distclean usuwa także wszelkie dane konfiguracyjne

TomBoy

  • Gość
make clean - make distclean - ?
« Odpowiedź #2 dnia: 2007-02-18, 20:27:32 »
> To zależy od ich definicji w pliku makefile:)
 > Zwyczajowo jednak make clean czyści pozostałości po kompilacji a make distclean usuwa także
 > wszelkie dane konfiguracyjne

make distclean

"rm -f *.o *.a *.so *.ln *.so #*# *~ *% .#* *.bak *.orig *.rej *.flc core     activscp.h amstream.h amvideo.h austream.h comcat.h control.h ddstream.h dispex.h docobj.h downloadmgr.h exdisp.h hlink.h htiframe.h iads.h indexsrv.h mediaobj.h mimeinfo.h mlang.h mmstream.h mshtmhst.h mshtml.h msxml.h msxml2.h oaidl.h objidl.h objsafe.h ocidl.h ocmm.h oledb.h oleidl.h optary.h propidl.h pstore.h richole.h sensevts.h servprov.h shldisp.h shobjidl.h shtypes.h strmif.h tom.h unknwn.h urlhist.h urlmon.h wine/itss.h wtypes.h xmldom.h xmldso.h     stdole2.tlb"

make clean

"rm -f *.o *.a *.so *.ln *.so #*# *~ *% .#* *.bak *.orig *.rej *.flc core    
rm -f libws2_32.def"

To tylko fragmenty, reszta jest podobna ... czy one nie usuwaja tego samego ?, a moze ktores z nich nie usuwa tego co wczesniejsze, bo usuwa wszystko co zostalo napoczete podczas kompilacji, a drugie jedynie czesc..., takze.. ktore lepiej uzywac ?.. hmm

Lorenzo

  • Gość
make clean - make distclean - ?
« Odpowiedź #3 dnia: 2007-02-18, 21:43:19 »
make distclean wywala dodatkowo nagłówki (oczywiście w tym przypadku). Zresztą szanujący się (użytkowników) programista robi sekcję help z opisem dostępnych sekcji.

TomBoy

  • Gość
make clean - make distclean - ?
« Odpowiedź #4 dnia: 2007-02-19, 12:18:40 »
2007-02-18 21:43:19 Lorenzo napisał:

> make distclean wywala dodatkowo nagłówki (oczywiście w tym przypadku). Zresztą szanujący się
 > (użytkowników) programista robi sekcję help z opisem dostępnych sekcji.


Czyli tak jak wczesniej gdybałem, że jeden robi to samo co wczesniejszy i jeszcze wiecej.. i o to mi wlasnie chodzilo.

Mowisz ze w tym przypadku dodatkowo usuwa naglowki, czyli jezeli jest sposobnosc "make distclean" usuwa nieco wiecej nizeli to ma miejsce z "make clean"



 dziekuje za odpowiedz :)

xis

  • Gość
make clean - make distclean - ?
« Odpowiedź #5 dnia: 2007-02-19, 14:36:56 »
Dodam, że 'make distclean' jest wymagane przed dalszą (re)dystrybucją pakietu (stąd nazwa), ponieważ usuwa wszystko, co mogłoby przeszkodzić w instalacji na np. innej architekturze.
Generalnie 'make distclean' uczyni katalog ze źródłem czystym jak zaraz po rozpakowaniu (łącznie z usunięciem efektów działania skryptu 'configure', czego 'make clean' nie robi).

TomBoy

  • Gość
make clean - make distclean - ?
« Odpowiedź #6 dnia: 2007-02-19, 15:07:09 »
2007-02-19 14:36:56 xis napisał:

> Dodam, że 'make distclean' jest wymagane przed dalszą (re)dystrybucją pakietu (stąd nazwa),
 > ponieważ usuwa wszystko, co mogłoby przeszkodzić w instalacji na np. innej architekturze.
 > Generalnie 'make distclean' uczyni katalog ze źródłem czystym jak zaraz po rozpakowaniu
 > (łącznie z usunięciem efektów działania skryptu 'configure', czego 'make clean' nie robi).
 >


I tu sie zgodze :).. maly tescik


make distclean | wc -l  
1268

 make clean | wc -l
1265


po make distclean juz nie można zrobic ;make clean, jednak po make clean można zrobic jeszcze make distclean

po make clean sa pliki :
 rm config.
config.log     config.status

po "make distclean" juz ich nie ma..

Innymi slowy.. tak jak juz wspomniales, "make distclean" wystarczy :)

xavery

  • Gość
make clean - make distclean - ?
« Odpowiedź #7 dnia: 2007-02-20, 15:08:00 »
> Innymi slowy.. tak jak juz wspomniales, "make distclean" wystarczy :)

Tak, wystarczy. Wystarczy do tego, żeby ponownie przedzierać się przez konfigurację:) Nie zawsze warto robić distclean a czasem nie warto robić clean. To zależy. Jeśli robisz distclean to równie dobrze możesz usunąć cały katalog ze źródłami.

TomBoy

  • Gość
make clean - make distclean - ?
« Odpowiedź #8 dnia: 2007-02-20, 15:39:53 »
> Tak, wystarczy. Wystarczy do tego, żeby ponownie przedzierać się przez konfigurację:) Nie
 > zawsze warto robić distclean a czasem nie warto robić clean. To zależy. Jeśli robisz distclean
 > to równie dobrze możesz usunąć cały katalog ze źródłami.


Ale wtedy musialbym znowu rozpakowywac zrodla i przechodzic do katalogu ze zrodlami :)...

Mamy konflikt z flagami, przy czym musimy usunac kompilacje i tym samym usunac plik configuracyjny z ktorego bierze dane do budowy zrodel. Co bedzie krotsze ? ( nie mozmey brac make clean bo on nie usuwa pliku configuracyjnego )

Bedac w katalogu ze zrodlami :

cd ..
rm -rf katalog
tar xvfj spakowany-katalog.tar.bz2
cd katalog
./configure --opcje


Czy tez

make distclean && ./configure --opcje

Co jest lepsze ? :)..


xavery

  • Gość
make clean - make distclean - ?
« Odpowiedź #9 dnia: 2007-02-20, 17:20:58 »
> Ale wtedy musialbym znowu rozpakowywac zrodla i przechodzic do katalogu ze zrodlami :)...
 >
 > Mamy konflikt z flagami, przy czym musimy usunac kompilacje i tym samym usunac plik
 > configuracyjny z ktorego bierze dane do budowy zrodel.

Masz absolutną rację - o to właśnie mi chodziło. Nie można bezkrytycznie powiedzieć, że należy wykonywać distclean zamiast clean bo wszystko zależy od kontekstu w jakim są te komendy używane. Jeśli chcemy zacząć kompilację od sameo początku to wtedy make distclean. Ale jeśli chcemy zachować konfigurację np do dalszej kompilacji (czy chociażby dla make uninstall) no to wtedy trzeba użyć make clean.
I na tej konstatacji zakończmy ten wątek:)

TomBoy

  • Gość
make clean - make distclean - ?
« Odpowiedź #10 dnia: 2007-02-20, 17:54:04 »
> Ale jeśli chcemy
 > zachować konfigurację np do dalszej kompilacji (czy chociażby dla make uninstall) no to wtedy
 > trzeba użyć make clean.
 > I na tej konstatacji zakończmy ten wątek:)


ooooooo  nie wiedzialem.., zawsze myslalem ze make clean rowniez usuwa mozliwosc zrobienia make uninstall. Teraz zoabczylem i jedynie make distclean uniemozliwia  make uninstall

Dzieki za informacje :]