1 #----------------------------------------------------------------------------
2 # Filename: Makefile.gnu
4 #----------------------------------------------------------------------------
5 # Copyright (c) 2002-2010, Intel Corporation.
7 # Permission is hereby granted, free of charge, to any person obtaining a copy
8 # of this software and associated documentation files (the "Software"), to deal
9 # in the Software without restriction, including without limitation the rights
10 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 # copies of the Software, and to permit persons to whom the Software is
12 # furnished to do so, subject to the following conditions:
14 # The above copyright notice and this permission notice shall be included in
15 # all copies or substantial portions of the Software.
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 #----------------------------------------------------------------------------
25 export EGD_TOPLEVEL = DRM Driver
27 KERNELMODVER ?= $(shell ls -d /lib/modules/*automotive)
28 KERNELVER ?= $(subst /lib/modules/,,$(KERNELMODVER))
29 KERNELDIR ?= /lib/modules/$(KERNELVER)/build
30 INSTALLDIR ?= /lib/modules/$(KERNELVER)/kernel/drivers/gpu/drm/emgd
31 INCLUDEDIR ?= /usr/src/kernels/$(KERNELVER)/include/linux
36 CONFIG_PVR_RELEASE ?= $(BUILD)
39 # Get the include paths pointed to the right place.
40 export EMGD_MOD_DIR ?= $(CURDIR)
42 BUILDDATE ?= $(shell date +%Y%m%d)
45 -I$(EMGD_MOD_DIR)/include \
46 -I$(EMGD_MOD_DIR)/emgd/display/mode/cmn \
47 -I$(EMGD_MOD_DIR)/emgd/video/overlay/cmn \
48 -I$(EMGD_MOD_DIR)/emgd/video/msvdx \
49 -I$(EMGD_MOD_DIR)/emgd/include \
50 -I$(EMGD_MOD_DIR)/emgd/cfg \
51 -I$(EMGD_MOD_DIR)/emgd/pal/lpd \
52 -I$(EMGD_MOD_DIR)/emgd/pal/lvds \
53 -I$(EMGD_MOD_DIR)/emgd/pal/ch7036 \
54 -I$(EMGD_MOD_DIR)/emgd/drm \
55 -I$(KERNELDIR)/include/drm \
56 -I$(EMGD_MOD_DIR)/pvr/include4 \
57 -I$(EMGD_MOD_DIR)/pvr/services4/include \
58 -I$(EMGD_MOD_DIR)/pvr/services4/include/env/linux \
59 -I$(EMGD_MOD_DIR)/pvr/services4/srvkm/env/linux \
60 -I$(EMGD_MOD_DIR)/pvr/services4/srvkm/include \
61 -I$(EMGD_MOD_DIR)/pvr/services4/srvkm/bridged \
62 -I$(EMGD_MOD_DIR)/pvr/services4/system/plb \
63 -I$(EMGD_MOD_DIR)/pvr/services4/system/tnc \
64 -I$(EMGD_MOD_DIR)/pvr/services4/system/include \
65 -I$(EMGD_MOD_DIR)/pvr/services4/srvkm/hwdefs \
66 -I$(EMGD_MOD_DIR)/pvr/services4/srvkm/bridged/sgx \
67 -I$(EMGD_MOD_DIR)/pvr/services4/srvkm/devices/sgx \
68 -I$(EMGD_MOD_DIR)/pvr/services4/3rdparty/emgd_bufferclass \
69 -I$(EMGD_MOD_DIR)/pvr/tools/intern/debug \
71 -DSUPPORT_DRI_DRM_EXT \
73 -DPVR_BUILD_DIR="\"emgd\"" \
74 -DPVR_BUILD_DATE="\"$(BUILDDATE)\"" \
75 -DPVR_BUILD_TYPE="\"$(CONFIG_PVR_RELEASE)\"" \
76 -DBUILD=$(CONFIG_PVR_RELEASE) \
77 -DPVR_SECURE_HANDLES \
78 -DPVR_PROC_USE_SEQ_FILE \
80 -DSUPPORT_CACHEFLUSH_ON_ALLOC \
84 -UDEBUG_LOG_PATH_TRUNCATE \
85 -DDISPLAY_CONTROLLER=emgd_dc \
88 -DPVR2D_VALIDATE_INPUT_PARAMS \
91 -DSUPPORT_PERCONTEXT_PB \
92 -DSUPPORT_LINUX_X86_WRITECOMBINE \
93 -DSUPPORT_SECURE_DRM_AUTH_EXPORT \
94 -DSUPPORT_PDUMP_DELAYED_INITPHASE_TERMINATION \
96 -DSYS_USING_INTERRUPTS \
97 -DSUPPORT_HW_RECOVERY \
98 -DSUPPORT_ACTIVE_POWER_MANAGEMENT \
99 -DPVR_SECURE_HANDLES \
101 -DSUPPORT_SGX_EVENT_OBJECT \
102 -DSUPPORT_SGX_HWPERF \
103 -DSUPPORT_LINUX_X86_PAT \
105 -DSUPPORT_CACHE_LINE_FLUSH \
106 -DSUPPORT_CPU_CACHED_BUFFERS \
107 -DDEBUG_MESA_OGL_TRACE \
108 -DSUPPORT_EGL_IMAGE_SYNC_DEPENDENCY \
111 ifeq "$(strip $(CONFIG_PVR_RELEASE))" "release"
112 ccflags-y += -DRELEASE
114 # FIXME: Looks like this causes conflicts in the emgd code.
116 ccflags-y += -DDEBUG_BUILD_TYPE
119 EXTRA_CFLAGS += $(PROJECT_INCLUDES)
122 EXTRA_CFLAGS += -DPDUMP=1
127 emgd/drm/emgd_fbcon.o \
128 emgd/drm/emgd_crtc.o \
129 emgd/drm/emgd_encoder.o \
130 emgd/drm/emgd_connector.o \
131 emgd/drm/emgd_mmap.o \
132 emgd/drm/emgd_drv.o \
133 emgd/drm/emgd_interface.o \
134 emgd/drm/emgd_test_pvrsrv.o \
135 emgd/drm/user_config.o \
136 emgd/drm/splash_screen.o \
137 emgd/display/pd/cmn/pd.o \
138 emgd/display/pi/cmn/igd_pi.o \
139 emgd/display/pi/cmn/displayid.o \
140 emgd/display/pi/cmn/pd_init_all.o \
141 emgd/display/pi/cmn/edid.o \
142 emgd/display/pi/cmn/pi.o \
143 emgd/display/pi/cmn/mode_table.o \
144 emgd/display/pi/tnc/i2c_gmbus_tnc.o \
145 emgd/display/pi/tnc/i2c_bitbash_tnc.o \
146 emgd/display/pi/plb/i2c_plb.o \
147 emgd/display/mode/cmn/match.o \
148 emgd/display/mode/cmn/micro_mode.o \
149 emgd/display/mode/cmn/vga_mode.o \
150 emgd/display/mode/cmn/igd_mode.o \
151 emgd/display/mode/tnc/micro_mode_tnc.o \
152 emgd/display/mode/tnc/mode_tnc.o \
153 emgd/display/mode/tnc/kms_mode_tnc.o \
154 emgd/display/mode/tnc/clocks_tnc.o \
155 emgd/display/mode/plb/micro_mode_plb.o \
156 emgd/display/mode/plb/clocks_plb.o \
157 emgd/display/mode/plb/mode_plb.o \
158 emgd/display/mode/plb/kms_mode_plb.o \
159 emgd/display/dsp/cmn/dsp.o \
160 emgd/display/dsp/tnc/dsp_tnc.o \
161 emgd/display/dsp/plb/dsp_plb.o \
162 emgd/core/init/cmn/igd_global.o \
163 emgd/core/init/cmn/igd_init.o \
164 emgd/core/init/tnc/micro_init_tnc.o \
165 emgd/core/init/tnc/init_tnc.o \
166 emgd/core/init/plb/init_plb.o \
167 emgd/core/init/plb/micro_init_plb.o \
168 emgd/state/power/cmn/igd_pwr.o \
169 emgd/state/power/plb/pwr_plb.o \
170 emgd/state/appcontext/cmn/igd_appcontext.o \
171 emgd/state/appcontext/plb/appcontext_plb.o \
172 emgd/state/reg/cmn/reg.o \
173 emgd/state/reg/tnc/reg_tnc.o \
174 emgd/state/reg/plb/reg_plb.o \
175 emgd/video/overlay/cmn/ovl_coeff.o \
176 emgd/video/overlay/cmn/igd_ovl.o \
177 emgd/video/overlay/cmn/micro_ovl.o \
178 emgd/video/overlay/tnc/ovl_tnc_cache.o \
179 emgd/video/overlay/tnc/ovl_tnc.o \
180 emgd/video/overlay/tnc/ovl2_tnc.o \
181 emgd/video/overlay/tnc/micro_ovl_tnc.o \
182 emgd/video/overlay/plb/ovl_plb_cache.o \
183 emgd/video/overlay/plb/ovl2_plb.o \
184 emgd/video/overlay/plb/ovl_plb.o \
185 emgd/video/overlay/plb/micro_ovl_plb.o \
186 emgd/video/msvdx/msvdx_init.o \
187 emgd/video/msvdx/msvdx.o \
188 emgd/video/msvdx/msvdx_pvr.o \
189 emgd/video/topaz/topaz_init.o \
190 emgd/video/topaz/topaz.o \
191 emgd/pal/sdvo/sdvo_attr.o \
192 emgd/pal/sdvo/sdvo_hdmi.o \
193 emgd/pal/sdvo/sdvo_port.o \
194 emgd/pal/sdvo/sdvo_intf.o \
195 emgd/pal/ch7036/ch7036_attr.o \
196 emgd/pal/ch7036/ch7036_fw.o \
197 emgd/pal/ch7036/ch7036_intf.o \
198 emgd/pal/ch7036/ch7036_port.o \
199 emgd/pal/ch7036/ch7036.o \
200 emgd/pal/ch7036/ch7036_iic.o \
201 emgd/pal/ch7036/ch7036_pm.o \
202 emgd/pal/ch7036/ch7036_reg_table.o \
203 emgd/pal/ch7036/lvds/lvds.o \
204 emgd/pal/lvds/lvds.o \
209 emgd/utils/memmap.o \
210 emgd/utils/math_fix.o \
212 ENVDIR = pvr/services4/srvkm/env/linux
213 COMMONDIR = pvr/services4/srvkm/common
214 BRIDGEDDIR = pvr/services4/srvkm/bridged
215 SYSCONFIGDIR = pvr/services4/system/common
216 SGXDIR = pvr/services4/srvkm/devices/sgx
217 DISPCLASSDIR = pvr/services4/3rdparty/emgd_displayclass
218 BUFFERCLASSDIR = pvr/services4/3rdparty/emgd_bufferclass
221 DBGDRVDIR = pvr/tools/intern/debug/dbgdriv
223 DBGDRV_OBJS = $(DBGDRVDIR)/linux/main.o \
224 $(DBGDRVDIR)/common/dbgdriv.o \
225 $(DBGDRVDIR)/common/ioctl.o \
226 $(DBGDRVDIR)/linux/hostfunc.o \
227 $(DBGDRVDIR)/common/hotkey.o
230 ENV_OBJS = $(ENVDIR)/osfunc.o \
236 $(ENVDIR)/pvr_bridge_k.o \
237 $(ENVDIR)/pvr_debug.o \
241 $(ENVDIR)/osperproc.o \
244 COMMON_OBJS = $(COMMONDIR)/buffer_manager.o \
245 $(COMMONDIR)/devicemem.o \
246 $(COMMONDIR)/deviceclass.o \
247 $(COMMONDIR)/handle.o \
248 $(COMMONDIR)/hash.o \
249 $(COMMONDIR)/metrics.o \
250 $(COMMONDIR)/pvrsrv.o \
251 $(COMMONDIR)/queue.o \
253 $(COMMONDIR)/resman.o \
254 $(COMMONDIR)/power.o \
256 $(COMMONDIR)/pdump_common.o \
257 $(COMMONDIR)/perproc.o \
258 $(COMMONDIR)/lists.o \
259 $(COMMONDIR)/mem_debug.o
261 BRIDGED_OBJS = $(BRIDGEDDIR)/bridged_support.o \
262 $(BRIDGEDDIR)/bridged_pvr_bridge.o \
263 $(BRIDGEDDIR)/sgx/bridged_sgx_bridge.o
265 SYSCONFIG_OBJS = $(SYSCONFIGDIR)/sysconfig.o \
266 pvr/services4/system/tnc/sysconfig.o \
267 pvr/services4/system/plb/sysconfig.o \
268 $(SYSCONFIGDIR)/sysutils.o
269 # $(SYSCONFIGDIR)/sysirq.o
270 # $(SYSCONFIGDIR)/ospm_power.o \
272 SGX_OBJS = $(SGXDIR)/sgxinit.o \
273 $(SGXDIR)/sgxpower.o \
274 $(SGXDIR)/sgxreset.o \
275 $(SGXDIR)/sgxutils.o \
276 $(SGXDIR)/sgxkick.o \
277 $(SGXDIR)/sgxtransfer.o \
281 DC_OBJS = $(DISPCLASSDIR)/emgd_dc.o \
282 $(DISPCLASSDIR)/emgd_dc_linux.o
284 BC_OBJS = $(BUFFERCLASSDIR)/emgd_bc.o \
285 $(BUFFERCLASSDIR)/emgd_bc_linux.o
299 emgd-y += $(DBGDRV_OBJS)
302 obj-$(CONFIG_DRM_EGD) += emgd.o
307 @echo $(CURDIR) -- $(CONFIG_PVR_RELEASE)
308 @echo "$(MAKE) -C $(KERNELDIR) M=$(CURDIR) modules"
309 @$(MAKE) -C $(KERNELDIR) M=$(CURDIR) modules
313 @rm -f emgd.o emgd.mod.* emgd.ko Module.* modules.order
314 @find . -name "*.cmd" -exec rm '{}' \;
317 install -o root -g root -m 755 -d $(INSTALLDIR)
318 install -o root -g root -m 744 emgd.ko $(INSTALLDIR)
322 rmmod $(INSTALLDIR)/emgd.ko
323 rm -rf $(INSTALLDIR)/emgd.ko
327 export CONFIG_PVR_RELEASE=debug; $(MAKE) modules
330 @echo -e "$(BLUE)Packaging $(EGD_TOPLEVEL)$(OFF)";
332 tar -C $(EMGD_MOD_DIR) --exclude "CVS" -czf $(EGD_PKG)/emgd_drm.tgz *