VER=0.01

all : ./scripts/menld ./scripts/mengcc lib/libmsys.a lib/crt0.o lib/crt1.o

./scripts/menld : ./scripts/genmld
	./scripts/genmld . > ./scripts/menld
	chmod +x ./scripts/menld

./scripts/mengcc : ./scripts/genmgcc
	./scripts/genmgcc . > ./scripts/mengcc
	chmod +x ./scripts/mengcc

clean :
	rm -f lib/time/*.o lib/mouse/*.o lib/background/*.o
	rm -f lib/events/*.o lib/devices/*.o lib/cd/*.o
	rm -f lib/processes/*.o lib/keyboard/*.o lib/drawing/*.o
	rm -f lib/fileio/*.o lib/sound/*.o lib/drives/*.o
	rm -f lib/language/*.o
	rm -f lib/libmsys.a lib/*.o scripts/menld scripts/mengcc

dist : clean
	rm -f ../libmsys-$(VER).zip
	rm -f ../libmsys-$(VER).tar.bz2
	rm -f ../libmsys-$(VER).tar.gz
	cd ..; zip -r9 libmsys-$(VER).zip libmsys-$(VER)
	cd ..; tar czf libmsys-$(VER).tar.gz libmsys-$(VER)
	cd ..; tar --use-compress-program bzip2 -cf libmsys-$(VER).tar.bz2 \
		libmsys-$(VER)

PFXM=$(PFX)/libmsys

install : all
	mkdir -p $(PFXM)
	mkdir -p $(PFXM)/lib
	mkdir -p $(PFXM)/lib/scripts
	mkdir -p $(PFXM)/include
	mkdir -p $(PFXM)/bin
	cp lib/libmsys.a lib/crt0.o lib/crt1.o $(PFXM)/lib
	rm -rf $(PFXM)/include
	cp -a include $(PFXM)
	./scripts/genmgcc $(PFXM) > $(PFXM)/bin/mengcc
	chmod +x $(PFXM)/bin/mengcc
	./scripts/genmld $(PFXM) > $(PFXM)/bin/menld
	chmod +x $(PFXM)/bin/menld
	cp lib/scripts/menuet.lds $(PFXM)/lib/scripts

lib/crt0.o : src/crt0.S
	$(MCC) -Wall -Werror -c src/crt0.S -o lib/crt0.o
lib/crt1.o : src/crt1.c
	$(MCC) -Wall -Werror -c src/crt1.c -o lib/crt1.o

AR=ar

MCC=./scripts/mengcc

OBJS= \
lib/gethdr.o \
lib/time/clock.o \
lib/time/date.o \
lib/mouse/getmouseposscrrel.o \
lib/mouse/getmouseposwinrel.o \
lib/mouse/getmousestatus.o \
lib/background/dbgrnd.o \
lib/background/getbgdata.o \
lib/background/getbgsz.o \
lib/background/getbgtype.o \
lib/background/unk0.o \
lib/events/checkev.o \
lib/events/getkey.o \
lib/events/twaitev.o \
lib/events/waitev.o \
lib/events/wevents.o \
lib/events/getbutton.o \
lib/devices/firq.o \
lib/devices/getirqd.o \
lib/devices/getirqo.o \
lib/devices/pirqs.o \
lib/devices/rirq.o \
lib/devices/fport.o \
lib/devices/rport.o \
lib/devices/sdd.o \
lib/cd/cdlist.o \
lib/cd/cdstop.o \
lib/cd/cdtrack.o \
lib/processes/shutdown.o \
lib/processes/delayhs.o \
lib/processes/tsc.o \
lib/processes/startapp.o \
lib/processes/starthdapp.o \
lib/processes/procinfo.o \
lib/processes/idle.o \
lib/processes/killapp.o \
lib/processes/wactiv.o \
lib/processes/endapp.o \
lib/processes/appints.o \
lib/keyboard/getkeylayout.o \
lib/keyboard/setkeylayout.o \
lib/keyboard/getkeymap.o \
lib/keyboard/getshkeymap.o \
lib/keyboard/setkeymap.o \
lib/keyboard/setshkeymap.o \
lib/drawing/wnum.o \
lib/drawing/wtext.o \
lib/drawing/getpx.o \
lib/drawing/setpx.o \
lib/drawing/begind.o \
lib/drawing/endd.o \
lib/drawing/ndefwin.o \
lib/drawing/defwin.o \
lib/drawing/drawline.o \
lib/drawing/drawrect.o \
lib/drawing/putimg.o \
lib/drawing/getstr.o \
lib/drawing/getscrsz.o \
lib/drawing/defbutton.o \
lib/drawing/setredrawtype.o \
lib/drawing/randwin.o \
lib/drawing/randwinscale.o \
lib/drawing/setbuttontype.o \
lib/fileio/getf32.o \
lib/fileio/readf32f.o \
lib/fileio/setf32.o \
lib/fileio/setf32data.o \
lib/fileio/writef32.o \
lib/fileio/readhd.o \
lib/fileio/flush.o \
lib/fileio/delrdfile.o \
lib/fileio/saverdfile.o \
lib/fileio/getfdir.o \
lib/sound/getsb16base.o \
lib/sound/getwssbase.o \
lib/sound/setsb.o \
lib/sound/setsb16m1cdvol.o \
lib/sound/setsb16m1mvol.o \
lib/sound/setsb16m2cdvol.o \
lib/sound/setsb16m2mvol.o \
lib/sound/setwssbase.o \
lib/sound/setwsscdvol.o \
lib/sound/setwssmvol.o \
lib/sound/getmidibase.o \
lib/sound/outmidi.o \
lib/sound/resetmidi.o \
lib/sound/setmidi.o \
lib/sound/loadmus.o \
lib/sound/playmus.o \
lib/drives/sethd.o \
lib/drives/setcdbase.o \
lib/drives/getcdbase.o \
lib/drives/gethdbase.o \
lib/language/getlang.o \
lib/language/setlang.o

lib/libmsys.a : $(OBJS)
	rm -f lib/libmsys.a
	$(AR) r lib/libmsys.a $(OBJS)

lib/%.o : src/%.c
	$(MCC) -Wall -Werror  -c $< -o $@
