You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

259 lines
4.0KB

  1. #
  2. # Common makefile include for tks-source and plugins
  3. #
  4. # n=32bit build ("x86", jit)
  5. # y=64bit build ("amd64", no jit)
  6. BUILD_64=y
  7. BUILD_ARM=n
  8. MK=linux
  9. #
  10. # Enable optimizations
  11. #
  12. RELEASE=y
  13. #
  14. # Enable debug symbols.
  15. # Strip executable if NOT set to 'y'
  16. #
  17. DEBUG=n
  18. #
  19. # Cross compiler setup
  20. #
  21. # (note) CROSS_COMPILE and CROSS_ROOT vars should be set in the shell
  22. # so that this file does not need to be modified for different
  23. # targets
  24. #
  25. # (note) CROSS_TARGET can be set to 'OMAP3' (Open Pandora)
  26. # this will disable the AUTOLOAD_TKOPENGL hack in "tks-source/TKS_CachedScript.cpp"
  27. #
  28. # Host compiler (default)
  29. #CROSS_COMPILE=
  30. # Code Sourcery ARMv7
  31. #CROSS_COMPILE=arm-none-linux-gnueabi-
  32. # Montavista ARMv5
  33. #CROSS_COMPILE=arm_v5t_le-
  34. # Location of target root FS (on dev. host)
  35. #CROSS_ROOT=
  36. #CROSS_ROOT=/bsp/pandora-dev/arm-2011.09
  37. #
  38. # Where to install tks
  39. # (creates
  40. # $(TKS_SITE_PREFIX)/plugins
  41. # $(TKS_SITE_PREFIX)/libraries
  42. # $(TKS_SITE_PREFIX)/applications
  43. # $(TKS_SITE_PREFIX)/modules
  44. # directories,
  45. # copies tks.sh to $(TKS_PREFIX)/bin/tks and
  46. # tks.bin to $(TKS_PREFIX)/bin/tks.bin
  47. # )
  48. #
  49. # Target installation paths for executable and libraries/plugins/modules
  50. # (also used to build "tks.sh" startup script, see tks-source/install.tks)
  51. TKS_TARGET_PREFIX=/usr
  52. TKS_TARGET_SITE_PREFIX=$(TKS_TARGET_PREFIX)/lib/tks
  53. # Installation paths used by development host
  54. TKS_PREFIX=$(CROSS_ROOT)$(TKS_TARGET_PREFIX)
  55. TKS_SITE_PREFIX=$(CROSS_ROOT)$(TKS_TARGET_SITE_PREFIX)
  56. #
  57. # Tool setup
  58. #
  59. AR = $(CROSS_COMPILE)ar
  60. CPP = $(CROSS_COMPILE)g++
  61. CC = $(CROSS_COMPILE)gcc
  62. AS = $(CROSS_COMPILE)as
  63. STRIP = $(CROSS_COMPILE)strip
  64. CP = cp -f
  65. FIND = find
  66. INSTALL = ginstall
  67. MAKE = make
  68. RM = rm -f
  69. SED = sed
  70. TKS = tks
  71. ZIP = zip
  72. UPX = upx
  73. MD5SUM = md5sum
  74. #
  75. # Number of parallel targets to make
  76. #
  77. NUMJOBS=`grep -c "model name" /proc/cpuinfo`
  78. #NUMJOBS=4
  79. #
  80. # Target architecture
  81. #
  82. ifeq ($(BUILD_ARM),y)
  83. ifeq ($(BUILD_64),y)
  84. ARCH=ARM64
  85. else
  86. ARCH=ARM32
  87. endif
  88. else
  89. ifeq ($(BUILD_64),y)
  90. ARCH=X64
  91. else
  92. ARCH=X86
  93. endif
  94. endif
  95. #
  96. # C compiler flags
  97. #
  98. CFLAGS= -Wall
  99. #
  100. # C++ compiler flags
  101. #
  102. CPPFLAGS= -Wall
  103. #
  104. # Target architecture flags
  105. #
  106. ARCHFLAGS=
  107. ifeq ($(BUILD_ARM),y)
  108. ifeq ($(BUILD_64),y)
  109. ARCHFLAGS+= -DARCH_ARM64
  110. else
  111. ARCHLAGS+= -DARCH_ARM32
  112. endif
  113. else
  114. ifeq ($(BUILD_64),y)
  115. ARCHFLAGS+= -DARCH_X64
  116. else
  117. ARCHFLAGS+= -DARCH_X86
  118. endif
  119. endif
  120. CFLAGS+= $(ARCHFLAGS)
  121. CPPFLAGS+= $(ARCHFLAGS)
  122. #
  123. # Assembly flags
  124. #
  125. AFLAGS=
  126. ifeq ($(CROSS_TARGET),OMAP3)
  127. AFLAGS += -mlittle-endian -march=armv7-a -mcpu=cortex-a8 -mfpu=neon
  128. endif
  129. #
  130. # Linker flags
  131. #
  132. LDFLAGS=
  133. #
  134. # Extra includes
  135. #
  136. #EXTRA_INCLUDES=
  137. #EXTRA_INCLUDES= -I/home/bsp/omap35x/zlib-1.2.3
  138. EXTRA_INCLUDES= -I$(CROSS_ROOT)/usr/include
  139. #
  140. # Extra library paths
  141. #
  142. #EXTRA_LIBS=
  143. #EXTRA_LIBS= -L/home/bsp/omap35x/zlib-1.2.3
  144. EXTRA_LIBS= -L$(CROSS_ROOT)/usr/lib
  145. #
  146. # Optimization flags
  147. #
  148. OPTFLAGS=
  149. ifeq ($(RELEASE),y)
  150. ifeq ($(CROSS_TARGET),OMAP3)
  151. CFLAGS += -pipe -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
  152. CPPFLAGS+= -pipe -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
  153. OPTFLAGS += -O2
  154. else
  155. OPTFLAGS += -O3
  156. endif
  157. endif
  158. #
  159. # Debug flags
  160. #
  161. DBGFLAGS=
  162. ifeq ($(DEBUG),y)
  163. DBGFLAGS += -g
  164. #DBGFLAGS= -g -pg
  165. #DBGFLAGS= -ggdb3
  166. endif
  167. #
  168. # Target dependent flags
  169. #
  170. ifeq ($(CROSS_TARGET),OMAP3)
  171. LDFLAGS+= -Wl,-R./
  172. CFLAGS += -DOMAP3
  173. CPPFLAGS += -DOMAP3
  174. endif
  175. #
  176. # Do not define if libgcc is missing hypotf() (old versions only)
  177. # Set to 'y' if it has.
  178. #
  179. HAVE_HYPOTF=y
  180. #
  181. # Which flags to use for plugins
  182. #
  183. # "hack" for VSVR build (pffft lib requires SSE)
  184. #OPTFLAGS+=-mtune=core2
  185. OPTFLAGS+=-march=haswell
  186. #OPTFLAGS_PLUGIN = $(OPTFLAGS_SIZE)
  187. OPTFLAGS_PLUGIN = $(OPTFLAGS)
  188. #
  189. # Nothing to change after this line-----------------------------
  190. #
  191. CFLAGS+= $(EXTRA_INCLUDES) $(DBGFLAGS)
  192. CPPFLAGS+= $(EXTRA_INCLUDES) $(DBGFLAGS)
  193. LDFLAGS+= $(EXTRA_LIBS)
  194. ifeq ($(HAVE_HYPOTF),y)
  195. CFLAGS += -DHAVE_HYPOTF
  196. CPPFLAGS += -DHAVE_HYPOTF
  197. endif