‟overcq”

Z bloga o OUX/C+

Zarządzanie kompilacją programu i podsystemu OUX

Plik “0.mak” w katalogu modułu lub programu

Można utworzyć plik o nazwie “0.mak”, którego zawartość zostanie automatycznie włączona do pliku “Makefile”. Plik taki może zawierać pewne definicje, które są traktowane specjalnie.

Mianowicie, można zdefniować “S_modules” i przypisać jej listę modułów podsystemu OUX, z których korzysta dany program. Nie trzeba tak dołączać modułu “base”, ponieważ jest on zawsze dołączany.

Można zdefiniować “S_packages” i przypisać jej listę pakietów systemowych, których podsystem OUX automatycznie nie wyszukał, a są dostępne dla narzędzia systemowego “pkg-config” i mają być dołączone do modułu lub programu.

Można zdefiniować “S_libraries” i przypisać jej listę bibliotek, z którymi dodatkowo ma być połączony moduł lub program.

Można zdefiniować “S_headers” i przypisać jej listę plików nagłówkowych, których nie wyszukał automatycznie podsystem OUX, a mają być włączone do modułu lub programu.

Przykładowo:

S_modules := x_window_hi_cpu
S_packages := xcb
S_libraries := m
S_headers := 1.h

Plik “0.mak” może również definiować szczególne cele tworzenia programu, np. “install”:

install:
	$(INSTALL) -C -m 700 a.out "$(HOME)/lib/ocq-bis"
	-pkill -x ocq-bis
	fbrun -title 'run ocq-bis server' -text 'oux "$(HOME)/lib/ocq-bis"' >/dev/null 2>&1

Plik “0.h” w katalogu modułu lub programu

Jeśli w katalogu znajduje się plik nagłówkowy “0.h”, to zostanie on globalnie włączony do modułu lub programu, więc można w nim umieścić jakieś definicje preprocesora C konfigurujące globalnie program.

Konfiguracja sposobu kompilacji modułów i programu

W plikach “1.mak” i “E_cplus_S_machine.h” znajdujących się w podkatalogu “compile” podsystemu OUX są pojedyncze opcje kompilacji tego podsystemu.

W pliku “1.mak”:

W pliku “E_cplus_S_machine.h”:

Domyślne cele tworzenia modułów i programu

W pliku “2.mak” znajdującym się w podkatalogu “compile” podsystemu OUX zdefiniowane są domyślne cele “run” programu, “install” modułów i “uninstall” modułów.

Jeśli uruchamiamy program przy użyciu “make” poleceniem

make run

to jest uruchamiany program z podkatalogu zapisanego w pliku “Makefile” katalogu podsystemu OUX. Jeśli moduły są kompilowane do postaci plików bibliotek dołączanych w czasie wykonywania, to program jest uruchamiany przy użyciu skompilowanych i nie zainstalowanych bibliotek. W celu uruchomienia programu otwierane jest okno pseudoterminala do wypisywania komunikatów.

Jako użytkownik “root” w systemie operacyjnym można z katalogu podsystemu OUX wydać polecenie

make install

które zainstaluje w systemie operacyjnym pliki bibliotek dołączanych dynamicznie reprezentujących moduły podsystemu OUX, jeśli oczywiście włączone jest kompilowanie do bibliotek.

Można również jako użytkownik “root” wydać polecenie

make uninstall

które te moduły odinstaluje.

W pliku “1.mak” jest zdefiniowana zmienna “H_make_S_usr_lib”, która określa katalog w systemie operacyjnym, gdzie instalować pliki bibliotek.

Jeśli polecenie instalacji lub dezinstalacji zostanie wydane z podkatalogu danego programu, to najpierw zostaną wykonane opisane wyżej akcje dla modułów.