2 MIN_VALAC_VERSION = 0.9.1
3 # defaults that may be overridden by configure.mk
6 INSTALL_PROGRAM = install
7 INSTALL_DATA = install -m 644
10 MARINA_VAPI = ../marina/marina/marina.vapi
14 TEMP_MARINA_VAPI = $(MARINA_VAPI)
28 gstreamer-controller-0.10 \
29 gstreamer-interfaces-0.10 \
30 gstreamer-pbutils-0.10 \
39 gdk-x11-2.0 >= 2.14.7 \
40 gstreamer-0.10 >= 0.10.25 \
41 gstreamer-base-0.10 >= 0.10.25 \
42 gstreamer-controller-0.10 >= 0.10.25 \
43 gstreamer-interfaces-0.10 >= 0.10.25 \
44 gstreamer-pbutils-0.10 >= 0.10.25
46 PKGS = $(EXT_PKGS) $(LOCAL_PKGS)
48 EXPANDED_SRC_FILES = $(foreach src,$(SRC_FILES),./$(src))
49 EXPANDED_C_FILES = $(foreach src,$(SRC_FILES),$(BUILD_DIR)/$(notdir $(src:.vala=.c)))
50 EXPANDED_SAVE_TEMPS_FILES = $(foreach src,$(SRC_FILES),$(BUILD_DIR)/$(notdir $(src:.vala=.vala.c)))
51 EXPANDED_OBJ_FILES = $(foreach src,$(SRC_FILES),$(BUILD_DIR)/$(notdir $(src:.vala=.o)))
53 EXPANDED_VAPI_FILES = $(foreach vapi,$(VAPI_FILES),vapi/$(vapi))
54 EXPANDED_SRC_HEADER_FILES = $(foreach header,$(SRC_HEADER_FILES),vapi/$(header))
55 EXPANDED_RESOURCE_FILES = $(foreach res,$(RESOURCE_FILES),ui/$(res))
56 VALA_STAMP = $(BUILD_DIR)/.stamp
59 DEFINES = _PROGRAM_NAME='"$(PROGRAM_NAME)"'
63 DEFINES = _VERSION='"$(VERSION)"' _PREFIX='"$(PREFIX)"'
66 VALA_CFLAGS = `pkg-config --cflags $(EXT_PKGS)` $(foreach hdir,$(HEADER_DIRS),-I$(hdir)) \
67 $(foreach def,$(DEFINES),-D$(def))
69 # setting CFLAGS in configure.mk overrides build type
72 CFLAGS = -O0 -g -pipe -fPIC
74 CFLAGS = -O2 -g -pipe -fPIC
78 VALAFLAGS = -g --enable-checking --thread $(USER_VALAFLAGS)
80 # We touch the C file so that we have a better chance of a valid executable. Bug #1778
81 $(EXPANDED_C_FILES): $(VALA_STAMP)
84 $(EXPANDED_OBJ_FILES): %.o: %.c $(CONFIG_IN) Makefile
85 $(CC) -c $(VALA_CFLAGS) $(CFLAGS) -o $@ $<
88 mkdir -p $(DESTDIR)$(PREFIX)/bin
89 $(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(PREFIX)/bin
90 mkdir -p $(DESTDIR)$(PREFIX)/share/$(PROGRAM_NAME)/resources
91 $(INSTALL_DATA) ../../resources/* $(DESTDIR)$(PREFIX)/share/$(PROGRAM_NAME)/resources
92 mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps
93 $(INSTALL_DATA) ../../resources/$(PROGRAM_NAME).svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps
94 ifndef DISABLE_ICON_UPDATE
95 -gtk-update-icon-cache -f -t $(DESTDIR)$(PREFIX)/share/icons/hicolor || :
97 mkdir -p $(DESTDIR)$(PREFIX)/share/applications
98 $(INSTALL_DATA) ../../misc/$(PROGRAM_NAME).desktop $(DESTDIR)$(PREFIX)/share/applications
99 ifndef DISABLE_DESKTOP_UPDATE
100 -update-desktop-database || :
102 mkdir -p $(DESTDIR)$(PREFIX)/share/mime/packages
103 $(INSTALL_DATA) ../../misc/$(PROGRAM_NAME).xml $(DESTDIR)$(PREFIX)/share/mime/packages
104 -update-mime-database $(DESTDIR)$(PREFIX)/share/mime
107 rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_NAME)
108 rm -fr $(DESTDIR)$(PREFIX)/share/$(PROGRAM_NAME)
109 rm -fr $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/$(PROGRAM_NAME).svg
110 rm -f $(DESTDIR)$(PREFIX)/share/applications/$(PROGRAM_NAME).desktop
111 rm -f $(DESTDIR)$(PREFIX)/share/mime/packages/$(PROGRAM_NAME).xml
112 -update-mime-database $(DESTDIR)$(PREFIX)/share/mime
114 $(VALA_STAMP): $(EXPANDED_SRC_FILES) $(EXPANDED_VAPI_FILES) $(EXPANDED_SRC_HEADER_FILES) Makefile \
115 $(CONFIG_IN) $(TEMP_MARINA_VAPI)
118 @echo 'You must define either PROGRAM or LIBRARY in makefile'; exit 1
123 @echo 'Both program and library are defined. This is invalid.'; exit 1
126 @ ../../minver `valac --version | awk '{print $$2}'` $(MIN_VALAC_VERSION) || ( echo '$(PROGRAM)$(LIBRARY) requires Vala compiler $(MIN_VALAC_VERSION) or greater. You are running' `valac --version` '\b.'; exit 1 )
128 ifdef EXT_PKG_VERSIONS
129 pkg-config --print-errors --exists '$(EXT_PKG_VERSIONS)'
131 pkg-config --print-errors --exists $(EXT_PKGS)
134 mkdir -p $(BUILD_DIR)
135 $(VALAC) $(LIBRARY_NAME) --ccode --directory=$(BUILD_DIR) --basedir=src $(VALAFLAGS) \
136 $(foreach header,$(HEADER_FILES), -H $(header)) \
137 $(foreach pkg,$(PKGS),--pkg=$(pkg)) \
138 $(foreach vapidir,$(VAPI_DIRS),--vapidir=$(vapidir)) \
139 $(foreach def,$(DEFINES),-X -D$(def)) \
140 $(foreach hdir,$(HEADER_DIRS),-X -I$(hdir)) \
143 $(TEMP_MARINA_VAPI) \
144 $(EXPANDED_SRC_FILES)
148 $(LIBRARY): $(EXPANDED_OBJ_FILES) $(RESOURCES)
149 $(AR) $(ARFLAGS) $@ $?
153 $(PROGRAM): $(EXPANDED_OBJ_FILES) $(MARINA_DEPEND)
154 $(CC) $(EXPANDED_OBJ_FILES) -lm $(CFLAGS) $(VALA_LDFLAGS) -export-dynamic -o $@
156 $(CC) $(EXPANDED_OBJ_FILES) -lm $(CFLAGS) $(VALA_LDFLAGS) -export-dynamic -shared -o $(GLADE_NAME)
159 rm -f $(EXPANDED_C_FILES)
160 rm -f $(EXPANDED_SAVE_TEMPS_FILES)
161 rm -f $(EXPANDED_OBJ_FILES)
163 rm -rf $(PROGRAM)-$(VERSION)
172 rm -f $(EXPANDED_C_FILES)
173 rm -f $(EXPANDED_SAVE_TEMPS_FILES)
174 rm -f $(EXPANDED_OBJ_FILES)