1234567891011121314151617181920212223242526272829303132333435363738 |
- # This Makefile is used when building with gcj. It is separate from
- # the ordinary Makefile as it does special GNU-make-specific things,
- # and this avoids making other builds unnecessarily ugly.
- # A .list file is made by split-for-gcj.sh.
- # It lists all the files in a given package.
- all_list_files := $(shell echo lists/*.list)
- # The corresponding stamp files.
- # Each .class file depends on its package's stamp file.
- # Each stamp file depends on the corresponding list file.
- # Each list file depends on the java files in its package.
- # This way touching a single java source will cause the minimum
- # number of rebuilds.
- all_stamp_files := $(all_list_files:.list=.stamp)
- # The dependency file generated by gcj.
- all_deps_files := $(all_list_files:.list=.deps)
- all: $(all_stamp_files)
- # Ensure this is rebuilt whenever the list of classes changes.
- # The list will always exist when this Makefile is used.
- Makefile.deps: classes
- $(SHELL) $(top_srcdir)/lib/split-for-gcj.sh
- -include Makefile.deps $(all_deps_files)
- ## Like GCJ but include some common flags.
- GCJF = $(GCJ) -fsource=1.5 -ftarget=1.5 -g -Wno-deprecated --encoding=UTF-8 \
- --bootclasspath '' --classpath $(compile_classpath) \
- -C -d .
- # Rule to rebuild a stamp file and update the deps file. Note that we
- # make the target be the stamp file. This ensures that if a needed
- # source is changed, this rule is re-run for the appropriate package.
- %.stamp: %.list
- $(GCJF) -MD -MF ${@:.stamp=.deps} -MT $@ -MP @$<
- echo timestamp > $@
|