2014-01-07 09:54:15 -05:00
|
|
|
# where py object files go (they have a name prefix to prevent filename clashes)
|
2014-01-24 04:05:30 -05:00
|
|
|
PY_BUILD = $(BUILD)/py
|
2014-01-07 09:54:15 -05:00
|
|
|
|
2014-01-21 16:40:13 -05:00
|
|
|
# file containing qstr defs for the core Python bit
|
|
|
|
|
|
|
|
PY_QSTR_DEFS = $(PY_SRC)/qstrdefs.h
|
|
|
|
|
2014-01-07 09:54:15 -05:00
|
|
|
# py object files
|
|
|
|
PY_O_BASENAME = \
|
|
|
|
nlrx86.o \
|
|
|
|
nlrx64.o \
|
|
|
|
nlrthumb.o \
|
|
|
|
malloc.o \
|
2014-01-07 10:20:33 -05:00
|
|
|
gc.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
qstr.o \
|
|
|
|
vstr.o \
|
|
|
|
unicode.o \
|
2014-02-22 14:25:23 -05:00
|
|
|
mpz.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
lexer.o \
|
2014-01-08 10:28:26 -05:00
|
|
|
lexerstr.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
lexerunix.o \
|
|
|
|
parse.o \
|
2014-02-15 11:10:44 -05:00
|
|
|
parsehelper.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
scope.o \
|
|
|
|
compile.o \
|
|
|
|
emitcommon.o \
|
|
|
|
emitpass1.o \
|
|
|
|
emitcpy.o \
|
|
|
|
emitbc.o \
|
|
|
|
asmx64.o \
|
|
|
|
emitnx64.o \
|
|
|
|
asmthumb.o \
|
|
|
|
emitnthumb.o \
|
|
|
|
emitinlinethumb.o \
|
2014-03-10 09:27:02 -04:00
|
|
|
formatfloat.o \
|
2014-03-01 14:50:50 -05:00
|
|
|
parsenumbase.o \
|
2014-02-22 13:12:43 -05:00
|
|
|
parsenum.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
runtime.o \
|
|
|
|
map.o \
|
|
|
|
obj.o \
|
2014-01-18 12:24:47 -05:00
|
|
|
objarray.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
objbool.o \
|
|
|
|
objboundmeth.o \
|
|
|
|
objcell.o \
|
|
|
|
objclosure.o \
|
|
|
|
objcomplex.o \
|
|
|
|
objdict.o \
|
2014-01-14 18:55:01 -05:00
|
|
|
objenumerate.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
objexcept.o \
|
2014-01-14 20:37:08 -05:00
|
|
|
objfilter.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
objfloat.o \
|
|
|
|
objfun.o \
|
|
|
|
objgenerator.o \
|
2014-01-24 19:17:36 -05:00
|
|
|
objgetitemiter.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
objint.o \
|
2014-01-17 13:01:36 -05:00
|
|
|
objint_longlong.o \
|
2014-02-22 14:25:23 -05:00
|
|
|
objint_mpz.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
objlist.o \
|
2014-01-14 20:10:09 -05:00
|
|
|
objmap.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
objmodule.o \
|
|
|
|
objnone.o \
|
2014-02-27 15:22:04 -05:00
|
|
|
objnamedtuple.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
objrange.o \
|
|
|
|
objset.o \
|
|
|
|
objslice.o \
|
|
|
|
objstr.o \
|
|
|
|
objtuple.o \
|
|
|
|
objtype.o \
|
2014-01-21 16:40:13 -05:00
|
|
|
objzip.o \
|
2014-01-20 17:19:19 -05:00
|
|
|
sequence.o \
|
2014-01-07 19:43:48 -05:00
|
|
|
stream.o \
|
2014-02-14 10:16:35 -05:00
|
|
|
binary.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
builtin.o \
|
|
|
|
builtinimport.o \
|
2014-02-03 17:44:10 -05:00
|
|
|
builtinevex.o \
|
2014-01-19 18:53:15 -05:00
|
|
|
builtinmp.o \
|
2014-03-08 10:24:39 -05:00
|
|
|
builtinmath.o \
|
2014-01-07 09:54:15 -05:00
|
|
|
vm.o \
|
|
|
|
showbc.o \
|
|
|
|
repl.o \
|
|
|
|
|
|
|
|
# prepend the build destination prefix to the py object files
|
2014-01-24 04:05:30 -05:00
|
|
|
PY_O = $(addprefix $(PY_BUILD)/, $(PY_O_BASENAME))
|
2014-01-07 09:54:15 -05:00
|
|
|
|
2014-01-21 16:40:13 -05:00
|
|
|
# qstr data
|
|
|
|
|
2014-01-24 04:05:30 -05:00
|
|
|
# Adding an order only dependency on $(PY_BUILD) causes $(PY_BUILD) to get
|
|
|
|
# created before we run the script to generate the .h
|
2014-01-25 11:55:31 -05:00
|
|
|
$(PY_BUILD)/qstrdefs.generated.h: | $(PY_BUILD)/
|
2014-01-24 04:05:30 -05:00
|
|
|
$(PY_BUILD)/qstrdefs.generated.h: $(PY_QSTR_DEFS) $(QSTR_DEFS) $(PY_SRC)/makeqstrdata.py
|
2014-01-21 16:40:13 -05:00
|
|
|
$(ECHO) "makeqstrdata $(PY_QSTR_DEFS) $(QSTR_DEFS)"
|
|
|
|
$(Q)python $(PY_SRC)/makeqstrdata.py $(PY_QSTR_DEFS) $(QSTR_DEFS) > $@
|
|
|
|
|
2014-01-24 04:05:30 -05:00
|
|
|
# We don't know which source files actually need the generated.h (since
|
|
|
|
# it is #included from str.h). The compiler generated dependencies will cause
|
|
|
|
# the right .o's to get recompiled if the generated.h file changes. Adding
|
|
|
|
# an order-only dependendency to all of the .o's will cause the generated .h
|
|
|
|
# to get built before we try to compile any of them.
|
|
|
|
$(PY_O): | $(PY_BUILD)/qstrdefs.generated.h
|
2014-01-07 09:54:15 -05:00
|
|
|
|
2014-01-24 04:05:30 -05:00
|
|
|
# emitters
|
2014-01-21 16:40:13 -05:00
|
|
|
|
2014-01-24 04:05:30 -05:00
|
|
|
$(PY_BUILD)/emitnx64.o: CFLAGS += -DN_X64
|
|
|
|
$(PY_BUILD)/emitnx64.o: py/emitnative.c
|
|
|
|
$(call compile_c)
|
2014-01-07 09:54:15 -05:00
|
|
|
|
2014-01-24 04:05:30 -05:00
|
|
|
$(PY_BUILD)/emitnthumb.o: CFLAGS += -DN_THUMB
|
|
|
|
$(PY_BUILD)/emitnthumb.o: py/emitnative.c
|
|
|
|
$(call compile_c)
|
2014-01-07 09:54:15 -05:00
|
|
|
|
2014-01-07 10:20:33 -05:00
|
|
|
# optimising gc for speed; 5ms down to 4ms on pybv2
|
2014-01-30 17:16:51 -05:00
|
|
|
$(PY_BUILD)/gc.o: CFLAGS += -O3
|
2014-01-07 10:20:33 -05:00
|
|
|
|
2014-01-07 09:54:15 -05:00
|
|
|
# optimising vm for speed, adds only a small amount to code size but makes a huge difference to speed (20% faster)
|
2014-01-30 17:16:51 -05:00
|
|
|
$(PY_BUILD)/vm.o: CFLAGS += -O3
|
2014-01-07 09:54:15 -05:00
|
|
|
|