Makefile.common
Z UMP
Narzędzie dla użytkowników systemów Unix i Linux służące do operowania na źródłach UMP.
Spis treści |
Podstawowa funkcjonalność
Poniższy opis przytaczam za Tomaszem Surmaczem, jego autorem.
Do działania Makefile wymaga ustawienia 2 zmiennych środowiskowych:
- CVS - katalog ze źródłami (czyli ten właśnie z Makefile.common)
- DIR - jeden lub kilka umpów
np:
setenv DIR "UMP-Opole UMP-Katowice" setenv CVS /home/user/ump
Po czym najlepiej zrobić sobie:
cd $CVS mkdir tmp cd tmp ln -s ../Makefile.common Makefile
czyli utworzyć katalog roboczy "tmp" i tam pracować za pomocą:
make mont - montuje źródła. Na końcu dokleja plik "attach", jeśli taki istnieje make x - generuje listę niestyków (zmontowanego wynik.mp)
- uruchomić mapedita, poprawiać
make demont - rozmontowuje, każe uaktualnić źródła (copy&paste myszką) make commit - commituje poprawki
i tak w kółko, jak długo starcza chęci i materiału do poprawiania. Dodatkowo:
make clean - czyści pliki tymczasowe (diffy z rozmontowywania, itp.) make close - generuje listę za bliskich węzłów make dead - generuje listę ślepych make wpt - generuje listę węzłów (odwrotnie niż "make x") make update - uaktualnia źródła edytowanego ump-a
Cele "x", "wpt", "close", "dead" generują listę punktów zawsze do pliku wynik-x.wpt, warto więc utworzyć plik "attach" z zawartością:
;@FILE,"Z:\home\USER\ump\tmp\wynik-x.wpt"
Plik attach jest automatycznie doklejany na końcu podczas montowania mapy i nie trzeba wtedy samemu za każdym razem wczytywać wynik-x.wpt po każdorazowym rozpoczęciu edycji. Często używanymi załącznikami są także pliki "new.plt", "old.plt" i chg.plt" generowane przez skrypt narzedzia/pltdiff, warto więc dopisać tam także:
;@FILE,"Z:\home\USER\ump\tmp\new.plt" ;@FILE,"Z:\home\USER\ump\tmp\old.plt" ;@FILE,"Z:\home\USER\ump\tmp\chg.plt"
a także swoje własne często używane załączniki (np. pliki ze śladami, itp.)
Analogicznie doklejany jest plik bm.tmp (jeśli istnieje), w którym znajdować się mogą bookmarki (feature najnowszych wersji ME++). Za pomocą bookmarków można na przykład oglądać niestyki i inne błędy routingu – żeby to zrobić należy zmontować mapę, wygenerować niestyki, z nich zrobić bookmarki, a następnie jeszcze raz zmontować mapę ze zrobionymi bookmarkami. Czyli:
make mont x bm make mont
Cele można łączyć (tak jak w przykładzie powyżej), czyli np. wykonać:
make clean mont x (wyczyści, zmontuje, wygeneruje niestyki) # edycja mapeditem (w osobnym oknie) make demont # kopiowanie plików, ponowna edycja make demont # skopiowanie reszty plików make clean mont close # ponowna edycja (nie zapomnieć ponownie wczytać wynik.mp w mapedicie!) make demont # skopiowanie poprawek make clean commit
Dostępne cele
Podstawowe operacje
mont - montowanie mapy mont-topo - montuje wersję topo mapy (do montowania włącza pliki *.topo.txt i *.topo.pnt) demont - rozmontowanie mapy, wykonanie diffów, pliki różniące się względem oryginału tworzone są w katalogu bieżącym clean - usuwa pozostałości po rozmontowanej mapie, pliki *.plt i wynik* zostawiane są w spokoju mrproper - pełne czyszczenie katalogu roboczego, kasuje to co clean oraz pliki tymczasowe, wynik* i *.plt
Interakcja z CVS
update - aktualizacja źródeł commit - wysłanie poprawek - wymaga uprawnień do zapisu w CVS wrzuta - pakuje wszystkie *.diff do pliku wrzuta.tgz – jeśli nie masz uprawnień do zapisu w CVS, wygeneruj taki plik i wrzuć go do FlySpray
Sprawdzanie mapy (wymagany netgen)
sprawdz - sprawdzenie poprawności mapy dead - wykryj ślepe końce, przy okazji oflagowuje węzły "dociągane" deadnm - j.w., ale odfiltrowuje część węzłów skrajnych mapy x - wykryj skrzyżowania bez węzłów close - wykryj zbyt blisko położone węzły number - szybkie wykrywanie podstawowych błędów numeracji (bez używania netgena) numbers - pełne wykrywanie błędów numeracji bm - generuje bookmarki z tego, co wcześniej zostało sprawdzone. bmextract - wyciąga bookmarki z pliku wynik.mp (poprawione po edycji mapy) i zapisuje ponownie w pliku bm.tmp bmex - skrót do bmextract
Bookmarki działają w połączeniu z innymi testami, przetwarzając plik wynikowy wynik-x.wpt na format bookmarków (plik tymczasowy bm.tmp, który zostanie użyty w kolejnym montowaniu mapy). Czyli sensowne jest np. zrobienie "make mont x bm; make mont", albo "make mont deadnm bm; make mont" itp. itd.
Jeśli chcemy zachować bookmarki pomiędzy kolejnymi uruchomieniami mapedita oraz montowaniem/demontowaniem mapy (na przykład wtedy, gdy za pomocą bookmarków weryfikujemy punkty POI usuwając kolejne bookmarki wraz z weryfikacją kolejnych POI i mamy rozgrzebaną do połowy robotę, ale wolimy ją skończyć kiedyś później), należy po pierwsze wyekstrahować bookmarki z pliku wynik.mp do bm.tmp (za pomocą "make bmex"), a być może także skopiować sobie ten plik w inne bezpieczne miejsce, żeby nie został nadpisany przy kolejnym uruchomieniu "make dead bm" lub innej opcji generującej listę błędów. Gdy chcemy wrócić do weryfikacji POI, kopiujemy zachowany plik bookmarków do pliku bm.tmp i ponownie montujemy mapę.
Testy związane z routingiem
Poniższe cele służą do wygenerowania informacji o routingu przydatnych np. do sprawdzenia ciągłości routingu w danym obszarze.
test - wygeneruj dane potrzebne do routingu test-j - wygeneruj dane potrzebne do routingu - z włączoną opcją j netgena test-k - wygeneruj dane potrzebne do routingu - z włączoną opcja k netgena test-jk - wygeneruj dane potrzebne do routingu - z włączonymi opcjami j i k netgena class - wygeneruj informacje o klasach routingu do osobnych plików (domyślnie bazuje na make test)
Inne
visual - na podstawie plików diff tworzy listę zmian dokonanych na mapie. Mapa musi być wcześniej rozmontowana! cum - wykonuje kolejno clean, update, mont cd - clean, demont help - opis wszystkich zdefiniowanych funkcji
Zmienne środowiskowe
Wymagane do poprawnej pracy
CVS - położenie lokalnej kopii źródeł mapy (katalog główny) DIR - UMP który chcemy montować
Opcjonalne
MONTEXTRA - dodatkowe opcje dla mont-demont-multi2.pl, np. --extra-types NETGENEXTRA - dodatkowe opcje dla netgen-a, np. -p6
Dodatkowe informacje
Opiekunem narzędzia jest Tomasz Surmacz, wspomagany przez Tomasza Babczyńskiego.