1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# src/gallium/Makefile.template 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Template makefile for gallium libraries. 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Usage: 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# The minimum that the including makefile needs to define 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# is TOP, LIBNAME and one of of the *_SOURCES. 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Optional defines: 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# LIBRARY_INCLUDES are appended to the list of includes directories. 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# LIBRARY_DEFINES is not used for makedepend, but for compilation. 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org### Basic defines ### 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgOBJECTS = $(C_SOURCES:.c=.o) \ 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(CPP_SOURCES:.cpp=.o) \ 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(ASM_SOURCES:.S=.o) 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgINCLUDES = \ 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org -I. \ 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org -I$(TOP)/src/gallium/include \ 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org -I$(TOP)/src/gallium/auxiliary \ 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org -I$(TOP)/src/gallium/drivers \ 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(LIBRARY_INCLUDES) 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgifeq ($(MESA_LLVM),1) 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgLIBRARY_DEFINES += $(LLVM_CFLAGS) 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgendif 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org##### TARGETS ##### 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgdefault: depend lib$(LIBNAME).a $(PROGS) 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orglib$(LIBNAME).a: $(OBJECTS) $(EXTRA_OBJECTS) Makefile $(TOP)/src/gallium/Makefile.template 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(MKLIB) -o $(LIBNAME) -static $(OBJECTS) $(EXTRA_OBJECTS) 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgdepend: $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(SYMLINKS) $(GENERATED_SOURCES) 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org rm -f depend 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org touch depend 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(GENERATED_SOURCES) 2> /dev/null 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org$(PROGS): % : %.o $(PROGS_DEPS) 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(LD) $(LDFLAGS) $(filter %.o,$^) -o $@ -Wl,--start-group $(LIBS) -Wl,--end-group 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Emacs tags 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtags: 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org etags `find . -name \*.[ch]` `find $(TOP)/src/gallium/include -name \*.h` 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Remove .o and backup files 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgclean: 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org rm -f $(OBJECTS) $(GENERATED_SOURCES) $(PROGS) lib$(LIBNAME).a depend depend.bak $(CLEAN_EXTRA) 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# Dummy target 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginstall: 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org @echo -n "" 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org##### RULES ##### 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org%.s: %.c 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(CC) -S $(INCLUDES) $(CFLAGS) $(LIBRARY_DEFINES) $< -o $@ 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org%.o: %.c 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(CC) -c $(INCLUDES) $(CFLAGS) $(LIBRARY_DEFINES) $< -o $@ 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org%.o: %.cpp 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(CXX) -c $(INCLUDES) $(CXXFLAGS) $(LIBRARY_DEFINES) $< -o $@ 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org%.o: %.S 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org $(CC) -c $(INCLUDES) $(CFLAGS) $(LIBRARY_DEFINES) $< -o $@ 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgsinclude depend 74