Comments (25)
This might help (tested on yosemite 10.10.1):
install proper sed, gperf and grep:
brew install gnu-sed --with-default-names
brew tap homebrew/dupes
brew install gperf
brew install grep
create and mount a case sensitive volume:
hdiutil create ~/Desktop/eos.dmg -volname "esp-open-sdk" -size 10g -fs "Case-sensitive HFS+"
hdiutil mount ~/Desktop/eos.dmg
cd /Volumes/eos-open-sdk
git clone [email protected]:pfalcon/esp-open-sdk.git
cd eos-open-sdk
build it normally
make
from esp-open-sdk.
This issue is very likely the same as the one fixed in this patch request. The patch should be included quite soon.
In meantime, you could update your gperf installation using homebrew or apply the patch manually.
from esp-open-sdk.
Installing gperf from homebrew fixed that error, but now I'm getting an error about an illegal option being passed to sed: http://pastebin.com/P71T5sud
EDIT: I got the sed issue fixed by installing gnu-sed from homebrew, but now it gives an error about my filesystem not being case sensitive: [ERROR] Your file system in '/Users/ivo/Desktop/esp-open-sdk/crosstool-NG/.build' is *not* case-sensitive!
from esp-open-sdk.
@george-hopkins: Thanks for your hints, because I don't use MacOSX and the only reply I could have is to draw attention to "Building" section of https://github.com/pfalcon/esp-open-sdk/blob/master/README , which stipulates that GNU tools should be installed.
from esp-open-sdk.
EDIT: I got the sed issue fixed by installing gnu-sed from homebrew, but now it gives an error about my filesystem not being case sensitive: [ERROR] Your file system in '/Users/ivo/Desktop/esp-open-sdk/crosstool-NG/.build' is not case-sensitive!
Well, I remember reading somewhere there's an option for MacOSX to make filesystem case-sensitive, you may want to google for that.
Overall, there's little I can do with this bugreport - this project is just a Makefile which calls to crosstool-NG, which in turn calls to standard configure scripts for gcc, binutils, etc. Bugreports should be sent to those projects instead. In particular, if it's known that some patch to crosstool-NG resolves an issues, please file bugreport to https://github.com/jcmvbkbc/crosstool-NG , that's what I use, and if it it will be fixed there, I just pull new version to this project.
Otherwise, we can just document what steps and workarounds are required for MacOSX build, or if nothing works, say it's not supported (and suggest using Linux VM instead for example).
from esp-open-sdk.
I found a workaround for Mac OS X, you need to create a case-sensitive disk image and build/use the compiler from there
from esp-open-sdk.
The case sensitivity issues have been resolved, but now I get another error: http://pastebin.com/vBmv0D86
from esp-open-sdk.
This is probably due to some incompatioility of your grep binary.
You could try to install GNU grep from homebrew-dupes and modify paths.sh
in the crosstool-NG
folder.
paths.sh
(untested):
export install="/usr/local/bin/ginstall -c"
export bash="/brew2/local/bin/bash"
export awk="/brew2/local/bin/gawk"
export grep="/brew2/local/bin/ggrep"
export make="/usr/bin/make"
export sed="/brew2/local/bin/gsed"
export libtool="/brew2/local/bin/glibtool"
export libtoolize="/brew2/local/bin/glibtoolize"
export objcopy="/brew2/local/bin/gobjcopyi"
export objdump="/brew2/local/bin/gobjdump"
export readelf="/brew2/local/bin/greadelf"
export patch="/usr/bin/patch"
from esp-open-sdk.
Hi,
After installing everything needed using MacPorts, and replacing osx sed with gsed, i got to the point where xtensa src throws an error.
Yet if i rerun "make STANDALONE=y" it says the toolchain is installed.
Build log: http://pastebin.com/Mq2VsrvF
No idea how to test if it works thou, need a few pointers.
from esp-open-sdk.
You could try to compile this sample project: esp8266/source-code-examples/basic_example
Don't forget to adjust XTENSA_TOOLS_ROOT
. If this works, you should be fine (at least in my opinion).
from esp-open-sdk.
I don't know exactly what I did, but it's building now! YAY!
from esp-open-sdk.
Thanks @tralamazza, worked like a charm! Just ran into one issue where lx106-hal tried to use my system ar instead of the xtensa compiler version. Filed a PR with that project here: tommie/lx106-hal#6
from esp-open-sdk.
I was playing with MacPorts not brew and finally got the compiler running on OSX like a charm:
Need to install proper packages first ( although I might missed something ):
sudo port install git gsed gawk binutils gperf grep gettext py-serial
Then create case sensitive volume ( like described by @tralamazza):
hdiutil create -size 10g -fs "Case-sensitive HFS+" -volname ESPTools ESPTools.sparsebundle
hdiutil attach ESPTools.sparsebundle
cd /Volumes/ESPTools
Get the compiler (check which git you are using. OSX one automatically initializes submodules, whether macport one is not. TO avoid this add --recursive option):
git clone https://github.com/pfalcon/esp-open-sdk.git --recursive
cd esp-open-sdk
Patch it:
sed -i.bak '1s/^/gettext=\'$'\n/' crosstool-NG/kconfig/Makefile
sed -i.bak -e 's/[[:<:]]sed[[:>:]]/gsed/' Makefile
sed -i.bak -e 's/[[:<:]]awk[[:>:]]/\$(AWK)/' lx106-hal/src/Makefile.am
sed -i.bak 's/AM_PROG_AS/AM_PROG_AS\'$'\nAM_PROG_AR/' lx106-hal/configure.ac
And finally build:
make STANDALONE=n ... or y
from esp-open-sdk.
I do all step above,run make but got error:
make -C crosstool-NG -f ../Makefile _toolchain
./ct-ng xtensa-lx106-elf
gmake[2]: Entering directory '/Volumes/ESPTools/esp-open-sdk/crosstool-NG'
ct-ng:26: /Volumes/ESPTools/esp-open-sdk/crosstool-NG/lib/ct-ng.1.20.0/paths.mk: No such file or directory
ct-ng:113: /Volumes/ESPTools/esp-open-sdk/crosstool-NG/lib/ct-ng.1.20.0/config/config.mk: No such file or directory
ct-ng:114: /Volumes/ESPTools/esp-open-sdk/crosstool-NG/lib/ct-ng.1.20.0/kconfig/kconfig.mk: No such file or directory
ct-ng:115: /Volumes/ESPTools/esp-open-sdk/crosstool-NG/lib/ct-ng.1.20.0/steps.mk: No such file or directory
ct-ng:116: /Volumes/ESPTools/esp-open-sdk/crosstool-NG/lib/ct-ng.1.20.0/samples/samples.mk: No such file or directory
ct-ng:117: /Volumes/ESPTools/esp-open-sdk/crosstool-NG/lib/ct-ng.1.20.0/scripts/scripts.mk: No such file or directory
gmake[2]: *** No rule to make target '/Volumes/ESPTools/esp-open-sdk/crosstool-NG/lib/ct-ng.1.20.0/scripts/scripts.mk'。 停止。
gmake[2]: Leaving directory '/Volumes/ESPTools/esp-open-sdk/crosstool-NG'
make[1]: *** [_toolchain] Error 2
make: *** [/Volumes/ESPTools/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc] Error 2
from esp-open-sdk.
if into crosstool-NG,run make will got error as:
Undefined symbols for architecture x86_64:
"_libintl_bindtextdomain", referenced from:
_main in conf.o
"_libintl_gettext", referenced from:
_conf_parse in zconf.tab.o
_conf_read_simple in zconf.tab.o
_conf_write in zconf.tab.o
_get_prompt_str in zconf.tab.o
_get_symbol_str in zconf.tab.o
_get_relations_str in zconf.tab.o
_menu_get_ext_help in zconf.tab.o
...
"_libintl_setlocale", referenced from:
_main in conf.o
"_libintl_textdomain", referenced from:
_main in conf.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[2]: *** [conf] Error 1
make[1]: *** [build-lib-kconfig] Error 2
make: *** [build] Error 2
from esp-open-sdk.
@supergis Are you sure you have the gettext from macports installed ? If not please install.
from esp-open-sdk.
Thanks for your advice. I been installed gettext, but get same error.
Any others advice?
from esp-open-sdk.
Please paste the output from following commands:
gobjdump -f /opt/local/lib/libintl.8.dylib
port list gettext
from esp-open-sdk.
I'm trying to compile on OS X 10.9 and get the following
lberezy@air /V/e/esp-open-sdk> make STANDALONE=y
make -C crosstool-NG -f ../Makefile _ct-ng
./bootstrap
Running autoconf...
Done. You may now run:
./configure
./configure --prefix=`pwd`
checking build system type... x86_64-apple-darwin13.4.0
checking host system type... x86_64-apple-darwin13.4.0
checking for a BSD-compatible install... /usr/bin/install -c
checking for grep that handles long lines and -e... /usr/local/bin/ggrep
checking for egrep... /usr/local/bin/ggrep -E
checking for a sed that does not truncate output... /usr/local/bin/sed
checking whether sed understands -r -i -e... yes
checking whether ln -s works... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for ranlib... ranlib
checking for gobjcopy... gobjcopy
checking for absolute path to gobjcopy... /usr/local/bin/gobjcopy
checking for gobjdump... gobjdump
checking for absolute path to gobjdump... /usr/local/bin/gobjdump
checking for greadelf... greadelf
checking for absolute path to greadelf... /usr/local/bin/greadelf
checking for gperf... gperf
checking for absolute path to gperf... /usr/bin/gperf
checking for bison... bison
checking for flex... flex
checking for makeinfo... makeinfo
checking for cut... cut
checking for stat... stat
checking for readlink... readlink
checking for wget... wget
checking for tar... tar
checking for gzip... gzip
checking for bzip2... bzip2
checking for patch... /usr/bin/patch
checking for bash >= 3.1... /bin/bash
checking for GNU awk... /usr/local/bin/gawk
checking for GNU make >= 3.80... /usr/bin/make
checking whether /usr/bin/make sets $(MAKE)... yes
checking for make 3.81... yes
checking for GNU libtool >= 1.5.26... /usr/local/bin/glibtool
checking for GNU libtoolize >= 1.5.26... /usr/local/bin/glibtoolize
checking for GNU automake >= 1.10... /usr/local/bin/automake
checking for xz... xz
checking for cvs... no
checking for svn... svn
checking for inline... inline
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking libintl.h usability... no
checking libintl.h presence... no
checking for libintl.h... no
checking ncurses/ncurses.h usability... no
checking ncurses/ncurses.h presence... no
checking for ncurses/ncurses.h... no
checking ncurses/curses.h usability... no
checking ncurses/curses.h presence... no
checking for ncurses/curses.h... no
checking ncursesw/curses.h usability... no
checking ncursesw/curses.h presence... no
checking for ncursesw/curses.h... no
checking ncurses.h usability... yes
checking ncurses.h presence... yes
checking for ncurses.h... yes
checking for library containing initscr... -lncurses
configure: creating ./config.status
config.status: creating Makefile
make MAKELEVEL=0
SED 'ct-ng'
SED 'scripts/crosstool-NG.sh'
SED 'scripts/saveSample.sh'
SED 'scripts/showTuple.sh'
GEN 'config/configure.in'
GEN 'paths.mk'
GEN 'paths.sh'
DEP 'nconf.gui.dep'
DEP 'nconf.dep'
DEP 'lxdialog/yesno.dep'
DEP 'lxdialog/util.dep'
DEP 'lxdialog/textbox.dep'
DEP 'lxdialog/menubox.dep'
DEP 'lxdialog/inputbox.dep'
DEP 'lxdialog/checklist.dep'
DEP 'mconf.dep'
DEP 'conf.dep'
BISON 'zconf.tab.c'
GPERF 'zconf.hash.c'
LEX 'lex.zconf.c'
DEP 'zconf.tab.dep'
CC 'zconf.tab.o'
In file included from zconf.tab.c:234:
./zconf.hash.c:177:8: warning: implicit declaration of function 'offsetof' is invalid in C99 [-Wimplicit-function-declaration]
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str2), T_ON, TF_PARAM},
^
./zconf.hash.c:177:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str2), T_ON, TF_PARAM},
^
./zconf.hash.c:178:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str3), T_OPT_ENV, TF_OPTION},
^
./zconf.hash.c:180:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str5), T_ENDIF, TF_COMMAND},
^
./zconf.hash.c:181:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str6), T_OPTION, TF_COMMAND},
^
./zconf.hash.c:182:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str7), T_ENDMENU, TF_COMMAND},
^
./zconf.hash.c:183:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str8), T_OPTIONAL, TF_COMMAND},
^
./zconf.hash.c:184:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str9), T_ENDCHOICE, TF_COMMAND},
^
./zconf.hash.c:185:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str10), T_RANGE, TF_COMMAND},
^
./zconf.hash.c:186:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str11), T_CHOICE, TF_COMMAND},
^
./zconf.hash.c:187:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str12), T_DEFAULT, TF_COMMAND, S_UNKNOWN},
^
./zconf.hash.c:188:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str13), T_DEFAULT, TF_COMMAND, S_BOOLEAN},
^
./zconf.hash.c:189:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str14), T_HELP, TF_COMMAND},
^
./zconf.hash.c:191:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str16), T_CONFIG, TF_COMMAND},
^
./zconf.hash.c:192:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str17), T_DEFAULT, TF_COMMAND, S_TRISTATE},
^
./zconf.hash.c:193:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str18), T_TYPE, TF_COMMAND, S_HEX},
^
./zconf.hash.c:194:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str19), T_OPT_DEFCONFIG_LIST,TF_OPTION},
^
./zconf.hash.c:196:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str22), T_IF, TF_COMMAND|TF_PARAM},
^
./zconf.hash.c:197:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str23), T_TYPE, TF_COMMAND, S_INT},
^
./zconf.hash.c:199:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str27), T_OPT_MODULES, TF_OPTION},
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
make: *** [zconf.tab.o] Error 1
make: *** [build-lib-kconfig] Error 2
make: *** [build] Error 2
make[1]: *** [_ct-ng] Error 2
make: *** [crosstool-NG/ct-ng] Error 2
Any pointers? Wrong version of GCC?
lberezy@air /V/e/esp-open-sdk> gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
from esp-open-sdk.
Try to install bison and gperf from macports and try again
from esp-open-sdk.
This is the tl;dr edition of what's already been said by george-hopkins and Poopi above.
On a case sensitive drive, using macports, execute this in the esp-open-sdk folder:
export bash="/opt/local/bin/bash"
export awk="/opt/local/bin/gawk"
export grep="/opt/local/bin/ggrep"
export make="/usr/bin/make"
export sed="/opt/local/bin/gsed"
export libtool="/opt/local/bin/glibtool"
export libtoolize="/opt/local/bin/glibtoolize"
export objcopy="/opt/local/bin/gobjcopyi"
export objdump="/opt/local/bin/gobjdump"
export readelf="/opt/local/bin/greadelf"
export patch="/usr/bin/patch"
sed -i.bak '1s/^/gettext=\'$'\n/' crosstool-NG/kconfig/Makefile
sed -i.bak -e 's/[[:<:]]sed[[:>:]]/gsed/' Makefile
sed -i.bak -e 's/[[:<:]]awk[[:>:]]/\$(AWK)/' lx106-hal/src/Makefile.am
sed -i.bak 's/AM_PROG_AS/AM_PROG_AS\'$'\nAM_PROG_AR/' lx106-hal/configure.ac
Then
make STANDALONE=n ... or y
That's all i needed to make it build on yosemite
from esp-open-sdk.
#40 contributed MacOSX instructions to README, closing.
from esp-open-sdk.
I'm trying to compile the library for mac but keep getting this error.
make STANDALONE=n
cp esptool/esptool.py /Volumes/esp-open-sdk/esp-open-sdk/xtensa-lx106-elf/bin/
ln -snf esp_iot_sdk_v1.3.0 sdk
make -C lx106-hal -f ../Makefile _libhal
autoreconf -i
PATH=/Volumes/esp-open-sdk/esp-open-sdk/xtensa-lx106-elf/bin:/Users/cesar/.rbenv/shims:/Users/cesar/Downloads/cocos2d-x-3.1/tools/cocos2d-console/bin:/opt/local/bin:/opt/local/sbin:/Users/cesar/.gvm/groovy/current/bin:/Users/cesar/.gvm/grails/current/bin:/Users/cesar/.gvm/griffon/current/bin:/Users/cesar/.gvm/gradle/current/bin:/Users/cesar/.gvm/vertx/current/bin:/Users/cesar/.gvm/bin:/Users/cesar/.gvm/ext:/Applications/CMake.app/Contents/bin/:/Users/cesar/Downloads/libs/oclint-0.6-x86_64-apple-darwin12/bin:/usr/local/mysql-5.6.10-osx10.7-x86_64/bin/:/Users/cesar/Downloads/sbt/bin/:/Developer/SDKs/Research In Motion/BlackBerry 10 WebWorks SDK 1.0.4.5/dependencies/tools/bin:/Developer/SDKs/Research In Motion/BlackBerry 10 WebWorks SDK 1.0.4.5:/Users/cesar/gems/bin:/Users/cesar/.rvm/gems/ruby-1.9.3-p362/bin:/Users/cesar/.rvm/gems/ruby-1.9.3-p362@global/bin:/Users/cesar/.rvm/rubies/ruby-1.9.3-p362/bin:/Users/cesar/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Users/cesar/Downloads/apache-ant-1.9.4/bin:/Applications/Qt5/5.0.0-rc1/clang_64/bin/:/Library/Frameworks/Python.framework/Versions/3.3/bin/:/Users/cesar/Downloads/apache-maven-3.1.1/bin/:/Users/cesar/Library/Android/tools/:/Users/cesar/Library/Android/platform-tools/:/Users/cesar/Downloads/mongodb/bin ./configure --host=xtensa-lx106-elf --prefix=/Volumes/esp-open-sdk/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr
/bin/sh: In: command not found
make[1]: *** [_libhal] Error 127
make: *** [/Volumes/esp-open-sdk/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/libhal.a] Error 2
Any clue?
from esp-open-sdk.
Hi, i am trying to compile with max OS X Sierra but i have this :
Makefile:181: warning: overriding commands for target `ESP8266_NONOS_SDK_V2.0.0_16_08_10/.dir'
Makefile:176: warning: ignoring old commands for target `ESP8266_NONOS_SDK_V2.0.0_16_08_10/.dir'
make -C crosstool-NG -f ../Makefile _ct-ng
../Makefile:181: warning: overriding commands for target `ESP8266_NONOS_SDK_V2.0.0_16_08_10/.dir'
../Makefile:176: warning: ignoring old commands for target `ESP8266_NONOS_SDK_V2.0.0_16_08_10/.dir'
./bootstrap
Running autoconf...
Done. You may now run:
./configure
./configure --prefix=`pwd`
checking build system type... x86_64-apple-darwin16.5.0
checking host system type... x86_64-apple-darwin16.5.0
checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking for grep that handles long lines and -e... ./configure: line 2584: 45032 Abort trap: 6 "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" > "conftest.out" 2> /dev/null
/usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking whether sed understands -r -i -e... no
configure: error:
make[1]: *** [_ct-ng] Error 1
make: *** [crosstool-NG/ct-ng] Error 2
from esp-open-sdk.
@Grousee you need to replace sed in your system with gsed.
from esp-open-sdk.
Related Issues (20)
- hi! when executing a command: Make ---> Makefile:74: recipe execution error for the target «image.elf.bin» (Ubuntu 16.04 x32, Python 2.7.12, Nodemcu esp8266) HOT 2
- when executing a command: Make (Ubuntu 16.04 x32, Python 2.7.12, Nodemcu esp8266)
- Request to add Support for SDK 3.0.2 HOT 2
- gcc: error: unrecognized command line option '-mlongcalls' HOT 2
- Q: Is Canadian Cross supported? HOT 2
- Cannot compile on openSUSE, could not find curses header HOT 2
- Flash doesn't work for esp-12
- failed to build it in MacOS HOT 11
- esp-open-sdk uses crosstools-NG that recognizes versions of bash only up to 4.x HOT 7
- Toolchain generation for 1.5.4 NONOS SDK HOT 2
- Does not work with Xcode 12 HOT 1
- make build error (local-patches/gcc/4.8.5/) HOT 1
- Make error: Expat-2.1.0 renamed on sourceforge HOT 4
- crosstool-ng build fail on Debian 10 HOT 8
- i can't install isl 0.14 HOT 9
- . HOT 10
- Compilation error due to non case-sensitivity on Msys2/MinGW32
- PLEASE UPDATE INSTRUCTIONS FOR PYTHON3 HOT 5
- Linker can't find these libraries after a successful compilation HOT 1
- Updates steps required to build in Raspberry Pi (Debian 12)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from esp-open-sdk.