summaryrefslogtreecommitdiffstatsabout
diff options
context:
space:
mode:
authorJiaojinxing <jiaojinxing1987@gmail.com>2016-02-27 09:21:19 (GMT)
committer Jiaojinxing <jiaojinxing1987@gmail.com>2016-02-27 09:21:19 (GMT)
commit84a8e7ed72e96eeccdb831ed0e73fc067de2bb5b (patch)
tree2dc36b641a7c3f42648bd6b9c33565d5731c140c
parent585ef308a1e67c2b06436062d278b955c3221405 (diff)
downloadlibxemail-84a8e7ed72e96eeccdb831ed0e73fc067de2bb5b.zip
libxemail-84a8e7ed72e96eeccdb831ed0e73fc067de2bb5b.tar.gz
libxemail-84a8e7ed72e96eeccdb831ed0e73fc067de2bb5b.tar.bz2
Updated Makefile and Added MIPS support.
-rw-r--r--.cproject34
-rw-r--r--.gitignore4
-rw-r--r--.rcsetting15
-rw-r--r--.settings/org.eclipse.cdt.core.prefs6
-rw-r--r--.template/Makefile.arch4
-rw-r--r--.template/config.mk41
-rw-r--r--Makefile230
-rw-r--r--Makefile.arm221
-rw-r--r--Makefile.mips221
-rw-r--r--Makefile.ppc0
-rw-r--r--Makefile.x860
-rw-r--r--config.mk17
12 files changed, 522 insertions, 271 deletions
diff --git a/.cproject b/.cproject
index a22b383..ed767d7 100644
--- a/.cproject
+++ b/.cproject
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
- <cconfiguration id="com.sylixos.realcoder.toolChain.armsylixeabi.1307549435">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.sylixos.realcoder.toolChain.armsylixeabi.1307549435" moduleId="org.eclipse.cdt.core.settings" name="Default">
+ <cconfiguration id="com.sylixos.realcoder.toolChain.armsylixeabi.473637203">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.sylixos.realcoder.toolChain.armsylixeabi.473637203" moduleId="org.eclipse.cdt.core.settings" name="Default">
<macros>
+ <stringMacro name="SYLIXOS_TOOLCHAIN_PATH" type="VALUE_PATH_DIR" value="C:\ACOINFO\arm-sylixos-toolchain"/>
+ <stringMacro name="SYLIXOS_TEMPLATE_ARCH" type="VALUE_TEXT"/>
<stringMacro name="SYLIXOS_TOOLCHAIN_VER" type="VALUE_TEXT" value="4.9.3"/>
- <stringMacro name="SYLIXOS_TOOLCHAIN_PATH" type="VALUE_PATH_DIR" value="D:\ZTHSOFT\arm-sylixos-toolchain"/>
<stringMacro name="SYLIXOS_TOOLCHAIN_PREFIX" type="VALUE_TEXT" value="arm-sylixos-eabi"/>
- <stringMacro name="SYLIXOS_BASE_PATH" type="VALUE_PATH_DIR" value="E:/workspace/sylixos_base"/>
+ <stringMacro name="SYLIXOS_BASE_PATH" type="VALUE_PATH_DIR" value="D:/workspace/sylixos-base"/>
+ <stringMacro name="SYLIXOS_TEMPLATE_NAME" type="VALUE_TEXT"/>
</macros>
<externalSettings/>
<extensions>
@@ -22,26 +24,25 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="${ProjName}" buildProperties="" description="" id="com.sylixos.realcoder.toolChain.armsylixeabi.1307549435" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
- <folderInfo id="com.sylixos.realcoder.toolChain.armsylixeabi.1307549435.616393721" name="/" resourcePath="">
- <toolChain id="com.sylixos.realcoder.toolChain.armsylixeabi.1879518038" name="arm-sylixos-toolchain" superClass="com.sylixos.realcoder.toolChain.armsylixeabi">
- <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="com.sylixos.realcoder.targetPlatform.armsylixoseabi.1502637610" isAbstract="false" name="SylixOS TagetPlagform" osList="win32" superClass="com.sylixos.realcoder.targetPlatform.armsylixoseabi"/>
- <builder id="com.sylixos.realcoder.builder.armsylixeabi.738030869" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="SylixOS Builder" superClass="com.sylixos.realcoder.builder.armsylixeabi"/>
- <tool id="com.sylixos.realcoder.tool.armsylixeabi.255610179" name="arm-sylixos-eabi-gcc" superClass="com.sylixos.realcoder.tool.armsylixeabi">
- <option id="com.sylixos.realcoder.option.armsylixoseabi.include.1309924073" name="Include paths (-I)" superClass="com.sylixos.realcoder.option.armsylixoseabi.include" valueType="includePath">
+ <configuration artifactName="${ProjName}" buildProperties="" description="" id="com.sylixos.realcoder.toolChain.armsylixeabi.473637203" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
+ <folderInfo id="com.sylixos.realcoder.toolChain.armsylixeabi.473637203.651897656" name="/" resourcePath="">
+ <toolChain id="com.sylixos.realcoder.toolChain.armsylixeabi.1963403761" name="SylixOS Toolchain" superClass="com.sylixos.realcoder.toolChain.armsylixeabi">
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="com.sylixos.realcoder.targetPlatform.armsylixoseabi.445728806" isAbstract="false" name="SylixOS TagetPlagform" osList="win32" superClass="com.sylixos.realcoder.targetPlatform.armsylixoseabi"/>
+ <builder id="com.sylixos.realcoder.builder.armsylixeabi.2065597485" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="SylixOS Builder" superClass="com.sylixos.realcoder.builder.armsylixeabi"/>
+ <tool id="com.sylixos.realcoder.tool.armsylixeabi.1389178635" name="arm-sylixos-eabi-gcc" superClass="com.sylixos.realcoder.tool.armsylixeabi">
+ <option id="com.sylixos.realcoder.option.armsylixoseabi.include.1875611234" superClass="com.sylixos.realcoder.option.armsylixoseabi.include" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_BASE_PATH}/libsylixos/SylixOS&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_BASE_PATH}/libsylixos/SylixOS/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_BASE_PATH}/libsylixos/SylixOS/include/inet&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_TOOLCHAIN_PATH}/${SYLIXOS_TOOLCHAIN_PREFIX}/include&quot;"/>
<listOptionValue builtIn="false" value="&quot;${SYLIXOS_TOOLCHAIN_PATH}/lib/gcc/${SYLIXOS_TOOLCHAIN_PREFIX}/${SYLIXOS_TOOLCHAIN_VER}/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/libcurl/curl-7.40.0/include}&quot;"/>
</option>
- <option id="com.sylixos.realcoder.option.armsylixoseabi.DefinedSymbols.929438738" name="Defined symbols(-D)" superClass="com.sylixos.realcoder.option.armsylixoseabi.DefinedSymbols" valueType="definedSymbols">
+ <option id="com.sylixos.realcoder.option.armsylixoseabi.DefinedSymbols.285935813" superClass="com.sylixos.realcoder.option.armsylixoseabi.DefinedSymbols" valueType="definedSymbols">
<listOptionValue builtIn="false" value="__GNUC__=4"/>
<listOptionValue builtIn="false" value="SYLIXOS"/>
</option>
- <inputType id="com.sylixos.realcoder.inputType.armnsylixeabic.1963019236" name="SylixOS Input C" superClass="com.sylixos.realcoder.inputType.armnsylixeabic"/>
- <inputType id="com.sylixos.realcoder.inputType.armnsylixeabicpp.1772359768" name="SylixOS Input CPP" superClass="com.sylixos.realcoder.inputType.armnsylixeabicpp"/>
+ <inputType id="com.sylixos.realcoder.inputType.armnsylixeabic.321381997" name="SylixOS Input C" superClass="com.sylixos.realcoder.inputType.armnsylixeabic"/>
+ <inputType id="com.sylixos.realcoder.inputType.armnsylixeabicpp.1705532603" name="SylixOS Input CPP" superClass="com.sylixos.realcoder.inputType.armnsylixeabicpp"/>
</tool>
</toolChain>
</folderInfo>
@@ -51,11 +52,10 @@
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="libxemail.null.1950022481" name="libxemail"/>
+ <project id="libxemail.null.1663442566" name="libxemail"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="refreshScope"/>
</cproject>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1b8c7c6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/Debug
+/Release
+/.settings
+/.rcsetting
diff --git a/.rcsetting b/.rcsetting
deleted file mode 100644
index 92fd97b..0000000
--- a/.rcsetting
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="GB2312" standalone="no"?>
-<SylixOSSetting>
-<UploadSetting HostName="192.168.1.33" Password="root" UserName="root">
-<PathPair LocalPath="E:\workspace\libxemail\Debug\libxemail.so" RemotePath="/lib/libxemail.so"/>
-</UploadSetting>
-<BaseSetting ProjectType="DynamicLibProject">
-<BaseCfgPair Macro="SylixOS_Base_Path" Value="E:/workspace/sylixos_base"/>
-<BaseCfgPair Macro="SylixOS_Toolchain" Value="arm-sylixos-eabi"/>
-<BaseCfgPair Macro="SylixOS_Toolchain_Path" Value="D:\ZTHSOFT\arm-sylixos-toolchain"/>
-<BaseCfgPair Macro="SylixOS_Toolchain_Ver" Value="4.9.3"/>
-<BaseCfgPair Macro="SylixOS_Debug_Level" Value="debug"/>
-<BaseCfgPair Macro="Create_Date" Value="2015 年06 月06 日"/>
-</BaseSetting>
-<BuildConfigration/>
-</SylixOSSetting>
diff --git a/.settings/org.eclipse.cdt.core.prefs b/.settings/org.eclipse.cdt.core.prefs
deleted file mode 100644
index 856433f..0000000
--- a/.settings/org.eclipse.cdt.core.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-environment/project/com.sylixos.realcoder.toolChain.armsylixeabi.1307549435/PATH/delimiter=;
-environment/project/com.sylixos.realcoder.toolChain.armsylixeabi.1307549435/PATH/operation=replace
-environment/project/com.sylixos.realcoder.toolChain.armsylixeabi.1307549435/PATH/value=D\:\\ZTHSOFT\\arm-sylixos-toolchain\\bin;D\:\\ZTHSOFT\\arm-sylixos-toolchain\\yagarto-tools\\bin;D\:\\ZTHSOFT\\arm-sylixos-toolchain\\yagarto-tools\\bin;D\:\\ZTHSOFT\\arm-sylixos-toolchain\\bin;C\:\\ProgramData\\Oracle\\Java\\javapath;C\:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C\:\\Windows\\system32;C\:\\Windows;C\:\\Windows\\System32\\Wbem;C\:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C\:\\Program Files (x86)\\Windows7Master;C\:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C\:\\Program Files\\TortoiseGit\\bin;C\:\\Program Files (x86)\\ATMEL Corporation\\AT91-ISP v1.13\\Library\\;C\:\\Program Files (x86)\\ATMEL Corporation\\AT91-ISP v1.13\\sam-ba 2.9
-environment/project/com.sylixos.realcoder.toolChain.armsylixeabi.1307549435/append=true
-environment/project/com.sylixos.realcoder.toolChain.armsylixeabi.1307549435/appendContributed=true
diff --git a/.template/Makefile.arch b/.template/Makefile.arch
new file mode 100644
index 0000000..3e593bd
--- /dev/null
+++ b/.template/Makefile.arch
@@ -0,0 +1,4 @@
+#*********************************************************************************************************
+# include architecture related Makefile
+#*********************************************************************************************************
+include Makefile.$(SylixOS_Arch)
diff --git a/.template/config.mk b/.template/config.mk
new file mode 100644
index 0000000..ebc46ca
--- /dev/null
+++ b/.template/config.mk
@@ -0,0 +1,41 @@
+#*********************************************************************************************************
+#
+# 中国软件开源组织
+#
+# 嵌入式实时操作系统
+#
+# SylixOS(TM) LW : long wing
+#
+# Copyright All Rights Reserved
+#
+#--------------文件信息--------------------------------------------------------------------------------
+#
+# 文 件 名: config.mk
+#
+# 创 建 人: RealEvo-IDE
+#
+# 文件创建日期: $(Create_Date)
+#
+# 描 述: 本文件由 RealEvo-IDE 生成,用于配置 Makefile 功能,请勿手动修改
+#*********************************************************************************************************
+#*********************************************************************************************************
+# SylixOS Base Project path
+#*********************************************************************************************************
+SYLIXOS_BASE_PATH = $(SylixOS_Base_Path)
+
+#*********************************************************************************************************
+# Toolchain prefix
+#*********************************************************************************************************
+TOOLCHAIN_PREFIX = $(SylixOS_Toolchain)-
+
+#*********************************************************************************************************
+# Debug options (debug or release)
+#*********************************************************************************************************
+DEBUG_LEVEL = $(SylixOS_Debug_Level)
+
+#*********************************************************************************************************
+# NOTICE: libsylixos, BSP and other kernel modules projects CAN NOT use vfp!
+#*********************************************************************************************************
+FPUFLAGS = $(SylixOS_Fpu_Type)
+CPUFLAGS = $(SylixOS_Cpu_Type) $(FPUFLAGS)
+
diff --git a/Makefile b/Makefile
index 0866dcd..4fdfaf0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,230 +1,4 @@
#*********************************************************************************************************
-# libxemail Makefile
-# target -> libxemail.a
-# libxemail.so
-#*********************************************************************************************************
-
-#*********************************************************************************************************
-# include config.mk
-#*********************************************************************************************************
-CONFIG_MK_EXIST = $(shell if [ -f ../config.mk ]; then echo exist; else echo notexist; fi;)
-ifeq ($(CONFIG_MK_EXIST), exist)
-include ../config.mk
-else
-CONFIG_MK_EXIST = $(shell if [ -f config.mk ]; then echo exist; else echo notexist; fi;)
-ifeq ($(CONFIG_MK_EXIST), exist)
-include config.mk
-else
-CONFIG_MK_EXIST =
-endif
-endif
-
-#*********************************************************************************************************
-# check configure
-#*********************************************************************************************************
-check_defined = \
- $(foreach 1,$1,$(__check_defined))
-__check_defined = \
- $(if $(value $1),, \
- $(error Undefined $1$(if $(value 2), ($(strip $2)))))
-
-$(call check_defined, CONFIG_MK_EXIST, Please configure this project in RealCoder or \
-create a config.mk file!)
-$(call check_defined, SYLIXOS_BASE_PATH, SylixOS base project path)
-$(call check_defined, TOOLCHAIN_PREFIX, the prefix name of toolchain)
-$(call check_defined, DEBUG_LEVEL, debug level(debug or release))
-
-#*********************************************************************************************************
-# configure area you can set the following config to you own system
-# FPUFLAGS (-mfloat-abi=softfp -mfpu=vfpv3 ...)
-# CPUFLAGS (-mcpu=arm920t ...)
-# NOTICE: libsylixos, BSP and other kernel modules projects CAN NOT use vfp!
-#*********************************************************************************************************
-FPUFLAGS =
-CPUFLAGS = -mcpu=arm920t $(FPUFLAGS)
-
-#*********************************************************************************************************
-# toolchain select
-#*********************************************************************************************************
-CC = $(TOOLCHAIN_PREFIX)gcc
-CXX = $(TOOLCHAIN_PREFIX)g++
-AS = $(TOOLCHAIN_PREFIX)gcc
-AR = $(TOOLCHAIN_PREFIX)ar
-LD = $(TOOLCHAIN_PREFIX)g++
-
-#*********************************************************************************************************
-# do not change the following code
-# buildin internal application source
-#*********************************************************************************************************
-#*********************************************************************************************************
-# src(s) file
-#*********************************************************************************************************
-SRCS = \
-lib/xemail.c
-
-#*********************************************************************************************************
-# build path
-#*********************************************************************************************************
-ifeq ($(DEBUG_LEVEL), debug)
-OUTDIR = Debug
-else
-OUTDIR = Release
-endif
-
-OUTPATH = ./$(OUTDIR)
-OBJPATH = $(OUTPATH)/obj
-DEPPATH = $(OUTPATH)/dep
-
-#*********************************************************************************************************
-# target
-#*********************************************************************************************************
-LIB = $(OUTPATH)/libxemail.a
-DLL = $(OUTPATH)/libxemail.so
-
-#*********************************************************************************************************
-# objects
-#*********************************************************************************************************
-OBJS = $(addprefix $(OBJPATH)/, $(addsuffix .o, $(basename $(SRCS))))
-DEPS = $(addprefix $(DEPPATH)/, $(addsuffix .d, $(basename $(SRCS))))
-
-#*********************************************************************************************************
-# include path
-#*********************************************************************************************************
-INCDIR = -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS"
-INCDIR += -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include"
-INCDIR += -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include/inet"
-
-INCDIR += -I"include"
-INCDIR += -I"../libcurl/curl-7.40.0/include"
-
-#*********************************************************************************************************
-# compiler preprocess
-#*********************************************************************************************************
-DSYMBOL = -DSYLIXOS
-DSYMBOL += -DSYLIXOS_LIB
-
-#*********************************************************************************************************
-# depend dynamic library
-#*********************************************************************************************************
-DEPEND_DLL = -lcurl
-
-#*********************************************************************************************************
-# depend dynamic library search path
-#*********************************************************************************************************
-DEPEND_DLL_PATH = -L"../libcurl/$(OUTDIR)"
-
-#*********************************************************************************************************
-# compiler optimize
-#*********************************************************************************************************
-ifeq ($(DEBUG_LEVEL), debug)
-OPTIMIZE = -O0 -g3 -gdwarf-2
-else
-OPTIMIZE = -O2 -g1 -gdwarf-2 # Do NOT use -O3 and -Os
-endif # -Os is not align for function
- # loop and jump.
-#*********************************************************************************************************
-# depends and compiler parameter (cplusplus in kernel MUST NOT use exceptions and rtti)
-#*********************************************************************************************************
-DEPENDFLAG = -MM
-CXX_EXCEPT = -fno-exceptions -fno-rtti
-COMMONFLAGS = $(CPUFLAGS) $(OPTIMIZE) -Wall -fmessage-length=0 -fsigned-char -fno-short-enums
-ASFLAGS = -x assembler-with-cpp $(DSYMBOL) $(INCDIR) $(COMMONFLAGS) -c
-CFLAGS = $(DSYMBOL) $(INCDIR) $(COMMONFLAGS) -fPIC -c
-CXXFLAGS = $(DSYMBOL) $(INCDIR) $(CXX_EXCEPT) $(COMMONFLAGS) -fPIC -c
-ARFLAGS = -r
-
-#*********************************************************************************************************
-# define some useful variable
-#*********************************************************************************************************
-DEPEND = $(CC) $(DEPENDFLAG) $(CFLAGS)
-DEPEND.d = $(subst -g ,,$(DEPEND))
-COMPILE.S = $(AS) $(ASFLAGS)
-COMPILE_VFP.S = $(AS) $(ASFLAGS)
-COMPILE.c = $(CC) $(CFLAGS)
-COMPILE.cxx = $(CXX) $(CXXFLAGS)
-
-#*********************************************************************************************************
-# target
-#*********************************************************************************************************
-all: $(LIB) $(DLL)
- @echo create "$(LIB) $(DLL)" success.
-
-#*********************************************************************************************************
-# include depends
-#*********************************************************************************************************
-ifneq ($(MAKECMDGOALS), clean)
-ifneq ($(MAKECMDGOALS), clean_project)
-sinclude $(DEPS)
-endif
-endif
-
-#*********************************************************************************************************
-# create depends files
-#*********************************************************************************************************
-$(DEPPATH)/%.d: %.c
- @echo creating $@
- @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
- @rm -f $@; \
- echo -n '$@ $(addprefix $(OBJPATH)/, $(dir $<))' > $@; \
- $(DEPEND.d) $< >> $@ || rm -f $@; exit;
-
-$(DEPPATH)/%.d: %.cpp
- @echo creating $@
- @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
- @rm -f $@; \
- echo -n '$@ $(addprefix $(OBJPATH)/, $(dir $<))' > $@; \
- $(DEPEND.d) $< >> $@ || rm -f $@; exit;
-
-#*********************************************************************************************************
-# compile source files
-#*********************************************************************************************************
-$(OBJPATH)/%.o: %.S
- @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
- $(COMPILE.S) $< -o $@
-
-$(OBJPATH)/%.o: %.c
- @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
- $(COMPILE.c) $< -o $@
-
-$(OBJPATH)/%.o: %.cpp
- @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
- $(COMPILE.cxx) $< -o $@
-
-#*********************************************************************************************************
-# link libxemail.a object files
-#*********************************************************************************************************
-$(LIB): $(OBJS)
- $(AR) $(ARFLAGS) $(LIB) $(OBJS)
-
-#*********************************************************************************************************
-# link libxemail.so object files
-#*********************************************************************************************************
-$(DLL): $(OBJS)
- $(LD) $(CPUFLAGS) -nostdlib -fPIC -shared -o $(DLL) $(OBJS) \
- $(DEPEND_DLL_PATH) $(DEPEND_DLL) -lm -lgcc
-
-#*********************************************************************************************************
-# clean
-#*********************************************************************************************************
-.PHONY: clean
-.PHONY: clean_project
-
-#*********************************************************************************************************
-# clean objects
-#*********************************************************************************************************
-clean:
- -rm -rf $(LIB)
- -rm -rf $(DLL)
- -rm -rf $(OBJS)
- -rm -rf $(OBJPATH)
- -rm -rf $(DEPPATH)
-
-#*********************************************************************************************************
-# clean project
-#*********************************************************************************************************
-clean_project:
- -rm -rf $(OUTPATH)
-
-#*********************************************************************************************************
-# END
+# include architecture related Makefile
#*********************************************************************************************************
+include Makefile.arm
diff --git a/Makefile.arm b/Makefile.arm
new file mode 100644
index 0000000..b27c3b0
--- /dev/null
+++ b/Makefile.arm
@@ -0,0 +1,221 @@
+#*********************************************************************************************************
+# libxemail Makefile
+# target -> libxemail.a
+# libxemail.so
+#*********************************************************************************************************
+
+#*********************************************************************************************************
+# include config.mk
+#*********************************************************************************************************
+CONFIG_MK_EXIST = $(shell if [ -f ../config.mk ]; then echo exist; else echo notexist; fi;)
+ifeq ($(CONFIG_MK_EXIST), exist)
+include ../config.mk
+else
+CONFIG_MK_EXIST = $(shell if [ -f config.mk ]; then echo exist; else echo notexist; fi;)
+ifeq ($(CONFIG_MK_EXIST), exist)
+include config.mk
+else
+CONFIG_MK_EXIST =
+endif
+endif
+
+#*********************************************************************************************************
+# check configure
+#*********************************************************************************************************
+check_defined = \
+ $(foreach 1,$1,$(__check_defined))
+__check_defined = \
+ $(if $(value $1),, \
+ $(error Undefined $1$(if $(value 2), ($(strip $2)))))
+
+$(call check_defined, CONFIG_MK_EXIST, Please configure this project in RealEvo-IDE or \
+create a config.mk file!)
+$(call check_defined, SYLIXOS_BASE_PATH, SylixOS base project path)
+$(call check_defined, TOOLCHAIN_PREFIX, the prefix name of toolchain)
+$(call check_defined, DEBUG_LEVEL, debug level(debug or release))
+
+#*********************************************************************************************************
+# toolchain select
+#*********************************************************************************************************
+CC = $(TOOLCHAIN_PREFIX)gcc
+CXX = $(TOOLCHAIN_PREFIX)g++
+AS = $(TOOLCHAIN_PREFIX)gcc
+AR = $(TOOLCHAIN_PREFIX)ar
+LD = $(TOOLCHAIN_PREFIX)g++
+
+#*********************************************************************************************************
+# do not change the following code
+# buildin internal application source
+#*********************************************************************************************************
+#*********************************************************************************************************
+# src(s) file
+#*********************************************************************************************************
+SRCS = \
+lib/xemail.c
+
+#*********************************************************************************************************
+# build path
+#*********************************************************************************************************
+ifeq ($(DEBUG_LEVEL), debug)
+OUTDIR = Debug
+else
+OUTDIR = Release
+endif
+
+OUTPATH = ./$(OUTDIR)
+OBJPATH = $(OUTPATH)/obj
+DEPPATH = $(OUTPATH)/dep
+
+#*********************************************************************************************************
+# target
+#*********************************************************************************************************
+LIB = $(OUTPATH)/libxemail.a
+DLL = $(OUTPATH)/libxemail.so
+
+#*********************************************************************************************************
+# objects
+#*********************************************************************************************************
+OBJS = $(addprefix $(OBJPATH)/, $(addsuffix .o, $(basename $(SRCS))))
+DEPS = $(addprefix $(DEPPATH)/, $(addsuffix .d, $(basename $(SRCS))))
+
+#*********************************************************************************************************
+# include path
+#*********************************************************************************************************
+INCDIR = -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS"
+INCDIR += -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include"
+INCDIR += -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include/inet"
+
+INCDIR += -I"include"
+INCDIR += -I"../libcurl/curl-7.40.0/include"
+
+#*********************************************************************************************************
+# compiler preprocess
+#*********************************************************************************************************
+DSYMBOL = -DSYLIXOS
+DSYMBOL += -DSYLIXOS_LIB
+
+#*********************************************************************************************************
+# depend dynamic library
+#*********************************************************************************************************
+DEPEND_DLL = -lcurl
+
+#*********************************************************************************************************
+# depend dynamic library search path
+#*********************************************************************************************************
+DEPEND_DLL_PATH = -L"../libcurl/$(OUTDIR)"
+
+#*********************************************************************************************************
+# compiler optimize
+#*********************************************************************************************************
+ifeq ($(DEBUG_LEVEL), debug)
+OPTIMIZE = -O0 -g3 -gdwarf-2
+else
+OPTIMIZE = -O2 -g1 -gdwarf-2 # Do NOT use -O3 and -Os
+endif # -Os is not align for function
+ # loop and jump.
+#*********************************************************************************************************
+# depends and compiler parameter (cplusplus in kernel MUST NOT use exceptions and rtti)
+#*********************************************************************************************************
+DEPENDFLAG = -MM
+CXX_EXCEPT = -fno-exceptions -fno-rtti
+COMMONFLAGS = $(CPUFLAGS) $(OPTIMIZE) -Wall -fmessage-length=0 -fsigned-char -fno-short-enums
+ASFLAGS = -x assembler-with-cpp $(DSYMBOL) $(INCDIR) $(COMMONFLAGS) -c
+CFLAGS = $(DSYMBOL) $(INCDIR) $(COMMONFLAGS) -fPIC -c
+CXXFLAGS = $(DSYMBOL) $(INCDIR) $(CXX_EXCEPT) $(COMMONFLAGS) -fPIC -c
+ARFLAGS = -r
+
+#*********************************************************************************************************
+# define some useful variable
+#*********************************************************************************************************
+DEPEND = $(CC) $(DEPENDFLAG) $(CFLAGS)
+DEPEND.d = $(subst -g ,,$(DEPEND))
+COMPILE.S = $(AS) $(ASFLAGS)
+COMPILE_VFP.S = $(AS) $(ASFLAGS)
+COMPILE.c = $(CC) $(CFLAGS)
+COMPILE.cxx = $(CXX) $(CXXFLAGS)
+
+#*********************************************************************************************************
+# target
+#*********************************************************************************************************
+all: $(LIB) $(DLL)
+ @echo create "$(LIB) $(DLL)" success.
+
+#*********************************************************************************************************
+# include depends
+#*********************************************************************************************************
+ifneq ($(MAKECMDGOALS), clean)
+ifneq ($(MAKECMDGOALS), clean_project)
+sinclude $(DEPS)
+endif
+endif
+
+#*********************************************************************************************************
+# create depends files
+#*********************************************************************************************************
+$(DEPPATH)/%.d: %.c
+ @echo creating $@
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ @rm -f $@; \
+ echo -n '$@ $(addprefix $(OBJPATH)/, $(dir $<))' > $@; \
+ $(DEPEND.d) $< >> $@ || rm -f $@; exit;
+
+$(DEPPATH)/%.d: %.cpp
+ @echo creating $@
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ @rm -f $@; \
+ echo -n '$@ $(addprefix $(OBJPATH)/, $(dir $<))' > $@; \
+ $(DEPEND.d) $< >> $@ || rm -f $@; exit;
+
+#*********************************************************************************************************
+# compile source files
+#*********************************************************************************************************
+$(OBJPATH)/%.o: %.S
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ $(COMPILE.S) $< -o $@
+
+$(OBJPATH)/%.o: %.c
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ $(COMPILE.c) $< -o $@
+
+$(OBJPATH)/%.o: %.cpp
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ $(COMPILE.cxx) $< -o $@
+
+#*********************************************************************************************************
+# link libxemail.a object files
+#*********************************************************************************************************
+$(LIB): $(OBJS)
+ $(AR) $(ARFLAGS) $(LIB) $(OBJS)
+
+#*********************************************************************************************************
+# link libxemail.so object files
+#*********************************************************************************************************
+$(DLL): $(OBJS)
+ $(LD) $(CPUFLAGS) -nostdlib -fPIC -shared -o $(DLL) $(OBJS) \
+ $(DEPEND_DLL_PATH) $(DEPEND_DLL) -lm -lgcc
+
+#*********************************************************************************************************
+# clean
+#*********************************************************************************************************
+.PHONY: clean
+.PHONY: clean_project
+
+#*********************************************************************************************************
+# clean objects
+#*********************************************************************************************************
+clean:
+ -rm -rf $(LIB)
+ -rm -rf $(DLL)
+ -rm -rf $(OBJS)
+ -rm -rf $(OBJPATH)
+ -rm -rf $(DEPPATH)
+
+#*********************************************************************************************************
+# clean project
+#*********************************************************************************************************
+clean_project:
+ -rm -rf $(OUTPATH)
+
+#*********************************************************************************************************
+# END
+#*********************************************************************************************************
diff --git a/Makefile.mips b/Makefile.mips
new file mode 100644
index 0000000..be58c34
--- /dev/null
+++ b/Makefile.mips
@@ -0,0 +1,221 @@
+#*********************************************************************************************************
+# libxemail Makefile
+# target -> libxemail.a
+# libxemail.so
+#*********************************************************************************************************
+
+#*********************************************************************************************************
+# include config.mk
+#*********************************************************************************************************
+CONFIG_MK_EXIST = $(shell if [ -f ../config.mk ]; then echo exist; else echo notexist; fi;)
+ifeq ($(CONFIG_MK_EXIST), exist)
+include ../config.mk
+else
+CONFIG_MK_EXIST = $(shell if [ -f config.mk ]; then echo exist; else echo notexist; fi;)
+ifeq ($(CONFIG_MK_EXIST), exist)
+include config.mk
+else
+CONFIG_MK_EXIST =
+endif
+endif
+
+#*********************************************************************************************************
+# check configure
+#*********************************************************************************************************
+check_defined = \
+ $(foreach 1,$1,$(__check_defined))
+__check_defined = \
+ $(if $(value $1),, \
+ $(error Undefined $1$(if $(value 2), ($(strip $2)))))
+
+$(call check_defined, CONFIG_MK_EXIST, Please configure this project in RealEvo-IDE or \
+create a config.mk file!)
+$(call check_defined, SYLIXOS_BASE_PATH, SylixOS base project path)
+$(call check_defined, TOOLCHAIN_PREFIX, the prefix name of toolchain)
+$(call check_defined, DEBUG_LEVEL, debug level(debug or release))
+
+#*********************************************************************************************************
+# toolchain select
+#*********************************************************************************************************
+CC = $(TOOLCHAIN_PREFIX)gcc
+CXX = $(TOOLCHAIN_PREFIX)g++
+AS = $(TOOLCHAIN_PREFIX)gcc
+AR = $(TOOLCHAIN_PREFIX)ar
+LD = $(TOOLCHAIN_PREFIX)g++
+
+#*********************************************************************************************************
+# do not change the following code
+# buildin internal application source
+#*********************************************************************************************************
+#*********************************************************************************************************
+# src(s) file
+#*********************************************************************************************************
+SRCS = \
+lib/xemail.c
+
+#*********************************************************************************************************
+# build path
+#*********************************************************************************************************
+ifeq ($(DEBUG_LEVEL), debug)
+OUTDIR = Debug
+else
+OUTDIR = Release
+endif
+
+OUTPATH = ./$(OUTDIR)
+OBJPATH = $(OUTPATH)/obj
+DEPPATH = $(OUTPATH)/dep
+
+#*********************************************************************************************************
+# target
+#*********************************************************************************************************
+LIB = $(OUTPATH)/libxemail.a
+DLL = $(OUTPATH)/libxemail.so
+
+#*********************************************************************************************************
+# objects
+#*********************************************************************************************************
+OBJS = $(addprefix $(OBJPATH)/, $(addsuffix .o, $(basename $(SRCS))))
+DEPS = $(addprefix $(DEPPATH)/, $(addsuffix .d, $(basename $(SRCS))))
+
+#*********************************************************************************************************
+# include path
+#*********************************************************************************************************
+INCDIR = -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS"
+INCDIR += -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include"
+INCDIR += -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include/inet"
+
+INCDIR += -I"include"
+INCDIR += -I"../libcurl/curl-7.40.0/include"
+
+#*********************************************************************************************************
+# compiler preprocess
+#*********************************************************************************************************
+DSYMBOL = -DSYLIXOS
+DSYMBOL += -DSYLIXOS_LIB
+
+#*********************************************************************************************************
+# depend dynamic library
+#*********************************************************************************************************
+DEPEND_DLL = -lcurl
+
+#*********************************************************************************************************
+# depend dynamic library search path
+#*********************************************************************************************************
+DEPEND_DLL_PATH = -L"../libcurl/$(OUTDIR)"
+
+#*********************************************************************************************************
+# compiler optimize
+#*********************************************************************************************************
+ifeq ($(DEBUG_LEVEL), debug)
+OPTIMIZE = -O0 -g3 -gdwarf-2
+else
+OPTIMIZE = -O2 -g1 -gdwarf-2 # Do NOT use -O3 and -Os
+endif # -Os is not align for function
+ # loop and jump.
+#*********************************************************************************************************
+# depends and compiler parameter (cplusplus in kernel MUST NOT use exceptions and rtti)
+#*********************************************************************************************************
+DEPENDFLAG = -MM
+CXX_EXCEPT = -fno-exceptions -fno-rtti
+COMMONFLAGS = $(CPUFLAGS) $(OPTIMIZE) -Wall -fmessage-length=0 -fsigned-char -fno-short-enums
+ASFLAGS = -x assembler-with-cpp $(DSYMBOL) $(INCDIR) $(COMMONFLAGS) -mabicalls -c
+CFLAGS = $(DSYMBOL) $(INCDIR) $(COMMONFLAGS) -fPIC -mabicalls -c
+CXXFLAGS = $(DSYMBOL) $(INCDIR) $(CXX_EXCEPT) $(COMMONFLAGS) -fPIC -mabicalls -c
+ARFLAGS = -r
+
+#*********************************************************************************************************
+# define some useful variable
+#*********************************************************************************************************
+DEPEND = $(CC) $(DEPENDFLAG) $(CFLAGS)
+DEPEND.d = $(subst -g ,,$(DEPEND))
+COMPILE.S = $(AS) $(ASFLAGS)
+COMPILE_VFP.S = $(AS) $(ASFLAGS) -mhard-float
+COMPILE.c = $(CC) $(CFLAGS)
+COMPILE.cxx = $(CXX) $(CXXFLAGS)
+
+#*********************************************************************************************************
+# target
+#*********************************************************************************************************
+all: $(LIB) $(DLL)
+ @echo create "$(LIB) $(DLL)" success.
+
+#*********************************************************************************************************
+# include depends
+#*********************************************************************************************************
+ifneq ($(MAKECMDGOALS), clean)
+ifneq ($(MAKECMDGOALS), clean_project)
+sinclude $(DEPS)
+endif
+endif
+
+#*********************************************************************************************************
+# create depends files
+#*********************************************************************************************************
+$(DEPPATH)/%.d: %.c
+ @echo creating $@
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ @rm -f $@; \
+ echo -n '$@ $(addprefix $(OBJPATH)/, $(dir $<))' > $@; \
+ $(DEPEND.d) $< >> $@ || rm -f $@; exit;
+
+$(DEPPATH)/%.d: %.cpp
+ @echo creating $@
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ @rm -f $@; \
+ echo -n '$@ $(addprefix $(OBJPATH)/, $(dir $<))' > $@; \
+ $(DEPEND.d) $< >> $@ || rm -f $@; exit;
+
+#*********************************************************************************************************
+# compile source files
+#*********************************************************************************************************
+$(OBJPATH)/%.o: %.S
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ $(COMPILE.S) $< -o $@
+
+$(OBJPATH)/%.o: %.c
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ $(COMPILE.c) $< -o $@
+
+$(OBJPATH)/%.o: %.cpp
+ @if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
+ $(COMPILE.cxx) $< -o $@
+
+#*********************************************************************************************************
+# link libxemail.a object files
+#*********************************************************************************************************
+$(LIB): $(OBJS)
+ $(AR) $(ARFLAGS) $(LIB) $(OBJS)
+
+#*********************************************************************************************************
+# link libxemail.so object files
+#*********************************************************************************************************
+$(DLL): $(OBJS)
+ $(LD) $(CPUFLAGS) -fPIC -mabicalls -shared -o $(DLL) $(OBJS) \
+ $(DEPEND_DLL_PATH) $(DEPEND_DLL) -lm -lgcc
+
+#*********************************************************************************************************
+# clean
+#*********************************************************************************************************
+.PHONY: clean
+.PHONY: clean_project
+
+#*********************************************************************************************************
+# clean objects
+#*********************************************************************************************************
+clean:
+ -rm -rf $(LIB)
+ -rm -rf $(DLL)
+ -rm -rf $(OBJS)
+ -rm -rf $(OBJPATH)
+ -rm -rf $(DEPPATH)
+
+#*********************************************************************************************************
+# clean project
+#*********************************************************************************************************
+clean_project:
+ -rm -rf $(OUTPATH)
+
+#*********************************************************************************************************
+# END
+#*********************************************************************************************************
diff --git a/Makefile.ppc b/Makefile.ppc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Makefile.ppc
diff --git a/Makefile.x86 b/Makefile.x86
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Makefile.x86
diff --git a/config.mk b/config.mk
index 4fd2261..fa4e82d 100644
--- a/config.mk
+++ b/config.mk
@@ -12,16 +12,16 @@
#
# 文 件 名: config.mk
#
-# 创 建 人: RealCoder
+# 创 建 人: RealEvo-IDE
#
-# 文件创建日期: 2015 年06 月06 日
+# 文件创建日期: 2016 年02 月27 日
#
-# 描 述: 本文件由RealCoder生成,用于配置Makefile功能,请勿手动修改
+# 描 述: 本文件由 RealEvo-IDE 生成,用于配置 Makefile 功能,请勿手动修改
#*********************************************************************************************************
#*********************************************************************************************************
# SylixOS Base Project path
#*********************************************************************************************************
-SYLIXOS_BASE_PATH = E:/workspace/sylixos_base
+SYLIXOS_BASE_PATH = D:/workspace/sylixos-base
#*********************************************************************************************************
# Toolchain prefix
@@ -31,4 +31,11 @@ TOOLCHAIN_PREFIX = arm-sylixos-eabi-
#*********************************************************************************************************
# Debug options (debug or release)
#*********************************************************************************************************
-DEBUG_LEVEL = debug \ No newline at end of file
+DEBUG_LEVEL = debug
+
+#*********************************************************************************************************
+# NOTICE: libsylixos, BSP and other kernel modules projects CAN NOT use vfp!
+#*********************************************************************************************************
+FPUFLAGS =
+CPUFLAGS = -mcpu=arm920t $(FPUFLAGS)
+