🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
49 messages
49 total messages Started by Remek Tue, 03 Jul 2007 14:53
Makefile
#1243
Author: Remek
Date: Tue, 03 Jul 2007 14:53
47 lines
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
#1244
Author: Lopez
Date: Tue, 03 Jul 2007 19:02
24 lines
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
#1245
Author: Remek
Date: Wed, 04 Jul 2007 20:20
15 lines
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
#1246
Author: Lopez
Date: Wed, 04 Jul 2007 20:40
30 lines
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
#1247
Author: Remek
Date: Wed, 04 Jul 2007 21:48
35 lines
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
#1248
Author: Lopez
Date: Wed, 04 Jul 2007 21:56
39 lines
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
#1249
Author: Lopez
Date: Wed, 04 Jul 2007 22:11
52 lines
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
#1250
Author: Remek
Date: Thu, 05 Jul 2007 15:42
37 lines
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
#1251
Author: Wiktor S.
Date: Thu, 05 Jul 2007 16:11
7 lines
1078 bytes
> $(NAME).res:$(NAME).rc

tu po dwókropku nie ma spacji, a gdzie indziej jest. może to to?


-- 
Azarien
Re: Makefile
#1252
Author: Wiktor S.
Date: Thu, 05 Jul 2007 16:11
3 lines
1026 bytes
> tu po dwókropku

dwukropku 
Re: Makefile
#1253
Author: Remek
Date: Thu, 05 Jul 2007 17:12
20 lines
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
#1254
Author: Remek
Date: Thu, 05 Jul 2007 17:14
8 lines
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
#1255
Author: Remek
Date: Thu, 05 Jul 2007 18:23
28 lines
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
#1256
Author: Remek
Date: Fri, 06 Jul 2007 02:21
7 lines
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
#1257
Author: Bogdan (bogdro)
Date: Fri, 06 Jul 2007 08:38
25 lines
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
#1258
Author: Lopez
Date: Fri, 06 Jul 2007 08:50
35 lines
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
#1259
Author: Remek
Date: Fri, 06 Jul 2007 09:28
63 lines
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
#1260
Author: Lopez
Date: Fri, 06 Jul 2007 09:48
66 lines
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
#1261
Author: Remek
Date: Fri, 06 Jul 2007 10:01
12 lines
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
#1262
Author: Wiktor S.
Date: Fri, 06 Jul 2007 10:46
20 lines
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
#1263
Author: Wiktor S.
Date: Fri, 06 Jul 2007 10:46
8 lines
1371 bytes
> po pierwsze, nie musisz robić make -f makefile, bo "makefile" to
> domyślna nazwa pliku.

starczy samo make


-- 
Azarien
Re: Makefile
#1264
Author: Remek
Date: Fri, 06 Jul 2007 19:50
26 lines
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
#1265
Author: Lopez
Date: Fri, 06 Jul 2007 19:59
31 lines
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
#1266
Author: Remek
Date: Fri, 06 Jul 2007 20:57
23 lines
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
#1267
Author: Wiktor S.
Date: Fri, 06 Jul 2007 22:24
24 lines
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
#1291
Author: Wiktor S.
Date: Fri, 06 Jul 2007 22:28
13 lines
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
#1268
Author: Wiktor S.
Date: Fri, 06 Jul 2007 22:38
50 lines
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
#1269
Author: Remek
Date: Fri, 06 Jul 2007 23:56
60 lines
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
#1270
Author: Wiktor S.
Date: Sat, 07 Jul 2007 07:40
50 lines
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
#1271
Author: Wiktor S.
Date: Sat, 07 Jul 2007 07:42
35 lines
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
#1272
Author: Wiktor S.
Date: Sat, 07 Jul 2007 07:53
40 lines
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
#1273
Author: Remek
Date: Sat, 07 Jul 2007 17:10
48 lines
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
#1274
Author: 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
Re: Makefile
#1275
Author: Remek
Date: Sat, 07 Jul 2007 21:52
46 lines
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
#1276
Author: Lopez
Date: Sun, 08 Jul 2007 09:42
24 lines
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
#1277
Author: Remek
Date: Sun, 08 Jul 2007 16:00
14 lines
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
#1278
Author: Lopez
Date: Sun, 08 Jul 2007 16:54
19 lines
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
#1279
Author: Bogdan (bogdro)
Date: Sun, 08 Jul 2007 16:59
31 lines
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
#1280
Author: Stachu 'Dozzie' K.
Date: Sun, 08 Jul 2007 17:36
34 lines
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
#1284
Author: Remek
Date: Mon, 09 Jul 2007 02:25
14 lines
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
#1281
Author: Bogdan (bogdro)
Date: Mon, 09 Jul 2007 08:15
49 lines
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
#1282
Author: Stachu 'Dozzie' K.
Date: Mon, 09 Jul 2007 08:54
66 lines
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
#1285
Author: Remek
Date: Mon, 09 Jul 2007 15:51
14 lines
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
#1286
Author: Wiktor S.
Date: Mon, 09 Jul 2007 17:14
14 lines
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
#1287
Author: Wiktor S.
Date: Mon, 09 Jul 2007 17:15
20 lines
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
#1288
Author: Remek
Date: Mon, 09 Jul 2007 21:20
11 lines
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
#1289
Author: Wiktor S.
Date: Mon, 09 Jul 2007 22:15
11 lines
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
#1290
Author: Remek
Date: Tue, 10 Jul 2007 03:20
9 lines
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
#1283
Author: Bogdan (bogdro)
Date: Tue, 10 Jul 2007 10:02
49 lines
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