📄 makefile.include
字号:
#-*-makefile-*-
######################################################################
#
# Contains the shared make rules for the tools/java tree.
#
# In each directory, create a Makefile that includes the lines
# ROOT = <path to this directory>
# include $(ROOT)/Makefile.include
#
# By default the Makefile will compile all .java source code in the
# current directory. You may also specify the following flags in
# your Makefile, *before* including Makefile.include:
#
# SUBDIRS = dir1 dir2 ...
# Specify a list of subdirectories that 'make' should descend into
#
# INITIAL_TARGETS = target1 target2 ...
# Specify build targets to be compiled before compiling Java classes
#
# FINAL_TARGETS = target1 target2 ...
# Specify build targets to be compiled after compiling Java classes
#
# OTHER_CLEAN = target1 target2 ...
# Specify other targets to be executed when 'make clean' is run
#
# NOTE: this Makefile requires GNU make, as well as a number of
# standard UNIX shell tools.
#
######################################################################
SRC = $(wildcard *.java)
JAVA = $(SRC)
CLASSES = $(JAVA:.java=.class)
all: here subdirs $(FINAL_TARGETS)
# figure out useful variables
PWD = $(shell pwd)
# set compiler command
ifeq ($(JAVAC)_x, _x)
JAVAC = javac
endif
# general rule for java files
%.class: %.java
$(JAVAC) $<
ifeq ($(SUBDIRS)_x, _x)
subdirs: here
subdirs-clean: here-clean
else
subdirs: here
@for i in $(SUBDIRS); do \
if [ -d $$i ]; then \
if [ -f $$i/Makefile ]; then \
$(MAKE) -C $$i; \
else \
echo "***" no Makefile in directory: $(PWD)/$$i; \
fi \
else \
echo "***" skipping missing directory: $(PWD)/$$i; \
fi; \
done
subdirs-clean: here-clean
@for i in $(SUBDIRS); do \
if [ -d $$i ]; then \
if [ -f $$i/Makefile ]; then \
$(MAKE) -C $$i clean; \
else \
echo "***" no Makefile in directory: $(PWD)/$$i; \
fi \
else \
echo "***" skipping missing directory: $$i; \
fi; \
done
subdirs-install:
@for i in $(INSTALLDIRS); do \
if [ -d $$i ]; then \
if [ -f $$i/Makefile ]; then \
$(MAKE) -C $$i install; \
else \
echo "***" no Makefile in directory: $(PWD)/$$i; \
fi \
else \
echo "***" skipping missing directory: $$i; \
fi; \
done
endif
here: printdir $(INITIAL_TARGETS) $(JAVA) $(CLASSES) FORCE
printdir:
@echo "... $(PWD)";
here-clean: FORCE
@rm -f *.class *~ javacore*.txt
@echo "cleaning $(PWD)"
clean: here-clean subdirs-clean $(OTHER_CLEAN)
install: subdirs-install
# some phony targets - FORCE forces a command to be run on all dependencies,
# and .PHONY prevents badness if a phony target coincides with a filename
FORCE:
.PHONY: all $(SUBDIRS) $(SUBDIRSCLEAN) clean
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -