# GNU make ma wbudowane reguły mówiące że pliki z rozszerzeniem `.o' 
# robi się z plików o tej samej nazwie z rozszerzeniem `.c' lub `.s'
# lub `.S' przy pomocy kompilatora C. 
# Te reguły nie uwzględniają faktu że plik typy `.c' może wymagać 
# rekompilacji z powodu zmiany plików nagłówkowych (typu `.h').
# To trzeba jawnie napisać. Pomaga w tym program `makedepnd' - buduje 
# on automatycznie reguły opisujące zależności od plików nagłówkowych. 
# Koncowa część tego pliku jest otrzymana przez wydanie polecenia
# `mkdep *.c'
# Polecenie to należy wydać po dopisaniu dyrektywy `#include' do 
# któregoś z plików źródłowych.

CFLAGS = -Wall

OBJS= botsys.o inicjacja.o pisz_znak.o port.o led.o przerwania.o \
	deskryptor.o pisz_kropke.o pomm.o wektor.o liczniki.o \
	piszf_ble.o stronnicowanie.o wypisz.o proces.o \
	atrapa.o tesss.o ttt.o funkcje.o bufor.o klawisze.o \
	czytaj_buf.o
# system otrzymujemy usuwając nagłówek z linuxowego 
# pliku wykonywalnego
sys : boot system 
	cat boot system > sys

# Pomocniczy cel do umieszczania systemu na dyskietce
dysk : sys
	cat sys > /dev/fd0

# Obraz dla Bochs-a
a.img : sys
	cat sys /dev/zero | head -c 1440kb > a.img

system: sysprog 
	objcopy -O binary -R .note -R .comment $< $@
#	tail -c +4097 < $< > $@
#	tail -c +1025 < sysprog | head -c 510 > $@
#	tail -c +1025 < botsig >>$@

sysprog: $(OBJS)
	ld -o $@ -Ttext 0xc0011000 $(OBJS)

botsig : botsig.o
	ld  -o $@ $<

boot : sek0 lat2.font
	tail -c +33 < sek0 > $@
	cat lat2.font >>$@

sek0 :sek0.o
	ld86 -s -o $@ $<

sek0.o : sek0.s 
	as86 -a -0 -o $@ $<

sek0.s : sek0.S
	cc -E $< > $@

wektor.S: wektor.reszta genwek.sed
	sed -f genwek.sed wuu > wektor.S
	cat wektor.reszta >>wektor.S

lat2.font : lat2-16.psf
	tail -c +5 < $< > $@

clean : 
	rm -f *.o wektor.S system sysprog boot lat2.font
# DO NOT DELETE

atrapa.o: proces.h bufor.h sys.h
bufor.o: bufor.h sys.h
deskryptor.o: deskryptor.h tss.h stronnicowanie.h gdt.h parametry.h sys.h
funkcje.o: proces.h bufor.h sys.h
inicjacja.o: stronnicowanie.h parametry.h deskryptor.h gdt.h tesss.h sys.h
klawisze.o: proces.h bufor.h sys.h
led.o: sys.h
liczniki.o: sys.h
pisz_kropke.o: sys.h
pisz_znak.o: sys.h
piszf_ble.o: sys.h 
pomm.o: sys.h
proces.o: proces.h sys.h
przerwania.o: sys.h
stronnicowanie.o: bledy.h stronnicowanie.h parametry.h sys.h
tesss.o: proces.h stronnicowanie.h bledy.h bufor.h parametry.h sys.h
wypisz.o: proces.h sys.h
