X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=marina.mk;fp=marina.mk;h=1320f7dbdb45b9ebd36b74f049cf24e8d19dbc8a;hb=a712cd772f4f3db8bed7037bb95c4de94767b230;hp=0000000000000000000000000000000000000000;hpb=2f0296582bf5d3f51db40d299f434fc8240ca6a5;p=fillmore diff --git a/marina.mk b/marina.mk new file mode 100644 index 0000000..1320f7d --- /dev/null +++ b/marina.mk @@ -0,0 +1,176 @@ +VALAC = valac +MIN_VALAC_VERSION = 0.9.1 +# defaults that may be overridden by configure.mk +PREFIX=/usr/local + +INSTALL_PROGRAM = install +INSTALL_DATA = install -m 644 + +ifndef MARINA_VAPI +MARINA_VAPI = ../marina/marina/marina.vapi +endif + +ifdef USE_MARINA_VAPI +TEMP_MARINA_VAPI = $(MARINA_VAPI) +endif + +VAPI_DIRS = \ + ../../vapi + +HEADER_DIRS = \ + ../../vapi + +EXT_PKGS = \ + gee-1.0 \ + gdk-x11-2.0 \ + gstreamer-0.10 \ + gstreamer-base-0.10 \ + gstreamer-controller-0.10 \ + gstreamer-interfaces-0.10 \ + gstreamer-pbutils-0.10 \ + gtk+-2.0 \ + hildon-1 \ + hildon-fm-2 + + +EXT_PKG_VERSIONS = \ + gtk+-2.0 >= 2.14.0 \ + gee-1.0 >= 0.5.0 \ + gdk-x11-2.0 >= 2.14.7 \ + gstreamer-0.10 >= 0.10.25 \ + gstreamer-base-0.10 >= 0.10.25 \ + gstreamer-controller-0.10 >= 0.10.25 \ + gstreamer-interfaces-0.10 >= 0.10.25 \ + gstreamer-pbutils-0.10 >= 0.10.25 + +PKGS = $(EXT_PKGS) $(LOCAL_PKGS) + +EXPANDED_SRC_FILES = $(foreach src,$(SRC_FILES),./$(src)) +EXPANDED_C_FILES = $(foreach src,$(SRC_FILES),$(BUILD_DIR)/$(notdir $(src:.vala=.c))) +EXPANDED_SAVE_TEMPS_FILES = $(foreach src,$(SRC_FILES),$(BUILD_DIR)/$(notdir $(src:.vala=.vala.c))) +EXPANDED_OBJ_FILES = $(foreach src,$(SRC_FILES),$(BUILD_DIR)/$(notdir $(src:.vala=.o))) + +EXPANDED_VAPI_FILES = $(foreach vapi,$(VAPI_FILES),vapi/$(vapi)) +EXPANDED_SRC_HEADER_FILES = $(foreach header,$(SRC_HEADER_FILES),vapi/$(header)) +EXPANDED_RESOURCE_FILES = $(foreach res,$(RESOURCE_FILES),ui/$(res)) +VALA_STAMP = $(BUILD_DIR)/.stamp + +ifdef PROGRAM +DEFINES = _PROGRAM_NAME='"$(PROGRAM_NAME)"' +endif + +ifdef LIBRARY +DEFINES = _VERSION='"$(VERSION)"' _PREFIX='"$(PREFIX)"' +endif + +VALA_CFLAGS = `pkg-config --cflags $(EXT_PKGS)` $(foreach hdir,$(HEADER_DIRS),-I$(hdir)) \ + $(foreach def,$(DEFINES),-D$(def)) + +# setting CFLAGS in configure.mk overrides build type +ifndef CFLAGS +ifdef BUILD_DEBUG +CFLAGS = -O0 -g -pipe -fPIC +else +CFLAGS = -O2 -g -pipe -fPIC +endif +endif + +VALAFLAGS = -g --enable-checking --thread $(USER_VALAFLAGS) + +# We touch the C file so that we have a better chance of a valid executable. Bug #1778 +$(EXPANDED_C_FILES): $(VALA_STAMP) + touch $@ + +$(EXPANDED_OBJ_FILES): %.o: %.c $(CONFIG_IN) Makefile + $(CC) -c $(VALA_CFLAGS) $(CFLAGS) -o $@ $< + +install: + mkdir -p $(DESTDIR)$(PREFIX)/bin + $(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(PREFIX)/bin + mkdir -p $(DESTDIR)$(PREFIX)/share/$(PROGRAM_NAME)/resources + $(INSTALL_DATA) ../../resources/* $(DESTDIR)$(PREFIX)/share/$(PROGRAM_NAME)/resources + mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps + $(INSTALL_DATA) ../../resources/$(PROGRAM_NAME).svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps +ifndef DISABLE_ICON_UPDATE + -gtk-update-icon-cache -f -t $(DESTDIR)$(PREFIX)/share/icons/hicolor || : +endif + mkdir -p $(DESTDIR)$(PREFIX)/share/applications + $(INSTALL_DATA) ../../misc/$(PROGRAM_NAME).desktop $(DESTDIR)$(PREFIX)/share/applications +ifndef DISABLE_DESKTOP_UPDATE + -update-desktop-database || : +endif + mkdir -p $(DESTDIR)$(PREFIX)/share/mime/packages + $(INSTALL_DATA) ../../misc/$(PROGRAM_NAME).xml $(DESTDIR)$(PREFIX)/share/mime/packages + -update-mime-database $(DESTDIR)$(PREFIX)/share/mime + +uninstall: + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM_NAME) + rm -fr $(DESTDIR)$(PREFIX)/share/$(PROGRAM_NAME) + rm -fr $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/$(PROGRAM_NAME).svg + rm -f $(DESTDIR)$(PREFIX)/share/applications/$(PROGRAM_NAME).desktop + rm -f $(DESTDIR)$(PREFIX)/share/mime/packages/$(PROGRAM_NAME).xml + -update-mime-database $(DESTDIR)$(PREFIX)/share/mime + +$(VALA_STAMP): $(EXPANDED_SRC_FILES) $(EXPANDED_VAPI_FILES) $(EXPANDED_SRC_HEADER_FILES) Makefile \ + $(CONFIG_IN) $(TEMP_MARINA_VAPI) +ifndef PROGRAM +ifndef LIBRARY + @echo 'You must define either PROGRAM or LIBRARY in makefile'; exit 1 +endif +endif +ifdef PROGRAM +ifdef LIBRARY + @echo 'Both program and library are defined. This is invalid.'; exit 1 +endif +endif + @ ../../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 ) +ifndef ASSUME_PKGS +ifdef EXT_PKG_VERSIONS + pkg-config --print-errors --exists '$(EXT_PKG_VERSIONS)' +else ifdef EXT_PKGS + pkg-config --print-errors --exists $(EXT_PKGS) +endif +endif + mkdir -p $(BUILD_DIR) + $(VALAC) $(LIBRARY_NAME) --ccode --directory=$(BUILD_DIR) --basedir=src $(VALAFLAGS) \ + $(foreach header,$(HEADER_FILES), -H $(header)) \ + $(foreach pkg,$(PKGS),--pkg=$(pkg)) \ + $(foreach vapidir,$(VAPI_DIRS),--vapidir=$(vapidir)) \ + $(foreach def,$(DEFINES),-X -D$(def)) \ + $(foreach hdir,$(HEADER_DIRS),-X -I$(hdir)) \ + $(VAPI_FILES) \ + $(VALA_DEFINES) \ + $(TEMP_MARINA_VAPI) \ + $(EXPANDED_SRC_FILES) + touch $@ + +ifdef LIBRARY +$(LIBRARY): $(EXPANDED_OBJ_FILES) $(RESOURCES) + $(AR) $(ARFLAGS) $@ $? +endif + +ifdef PROGRAM +$(PROGRAM): $(EXPANDED_OBJ_FILES) $(MARINA_DEPEND) + $(CC) $(EXPANDED_OBJ_FILES) -lm $(CFLAGS) $(VALA_LDFLAGS) -export-dynamic -o $@ +ifdef GLADE_NAME + $(CC) $(EXPANDED_OBJ_FILES) -lm $(CFLAGS) $(VALA_LDFLAGS) -export-dynamic -shared -o $(GLADE_NAME) +endif +clean: + rm -f $(EXPANDED_C_FILES) + rm -f $(EXPANDED_SAVE_TEMPS_FILES) + rm -f $(EXPANDED_OBJ_FILES) + rm -f $(VALA_STAMP) + rm -rf $(PROGRAM)-$(VERSION) + rm -f $(PROGRAM) +ifdef GLADE_NAME + rm -f $(GLADE_NAME) +endif +endif + + +cleantemps: + rm -f $(EXPANDED_C_FILES) + rm -f $(EXPANDED_SAVE_TEMPS_FILES) + rm -f $(EXPANDED_OBJ_FILES) + rm -f $(VALA_STAMP) +