File: Makefile

package info (click to toggle)
acl2 8.5dfsg-5
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 991,452 kB
  • sloc: lisp: 15,567,759; javascript: 22,820; cpp: 13,929; ansic: 12,092; perl: 7,150; java: 4,405; xml: 3,884; makefile: 3,507; sh: 3,187; ruby: 2,633; ml: 763; python: 746; yacc: 723; awk: 295; csh: 186; php: 171; lex: 154; tcl: 49; asm: 23; haskell: 17
file content (94 lines) | stat: -rw-r--r-- 3,166 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Java Library
#
# Copyright (C) 2021 Kestrel Institute (http://www.kestrel.edu)
#
# License: A 3-clause BSD license. See the LICENSE file distributed with ACL2.
#
# Author: Alessandro Coglio (coglio@kestrel.edu)

################################################################################

# This file compiles the Java source files of AIJ without IntelliJ IDEA.
# It generates the class and jar files in the same places as IntelliJ IDEA does.

# This file also generates Javadoc HTML documentation
# for public, package-private, and private classes and members
# (not for protected classes and members
# because AIJ currently does not have any).
# The generated documentation goes into the directories
# javadoc-public, javadoc-package, and javadoc-private,
# from where it can be opened in a browser.

# This file also certifies the ACL2 files in this directory.
# Note that the ACL2 files do not depend on the Java-related files,
# and that the Java-related files do not depend on the ACL2 files.
# This file does not assume cert.pl and clean.pl to be in the path:
# it references them via a relative path from this directory.

# This file assumes that
# a Java 8 (or later) compiler and related tools (e.g. the latest OpenJDK)
# is in the path.
# We compile the file requiring the source to be Java 8,
# and ensuring that the class files are Java 8.

################################################################################

$(info ) # print a blank line

all: aij javadoc-all acl2-files

aij: java/out/artifacts/AIJ_jar/AIJ.jar

java/out/artifacts/AIJ_jar/AIJ.jar: java/src/edu/kestrel/acl2/aij/*.java
	@echo "Generate class files:"
	mkdir -p java/out/production/AIJ
	javac -target 8 -source 8 -d java/out/production/AIJ java/src/edu/kestrel/acl2/aij/*.java
	@echo ""
	@echo "Generate jar file:"
	mkdir -p java/out/artifacts/AIJ_jar
	jar cfm java/out/artifacts/AIJ_jar/AIJ.jar java/META-INF/MANIFEST.MF \
            -C java/out/production/AIJ/ .
	@echo ""

javadoc-all: javadoc-public javadoc-package javadoc-private

javadoc-public: javadoc-public/index.html

javadoc-package: javadoc-package/index.html

javadoc-private: javadoc-private/index.html

javadoc-public/index.html: java/src/edu/kestrel/acl2/aij/*.java
	@echo "Generate public Javadoc documentation:"
	javadoc -d javadoc-public -public java/src/edu/kestrel/acl2/aij/*.java
	@echo ""

javadoc-package/index.html: java/src/edu/kestrel/acl2/aij/*.java
	@echo "Generate package Javadoc documentation:"
	javadoc -d javadoc-package -package java/src/edu/kestrel/acl2/aij/*.java
	@echo ""

javadoc-private/index.html: java/src/edu/kestrel/acl2/aij/*.java
	@echo "Generate private Javadoc documentation:"
	javadoc -d javadoc-private -private java/src/edu/kestrel/acl2/aij/*.java
	@echo ""

acl2-files: top.cert

top.cert: top.lisp
	@echo "Certify ACL2 files:"
	../../../build/cert.pl *.lisp
	@echo ""

clean:
	@echo "Delete class files and jar file:"
	/bin/rm -rf java/out
	@echo ""
	@echo "Delete Javadoc HTML files:"
	/bin/rm -rf javadoc-public
	/bin/rm -rf javadoc-package
	/bin/rm -rf javadoc-private
	@echo ""
	@echo "Delete ACL2 certification files:"
	../../../build/clean.pl
	@echo ""