#!make
#
+
+ifeq "$(origin CC)" "default"
+CC = clang
+endif
+
PROGRAMS = as-dcpu16 vm-dcpu16
-SOURCES = dcpu16.c as-dcpu16.c vm-dcpu16.c
+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)
+# linux needs _GNU_SOURCE for fopencookie
+# linux needs _XOPEN_SOURCE=600 (provided by _GNU_SOURCE) for getopt and strdup
+CPPFLAGS += -DHAVE_FOPENCOOKIE -D_GNU_SOURCE
+endif
all: $(PROGRAMS)
include .depend
-vm-dcpu16: vm-dcpu16.o dcpu16.o
-
-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 .depend