| 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 | |
| 12 | ALL: bin/5 jvcard.jar |
| 13 | |
| 14 | .PHONY: ALL clean mrproper mrpropre love |
| 15 | |
| 16 | love: |
| 17 | @echo ...not war? |
| 18 | |
| 19 | clean: |
| 20 | @echo Cleaning files... |
| 21 | @rm -f bin/[0-9] bin/files bin/lanterna |
| 22 | |
| 23 | mrproper: mrpropre |
| 24 | |
| 25 | mrpropre: 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 | |
| 29 | jvcard.jar: bin/be/nikiroo/jvcard/*/* bin/be/nikiroo/jvcard/* |
| 30 | @mkdir -p bin/ |
| 31 | @echo 'Main-Class: be.nikiroo.jvcard.launcher.Main' > bin/manifest |
| 32 | @echo >> bin/manifest |
| 33 | @echo Creating jar file jvcard-`grep "APPLICATION_VERSION" src/be/nikiroo/jvcard/launcher/Main.java | cut -d'"' -f2`.jar... |
| 34 | jar cfm jvcard-`grep "APPLICATION_VERSION" src/be/nikiroo/jvcard/launcher/Main.java | cut -d'"' -f2`.jar bin/manifest -C bin/ be -C bin/ com |
| 35 | @rm bin/manifest |
| 36 | @echo Copying to jvcard.jar... |
| 37 | @cp jvcard-`grep "APPLICATION_VERSION" src/be/nikiroo/jvcard/launcher/Main.java | cut -d'"' -f2`.jar jvcard.jar |
| 38 | |
| 39 | bin/5: lanterna bin/files |
| 40 | @echo Compiling in Java 1.5 mode "('make bin/5')"... |
| 41 | javac -cp bin/ -encoding UTF-8 -Xlint -Xlint:-options -source 5 -target 5 @bin/files -d bin/ |
| 42 | @rm -f bin/[0-9] |
| 43 | @touch bin/5 |
| 44 | |
| 45 | bin/6: lanterna bin/files |
| 46 | @echo Compiling in Java 1.6 mode "('make bin/6')"... |
| 47 | javac -cp bin/ -encoding UTF-8 -Xlint -Xlint:-options -source 6 -target 6 @bin/files -d bin/ |
| 48 | @rm -f bin/[0-9] |
| 49 | @touch bin/6 |
| 50 | |
| 51 | bin/7: lanterna bin/files |
| 52 | @echo Compiling in Java 1.7 mode "('make bin/7')"... |
| 53 | javac -cp bin/ -encoding UTF-8 -Xlint -Xlint:-options -source 7 -target 7 @bin/files -d bin/ |
| 54 | @rm -f bin/[0-9] |
| 55 | @touch bin/7 |
| 56 | |
| 57 | bin/8: lanterna bin/files |
| 58 | @echo Compiling in Java 1.8 mode "('make bin/8')"... |
| 59 | javac -cp bin/ -encoding UTF-8 -Xlint -Xlint:-options -source 8 -target 8 @bin/files -d bin/ |
| 60 | @rm -f bin/[0-9] |
| 61 | @touch bin/8 |
| 62 | |
| 63 | bin/files: src/be/nikiroo/jvcard/*/* src/be/nikiroo/jvcard/* |
| 64 | @mkdir -p bin/ |
| 65 | @find src/be/ -name '*.java' > bin/files |
| 66 | |
| 67 | bin/lanterna: |
| 68 | @mkdir -p bin/ |
| 69 | @find src/com/ -name '*.java' > bin/lanterna |
| 70 | javac -encoding UTF-8 -source 5 @lanterna -d bin/ || rm bin/lanterna |
| 71 | @test -e bin/lanterna |
| 72 | |