#!make # ifeq "$(origin CC)" "default" CC = clang endif ifeq ($(CC),gcc) CPPFLAGS += -DWANT_VARIADIC_VOIDP_CAST endif PROGRAMS = as-dcpu16 vm-dcpu16 SOURCES = common.c dcpu16.c as-dcpu16.c vm-dcpu16.c \ hw_clock.c hw_keyboard.c hw_lem1802.c hw_spc2000.c CPPFLAGS += -DDEBUG CFLAGS = -g -Wall -Wextra -pedantic -std=c99 UNAME := $(shell uname) ifeq ($(UNAME),Darwin) CPPFLAGS += -DHAVE_FUNOPEN # libpng from system x11, libvncserver from macports CPPFLAGS += -I/usr/X11/include -I/opt/local/include LDFLAGS += -L/usr/X11/lib -L/opt/local/lib 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 # linux needs librt for clock_gettime LDFLAGS += -lrt endif CPPFLAGS += -DHAVE_LIBVNCSERVER -DHAVE_LIBPNG LDFLAGS += -lvncserver -lpng -lreadline all: $(PROGRAMS) depend: .depend .depend: $(SOURCES) @rm -f ./.depend $(CC) $(CFLAGS) -MM $^ >> ./.depend include .depend vm-dcpu16: vm-dcpu16.o dcpu16.o common.o hw_clock.o hw_keyboard.o hw_lem1802.o hw_spc2000.o as-dcpu16: as-dcpu16.o dcpu16.o common.o clean: @rm -rf $(PROGRAMS) *.o *.dSYM .depend check: $(PROGRAMS)