-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathMakefile
38 lines (30 loc) · 1.13 KB
/
Makefile
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
# makefile for SSM, Simple Stack Machine
default: ssm
DIR_SRC := src
DIR_HELP := Help
DIR_IMGS := Images
DIR_BLD := build
DIR_BLD_JAR := build/ssm-classes
SSM_JAR := $(DIR_BLD)/ssm.jar
SSM_SRC := $(wildcard $(DIR_SRC)/nl/uu/cs/ssm/*.java) $(wildcard $(DIR_SRC)/nl/uu/cs/ssmui/*.java)
SSM_SRC_HELP := $(wildcard $(DIR_SRC)/$(DIR_HELP)/*.prop)
SSM_SRC_IMGS := $(wildcard $(DIR_SRC)/$(DIR_IMGS)/*.gif) $(wildcard $(DIR_SRC)/$(DIR_IMGS)/*.GIF)
SSM_MKF := Makefile
JAVAC_OPTS := -Xlint
ssm: $(SSM_JAR)
$(SSM_JAR): $(SSM_SRC) $(SSM_SRC_HELP) $(SSM_SRC_IMGS) $(SSM_MKF)
mkdir -p $(DIR_BLD_JAR) $(DIR_BLD_JAR)/$(DIR_HELP) $(DIR_BLD_JAR)/$(DIR_IMGS)
cp $(SSM_SRC_HELP) $(DIR_BLD_JAR)/$(DIR_HELP)
cp $(SSM_SRC_IMGS) $(DIR_BLD_JAR)/$(DIR_IMGS)
( echo "Manifest-Version: 1.0" ; \
echo "Main-Class: nl.uu.cs.ssmui.Runner" ; \
) > $(DIR_BLD)/manifest
javac $(JAVAC_OPTS) -d $(DIR_BLD_JAR) $(SSM_SRC) && \
cd $(DIR_BLD_JAR) && \
jar cmf ../manifest ../$(@F) .
clean:
rm -rf $(DIR_BLD)
dist: ssm
cp $(DIR_SRC)/ssm.sh $(DIR_SRC)/ssm.bat $(DIR_BLD) && \
cd $(DIR_BLD) && \
tar cfz ssm-$(shell date +%Y%m%d).tgz ssm.jar ssm.sh ssm.bat