netscape-revival
sun-java/boot/Makefile
#! gmake
DEPTH = ../..
include $(DEPTH)/sun-java/config/config.mk
#
# Makefile used to boostrap java building. Construct javah and build headers
# for building the runtime. Then build the runtime.
#
RTDIR = ../runtime
MDDIR = ../md
JAVAH_SRCS = \
../javah/javah.c \
$(RTDIR)/classloader.c \
$(RTDIR)/classresolver.c \
$(RTDIR)/classresolver_stubs.c \
$(RTDIR)/globals.c \
$(RTDIR)/runtime_stubs.c \
$(RTDIR)/utf.c \
$(RTDIR)/util.c \
$(RTDIR)/zip.c \
$(MDDIR)/car_md.c \
$(MDDIR)/path_md.c \
$(MDDIR)/stubs_md.c \
$(MDDIR)/system_md.c \
$(NULL)
JAVAH_OBJS := $(addprefix $(OBJDIR)/,$(notdir $(JAVAH_SRCS:.c=.o)))
JAVAI_SRCS = \
../java/javai.c \
../java/java_stub.c \
$(RTDIR)/CompSupport.c \
$(RTDIR)/check_class.c \
$(RTDIR)/check_code.c \
$(RTDIR)/class.c \
$(RTDIR)/classloader.c \
$(RTDIR)/classruntime.c \
$(RTDIR)/date.c \
$(RTDIR)/debug.c \
$(RTDIR)/exception.c \
$(RTDIR)/exceptions.c \
$(RTDIR)/filesystem.c \
$(RTDIR)/globals.c \
$(RTDIR)/interpreter.c \
$(RTDIR)/io.c \
$(RTDIR)/math.c \
$(RTDIR)/object.c \
$(RTDIR)/opnames.c \
$(RTDIR)/profiler.c \
$(RTDIR)/runtime.c \
$(RTDIR)/security.c \
$(RTDIR)/string.c \
$(RTDIR)/system.c \
$(RTDIR)/thread.c \
$(RTDIR)/threads.c \
$(RTDIR)/utf.c \
$(RTDIR)/util.c \
$(RTDIR)/zip.c \
$(RTDIR)/classinitialize.c \
$(RTDIR)/classresolver.c \
$(RTDIR)/common_exceptions.c \
$(RTDIR)/threadruntime.c \
$(MDDIR)/compiler_md.c \
$(MDDIR)/car_md.c \
$(MDDIR)/gc_md.c \
$(MDDIR)/io_md.c \
$(MDDIR)/link_md.c \
$(MDDIR)/math_md.c \
$(MDDIR)/misc_md.c \
$(MDDIR)/mon_md.c \
$(MDDIR)/path_md.c \
$(MDDIR)/process_md.c \
$(MDDIR)/properties_md.c \
$(MDDIR)/stubs_md.c \
$(MDDIR)/system_md.c \
$(MDDIR)/thread_md.c \
$(MDDIR)/trace_md.c \
bt_nodl.c \
stubs.c \
$(NULL)
JAVAI_OBJS := $(addprefix $(OBJDIR)/,$(notdir $(JAVAI_SRCS:.c=.o)))
TARGETS = $(OBJDIR)/javah $(OBJDIR)/java
# Set VPATH so that make can find all of the source. We do this to make
# sure that the .o's and the dependencies end up in this directory
# VPATH = ../javah:../java:../runtime:../md
default all install:: export
export::
@$(MAKE) BUILD_OPT=1 ODIST=$(DIST) REAL_LIBNSPR=$(LIBNSPR) \
REAL_NSINSTALL=$(NSINSTALL) javah_target
@$(MAKE) BUILD_OPT=1 ODIST=$(DIST) REAL_LIBNSPR=$(LIBNSPR) \
REAL_NSINSTALL=$(NSINSTALL) includes stubs
@$(MAKE) BUILD_OPT=1 ODIST=$(DIST) REAL_LIBNSPR=$(LIBNSPR) \
REAL_NSINSTALL=$(NSINSTALL) java_target
clobber::
@$(MAKE) BUILD_OPT=1 ODIST=$(DIST) REAL_LIBNSPR=$(LIBNSPR) \
REAL_NSINSTALL=$(NSINSTALL) real_clobber
clobber_all::
@$(MAKE) BUILD_OPT=1 ODIST=$(DIST) REAL_LIBNSPR=$(LIBNSPR) \
REAL_NSINSTALL=$(NSINSTALL) real_clobber_all
clean::
@$(MAKE) BUILD_OPT=1 ODIST=$(DIST) REAL_LIBNSPR=$(LIBNSPR) \
REAL_NSINSTALL=$(NSINSTALL) real_clean
# This rule uses REAL_NSINSTALL so that it gets the one normally built
# before we fiddled with BUILD_OPT
define MAKE_OBJDIR
if test ! -d $(@D); then rm -rf $(@D); $(REAL_NSINSTALL) -D $(@D); fi
endef
real_clobber::
rm -rf $(OBJDIR) _stubs
real_clobber_all::
rm -rf *.OBJ _stubs
real_clean::
rm -rf $(OBJDIR) _stubs
javah_target: $(OBJDIR)/javah
$(OBJDIR)/javah: $(JAVAH_OBJS) $(REAL_LIBNSPR)
@$(MAKE_OBJDIR)
$(CCF) -o $@ $(JAVAH_OBJS) $(REAL_LIBNSPR) -lm $(OS_LIBS)
INCLUDES := -I$(OBJDIR) -I$(ODIST)/include/nspr -I$(ODIST)/include $(INCLUDES)
java_target: $(OBJDIR)/java
$(OBJDIR)/java: $(JAVAI_OBJS) $(REAL_LIBNSPR)
@$(MAKE_OBJDIR)
$(CCF) -o $@ $(JAVAI_OBJS) $(REAL_LIBNSPR) -lm $(OS_LIBS)
######################################################################
# Generate bt_nodl.c (so that you can check it in)
# These make rules only works on IRIX...sigh
ifeq ($(OS_ARCH),IRIX)
bt_nodl.c: $(OBJDIR)/stubs.o Makefile $(DEPTH)/sun-java/config/nodl.pl
rm -f $@
perl $(DEPTH)/sun-java/config/nodl.pl "rt_nodl_tab" \
`nm -Bn $(OBJDIR)/stubs.o | egrep Java_.*_stub | awk '{print $$3;}'` > $@
endif
######################################################################
# Generate generated includes needed by the runtime. Generate them into
# the $(OBJDIR) directory.
JAVAH = $(OBJDIR)/javah
# BOOT_CLASSPATH is when the boot.car is out of date with respect to
# the source code (e.g. when we get a code drop from sun)
H_JVH = $(JAVAH) -classpath $(BOOT_CLASSPATH):boot.car
includes::
@$(MAKE_OBJDIR)
@echo $(MAKE) -f ../include/Makefile generated
@$(MAKE) -f ../include/Makefile generated \
JAVAH="$(JAVAH)" \
JVH="$(H_JVH)" \
JAVAH_OPTS="-d $(OBJDIR)" \
VPATH=../include \
DESTDIR=$(OBJDIR)/ \
RT_CLASSPATH=boot.car
# Generate generated stub files need by the runtime. Generate them into
# the _stubs directory.
include ../runtime/classfiles.mk
S_JVH = $(H_JVH) -stubs -d _stubs
stubs::
@$(MAKE_OBJDIR)
@echo Generating/updating stubs
@$(S_JVH) $(GENERATED_STUBS_CLASSFILES)
######################################################################
# Gmake doesn't turn static rules (those % thingys) into real live
# dependenices. So we need to tell it how to build each and every
# file.
$(OBJDIR)/javah.o: ../javah/javah.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/javai.o: ../java/javai.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/java_stub.o: ../java/java_stub.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/classresolver_stubs.o: $(RTDIR)/classresolver_stubs.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/runtime_stubs.o: $(RTDIR)/runtime_stubs.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/CompSupport.o: $(RTDIR)/CompSupport.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/check_class.o: $(RTDIR)/check_class.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/check_code.o: $(RTDIR)/check_code.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/class.o: $(RTDIR)/class.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/classloader.o: $(RTDIR)/classloader.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/classruntime.o: $(RTDIR)/classruntime.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/date.o: $(RTDIR)/date.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/debug.o: $(RTDIR)/debug.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/exception.o: $(RTDIR)/exception.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/exceptions.o: $(RTDIR)/exceptions.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/filesystem.o: $(RTDIR)/filesystem.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/globals.o: $(RTDIR)/globals.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/interpreter.o: $(RTDIR)/interpreter.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/io.o: $(RTDIR)/io.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/math.o: $(RTDIR)/math.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/object.o: $(RTDIR)/object.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/opnames.o: $(RTDIR)/opnames.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/profiler.o: $(RTDIR)/profiler.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/runtime.o: $(RTDIR)/runtime.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/security.o: $(RTDIR)/security.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/string.o: $(RTDIR)/string.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/system.o: $(RTDIR)/system.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/thread.o: $(RTDIR)/thread.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/threads.o: $(RTDIR)/threads.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/utf.o: $(RTDIR)/utf.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/util.o: $(RTDIR)/util.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/zip.o: $(RTDIR)/zip.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/classinitialize.o: $(RTDIR)/classinitialize.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/classresolver.o: $(RTDIR)/classresolver.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/common_exceptions.o: $(RTDIR)/common_exceptions.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/threadruntime.o: $(RTDIR)/threadruntime.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/compiler_md.o: $(MDDIR)/compiler_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/car_md.o: $(MDDIR)/car_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/gc_md.o: $(MDDIR)/gc_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/io_md.o: $(MDDIR)/io_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/link_md.o: $(MDDIR)/link_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/math_md.o: $(MDDIR)/math_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/misc_md.o: $(MDDIR)/misc_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/mon_md.o: $(MDDIR)/mon_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/path_md.o: $(MDDIR)/path_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/process_md.o: $(MDDIR)/process_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/properties_md.o: $(MDDIR)/properties_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/stubs_md.o: $(MDDIR)/stubs_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/system_md.o: $(MDDIR)/system_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/thread_md.o: $(MDDIR)/thread_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/trace_md.o: $(MDDIR)/trace_md.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/stubs.o: stubs.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
$(OBJDIR)/bt_nodl.o: bt_nodl.c
@$(MAKE_OBJDIR)
$(CCF) -o $@ -c $<
-include $(DEPENDENCIES)