You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.9 KiB
109 lines
2.9 KiB
4 months ago
|
# GNU/Linux makefile for ProGuard.
|
||
|
|
||
|
ANT_HOME = /usr/local/java/ant
|
||
|
GRADLE_HOME = /usr/local/java/gradle
|
||
|
WTK_HOME = /usr/local/java/wtk
|
||
|
|
||
|
PROGUARD_HOME := $(subst ./..,..,$(subst /build/..,/,$(dir $(MAKEFILE_LIST))..))
|
||
|
SRC = $(PROGUARD_HOME)/src
|
||
|
CLASSES = $(PROGUARD_HOME)/classes
|
||
|
LIB = $(PROGUARD_HOME)/lib
|
||
|
|
||
|
ANT_JAR = $(ANT_HOME)/lib/ant.jar
|
||
|
GRADLE_JARS = $(GRADLE_HOME)/lib/plugins/gradle-plugins-2.1.jar \
|
||
|
$(GRADLE_HOME)/lib/gradle-base-services-2.1.jar \
|
||
|
$(GRADLE_HOME)/lib/gradle-base-services-groovy-2.1.jar \
|
||
|
$(GRADLE_HOME)/lib/gradle-core-2.1.jar \
|
||
|
$(GRADLE_HOME)/lib/groovy-all-2.3.6.jar
|
||
|
WTK_JAR = $(WTK_HOME)/wtklib/kenv.zip
|
||
|
|
||
|
NOTHING:=
|
||
|
SPACE:=$(NOTHING) $(NOTHING)
|
||
|
CLASSPATH = $(ANT_JAR):$(subst $(SPACE),:,$(GRADLE_JARS)):$(WTK_JAR)
|
||
|
|
||
|
PROGUARD = proguard/ProGuard
|
||
|
PROGUARD_GUI = proguard/gui/ProGuardGUI
|
||
|
RETRACE = proguard/retrace/ReTrace
|
||
|
ANT_TASK = proguard/ant/ProGuardTask
|
||
|
GRADLE_TASK = proguard/gradle/ProGuardTask
|
||
|
WTK_PLUGIN = proguard/wtk/ProGuardObfuscator
|
||
|
|
||
|
TARGETS = $(PROGUARD) $(PROGUARD_GUI) $(RETRACE) $(ANT_TASK) $(GRADLE_TASK) $(WTK_PLUGIN)
|
||
|
|
||
|
JAVAC_OPTIONS = -nowarn -Xlint:none -classpath $(CLASSPATH) -sourcepath $(SRC) -d $(CLASSES)
|
||
|
|
||
|
# Command sequence definitions for creating jars.
|
||
|
|
||
|
define createjar
|
||
|
jar -cfm $(LIB)/$@.jar $(SRC)/$(dir $<)MANIFEST.MF \
|
||
|
-C $(CLASSES) $(dir $<)
|
||
|
endef
|
||
|
|
||
|
define updatejar
|
||
|
jar -uf $(LIB)/proguard.jar \
|
||
|
-C $(CLASSES) $(dir $<)
|
||
|
endef
|
||
|
|
||
|
# The various targets.
|
||
|
|
||
|
all: basic options
|
||
|
basic: proguard proguardgui retrace
|
||
|
options: anttask gradletask wtkplugin
|
||
|
|
||
|
proguard: $(PROGUARD)
|
||
|
$(createjar)
|
||
|
|
||
|
proguardgui: proguard
|
||
|
proguardgui: $(PROGUARD_GUI)
|
||
|
$(createjar)
|
||
|
|
||
|
retrace: $(RETRACE)
|
||
|
$(createjar)
|
||
|
|
||
|
anttask: $(ANT_JAR)
|
||
|
anttask: $(PROGUARD)
|
||
|
anttask: $(ANT_TASK)
|
||
|
$(updatejar)
|
||
|
|
||
|
gradletask: $(GRADLE_JARS)
|
||
|
gradletask: $(PROGUARD)
|
||
|
gradletask: $(GRADLE_TASK)
|
||
|
$(updatejar)
|
||
|
|
||
|
wtkplugin: $(WTK_JAR)
|
||
|
wtkplugin: $(PROGUARD)
|
||
|
wtkplugin: $(WTK_PLUGIN)
|
||
|
$(updatejar)
|
||
|
|
||
|
clean:
|
||
|
-rm -fr $(CLASSES) $(LIB)
|
||
|
|
||
|
|
||
|
define RESOURCES
|
||
|
$(shell find $(SRC)/$(dir $(1)) -maxdepth 1 \( -name \*.properties -o -name \*.png -o -name \*.gif -o -name \*.pro \) -printf $(CLASSES)/$(dir $(1))%P\\n)
|
||
|
endef
|
||
|
|
||
|
define TARGETRULE
|
||
|
$(1): $(CLASSES) $(CLASSES)/$(1).class $(call RESOURCES,$(1)) $(LIB)
|
||
|
endef
|
||
|
|
||
|
$(foreach TARGET,$(TARGETS),$(eval $(call TARGETRULE,$(TARGET))))
|
||
|
|
||
|
$(CLASSES) $(LIB):
|
||
|
-mkdir -p $@
|
||
|
|
||
|
$(CLASSES)/%.class: $(SRC)/%.java
|
||
|
javac $(JAVAC_OPTIONS) $^
|
||
|
|
||
|
$(CLASSES)/%.properties $(CLASSES)/%.png $(CLASSES)/%.gif $(CLASSES)/%.pro:
|
||
|
cp $(subst $(CLASSES),$(SRC),$@) $@
|
||
|
|
||
|
%.jar %.zip:
|
||
|
echo "Please make sure the path to $@ is set"
|
||
|
echo "correctly in this $(strip $(MAKEFILE_LIST))."
|
||
|
echo "Alternatively, if you don't need the corresponding option,"
|
||
|
echo "you can run `make' with the option -k."
|
||
|
find $@
|
||
|
|
||
|
.PHONY: all basic options proguard proguardgui retrace anttask wtkplugin clean $(TARGETS) $(OPTIONAL_TARGETS)
|