make/linux/makefiles/launcher.make

changeset 2327
cb2d0a362639
parent 2314
f95d63e2154a
child 3518
719f7007c8e8
     1.1 --- a/make/linux/makefiles/launcher.make	Thu Dec 02 20:01:47 2010 +0100
     1.2 +++ b/make/linux/makefiles/launcher.make	Thu Dec 02 05:45:54 2010 -0800
     1.3 @@ -24,19 +24,23 @@
     1.4  
     1.5  # Rules to build gamma launcher, used by vm.make
     1.6  
     1.7 -# gamma[_g]: launcher
     1.8  
     1.9 +LAUNCHER_SCRIPT = hotspot
    1.10  LAUNCHER   = gamma
    1.11 -LAUNCHER_G = $(LAUNCHER)$(G_SUFFIX)
    1.12  
    1.13 -LAUNCHERDIR   = $(GAMMADIR)/src/os/$(Platform_os_family)/launcher
    1.14 -LAUNCHERFLAGS = $(ARCHFLAG) \
    1.15 +LAUNCHERDIR   := $(GAMMADIR)/src/os/posix/launcher
    1.16 +LAUNCHERDIR_SHARE := $(GAMMADIR)/src/share/tools/launcher
    1.17 +LAUNCHERFLAGS := $(ARCHFLAG) \
    1.18                  -I$(LAUNCHERDIR) -I$(GAMMADIR)/src/share/vm/prims \
    1.19 +                -I$(LAUNCHERDIR_SHARE) \
    1.20                  -DFULL_VERSION=\"$(HOTSPOT_RELEASE_VERSION)\" \
    1.21 +                -DJDK_MAJOR_VERSION=\"$(JDK_MAJOR_VERSION)\" \
    1.22 +                -DJDK_MINOR_VERSION=\"$(JDK_MINOR_VERSION)\" \
    1.23                  -DARCH=\"$(LIBARCH)\" \
    1.24                  -DGAMMA \
    1.25                  -DLAUNCHER_TYPE=\"gamma\" \
    1.26 -                -DLINK_INTO_$(LINK_INTO)
    1.27 +                -DLINK_INTO_$(LINK_INTO) \
    1.28 +                $(TARGET_DEFINES)
    1.29  
    1.30  ifeq ($(LINK_INTO),AOUT)
    1.31    LAUNCHER.o                 = launcher.o $(JVM_OBJ_FILES)
    1.32 @@ -55,22 +59,35 @@
    1.33  LINK_LAUNCHER/PRE_HOOK  = $(LINK_LIB.CC/PRE_HOOK)
    1.34  LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK)
    1.35  
    1.36 -launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c
    1.37 -	$(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) $(TARGET_DEFINES)
    1.38 +LAUNCHER_OUT = launcher
    1.39  
    1.40 -launcher.c:
    1.41 -	@echo Generating $@
    1.42 -	$(QUIETLY) { \
    1.43 -	echo '#define debug launcher_debug'; \
    1.44 -	echo '#include "java.c"'; \
    1.45 -	echo '#include "java_md.c"'; \
    1.46 -	} > $@
    1.47 +SUFFIXES += .d
    1.48  
    1.49 -$(LAUNCHER): $(LAUNCHER.o) $(LIBJVM) $(LAUNCHER_MAPFILE)
    1.50 -	$(QUIETLY) { \
    1.51 -	    echo Linking launcher...; \
    1.52 -	    $(LINK_LAUNCHER/PRE_HOOK) \
    1.53 -	    $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(LAUNCHER.o) $(LIBS_LAUNCHER); \
    1.54 -	    $(LINK_LAUNCHER/POST_HOOK) \
    1.55 -	    [ -f $(LAUNCHER_G) ] || { ln -s $@ $(LAUNCHER_G); }; \
    1.56 -        }
    1.57 +SOURCES := $(shell find $(LAUNCHERDIR) -name "*.c")
    1.58 +SOURCES_SHARE := $(shell find $(LAUNCHERDIR_SHARE) -name "*.c")
    1.59 +
    1.60 +OBJS := $(patsubst $(LAUNCHERDIR)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES)) $(patsubst $(LAUNCHERDIR_SHARE)/%.c,$(LAUNCHER_OUT)/%.o,$(SOURCES_SHARE))
    1.61 +
    1.62 +DEPFILES := $(patsubst %.o,%.d,$(OBJS))
    1.63 +-include $(DEPFILES)
    1.64 +
    1.65 +$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c
    1.66 +	$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
    1.67 +	$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
    1.68 +
    1.69 +$(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
    1.70 +	$(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); }
    1.71 +	$(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS)
    1.72 +
    1.73 +$(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
    1.74 +	$(QUIETLY) echo Linking launcher...
    1.75 +	$(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK)
    1.76 +	$(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(OBJS) $(LIBS_LAUNCHER)
    1.77 +	$(QUIETLY) $(LINK_LAUNCHER/POST_HOOK)
    1.78 +
    1.79 +$(LAUNCHER): $(LAUNCHER_SCRIPT)
    1.80 +
    1.81 +$(LAUNCHER_SCRIPT): $(LAUNCHERDIR)/launcher.script
    1.82 +	$(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@
    1.83 +	$(QUIETLY) chmod +x $@
    1.84 +

mercurial