# # Makefile, part of Equivalence # # Copyright (c) 2006-2008 Operational Dynamics Consulting Pty Ltd, and Others # # The code in this file, and the library it is a part of, are made available # to you by the authors under the terms of the "GNU General Public Licence, # version 2". See the LICENCE file for the terms governing usage and # redistribution. # ifdef V else MAKEFLAGS=-s REDIRECT=>/dev/null endif -include .config all: build-java .PHONY: test demo doc clean distclean install # -------------------------------------------------------------------- # Source compilation # -------------------------------------------------------------------- build-java: build/faster # -------------------------------------------------------------------- # Install (run as root, or specify DESTDIR on Make command line) # -------------------------------------------------------------------- install: build-java install-dirs install-java rm $(DESTDIR)$(PREFIX)/.java-gnome-install-dirs install-dirs: $(DESTDIR)$(PREFIX)/.java-gnome-install-dirs $(DESTDIR)$(PREFIX)/.java-gnome-install-dirs: @test -d $(DESTDIR)$(JARDIR) || echo -e "MKDIR\tinstallation directories" -mkdir -p $(DESTDIR)$(PREFIX) -touch $@ 2>/dev/null test -w $@ || ( echo -e "\nYou don't seem to have write permissions to $(DESDIR)$(PREFIX)\nPerhaps you need to be root?\n" && exit 7 ) mkdir -p $(DESTDIR)$(JARDIR) mkdir -p $(DESTDIR)$(LIBDIR) install-java: build-java \ $(DESTDIR)$(JARDIR)/gtk-$(APIVERSION).jar \ $(DESTDIR)$(LIBDIR)/libgtkjni-$(VERSION).so $(DESTDIR)$(JARDIR)/gtk-$(APIVERSION).jar: tmp/gtk-$(APIVERSION).jar @echo -e "INSTALL\t$@" cp -f $< $@ @echo -e "JAR\t$@" jar uf $@ .libdir @echo -e "SYMLINK\t$(@D)/gtk.jar -> gtk-$(APIVERSION).jar" cd $(@D) && rm -f gtk.jar && ln -s gtk-$(APIVERSION).jar gtk.jar $(DESTDIR)$(LIBDIR)/libgtkjni-$(VERSION).so: tmp/libgtkjni-$(VERSION).so @echo -e "INSTALL\t$@" cp -f $< $@ # -------------------------------------------------------------------- # Tests # -------------------------------------------------------------------- test: build/faster test demo: build/faster demo # -------------------------------------------------------------------- # Documentation generation # -------------------------------------------------------------------- doc: build/faster doc # # Remember that if you bump the version number you need to commit the change # and re-./configure before being able to run this! On the other hand, we # don't have to distclean before calling this. # dist: all @echo -e "CHECK\tfully committed state" bzr diff > /dev/null || ( echo -e "\nYou need to commit all changes before running make dist\n" ; exit 4 ) @echo -e "EXPORT\ttmp/java-gnome-$(VERSION)" -rm -rf tmp/java-gnome-$(VERSION) bzr export --format=dir tmp/java-gnome-$(VERSION) @echo -e "RM\tnon essential files" rm -r tmp/java-gnome-$(VERSION)/lib rm -r tmp/java-gnome-$(VERSION)/web rm tmp/java-gnome-$(VERSION)/.aspell.en.pws @echo -e "TAR\tjava-gnome-$(VERSION).tar.bz2" tar cjf java-gnome-$(VERSION).tar.bz2 -C tmp java-gnome-$(VERSION) rm -r tmp/java-gnome-$(VERSION) clean: @echo -e "RM\tgenerated code" rm -rf generated/bindings/* @echo -e "RM\tcompiled output" rm -rf tmp/generator/ tmp/bindings/ tmp/tests/ rm -rf tmp/include/ tmp/objects/ rm -rf tmp/i18n/ tmp/locale/ @echo -e "RM\ttemporary files" rm -rf tmp/stamp/ rm -f hs_err_* @echo -e "RM\tbuilt .jar and .so" rm -f tmp/gtk-*.jar \ tmp/libgtkjni-*.so distclean: clean @echo -e "RM\tbuild configuration information" -rm -f .config .config.tmp .libdir @echo -e "RM\tgenerated documentation" -rm -rf doc/api/* -rm -f java-gnome-*.tar.bz2 @echo -e "RM\ttemporary directories" -rm -rf tmp generated @echo -e "RM\tglade cruft" find . -name '*.glade.bak' -o -name '*.gladep*' -type f | xargs rm -f # # A convenience target to run the code formatter built into Eclipse. This is # for people who don't use the Eclipse Java IDE as their editor so they # can normalize their code and ensure clean patches are submitted. # ifdef ECLIPSE else ECLIPSE=/usr/bin/eclipse-3.4 endif ifdef V ECLIPSE:=$(ECLIPSE) -verbose else endif format: all @echo -e "FORMAT\tsrc/ tests/ doc/examples/" touch -r src/bindings/org/gnome/gtk/Version.java tmp/stamp/version $(ECLIPSE) -nosplash \ -application org.eclipse.jdt.core.JavaCodeFormatter \ -config .settings/org.eclipse.jdt.core.prefs \ src/ tests/ doc/examples/ \ $(REDIRECT) touch -r tmp/stamp/version src/bindings/org/gnome/gtk/Version.java # vim: set filetype=make textwidth=78 nowrap: