Makefile: now working, including JAR file
[jvcard.git] / Makefile
CommitLineData
dc2075d6
NR
1###
2### You can use this Makefile to generate an executable JAR file
3### The available options are:
4### - make: will create the default (or currently compiled) JAR
5### - make bin/5 && make: will create a Java 1.5 JAR
6### - make bin/6 && make: will create a Java 1.6 JAR
7### - make bin/7 && make: will create a Java 1.7 JAR
8### - make bin/8 && make: will create a Java 1.8 JAR
9### - make clean: will clean temporary files
10### - make mrpropre: will clean temporary files and remove the JAR file
11
08fbe0fb 12ALL: bin/5 jvcard.jar
152ba78f 13
dc2075d6
NR
14.PHONY: ALL clean mrproper mrpropre love
15
16love:
17 @echo ...not war?
18
19clean:
20 @echo Cleaning files...
21 @rm -f bin/[0-9] bin/files bin/lanterna
22
23mrproper: mrpropre
24
25mrpropre: clean
26 @echo Removing jar files...
27 @rm -f jvcard.jar jvcard-`grep "APPLICATION_VERSION" src/be/nikiroo/jvcard/launcher/Main.java | cut -d'"' -f2`.jar
28
08fbe0fb 29jvcard.jar: bin/be/nikiroo/jvcard/*/* bin/be/nikiroo/jvcard/*
dc2075d6
NR
30 @echo 'Main-Class: be.nikiroo.jvcard.launcher.Main' > bin/manifest
31 @echo >> bin/manifest
32 @echo Creating jar file jvcard-`grep "APPLICATION_VERSION" src/be/nikiroo/jvcard/launcher/Main.java | cut -d'"' -f2`.jar...
33 @cd bin && find . | grep -v './[0-9]' | grep -v './manifest' | grep -v './lanterna' | jar -m manifest -cf ../jvcard-`grep "APPLICATION_VERSION" ../src/be/nikiroo/jvcard/launcher/Main.java | cut -d'"' -f2`.jar -@
34 @rm bin/manifest
35 @echo Copying to jvcard.jar...
36 @cp jvcard-`grep "APPLICATION_VERSION" src/be/nikiroo/jvcard/launcher/Main.java | cut -d'"' -f2`.jar jvcard.jar
152ba78f 37
08fbe0fb 38bin/5: lanterna files
dc2075d6 39 @echo Compiling in Java 1.5 mode "('make bin/5')"...
152ba78f 40 javac -cp bin/ -encoding UTF-8 -Xlint -source 5 @files -d bin/
dc2075d6
NR
41 @rm -f bin/[0-9]
42 @touch bin/5
152ba78f 43
08fbe0fb 44bin/6: lanterna files
dc2075d6 45 @echo Compiling in Java 1.6 mode "('make bin/6')"...
152ba78f 46 javac -cp bin/ -encoding UTF-8 -Xlint -source 6 @files -d bin/
dc2075d6
NR
47 @rm -f bin/[0-9]
48 @touch bin/6
152ba78f 49
08fbe0fb 50bin/7: lanterna files
dc2075d6 51 @echo Compiling in Java 1.7 mode "('make bin/7')"...
152ba78f 52 javac -cp bin/ -encoding UTF-8 -Xlint -source 7 @files -d bin/
dc2075d6
NR
53 @rm -f bin/[0-9]
54 @touch bin/7
55
56bin/8: lanterna files
57 @echo Compiling in Java 1.8 mode "('make bin/8')"...
58 javac -cp bin/ -encoding UTF-8 -Xlint -source 8 @files -d bin/
59 @rm -f bin/[0-9]
60 @touch bin/8
152ba78f 61
08fbe0fb 62files: src/be/nikiroo/jvcard/*/* src/be/nikiroo/jvcard/*
dc2075d6 63 @find src/be/ -name '*.java' > files
152ba78f 64
dc2075d6
NR
65bin/lanterna:
66 @find src/com/ -name '*.java' > bin/lanterna
67 javac -encoding UTF-8 -source 5 @lanterna -d bin/ || rm bin/lanterna
68 @test -e bin/lanterna
152ba78f 69