Skip to content
Snippets Groups Projects
Makefile 15 KiB
Newer Older
  • Learn to ignore specific revisions
  • tjc's avatar
    tjc committed
    # This is a GNU Makefile for Artemis
    
    
    tjc's avatar
    tjc committed
    # $Header: //tmp/pathsoft/artemis/Makefile,v 1.47 2009-09-21 15:32:03 tjc Exp $
    
    tjc's avatar
    tjc committed
    
    SHELL=/bin/sh
    
    
    #OPT_FLAGS = -g -deprecation
    
    tjc's avatar
    tjc committed
    
    
    tjc's avatar
    tjc committed
    JAVAC := javac -source 1.5 -target 1.5 $(OPT_FLAGS) $(EXTRA_FLAGS)
    
    tjc's avatar
    tjc committed
    
    
    tcarver's avatar
    tcarver committed
    REAL_CLASSPATH := CLASSPATH=lib/biojava.jar:lib/jemAlign.jar:lib/j2ssh/j2ssh-core.jar:lib/ibatis/ibatis-2.3.4.726.jar:lib/ibatis/log4j-1.2.14.jar:lib/postgresql-8.4-701.jdbc3.jar:lib/picard/picard.jar:lib/picard/sam.jar:lib/commons-net-2.2.jar:lib/batik/batik-awt-util.jar:lib/batik/batik-dom.jar:lib/batik/batik-ext.jar:lib/batik/batik-svggen.jar:lib/batik/batik-util.jar:lib/batik/batik-xml.jar:.
    
    tjc's avatar
    tjc committed
    
    
    # NAMES:= \
    # 	uk/ac/sanger/artemis/OptionChangeListener \
    # 	uk/ac/sanger/artemis/OptionChangeEvent \
    # 	uk/ac/sanger/artemis/Options \
    # 	uk/ac/sanger/artemis/Selection \
    # 	uk/ac/sanger/artemis/components/ArtemisMain \
    #   uk/ac/sanger/artemis/components/ActMain \
    # 	uk/ac/sanger/artemis/components/Splash \
    # 	uk/ac/sanger/artemis/components/ListDialog \
    # 	uk/ac/sanger/artemis/components/FeatureListFrame \
    # 	uk/ac/sanger/artemis/components/FeatureList \
    # 	uk/ac/sanger/artemis/components/FeatureDisplay \
    # 	uk/ac/sanger/artemis/components/CanvasPanel \
    # 	uk/ac/sanger/artemis/components/EntryGroupDisplay \
    # 	uk/ac/sanger/artemis/components/EntryHeaderEdit \
    # 	uk/ac/sanger/artemis/components/BasePlotGroup \
    # 	uk/ac/sanger/artemis/components/EntryEditVector \
    # 	uk/ac/sanger/artemis/components/EntryEdit \
    # 	uk/ac/sanger/artemis/components/WritableEMBLCorbaEntrySource \
    # 	uk/ac/sanger/artemis/components/DbfetchEntrySource \
    # 	uk/ac/sanger/artemis/components/EMBLCorbaEntrySource \
    # 	uk/ac/sanger/artemis/components/CorbaEntrySource \
    # 	uk/ac/sanger/artemis/components/BioJavaEntrySource \
    # 	uk/ac/sanger/artemis/components/FileDialogEntrySource \
    # 	uk/ac/sanger/artemis/components/EntryActionListener \
    # 	uk/ac/sanger/artemis/components/DisplayComponent \
    # 	uk/ac/sanger/artemis/components/EntryFileDialog \
    # 	uk/ac/sanger/artemis/components/StickyFileChooser \
    # 	uk/ac/sanger/artemis/components/LogReadListener \
    # 	uk/ac/sanger/artemis/components/Selector \
    # 	uk/ac/sanger/artemis/components/Navigator \
    # 	uk/ac/sanger/artemis/components/EntryGroupPanel \
    # 	uk/ac/sanger/artemis/components/FeaturePopup \
    # 	uk/ac/sanger/artemis/components/WriteMenu \
    # 	uk/ac/sanger/artemis/components/SelectMenu \
    # 	uk/ac/sanger/artemis/components/GraphMenu \
    # 	uk/ac/sanger/artemis/components/RunMenu \
    # 	uk/ac/sanger/artemis/components/AddMenu \
    # 	uk/ac/sanger/artemis/components/ViewMenu \
    # 	uk/ac/sanger/artemis/components/GotoMenu \
    # 	uk/ac/sanger/artemis/components/EditMenu \
    # 	uk/ac/sanger/artemis/components/SelectionMenu \
    # 	uk/ac/sanger/artemis/components/SelectionViewer \
    # 	uk/ac/sanger/artemis/components/FeaturePlotGroup \
    # 	uk/ac/sanger/artemis/components/FeaturePlot \
    # 	uk/ac/sanger/artemis/components/FeatureEdit \
    # 	uk/ac/sanger/artemis/components/FeatureViewer \
    # 	uk/ac/sanger/artemis/components/SearchResultViewer \
    # 	uk/ac/sanger/artemis/components/LogViewer \
    # 	uk/ac/sanger/artemis/components/FileViewer \
    # 	uk/ac/sanger/artemis/components/MessageFrame \
    # 	uk/ac/sanger/artemis/components/MessageDialog \
    # 	uk/ac/sanger/artemis/components/YesNoDialog \
    # 	uk/ac/sanger/artemis/components/KeyChooser \
    # 	uk/ac/sanger/artemis/components/KeyChoice \
    # 	uk/ac/sanger/artemis/components/QualifierEditor \
    # 	uk/ac/sanger/artemis/components/QualifierTextArea \
    # 	uk/ac/sanger/artemis/components/QualifierChoice \
    # 	uk/ac/sanger/artemis/components/ChoiceFrame \
    # 	uk/ac/sanger/artemis/components/SelectionInfoDisplay \
    # 	uk/ac/sanger/artemis/components/EntryGroupMenu \
    # 	uk/ac/sanger/artemis/components/EntryGroupInfoDisplay \
    # 	uk/ac/sanger/artemis/components/Utilities \
    # 	uk/ac/sanger/artemis/components/MarkerRangeRequester \
    # 	uk/ac/sanger/artemis/components/MarkerRangeRequesterListener \
    # 	uk/ac/sanger/artemis/components/MarkerRangeRequesterEvent \
    # 	uk/ac/sanger/artemis/components/TextRequester \
    # 	uk/ac/sanger/artemis/components/TextRequesterListener \
    # 	uk/ac/sanger/artemis/components/TextRequesterEvent \
    # 	uk/ac/sanger/artemis/components/TextDialog \
    # 	uk/ac/sanger/artemis/components/BasePlot \
    # 	uk/ac/sanger/artemis/components/ProcessWatcher \
    # 	uk/ac/sanger/artemis/components/ProcessWatcherEvent \
    # 	uk/ac/sanger/artemis/components/ProcessWatcherListener \
    # 	uk/ac/sanger/artemis/components/ExternalProgramOptions \
    # 	uk/ac/sanger/artemis/components/Plot \
    # 	uk/ac/sanger/artemis/components/PlotMouseListener \
    # 	uk/ac/sanger/artemis/components/FeatureAminoAcidViewer \
    # 	uk/ac/sanger/artemis/components/FeatureBaseViewer \
    # 	uk/ac/sanger/artemis/components/SequenceViewer \
    # 	uk/ac/sanger/artemis/components/FeatureInfo \
    # 	uk/ac/sanger/artemis/components/DisplayAdjustmentListener \
    # 	uk/ac/sanger/artemis/components/DisplayAdjustmentEvent \
    # 	uk/ac/sanger/artemis/components/ScoreChanger \
    # 	uk/ac/sanger/artemis/components/ScoreScrollbar \
    # 	uk/ac/sanger/artemis/components/ScoreChangeListener \
    # 	uk/ac/sanger/artemis/components/ScoreChangeEvent \
    # 	uk/ac/sanger/artemis/components/InputStreamProgressDialog \
    # 	uk/ac/sanger/artemis/plot/KarlinSigAlgorithm \
    # 	uk/ac/sanger/artemis/plot/UserDataAlgorithm \
    # 	uk/ac/sanger/artemis/plot/Codon12CorrelationAlgorithm \
    # 	uk/ac/sanger/artemis/plot/ATDeviationAlgorithm \
    # 	uk/ac/sanger/artemis/plot/GCDeviationAlgorithm \
    # 	uk/ac/sanger/artemis/plot/GCFrameAlgorithm \
    # 	uk/ac/sanger/artemis/plot/CodonUsageAlgorithm \
    # 	uk/ac/sanger/artemis/plot/CodonUsageFormatException \
    # 	uk/ac/sanger/artemis/plot/CodonUsageWeight \
    # 	uk/ac/sanger/artemis/plot/CodonWeight \
    # 	uk/ac/sanger/artemis/plot/AGWindowAlgorithm \
    # 	uk/ac/sanger/artemis/plot/GCSDWindowAlgorithm \
    # 	uk/ac/sanger/artemis/plot/GCWindowAlgorithm \
    # 	uk/ac/sanger/artemis/plot/HydrophilicityAlgorithm \
    # 	uk/ac/sanger/artemis/plot/HydroAlgorithm \
    # 	uk/ac/sanger/artemis/plot/HydrophobicityAlgorithm \
    # 	uk/ac/sanger/artemis/plot/CoilFeatureAlgorithm \
    # 	uk/ac/sanger/artemis/plot/FeatureAlgorithm \
    # 	uk/ac/sanger/artemis/plot/BaseAlgorithm \
    # 	uk/ac/sanger/artemis/plot/Algorithm \
    # 	uk/ac/sanger/artemis/Logger \
    # 	uk/ac/sanger/artemis/ExternalProgramListener \
    # 	uk/ac/sanger/artemis/ExternalProgramException \
    # 	uk/ac/sanger/artemis/ExternalProgramVector \
    # 	uk/ac/sanger/artemis/SimpleExternalProgramMonitor \
    # 	uk/ac/sanger/artemis/ProcessMonitor \
    # 	uk/ac/sanger/artemis/ProcessMonitor \
    # 	uk/ac/sanger/artemis/ExternalProgramMonitor \
    # 	uk/ac/sanger/artemis/ExternalProgram \
    # 	uk/ac/sanger/artemis/EntryGroupChangeListener \
    # 	uk/ac/sanger/artemis/EntryGroupChangeEvent \
    # 	uk/ac/sanger/artemis/EntryChangeListener \
    # 	uk/ac/sanger/artemis/EntryChangeEvent \
    # 	uk/ac/sanger/artemis/FilteredEntryGroup \
    # 	uk/ac/sanger/artemis/SimpleEntryGroup \
    # 	uk/ac/sanger/artemis/EntryGroup \
    # 	uk/ac/sanger/artemis/EntryVector \
    # 	uk/ac/sanger/artemis/EntrySourceVector \
    # 	uk/ac/sanger/artemis/EntrySource \
    # 	uk/ac/sanger/artemis/Entry \
    # 	uk/ac/sanger/artemis/LastSegmentException \
    # 	uk/ac/sanger/artemis/FeatureFromVectorPredicate \
    # 	uk/ac/sanger/artemis/FeatureKeyQualifierPredicate \
    # 	uk/ac/sanger/artemis/FeatureKeyPredicate \
    # 	uk/ac/sanger/artemis/FeaturePatternPredicate \
    # 	uk/ac/sanger/artemis/FeaturePredicateConjunction \
    # 	uk/ac/sanger/artemis/FeaturePredicate \
    # 	uk/ac/sanger/artemis/FeaturePredicateVector \
    # 	uk/ac/sanger/artemis/FeatureEnumeration \
    # 	uk/ac/sanger/artemis/FeatureSegmentVector \
    # 	uk/ac/sanger/artemis/FeatureChangeListener \
    # 	uk/ac/sanger/artemis/FeatureChangeEvent \
    # 	uk/ac/sanger/artemis/FeatureVector \
    # 	uk/ac/sanger/artemis/Feature \
    # 	uk/ac/sanger/artemis/FeatureSegment \
    # 	uk/ac/sanger/artemis/ActionController \
    # 	uk/ac/sanger/artemis/ActionVector \
    # 	uk/ac/sanger/artemis/Action \
    # 	uk/ac/sanger/artemis/ChangeListener \
    # 	uk/ac/sanger/artemis/ChangeEventVector \
    # 	uk/ac/sanger/artemis/ChangeEvent \
    # 	uk/ac/sanger/artemis/GotoListener \
    # 	uk/ac/sanger/artemis/GotoEvent \
    # 	uk/ac/sanger/artemis/GotoEventSource \
    # 	uk/ac/sanger/artemis/SimpleGotoEventSource \
    # 	uk/ac/sanger/artemis/SelectionChangeListener \
    # 	uk/ac/sanger/artemis/SelectionChangeEvent \
    # 	uk/ac/sanger/artemis/Selectable \
    # 	uk/ac/sanger/artemis/sequence/NoSequenceException \
    # 	uk/ac/sanger/artemis/sequence/MarkerRangeVector \
    # 	uk/ac/sanger/artemis/sequence/MarkerRange \
    # 	uk/ac/sanger/artemis/sequence/MarkerChangeListener \
    # 	uk/ac/sanger/artemis/sequence/MarkerChangeEvent \
    # 	uk/ac/sanger/artemis/sequence/Marker \
    # 	uk/ac/sanger/artemis/sequence/Strand \
    # 	uk/ac/sanger/artemis/sequence/BasePatternFormatException \
    # 	uk/ac/sanger/artemis/sequence/BasePattern \
    # 	uk/ac/sanger/artemis/sequence/Bases \
    # 	uk/ac/sanger/artemis/sequence/AminoAcidSequence \
    # 	uk/ac/sanger/artemis/sequence/SequenceChangeListener \
    # 	uk/ac/sanger/artemis/sequence/SequenceChangeEvent \
    # 	uk/ac/sanger/artemis/io/BioJavaFeature \
    # 	uk/ac/sanger/artemis/io/BioJavaSequence \
    # 	uk/ac/sanger/artemis/io/BioJavaEntry \
    # 	uk/ac/sanger/artemis/io/GenbankStreamSequence \
    # 	uk/ac/sanger/artemis/io/RWCorbaEntry \
    # 	uk/ac/sanger/artemis/io/CorbaEntry \
    # 	uk/ac/sanger/artemis/io/DocumentEntryFactory \
    # 	uk/ac/sanger/artemis/io/BlastDocumentEntry \
    # 	uk/ac/sanger/artemis/io/MSPcrunchDocumentEntry \
    # 	uk/ac/sanger/artemis/io/GFFDocumentEntry \
    # 	uk/ac/sanger/artemis/io/GenbankDocumentEntry \
    # 	uk/ac/sanger/artemis/io/EmblDocumentEntry \
    # 	uk/ac/sanger/artemis/io/PublicDBDocumentEntry \
    # 	uk/ac/sanger/artemis/io/SimpleDocumentEntry \
    # 	uk/ac/sanger/artemis/io/DocumentEntry \
    # 	uk/ac/sanger/artemis/io/Entry \
    # 	uk/ac/sanger/artemis/io/ReadOnlyEntry \
    # 	uk/ac/sanger/artemis/io/QualifierInfoException \
    # 	uk/ac/sanger/artemis/io/QualifierInfo \
    # 	uk/ac/sanger/artemis/io/QualifierInfoVector \
    # 	uk/ac/sanger/artemis/io/QualifierInfoHash \
    # 	uk/ac/sanger/artemis/chado/DbSqlConfig \
    # 	uk/ac/sanger/artemis/circular/DNADraw \
    # 	uk/ac/sanger/artemis/circular/digest/Utils \
    # 	uk/ac/sanger/artemis/circular/digest/CircularGenomeController \
    # 	uk/ac/sanger/artemis/io/GffToEMBL
    
    tjc's avatar
    tjc committed
    
    
    ARTEMIS_DIRS = uk/ac/sanger/artemis \
    uk/ac/sanger/artemis/chado \
    uk/ac/sanger/artemis/circular \
    uk/ac/sanger/artemis/circular/digest \
    uk/ac/sanger/artemis/components \
    uk/ac/sanger/artemis/components/alignment \
    uk/ac/sanger/artemis/components/database \
    uk/ac/sanger/artemis/components/filetree \
    uk/ac/sanger/artemis/components/genebuilder \
    uk/ac/sanger/artemis/components/genebuilder/cv \
    uk/ac/sanger/artemis/components/genebuilder/gff \
    uk/ac/sanger/artemis/components/genebuilder/ortholog \
    uk/ac/sanger/artemis/components/variant \
    uk/ac/sanger/artemis/editor \
    uk/ac/sanger/artemis/io \
    uk/ac/sanger/artemis/j2ssh \
    uk/ac/sanger/artemis/plot \
    uk/ac/sanger/artemis/sequence \
    uk/ac/sanger/artemis/util
    
    tjc's avatar
    tjc committed
    
    
    #CLASSES := $(NAMES:%=%.class)
    SOURCES := $(foreach DIR,$(ARTEMIS_DIRS),$(wildcard $(DIR)/*.java))
    CLASSES := $(SOURCES:%.java=%.class)
    
    Sascha Steinbiss's avatar
    Sascha Steinbiss committed
    
    
    tjc's avatar
    tjc committed
    all: idl code
    
    
    # Utils needs to be built before controller
    uk/ac/sanger/artemis/circular/digest/CircularGenomeController.class:uk/ac/sanger/artemis/circular/digest/Utils.class
    	$(REAL_CLASSPATH) $(JAVAC) $(@:%.class=%.java)
    
    
    tjc's avatar
    tjc committed
    code: $(CLASSES)
    
    topdown: idl
    
    tjc's avatar
    tjc committed
    	$(REAL_CLASSPATH) $(JAVAC) uk/ac/sanger/artemis/components/ArtemisMain.java
    
    tjc's avatar
    tjc committed
    
    %.class : %.java
    	$(REAL_CLASSPATH) $(JAVAC) $<
    
    idl : type/*.java nsdb/*.java seqdb/*.java
    
    IDL = idlj
    IDLCMD = $(IDL) -Icorba
    
    type/*.java : corba/types.idl
    	$(IDLCMD) corba/types.idl
    
    nsdb/*.java : corba/nsdb.idl corba/nsdb_write.idl
    	$(IDLCMD) corba/nsdb.idl
    	$(IDLCMD) corba/nsdb_write.idl
    
    seqdb/*.java : corba/seqdb.idl
    	$(IDLCMD) corba/seqdb.idl
    
    doc :
    	$(REAL_CLASSPATH) javadoc -J-mx200m -version \
    		AppGlobal.java \
    		uk.ac.sanger.artemis uk.ac.sanger.artemis.components \
    		uk.ac.sanger.artemis.sequence uk.ac.sanger.artemis.plot \
    		uk.ac.sanger.artemis.util uk.ac.sanger.artemis.io
    
    manual :
    	(cd docs; make)
    
    CLASS_FILES := `find org uk nsdb type seqdb -name '*.class' -print`
    
    
    OTHER_FILES := `find images/PSUlogo.gif images/icon.gif COPYING README`
    
    tjc's avatar
    tjc committed
    
    dist :
    	rm -rf artemis_compiled.tar.gz tar_build
    	mkdir tar_build
    	mkdir tar_build/artemis
    	rm -f artemis_compiled_latest.tar.gz
    
    tcarver's avatar
    tcarver committed
    	tar cf - $(OTHER_FILES) act art Makefile corba etc | (cd tar_build/artemis; tar xf -)
    
    	tar cf - artemis_sqlmap dnaplotter uk org nsdb type seqdb lib | (cd tar_build/artemis; tar xf -)
    
    tjc's avatar
    tjc committed
    	(cd tar_build; find . -name 'CVS' -print | xargs rm -rf; find . -name '.svn' -print | xargs rm -rf; tar cvf ../artemis_compiled.tar artemis)
    
    tjc's avatar
    tjc committed
    
    
    tjc's avatar
    tjc committed
    jar : all artemis.jar
    
    tjc's avatar
    tjc committed
    
    
    tjc's avatar
    tjc committed
    artemis.jar : $(CLASSES)
    	mkdir jar_build
    	rm -f artemis.jar
    	cd jar_build; \
    
    tjc's avatar
    tjc committed
    	if [ ! -d org ]; then \
    
    tjc's avatar
    tjc committed
    	  for fileJar in ../lib/*.jar; do \
    	    jar xvf $$fileJar; \
    	    rm -rf META-INF/MANIFEST.MF; \
    
    tjc's avatar
    tjc committed
    	  done; \
    
    tjc's avatar
    tjc committed
              for fileJar in ../lib/j2ssh/*.jar; do \
                jar xvf $$fileJar; \
                rm -rf META-INF/MANIFEST.MF; \
    
    tjc's avatar
    tjc committed
              done; \
              for fileJar in ../lib/ibatis/*.jar; do \
                jar xvf $$fileJar; \
                rm -rf META-INF/MANIFEST.MF; \
    
    tjc's avatar
    tjc committed
              done; \
    
    tcarver's avatar
    tcarver committed
              for fileJar in ../lib/batik/*.jar; do \
                jar xvf $$fileJar; \
                rm -rf META-INF/MANIFEST.MF; \
              done; \
    
    tjc's avatar
    tjc committed
              for fileJar in ../lib/picard/*.jar; do \
                jar xvf $$fileJar; \
                rm -rf META-INF/MANIFEST.MF; \
              done; \
    
    tjc's avatar
    tjc committed
            fi; \
    
    	cp -R ../lib/LICENSE.Apache ../uk ../org ../nsdb ../type ../seqdb ../etc ../images ../lib/j2ssh/j2ssh.properties \
    	      ../images/PSUlogo.gif ../images/icon.gif ../README ../artemis_sqlmap .
    
    tjc's avatar
    tjc committed
    	find jar_build -name '*.java' -print | xargs rm -f
    
    tjc's avatar
    tjc committed
    	find jar_build -name '.svn' -print | xargs rm -rf
    
    tjc's avatar
    tjc committed
    	cd jar_build; \
    	rm -rf META-INF/MANIFEST.MF; \
    
    	echo "Main-Class: uk.ac.sanger.artemis.components.ArtemisMain\nPermissions: all-permissions" > manifest-art; \
    
    tcarver's avatar
    tcarver committed
    	jar cmf manifest-art artemis.jar META-INF/services images/PSUlogo.gif images/icon.gif README etc \
    
    tjc's avatar
    tjc committed
    	                     artemis_sqlmap org uk com net nsdb type seqdb LICENSE.Apache j2ssh.properties; \
    
            echo "Main-Class: uk.ac.sanger.artemis.circular.DNADraw\nPermissions: all-permissions" > manifest-circular; \
    
    tjc's avatar
    tjc committed
            jar cmf manifest-circular DNAPlotter.jar images/PSUlogo.gif README etc \
    
    tcarver's avatar
    tcarver committed
                                 uk org/gmod org/w3c org/apache org/biojava/bio/ com/ibatis/common/jdbc/ net/sf/samtools/ LICENSE.Apache j2ssh.properties; \
    
    	echo "Main-Class: uk.ac.sanger.artemis.components.alignment.BamView\nPermissions: all-permissions" > manifest-bamview; \
    
    tcarver's avatar
    tcarver committed
    	jar cmf manifest-bamview BamView.jar META-INF/services etc uk org/apache org/biojava org/biojavax org/gmod org/w3c net/sf com/ibatis; \
    
    	echo "Main-Class: uk.ac.sanger.artemis.components.ActMain\nPermissions: all-permissions" > manifest-act; \
    
    tcarver's avatar
    tcarver committed
    	jar cmf manifest-act act.jar META-INF/services images/PSUlogo.gif images/icon.gif README etc \
    
    tjc's avatar
    tjc committed
    	                     artemis_sqlmap org uk com net nsdb type seqdb LICENSE.Apache j2ssh.properties; \
    
    tjc's avatar
    tjc committed
    	rm -f etc/log4j.properties; \
    
    	jar cmf manifest-art artemis_mac.jar images/PSUlogo.gif images/icon.gif README \
    	        uk org/gmod nsdb type seqdb LICENSE.Apache artemis_sqlmap
    
    tjc's avatar
    tjc committed
    
    clean :
    
    	-rm -rf *.html artemis.jar seqdb nsdb type resources uk/ac/sanger/jcon/ jar_build tar_build  artemis_compiled.tar
    
    tjc's avatar
    tjc committed
    	-rm -rf TAGS* *.o
    	-find . -name '*.class' -print | xargs rm -f