X-Git-Url: http://git.maemo.org/git/?p=gonvert;a=blobdiff_plain;f=Makefile;h=18be2a6c7e126d064203664fe2b273b82c0b916d;hp=1b02a5e3fb55e4cd06e2d33fb5fd5cdd13fc0cbf;hb=18df79328b4665753f6d41d549ab991e060bb39d;hpb=e25303c7d825b671c4d6ddc4750c833c61f1c303 diff --git a/Makefile b/Makefile old mode 100755 new mode 100644 index 1b02a5e..18be2a6 --- a/Makefile +++ b/Makefile @@ -1,81 +1,147 @@ -NAME=gonvert - -#Get version number from source file -VERSION=$(shell head -3 $(NAME) | grep version | cut -d\" -f2) - -#DESTDIR can be defined when calling make ie. make install DESTDIR=$RPM_BUILD_ROOT -prefix = /usr/local -bindir = $(prefix)/bin -datadir = $(prefix)/share -docdir = $(datadir)/doc - -DESTDIR = - -all: - -install: - install -D -m0755 gonvert $(DESTDIR)$(bindir)/gonvert - install -D -m0644 gonvert.glade $(DESTDIR)$(datadir)/gonvert/gonvert.glade - install -d -m0755 $(DESTDIR)$(datadir)/pixmaps/ - install -m0644 pixmaps/*.png $(DESTDIR)$(datadir)/pixmaps/ - install -D -m0644 gonvert.desktop $(DESTDIR)$(datadir)/gnome/apps/Utilities/gonvert.desktop - install -d -m0755 $(DESTDIR)$(docdir)/gonvert/ - install -m0644 doc/* $(DESTDIR)$(docdir)/gonvert/ - -install_pl: - install -D -m0755 gonvert $(DESTDIR)$(bindir)/gonvert - install -D -m0644 gonvert.glade $(DESTDIR)$(datadir)/gonvert/gonvert.glade - install -d -m0755 $(DESTDIR)$(datadir)/pixmaps/ - install -m0644 pixmaps/*.png $(DESTDIR)$(datadir)/pixmaps/ - install -D -m0644 gonvert.desktop $(DESTDIR)$(datadir)/gnome/apps/Utilities/gonvert.desktop - install -d -m0755 $(DESTDIR)$(docdir)/gonvert/ - install -m0644 doc/* $(DESTDIR)$(docdir)/gonvert/ - install -m0644 i18n/pl_messages.gmo /usr/share/locale/pl/LC_MESSAGES/gonvert.mo - -uninstall: - #specify project name manually to prevent removal of all directories - rm -f $(bindir)/gonvert - rm -rf $(datadir)/gonvert* - rm -rf $(docdir)/gonvert* - rm -f /usr/share/gnome/apps/Utilities/$(NAME).desktop - rm -f /usr/share/pixmaps/$(NAME).png - -uninstall_pl: - #specify project name manually to prevent removal of all directories - rm -f $(bindir)/gonvert - rm -rf $(datadir)/gonvert* - rm -rf $(docdir)/gonvert* - rm -f /usr/share/gnome/apps/Utilities/$(NAME).desktop - rm -f /usr/share/pixmaps/$(NAME).png - rm -f /usr/share/locale/pl/LC_MESSAGES/gonvert.mo - -dist: - if test -d "$(NAME)-$(VERSION)"; then rm -rf $(NAME)-$(VERSION); fi - if test -f "$(NAME)-$(VERSION).tar.gz"; then rm -f $(NAME)-$(VERSION).tar.gz; fi - mkdir $(NAME)-$(VERSION) - cp Makefile $(NAME)-$(VERSION) - cp messages.pot $(NAME)-$(VERSION) - cp -R i18n $(NAME)-$(VERSION) - cp -R doc $(NAME)-$(VERSION) - cp $(NAME) $(NAME)-$(VERSION) - cp $(NAME).glade $(NAME)-$(VERSION) - cp $(NAME).spec $(NAME)-$(VERSION) - cp $(NAME).desktop $(NAME)-$(VERSION) - cp -R pixmaps $(NAME)-$(VERSION) - tar cvzf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION) - rm -rf $(NAME)-$(VERSION) - -rpm: - #You will most likely have to be root for this to work - sed '/Version/s/replaceme/$(VERSION)/' gonvert.spec.skel > gonvert.spec - cp $(NAME).spec /usr/src/redhat/SPECS/$(NAME).spec - cp $(NAME)-$(VERSION).tar.gz /usr/src/redhat/SOURCES - rpmbuild -ba /usr/src/redhat/SPECS/gonvert.spec - cp /usr/src/redhat/RPMS/noarch/gonvert-$(VERSION)*.rpm ~anthony/web/unihedron/projects/gonvert/downloads - -pub: - #For authors use only - if test -f "$(NAME)"; then cp $(NAME) ~/web/unihedron/projects/gonvert/downloads/$(NAME).pyw; fi - if test -f "$(NAME).glade"; then cp $(NAME).glade ~/web/unihedron/projects/gonvert/downloads; fi - if test -f "$(NAME)-$(VERSION).tar.gz"; then mv -f $(NAME)-$(VERSION).tar.gz ~/web/unihedron/projects/gonvert/downloads; fi - if test -f "doc/CHANGELOG"; then cp -f doc/CHANGELOG ~/web/unihedron/projects/gonvert/CHANGELOG; fi +PROJECT_NAME=gonvert +PACKAGE_NAME=gonvert + +SOURCE_PATH=$(PACKAGE_NAME) +SOURCE=$(shell find $(SOURCE_PATH) -iname "*.py") + +PROGRAM=Gonvert +ICON_SIZES=26 32 48 80 +ICONS=$(foreach size, $(ICON_SIZES), data/icons/$(size)/$(PROJECT_NAME).png) +PACKAGE_VARIANTS=fremantle harmattan ubuntu +DESKTOP_FILES=$(foreach variant, $(PACKAGE_VARIANTS), data/$(variant)/$(PROJECT_NAME).desktop) +SETUP_FILES=$(foreach variant, $(PACKAGE_VARIANTS), ./setup.$(variant).py) +DIST_BASE_PATH=./dist +DIST_PATHS=$(foreach variant, $(PACKAGE_VARIANTS), $(DIST_BASE_PATH)_$(variant)) $(DIST_BASE_PATH)_diablo + +OBJ=$(SOURCE:.py=.pyc) +TAG_FILE=~/.ctags/$(PROJECT_NAME).tags +TODO_FILE=./TODO + +DEBUGGER=winpdb +UNIT_TEST=nosetests --with-doctest -w . +SYNTAX_TEST=support/test_syntax.py +STYLE_TEST=../../Python/tools/pep8.py --ignore=W191,E501 +LINT_RC=./support/pylint.rc +LINT=pylint --rcfile=$(LINT_RC) +PROFILE_GEN=python -m cProfile -o .profile +PROFILE_VIEW=python -m pstats .profile +TODO_FINDER=support/todo.py +CTAGS=ctags-exuberant + + +.PHONY: all run profile debug test build lint tags todo clean distclean + +all: test + +run: $(OBJ) + $(PROGRAM) + +profile: $(OBJ) + $(PROFILE_GEN) $(PROGRAM) + $(PROFILE_VIEW) + +debug: $(OBJ) + $(DEBUGGER) $(PROGRAM) + +test: $(OBJ) + $(UNIT_TEST) + +package: $(OBJ) $(ICONS) $(SETUP_FILES) $(DESKTOP_FILES) + rm -Rf $(DIST_BASE_PATH)_*/* + ./setup.fremantle.py sdist_diablo \ + -d $(DIST_BASE_PATH)_diablo \ + --install-purelib=/usr/lib/python2.5/site-packages + ./setup.fremantle.py sdist_fremantle \ + -d $(DIST_BASE_PATH)_fremantle \ + --install-purelib=/usr/lib/python2.5/site-packages + ./setup.harmattan.py sdist_harmattan \ + -d $(DIST_BASE_PATH)_harmattan + --install-purelib=/usr/lib/python2.6/dist-packages + ./setup.ubuntu.py sdist_ubuntu \ + -d $(DIST_BASE_PATH)_ubuntu + mkdir $(DIST_BASE_PATH)_ubuntu/build + cd $(DIST_BASE_PATH)_ubuntu/build ; tar -zxvf ../*.tar.gz + cd $(DIST_BASE_PATH)_ubuntu/build ; dpkg-buildpackage -tc -rfakeroot -us -uc + +upload: + dput diablo-extras-builder $(DIST_BASE_PATH)_diablo/$(PROJECT_NAME)*.changes + dput fremantle-extras-builder $(DIST_BASE_PATH)_fremantle/$(PROJECT_NAME)*.changes + cp $(DIST_BASE_PATH)_ubuntu/*.deb www/ejpi.deb + +lint: $(OBJ) + $(foreach file, $(SOURCE), $(LINT) $(file) ; ) + +tags: $(TAG_FILE) + +todo: $(TODO_FILE) + +clean: + rm -Rf $(OBJ) + rm -Rf $(TODO_FILE) + rm -f $(ICONS) $(SETUP_FILES) $(DESKTOP_FILES) + rm -Rf $(DIST_PATHS) + +distclean: clean + find $(SOURCE_PATH) -name "*.*~" | xargs rm -f + find $(SOURCE_PATH) -name "*.swp" | xargs rm -f + find $(SOURCE_PATH) -name "*.bak" | xargs rm -f + find $(SOURCE_PATH) -name ".*.swp" | xargs rm -f + + +$(SETUP_FILES): VARIANT=$(word 2, $(subst ., ,$@)) + +setup.fremantle.py: setup.py src/constants.py + cog.py -c \ + -D DESKTOP_FILE_PATH=/usr/share/applications/hildon \ + -D INPUT_DESKTOP_FILE=data/$(VARIANT)/$(PROJECT_NAME).desktop \ + -D ICON_CATEGORY=hildon \ + -D ICON_SIZES=26,32,48 \ + -o $@ $< + chmod +x $@ + +setup.harmattan.py: setup.py src/constants.py + cog.py -c \ + -D DESKTOP_FILE_PATH=/usr/share/applications \ + -D INPUT_DESKTOP_FILE=data/$(VARIANT)/$(PROJECT_NAME).desktop \ + -D ICON_CATEGORY=hildon \ + -D ICON_SIZES=32,80 \ + -o $@ $< + chmod +x $@ + +setup.ubuntu.py: setup.py src/constants.py + cog.py -c \ + -D DESKTOP_FILE_PATH=/usr/share/applications \ + -D INPUT_DESKTOP_FILE=data/$(VARIANT)/$(PROJECT_NAME).desktop \ + -D ICON_CATEGORY=apps \ + -D ICON_SIZES=32,48 \ + -o $@ $< + chmod +x $@ + +$(ICONS): SIZE=$(word 3, $(subst /, ,$@)) +$(ICONS): data/$(PROJECT_NAME).png support/scale.py + mkdir -p $(dir $@) + support/scale.py --input $< --output $@ --size $(SIZE) + +$(DESKTOP_FILES): VARIANT=$(word 2, $(subst /, ,$@)) +$(DESKTOP_FILES): data/template.desktop + mkdir -p $(dir $@) + cog.py -d \ + -D VARIANT=$(VARIANT) \ + -D PROGRAM=$(PROGRAM) \ + -o $@ $< + + +$(TAG_FILE): $(OBJ) + mkdir -p $(dir $(TAG_FILE)) + $(CTAGS) -o $(TAG_FILE) $(SOURCE) + +$(TODO_FILE): $(SOURCE) + @- $(TODO_FINDER) $(SOURCE) > $(TODO_FILE) + +%.pyc: %.py + $(SYNTAX_TEST) $< + +#Makefile Debugging +#Target to print any variable, can be added to the dependencies of any other target +#Userfule flags for make, -d, -p, -n +print-%: ; @$(error $* is $($*) ($(value $*)) (from $(origin $*)))