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
15ECHO  = echo
16MKDIR = mkdir
17UNAME = uname
18
19uname := $(shell uname)
20
21ifeq ($(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
32endif
33
34ifeq ($(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
53endif
54
55LIBDIR=lib/$(PLATFORM)-$(ARCH)
56LAUNCHERLIB=$(LIBDIR)/libLauncher.so
57
58all: 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	
71Launcher.h : Launcher.class
72	$(JAVA_HOME)/bin/javah -force Launcher
73
74Launcher.class : Launcher.java
75	$(JAVA_HOME)/bin/javac Launcher.java
76
77java_home:
78ifndef JAVA_HOME
79	@$(ECHO) "ERROR: Your JAVA_HOME environment variable is not set."
80	exit 1	
81endif
82
83