#!make
#
+
+ifeq "$(origin CC)" "default"
+CC = clang
+endif
+
PROGRAMS = as-dcpu16 vm-dcpu16
+SOURCES = common.c dcpu16.c as-dcpu16.c vm-dcpu16.c
+CPPFLAGS = -D_XOPEN_SOURCE=600
CFLAGS = -g -Wall -Wextra -pedantic -std=c99
LDFLAGS = -lreadline
-HEADERS = dcpu16.h
all: $(PROGRAMS)
-%.o: %.c $(HEADERS)
+depend: .depend
+
+.depend: $(SOURCES)
+ @rm -f ./.depend
+ $(CC) $(CFLAGS) -MM $^ >> ./.depend
+
+include .depend
-vm-dcpu16: vm-dcpu16.o dcpu16.o
-as-dcpu16: as-dcpu16.o
+vm-dcpu16: vm-dcpu16.o dcpu16.o common.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)