Blog (15)
Komentarze (236)
Recenzje (0)
@Vifonvfnmake - generator Makefile'i mojej roboty

vfnmake - generator Makefile'i mojej roboty

Webnull może, to ja też - oto "reklama" odświeżonej wersji jednego z moich tworów. ;)

Może zacznę od krótkiej lekcji historii. Jakiś czas temu napisałem w zsh bardzo prymitywny generator Makefile'i - miałem dość ich ręcznego pisania, bo było to jedynie durne klepanie. Skrypt się rozrastał i rozrastał, aż w końcu stwierdziłem, że zsh jest dla niego "za ciasne". Postanowiłem przepisać go do jakiegoś ambitniejszego języka. Mój wybór padł na Perla i z perspektywy czasu (jednego dnia :P) myślę, że był to dobry wybór.

W międzyczasie miałem okazję wypróbować CMake, który niestety mnie do siebie nie przekonał. W prostych przypadkach, klepania jest równie dużo co w Makefile'u, a do tego więcej do zapamiętania. Przeraża mnie też ilość śmieci, jakie mi wypluwa do katalogu z programem. Widać, że przy bardziej skomplikowanym projekcie sporo ułatwia, ale taki przypadek rzadko mnie interesuje. Może jeszcze obejrzę w najbliższym czasie Autotools, ale pewnie też się odbiję.

Mój program działa inaczej - większość rzeczy robi się sama, a resztę (np. biblioteki do dolinkowania) można łatwo dopisać w argumentach. Tworzy się tylko jeden plik konfiguracyjny (nie licząc Makefile'a), więc nie ma też mowy o śmietniku. Jeśli coś się zmieni w naszym programie, wystarczy po prostu jeszcze raz wygenerować Makefile jednym poleceniem i gotowe. Myślę, że jest to swoiste przeciwieństwo CMake - nie wątpię, że przy większym projekcie mojemu generatorowi zabraknie "mocy", ale do prostych programów nadaje się świetnie. Po prostu uruchamiam i po chwili kompiluję.

Przykładowe wywołanie programu wygląda tak:

vfnmake --lib ncurses --pkg gtkmm-2.4 --name moj_programik --cflag -pedantic

Późniejsze wywołania są już prostsze, bo program zapamiętuje argumenty i musimy pisać jedynie to, co chcemy zmienić.

Wersja perlowa jest jeszcze dość młoda i może zawierać błędy. Jeśli ktoś coś znajdzie, będę wdzięczny na informację.

Stara wersja Nowa wersja

Mam nadzieję, że komuś się to przyda.

Wybrane dla Ciebie
Komentarze (1)