Initial commit
[fillmore] / marina.mk
diff --git a/marina.mk b/marina.mk
new file mode 100644 (file)
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)
+