1d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# src/gallium/Makefile.template 2e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 3d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# Template makefile for gallium libraries. 4d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# 5d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# Usage: 6d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# The minimum that the including makefile needs to define 7d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# is TOP, LIBNAME and one of of the *_SOURCES. 8e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell# 9d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# Optional defines: 10d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# LIBRARY_INCLUDES are appended to the list of includes directories. 11d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# LIBRARY_DEFINES is not used for makedepend, but for compilation. 12e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 13d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz### Basic defines ### 14e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 15d9602e5144bc76b9791fa3382ca38c880df96198Jakob BornecrantzOBJECTS = $(C_SOURCES:.c=.o) \ 16d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz $(CPP_SOURCES:.cpp=.o) \ 17d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz $(ASM_SOURCES:.S=.o) 18e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 19e99b673cb062a2fead92d1d7d373926d148ade71Keith WhitwellINCLUDES = \ 20e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell -I. \ 216acd63a4980951727939c0dd545a0324965b3834José Fonseca -I$(TOP)/src/gallium/include \ 2266f22aa3bf7fa546e946b45156aa578e202982c9José Fonseca -I$(TOP)/src/gallium/auxiliary \ 23ac56a44d5ee08ebfe2310113c6a04d2bc0f90e26Brian Paul -I$(TOP)/src/gallium/drivers \ 24d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz $(LIBRARY_INCLUDES) 25e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 261874cb7e82a566079219a571d6a30a74581c611eChristopher James Halse Rogersifeq ($(MESA_LLVM),1) 271874cb7e82a566079219a571d6a30a74581c611eChristopher James Halse RogersLIBRARY_DEFINES += $(LLVM_CFLAGS) 281874cb7e82a566079219a571d6a30a74581c611eChristopher James Halse Rogersendif 291874cb7e82a566079219a571d6a30a74581c611eChristopher James Halse Rogers 30e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 31e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell##### TARGETS ##### 32e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 338260e9a8217bf003f490b17cbd9df93bf0cc6675Chris Lidefault: depend lib$(LIBNAME).a $(PROGS) 34e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 35188f8c679254f193cdcfcd4ef338f3c8c5e1146dNicolai Hähnlelib$(LIBNAME).a: $(OBJECTS) $(EXTRA_OBJECTS) Makefile $(TOP)/src/gallium/Makefile.template 36188f8c679254f193cdcfcd4ef338f3c8c5e1146dNicolai Hähnle $(MKLIB) -o $(LIBNAME) -static $(OBJECTS) $(EXTRA_OBJECTS) 37e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 38f89c237c2c35eb3ea554e8f9de036e9ead08173fBrian Pauldepend: $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(SYMLINKS) $(GENERATED_SOURCES) 3995794abec4bdc5cda9f2e7d139a70c3acf372fe3Keith Whitwell rm -f depend 40e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell touch depend 4159629b413a7e3e3ba4b4213eb3ba4b65bdf3f9fbGeorge Sapountzis $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(GENERATED_SOURCES) 2> /dev/null 42e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 43e507e4ec05eb8dda23f7c54aaf2eea143f8e573dLuca Barbieri$(PROGS): % : %.o $(PROGS_DEPS) 4481fe19843ac2afdc4fa1e1c87bc979b295af240eDave Airlie $(LD) $(LDFLAGS) $(filter %.o,$^) -o $@ -Wl,--start-group $(LIBS) -Wl,--end-group 458260e9a8217bf003f490b17cbd9df93bf0cc6675Chris Li 46e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell# Emacs tags 47e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwelltags: 484522cdbfdd1ec8c56f40b1f876e51c3dc8e7042aBrian Paul etags `find . -name \*.[ch]` `find $(TOP)/src/gallium/include -name \*.h` 49e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 50e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell# Remove .o and backup files 51d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantzclean: 521957bef9951e6ec6a7ac9e4ebeaa3674b37cb434Brian Paul rm -f $(OBJECTS) $(GENERATED_SOURCES) $(PROGS) lib$(LIBNAME).a depend depend.bak $(CLEAN_EXTRA) 53d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz 54d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz# Dummy target 55d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantzinstall: 56d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz @echo -n "" 57d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz 58d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz##### RULES ##### 59d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz 60a8f4904fb33f4fe5da560f85ecf003601e0ec06aChris Li%.s: %.c 61ccd78fed880c4c8f1fccf1d10fc46442fa146359Brian Paul $(CC) -S $(INCLUDES) $(CFLAGS) $(LIBRARY_DEFINES) $< -o $@ 62a8f4904fb33f4fe5da560f85ecf003601e0ec06aChris Li 6362d1e40e0d672cc84708cd8a99f26ee5917c6aefChris Li%.o: %.c 64ccd78fed880c4c8f1fccf1d10fc46442fa146359Brian Paul $(CC) -c $(INCLUDES) $(CFLAGS) $(LIBRARY_DEFINES) $< -o $@ 65d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz 6662d1e40e0d672cc84708cd8a99f26ee5917c6aefChris Li%.o: %.cpp 67ccd78fed880c4c8f1fccf1d10fc46442fa146359Brian Paul $(CXX) -c $(INCLUDES) $(CXXFLAGS) $(LIBRARY_DEFINES) $< -o $@ 68d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantz 6962d1e40e0d672cc84708cd8a99f26ee5917c6aefChris Li%.o: %.S 70ccd78fed880c4c8f1fccf1d10fc46442fa146359Brian Paul $(CC) -c $(INCLUDES) $(CFLAGS) $(LIBRARY_DEFINES) $< -o $@ 71e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 72e99b673cb062a2fead92d1d7d373926d148ade71Keith Whitwell 73d9602e5144bc76b9791fa3382ca38c880df96198Jakob Bornecrantzsinclude depend 74