|
1 | | -DESCRIPTION = CS50 Library for Java |
2 | | -MAINTAINER = CS50 <sysadmins@cs50.harvard.edu> |
3 | | -OLD_NAME = lib50-java |
4 | | -NAME = libcs50-java |
5 | | -VERSION = 2.0.0 |
6 | | - |
7 | | -BUILD_DIR = build |
8 | | -DEB_DIR = $(BUILD_DIR)/deb |
9 | | -DOCS_DIR = docs |
10 | | -JAR_DIR = $(BUILD_DIR)/usr/java/packages/lib/ext |
11 | | -PACMAN_DIR = $(BUILD_DIR)/pacman |
12 | | -RPM_DIR = $(BUILD_DIR)/rpm |
13 | | - |
14 | | -.PHONY: all |
15 | | -all: clean deb pacman rpm |
16 | | - |
17 | | -.PHONY: bash |
18 | | -bash: |
19 | | - docker run -i --rm -t -v "$(PWD):/root" cs50/cli |
| 1 | +DESTDIR ?= /usr/local/share/java |
| 2 | +VERSION = 2.0.1 |
20 | 3 |
|
21 | 4 | .PHONY: build |
22 | 5 | build: clean Makefile src/edu/harvard/CS50.java |
23 | | - mkdir -p "$(JAR_DIR)" |
24 | | - javac -d "$(BUILD_DIR)" src/edu/harvard/CS50.java |
25 | | - jar cvf "$(JAR_DIR)/cs50.jar" -C "$(BUILD_DIR)" . |
26 | | - find "$(BUILD_DIR)" -type d -exec chmod 0755 {} + |
27 | | - find "$(BUILD_DIR)" -type f -exec chmod 0644 {} + |
| 6 | + mkdir -p build/usr/share/java |
| 7 | + javac -d build src/edu/harvard/CS50.java |
| 8 | + cp src/edu/harvard/CS50.java build/edu/harvard |
| 9 | + jar cvf build/usr/share/java/cs50.jar -C build . |
28 | 10 |
|
29 | 11 | .PHONY: clean |
30 | 12 | clean: |
31 | | - rm -rf "$(BUILD_DIR)" |
| 13 | + rm -rf build libcs50-java* libcs50-java_* |
32 | 14 |
|
33 | 15 | .PHONY: deb |
34 | 16 | deb: build |
35 | | - mkdir -p "$(DEB_DIR)" |
36 | | - fpm \ |
37 | | - -C "$(BUILD_DIR)" \ |
38 | | - -m "$(MAINTAINER)" \ |
39 | | - -n "$(NAME)" \ |
40 | | - -p "$(DEB_DIR)" \ |
41 | | - -s dir \ |
42 | | - -t deb \ |
43 | | - -v "$(VERSION)" \ |
44 | | - --conflicts $(OLD_NAME) \ |
45 | | - --provides $(OLD_NAME) \ |
46 | | - --replaces $(OLD_NAME) \ |
47 | | - --deb-no-default-config-files \ |
48 | | - --depends java7-runtime \ |
49 | | - --description "$(DESCRIPTION)" \ |
50 | | - usr |
| 17 | + @echo "libcs50-java ($(VERSION)-0ubuntu1) trusty; urgency=low" > debian/changelog |
| 18 | + @echo " * v$(VERSION)" >> debian/changelog |
| 19 | + @echo " -- CS50 Sysadmins <sysadmins@cs50.harvard.edu> $$(date --rfc-2822)" >> debian/changelog |
| 20 | + mkdir -p libcs50-java-$(VERSION) |
| 21 | + rsync -a build/usr libcs50-java-$(VERSION) |
| 22 | + tar -cvzf libcs50-java_$(VERSION).orig.tar.gz libcs50-java-$(VERSION) |
| 23 | + cp -r debian libcs50-java-$(VERSION) |
| 24 | + cd libcs50-java-$(VERSION) && debuild -S -sa --lintian-opts --display-info --info --show-overrides |
| 25 | + mkdir -p build/deb |
| 26 | + mv libcs50-java* build/deb |
51 | 27 |
|
52 | 28 | .PHONY: docs |
53 | 29 | docs: |
54 | | - rm -rf $(DOCS_DIR) |
55 | | - javadoc -d "$(DOCS_DIR)" -linkoffline https://docs.oracle.com/javase/8/docs/api/ https://docs.oracle.com/javase/8/docs/api/ -sourcepath src edu.harvard |
56 | | - |
57 | | -# TODO: add dependencies |
58 | | -.PHONY: pacman |
59 | | -pacman: build |
60 | | - mkdir -p "$(PACMAN_DIR)" |
61 | | - fpm \ |
62 | | - -C "$(BUILD_DIR)" \ |
63 | | - -m "$(MAINTAINER)" \ |
64 | | - -n "$(NAME)" \ |
65 | | - -p "$(PACMAN_DIR)" \ |
66 | | - -s dir \ |
67 | | - -t pacman \ |
68 | | - -v "$(VERSION)" \ |
69 | | - --description "$(DESCRIPTION)" \ |
70 | | - usr |
71 | | - |
72 | | -# TODO: add dependencies |
73 | | -.PHONY: rpm |
74 | | -rpm: build |
75 | | - mkdir -p "$(RPM_DIR)" |
76 | | - fpm \ |
77 | | - -C "$(BUILD_DIR)" \ |
78 | | - -m "$(MAINTAINER)" \ |
79 | | - -n "$(NAME)" \ |
80 | | - -p "$(RPM_DIR)" \ |
81 | | - -s dir \ |
82 | | - -t rpm \ |
83 | | - -v "$(VERSION)" \ |
84 | | - --description "$(DESCRIPTION)" \ |
85 | | - usr |
| 30 | + rm -rf docs |
| 31 | + javadoc -d docs -linkoffline https://docs.oracle.com/javase/8/docs/api/ \ |
| 32 | + https://docs.oracle.com/javase/8/docs/api/ -sourcepath src edu.harvard |
| 33 | + |
| 34 | +.PHONY: install |
| 35 | +install: build |
| 36 | + mkdir -p $(DESTDIR) |
| 37 | + cp -r build/usr/share/java/cs50.jar $(DESTDIR) |
| 38 | + |
| 39 | +.PHONY: version |
| 40 | +version: |
| 41 | + @echo $(VERSION) |
0 commit comments