1 #
   2 #
   3 # Makefile for building libLauncher.so
   4 #
   5 # To build libLauncher.so requires :-
   6 #     JAVA_HOME environment variable 
   7 #     cc (Solaris) or gcc (Linux) on PATH
   8 #
   9 # The library is created in a architecture specific directory :-
  10 #
  11 #     lib/solaris-sparc/libLauncher.so  (Solaris/SPARC)
  12 #     lib/solaris-i586/libLauncher.so   (Solaris/x86)
  13 #     lib/linux-i586/libLauncher.so     (Linux/x86)
  14 
  15 ECHO  = echo
  16 MKDIR = mkdir
  17 UNAME = uname
  18 
  19 uname := $(shell uname)
  20 
  21 ifeq ($(uname), SunOS)
  22   PLATFORM = solaris
  23   ISAINFO = isainfo
  24   ifndef ARCH_DATA_MODEL
  25     ARCH_DATA_MODEL=32
  26   endif
  27   ifeq ($(ARCH_DATA_MODEL), 32)
  28     archExpr = case "`$(UNAME) -p`" in  \
  29                 i386) \
  30                     $(ECHO) i586 \
  31                     ;; \
  32                 sparc*)  \
  33                     $(ECHO) sparc \
  34                     ;; \
  35                 *) \
  36                     $(UNAME) -p  \
  37                     ;; \
  38              esac
  39     ARCH                := $(shell $(archExpr) )
  40   else
  41     ARCH := $(shell $(ISAINFO) -n)
  42   endif
  43   CC = cc
  44   LD = ld
  45   CFLAGS = -D_REENTRANT -D__solaris__
  46   LDFLAGS_COMMON = -G
  47   EXTRA_LIBS = -lc
  48   ifeq ($(ARCH_DATA_MODEL), 64)
  49       CC += -xarch=v9
  50   endif
  51 endif
  52 
  53 ifeq ($(uname), Linux)
  54   PLATFORM = linux
  55   archExpr = case "`$(UNAME) -m`" in  \
  56                 i[3-6]86) \
  57                     $(ECHO) i586 \
  58                     ;; \
  59                 sparc*)  \
  60                     $(ECHO) sparc \
  61                     ;; \
  62                 *) \
  63                     $(UNAME) -m  \
  64                     ;; \
  65            esac
  66   ARCH      := $(shell $(archExpr) )
  67   CC = gcc
  68   CFLAGS = -fno-strict-aliasing -fPIC -W -Wall
  69   LD = ld
  70   LDFLAGS_COMMON = -shared
  71   EXTRA_LIBS = -lc
  72 endif
  73 
  74 LIBDIR=lib/$(PLATFORM)-$(ARCH)
  75 LAUNCHERLIB=$(LIBDIR)/libLauncher.so
  76 
  77 all: java_home $(LAUNCHERLIB)
  78 
  79 $(LAUNCHERLIB) : $(LIBDIR) $(LIBDIR)/Launcher.o
  80         $(LD) $(LDFLAGS_COMMON) -o $(LAUNCHERLIB) $(LIBDIR)/Launcher.o $(EXTRA_LIBS)
  81 
  82 $(LIBDIR):
  83         @$(MKDIR) -p $(LIBDIR)
  84 
  85 $(LIBDIR)/Launcher.o : Launcher.c \
  86                        Launcher.h
  87         $(CC) -c $(CFLAGS) -o $(LIBDIR)/Launcher.o \
  88             -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(PLATFORM) Launcher.c
  89         
  90 Launcher.h : Launcher.class
  91         $(JAVA_HOME)/bin/javah -force Launcher
  92 
  93 Launcher.class : Launcher.java
  94         $(JAVA_HOME)/bin/javac Launcher.java
  95 
  96 java_home:
  97 ifndef JAVA_HOME
  98         @$(ECHO) "ERROR: Your JAVA_HOME environment variable is not set."
  99         exit 1  
 100 endif
 101