Files
Upsilon/python/Makefile
cartoone222 34506d334c Add an option to disable shift + clear (#368)
* add bgcolor to turtul module

* add bgcolor to toolbox and a minor fix

* ok is ok now i hope however

* Submodule Omega-Kawaii-Theme remove

* this featurs https://github.com/UpsilonNumworks/Upsilon/issues/285

* Update escher/src/text_area.cpp casse coresction

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* change name of function beacause code to late in night is bad idee

* invation of capital letter

* Update apps/settings/sub_menu/code_options_controller.cpp

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* Update escher/src/text_area.cpp

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* im not shure all is done

* the last hiden locke

* fix https://github.com/UpsilonNumworks/Upsilon/issues/271

* Update apps/global_preferences.h

Co-authored-by: Quentin <github@arra.red>

* Update apps/settings/sub_menu/code_options_controller.cpp

Co-authored-by: Quentin <git@quentinguidee.dev>

* Update apps/global_preferences.h

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* Update apps/global_preferences.h

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* reformatting the code to meet the expected quality

* Update apps/settings/base.pt.i18n

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* Update apps/settings/base.de.i18n

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* Update apps/settings/base.es.i18n

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* Update apps/settings/base.hu.i18n

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* Update apps/settings/base.it.i18n

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* Update apps/settings/base.nl.i18n

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>

* fix nameing

* Update apps/settings/base.en.i18n

---------

Co-authored-by: Yaya-Cout <67095734+Yaya-Cout@users.noreply.github.com>
Co-authored-by: Quentin <github@arra.red>
Co-authored-by: Quentin <git@quentinguidee.dev>
2025-03-31 18:17:30 +00:00

253 lines
5.9 KiB
Makefile

SFLAGS += -Ipython/src
SFLAGS += -Ipython/port
SFLAGS += -I$(BUILD_DIR)/python/port
SFLAGS += -DEPSILON_VERSION="$(EPSILON_VERSION)" -DOMEGA_VERSION="$(OMEGA_VERSION)" -DUPSILON_VERSION="$(UPSILON_VERSION)"
# How to maintain this Makefile
# - Copy PY_CORE_O_BASENAME from py.mk into py_src
# - Copy select PY_EXTMOD_O_BASENAME from py.mk into extmod_src
# - Edit special-case workarounds below as needed
py_src = $(addprefix python/src/py/,\
mpstate.c \
nlr.c \
nlrx86.c \
nlrx64.c \
nlrthumb.c \
nlraarch64.c \
nlrpowerpc.c \
nlrxtensa.c \
nlrsetjmp.c \
malloc.c \
gc.c \
pystack.c \
qstr.c \
vstr.c \
mpprint.c \
unicode.c \
mpz.c \
reader.c \
lexer.c \
parse.c \
scope.c \
compile.c \
emitcommon.c \
emitbc.c \
asmbase.c \
asmx64.c \
emitnx64.c \
asmx86.c \
emitnx86.c \
asmthumb.c \
emitnthumb.c \
emitinlinethumb.c \
asmarm.c \
emitnarm.c \
asmxtensa.c \
emitnxtensa.c \
emitinlinextensa.c \
emitnxtensawin.c \
formatfloat.c \
parsenumbase.c \
parsenum.c \
emitglue.c \
persistentcode.c \
runtime.c \
runtime_utils.c \
scheduler.c \
nativeglue.c \
pairheap.c \
ringbuf.c \
stackctrl.c \
argcheck.c \
warning.c \
profile.c \
map.c \
obj.c \
objarray.c \
objattrtuple.c \
objbool.c \
objboundmeth.c \
objcell.c \
objclosure.c \
objcomplex.c \
objdeque.c \
objdict.c \
objenumerate.c \
objexcept.c \
objfilter.c \
objfloat.c \
objfun.c \
objgenerator.c \
objgetitemiter.c \
objint.c \
objint_longlong.c \
objint_mpz.c \
objlist.c \
objmap.c \
objmodule.c \
objobject.c \
objpolyiter.c \
objproperty.c \
objnone.c \
objnamedtuple.c \
objrange.c \
objreversed.c \
objset.c \
objsingleton.c \
objslice.c \
objstr.c \
objstrunicode.c \
objstringio.c \
objtuple.c \
objtype.c \
objzip.c \
opmethods.c \
sequence.c \
stream.c \
binary.c \
builtinimport.c \
builtinevex.c \
builtinhelp.c \
modarray.c \
modbuiltins.c \
modcollections.c \
modgc.c \
modio.c \
modmath.c \
modcmath.c \
modmicropython.c \
modstruct.c \
modsys.c \
moduerrno.c \
modthread.c \
vm.c \
bc.c \
showbc.c \
repl.c \
smallint.c \
frozenmod.c \
)
extmod_src += $(addprefix python/src/extmod/,\
modurandom.c \
)
port_src += $(addprefix python/port/,\
port.c \
builtins.c \
helpers.c \
mod/ion/modion.cpp \
mod/ion/modion_table.cpp \
mod/ion/file.cpp \
mod/kandinsky/modkandinsky.cpp \
mod/kandinsky/modkandinsky_table.c \
mod/matplotlib/modmatplotlib.cpp \
mod/matplotlib/modmatplotlib_table.c \
mod/matplotlib/pyplot/modpyplot.cpp \
mod/matplotlib/pyplot/modpyplot_table.c \
mod/matplotlib/pyplot/plot_controller.cpp \
mod/matplotlib/pyplot/plot_store.cpp \
mod/matplotlib/pyplot/plot_view.cpp \
mod/time/modtime.c \
mod/time/modtime_table.c \
mod/os/modos.cpp \
mod/os/modos_table.c \
mod/turtle/modturtle.cpp \
mod/turtle/modturtle_table.c \
mod/turtle/turtle.cpp \
mphalport.c \
)
ifeq ($(INCLUDE_ULAB), 1)
port_src += $(addprefix python/port/,\
mod/ulab/scipy/linalg/linalg.c \
mod/ulab/scipy/optimize/optimize.c \
mod/ulab/scipy/signal/signal.c \
mod/ulab/scipy/special/special.c \
mod/ulab/ndarray_operators.c \
mod/ulab/ulab_tools.c \
mod/ulab/ndarray.c \
mod/ulab/ndarray_properties.c \
mod/ulab/numpy/approx.c \
mod/ulab/numpy/compare.c \
mod/ulab/ulab_create.c \
mod/ulab/numpy/fft/fft.c \
mod/ulab/numpy/fft/fft_tools.c \
mod/ulab/numpy/filter.c \
mod/ulab/numpy/linalg/linalg.c \
mod/ulab/numpy/linalg/linalg_tools.c \
mod/ulab/numpy/ndarray/ndarray_iter.c \
mod/ulab/numpy/numerical.c \
mod/ulab/numpy/poly.c \
mod/ulab/numpy/stats.c \
mod/ulab/numpy/transform.c \
mod/ulab/numpy/vector.c \
mod/ulab/numpy/numpy.c \
mod/ulab/scipy/scipy.c \
mod/ulab/user/user.c \
mod/ulab/utils/utils.c \
mod/ulab/ulab.c \
)
endif
# Workarounds
# Rename urandom to random
# In order to change the name of the micropython module 'urandom' to 'random'
# (without altering micropython files), we redefined the macro MP_QSTR_urandom
# by DMP_QSTR_random.
$(call object_for,python/src/py/objmodule.c): SFLAGS += -DMP_QSTR_urandom="MP_QSTR_random"
$(call object_for,python/src/extmod/modurandom.c): SFLAGS += -DMP_QSTR_urandom="MP_QSTR_random"
# Rename usys to sys
# In order to change the name of the micropython module 'usys' to 'sys'
# (without altering micropython files), we redefined the macro MP_QSTR_usys
# by DMP_QSTR_sys.
$(call object_for,python/src/py/objmodule.c): SFLAGS += -DMP_QSTR_usys="MP_QSTR_sys"
$(call object_for,python/src/extmod/modusys.c): SFLAGS += -DMP_QSTR_usys="MP_QSTR_sys"
# Handle upward-growing stack
# Some platforms such as emscripten have a stack that grows up. We've rewritten
# the stack control file to handle this case.
py_src := $(filter-out python/src/py/stackctrl.c, $(py_src))
port_src += python/port/stackctrl.c
# Fix the GC on emscripten
# With optimizations, register and stack variables might be held in a JavaScript
# local variables, which breaks garbage collection. Indeed, these JavaScript
# variables cannot be marked as root during garbage collection, which means that
# the heap objects they depend on will likely be destroyed. When the Python
# computing resumes, if necessary heap objects have been destroyed, the Python
# program crashes.
ifeq ($(PLATFORM),emscripten)
$(call object_for,$(py_src)): SFLAGS := $(subst -Os,-O0,$(SFLAGS))
endif
python_src = $(py_src) $(extmod_src) $(port_src)
# QSTR generation
$(eval $(call rule_for, \
QSTRDAT, \
python/port/genhdr/qstrdefs.generated.h, \
python/port/genhdr/qstrdefs.in.h, \
$$(PYTHON) python/src/py/makeqstrdata.py $$< > $$@, \
global \
))
$(call object_for,$(python_src)): $(BUILD_DIR)/python/port/genhdr/qstrdefs.generated.h
tests_src += $(addprefix python/test/,\
basics.cpp \
execution_environment.cpp \
ion.cpp \
kandinsky.cpp \
math.cpp \
random.cpp \
time.cpp \
turtle.cpp \
matplotlib.cpp \
ulab.cpp \
)