Created
August 2, 2014 17:40
-
-
Save Anton-2/66c327548f5179edd47f to your computer and use it in GitHub Desktop.
Clang makefile for micropython/unix on mac os
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
include ../py/mkenv.mk | |
-include mpconfigport.mk | |
# define main target | |
PROG = micropython | |
# qstr definitions (must come before including py.mk) | |
QSTR_DEFS = qstrdefsport.h | |
# OS name, for simple autoconfig | |
UNAME_S := $(shell uname -s) | |
# include py core make definitions | |
include ../py/py.mk | |
INC = -I. | |
INC += -I$(PY_SRC) | |
INC += -I$(BUILD) | |
# compiler settings | |
CWARN = -Wall -Werror | |
CFLAGS = $(INC) $(CWARN) -ansi -std=gnu99 -DUNIX $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA) | |
# Debugging/Optimization | |
ifdef DEBUG | |
CFLAGS += -g | |
COPT = -O0 | |
else | |
COPT = -Os #-DNDEBUG | |
endif | |
LDFLAGS = $(LDFLAGS_MOD) -lm -Wl,-map,[email protected] $(LDFLAGS_EXTRA) | |
ifeq ($(MICROPY_FORCE_32BIT),1) | |
CFLAGS += -m32 | |
LDFLAGS += -m32 | |
ifeq ($(MICROPY_PY_FFI),1) | |
ifeq ($(UNAME_S),Linux) | |
CFLAGS_MOD += -I/usr/include/i686-linux-gnu | |
endif | |
endif | |
endif | |
ifeq ($(MICROPY_USE_READLINE),1) | |
CFLAGS_MOD += -DMICROPY_USE_READLINE=1 | |
LDFLAGS_MOD += -lreadline | |
# the following is needed for BSD | |
#LDFLAGS_MOD += -ltermcap | |
endif | |
ifeq ($(MICROPY_PY_TIME),1) | |
CFLAGS_MOD += -DMICROPY_PY_TIME=1 | |
SRC_MOD += modtime.c | |
endif | |
ifeq ($(MICROPY_PY_FFI),1) | |
LIBFFI_LDFLAGS_MOD := $(shell pkg-config --libs libffi) | |
LIBFFI_CFLAGS_MOD := $(shell pkg-config --cflags libffi) | |
CFLAGS_MOD += $(LIBFFI_CFLAGS_MOD) -DMICROPY_PY_FFI=1 | |
ifeq ($(UNAME_S),Linux) | |
LDFLAGS_MOD += -ldl | |
endif | |
LDFLAGS_MOD += $(LIBFFI_LDFLAGS_MOD) | |
SRC_MOD += modffi.c | |
endif | |
# source files | |
SRC_C = \ | |
main.c \ | |
gccollect.c \ | |
input.c \ | |
file.c \ | |
modsocket.c \ | |
modos.c \ | |
$(SRC_MOD) | |
ifeq ($(UNAME_S),Darwin) | |
LDFLAGS_MOD += -Wl,-order_file,$(BUILD)/order.def | |
# Must be the last file in list of sources | |
SRC_C += seg_helpers.c | |
# making seg_helpers.c rely on order.def will force order.def to be created | |
seg_helpers.c: $(BUILD)/order.def | |
# create order.def in build directory | |
$(BUILD)/order.def: | |
$(Q)echo "seg_helpers.o: ___bss_start" > $@ | |
endif | |
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o)) | |
include ../py/mkrules.mk | |
.PHONY: test | |
test: $(PROG) ../tests/run-tests | |
$(eval DIRNAME=$(notdir $(CURDIR))) | |
cd ../tests && MICROPY_MICROPYTHON=../$(DIRNAME)/$(PROG) ./run-tests |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment