Files
OpenBK7231T_App/libraries/berry.mk
Bartosz Nitka 7e1afd0fdf [POC] Run berry-lang (#1544)
* setChannel(ch, v) in Berry

* try

* t2

* b

* fx

* update to berry with autogenerated files

* Add debug to find out whether the submodule is really checked out

* Revert "Add debug to find out whether the submodule is really checked out"

This reverts commit 40ec2f6677.

* Add src/berry checkout to every build

* berry separate file p1

* #define ENABLE_OBK_BERRY 1 on Beken only

* Compile in obkSimulator

Compiles, but crashes in parser.
Seems like the Berry code has not been tested under MSVC2017.

* Checkout with submodules in obkSimulator workflow

* berry with ffs msvc fix

* berry autogen fiasco fix

* OpenBK7231T compiles from official berry, handle prebuild

Breaks obkSimulator

* Fix botched rebase on .gitmodules

* Build in msvc with a berry prebuild step (requires python)

* MSVC: also extend include directories for Release

* Fix BK723x build, extract common berry build rules into berry.mk

* Fix OpenBL602 build

This doesn't actually compile berry for OpenBL602, but makes compile
errors go away and marks where further work will be needed.

* working delayMs

Test Plan:
```
berry state = 1; var tick; def tick() state = 1 - state; channelSet(1, state); delayMs(1000, tick); end; tick();
```
can be stopped with `stopAllScripts`

* only use os_realloc on PLATFORM_BK7231T

* Move as much berry logic as possible out of cmd_script

* Guard more with ENABLE_OBK_BERRY

* upload script

* file operations & working import

* enough to implement "Advanced turn off after time with timer on UI and timer setting on UI and kept in flash"

* experiments

* clang-format -i src/berry/be_*.{h,c} src/cmnds/cmd_berry.c

* Remove redundant hfile != NULL

Calling with hfile == NULL would be bug in some other part of the code

* Don't checkout other submodules for simulator build

* remove stray debug & .user files

* Use be_newcomobj

* Build sim on linux

* build linux sim [2]

* threads & tests

* Leave enabled on Windows, disable on BEKEN

* SIM_RunWindow fix?

* allow "startScript test.be" as a shorthand for "berry import test" ??

* test?

* fix /

* test arg

* test2

* test

* test add

* fx

* test

* just checking if i can use import without module?

* test with module

* CMD_StopBerry fix?

* run obk command from berry? probably not good idea due to the stack size, will delay execution later?

* str arg

* test to see if i have to repeat import

* submit unfinished code

* concat tst

* more tests

* fix copy/paste mistake, add fib test

* fx

* channelSet

* fx

* try

* tester.fib(11)

* rename

---------

Co-authored-by: Tester23 <85486843+openshwprojects@users.noreply.github.com>
Co-authored-by: NonPIayerCharacter <18557343+NonPIayerCharacter@users.noreply.github.com>
2025-03-30 20:37:37 +02:00

68 lines
2.3 KiB
Makefile

# meant to be included, depends on BERRY_SRCPATH and obj_from_c function
INCLUDES += -I$(BERRY_SRCPATH)
BERRY_SRC_C += $(BERRY_SRCPATH)/be_api.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_baselib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_bytecode.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_byteslib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_class.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_code.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_debug.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_debuglib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_exec.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_filelib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_func.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_gc.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_gclib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_globallib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_introspectlib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_jsonlib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_lexer.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_libs.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_list.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_listlib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_map.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_maplib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_mathlib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_mem.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_module.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_object.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_oslib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_parser.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_rangelib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_repl.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_solidifylib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_strictlib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_string.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_strlib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_syslib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_timelib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_undefinedlib.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_var.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_vector.c
BERRY_SRC_C += $(BERRY_SRCPATH)/be_vm.c
COC = $(BERRY_SRCPATH)/../tools/coc/coc
BERRY_GENERATE = $(BERRY_SRCPATH)/../generate
BERRY_CONFIG = $(BERRY_SRCPATH)/../../../include/berry_conf.h
ifneq ($(V), 1)
Q=@
MSG=@echo
else
MSG=@true
endif
BERRY_OBJS = $(call obj_from_c,$(BERRY_SRC_C))
$(BERRY_OBJS): berry_const_tab
berry_const_tab: $(BERRY_GENERATE) $(BERRY_SRC_C) $(BERRY_CONFIG)
$(MSG) [Prebuild] generate resources
$(Q) $(COC) -o $(BERRY_GENERATE) $(BERRY_SRCPATH) -c $(BERRY_CONFIG)
$(BERRY_GENERATE):
$(Q) mkdir $(BERRY_GENERATE)