20093908+0m5+flat+Lindent
[sgx.git] / pvr / Makefile
1 PVR_SYSTEM      :=      omap3430
2
3 EXTRA_CFLAGS += -D__linux__
4
5 obj-$(CONFIG_PVR)       +=      \
6         omaplfb.o \
7         pvrsrvkm.o
8
9 omaplfb-objs    :=      \
10         services4/3rdparty/dc_omap3430_linux/omaplfb_displayclass.o \
11         services4/3rdparty/dc_omap3430_linux/omaplfb_linux.o
12
13 pvrsrvkm-objs   :=      \
14         services4/srvkm/env/linux/osfunc.o \
15         services4/srvkm/env/linux/mmap.o \
16         services4/srvkm/env/linux/module.o \
17         services4/srvkm/env/linux/pdump.o \
18         services4/srvkm/env/linux/proc.o \
19         services4/srvkm/env/linux/pvr_bridge_k.o \
20         services4/srvkm/env/linux/pvr_debug.o \
21         services4/srvkm/env/linux/mm.o \
22         services4/srvkm/env/linux/mutex.o \
23         services4/srvkm/env/linux/event.o \
24         services4/srvkm/common/buffer_manager.o \
25         services4/srvkm/common/devicemem.o \
26         services4/srvkm/common/deviceclass.o \
27         services4/srvkm/common/handle.o \
28         services4/srvkm/common/hash.o \
29         services4/srvkm/common/metrics.o \
30         services4/srvkm/common/pvrsrv.o \
31         services4/srvkm/common/queue.o \
32         services4/srvkm/common/ra.o \
33         services4/srvkm/common/resman.o \
34         services4/srvkm/common/power.o \
35         services4/srvkm/common/mem.o \
36         services4/srvkm/bridged/bridged_pvr_bridge.o \
37         services4/srvkm/devices/sgx/sgxinit.o \
38         services4/srvkm/devices/sgx/sgxreset.o \
39         services4/srvkm/devices/sgx/sgxutils.o \
40         services4/srvkm/devices/sgx/sgxkick.o \
41         services4/srvkm/devices/sgx/sgxtransfer.o \
42         services4/srvkm/devices/sgx/mmu.o \
43         services4/srvkm/devices/sgx/pb.o \
44         services4/srvkm/common/perproc.o \
45         services4/system/$(PVR_SYSTEM)/sysconfig.o \
46         services4/system/$(PVR_SYSTEM)/sysutils.o
47
48 ccflags-y       :=      \
49         -I$(src)/include4 \
50         -I$(src)/services4/include \
51         -I$(src)/services4/srvkm/env/linux \
52         -I$(src)/services4/srvkm/include \
53         -I$(src)/services4/srvkm/bridged \
54         -I$(src)/services4/srvkm/devices/sgx \
55         -I$(src)/services4/system/$(PVR_SYSTEM) \
56         -I$(src)/services4/system/include \
57         -I$(src)/services4/srvkm/hwdefs \
58         -Iarch/arm/plat-omap/include/mach
59
60 # Work out our origins.  eurasiacon.pj is not supplied to end-users
61 # so instead we supply pvrversion.h.  We produce pvrversion.h if
62 # if doesn't exist.
63 #
64 DATE                    := $(shell date "+%a %B %d %Z %Y" )
65
66 SGXCORE = 530
67 CORE = -DSGX530 -DSUPPORT_SGX530 -DSGX_CORE_REV=121
68
69 # --------------------------------------------------------------------------------
70
71 SUPPORT_SGX = 1
72 SUPPORT_HW_RECOVERY = 1
73 SUPPORT_SGX_HWPERF = 1
74 SYS_USING_INTERRUPTS = 1
75
76 PVR2D_ALT_2DHW = 1
77
78 LDM_PLATFORM ?= 1
79
80 # Only enable active power management if passive power management is
81 # enabled, as indicated by LDM_PLATFORM being set to 1.  On OMAP,
82 # the system can suspend in the case where active power management is
83 # enabled in the SGX driver, but passive power management isn't. As
84 # passive power management isn't enabled, the driver won't see the
85 # system suspend/resume events, and so won't take appropriate action.
86 ifeq ($(LDM_PLATFORM),1)
87 SUPPORT_ACTIVE_POWER_MANAGEMENT ?= 1
88 else
89 SUPPORT_ACTIVE_POWER_MANAGEMENT = 0
90 endif
91
92 BUILD                  ?= release
93 # The standard CFLAGS macro can be overridden on the 'make' command line.  We
94 # put CBUILD in a separate macro so its setting doesn't get lost when a user
95 # *does* override CFLAGS.
96 #
97
98 CBUILD                  =       -DPVR_BUILD_DIR="\"$(PVR_BUILD_DIR)\"" \
99                                         -DPVR_BUILD_DATE="\"$(DATE)\"" \
100                                         -DPVR_BUILD_TYPE="\"$(BUILD)\""
101
102 # OPTIM contains the optimisation level in timing and release builds
103 OPTIM                   = -O2
104
105 #  Don't support HW recovery on debug builds
106 CBUILD.debug    = -DDEBUG
107 CBUILD.timing   = -DTIMING
108 CBUILD.release  = -DRELEASE
109 _CFLAGS.debug   = -g -O0 -DDLL_METRIC=1
110 _CFLAGS.timing  = $(OPTIM) -g -DDLL_METRIC=1 -DTIMING
111 _CFLAGS.release = $(OPTIM) -g
112 _CFLAGS          = $(_CFLAGS.$(BUILD)) -DSGX_DYNAMIC_TIMING_INFO
113
114 # Defaults for useful things.
115 #
116
117 ifeq ("$(BUILD)", "debug")
118 DEBUG_LINUX_MEMORY_ALLOCATIONS ?= 1
119 DEBUG_LINUX_MEM_AREAS ?= 1
120 DEBUG_LINUX_MMAP_AREAS ?= 1
121 DEBUG_LINUX_XML_PROC_FILES ?= 0
122 DEBUG_LINUX_SLAB_ALLOCATIONS ?= 0
123 DEBUG_BRIDGE_KM ?= 1
124 DEBUG_TRACE_BRIDGE_KM ?= 0
125 DEBUG_BRIDGE_KM_DISPATCH_TABLE ?= 0
126 endif
127
128 TRANSFER_QUEUE ?= 1
129 SUPPORT_SGX_EVENT_OBJECT ?=1
130 SUPPORT_SECURE_HANDLES          ?= 1
131 SUPPORT_SRVINIT = 1
132 SUPPORT_PERCONTEXT_PB = 1
133
134 SYS_CFLAGS += -DSERVICES4 -D_XOPEN_SOURCE=600 -DPVR2D_VALIDATE_INPUT_PARAMS
135
136 # Thread support
137 USE_PTHREADS ?= 1
138 USE_GCC__thread_KEYWORD ?= 0
139 OPTIMISE_NON_NPTL_SINGLE_THREAD_TLS_LOOKUP ?= 0
140 DISABLE_THREADS ?= 0
141
142 # Automatically define C compiler macros for features possible (or not) in use.
143
144 SYS_CFLAGS.$(SUPPORT_SRVINIT)                           += -DSUPPORT_SRVINIT
145
146 SYS_CFLAGS.$(SUPPORT_SGX)                                       += -DSUPPORT_SGX
147 SYS_CFLAGS.$(SUPPORT_XWS)                                       += -DSUPPORT_XWS
148 SYS_CFLAGS.$(PDUMP)                                                     += -DPDUMP
149 SYS_CFLAGS.$(SUPPORT_POWER_MANAGEMENT)          += -DSUPPORT_POWER_MANAGEMENT
150 SYS_CFLAGS.$(SUPPORT_BUFFER_CLASS)                      += -DSUPPORT_BUFFER_CLASS
151
152 SYS_CFLAGS.$(SUPPORT_PERCONTEXT_PB)                     += -DSUPPORT_PERCONTEXT_PB 
153 SYS_CFLAGS.$(SUPPORT_DYNAMIC_PBRESIZE)          += -DSUPPORT_DYNAMIC_PBRESIZE
154
155 SYS_CFLAGS.$(USE_FBDEV)                                         += -DUSE_FBDEV
156 SYS_CFLAGS.$(USE_FBDEV)                                         += -DFBDEV_NAME="\"$(FBDEV_NAME)\""
157 SYS_CFLAGS.$(SUPPORT_DYNAMIC_3DCLOCKGATING) += -DSUPPORT_DYNAMIC_3DCLOCKGATING
158 SYS_CFLAGS.$(REENTRANCY_PROTECTION)                     += -DREENTRANCY_PROTECTION
159 SYS_CFLAGS.$(SCHEDULER_CONTROL_SUPPORT)         += -DSCHEDULER_CONTROL_SUPPORT
160 SYS_CFLAGS.$(USE_IMG_POWER_DOMAIN_FUNCTION) += -DUSE_IMG_POWER_DOMAIN_FUNCTION
161
162 SYS_CFLAGS.$(USE_DMALLOC)                                       += -DDMALLOC
163
164 SYS_CFLAGS.$(DEBUG_LINUX_MEMORY_ALLOCATIONS)    += -DDEBUG_LINUX_MEMORY_ALLOCATIONS
165 SYS_CFLAGS.$(DEBUG_LINUX_MEM_AREAS)                             += -DDEBUG_LINUX_MEM_AREAS
166 SYS_CFLAGS.$(DEBUG_LINUX_MMAP_AREAS)                    += -DDEBUG_LINUX_MMAP_AREAS
167 SYS_CFLAGS.$(DEBUG_LINUX_XML_PROC_FILES)                += -DDEBUG_LINUX_XML_PROC_FILES
168 SYS_CFLAGS.$(DEBUG_LINUX_SLAB_ALLOCATIONS)              += -DDEBUG_LINUX_SLAB_ALLOCATIONS
169 SYS_CFLAGS.$(DEBUG_BRIDGE_KM)                                   += -DDEBUG_BRIDGE_KM
170 SYS_CFLAGS.$(DEBUG_TRACE_BRIDGE_KM)                             += -DDEBUG_TRACE_BRIDGE_KM
171 SYS_CFLAGS.$(DEBUG_BRIDGE_KM_DISPATCH_TABLE)    += -DDEBUG_BRIDGE_KM_DISPATCH_TABLE
172
173 SYS_CFLAGS.$(SUPPORT_LINUX_X86_WRITECOMBINE)    += -DSUPPORT_LINUX_X86_WRITECOMBINE
174
175 SYS_CFLAGS.$(SGX_PDS_EVENTS_DISABLED)                   += -DSGX_PDS_EVENTS_DISABLED
176 SYS_CFLAGS.$(USE_SUPPORT_NO_TA3D_OVERLAP)               += -DUSE_SUPPORT_NO_TA3D_OVERLAP
177 SYS_CFLAGS.$(SUPPORT_SGX_TILING)                                += -DSUPPORT_SGX_TILING
178 SYS_CFLAGS.$(TRANSFER_QUEUE)                                    += -DTRANSFER_QUEUE
179
180 SYS_CFLAGS.$(SUPPORT_SGX_MMU_DUMMY_PAGE)                += -DSUPPORT_SGX_MMU_DUMMY_PAGE
181
182 SYS_CFLAGS.$(PVRSRV_USSE_EDM_STATUS_DEBUG)              += -DPVRSRV_USSE_EDM_STATUS_DEBUG
183
184 SYS_CFLAGS.$(NO_HARDWARE)                               += -DNO_HARDWARE
185
186 SYS_CFLAGS.$(SUPPORT_DRI_DRM)                           += -DSUPPORT_DRI_DRM
187
188 ifneq ("$(NO_HARDWARE)", "1")
189 SYS_CFLAGS.$(SYS_USING_INTERRUPTS)              += -DSYS_USING_INTERRUPTS
190 SYS_CFLAGS.$(SUPPORT_HW_RECOVERY)               += -DSUPPORT_HW_RECOVERY
191 SYS_CFLAGS.$(SUPPORT_ACTIVE_POWER_MANAGEMENT)   += -DSUPPORT_ACTIVE_POWER_MANAGEMENT
192 endif
193
194 SYS_CFLAGS.$(SUPPORT_SECURE_HANDLES)    += -DPVR_SECURE_HANDLES
195
196 SYS_CFLAGS.$(USE_PTHREADS)                              += -DUSE_PTHREADS
197 SYS_CFLAGS.$(USE_GCC__thread_KEYWORD)   += -DUSE_GCC__thread_KEYWORD
198 SYS_CFLAGS.$(OPTIMISE_NON_NPTL_SINGLE_THREAD_TLS_LOOKUP) += -DOPTIMISE_NON_NPTL_SINGLE_THREAD_TLS_LOOKUP
199 SYS_CFLAGS.$(DISABLE_THREADS)                   += -DDISABLE_THREADS
200 SYS_CFLAGS.$(SUPPORT_SGX_EVENT_OBJECT)                  += -DSUPPORT_SGX_EVENT_OBJECT
201 SYS_CFLAGS.$(LDM_PLATFORM)                      += -DLDM_PLATFORM
202 SYS_CFLAGS.$(LDM_PCI)                           += -DLDM_PCI
203 SYS_CFLAGS.$(PVR_MANUAL_POWER_CONTROL)          += -DPVR_MANUAL_POWER_CONTROL
204
205 SYS_CFLAGS.$(PVR2D_ALT_2DHW)                    += -DPVR2D_ALT_2DHW
206
207 SYS_CFLAGS.$(SUPPORT_SGX_HWPERF)                += -DSUPPORT_SGX_HWPERF
208
209 SYS_INCLUDES    =       -I$(EURASIAROOT)/include4 \
210                                         -I$(EURASIAROOT)/eurasiacon/includeext \
211                                         -isystem $(KERNELDIR)/include
212
213 ALL_CFLAGS_kbuild       =       -DLINUX \
214                                                 $(CBUILD) $(CBUILD.$(BUILD)) \
215                                                 $(SYS_CFLAGS) $(SYS_CFLAGS.1) \
216                                                 $(MODULE_CFLAGS) $(MODULE_CFLAGS.$(BUILD)) \
217                                                 $(CORE) \
218                                                 -Wall -fno-strict-aliasing \
219                                                 $(_CFLAGS)
220
221 ccflags-y += $(ALL_CFLAGS_kbuild)