# # Common makefile include for tks-source and plugins # # n=32bit build ("x86", jit) # y=64bit build ("amd64", no jit) ifeq ($(BUILD_64),) BUILD_64=y endif ifeq ($(BUILD_ARM),) BUILD_ARM=n endif MK=linux # # Enable optimizations # RELEASE=y # # Enable debug symbols. # Strip executable if NOT set to 'y' # DEBUG=n # # Cross compiler setup # # (note) CROSS_COMPILE and CROSS_ROOT vars should be set in the shell # so that this file does not need to be modified for different # targets # # (note) CROSS_TARGET can be set to 'OMAP3' (Open Pandora) # this will disable the AUTOLOAD_TKOPENGL hack in "tks-source/TKS_CachedScript.cpp" # # Host compiler (default) #CROSS_COMPILE= # Code Sourcery ARMv7 #CROSS_COMPILE=arm-none-linux-gnueabi- # Montavista ARMv5 #CROSS_COMPILE=arm_v5t_le- # Location of target root FS (on dev. host) #CROSS_ROOT= #CROSS_ROOT=/bsp/pandora-dev/arm-2011.09 # # Where to install tks # (creates # $(TKS_SITE_PREFIX)/plugins # $(TKS_SITE_PREFIX)/libraries # $(TKS_SITE_PREFIX)/applications # $(TKS_SITE_PREFIX)/modules # directories, # copies tks.sh to $(TKS_PREFIX)/bin/tks and # tks.bin to $(TKS_PREFIX)/bin/tks.bin # ) # # Target installation paths for executable and libraries/plugins/modules # (also used to build "tks.sh" startup script, see tks-source/install.tks) TKS_TARGET_PREFIX=/usr TKS_TARGET_SITE_PREFIX=$(TKS_TARGET_PREFIX)/lib/tks # Installation paths used by development host TKS_PREFIX=$(CROSS_ROOT)$(TKS_TARGET_PREFIX) TKS_SITE_PREFIX=$(CROSS_ROOT)$(TKS_TARGET_SITE_PREFIX) # # Tool setup # AR = $(CROSS_COMPILE)ar CPP = $(CROSS_COMPILE)g++ CC = $(CROSS_COMPILE)gcc AS = $(CROSS_COMPILE)as STRIP = $(CROSS_COMPILE)strip CP = cp -f FIND = find INSTALL = ginstall MAKE = make RM = rm -f SED = sed TKS = tks ZIP = zip UPX = upx MD5SUM = md5sum # # Number of parallel targets to make # NUMJOBS=`grep -c "model name" /proc/cpuinfo` #NUMJOBS=4 # # Target architecture # ifeq ($(BUILD_ARM),y) ifeq ($(BUILD_64),y) ARCH=ARM64 else ARCH=ARM32 endif else ifeq ($(BUILD_64),y) ARCH=X64 else ARCH=X86 endif endif # # C compiler flags # CFLAGS= -Wall $(EXTRA_CFLAGS) # # C++ compiler flags # CPPFLAGS= -Wall $(EXTRA_CPPFLAGS) # # Target architecture flags # ARCHFLAGS= ifeq ($(BUILD_ARM),y) ifeq ($(BUILD_64),y) ARCHFLAGS+= -DARCH_ARM64 else ARCHLAGS+= -DARCH_ARM32 endif else ifeq ($(BUILD_64),y) ARCHFLAGS+= -DARCH_X64 else ARCHFLAGS+= -DARCH_X86 endif endif CFLAGS+= $(ARCHFLAGS) CPPFLAGS+= $(ARCHFLAGS) # # Assembly flags # AFLAGS= ifeq ($(CROSS_TARGET),OMAP3) AFLAGS += -mlittle-endian -march=armv7-a -mcpu=cortex-a8 -mfpu=neon endif # # Linker flags # LDFLAGS= $(EXTRA_LDFLAGS) # # Extra includes # #EXTRA_INCLUDES= #EXTRA_INCLUDES= -I/home/bsp/omap35x/zlib-1.2.3 EXTRA_INCLUDES= -I$(CROSS_ROOT)/usr/include # # Extra library paths # #EXTRA_LIBS= #EXTRA_LIBS= -L/home/bsp/omap35x/zlib-1.2.3 EXTRA_LIBS= -L$(CROSS_ROOT)/usr/lib # # Optimization flags # OPTFLAGS= ifeq ($(RELEASE),y) ifeq ($(CROSS_TARGET),OMAP3) CFLAGS += -pipe -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon CPPFLAGS+= -pipe -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon OPTFLAGS += -O2 else OPTFLAGS += -O3 endif endif # # Debug flags # DBGFLAGS= ifeq ($(DEBUG),y) DBGFLAGS += -g #DBGFLAGS= -g -pg #DBGFLAGS= -ggdb3 endif # # Target dependent flags # ifeq ($(CROSS_TARGET),OMAP3) LDFLAGS+= -Wl,-R./ CFLAGS += -DOMAP3 CPPFLAGS += -DOMAP3 endif # # Do not define if libgcc is missing hypotf() (old versions only) # Set to 'y' if it has. # HAVE_HYPOTF=y # # Which flags to use for plugins # # "hack" for VSVR build (pffft lib requires SSE) #OPTFLAGS+= -mtune=core2 #OPTFLAGS+= -march=haswell OPTFLAGS+= $(EXTRA_OPTFLAGS) #OPTFLAGS_PLUGIN = $(OPTFLAGS_SIZE) OPTFLAGS_PLUGIN = $(OPTFLAGS) # # Nothing to change after this line----------------------------- # CFLAGS+= $(EXTRA_INCLUDES) $(DBGFLAGS) CPPFLAGS+= $(EXTRA_INCLUDES) $(DBGFLAGS) LDFLAGS+= $(EXTRA_LIBS) ifeq ($(HAVE_HYPOTF),y) CFLAGS += -DHAVE_HYPOTF CPPFLAGS += -DHAVE_HYPOTF endif