support png output, buffered file writing
[dcpu16] / Makefile
index ad94a65a6dcd3f1aadad04f7c551a78a69564b47..70445ff8f27955f86faadebf6200ff1805748700 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,19 +1,43 @@
 #!make
 #
+
+ifeq "$(origin CC)" "default"
+CC = clang
+endif
+
 PROGRAMS = as-dcpu16 vm-dcpu16
+SOURCES = common.c dcpu16.c as-dcpu16.c vm-dcpu16.c display.c
 
+CPPFLAGS += -DHAVE_LIBPNG -I/usr/X11/include/
 CFLAGS = -g -Wall -Wextra -pedantic -std=c99
-LDFLAGS = -lreadline
+LDFLAGS += -lreadline
+LDFLAGS += -L/usr/X11/lib -lpng
+
+UNAME := $(shell uname)
+ifeq ($(UNAME),Darwin)
+CPPFLAGS += -DHAVE_FUNOPEN
+endif
+ifeq ($(UNAME),Linux)
+CPPFLAGS += -DHAVE_FOPENCOOKIE -D_XOPEN_SOURCE=600
+endif
+
 
 all:   $(PROGRAMS)
 
-vm-dcpu16: vm-dcpu16.o dcpu16.o
+depend:        .depend
+
+.depend:       $(SOURCES)
+       @rm -f ./.depend
+       $(CC) $(CFLAGS) -MM $^ >> ./.depend
+
+include .depend
+
 
-as-dcpu16: as-dcpu16.o
+vm-dcpu16:     vm-dcpu16.o dcpu16.o common.o display.o
 
-dcpu16:        dcpu16.o
+as-dcpu16:     as-dcpu16.o common.o
 
 clean: 
-       @rm -rf $(PROGRAMS) *.o *.dSYM
+       @rm -rf $(PROGRAMS) *.o *.dSYM .depend
 
 check: $(PROGRAMS)