Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
85 lines (59 loc) · 1.5 KB
/
Copy pathMakefile
File metadata and controls
85 lines (59 loc) · 1.5 KB
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
# https://www.gnu.org/software/make/manual/make.html
SHELL := /bin/bash
ENV ?= env # default, other options: test, prod
-include .env.$(ENV)
export
-include *.make
WORKDIR := $(shell pwd)
VERSION := $(shell cat VERSION)
# PROJECT := $(shell basename $(CURDIR))
COMPANY ?= com
PROJECT ?= pokeverse
PACKAGE ?= pokemon
FPN := $(COMPANY).$(PROJECT).$(PACKAGE)
JAVA := /usr/bin/java
JAR := /usr/bin/jar
JC := /usr/bin/javac
DOCKER := /usr/bin/docker
PATH := ./bin:$(PATH)
SRC := src
DIST := target
LIB := lib
JFLAGS := -g -d $(DIST)
.PHONY: env test all dev clean deps $(SRC) $(DIST) $(BUILD)
.DEFAULT_GOAL := test
.ONESHELL:
%:
@:
test:
@$(JAVA) --version
@$(JAR) --version
@$(JC) --version
switch-env:
sed -i 's/ENV ?= env/ENV ?= $(filter-out $@,$(MAKECMDGOALS))/' Makefile
deps: dirs
@while read -r line; do \
if [[ ! $$line =~ ^# ]]; then \
wget $$line -nc -P $(LIB); \
# Add your command to process the URL here \
fi; \
done < deps
source:
find $(SRC) -name "*.java" > sources.txt
compile: dirs
$(JC) $(JFLAGS) -cp "$(DIST):$(LIB)/*" @sources.txt
run:
$(JAVA) -cp "$(DIST):./lib/*" $(FPN).App
all: source compile run
build: dirs
@find $(DIST) -name "*.class" > classes.txt
$(JAR) cvfm App.jar Manifest.txt -C $(DIST) . -C $(LIB) .
exec:
$(JAVA) -cp "$(DIST):$(LIB)/*:./App.jar" $(FPN).App
clean:
@rm -r ./$(DIST)
@rm sources.txt classes.txt App.jar
test-main:
$(JAVA) -cp "$(DIST):$(LIB)/*" org.junit.runner.JUnitCore $(FPN).AppTest
dirs:
@mkdir -p $(DIST) $(LIB)