git clone --recursive https://github.com/pfalcon/esp-open-sdk
cd esp-open-sdk
make STANDALONE=y
add to path, etc.
Then, I download the web server code and try to compile that now:
git clone "https://github.com/dubaurazvan/esp8266-wireless-switcher.git"
cd esp8266-wireless-switcher
make
Then I get zillion errors, all similar to this:
CC user/stdout.c
In file included from include/espmissingincludes.h:4:0,
from user/stdout.c:13:
/home/amadeus/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/include/ets_sys.h:14:1: error: unknown type name 'uint32_t'
typedef uint32_t ETSSignal;
So I look at the ets_sys.h file and the first few lines are
/*
* copyright (c) 2008 - 2011 Espressif System
*
* Define user specified Event signals and Task priorities here
*
*/
#ifndef _ETS_SYS_H
#define _ETS_SYS_H
#include "c_types.h"
#include "eagle_soc.h"
typedef uint32_t ETSSignal;
typedef uint32_t ETSParam;
It uses uint32_t which I'm guessing should be defined in c_types.h in the same directory. So then I look at c_types.h and
/*
* Copyright (c) 2010 - 2011 Espressif System
*
*/
#ifndef _C_TYPES_H_
#define _C_TYPES_H_
#include <stdint.h>
#include <stdbool.h>
#if 0
typedef unsigned char uint8_t;
typedef signed char sint8_t;
typedef signed char int8_t;
typedef unsigned short uint16_t;
typedef signed short sint16_t;
typedef signed short int16_t;
typedef unsigned long uint32_t;
typedef signed long sint32_t;
typedef signed long int32_t;
typedef signed long long sint64_t;
typedef unsigned long long uint64_t;
typedef unsigned long long u_int64_t;
typedef float real32_t;
typedef double real64_t;
#endif
etc. so sure enough, uint32_t is not defined, because of the #if 0 directive. In the esp-open-sdk (the root of the sdk) I have a c_types-c99.patch that does precisely that, surrounds the typedefs in c_types.h with an #if 0 / #endif.
So what's the deal here? I might be able to re-compile the sdk without the c_types-c99 patch somehow, but I bet that will break other things. Any ideas?
I'm doing this on a 64 bit Fedora 22 machine.
Thanks!