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   ARCH_DATA_MODEL=64
  25   ARCH := $(shell $(ISAINFO) -n)
  26   CC = cc
  27   LD = ld
  28   CFLAGS = -D_REENTRANT -D__solaris__
  29   LDFLAGS_COMMON = -G
  30   EXTRA_LIBS = -lc
  31   CC += -m64 -Kpic
  32 endif
  33 
  34 ifeq ($(uname), Linux)
  35   PLATFORM = linux
  36   archExpr = case "`$(UNAME) -m`" in  \
  37                 i[3-6]86) \
  38                     $(ECHO) i586 \
  39                     ;; \
  40                 sparc*)  \
  41                     $(ECHO) sparc \
  42                     ;; \
  43                 *) \
  44                     $(UNAME) -m  \
  45                     ;; \
  46            esac
  47   ARCH      := $(shell $(archExpr) )
  48   CC = gcc
  49   CFLAGS = -fno-strict-aliasing -fPIC -W -Wall
  50   LD = ld
  51   LDFLAGS_COMMON = -shared
  52   EXTRA_LIBS = -lc
  53 endif
  54 
  55 LIBDIR=lib/$(PLATFORM)-$(ARCH)
  56 LAUNCHERLIB=$(LIBDIR)/libLauncher.so
  57 
  58 all: java_home $(LAUNCHERLIB)
  59 
  60 $(LAUNCHERLIB) : $(LIBDIR) $(LIBDIR)/Launcher.o
  61         $(LD) $(LDFLAGS_COMMON) -o $(LAUNCHERLIB) $(LIBDIR)/Launcher.o $(EXTRA_LIBS)
  62 
  63 $(LIBDIR):
  64         @$(MKDIR) -p $(LIBDIR)
  65 
  66 $(LIBDIR)/Launcher.o : Launcher.c \
  67                        Launcher.h
  68         $(CC) -c $(CFLAGS) -o $(LIBDIR)/Launcher.o \
  69             -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(PLATFORM) Launcher.c
  70         
  71 Launcher.h : Launcher.class
  72         $(JAVA_HOME)/bin/javah -force Launcher
  73 
  74 Launcher.class : Launcher.java
  75         $(JAVA_HOME)/bin/javac Launcher.java
  76 
  77 java_home:
  78 ifndef JAVA_HOME
  79         @$(ECHO) "ERROR: Your JAVA_HOME environment variable is not set."
  80         exit 1  
  81 endif
  82