## Modifications Copyright (C) 2004 by Etienne Gagnon. ## Modifications Copyright (C) 2004 by David Belanger. ## Modifications Copyright (C) 2004, 2005 by Grzegorz Prokopski. JAVA_DEPEND = java.dep ## silently try to include these, if it fails gnu make ## will remake these 'makefiles' with the rules given in ## this file and restart the make process again sinclude $(JAVA_DEPEND) JIKES_FLAGS = @JIKES_FLAGS@ FASTJAR_COMPRESSION_FLAGS = @FASTJAR_COMPRESSION_FLAGS@ ZIP_COMPRESSION_FLAGS = @ZIP_COMPRESSION_FLAGS@ metafiles := $(shell cd $(top_srcdir)/resource && $(FIND) META-INF -path \*/CVS -prune -o -type f -print) propertydirs := $(shell cd $(top_srcdir)/resource && $(FIND) gnu java org META-INF -type d | egrep -v '.*/(\.svn|CVS)(/.*|$$)' ) propertyfiles := $(shell cd $(top_srcdir)/resource && $(FIND) gnu java org -name \*\.properties | egrep -v '.*/(\.svn|CVS)/.*' ) compile_classpath = $(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:.:$(USER_CLASSLIB) # handling source to bytecode compiler programs like gcj, jikes and kjc if FOUND_JIKES JAVAC = $(JIKES) $(JIKES_FLAGS) -g +Pno-shadow +Pno-switchcheck +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes else if FOUND_GCJ ## Like GCJ but include some common flags. GCJF = $(GCJ) -Wno-deprecated --encoding=UTF-8 \ --bootclasspath '' --classpath $(compile_classpath) JAVAC = $(GCJF) -C -d . @classes.standard \ && $(GCJF) -C -d . @classes.awt \ && $(GCJF) -C -d . @classes.xml \ && $(GCJF) -C -d . @classes.standardx else if FOUND_KJC ## FIXME: from what I can tell, kjc does not support a -encoding option. JAVAC = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes else if FOUND_GCJX JAVAC = $(GCJX) -encoding UTF-8 -classpath .:$(USER_CLASSLIB) -d . @classes else if FOUND_ECJ JAVAC = $(ECJ) -encoding UTF-8 -warn:-deprecation,serial -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes endif # FOUND_ECJ endif # FOUND_GCJX endif # FOUND_KJC endif # FOUND_GCJ endif # FOUND_JIKES JAVAH = $(USER_JAVAH) -jni -classpath .:$(USER_CLASSLIB) if INSTALL_COMPRESSED_CLASS_FILES pkgdata_DATA = libclasspath.jar resources.jar JAVA_HOME=$(DESTDIR)$(libdir)/sablevm install-data-hook: mkdir -p $(JAVA_HOME)/{lib,jre/lib} -unlink $(JAVA_HOME)/jre/lib/rt.jar for f in $(pkgdata_DATA) ; do \ rm -f $(JAVA_HOME)/{lib,jre/lib}/$$f ; \ $(LN_S) $(pkgdatadir)/$$f $(JAVA_HOME)/lib/$$f ; \ $(LN_S) ../../lib/$$f $(JAVA_HOME)/jre/lib/$$f ; \ done $(LN_S) libclasspath.jar $(JAVA_HOME)/jre/lib/rt.jar uninstall-hook: for f in $(pkgdata_DATA) ; do \ rm -f $(JAVA_HOME)/{lib,jre/lib}/$$f ; \ done -unlink $(JAVA_HOME)/jre/lib/rt.jar -(cd $(JAVA_HOME) && rmdir -p lib jre/lib) endif # INSTALL_COMPRESSED_CLASS_FILES noinst_DATA = genclasses compile-classes resources if INSTALL_CLASS_FILES install-data-local: genclasses compile-classes -$(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir) cp -R gnu $(DESTDIR)$(pkgdatadir) cp -R java $(DESTDIR)$(pkgdatadir) cp -R javax $(DESTDIR)$(pkgdatadir) cp -R org $(DESTDIR)$(pkgdatadir) cp -R META-INF $(DESTDIR)$(pkgdatadir) # FIXME - should mimic doc/api/Makefile.am instead... uninstall-local: rm -rf $(DESTDIR)$(pkgdatadir)/gnu rm -rf $(DESTDIR)$(pkgdatadir)/java rm -rf $(DESTDIR)$(pkgdatadir)/javax rm -rf $(DESTDIR)$(pkgdatadir)/org rm -rf $(DESTDIR)$(pkgdatadir)/META-INF endif # INSTALL_CLASS_FILES .PHONY: genclasses libclasspath.jar: classes compile-classes if test "x$(FASTJAR)" != "x"; then \ $(FASTJAR) -Mcf$(FASTJAR_COMPRESSION_FLAGS) libclasspath.jar gnu java javax org > /dev/null; \ elif test "x$(ZIP)" != "x"; then \ $(ZIP) $(ZIP_COMPRESSION_FLAGS) -r -D libclasspath.jar gnu java javax org > /dev/null; fi resources.jar: rm -rf resources_tmp mkdir -p resources_tmp # make sure all dirs are there... mkdir -p resources_tmp/gnu/java/locale mkdir -p resources_tmp/java mkdir -p resources_tmp/javax mkdir -p resources_tmp/org @list='$(propertydirs)'; for p in $$list; do \ if ! [ -e resources_tmp/$$p ]; then mkdir resources_tmp/$$p; fi; \ done @list='$(propertyfiles)'; for p in $$list; do \ cp -f $(top_srcdir)/resource/$$p resources_tmp/$$p; \ done if test x"$(FASTJAR)" != "x"; then cd resources_tmp && \ $(FASTJAR) -Mcf$(FASTJAR_COMPRESSION_FLAGS) ../resources.jar gnu java javax org > /dev/null; \ elif test x"$(ZIP)" != "x"; then cd resources_tmp && \ $(ZIP) $(ZIP_COMPRESSION_FLAGS) -r -D ../resources.jar gnu java javax org > /dev/null; fi rm -rf resources_tmp resources: if ! [ -e gnu ]; then mkdir gnu; fi if ! [ -e gnu/java ]; then mkdir gnu/java; fi if ! [ -e gnu/java/locale ]; then mkdir gnu/java/locale; fi @list='$(propertydirs)'; for p in $$list; do \ if ! [ -e $$p ]; then mkdir $$p; fi; \ done @list='$(propertyfiles)'; for p in $$list; do \ cp $(top_srcdir)/resource/$$p $$p; \ done @list='$(metafiles)'; for p in $$list; do \ cp $(top_srcdir)/resource/$$p $$p; \ done touch resources classes: genclasses $(top_builddir)/java/util/LocaleData.java: $(top_srcdir)/scripts/generate-locale-list.sh mkdir -p $(top_builddir)/java/util $(top_srcdir)/scripts/generate-locale-list.sh > $(top_builddir)/java/util/LocaleData.java genclasses: gen-classlist.sh standard.omit $(top_builddir)/java/util/LocaleData.java gen-xpath-parser top_builddir=$(top_builddir) top_srcdir=$(top_srcdir) $(SHELL) ./gen-classlist.sh standard # Only rebuild parsers when explicitly asked to. if REGEN_PARSERS gen-xpath-parser: $(top_srcdir)/gnu/xml/xpath/XPathParser.java $(top_srcdir)/gnu/xml/xpath/XPathParser.java: $(top_srcdir)/gnu/xml/xpath/XPathParser.y ( cd $(top_srcdir)/gnu/xml/xpath; \ $(JAY) XPathParser.y < $(JAY_SKELETON) > XPathParser.java ) else gen-xpath-parser: true endif # REGEN_PARSER $(JAVA_DEPEND): genclasses compile-classes: classes $(JAVA_SRCS) Makefile $(JAVAC) touch compile-classes EXTRA_DIST = standard.omit mkcollections.pl.in CLEANFILES = compile-classes resources classes \ classes.standard classes.awt classes.standardx classes.xml \ classes.locale resources.jar libclasspath.jar classes.1 \ $(top_builddir)/java/util/LocaleData.java \ $(JAVA_DEPEND) clean-local: -rm -rf gnu -rm -rf java -rm -rf javax -rm -rf org -rm -rf META-INF dist-hook: mkdir -p $(distdir) cp -dfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/vm $(top_srcdir)/resource $(top_distdir) # Delete not wanted files. $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm $(top_distdir)/resource -name .svn -type d -print | xargs rm -fr $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm $(top_distdir)/resource -name CVS -type d -print | xargs rm -fr $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm $(top_distdir)/resource -name .cvsignore -print | xargs rm -f $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm $(top_distdir)/resource -name class-dependencies.conf -print | xargs rm -f rm -f $(top_distdir)/gnu/classpath/Configuration.java rm -f $(top_distdir)/java/util/LocaleData.java rm -f $(top_distdir)/resource/Makefile # Omit files listed in standard.omit. ( cd $(top_distdir)/lib ; cat $(top_builddir)/lib/standard.omit | sed -e 's/\$$//' | sed -e 's/\/\.\*//' | xargs rm -fr )