blob: 07a75f7adb79bc740a7b286ff0a7574f62b6f8da [file] [log] [blame]
Dave Hylandsc89c6812014-01-24 01:05:30 -08001include ../py/mkenv.mk
Paul Sokolovskyed1239f2014-02-01 20:06:55 +02002-include mpconfigport.mk
Dave Hylandsc89c6812014-01-24 01:05:30 -08003
Damien George136f6752014-01-07 14:54:15 +00004# define main target
Damien George7d089352014-01-20 00:02:39 +00005PROG = micropython
Damienc025ebb2013-10-12 14:30:21 +01006
Damien George55baff42014-01-21 21:40:13 +00007# qstr definitions (must come before including py.mk)
8QSTR_DEFS = qstrdefsport.h
9
Damien George136f6752014-01-07 14:54:15 +000010# include py core make definitions
11include ../py/py.mk
12
Damien George136f6752014-01-07 14:54:15 +000013# compiler settings
Damien George3bb8bd82014-04-14 21:20:30 +010014CFLAGS = -I. -I$(PY_SRC) -Wall -Werror -ansi -std=gnu99 -DUNIX $(CFLAGS_MOD) $(COPT)
Gordon McGregor3890ec42014-02-14 16:37:37 -060015
16UNAME_S := $(shell uname -s)
17 ifeq ($(UNAME_S),Darwin)
18 LDFLAGS = $(LDFLAGS_MOD) -lm -Wl,-map,$@.map
19else
20 LDFLAGS = $(LDFLAGS_MOD) -lm -Wl,-Map=$@.map,--cref
21 endif
Paul Sokolovskyed1239f2014-02-01 20:06:55 +020022
Andrew Scheller571d5a32014-04-16 01:46:01 +010023ifeq ($(MICROPY_FORCE_32BIT),1)
24CFLAGS += -m32
25LDFLAGS += -m32
26ifeq ($(MICROPY_MOD_FFI),1)
27ifeq ($(UNAME_S),Linux)
28CFLAGS_MOD += -I/usr/include/i686-linux-gnu
29endif
30endif
31endif
32
Paul Sokolovsky793838a2014-02-27 18:10:40 +020033ifeq ($(MICROPY_USE_READLINE),1)
34CFLAGS_MOD += -DMICROPY_USE_READLINE=1
35LDFLAGS_MOD += -lreadline
36# the following is needed for BSD
37#LDFLAGS_MOD += -ltermcap
38endif
Paul Sokolovskya9459bc2014-02-02 00:57:06 +020039ifeq ($(MICROPY_MOD_TIME),1)
40CFLAGS_MOD += -DMICROPY_MOD_TIME=1
Paul Sokolovskyc3936842014-04-04 20:32:26 +030041SRC_MOD += modtime.c
Paul Sokolovskya9459bc2014-02-02 00:57:06 +020042endif
Paul Sokolovskyed1239f2014-02-01 20:06:55 +020043ifeq ($(MICROPY_MOD_FFI),1)
Damien Georgea9082022014-02-01 18:48:19 +000044CFLAGS_MOD += `pkg-config --cflags libffi` -DMICROPY_MOD_FFI=1
Paul Sokolovskyed1239f2014-02-01 20:06:55 +020045LDFLAGS_MOD += -ldl -lffi
Paul Sokolovskyc3936842014-04-04 20:32:26 +030046SRC_MOD += modffi.c
Paul Sokolovskyed1239f2014-02-01 20:06:55 +020047endif
48
Damienc025ebb2013-10-12 14:30:21 +010049
Damien George56bb6362014-01-26 17:52:23 +000050# Debugging/Optimization
John R. Lenton95499192014-01-13 13:25:10 +000051ifdef DEBUG
Paul Sokolovsky5be1b282014-02-12 20:20:39 +020052CFLAGS += -g
53COPT = -O0
John R. Lenton95499192014-01-13 13:25:10 +000054else
Paul Sokolovsky5be1b282014-02-12 20:20:39 +020055COPT = -Os #-DNDEBUG
John R. Lenton95499192014-01-13 13:25:10 +000056endif
57
Damien George136f6752014-01-07 14:54:15 +000058# source files
Damienc025ebb2013-10-12 14:30:21 +010059SRC_C = \
60 main.c \
Paul Sokolovskye7db8172014-02-11 00:44:37 +020061 gccollect.c \
Paul Sokolovskye0e79ae2014-01-08 02:52:20 +020062 file.c \
Paul Sokolovskyc3936842014-04-04 20:32:26 +030063 modsocket.c \
Paul Sokolovskyed1239f2014-02-01 20:06:55 +020064 $(SRC_MOD)
Damienc025ebb2013-10-12 14:30:21 +010065
Damien George55baff42014-01-21 21:40:13 +000066OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
Damienc025ebb2013-10-12 14:30:21 +010067
Dave Hylandsc89c6812014-01-24 01:05:30 -080068include ../py/mkrules.mk
Damienc025ebb2013-10-12 14:30:21 +010069