some normalisation of file namingg and header file

This commit is contained in:
Edouard Dupin 2012-08-18 21:07:46 +02:00
parent 5db14dcf47
commit 762a9ebe4c
18 changed files with 367 additions and 258 deletions

View File

@ -2,7 +2,6 @@
PROJECT_PACKAGE=$(PROJECT_NAME)package
USER_PACKAGES += $(EWOL_FOLDER)/Sources/
TARGET_OS = Android
TARGET_ARCH = ARM
TARGET_CROSS = $(PROJECT_NDK)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
@ -22,40 +21,52 @@ TARGET_GLOBAL_LDLIBS_SHARED = --sysroot=$(PROJECT_NDK)/platforms/android-$(ANDRO
#generic makefile
include $(EWOL_FOLDER)/Build/core/main.mk
ANDROID_BASIC_FOLDER=./out/$(TARGET_OS)/$(BUILD_DIRECTORY_MODE)/ant/
JAVA_FOLDER=$(ANDROID_BASIC_FOLDER)src/com/$(PROJECT_VENDOR)/$(PROJECT_NAME)
EWOL_JAVA_FOLDER=$(ANDROID_BASIC_FOLDER)src/org/ewol
java :
@mkdir -p $(JAVA_FOLDER)/
@mkdir -p $(EWOL_JAVA_FOLDER)/
FINAL_FOLDER_ANT=$(TARGET_OUT_FINAL)/ant
FINAL_FOLDER_JAVA_PROJECT=$(FINAL_FOLDER_ANT)/src/com/$(PROJECT_VENDOR)/$(PROJECT_NAME)
FINAL_FOLDER_JAVA_EWOL=$(FINAL_FOLDER_ANT)/src/org/ewol
FINAL_FILE_ABSTRACTION = $(FINAL_FOLDER_JAVA_PROJECT)/$(PROJECT_NAME).java
final : all
@mkdir -p $(FINAL_FOLDER_JAVA_PROJECT)/
@mkdir -p $(FINAL_FOLDER_JAVA_EWOL)/
@cp $(EWOL_FOLDER)/Java/PROJECT_NAME.java $(JAVA_FOLDER)/$(PROJECT_NAME).java
@sed -i "s|__PROJECT_VENDOR__|$(PROJECT_VENDOR)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java
@sed -i "s|__PROJECT_NAME__|$(PROJECT_NAME)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java
@sed -i "s|__PROJECT_PACKAGE__|$(PROJECT_PACKAGE)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java
@cp $(EWOL_FOLDER)/Java/PROJECT_NAME.java $(FINAL_FILE_ABSTRACTION)
@sed -i "s|__PROJECT_VENDOR__|$(PROJECT_VENDOR)|" $(FINAL_FILE_ABSTRACTION)
@sed -i "s|__PROJECT_NAME__|$(PROJECT_NAME)|" $(FINAL_FILE_ABSTRACTION)
@sed -i "s|__PROJECT_PACKAGE__|$(PROJECT_PACKAGE)|" $(FINAL_FILE_ABSTRACTION)
@# copy the Ewol java files :
@cp $(EWOL_FOLDER)/Java/interfaceJNI.java $(EWOL_JAVA_FOLDER)/
@cp $(EWOL_FOLDER)/Java/interfaceOpenGL.java $(EWOL_JAVA_FOLDER)/
@cp $(EWOL_FOLDER)/Java/interfaceSurfaceView.java $(EWOL_JAVA_FOLDER)/
@cp $(EWOL_FOLDER)/Java/interfaceAudio.java $(EWOL_JAVA_FOLDER)/
@cp $(EWOL_FOLDER)/Java/interfaceJNI.java $(FINAL_FOLDER_JAVA_EWOL)/
@cp $(EWOL_FOLDER)/Java/interfaceOpenGL.java $(FINAL_FOLDER_JAVA_EWOL)/
@cp $(EWOL_FOLDER)/Java/interfaceSurfaceView.java $(FINAL_FOLDER_JAVA_EWOL)/
@cp $(EWOL_FOLDER)/Java/interfaceAudio.java $(FINAL_FOLDER_JAVA_EWOL)/
@# copy android specific data :
@cp -r Android/* $(ANDROID_BASIC_FOLDER)/
@cp -r os-Android/* $(FINAL_FOLDER_ANT)/
@# copy user data
@cp -r share $(ANDROID_BASIC_FOLDER)/assets
@mkdir -p $(ANDROID_BASIC_FOLDER)libs/armeabi/
@cp -r share $(FINAL_FOLDER_ANT)/assets
@mkdir -p $(FINAL_FOLDER_ANT)/libs/armeabi/
@# note : this change the lib name ...
@cp ./out/$(TARGET_OS)/$(BUILD_DIRECTORY_MODE)/obj/usr/lib/$(PROJECT_PACKAGE).so $(ANDROID_BASIC_FOLDER)libs/armeabi/lib$(PROJECT_PACKAGE).so
@cp $(TARGET_OUT_STAGING)/usr/lib/$(PROJECT_PACKAGE).so $(FINAL_FOLDER_ANT)/libs/armeabi/lib$(PROJECT_PACKAGE).so
@echo " (ant) build java code"
@cd $(ANDROID_BASIC_FOLDER) ; PATH=$(PROJECT_SDK)/tools/:$(PROJECT_SDK)/platform-tools/:$(PATH) ant -Dsdk.dir=$(PROJECT_SDK) $(BUILD_DIRECTORY_MODE)
@cd $(FINAL_FOLDER_ANT) ; PATH=$(PROJECT_SDK)/tools/:$(PROJECT_SDK)/platform-tools/:$(PATH) ant -Dsdk.dir=$(PROJECT_SDK) $(BUILD_DIRECTORY_MODE)
@# cp the release package in the final folder to facilitate the find
@cp -f $(FINAL_FOLDER_ANT)/bin/$(PROJECT_NAME)-$(BUILD_DIRECTORY_MODE).apk $(TARGET_OUT_FINAL)/$(PROJECT_NAME)-$(BUILD_DIRECTORY_MODE).apk
install:
@echo "------------------------------------------------------------------------"
@echo ' INSTALL : ./bin/$(PROJECT_NAME)-debug.apk'
@echo "------------------------------------------------------------------------"
install: final
@echo ------------------------------------------------------------------------
@echo Install : $(TARGET_OUT_FINAL)/$(PROJECT_NAME)-$(BUILD_DIRECTORY_MODE).apk
@echo ------------------------------------------------------------------------
@# $(PROJECT_SDK)/platform-tools/adb kill-server
@# install application
sudo $(PROJECT_SDK)/platform-tools/adb install -r $(ANDROID_BASIC_FOLDER)bin/$(PROJECT_NAME)-$(BUILD_DIRECTORY_MODE).apk
sudo $(PROJECT_SDK)/platform-tools/adb install -r $(TARGET_OUT_FINAL)/$(PROJECT_NAME)-$(BUILD_DIRECTORY_MODE).apk
uninstall:
@echo ------------------------------------------------------------------------
@echo UnInstall : $(ANDROID_BASIC_FOLDER)bin/$(PROJECT_NAME)-$(BUILD_DIRECTORY_MODE).apk
@echo ------------------------------------------------------------------------
@echo ... TODO ...

View File

@ -1,37 +1,65 @@
USER_PACKAGES += $(EWOL_FOLDER)/Sources/
# include generic makefile :
include $(EWOL_FOLDER)/Build/core/main.mk
FINAL_FOLDER_DEBIAN= $(TARGET_OUT_FINAL)/$(PROJECT_NAME)/DEBIAN
FINAL_FOLDER_BIN= $(TARGET_OUT_FINAL)/$(PROJECT_NAME)/usr/bin
FINAL_FOLDER_LIB= $(TARGET_OUT_FINAL)/$(PROJECT_NAME)/usr/lib
FINAL_FOLDER_SHARED_DOC= $(TARGET_OUT_FINAL)/$(PROJECT_NAME)/share/doc
FINAL_FOLDER_SHARED_DATA=$(TARGET_OUT_FINAL)/$(PROJECT_NAME)/share/$(PROJECT_NAME)
FINAL_FILE_CONTROL=$(FINAL_FOLDER_DEBIAN)/control
FINAL_FILE_POST_RM=$(FINAL_FOLDER_DEBIAN)/postrm
FINAL_VERSION_TAG_SHORT=$(shell git describe --tags --abbrev=0)
# http://alp.developpez.com/tutoriels/debian/creer-paquet/
#package: .encadrer
# @echo 'Create Folders ...'
# @mkdir -p package/$(PROJECT_NAME)/DEBIAN/
# @mkdir -p package/$(PROJECT_NAME)/usr/bin/
# @mkdir -p package/$(PROJECT_NAME)/usr/share/doc/
# @mkdir -p package/$(PROJECT_NAME)/usr/share/edn/
# # Create the control file
# @echo "Package: "$(PROJECT_NAME) > package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Version: "$(VERSION_TAG_SHORT) >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Section: Development,Editors" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Priority: optional" >>package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Architecture: all" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Depends: bash" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Maintainer: Mr DUPIN Edouard <yui.heero@gmail.com>" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Description: Text editor for sources code with ctags management" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "" >> package/$(PROJECT_NAME)/DEBIAN/control
# # Create the PostRm
# @echo "#!/bin/bash" > package/$(PROJECT_NAME)/DEBIAN/postrm
# @echo "rm ~/."$(PROJECT_NAME) >> package/$(PROJECT_NAME)/DEBIAN/postrm
# @echo "" >> package/$(PROJECT_NAME)/DEBIAN/postrm
# # Enable Execution in script
# @chmod 755 package/$(PROJECT_NAME)/DEBIAN/post*
# @#chmod 755 package/$(PROJECT_NAME)/DEBIAN/pre*
# # copy licence and information :
# @cp README package/$(PROJECT_NAME)/usr/share/doc/README
# @cp licence.txt package/$(PROJECT_NAME)/usr/share/doc/copyright
# @echo "First generation in progress" >> package/$(PROJECT_NAME)/usr/share/doc/changelog
# @cp -vf $(PROJECT_NAME) package/$(PROJECT_NAME)/usr/bin/
# @cp -vf data/*.xml package/$(PROJECT_NAME)/usr/share/edn/
# @cd package; dpkg-deb --build $(PROJECT_NAME)
final: all
@echo ------------------------------------------------------------------------
@echo Final
@echo ------------------------------------------------------------------------
@echo 'Create Folders ...'
@mkdir -p $(FINAL_FOLDER_DEBIAN)
@mkdir -p $(FINAL_FOLDER_BIN)
@mkdir -p $(FINAL_FOLDER_SHARED_DOC)
@mkdir -p $(FINAL_FOLDER_SHARED_DATA)
# Create the control file
@echo "Package: "$(PROJECT_NAME) > $(FINAL_FILE_CONTROL)
@echo "Version: "$(FINAL_VERSION_TAG_SHORT) >> $(FINAL_FILE_CONTROL)
@echo "Section: Development,Editors" >> $(FINAL_FILE_CONTROL)
@echo "Priority: optional" >> $(FINAL_FILE_CONTROL)
@echo "Architecture: all" >> $(FINAL_FILE_CONTROL)
@echo "Depends: bash" >> $(FINAL_FILE_CONTROL)
@echo "Maintainer: Mr DUPIN Edouard <yui.heero@gmail.com>" >> $(FINAL_FILE_CONTROL)
@echo "Description: Text editor for sources code with ctags management" >> $(FINAL_FILE_CONTROL)
@echo "" >> $(FINAL_FILE_CONTROL)
# Create the PostRm
@echo "#!/bin/bash" > $(FINAL_FILE_POST_RM)
@echo "rm ~/."$(PROJECT_NAME) >> $(FINAL_FILE_POST_RM)
@echo "" >> $(FINAL_FILE_POST_RM)
# Enable Execution in script
@chmod 755 $(FINAL_FILE_POST_RM)*
@#chmod 755 $(PROJECT_NAME)/DEBIAN/pre*
# copy licence and information :
@cp -f os-Linux/README $(FINAL_FOLDER_SHARED_DOC)/README
@cp -f licence.txt $(FINAL_FOLDER_SHARED_DOC)/copyright
@cp -f changelog $(FINAL_FOLDER_SHARED_DOC)/changelog
@cp -f $(TARGET_OUT_STAGING)/usr/bin/* $(FINAL_FOLDER_BIN)
$(if $(wildcard $(TARGET_OUT_STAGING)/usr/lib/*.so), cp -f $(TARGET_OUT_STAGING)/usr/lib/*.so $(FINAL_FOLDER_LIB))
$(if $(wildcard ./share/*), cp -rf share/* $(FINAL_FOLDER_SHARED_DATA))
@echo pachage <== $(TARGET_OUT_FINAL)/$(PROJECT_NAME).deb
@cd $(TARGET_OUT_FINAL)/; dpkg-deb --build $(PROJECT_NAME)
install: final
@echo ------------------------------------------------------------------------
@echo Install : $(TARGET_OUT_FINAL)/$(PROJECT_NAME).deb
@echo ------------------------------------------------------------------------
sudo dpkg -i $(TARGET_OUT_FINAL)/$(PROJECT_NAME).deb
uninstall:
@echo ------------------------------------------------------------------------
@echo UnInstall : $(TARGET_OUT_FINAL)/$(PROJECT_NAME).deb
@echo ------------------------------------------------------------------------
sudo dpkg -r $(TARGET_OUT_FINAL)/$(PROJECT_NAME).deb

View File

@ -1,5 +1,4 @@
USER_PACKAGES += $(EWOL_FOLDER)/Sources/
# defien the target OS of this system
TARGET_OS=Windows
@ -7,3 +6,23 @@ TARGET_OS=Windows
TARGET_CROSS=i586-mingw32msvc-
include $(EWOL_FOLDER)/Build/core/main.mk
final: all
@echo ------------------------------------------------------------------------
@echo Final :
@echo ------------------------------------------------------------------------
@echo ... TODO ...
install: final
@echo ------------------------------------------------------------------------
@echo Install :
@echo ------------------------------------------------------------------------
@echo ... TODO ...
uninstall:
@echo ------------------------------------------------------------------------
@echo UnInstall :
@echo ------------------------------------------------------------------------
@echo ... TODO ...

View File

@ -10,7 +10,7 @@ PLATFORM?=$(DEFAULT_PLATFORM)
PROJECT_PATH=$(shell pwd)
PROJECT_MODULE=$(PROJECT_PATH)/../
PROJECT_MODULE=$(shell realpath $(PROJECT_PATH)/../)
ifeq ($(PLATFORM), Linux)
PROJECT_NDK?=$(realpath $(PROJECT_MODULE)/ewol/)

View File

@ -1,9 +1,10 @@
###############################################################################
## @file executable.mk
## @author Y.M. Morgan
## @date 2011/05/14
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Build an executable.
## Register an executable (can be build).
###############################################################################
LOCAL_MODULE_CLASS := EXECUTABLE

View File

@ -1,7 +1,8 @@
###############################################################################
## @file prebuilt.mk
## @author Y.M. Morgan
## @date 2012/08/08
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Register a prebuilt module.
###############################################################################

View File

@ -1,9 +1,10 @@
###############################################################################
## @file shared.mk
## @author Y.M. Morgan
## @date 2011/05/14
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Build a shared library.
## Register a shared library (can be build).
###############################################################################
LOCAL_MODULE_CLASS := SHARED_LIBRARY

View File

@ -1,9 +1,10 @@
###############################################################################
## @file static.mk
## @author Y.M. Morgan
## @date 2011/05/14
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Build a static library.
## Register a static library (can be build).
###############################################################################
LOCAL_MODULE_CLASS := STATIC_LIBRARY

View File

@ -1,7 +1,8 @@
###############################################################################
## @file clearvars.mk
## @author Y.M. Morgan
## @date 2011/05/14
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Clear out values of all variables used by rule templates.
###############################################################################

View File

@ -1,7 +1,8 @@
###############################################################################
## @file config.mk
## @author Y.M. Morgan
## @date 2012/07/09
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Configuration management.
###############################################################################

View File

@ -1,7 +1,8 @@
###############################################################################
## @file defs.mk
## @author Y.M. Morgan
## @date 2011/05/14
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## This file contains macros used by other makefiles.
###############################################################################

View File

@ -1,7 +1,8 @@
###############################################################################
## @file main.mk
## @author Y.M. Morgan
## @date 2011/05/14
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Main Makefile.
###############################################################################
@ -53,23 +54,22 @@ TOP_DIR := $(shell pwd)
BUILD_SYSTEM := $(call my-dir)
# Setup configuration
include $(BUILD_SYSTEM)/setup-host.mk
include $(BUILD_SYSTEM)/setup-target.mk
include $(BUILD_SYSTEM)/setup.mk
# Setup macros definitions
include $(BUILD_SYSTEM)/defs.mk
# Setup warnings flags
include $(BUILD_SYSTEM)/warnings.mk
# Load configuration
include $(BUILD_SYSTEM)/config.mk
# Names of makefiles that can be included by user Makefiles
CLEAR_VARS := $(BUILD_SYSTEM)/clearvars.mk
BUILD_STATIC_LIBRARY := $(BUILD_SYSTEM)/static.mk
BUILD_SHARED_LIBRARY := $(BUILD_SYSTEM)/shared.mk
BUILD_EXECUTABLE := $(BUILD_SYSTEM)/executable.mk
BUILD_PREBUILT := $(BUILD_SYSTEM)/prebuilt.mk
BUILD_STATIC_LIBRARY := $(BUILD_SYSTEM)/build-static.mk
BUILD_SHARED_LIBRARY := $(BUILD_SYSTEM)/build-shared.mk
BUILD_EXECUTABLE := $(BUILD_SYSTEM)/build-executable.mk
BUILD_PREBUILT := $(BUILD_SYSTEM)/build-prebuilt.mk
BUILD_RULES := $(BUILD_SYSTEM)/rules.mk
###############################################################################

View File

@ -1,7 +1,8 @@
###############################################################################
## @file module.mk
## @author Y.M. Morgan
## @date 2012/04/17
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Build a module.
###############################################################################

View File

@ -1,7 +1,8 @@
###############################################################################
## @file binary-rules.mk
## @author Y.M. Morgan
## @date 2011/05/14
## @file rules.mk
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Generate rules for building an executable or library.
###############################################################################

53
core/setup-host.mk Normal file
View File

@ -0,0 +1,53 @@
###############################################################################
## @file setup-host.mk
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
###############################################################################
# check if the user does not decide to force an other HOST_OS
ifneq ("$(HOST_OS)","")
$(error User must not define $(HOST_OS))
endif
###############################################################################
## Tools for host.
###############################################################################
ifneq ("$(CLANG)","1")
HOST_CC := gcc
HOST_CXX := g++
else
HOST_CC := clang
HOST_CXX := clang++
endif
HOST_AR := ar
HOST_LD := ld
HOST_NM := nm
HOST_STRIP := strip
HOST_RANLIB := ranlib
HOST_DLLTOOL := dlltool
###############################################################################
# Target global variables.
###############################################################################
HOST_GLOBAL_C_INCLUDES ?=
HOST_GLOBAL_CFLAGS ?=
HOST_GLOBAL_CPPFLAGS ?=
HOST_GLOBAL_ARFLAGS ?= rcs
HOST_GLOBAL_LDFLAGS ?=
HOST_GLOBAL_LDFLAGS_SHARED ?=
HOST_GLOBAL_LDLIBS ?=
HOST_GLOBAL_LDLIBS_SHARED ?=
# Host OS
ifneq ("$(shell echo $$OSTYPE | grep msys)","")
HOST_OS := Windows
HOST_EXE_SUFFIX := .exe
HOST_SHARED_LIB_SUFFIX := .dll
else
HOST_OS := Linux
HOST_EXE_SUFFIX :=
HOST_SHARED_LIB_SUFFIX := .so
endif

150
core/setup-target.mk Normal file
View File

@ -0,0 +1,150 @@
###############################################################################
## @file setup-target.mk
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
###############################################################################
###############################################################################
## Tools for target.
###############################################################################
ifneq ("$(CLANG)","1")
TARGET_CC := $(TARGET_CROSS)gcc
TARGET_CXX := $(TARGET_CROSS)g++
else
TARGET_CC := $(TARGET_CROSS)clang
TARGET_CXX := $(TARGET_CROSS)clang++
endif
TARGET_AR := $(TARGET_CROSS)ar
TARGET_LD := $(TARGET_CROSS)ld
TARGET_NM := $(TARGET_CROSS)nm
TARGET_STRIP := $(TARGET_CROSS)strip
TARGET_STRIP := $(TARGET_CROSS)strip
TARGET_RANLIB := $(TARGET_CROSS)ranlib
TARGET_DLLTOOL := $(TARGET_CROSS)dlltool
###############################################################################
# Target global variables.
###############################################################################
TARGET_GLOBAL_C_INCLUDES ?=
TARGET_GLOBAL_CFLAGS ?=
TARGET_GLOBAL_CPPFLAGS ?=
TARGET_GLOBAL_ARFLAGS ?= rcs
TARGET_GLOBAL_LDFLAGS ?=
TARGET_GLOBAL_LDFLAGS_SHARED ?=
TARGET_GLOBAL_LDLIBS ?=
TARGET_GLOBAL_LDLIBS_SHARED ?=
TARGET_GLOBAL_CFLAGS_ARM ?=
TARGET_GLOBAL_CFLAGS_THUMB ?=
TARGET_PCH_FLAGS ?=
TARGET_DEFAULT_ARM_MODE ?= THUMB
# Target OS : default to HOST_OS unless set
ifndef TARGET_OS
TARGET_OS := $(HOST_OS)
endif
# Exe/dll suffix under mingw
TARGET_STATIC_LIB_SUFFIX := .a
ifeq ("$(TARGET_OS)","Windows")
TARGET_EXE_SUFFIX := .exe
TARGET_SHARED_LIB_SUFFIX := .dll
else
TARGET_EXE_SUFFIX :=
TARGET_SHARED_LIB_SUFFIX := .so
endif
ifeq ("$(TARGET_OS)","Windows")
# may be overridden in make command line
STATIC := 1
TARGET_GLOBAL_CFLAGS += -D__MINGW_FEATURES__=0
TARGET_GLOBAL_LDFLAGS += -Wl,--enable-auto-import
ifeq ("$(STATIC)","1")
TARGET_GLOBAL_LDFLAGS += -Wl,-Bstatic
endif
# remove CLANG if defined
ifeq ("$(CLANG)","1")
$(error CLANG is not supported on $(TARGET_OS) platform ==> disable it)
endif
else ifeq ("$(TARGET_OS)","Android")
TARGET_GLOBAL_CFLAGS += -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \
-fpic -ffunction-sections -funwind-tables -fstack-protector \
-Wno-psabi -march=armv5te -mtune=xscale -msoft-float -fno-exceptions -mthumb \
-fomit-frame-pointer -fno-strict-aliasing -finline-limit=64
TARGET_GLOBAL_CPPFLAGS += -fno-rtti -Wa,--noexecstack
TARGET_GLOBAL_LDFLAGS +=
# remove CLANG if defined ==> TODO : Support it later ...
ifeq ("$(CLANG)","1")
$(error CLANG is not supported on $(TARGET_OS) platform ==> disable it)
endif
else ifeq ("$(TARGET_OS)","Linux")
else ifeq ("$(TARGET_OS)","MacOs")
else ifeq ("$(TARGET_OS)","IOs")
endif
# define the target OS type for the compilation system ...
TARGET_GLOBAL_CFLAGS += -D__TARGET_OS__$(TARGET_OS)
# basic define of the build time :
TARGET_GLOBAL_CFLAGS += -DBUILD_TIME="\"$(shell date)\"" \
ifeq ($(DEBUG),1)
TARGET_GLOBAL_CFLAGS += -DDEBUG_LEVEL=3
ifeq ("$(OPTIMISE)","1")
TARGET_GLOBAL_CFLAGS += -O2
endif
else
TARGET_GLOBAL_CFLAGS += -DDEBUG_LEVEL=1
endif
# Pre-compiled header generation flag
ifneq ("$(CLANG)","1")
TARGET_PCH_FLAGS := -c
else
TARGET_PCH_FLAGS := -x c++-header
endif
TARGET_GLOBAL_LDFLAGS += -L$(TARGET_OUT_STAGING)/lib
TARGET_GLOBAL_LDFLAGS += -L$(TARGET_OUT_STAGING)/usr/lib
TARGET_GLOBAL_LDFLAGS_SHARED += -L$(TARGET_OUT_STAGING)/lib
TARGET_GLOBAL_LDFLAGS_SHARED += -L$(TARGET_OUT_STAGING)/usr/lib
###############################################################################
## Determine CC path and version. and check if installed ...
###############################################################################
TARGET_CC_PATH := $(shell which $(CC))
ifeq ("$(TARGET_CC_PATH)","")
ifeq ("$(TARGET_OS)","Windows")
$(error Compilator does not exist : $(TARGET_CC) ==> if not installed ... "apt-get install mingw32")
else ifeq ("$(TARGET_OS)","Android")
$(error Compilator does not exist : $(TARGET_CC) ==> add and define the android NDK "http://developer.android.com/tools/sdk/ndk/index.html")
else
ifneq ("$(CLANG)","1")
$(error Compilator does not exist : $(TARGET_CC) ==> if not installed ... "apt-get install gcc g++")
else
$(error Compilator does not exist : $(TARGET_CC) ==> if not installed ... "apt-get install clang")
endif
endif
endif
ifneq ("$(CLANG)","1")
TARGET_CC_VERSION := $(shell $(TARGET_CC) --version | head -1 | sed "s/.*\([0-9]\.[0-9]\.[0-9]\).*/\1/")
else
TARGET_CC_VERSION := $(shell $(TARGET_CC) --version | head -1 | sed "s/.*\([0-9]\.[0-9]-[0-9]\).*/\1/")
endif

View File

@ -1,7 +1,8 @@
###############################################################################
## @file config.mk
## @author Y.M. Morgan
## @date 2011/05/14
## @file setup.mk
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
###############################################################################
###############################################################################
@ -13,139 +14,7 @@ ifneq ("$(words $(shell pwd))","1")
$(error Top directory contains space characters)
endif
###############################################################################
## Tools for target.
###############################################################################
ifneq ("$(CLANG)","1")
TARGET_CC := $(TARGET_CROSS)gcc
TARGET_CXX := $(TARGET_CROSS)g++
else
TARGET_CC := $(TARGET_CROSS)clang
TARGET_CXX := $(TARGET_CROSS)clang++
endif
TARGET_AR := $(TARGET_CROSS)ar
TARGET_LD := $(TARGET_CROSS)ld
TARGET_NM := $(TARGET_CROSS)nm
TARGET_STRIP := $(TARGET_CROSS)strip
TARGET_STRIP := $(TARGET_CROSS)strip
TARGET_RANLIB := $(TARGET_CROSS)ranlib
TARGET_DLLTOOL := $(TARGET_CROSS)dlltool
###############################################################################
## Tools for host.
###############################################################################
HOST_GCC ?= gcc
HOST_GXX ?= g++
HOST_AR ?= ar
HOST_LD ?= ld
HOST_NM ?= nm
HOST_STRIP ?= strip
###############################################################################
# Target global variables.
###############################################################################
TARGET_GLOBAL_C_INCLUDES ?=
TARGET_GLOBAL_CFLAGS ?=
TARGET_GLOBAL_CPPFLAGS ?=
TARGET_GLOBAL_ARFLAGS ?= rcs
TARGET_GLOBAL_LDFLAGS ?=
TARGET_GLOBAL_LDFLAGS_SHARED ?=
TARGET_GLOBAL_LDLIBS ?=
TARGET_GLOBAL_LDLIBS_SHARED ?=
TARGET_GLOBAL_CFLAGS_ARM ?=
TARGET_GLOBAL_CFLAGS_THUMB ?=
TARGET_PCH_FLAGS ?=
TARGET_DEFAULT_ARM_MODE ?= THUMB
###############################################################################
## Host/Target OS.
###############################################################################
# Host OS
ifneq ("$(shell echo $$OSTYPE | grep msys)","")
HOST_OS := Windows
HOST_EXE_SUFFIX := .exe
HOST_SHARED_LIB_SUFFIX := .dll
else
HOST_OS := Linux
HOST_EXE_SUFFIX :=
HOST_SHARED_LIB_SUFFIX := .so
endif
# Target OS : default to HOST_OS unless set
ifndef TARGET_OS
TARGET_OS := $(HOST_OS)
endif
# Exe/dll suffix under mingw
TARGET_STATIC_LIB_SUFFIX := .a
ifeq ("$(TARGET_OS)","Windows")
TARGET_EXE_SUFFIX := .exe
TARGET_SHARED_LIB_SUFFIX := .dll
else
TARGET_EXE_SUFFIX :=
TARGET_SHARED_LIB_SUFFIX := .so
endif
ifeq ("$(TARGET_OS)","Windows")
# may be overridden in make command line
STATIC := 1
TARGET_GLOBAL_CFLAGS += -D__MINGW_FEATURES__=0
TARGET_GLOBAL_LDFLAGS += -Wl,--enable-auto-import
ifeq ("$(STATIC)","1")
TARGET_GLOBAL_LDFLAGS += -Wl,-Bstatic
endif
# remove CLANG if defined
ifeq ("$(CLANG)","1")
$(error CLANG is not supported on $(TARGET_OS) platform ==> disable it)
endif
else ifeq ("$(TARGET_OS)","Android")
TARGET_GLOBAL_CFLAGS += -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \
-fpic -ffunction-sections -funwind-tables -fstack-protector \
-Wno-psabi -march=armv5te -mtune=xscale -msoft-float -fno-exceptions -mthumb \
-fomit-frame-pointer -fno-strict-aliasing -finline-limit=64
TARGET_GLOBAL_CPPFLAGS += -fno-rtti -Wa,--noexecstack
TARGET_GLOBAL_LDFLAGS +=
# remove CLANG if defined ==> TODO : Support it later ...
ifeq ("$(CLANG)","1")
$(error CLANG is not supported on $(TARGET_OS) platform ==> disable it)
endif
endif
# define the target OS type for the compilation system ...
TARGET_GLOBAL_CFLAGS += -D__TARGET_OS__$(TARGET_OS)
# basic define of the build time :
TARGET_GLOBAL_CFLAGS += -DBUILD_TIME="\"$(shell date)\"" \
ifeq ($(DEBUG),1)
TARGET_GLOBAL_CFLAGS += -DDEBUG_LEVEL=3
ifeq ("$(OPTIMISE)","1")
TARGET_GLOBAL_CFLAGS += -O2
endif
else
TARGET_GLOBAL_CFLAGS += -DDEBUG_LEVEL=1
endif
# To be able to use ccache with pre-complied headers, some env variables are required
CCACHE :=
ifeq ("$(CCACHE)","1")
ifneq ("$(shell which ccache)","")
CCACHE := CCACHE_SLOPPINESS=time_macros ccache
TARGET_GLOBAL_CFLAGS += -fpch-preprocess
endif
else
CCACHE :=
endif
# Pre-compiled header generation flag
ifneq ("$(CLANG)","1")
TARGET_PCH_FLAGS := -c
else
TARGET_PCH_FLAGS := -x c++-header
endif
# Architecture
#ifndef TARGET_ARCH
@ -163,34 +32,3 @@ endif
#else
# TARGET_GLOBAL_CFLAGS += -m32
#endif
TARGET_GLOBAL_LDFLAGS += -L$(TARGET_OUT_STAGING)/lib
TARGET_GLOBAL_LDFLAGS += -L$(TARGET_OUT_STAGING)/usr/lib
TARGET_GLOBAL_LDFLAGS_SHARED += -L$(TARGET_OUT_STAGING)/lib
TARGET_GLOBAL_LDFLAGS_SHARED += -L$(TARGET_OUT_STAGING)/usr/lib
###############################################################################
## Determine CC path and version. and check if installed ...
###############################################################################
TARGET_CC_PATH := $(shell which $(CC))
ifeq ("$(TARGET_CC_PATH)","")
ifeq ("$(TARGET_OS)","Windows")
$(error Compilator does not exist : $(TARGET_CC) ==> if not installed ... "apt-get install mingw32")
else ifeq ("$(TARGET_OS)","Android")
$(error Compilator does not exist : $(TARGET_CC) ==> add and define the android NDK "http://developer.android.com/tools/sdk/ndk/index.html")
else
ifneq ("$(CLANG)","1")
$(error Compilator does not exist : $(TARGET_CC) ==> if not installed ... "apt-get install gcc g++")
else
$(error Compilator does not exist : $(TARGET_CC) ==> if not installed ... "apt-get install clang")
endif
endif
endif
ifneq ("$(CLANG)","1")
TARGET_CC_VERSION := $(shell $(TARGET_CC) --version | head -1 | sed "s/.*\([0-9]\.[0-9]\.[0-9]\).*/\1/")
else
TARGET_CC_VERSION := $(shell $(TARGET_CC) --version | head -1 | sed "s/.*\([0-9]\.[0-9]-[0-9]\).*/\1/")
endif

View File

@ -1,7 +1,8 @@
###############################################################################
## @file warnings.mk
## @author Y.M. Morgan
## @date 2012/06/09
## @author Edouard DUPIN
## @date 17-08-2012
## @project EWOL
##
## Setup warning flags.
###############################################################################