[#1] Artykuł o narzędziu "make"
Niektórzy amigowi koderzy chyba „boją się” programu make, uważając go za coś w rodzaju uniksowej czarnej magii. Tymczasem to całkiem użyteczne narzędzie, które może się przydać w programowaniu w wielu różnych językach, a nawet w zadaniach nie związanych z programowaniem. Właśnie skończyłem pisać pierwszą część artykułu, który, mam nadzieję, oswoi zainteresowanych tematem.

Starałem się skupić na podstawach, tak, żeby można było w miarę szybko przejść do pisania prostych makefiles bez wertowania manuala do programu. Jeżeli ktoś ma uwagi albo poprawki to zapraszam do dyskusji.
[#2] Re: Artykuł o narzędziu "make"

@Krashan, post #1

Skąd wziąć dobrą wersję make dla Amigi? Kiedyś ściągnąłem jakąs z Aminetu - niestety, okazała się bardzo kiepskim portem; narzekała, że nie może znaleźć (o ile dobrze pamiętam) /bin/sh :( Pozbyłem się ustrojstwa czym prędzej.
[#3] Re: Artykuł o narzędziu "make"

@Krashan, post #1

Make mnie wkurza swoją składnią i jest dla mnie nieintuicyjny, czytaj: irytował mnie szybciej niż zdążyłem go zrozumieć do końca. Mimo to korzystam z niego w swoich amigowych projektach, bo ułatwia życie jak nie wiem, zwłaszcza że napisałem go raz i nigdy więcej dzięki wildcardom nie muszę go edytować. Za to teraz w robocie stosuję CMake i jestem nim zachwycony - zwłaszcza możliwością łatwego dołączenia kolejnych CMake'owych projektów do swojego jako zależności. Lepiej wykrywa też zmiany w plikach .h.

Po RKLE przejdę na CMake w swoich amigowych projektach, dodając przy okazji obsługę VBCC. Może też napiszę coś w stylu Twojego artykułu. ;)
[#4] Re: Artykuł o narzędziu "make"

@Cedrat, post #2

Z GeekGadgets. W artykule jest nawet bezpośredni link do pliku. Niestety jest to wersja która wymaga tego nieszczęsnego /bin/sh, ale napisałem skąd go wziąć. Ktoś podjął próbę zrobienia portu make, który nie wymaga ani ixemul.library ani sh (poszukaj make 3.75 na Aminecie), ale nie udało mi się go poprawnie użyć.
[#5] Re: Artykuł o narzędziu "make"

@teh_KaiN, post #3

CMake, cóż, na Amidze go nie ma i pewnie nie będzie (chyba, że przeportowałeś?), poza tym to jest kolejna „owijka”, wszak CMake i tak generuje makefiles. Więc tak czy inaczej, piszesz skrypt. Ponieważ nie jestem zawodowym programistą na „poważnych” systemach, nie widzę sensu uczenia się narzędzia, z którego i tak nie skorzystam.

Ostatnia aktualizacja: 16.09.2017 20:36:13 przez Krashan
[#6] Re: Artykuł o narzędziu "make"

@Krashan, post #5

CMake to make do make'ów, ale też nie tylko, bo do nmake'ów, .sln i innych plików projektów. Obsługuje wiele kompilatorów i w sposób transparentny załatwia Ci niuansiki listy argumentów dla każdego kompilatora. Pozwala też przeszukiwać OS pod kątem zainstalowanych bibliotek (tu dla każdej są specyficzne skrypty lub ogólne findLibrary). Jak projekt naprawdę jest duży i masz dużo zależności z zewnętrznymi kodami, to robi to niesamowitą robotę. Na Amidze raczej sztuka dla sztuki, ale co tam - tutaj wszystko jest takie ;)

Portować nie portowałem, bo i tak kompiluję skrośnie na windowsie. Chociaż kto wie, może i się pokuszę.

Ostatnia aktualizacja: 16.09.2017 21:00:46 przez teh_KaiN
[#7] Re: Artykuł o narzędziu "make"

@Krashan, post #1

Dziękuję za ciekawy i pomocny artykuł. Dowiedziałem się kilku nowych rzeczy odnośnie make'a, co z powodzeniem usprawni mi pracę z tym programem (a dokładnie z jego odmianą o nazwie DMake).
Szczególnie pomocna jest dla mnie informacja jak układać zależności z plikami nagłówkowymi. Już też mam precyzyjną informację o tym kiedy są wykonywane zależności oraz wiem jak zrealizować taki make clean. Będę czekał na następny odcinek.

DMake, który pochodzi z pakietu DICE z tego co wiem różni się tylko nieznacznie od Unixowego make. Na pewno ten artykuł sprawdzi się jako pomoc przy korzystaniu z wszelakich programów typu make.

Ostatnia aktualizacja: 16.09.2017 21:57:36 przez Hexmage960
[#8] Re: Artykuł o narzędziu "make"

@Hexmage960, post #7

W drugim odcinku będą rzeczy, które z DMake mogą nie działać:
- zmienne automatyczne
- reguły z szablonami nazw
- wywoływanie make w podkatalogach projektu
- [pół]automatyczne generowanie zależności przez GCC.
Niemniej cieszę się, że tekst się przydał.
[#9] Re: Artykuł o narzędziu "make"

@Hexmage960, post #7

Szczególnie pomocna jest dla mnie informacja jak układać zależności z plikami nagłówkowymi.


Owiele ciekawiej jest, kiedy napiszesz sobie regule do automatycznego generowania plikow z zaleznosciami (z reguly maja rozszerzenie .d). Wtedy nie przejmujesz sie juz ukladaniem zaleznosci, wszystko robi sie samo :)
[#10] Re: Artykuł o narzędziu "make"

@Krashan, post #8

Wiem, że szablony nazw w DMake są. Można zdefiniować np. takie zmienne:

src = program.c funkcje.c
obj = $(src:*.c:%1.o)

Wtedy $(obj) przyjmie wszystkie elementy z $(src) ale zmieni rozszerzenie na .o.

Często z tego korzystam, np. tak:

$(obj): $(src)
dcc %(right) -c -o %(left)

Ale bardzo jestem ciekaw, jak to jest w make'u. I czy można zrobić szablon w $(src).

Co do reszty podpunktów nie wiem, nie używałem.

Ostatnia aktualizacja: 16.09.2017 23:18:36 przez Hexmage960
[#11] Re: Artykuł o narzędziu "make"

@Krashan, post #4

Z GeekGadgets. W artykule jest nawet bezpośredni link do pliku.


No tak, rzeczywiście. Od dłuższego czasu szukam jakiegoś odpowiednika 'make' dla Amigi, który:

- jest normalnym, natywnym oprogramowaniem - a nie portem wymagającym jakiegoś pseudo-Uniksa
- jest darmowy lub nadal dostępny do kupienia

do używania z VBCC. I, niestety, niczego nie mogę znaleźć...
[#12] Re: Artykuł o narzędziu "make"

@Cedrat, post #11

Z mojej strony polecam DMake z pakietu DICE. Natywny, amigowy program. Nigdy mnie nie zawiódł.

Można używać oczywiście z każdym kompilatorem.

Myślę, że takich programów jest o wiele więcej, ale nie szukałem. Warto poszperać na Aminecie, dyskach Fisha czy w innych źródłach.
[#13] Re: Artykuł o narzędziu "make"

@Hexmage960, post #12

Ach.... "the joy of" ixemul+bash + "make dla make"... no nic dziwnego że niektórzy się boją
A tak bardziej poważnie to - zanim ja będę potrzebował jakiegoś make do moich wypocin to jeszcze dużo "uchodźców" do "Jełuropy" przypłynie...

Ostatnia aktualizacja: 19.09.2017 09:47:09 przez pisklak
[#14] Re: Artykuł o narzędziu "make"

@pisklak, post #13

Tak Ci się tylko wydaje. Wystarczy przestać pisać kod ciurem a podzielić go na tematyczne pliki .c i .h. Wtedy do make'owania jeden krok. ;)
[#15] Re: Artykuł o narzędziu "make"

@Cedrat, post #11

No tak, rzeczywiście. Od dłuższego czasu szukam jakiegoś odpowiednika 'make' dla Amigi
W sumie jakiegoś open sourca możnaby skodzić. Bez ambicji do pełnej kompatybilności z GNU make, ale lekkiego i szybkiego. Oczywiście żadnych ixemulów i shellów.

Ostatnia aktualizacja: 19.09.2017 10:11:23 przez Krashan
[#16] Re: Artykuł o narzędziu "make"

@Krashan, post #15

Ale czy rzeczywiście nie ma make'a na Amigę co już istnieje i spełnia oczekiwania?
[#17] Re: Artykuł o narzędziu "make"

@Krashan, post #15

Ja tam jeszcze chyba słyszałem że istnieje coś takiego (na Unixie) jak Cook https://github.com/mdhender/cook. Filozofia chyba ta sama tylko pewnie z jakimiś ulepszeniami/udziwnieniami
W sumie nie słyszałem żeby ktoś tego używał ale być może warto zajrzeć a kto wie czy nie przeportować.
A tak w ogóle to czy czysto amigowym rozwiązaniem nie byłby po prostu jakiś skrypt ARREXa ?
[#18] Re: Artykuł o narzędziu "make"

@Hexmage960, post #16

Ale czy rzeczywiście nie ma make'a na Amigę co już istnieje i spełnia oczekiwania?
W zasadzie GNU make spełnia moje oczekiwania... Działa i tyle, a sh i ixemul.library i tak mam na dysku, bo jednym z używanych przeze mnie kompilatorów jest GCC.
[#19] Re: Artykuł o narzędziu "make"

@Krashan, post #18

To tak samo jak u mnie. DMake spełnia moje niewygórowane oczekiwania. Kto wie jednak, czy nie skorzystam z GNU Make'a, jeśli okaże się, że ma więcej możliwości. Czekam z niecierpliwością na kolejny artykuł! OK
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem