# Cyclone Scheme # Copyright (c) 2014, Justin Ethier # All rights reserved. # # Configuration options for the makefile # Compiler options CFLAGS ?= -O2 -Wall -march=armv6k -Iinclude -L. COMP_CFLAGS ?= -O2 -Wall -march=armv6k -I$(PREFIX)/include -L$(PREFIX)/lib # Use these lines instead for debugging or profiling #CFLAGS = -g -Wall #CFLAGS = -g -pg -Wall CC ?= cc LIBS = -pthread -lcyclone -lck -lm # Commands "baked into" cyclone for invoking the C compiler CC_PROG ?= "$(CC) ~src-file~ $(COMP_CFLAGS) -c -o ~exec-file~.o" CC_EXEC ?= "$(CC) ~exec-file~.o ~obj-files~ $(LIBS) $(COMP_CFLAGS) -o ~exec-file~" CC_LIB ?= "$(CC) ~src-file~ $(COMP_CFLAGS) -c -o ~exec-file~.o" AR ?= ar #CD ?= cd RM ?= rm -f #LS ?= ls #CP ?= cp #LN ?= ln INSTALL ?= install MKDIR ?= $(INSTALL) -d RMDIR ?= rmdir PREFIX ?= /usr/local BINDIR ?= $(PREFIX)/bin LIBDIR ?= $(PREFIX)/lib INCDIR ?= $(PREFIX)/include/cyclone DATADIR ?= $(PREFIX)/share/cyclone DESTDIR ?= # Automatically detect platform-specific flags, instead of using autoconf #CYC_PLATFORM_HAS_MEMSTREAM ?= 1 CYC_PLATFORM_HAS_MEMSTREAM := $(shell echo "main(){char *buf; int len; open_memstream(&buf, &len);}" | gcc -xc - >/dev/null 2>/dev/null && echo 1 || echo 0) CYC_PLATFORM_HAS_FMEMOPEN := $(shell echo "main(){char *buf; fmemopen(&buf, 0, \"r\");}" | gcc -xc - >/dev/null 2>/dev/null && echo 1 || echo 0) # code from chibi's makefile to detect platform ifndef PLATFORM ifeq ($(shell uname),Darwin) PLATFORM=macosx else ifeq ($(shell uname),FreeBSD) PLATFORM=bsd else ifeq ($(shell uname),NetBSD) PLATFORM=bsd else ifeq ($(shell uname),OpenBSD) PLATFORM=bsd else ifeq ($(shell uname),DragonFly) PLATFORM=bsd else ifeq ($(shell uname -o),Msys) PLATFORM=mingw SOLIBDIR = $(BINDIR) DIFFOPTS = -b else ifeq ($(shell uname -o),Cygwin) PLATFORM=cygwin SOLIBDIR = $(BINDIR) DIFFOPTS = -b else ifeq ($(shell uname -o),GNU/Linux) PLATFORM=linux else PLATFORM=unix endif endif endif endif endif endif endif endif endif