LICENSE: BSD 3-Clause "New" or "Revised" License
[libmalice.git] / Makefile
index cdd89df8203d6d86d144266e1935de001ec73b8f..49698ee5b799f6acf654ae81ccfbb7771b5e96fe 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,41 @@
 NASMFLAGS = -f elf
+CINCLUDE=
+CWARNS=-Wall -Wpointer-arith -Wnested-externs
+CFLAGS=$(CINCLUDE) $(CWARNS) -O2
+LDFLAGS=
 
-all: libmalice.o
+SRCDIR=src
+BINDIR=build
+
+all: libmalice.o demo-printing demo-input-char demo-input-int demo-exitcode demo-exitclean
 
 libmalice.o: libmalice.asm
        nasm $(NASMFLAGS) -o $@ $<
 
+.c.o:
+       cc $(CFLAGS) -c -o $@ $<
+
+demo-printing: demo-printing.o libmalice.o
+       ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+
+demo-input-char: demo-input-char.o libmalice.o
+       ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+
+demo-input-int: demo-input-int.o libmalice.o
+       ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+
+demo-exitcode: demo-exitcode.o libmalice.o
+       ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+
+demo-exitclean: demo-exitclean.o libmalice.o
+       ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+
+
 .PHONY : clean
 clean:
        rm -f *.o
-
-.PHONY : distclean
-distclean: clean
-       rm -f *~
-
-.PHONY : test
-test: all
+       rm -f demo-printing
+       rm -f demo-input-char
+       rm -f demo-input-int
+       rm -f demo-exitcode
+       rm -f demo-exitclean