Makefile.xvmc revision 68e4c83ffa9319c934a96ca1daf25e81b78a6d90
10e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton# This makefile template is used to build libXvMCg3dvl.so
20e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
30e59cd33e6a38567801c7da541e4caffbd6cccd3Younes MantonLIBNAME = lib$(LIBBASENAME).so
4050dfe9caf364fdaac91db1313988275774a7eaaThomas Balling SørensenLIB_GLOB=lib$(LIBBASENAME).*so*
50e59cd33e6a38567801c7da541e4caffbd6cccd3Younes MantonXVMC_MAJOR = 1
60e59cd33e6a38567801c7da541e4caffbd6cccd3Younes MantonXVMC_MINOR = 0
70e59cd33e6a38567801c7da541e4caffbd6cccd3Younes MantonINCLUDES = -I$(TOP)/src/gallium/include \
80e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	   -I$(TOP)/src/gallium/drivers \
90e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	   -I$(TOP)/src/gallium/auxiliary \
104381580936f07e0c5eb0ad7c51d2ccf765000d08Christian König	   -I$(TOP)/src/gallium/winsys \
110e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	   $(DRIVER_INCLUDES)
120e59cd33e6a38567801c7da541e4caffbd6cccd3Younes MantonDEFINES = -DGALLIUM_TRACE $(DRIVER_DEFINES)
1366480c0f565eb5dc7ae4a5dc792341f6886f481aChristian KönigLIBS = $(EXTRA_LIB_PATH) $(DRIVER_LIBS) -lXv -lX11-xcb -lxcb-dri2 -lm
14dcf8ee7d6ac89bb2a9d608618a51604a3c78fe96Christian KönigSTATE_TRACKER_LIB = $(TOP)/src/gallium/state_trackers/xvmc/libxvmctracker.a
150e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
16a2381665d5b65ba04f168afecd40574684bf4df3Marek Olšákifeq ($(MESA_LLVM),1)
17a2381665d5b65ba04f168afecd40574684bf4df3Marek OlšákLDFLAGS += $(LLVM_LDFLAGS)
18a2381665d5b65ba04f168afecd40574684bf4df3Marek OlšákDRIVER_EXTRAS = $(LLVM_LIBS)
19757390491cfa3b861fab76940a8c6e508d1f1a25Marcin SlusarzLD=$(CXX)
20a2381665d5b65ba04f168afecd40574684bf4df3Marek Olšákelse
21757390491cfa3b861fab76940a8c6e508d1f1a25Marcin Slusarz  ifeq ($(LINK_WITH_CXX),1)
22757390491cfa3b861fab76940a8c6e508d1f1a25Marcin Slusarz    LD=$(CXX)
23757390491cfa3b861fab76940a8c6e508d1f1a25Marcin Slusarz  else
24757390491cfa3b861fab76940a8c6e508d1f1a25Marcin Slusarz    LD=$(CC)
25757390491cfa3b861fab76940a8c6e508d1f1a25Marcin Slusarz  endif
26a2381665d5b65ba04f168afecd40574684bf4df3Marek Olšákendif
27a2381665d5b65ba04f168afecd40574684bf4df3Marek Olšák
280e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton# XXX: Hack, XvMC public funcs aren't exported if we link to libxvmctracker.a :(
29acbc3c96781f15f8077a0104578037758cae82a1Christian KönigC_SOURCES += $(wildcard $(TOP)/src/gallium/state_trackers/xvmc/*.c)
300e59cd33e6a38567801c7da541e4caffbd6cccd3Younes MantonOBJECTS = $(C_SOURCES:.c=.o) \
31acbc3c96781f15f8077a0104578037758cae82a1Christian König	  $(ASM_SOURCES:.S=.o)
320e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
330e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton##### RULES #####
340e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
350e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton.c.o:
360e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	$(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
370e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
380e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton.S.o:
390e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	$(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
400e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
410e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton##### TARGETS #####
420e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
430e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Mantondefault: depend symlinks $(TOP)/$(LIB_DIR)/gallium/$(LIBNAME)
440e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
45106c99fee52fe712ee5792e876b83aa318740b7dMarcin Slusarz$(TOP)/$(LIB_DIR)/gallium/$(LIBNAME): $(OBJECTS) $(PIPE_DRIVERS) $(STATE_TRACKER_LIB) Makefile
46757390491cfa3b861fab76940a8c6e508d1f1a25Marcin Slusarz	$(MKLIB) -o $(LIBBASENAME) -linker '$(LD)' -ldflags '$(LDFLAGS)' \
470e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton		-major $(XVMC_MAJOR) -minor $(XVMC_MINOR) $(MKLIB_OPTIONS) \
480e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton		-install $(TOP)/$(LIB_DIR)/gallium \
49a2381665d5b65ba04f168afecd40574684bf4df3Marek Olšák		$(OBJECTS) $(STATE_TRACKER_LIB) $(PIPE_DRIVERS) $(LIBS) $(DRIVER_EXTRAS)
500e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
510e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton$(TOP)/$(LIB_DIR)/gallium:
520e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	mkdir -p $@
530e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
540e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Mantondepend: $(C_SOURCES) $(ASM_SOURCES) $(SYMLINKS)
550e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	rm -f depend
560e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	touch depend
570e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	$(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDES) $(C_SOURCES) \
580e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton		$(ASM_SOURCES) 2> /dev/null
590e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
600e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton# Emacs tags
610e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Mantontags:
620e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	etags `find . -name \*.[ch]` `find ../include`
630e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
640e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton# Remove .o and backup files
650e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Mantonclean:
6668e4c83ffa9319c934a96ca1daf25e81b78a6d90Marcin Slusarz	-rm -f $(OBJECTS) *~ *.so $(SYMLINKS)
670e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton	-rm -f depend depend.bak
680e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
69050dfe9caf364fdaac91db1313988275774a7eaaThomas Balling Sørenseninstall: default
7017ea7d16bd3477361d32091f445beca625703f63Thomas Balling Sørensen	$(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR)
7117ea7d16bd3477361d32091f445beca625703f63Thomas Balling Sørensen	$(MINSTALL) -m 755 $(TOP)/$(LIB_DIR)/gallium/$(LIB_GLOB) $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR)
720e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Manton
730e59cd33e6a38567801c7da541e4caffbd6cccd3Younes Mantoninclude depend
74