Makefile.common

Z UMP

(Różnice między wersjami)
d (minus Kategoria: UMP)
Aktualna wersja (15:25, 9 wrz 2016) (edytuj) (anuluj zmianę)
 
(Nie pokazano 18 wersji pośrednich.)
Linia 1: Linia 1:
Narzędzie dla użytkowników systemów Unix i Linux służące do operowania na źródłach UMP.
Narzędzie dla użytkowników systemów Unix i Linux służące do operowania na źródłach UMP.
 +
 +
 +
== Podstawowa funkcjonalność ==
 +
Poniższy opis przytaczam za Tomaszem Surmaczem, jego autorem.
Poniższy opis przytaczam za Tomaszem Surmaczem, jego autorem.
Linia 6: Linia 10:
środowiskowych:
środowiskowych:
-
CVS - katalog ze źródłami (czyli ten właśnie z Makefile.common)
+
* '''CVS''' - katalog ze źródłami (czyli ten właśnie z podkatalogiem narzedzia i innymi podkatalogami UMP-*)
-
DIR - jeden lub kilka umpów
+
* '''DIR''' - jeden lub kilka umpów
np:
np:
-
setenv DIR "UMP-Opole UMP-Katowice"
+
# csh, tcsh:
 +
setenv DIR "UMP-PL-Opole UMP-PL-Katowice"
setenv CVS /home/user/ump
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:
Po czym najlepiej zrobić sobie:
Linia 18: Linia 27:
mkdir tmp
mkdir tmp
cd tmp
cd tmp
-
ln -s ../Makefile.common Makefile
+
ln -s ../narzedzia/Makefile.common Makefile
czyli utworzyć katalog roboczy "tmp" i tam pracować za pomocą:
czyli utworzyć katalog roboczy "tmp" i tam pracować za pomocą:
-
make mont - montuje źródła. Na końcu dokleja plik
+
make mont - montuje źródła. Na końcu dokleja plik "attach", jeśli taki istnieje
-
"attach", jeśli taki istnieje
+
make x - generuje listę niestyków (zmontowanego wynik.mp)
make x - generuje listę niestyków (zmontowanego wynik.mp)
- uruchomić mapedita, poprawiać
- uruchomić mapedita, poprawiać
Linia 34: Linia 42:
make close - generuje listę za bliskich węzłów
make close - generuje listę za bliskich węzłów
make dead - generuje listę ślepych
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 wpt - generuje listę węzłów (odwrotnie niż "make x")
make update - uaktualnia źródła edytowanego ump-a
make update - uaktualnia źródła edytowanego ump-a
-
Cele "x", "wpt", "close", "dead" generują listę punktów zawsze do pliku
+
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ą:
wynik-x.wpt, warto więc utworzyć plik "attach" z zawartością:
;@FILE,"Z:\home\USER\ump\tmp\wynik-x.wpt"
;@FILE,"Z:\home\USER\ump\tmp\wynik-x.wpt"
-
wtedy po zmontowaniu i wczytaniu zawsze będzie dołączony i nie trzeba
+
Plik ''attach'' jest automatycznie doklejany na końcu podczas montowania mapy i nie trzeba
-
będzie samemu za każdym razem wczytywać. Cele ponadto można łączyć,
+
wtedy samemu za każdym razem wczytywać ''wynik-x.wpt'' po każdorazowym rozpoczęciu edycji.
-
czyli np. wykonać:
+
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)
make clean mont x (wyczyści, zmontuje, wygeneruje niestyki)
-
# edycja mapeditem
+
# edycja mapeditem (w osobnym oknie)
make demont
make demont
# kopiowanie plików, ponowna edycja
# kopiowanie plików, ponowna edycja
Linia 57: Linia 98:
# skopiowanie poprawek
# skopiowanie poprawek
make clean commit
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 [[Bookmarki#3._Weryfikacja_POI_wg_zewnętrznych_źródeł|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 [[Bookmarki#3._Weryfikacja_POI_wg_zewnętrznych_źródeł|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.
 +
[[Kategoria: Linux]]
[[Kategoria: Linux]]
[[Kategoria: Narzędzia]]
[[Kategoria: Narzędzia]]

Aktualna wersja

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.