Thread View: pl.comp.lang.asm
49 messages
49 total messages
Started by Remek
Tue, 03 Jul 2007 14:53
Makefile
Author: Remek
Date: Tue, 03 Jul 2007 14:53
Date: Tue, 03 Jul 2007 14:53
47 lines
1940 bytes
1940 bytes
Witam Mam nastepujący plik wsadowy: --------------------------- NAME=HookDLL $(NAME).dll: $(NAME).obj C:\masm32\bin\Link /SECTION:.bss,S /DLL /DEF:$(NAME).def /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib $(NAME).obj $(NAME).obj: $(NAME).asm C:\masm32\bin\ml /c /coff /Cp $(NAME).asm ----------------------------- Po jego uruchomieniu otrzymuję kolejno komunikaty: $(NAME).dll: $(NAME).obj Złe polecenie, lub nazwa pliku C:\masm32\bin\Link /SECTION:.bss,S /DLL /DEF:$(NAME).def /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib $(NAME).obj $(NAME).obj: $(NAME).asm LINK : fatal error LNK1181: cannot open input file "$(NAME).obj" C:\masm32\bin\ml /c /coff /Cp $(NAME).asm MASM : fatal error A1000: cannot open file : $(NAME).asm Wszystkie pliki są oczywiście w katalogu i ścieżka do Masm'a jest właściwa. Natomiast taki plik działa: -------------------- @echo off set name=HOOKDLL C:\masm32\bin\ml /c /coff %name%.asm C:\masm32\bin\Link /SUBSYSTEM:WINDOWS /DLL /DEF:%name%.def %name%.obj del %name%.obj --------------------- Co jest grane? -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Lopez
Date: Tue, 03 Jul 2007 19:02
Date: Tue, 03 Jul 2007 19:02
24 lines
1285 bytes
1285 bytes
Remek napisał(a): > Witam > > Mam nastepujący plik wsadowy: > > --------------------------- > NAME=HookDLL > $(NAME).dll: $(NAME).obj > C:\masm32\bin\Link /SECTION:.bss,S /DLL /DEF:$(NAME).def > /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib $(NAME).obj > $(NAME).obj: $(NAME).asm > C:\masm32\bin\ml /c /coff /Cp $(NAME).asm > ----------------------------- przed poleceniem powinny byc dwa tabulatory. NAME=HookDLL $(NAME).dll: $(NAME).obj C:\masm32\bin\Link... -- Pozdrawiam Lopez
Re: Makefile
Author: Remek
Date: Wed, 04 Jul 2007 20:20
Date: Wed, 04 Jul 2007 20:20
15 lines
1286 bytes
1286 bytes
Użytkownik "Lopez" napisał: > przed poleceniem powinny byc dwa tabulatory. Próbowałem na rózne sposoby i nie działa. Nie rozumiem konstrukcji tego batch'a. Jeśli by nie sprawiło Ci to trudności, proszę prześlij mi poprawiony plik (w postaci załacznika, bo obawiam się, że mój OE połamie wiersze) na adres: remeka(wiadomo_co)tlen(kropka)pl -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Lopez
Date: Wed, 04 Jul 2007 20:40
Date: Wed, 04 Jul 2007 20:40
30 lines
1752 bytes
1752 bytes
Remek napisał(a): > Użytkownik "Lopez" napisał: > >> przed poleceniem powinny byc dwa tabulatory. > > Próbowałem na rózne sposoby i nie działa. Nie rozumiem konstrukcji tego > batch'a. Jeśli by nie sprawiło Ci to trudności, proszę prześlij mi > poprawiony plik (w postaci załacznika, bo obawiam się, że mój OE połamie > wiersze) na adres: Uruchamia się tak, w katalogu gdzie jest plik makefile make -f makefile HookDLL.dll lub krócej make HookDLL.dll a gdybs jeszcze dodal cel all: $(NAME).dll to po prostu make oczywiście pod warunkiem, że make.exe bedzie w którymś katalogu, wskazywanym przez PATH Troche manuala, znalezione na szybko i po polsku http://home.agh.edu.pl/~gjn/dydaktyka/UGLX/node10.html#SECTION000101050000000000000 a tu jest pełny manual http://www.gnu.org/software/make/manual/make.html Dasz se rade, wierzymy w Ciebie. -- Pozdrawiam Lopez
Re: Makefile
Author: Remek
Date: Wed, 04 Jul 2007 21:48
Date: Wed, 04 Jul 2007 21:48
35 lines
1793 bytes
1793 bytes
> Dasz se rade, wierzymy w Ciebie.
Dzięki za podpowiedź, linki i podbudowę moralną. Już zaczęło mi się
rozjaśniać i znów się "zatarło". Zrobiłem tak:
Plik wsadowy:
------------------
make -f makefile mouse > error.txt
------------------
Odpaliłem i dostałem:
MAKE Version 4.0 Copyright (c) 1987, 1996 Borland International
Error makefile 7: Command syntax error
Error makefile 8: Command syntax error
*** 2 errors during make ***
A makefile ma tylko 7 linijek. I znów jestem głupi.
---------------------
NAME=mouse
$(NAME).exe: $(NAME).obj $(NAME).res
Link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib $(NAME).obj
$(NAME).res
$(NAME).obj: $(NAME).asm
ml /c /coff /Cp $(NAME).asm
$(NAME).res:$(NAME).rc
rc $(NAME).rc
-----------------------
--
Pozdrawiam Remek
K7S5A, Duron 1,1
Windows98 SE, IE6, OE6
Re: Makefile
Author: Lopez
Date: Wed, 04 Jul 2007 21:56
Date: Wed, 04 Jul 2007 21:56
39 lines
1912 bytes
1912 bytes
Remek napisał(a): >> Dasz se rade, wierzymy w Ciebie. > > Dzięki za podpowiedź, linki i podbudowę moralną. Już zaczęło mi się > rozjaśniać i znów się "zatarło". Zrobiłem tak: > > Plik wsadowy: > > ------------------ > make -f makefile mouse > error.txt > ------------------ > > Odpaliłem i dostałem: > > MAKE Version 4.0 Copyright (c) 1987, 1996 Borland International > Error makefile 7: Command syntax error > Error makefile 8: Command syntax error > *** 2 errors during make *** > > A makefile ma tylko 7 linijek. I znów jestem głupi. > > --------------------- > NAME=mouse > $(NAME).exe: $(NAME).obj $(NAME).res > Link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib $(NAME).obj > $(NAME).res > $(NAME).obj: $(NAME).asm > ml /c /coff /Cp $(NAME).asm > $(NAME).res:$(NAME).rc > rc $(NAME).rc > ----------------------- > Ja widze osiem, chyba ze liczysz od zera :P w ostatniej najpewniej brakuje Ci tabulatorów. -- Pozdrawiam Lopez
Re: Makefile
Author: Lopez
Date: Wed, 04 Jul 2007 22:11
Date: Wed, 04 Jul 2007 22:11
52 lines
2419 bytes
2419 bytes
Lopez napisał(a): > Remek napisał(a): >>> Dasz se rade, wierzymy w Ciebie. >> Dzięki za podpowiedź, linki i podbudowę moralną. Już zaczęło mi się >> rozjaśniać i znów się "zatarło". Zrobiłem tak: >> >> Plik wsadowy: >> >> ------------------ >> make -f makefile mouse > error.txt >> ------------------ >> >> Odpaliłem i dostałem: >> >> MAKE Version 4.0 Copyright (c) 1987, 1996 Borland International >> Error makefile 7: Command syntax error >> Error makefile 8: Command syntax error >> *** 2 errors during make *** >> >> A makefile ma tylko 7 linijek. I znów jestem głupi. >> >> --------------------- >> NAME=mouse >> $(NAME).exe: $(NAME).obj $(NAME).res >> Link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib $(NAME).obj >> $(NAME).res >> $(NAME).obj: $(NAME).asm >> ml /c /coff /Cp $(NAME).asm >> $(NAME).res:$(NAME).rc >> rc $(NAME).rc >> ----------------------- >> > > Ja widze osiem, chyba ze liczysz od zera :P Ops, nie zauwazylem, ze jeden wiersz zostal zawiniety Blad w wieszu ósmym (nieistniejącym), może być jedynie konsekwencja poprzedniego. > w ostatniej najpewniej brakuje Ci tabulatorów. ale to sie chyba zgadza? nie używam narzędzi Borlanda, wiec nie mam jak sprawdzić, i odpowiadam na wyczucie. Użyj jakiegoś edytora który koloruje składnie plikow makefile. Nie mam pewnosci, bo dawno go nie używałem, ale chyba http://www.pnotepad.org/ to potrafi. -- Pozdrawiam Lopez
Re: Makefile
Author: Remek
Date: Thu, 05 Jul 2007 15:42
Date: Thu, 05 Jul 2007 15:42
37 lines
2261 bytes
2261 bytes
Użytkownik "Lopez" napisał: > make -f makefile mouse > error.txt Po co to mouse? Może być tak: > make -f makefile > error.txt Ale efek jest ten sam. > Ops, nie zauwazylem, ze jeden wiersz zostal zawiniety > Blad w wieszu ósmym (nieistniejącym), > może być jedynie konsekwencja poprzedniego. Też nie zauważyłem wysyłając, że OE zawinął wiersz. Mogło to wprowadzić w błąd. Dlatego powinno się wysyłac takie rzeczy w załącznikach, ale nie wolno!!! Wrzucę pliki na swoją stronę (początki) i podam link. > nie używam narzędzi Borlanda, wiec nie mam jak sprawdzić, Może problem w tym, że make.exe jest niewłaściwy i dlatego nie podoba mu się składnia? W pakiecie Masm32 nie mam tego programiku. Znalazłem na dysku w komplecie do Pascala. Używasz w Masm 32 jakiegoś make.exe? Znalazłem nmake15.exe, ale też nie działa. Zdaje się, że jest on do rodziny WindowsNT. > Użyj jakiegoś edytora > który koloruje składnie plikow makefile. > Nie mam pewnosci, bo dawno go nie używałem, ale chyba > http://www.pnotepad.org/ to potrafi. Mam go już. Koloruje składnię, ale nie potrafię wyciągnąć wniosków. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Wiktor S.
Date: Thu, 05 Jul 2007 16:11
Date: Thu, 05 Jul 2007 16:11
7 lines
1078 bytes
1078 bytes
> $(NAME).res:$(NAME).rc tu po dwókropku nie ma spacji, a gdzie indziej jest. może to to? -- Azarien
Re: Makefile
Author: Wiktor S.
Date: Thu, 05 Jul 2007 16:11
Date: Thu, 05 Jul 2007 16:11
3 lines
1026 bytes
1026 bytes
> tu po dwókropku dwukropku
Re: Makefile
Author: Remek
Date: Thu, 05 Jul 2007 17:12
Date: Thu, 05 Jul 2007 17:12
20 lines
1451 bytes
1451 bytes
Użytkownik "Wiktor S." napisał: > > $(NAME).res:$(NAME).rc > tu po dwókropku nie ma spacji, a gdzie indziej jest. może to to? > dwukropku :) Zdarza sie nistety jak szybko piszemy, ale strzał w dziesiątkę. Teraz nie wyświetla komunikatów o błędach, ale na tym koniec, exe'ca "ani widu, ani słychu". Wszystko jest tu: http://remek62.republika.pl/Tymcz/tymcz.html "mouse - pobierz" -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Remek
Date: Thu, 05 Jul 2007 17:14
Date: Thu, 05 Jul 2007 17:14
8 lines
1154 bytes
1154 bytes
> :) Zdarza sie nistety jak szybko piszemy No właśnie. Zdarza się niestety... -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Remek
Date: Thu, 05 Jul 2007 18:23
Date: Thu, 05 Jul 2007 18:23
28 lines
1915 bytes
1915 bytes
Użytkownik "Remek" napisał:
> nie wyświetla komunikatów o błędach, ale na tym koniec, exe'ca "ani widu,
> ani słychu".
Już znalazłem. Tym razem błąd był prosty i oczywisty. Nie podałem w makefile
pełnej ścieżki. Powinno być tak jak poniżej i już jest wszystko dobrze. A
pierwotną przyczyną był brak spacji. Później to już się zakręciłem. Dziękuję
kolegom za pomoc.
------------------------
NAME=mouse
$(NAME).exe: $(NAME).obj $(NAME).res
C:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib
$(NAME).obj $(NAME).res
$(NAME).obj: $(NAME).asm
C:\masm32\bin\ml /c /coff /Cp $(NAME).asm
$(NAME).res: $(NAME).rc
rc $(NAME).rc
-------------------------
PS. Za czas jakiś usunę ze swojej strony mouse.zip. Na razie zostawiam, bo
może ktoś będzie chciał obejrzeć.
--
Pozdrawiam Remek
K7S5A, Duron 1,1
Windows98 SE, IE6, OE6
Re: Makefile
Author: Remek
Date: Fri, 06 Jul 2007 02:21
Date: Fri, 06 Jul 2007 02:21
7 lines
1224 bytes
1224 bytes
Jeszcze jakby mi ktoś powiedział jak do makefile wpisac komendę usuwającą pliki pośrednie, byłbym już very happy. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Bogdan (bogdro)
Date: Fri, 06 Jul 2007 08:38
Date: Fri, 06 Jul 2007 08:38
25 lines
1687 bytes
1687 bytes
Remek pisze: > Jeszcze jakby mi ktoś powiedział jak do makefile wpisac komendę usuwającą > pliki pośrednie, byłbym już very happy. A co to za problem? Składnię masz taką: cel: zależności komenda1 komenda2 komenda3 ... np. $(NAME).dll: $(NAME).obj C:\masm32\bin\Link ... del C:\masm32\projekt\plik.obj del c:\masm32\projekt\plik2 ... -- Pozdrawiam/Regards - Bogdan (Linux & FreeDOS) Kurs asemblera x86 (DOS & Linux): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Re: Makefile
Author: Lopez
Date: Fri, 06 Jul 2007 08:50
Date: Fri, 06 Jul 2007 08:50
35 lines
1804 bytes
1804 bytes
Bogdan (bogdro) napisał(a): > Remek pisze: >> Jeszcze jakby mi ktoś powiedział jak do makefile wpisac komendę usuwającą >> pliki pośrednie, byłbym już very happy. > > A co to za problem? Składnię masz taką: > > cel: zależności > komenda1 > komenda2 > komenda3 > ... > > np. > > $(NAME).dll: $(NAME).obj > C:\masm32\bin\Link ... > del C:\masm32\projekt\plik.obj > del c:\masm32\projekt\plik2 > ... > Ale to troche mija sie z celem, bo jak usunie od razu wszystkie pliki posrednie to przy nastepnej okazji bedzie musial budowac caly projekt od nowa. Przy duzych projektach moze to byc znaczaca roznica czasu. Dlatego definiuje sie cele "clean" oraz "install" clean: del *.obj -- Pozdrawiam Lopez
Re: Makefile
Author: Remek
Date: Fri, 06 Jul 2007 09:28
Date: Fri, 06 Jul 2007 09:28
63 lines
2827 bytes
2827 bytes
Użytkownik "Bogdan (bogdro)" napisał:
> A co to za problem? Składnię masz taką:
> cel: zależności
> komenda1
> komenda2
> komenda3
> ...
> np.
>
> $(NAME).dll: $(NAME).obj
> C:\masm32\bin\Link ...
> del C:\masm32\projekt\plik.obj
> del c:\masm32\projekt\plik2
Użytkownik "Lopez" napisał:
> Ale to troche mija sie z celem,
> bo jak usunie od razu wszystkie pliki posrednie
> to przy nastepnej okazji bedzie musial budowac caly
> projekt od nowa. Przy duzych projektach moze to byc
> znaczaca roznica czasu. Dlatego definiuje sie cele
> "clean" oraz "install"
>
> clean:
> del *.obj
Przeceniacie mnie koledzy. Wydawało mi się, że coś z tego nie rozumiem, ale
nie działa. Czytałem w sieci materiały o składni Makefile i nie daję rady.
Jeśli można, to proszę o konkret (przykład). Mam takie coś:
Makefile:
------------------------
NAME=dziel
$(NAME).exe: $(NAME).obj $(NAME).res
C:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib
$(NAME).obj $(NAME).res
$(NAME).obj: $(NAME).asm
C:\masm32\bin\ml /c /coff /Cp $(NAME).asm
$(NAME).res: $(NAME).rc
C:\masm32\bin\rc $(NAME).rc
$(NAME).dll: $(NAME).obj
--------------------------
do tego batch:
---------------------------
D:\Asembler\Dziel\make -f makefile
---------------------------
"Dziel" to katalog, w którym mam wszystkie pliki źródłowe i make.exe.
Wszystkie pliki wynikowe: .res, .obj, .exe tworzą się w tym katalogu. Masm32
jest na C:. We właściwych podkatalogach Masm'a są pliki nagłówkowe .inc i
.lib. Co wpisać do Makefile, aby w tej konfiguracji ścieżek usunąć plik
.obj.
--
Pozdrawiam Remek
K7S5A, Duron 1,1
Windows98 SE, IE6, OE6
Re: Makefile
Author: Lopez
Date: Fri, 06 Jul 2007 09:48
Date: Fri, 06 Jul 2007 09:48
66 lines
2982 bytes
2982 bytes
Remek napisał(a): > Użytkownik "Bogdan (bogdro)" napisał: > >> A co to za problem? Składnię masz taką: > >> cel: zależności >> komenda1 >> komenda2 >> komenda3 >> ... > >> np. >> >> $(NAME).dll: $(NAME).obj >> C:\masm32\bin\Link ... >> del C:\masm32\projekt\plik.obj >> del c:\masm32\projekt\plik2 > > Użytkownik "Lopez" napisał: > >> Ale to troche mija sie z celem, >> bo jak usunie od razu wszystkie pliki posrednie >> to przy nastepnej okazji bedzie musial budowac caly >> projekt od nowa. Przy duzych projektach moze to byc >> znaczaca roznica czasu. Dlatego definiuje sie cele >> "clean" oraz "install" >> >> clean: >> del *.obj > > Przeceniacie mnie koledzy. Wydawało mi się, że coś z tego nie rozumiem, ale > nie działa. Czytałem w sieci materiały o składni Makefile i nie daję rady. > Jeśli można, to proszę o konkret (przykład). Mam takie coś: > > Makefile: > > ------------------------ > NAME=dziel > > $(NAME).exe: $(NAME).obj $(NAME).res > C:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib > $(NAME).obj $(NAME).res > $(NAME).obj: $(NAME).asm > C:\masm32\bin\ml /c /coff /Cp $(NAME).asm > $(NAME).res: $(NAME).rc > C:\masm32\bin\rc $(NAME).rc > $(NAME).dll: $(NAME).obj > -------------------------- > do tego batch: > > --------------------------- > D:\Asembler\Dziel\make -f makefile > --------------------------- > > "Dziel" to katalog, w którym mam wszystkie pliki źródłowe i make.exe. > Wszystkie pliki wynikowe: .res, .obj, .exe tworzą się w tym katalogu. Masm32 > jest na C:. We właściwych podkatalogach Masm'a są pliki nagłówkowe .inc i > .lib. Co wpisać do Makefile, aby w tej konfiguracji ścieżek usunąć plik > .obj. no przeciez Ci podalem wyzej. Piszesz tylko "make clean" i wszystkie pliki .obj beda skasowane. -- Pozdrawiam Lopez
Re: Makefile
Author: Remek
Date: Fri, 06 Jul 2007 10:01
Date: Fri, 06 Jul 2007 10:01
12 lines
1458 bytes
1458 bytes
Użytkownik "Lopez" napisał: > no przeciez Ci podalem wyzej. Piszesz tylko "make clean" > i wszystkie pliki .obj beda skasowane. Dziekuję za szczegółowe wyjaśnienie. Jestem dokładnie w tym samym miejscu co wcześniej. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Wiktor S.
Date: Fri, 06 Jul 2007 10:46
Date: Fri, 06 Jul 2007 10:46
20 lines
1742 bytes
1742 bytes
>> no przeciez Ci podalem wyzej. Piszesz tylko "make clean"
>> i wszystkie pliki .obj beda skasowane.
>
> Dziekuję za szczegółowe wyjaśnienie. Jestem dokładnie w tym samym
> miejscu co wcześniej.
po pierwsze, nie musisz robić make -f makefile, bo "makefile" to domyślna
nazwa pliku.
po drugie, definiujesz
clean:
del *.obj
i później gdy wykonasz "make clean" to ci zrobi "del *.obj". z przyczyn
opisanych nie powinieneś usuwać wszystkich .obj-ów przy każdej kompilacji.
--
Azarien
Re: Makefile
Author: Wiktor S.
Date: Fri, 06 Jul 2007 10:46
Date: Fri, 06 Jul 2007 10:46
8 lines
1371 bytes
1371 bytes
> po pierwsze, nie musisz robić make -f makefile, bo "makefile" to > domyślna nazwa pliku. starczy samo make -- Azarien
Re: Makefile
Author: Remek
Date: Fri, 06 Jul 2007 19:50
Date: Fri, 06 Jul 2007 19:50
26 lines
2191 bytes
2191 bytes
Użytkownik "Wiktor S." napisał: > po pierwsze, nie musisz robić make -f makefile, bo "makefile" to domyślna > nazwa pliku. > po drugie, definiujesz > clean: > del *.obj Nie mógłbys podać konkretnego rozwiązania? Choćby przez uzupełnienie moich plików *.bat i Makefile? Ja się "zatarłem". Czytałem w sieci o składni Makefile. Piszą tam dokładnie to samo co Ty i Bogdan, tyle że ja niewiele z tego rozumiem. Muszę przeskoczyć jakąś barierę (przy Waszej pomocy, jeśli to możliwe). > i później gdy wykonasz "make clean" to ci zrobi "del *.obj". z przyczyn > opisanych nie powinieneś usuwać wszystkich .obj-ów przy każdej kompilacji. Dopytuję, bo chciałbym się czegoś nauczyć. Do tego co teraz robię praktycznie wystarca mi zwykły plik wsadowy bez make, ale przy większych, wieloskładnikowych projektach ta wiedza już by się przydała. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Lopez
Date: Fri, 06 Jul 2007 19:59
Date: Fri, 06 Jul 2007 19:59
31 lines
2333 bytes
2333 bytes
Remek napisał(a): > Użytkownik "Wiktor S." napisał: > >> po pierwsze, nie musisz robić make -f makefile, bo "makefile" to domyślna >> nazwa pliku. >> po drugie, definiujesz > >> clean: >> del *.obj > > Nie mógłbys podać konkretnego rozwiązania? Choćby przez uzupełnienie moich > plików *.bat i Makefile? Ja się "zatarłem". Czytałem w sieci o składni > Makefile. Piszą tam dokładnie to samo co Ty i Bogdan, tyle że ja niewiele z > tego rozumiem. Muszę przeskoczyć jakąś barierę (przy Waszej pomocy, jeśli to > możliwe). Przeciez dostales rozwiazanie. >> i później gdy wykonasz "make clean" to ci zrobi "del *.obj". z przyczyn >> opisanych nie powinieneś usuwać wszystkich .obj-ów przy każdej kompilacji. > > Dopytuję, bo chciałbym się czegoś nauczyć. Do tego co teraz robię > praktycznie wystarca mi zwykły plik wsadowy bez make, ale przy większych, > wieloskładnikowych projektach ta wiedza już by się przydała. Probuj az sie nauczysz. Prawda jest taka, ze uzywanie plikow wsadowych w porownaniu do make to czysta mordega. -- Pozdrawiam Lopez
Re: Makefile
Author: Remek
Date: Fri, 06 Jul 2007 20:57
Date: Fri, 06 Jul 2007 20:57
23 lines
1893 bytes
1893 bytes
Użytkownik "Lopez" napisał: > Przeciez dostales rozwiazanie. Nie dostałem rozwiązania. Takich ogólnikowych rad nam w sieci na pęczki i sam mógłbym ich udzielać. Tyle, że niewiele z tego wynika. > Probuj az sie nauczysz. To wiem bez Ciebie. Mówi się trudno. > Prawda jest taka, ze uzywanie plikow wsadowych > w porownaniu do make to czysta mordega. Pod warunkiem, że ma się gotowy Makefile. Bo pisanie jednego i drugiego samodzielnie, to dokładnie taka sama praca. W każdym razie dziekuję za dobre chęci. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Wiktor S.
Date: Fri, 06 Jul 2007 22:24
Date: Fri, 06 Jul 2007 22:24
24 lines
1872 bytes
1872 bytes
>> Przeciez dostales rozwiazanie.
>
> Nie dostałem rozwiązania. Takich ogólnikowych rad nam w sieci na
> pęczki i sam mógłbym ich udzielać. Tyle, że niewiele z tego wynika.
---------
NAME=mouse
$(NAME).exe: $(NAME).obj $(NAME).res
C:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib
$(NAME).obj $(NAME).res
$(NAME).obj: $(NAME).asm
C:\masm32\bin\ml /c /coff /Cp $(NAME).asm
$(NAME).res: $(NAME).rc
rc $(NAME).rc
clean:
del *.obj
---------
pasi? :-)
--
Azarien
Re: Makefile
Author: Wiktor S.
Date: Fri, 06 Jul 2007 22:28
Date: Fri, 06 Jul 2007 22:28
13 lines
1759 bytes
1759 bytes
>> Prawda jest taka, ze uzywanie plikow wsadowych >> w porownaniu do make to czysta mordega. > > Pod warunkiem, że ma się gotowy Makefile. Bo pisanie jednego i > drugiego samodzielnie, to dokładnie taka sama praca. nie, mejkfajle pisze się "z palca" na nowo przy każdym projekcie :-) no, można mieć takiego ulubionego "prawie gotowca", do niewielkiego przystosowania do konkretnego projektu. -- Azarien
Re: Makefile
Author: Wiktor S.
Date: Fri, 06 Jul 2007 22:38
Date: Fri, 06 Jul 2007 22:38
50 lines
2717 bytes
2717 bytes
> ---------
> NAME=mouse
> $(NAME).exe: $(NAME).obj $(NAME).res
> C:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib
> $(NAME).obj $(NAME).res
> $(NAME).obj: $(NAME).asm
> C:\masm32\bin\ml /c /coff /Cp $(NAME).asm
> $(NAME).res: $(NAME).rc
> rc $(NAME).rc
> clean:
> del *.obj
> ---------
>
> pasi? :-)
a w twoim przypadku niech to będzie powiedzmy:
clean:
del $(NAME).obj
del $(NAME).res
plus ewentualny inny del, jeśli po drodze powstają ci jakieś śmieci.
możesz zrobić jeszcze takie coś:
-------
pretty:
del $(NAME).obj
del $(NAME).res
clean: pretty
del $(NAME).exe
dist: clean $(NAME).exe
upx $(NAME).exe --best
$(MAKE) pretty
-------
wtedy: "make clean" usuwa wszystko (obj, res i exe), zostawiając czyste
źródła, "make pretty" usuwa śmieci (obj i res) ale zostawia exe, a "make
dist" służy do wykonania "czystej" kompilacji - usuwa wszystko (robi
"clean"), kompiluje od nowa, kompresuje exeka (programem upx, możesz to
wyrzucić, jeśli nie chcesz) i na koniec usuwa wszystko oprócz exe (robi
"pretty").
Twoja bariera do przeskoczenia polegała chyba na tym, że przykłady, które
dostajesz powinieneś po prostu dopisać do makefile'a :-)
--
Azarien
Re: Makefile
Author: Remek
Date: Fri, 06 Jul 2007 23:56
Date: Fri, 06 Jul 2007 23:56
60 lines
2907 bytes
2907 bytes
Użytkownik "Wiktor S" napisał: > --------------------- > NAME=mouse > $(NAME).exe: $(NAME).obj $(NAME).res > C:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib > $(NAME).obj $(NAME).res > $(NAME).obj: $(NAME).asm > C:\masm32\bin\ml /c /coff /Cp $(NAME).asm > $(NAME).res: $(NAME).rc > rc $(NAME).rc > clean: > del *.obj > -------------------- > pasi? :-) Nareszcie ktoś się nade mną zlitował. :) Ogromne dzięki. Tyle że... To wpisywałem i niestety nie działa. Nie komunikuje błędów, tworzy mouse.exe, mouse.res i mouse.obj. Pliku obiektowego nie usuwa. Make uruchamiam przy pomocy make.bat ----------------- make -f makefile ------------------ W sieci znalazłem takie coś: ----cytat------- ------------------- .......... clean: rm -f *.o ------------------- Zauważmy, że reguła clean ma pustą listę składników. Aby wywołać regułę clean używamy polecenia make clean. -- komiec cytatu----- Jak to rozumieć? Dopisałem w pliku uruchamiającym: ----------------- make -f makefile make clean ----------------- I nareszcie działa. Uff! Chociaż wcześniej nie działało, ale to już inna sprawa. Pewnie był jakiś problem ze składnią, spacjami tabulatorami i innymi podobnymi utrudnieniami. Jeszcze raz ogromne dzięki za pomoc. PS. Sorry, że pisałem po kolei nie ograniczając się do konkluzji, ale może przyda się to podobnemu do mnie nieszczęśnikowi. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Wiktor S.
Date: Sat, 07 Jul 2007 07:40
Date: Sat, 07 Jul 2007 07:40
50 lines
2952 bytes
2952 bytes
>> pasi? :-)
> Nareszcie ktoś się nade mną zlitował. :) Ogromne dzięki. Tyle że... To
> wpisywałem i niestety nie działa. Nie komunikuje błędów, tworzy
> mouse.exe, mouse.res i mouse.obj. Pliku obiektowego nie usuwa. Make
> uruchamiam przy pomocy make.bat
Bo nie chodzi o to, żeby usuwało automatycznie (bo to zue), ale aby usuwało
w momencie wykonania "make clean". make w sensie PROGRAMU make, nie twojego
bata.
> rm -f *.o
tutaj mamy usuwanie plików .o (a ty masz .obj a nie .o), za pomocą
linuksowego polecenia rm. zamiast tego użyj del.
> Zauważmy, że reguła clean ma pustą listę składników. Aby wywołać
> Jak to rozumieć?
typowa reguła make'a wygląda tak:
mouse.exe: mouse.obj mouse.res
link mouse.obj mouse.res
czyli
cel: zależności zależności zależności
polecenie
polecenie
...
oznacza to, że aby otrzymać plik mouse.exe, potrzebne są pliki mouse.obj i
mouse.res - jeśli one istnieje, wykonujemy polecenie link. Jeśli zależności
nie są spełnione (nie ma któregoś pliku) szukana jest reguła na utworzenie
tego pliku. Jeśli takiej nie ma, dostajemy komunikat o błędzie.
> Dopisałem w pliku uruchamiającym:
>
> -----------------
> make -f makefile
jeszcze raz: wykonuj samo "make" zamiast "make -f makefile". to dokładnie to
samo, parametr -f jest do tego, aby móc podać jakąś INNĄ nazwę pliku. I
wywal tego swojego bata, po to piszesz makefile, żeby nie mieć żadnych .bat
;-)
--
Azarien
Re: Makefile
Author: Wiktor S.
Date: Sat, 07 Jul 2007 07:42
Date: Sat, 07 Jul 2007 07:42
35 lines
2152 bytes
2152 bytes
>> Zauważmy, że reguła clean ma pustą listę składników. Aby wywołać
>
>> Jak to rozumieć?
>
> typowa reguła make'a wygląda tak:
>
> mouse.exe: mouse.obj mouse.res
> link mouse.obj mouse.res
>
> czyli
>
> cel: zależności zależności zależności
> polecenie
> polecenie
> ...
tutaj dotłumaczę, o co chodzi z tą "pustą listą zależności". jeśli clean to
jest
clean:
del *.obj
albo nawet
clean:
del *.obj
del *.exe
to zawiera tylko polecenie (lub polecenia) do wykonania, natomiast w
zależnościach po dwukropku nie ma nic - czyli clean nie potrzebuje do
działania żadnych plików - wykona się zawsze.
--
Azarien
Re: Makefile
Author: Wiktor S.
Date: Sat, 07 Jul 2007 07:53
Date: Sat, 07 Jul 2007 07:53
40 lines
2724 bytes
2724 bytes
jeszcze jedno. zauważ, że niektóre reguły są plikami do wykonania, np.
mouse.exe: mouse.obj mouse.res
link mouse.obj mouse.res
(tutaj celem jest otrzymanie pliku "mouse.exe"), a niektóre plikami nie są
clean:
del *.obj
clean nie jest plikiem. albo coś takiego:
all: program1.exe program2.exe
spowoduje jednoczesne skompilowanie program1.exe i program2.exe (oczywiście
muszą być reguły do kompilacji tych plików).
"clean" ani "all" nie są plikami, tylko abstrakcyjnymi rzeczami do
zrobienia. Zazwyczaj to działa, jednak warto make'owi powiedzieć, że dana
reguła nie jest plikiem, więc nie musi ich szukać, ani martwić się o ich
istnienie:
.PHONY: clean all
oznacza, że "clean" i "all" nie są plikami do zrobienia, a jedynie regułami.
zauważ jeszcze, że w powyższym przykładzie
all: program1.exe program2.exe
są tylko zależności, a nie ma poleceń do wykonania - oznacza to tylko
konieczność kompilacji obu exeków, według przypisanych im reguł.
Żebyś nie miał więcej takich wątpliwości, co zrobić z daną regułą którą ktoś
ci poda albo znajdziesz: wrzuć to do makefile'a :-)
--
Azarien
Re: Makefile
Author: Remek
Date: Sat, 07 Jul 2007 17:10
Date: Sat, 07 Jul 2007 17:10
48 lines
2774 bytes
2774 bytes
Użytkownik "Wiktor S" napisał:
> > -----------------
> > make -f makefile
> jeszcze raz: wykonuj samo "make" zamiast "make -f makefile". to dokładnie
to
> samo, parametr -f jest do tego, aby móc podać jakąś INNĄ nazwę pliku. I
> wywal tego swojego bata, po to piszesz makefile, żeby nie mieć żadnych
.bat
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:
> jeszcze raz: wykonuj samo "make" zamiast "make -f makefile". to dokładnie
to
> samo, parametr -f jest do tego, aby móc podać jakąś INNĄ nazwę pliku.
To już jasne.
> 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?
---------------------
make
make clean
---------------------
A w Makefile dopisałem:
---------------------
..............
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.
--
Pozdrawiam Remek
K7S5A, Duron 1,1
Windows98 SE, IE6, OE6
Re: Makefile
Author: Lopez
Date: Sat, 07 Jul 2007 18:08
Date: Sat, 07 Jul 2007 18:08
56 lines
3596 bytes
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
Re: Makefile
Author: Remek
Date: Sat, 07 Jul 2007 21:52
Date: Sat, 07 Jul 2007 21:52
46 lines
3835 bytes
3835 bytes
Użytkownik "Lopez" napisał:
> 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.
Dzięki za te i kolejne wyjaśnienia. Nie cytuję wszystkiego, aby nie
powiększać niepotrzebnie pliku dbx. Chodziło mi o zrozumienie zasad
działania programu, a sposób organizacji pracy do już dalsza sprawa. Mam
jeszcze prośbę. Wklejam help, który mi wyświetlił make. Jakby ktoś miał
chwilę czasu, proszę o przetłumaczenie, bo nie wszystko rozumiem. A może
ktoś ma już "gotowca"?
MAKE Version 4.0 Copyright (c) 1987, 1996 Borland International
Syntax: MAKE [options ...] target[s]
-B Builds all targets regardless of dependency dates
-Dsymbol Defines symbol
-Dsymbol=string Defines symbol to string
-Idirectory Names an include directory
-K Keeps (does not erase) temporary files created by MAKE
-N Increases MAKE's compatibility with NMAKE
-S Swaps MAKE out of memory to execute commands.
-W Writes all non-string options back to the .EXE file
-Usymbol Undefine symbol
-ffilename Uses filename as the MAKEFILE
-dswapdir Writes MAKE's swap file to swapdir
-a Performs auto-dependency checks for include files
-c Caches auto-dependency information
-e Ignores redefinition of environment variable macros
-i Ignores errors returned by commands
-m Displays the date and time stamp of each file
-n Prints commands but does not do them
-p Displays all macro definitions and implicit rules
-q Returns zero if target is up-to-date and nonzero
if it is not (for use in batch files)
-r Ignores rules and macros defined in BUILTINS.MAK
-s Silent, does not print commands before doing them
-? or -h Prints this message
Options marked with '+' are on by default. To turn off a default
option follow it by a '-', for example: -a-
--
Pozdrawiam Remek
K7S5A, Duron 1,1
Windows98 SE, IE6, OE6
Re: Makefile
Author: Lopez
Date: Sun, 08 Jul 2007 09:42
Date: Sun, 08 Jul 2007 09:42
24 lines
2369 bytes
2369 bytes
Remek napisał(a): > Użytkownik "Lopez" napisał: > >> 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. > > Dzięki za te i kolejne wyjaśnienia. Nie cytuję wszystkiego, aby nie > powiększać niepotrzebnie pliku dbx. Chodziło mi o zrozumienie zasad > działania programu, a sposób organizacji pracy do już dalsza sprawa. Mam > jeszcze prośbę. Wklejam help, który mi wyświetlił make. Jakby ktoś miał > chwilę czasu, proszę o przetłumaczenie, bo nie wszystko rozumiem. A może > ktoś ma już "gotowca"? Skup sie raczej na budowie pliku makefile. Tak na prawade to sposrod tych opcji to ja wykorzystuje jedynie -f oraz czasem -j choc nie wiem nawet czy borlandowy make obsluguje te druga. -- Pozdrawiam Lopez
Re: Makefile
Author: Remek
Date: Sun, 08 Jul 2007 16:00
Date: Sun, 08 Jul 2007 16:00
14 lines
1926 bytes
1926 bytes
Użytkownik "Lopez" napisał: > ja wykorzystuje jedynie -f oraz czasem -j choc nie > wiem nawet czy borlandowy make obsluguje te druga. Który make.exe jest tym właściwym? Czyjego autorstwa? Po wpisaniu w Google: "meke.exe download" wyskakuje tysiące linków do różnych stron. Jak w tym gąszczu znaleźć tę włąściwą? -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Lopez
Date: Sun, 08 Jul 2007 16:54
Date: Sun, 08 Jul 2007 16:54
19 lines
2178 bytes
2178 bytes
Remek napisał(a): > Użytkownik "Lopez" napisał: > >> ja wykorzystuje jedynie -f oraz czasem -j choc nie >> wiem nawet czy borlandowy make obsluguje te druga. > > Który make.exe jest tym właściwym? Czyjego autorstwa? Po wpisaniu w Google: > "meke.exe download" wyskakuje tysiące linków do różnych stron. Jak w tym > gąszczu znaleźć tę włąściwą? Ja opieram sie na GNU/Make, wersje na Windows znajdziesz w pakiecie MinGw. Cygwin tez zdaje sie takowa posiada. Twoj pierwszy link z googla prowadzi w calkiem sesnowne miejsce: http://unxutils.sourceforge.net/ Jezeli chodzi o narzedzia Borlanda, to staram sie ich unikac. -- Pozdrawiam Lopez
Re: Makefile
Author: Bogdan (bogdro)
Date: Sun, 08 Jul 2007 16:59
Date: Sun, 08 Jul 2007 16:59
31 lines
3047 bytes
3047 bytes
Remek pisze: > Użytkownik "Lopez" napisał: > >> ja wykorzystuje jedynie -f oraz czasem -j choc nie >> wiem nawet czy borlandowy make obsluguje te druga. > > Który make.exe jest tym właściwym? Czyjego autorstwa? Po wpisaniu w Google: > "meke.exe download" wyskakuje tysiące linków do różnych stron. Jak w tym > gąszczu znaleźć tę włąściwą? Większość programów typu make zrozumie Twój makefile - ten i pewnie sporo przyszłych, jakie zrobisz. Ręcznie robione Makefile'e są względnie proste i powinno się je pisać tak, by działały z każdym programem make. Możesz więc pobrać dowolny. Polecam oczywiście coś darmowego. Skoro masz w Borlandzie, to nie szukaj dalej. Niektóre pliki Makefile (np. generowane automatycznie) mogą wymagać programu określonej marki, ale to na razie nie jest zmartwieniem. Na szczęście nie ma "jedynego słusznego make". To byłby horror. Jeśli lubisz to, co darmowe i z otwartym źródłem, to polecam GNU Make (ma kilka przewag nad innymi, podobno też kilka minusów). Do pobrania z pakietem Dev-C++, Cygwin, MinGW, DJGPP (DJGPP jako jedyne obsługuje DOSa) lub prosto z ftp.delorie.com, katalog v2/v2gnu, plik mak*b.zip (zauważ 'b' na końcu nazwy). -- Pozdrawiam/Regards - Bogdan (Linux & FreeDOS) Kurs asemblera x86 (DOS & Linux): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Re: Makefile
Author: Stachu 'Dozzie' K.
Date: Sun, 08 Jul 2007 17:36
Date: Sun, 08 Jul 2007 17:36
34 lines
3115 bytes
3115 bytes
On 08.07.2007, Bogdan (bogdro) <bogdan@poczta.gazeta.pl> wrote: > Remek pisze: >> Użytkownik "Lopez" napisał: >> >>> ja wykorzystuje jedynie -f oraz czasem -j choc nie >>> wiem nawet czy borlandowy make obsluguje te druga. >> >> Który make.exe jest tym właściwym? Czyjego autorstwa? Po wpisaniu w Google: >> "meke.exe download" wyskakuje tysiące linków do różnych stron. Jak w tym >> gąszczu znaleźć tę włąściwą? > > Większość programów typu make zrozumie Twój makefile - ten i pewnie > sporo przyszłych, jakie zrobisz. Ręcznie robione Makefile'e są > względnie proste i powinno się je pisać tak, by działały z każdym > programem make. ...z dokładnością do tego, że składnia make, przynajmniej ta zdefiniowana przez SUS, nie przewiduje instrukcji warunkowych (np. zmiana reguł budowania jeszcze na poziomie procesu make, a nie już shella), niektórych zachowań w wildcardach czy paru bardzo użytecznych funkcji (wildcard i subst, żeby daleko nie szukać). Tylko najprostsze makefiles da się w sensowny sposób pisać przenośnie, całą resztę na ogół opiera się o rozszerzenia konkretnej implementacji. > Niektóre pliki Makefile (np. generowane automatycznie) mogą wymagać > programu określonej marki, ale to na razie nie jest zmartwieniem. Na > szczęście nie ma "jedynego słusznego make". To byłby horror. Gdyby SUS definiował bogatszą składnię, to byłby jeden słuszny make. I to w żadnym wypadku nie byłby horror, tylko normalna standaryzacja. -- Secunia non olet. Stanislaw Klekot
Re: Makefile
Author: Remek
Date: Mon, 09 Jul 2007 02:25
Date: Mon, 09 Jul 2007 02:25
14 lines
2120 bytes
2120 bytes
Użytkownik "Bogdan (bogdro)" napisał: > Jeśli lubisz to, co darmowe i z otwartym źródłem, to polecam GNU Make > (ma kilka przewag nad innymi, podobno też kilka minusów). Do pobrania > z pakietem Dev-C++, Cygwin, MinGW, DJGPP (DJGPP jako jedyne obsługuje > DOSa) lub prosto z ftp.delorie.com, katalog v2/v2gnu, plik mak*b.zip Dzięki za linki. Ten Ftp strasznie mi się muli. Transfer mam na poziomie modemu analogowego. Ściąganie potrwa 2 -3 godz. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Bogdan (bogdro)
Date: Mon, 09 Jul 2007 08:15
Date: Mon, 09 Jul 2007 08:15
49 lines
4266 bytes
4266 bytes
Stachu 'Dozzie' K. pisze: > On 08.07.2007, Bogdan (bogdro) <bogdan@poczta.gazeta.pl> wrote: >> Remek pisze: >>> Użytkownik "Lopez" napisał: >>> >>>> ja wykorzystuje jedynie -f oraz czasem -j choc nie >>>> wiem nawet czy borlandowy make obsluguje te druga. >>> Który make.exe jest tym właściwym? Czyjego autorstwa? Po wpisaniu w Google: >>> "meke.exe download" wyskakuje tysiące linków do różnych stron. Jak w tym >>> gąszczu znaleźć tę włąściwą? >> Większość programów typu make zrozumie Twój makefile - ten i pewnie >> sporo przyszłych, jakie zrobisz. Ręcznie robione Makefile'e są >> względnie proste i powinno się je pisać tak, by działały z każdym >> programem make. > > ...z dokładnością do tego, że składnia make, przynajmniej ta > zdefiniowana przez SUS, nie przewiduje instrukcji warunkowych (np. > zmiana reguł budowania jeszcze na poziomie procesu make, a nie już > shella), niektórych zachowań w wildcardach czy paru bardzo użytecznych > funkcji (wildcard i subst, żeby daleko nie szukać). Tylko najprostsze > makefiles da się w sensowny sposób pisać przenośnie, całą resztę na ogół > opiera się o rozszerzenia konkretnej implementacji. Nie przyglądałem się tak szczegółowo standaryzacji. Szkoda, że tak mało elementów składni jest zdefiniowanych. Na szczęście jest autoconf i automake :) OT: Czy SUS definiuje działanie programów w ogóle (w sensie że np. każdy program musi obsługiwać opcję '--help')? Bo jak patrze, to widzę tylko programy, które powinny się znaleźć w systemie i ich zachowanie. >> Niektóre pliki Makefile (np. generowane automatycznie) mogą wymagać >> programu określonej marki, ale to na razie nie jest zmartwieniem. Na >> szczęście nie ma "jedynego słusznego make". To byłby horror. > > Gdyby SUS definiował bogatszą składnię, to byłby jeden słuszny make. > I to w żadnym wypadku nie byłby horror, tylko normalna standaryzacja. Oj, nie o to mi biegało. Według mnie kiepsko byłoby, jeśli na świecie istniałby tylko 1 program make, wyprodukowany np. przez Microsoft czy Borland. Nie napisałem "jedyna słuszna składnia make", bo jak coś ma jedną składnię, to jest dobrze. Napisałem "jedyny słuszny (program) make" w sensie podanym w tym paragrafie. Standaryzacja dobra rzecz, tu się zgadzam. -- Pozdrawiam/Regards - Bogdan (Linux & FreeDOS) Kurs asemblera x86 (DOS & Linux): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Re: Makefile
Author: Stachu 'Dozzie' K.
Date: Mon, 09 Jul 2007 08:54
Date: Mon, 09 Jul 2007 08:54
66 lines
4585 bytes
4585 bytes
On 09.07.2007, Bogdan (bogdro) <bogdan@poczta.gazeta.pl> wrote: > Stachu 'Dozzie' K. pisze: >> On 08.07.2007, Bogdan (bogdro) <bogdan@poczta.gazeta.pl> wrote: >>> Remek pisze: >>>> Użytkownik "Lopez" napisał: >>>> >>>>> ja wykorzystuje jedynie -f oraz czasem -j choc nie >>>>> wiem nawet czy borlandowy make obsluguje te druga. >>>> Który make.exe jest tym właściwym? Czyjego autorstwa? Po wpisaniu w Google: >>>> "meke.exe download" wyskakuje tysiące linków do różnych stron. Jak w tym >>>> gąszczu znaleźć tę włąściwą? >>> Większość programów typu make zrozumie Twój makefile - ten i pewnie >>> sporo przyszłych, jakie zrobisz. Ręcznie robione Makefile'e są >>> względnie proste i powinno się je pisać tak, by działały z każdym >>> programem make. >> >> ...z dokładnością do tego, że składnia make, przynajmniej ta >> zdefiniowana przez SUS, nie przewiduje instrukcji warunkowych (np. >> zmiana reguł budowania jeszcze na poziomie procesu make, a nie już >> shella), niektórych zachowań w wildcardach czy paru bardzo użytecznych >> funkcji (wildcard i subst, żeby daleko nie szukać). Tylko najprostsze >> makefiles da się w sensowny sposób pisać przenośnie, całą resztę na ogół >> opiera się o rozszerzenia konkretnej implementacji. > > Nie przyglądałem się tak szczegółowo standaryzacji. Bo to trzeba zaraz standard czytać? Wystarczy spróbować coś napisać w bsdowskim make'u. > Szkoda, że tak > mało elementów składni jest zdefiniowanych. Na szczęście jest autoconf > i automake :) ...które nic nie dają w tym przypadku, bo dotyczą kodu _budowanego_, a nie _budującego_. > OT: Czy SUS definiuje działanie programów w ogóle (w sensie że np. > każdy program musi obsługiwać opcję '--help')? Bo jak patrze, to widzę > tylko programy, które powinny się znaleźć w systemie i ich zachowanie. Aj, to weź sobie przejrzyj SUS. To nie POSIX, że kosztuje *set dolarów. >>> Niektóre pliki Makefile (np. generowane automatycznie) mogą wymagać >>> programu określonej marki, ale to na razie nie jest zmartwieniem. Na >>> szczęście nie ma "jedynego słusznego make". To byłby horror. >> >> Gdyby SUS definiował bogatszą składnię, to byłby jeden słuszny make. >> I to w żadnym wypadku nie byłby horror, tylko normalna standaryzacja. > > Oj, nie o to mi biegało. Według mnie kiepsko byłoby, jeśli na świecie > istniałby tylko 1 program make, wyprodukowany np. przez Microsoft czy > Borland. Czyli chodzi ci o różnicę między standardem, standardem przemysłowym i de facto standardem? > Nie napisałem "jedyna słuszna składnia make", bo jak coś ma > jedną składnię, to jest dobrze. Napisałem "jedyny słuszny (program) > make" w sensie podanym w tym paragrafie. Standaryzacja dobra rzecz, tu > się zgadzam. Nadal nie widzę różnicy. -- Secunia non olet. Stanislaw Klekot
Re: Makefile
Author: Remek
Date: Mon, 09 Jul 2007 15:51
Date: Mon, 09 Jul 2007 15:51
14 lines
2143 bytes
2143 bytes
Użytkownik "Remek" napisał: > Ten Ftp strasznie mi się muli. Transfer mam na poziomie > modemu analogowego. Ściąganie potrwa 2 -3 godz. Jest gorzej niż myślałem. Połączenie przerwane - przekroczony limit czasu. Nie ma gdzieś wyodrębnionego własciwego make? Mam pakiety, ale w postaci instalek, a że nie działam w C++, nie będę rozpakowywał ogromnych programów po to tylko, aby dowiedzieć się np. że tego, czego szukam tam nie ma. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Wiktor S.
Date: Mon, 09 Jul 2007 17:14
Date: Mon, 09 Jul 2007 17:14
14 lines
2192 bytes
2192 bytes
>> Ten Ftp strasznie mi się muli. Transfer mam na poziomie >> modemu analogowego. Ściąganie potrwa 2 -3 godz. > > Jest gorzej niż myślałem. Połączenie przerwane - przekroczony limit > czasu. Nie ma gdzieś wyodrębnionego własciwego make? Mam pakiety, ale > w postaci instalek, a że nie działam w C++, nie będę rozpakowywał > ogromnych programów po to tylko, aby dowiedzieć się np. że tego, > czego szukam tam nie ma. ftp://ftp.fu-berlin.de/pc/languages/djgpp -- Azarien
Re: Makefile
Author: Wiktor S.
Date: Mon, 09 Jul 2007 17:15
Date: Mon, 09 Jul 2007 17:15
20 lines
2337 bytes
2337 bytes
Wiktor S. wrote: >>> Ten Ftp strasznie mi się muli. Transfer mam na poziomie >>> modemu analogowego. Ściąganie potrwa 2 -3 godz. >> >> Jest gorzej niż myślałem. Połączenie przerwane - przekroczony limit >> czasu. Nie ma gdzieś wyodrębnionego własciwego make? Mam pakiety, ale >> w postaci instalek, a że nie działam w C++, nie będę rozpakowywał >> ogromnych programów po to tylko, aby dowiedzieć się np. że tego, >> czego szukam tam nie ma. > > ftp://ftp.fu-berlin.de/pc/languages/djgpp konkretnie ftp://ftp.fu-berlin.de/pc/languages/djgpp/current/v2gnu/mak3791b.zip -- Azarien
Re: Makefile
Author: Remek
Date: Mon, 09 Jul 2007 21:20
Date: Mon, 09 Jul 2007 21:20
11 lines
1978 bytes
1978 bytes
Użytkownik "Wiktor S." napisał: > ftp://ftp.fu-berlin.de/pc/languages/djgpp Dzięki. Z tego idzie przyzwoicie. Nie wiem jednak, w którym katalogy jest to, czego szukam. Przyjdzie mi ściągnąć, a potem niepotrzebne skasować. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Wiktor S.
Date: Mon, 09 Jul 2007 22:15
Date: Mon, 09 Jul 2007 22:15
11 lines
2026 bytes
2026 bytes
>> ftp://ftp.fu-berlin.de/pc/languages/djgpp > > Dzięki. Z tego idzie przyzwoicie. Nie wiem jednak, w którym katalogy > jest to, czego szukam. Przyjdzie mi ściągnąć, a potem niepotrzebne > skasować. Przecież ci podałem w drugim poście, gdzie dokładnie leży make. -- Azarien
Re: Makefile
Author: Remek
Date: Tue, 10 Jul 2007 03:20
Date: Tue, 10 Jul 2007 03:20
9 lines
1960 bytes
1960 bytes
> Przecież ci podałem w drugim poście, gdzie dokładnie leży make. O.K. Już mam. Jak pisałem poprzedni post, to Twojego jeszcze nie było. Dzięki. -- Pozdrawiam Remek K7S5A, Duron 1,1 Windows98 SE, IE6, OE6
Re: Makefile
Author: Bogdan (bogdro)
Date: Tue, 10 Jul 2007 10:02
Date: Tue, 10 Jul 2007 10:02
49 lines
3924 bytes
3924 bytes
Stachu 'Dozzie' K. pisze: [...] >> Szkoda, że tak >> mało elementów składni jest zdefiniowanych. Na szczęście jest autoconf >> i automake :) > > ...które nic nie dają w tym przypadku, bo dotyczą kodu _budowanego_, > a nie _budującego_. Nieprawda. Używałeś? Piszesz plik z regułami, a Makefile jest generowany automatycznie, więc te narzędzia budują kod budujący. >> OT: Czy SUS definiuje działanie programów w ogóle (w sensie że np. >> każdy program musi obsługiwać opcję '--help')? Bo jak patrze, to widzę >> tylko programy, które powinny się znaleźć w systemie i ich zachowanie. > > Aj, to weź sobie przejrzyj SUS. To nie POSIX, że kosztuje *set dolarów. Przeglądam i nie widzę. Może jak znajdę chwilę czasu... >>>> Niektóre pliki Makefile (np. generowane automatycznie) mogą wymagać >>>> programu określonej marki, ale to na razie nie jest zmartwieniem. Na >>>> szczęście nie ma "jedynego słusznego make". To byłby horror. >>> Gdyby SUS definiował bogatszą składnię, to byłby jeden słuszny make. >>> I to w żadnym wypadku nie byłby horror, tylko normalna standaryzacja. >> Oj, nie o to mi biegało. Według mnie kiepsko byłoby, jeśli na świecie >> istniałby tylko 1 program make, wyprodukowany np. przez Microsoft czy >> Borland. > > Czyli chodzi ci o różnicę między standardem, standardem przemysłowym > i de facto standardem? > >> Nie napisałem "jedyna słuszna składnia make", bo jak coś ma >> jedną składnię, to jest dobrze. Napisałem "jedyny słuszny (program) >> make" w sensie podanym w tym paragrafie. Standaryzacja dobra rzecz, tu >> się zgadzam. > > Nadal nie widzę różnicy. Ja mówię, że fajnie, że istnieje więcej niż 1 program 'make'. Innymi słowy: nieprawdą jest, że wszystkie programy 'make' wyprodukowała jedna osoba/firma. Fajnie jest, że można sobie wybrać make. O to mi chodziło. Zgodzisz się? -- Pozdrawiam/Regards - Bogdan (Linux & FreeDOS) Kurs asemblera x86 (DOS & Linux): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads