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 podkatalogiem narzedzia i innymi podkatalogami UMP-*)
  • DIR - jeden lub kilka umpów

np:

# csh, tcsh:
setenv DIR "UMP-PL-Opole UMP-PL-Katowice"
setenv CVS /home/user/ump
# Bash, sh
export DIR="UMP-PL-Opole UMP-PL-Katowice"
export CVS=/home/user/ump

Po czym najlepiej zrobić sobie:

cd $CVS
mkdir tmp
cd tmp
ln -s ../narzedzia/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 deadnm - generuje listę ślepych, ignoruje węzły brzegowe
make wpt	- generuje listę węzłów (odwrotnie niż "make x")
make update	- uaktualnia źródła edytowanego ump-a

W przypadku zmontowania jednego obszaru wszystkie punkty brzegowe są zwykle także punktami ślepymi z punktu widzenia routingu, dlatego zamiast "dead" sensowniejsze jest sprawdzanie za pomocą "deadnm", które takie punkty odfiltrowuje, Cele "x", "wpt", "close", "dead", "deadnm" 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.) Warto też umieścić tam definicje skryptów ściągających kafle:

;@WEBMAP,"User Defined Maps","UserProviderScript=GoogleSatProv.lua",0.000000,0.000000,80,0,1,"U:\Cache\googlesat"
;@WEBMAP,"User Defined Maps","UserProviderScript=GoogleMapProv.lua",0.000000,0.000000,80,0,1,"U:\Cache\googlemap"
;@WEBMAP,"Osm maps","",0.000000,0.000000,255,0,1,"U:\Cache\osm"
;@WEBMAP,"User Defined Maps","UserProviderScript=EniroMapProv.lua",0.000000,0.000000,255,0,1,"U:\Cache\navigo"
;@WEBMAP,"User Defined Maps","UserProviderScript=MassTracks2.lua",0.000000,0.000000,255,0,1,"U:\Cache\tracks"
;@WEBMAP,"User Defined Maps","UserProviderScript=UmpProv.lua",0.000000,0.000000,255,0,1,"U:\Cache\ump"
;@WEBMAP,"User Defined Maps","UserProviderScript=ZumiMapProv.lua",0.000000,0.000000,255,0,1,"U:\Cache\zumimap"
;@WEBMAP,"User Defined Maps","UserProviderScript=ZumiSatProv.lua",0.000000,0.000000,255,0,1,"U:\Cache\zumisat"
;@WEBMAP,"User Defined Maps","UserProviderScript=OsmBWProv.lua",0.000000,0.000000,255,0,1,"U:\Cache\osm-bw"
;@WEBMAP,"User Defined Maps","UserProviderScript=OsmTrailProv.lua",0.000000,0.000000,255,0,1,"U:\Cache\trail"

YMMV - U:\Cache\ należy oczywiście zmienić na odwołanie do lokalnie istniejącego katalogu, w którym ME/ME++ może sobie keszować ściągane kafelki.

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
 commit-g  - wysłanie poprawek wraz z plikiem granice.txt w katalogu narzedzia
 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
 miasta    - sprawdza zgodność nazw miast z bazą TERYT. Wymagane narzędzie narzedzia/check_miasta
 bm        - generuje bookmarki z tego, co wcześniej zostało sprawdzone (wg pliky wynik-x.wpt).
 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 usuwaniem/poprawianiem 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)

Każdy z tych testów wyświetla znalezione błędy na ekranie, ale generuje także plik wynik-x.wpt wskazujący współrzędne ich wystąpienia w postaci waypointów. Pisząc "make bm" możesz taki plik waypointów przerobić na format bookmarków, co pozwala na wygodniejszą ich edycję

Inne

 visual    - na podstawie plików diff tworzy listę zmian dokonanych na mapie. Mapa musi zostać 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.