# Andreas Romeyke, SLUB Dresden # erzeugt Submission-Application, die vorbereitete Verzeichnisse per Java SDK # von ExLibris an Rosetta übergibt. # Pfad zu Java JAVAPATH=$(wildcard /usr/lib/jvm/java-1.17.0-openjdk-*/bin/) JAVARELEASE=17 # Verwendete Rosetta-Version ROSETTAVERSION:=7.3.0 # Pfad zum Rosetta-SDK ROSETTASDK:=/exlibris/dps/d4_1/system.dir/dps-sdk-${ROSETTAVERSION}/lib/ # Pfad zum Rosetta-SDK, Deposit-Module ROSETTASDKDEPOSIT:=${ROSETTASDK}/../dps-sdk-projects/dps-sdk-deposit/lib ROSETTASDKPLUGINS:=${ROSETTASDK}/../../bundled_plugins/ ROSETTASDKJARS=$(shell find ${ROSETTASDKDEPOSIT} -name "*.jar") # classpath JUNITCLASSPATH:=/usr/share/java/junit4.jar:$(shell find ${ROSETTASDKDEPOSIT} -name "*.jar" -print |xargs echo |sed -e "s/ /:/g") #SOURCESCLASSPATH=org/slub/rosetta/dps/repository/plugin/storage/nfs CLASSPATH:=./java:${ROSETTASDKDEPOSIT}/../src/:${ROSETTASDKDEPOSIT}/xmlbeans-2.3.0.jar:${ROSETTASDKDEPOSIT}/dps-sdk-${ROSETTAVERSION}.jar:${ROSETTASDKDEPOSIT}/log4j-1.2.14.jar:${ROSETTASDKPLUGINS}/NFSStoragePlugin.jar # sources #SOURCES=java/org/slub/rosetta/dps/repository/plugin/storage/nfs/SLUBStoragePlugin.java\ # java/org/slub/rosetta/dps/repository/plugin/storage/nfs/testSLUBStoragePlugin.java SOURCES=java/org/slub/rosetta/dps/repository/plugin/SLUBVirusCheckClamAVPlugin.java OBJS=$(SOURCES:.java=.class) JAR=SLUBVirusCheckPlugin.jar BUILD:=build/ export CMD=/usr/bin/java -cp $(CLASSPATH):$(JUNITCLASSPATH):$(JAR) org.slub.rosetta.dps.repository.plugin.SLUBVirusCheckClamAVPlugin #export CMD=echo SIGNATURE: Eicar-Signature CMD_EICAR=$(shell ${CMD} EICAR/eicar | grep -F 'SIGNATURE:') CMD_NOVIRUS=$(shell ${CMD} Makefile | grep -F 'SIGNATURE:') all: $(BUILD) $(JAR) help: @echo "erzeugt viruscheck plugin für Rosetta von Exlibris" @echo "" @echo "Das Argument 'clean' löscht temporäre Dateien, 'help' gibt diese Hilfe aus und" @echo "'all' erzeugt ein JAR-File und ein Bash-Script welches das Java-Programm" @echo "aufruft." jarclean: @rm -Rf $(BUILD) test: $(OBJS) @echo -n "testing EICAR: " ifeq "$(CMD_EICAR)" "RESULT: 2 SIGNATURE: Eicar-Signature" @echo pass; else @echo fail; exit 2; endif @echo -n "testing No virus: " ifeq "$(CMD_NOVIRUS)" "RESULT: 0 SIGNATURE: " @echo pass; else @echo fail; exit 2; endif clean: jarclean @rm -Rf doc/ find ./java/org/ -name "*.class" -exec rm -f \{\} \; @rm -Rf $(JAR) distclean: clean find ./ -name "*~" -exec rm -f \{\} \; @rm -Rf null $(BUILD): @mkdir $@; @mkdir $@/lib $(JAR): $(OBJS) @cp -r PLUGIN-INF/ $(BUILD) @cp -r META-INF/ $(BUILD) @cd java; find ./ -name "*.class" -print -exec cp --parents -r \{\} $(PWD)/$(BUILD) \; ; cd .. @cd $(BUILD); ${JAVAPATH}/jar cfvM ../$@ ./* ; cd .. %.class: %.java ${JAVAPATH}/javac --release ${JAVARELEASE} -g -classpath ${CLASSPATH}:${JUNITCLASSPATH} -Xlint:all $< doc: $(SOURCES) javadoc -d doc/ $^ check_prerequisites: @echo -n "### Checking java path: $(JAVAPATH) ...." @if [ -e $(JAVAPATH) ]; then echo "fine :)"; else echo " not found! :("; fi @echo -n "### Checking Exlibris Rosetta SDK path: $(ROSETTASDK) ...." @if [ -e $(ROSETTASDK) ]; then echo "fine :)"; else echo " not found! :("; fi .PHONY: help clean distclean jarclean test