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.

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