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.

265 lines
4.1KB

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