109 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| # 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)
 |